diff options
| author | 3gg <3gg@shellblade.net> | 2025-12-02 16:39:36 -0800 |
|---|---|---|
| committer | 3gg <3gg@shellblade.net> | 2025-12-02 16:39:36 -0800 |
| commit | 6c8ae19be66cee247980a48e736a4e05d14de179 (patch) | |
| tree | d860767907bf0cbe17ec66422e11bea700cf56d9 /contrib/DirectX-Headers-1.618.2/include | |
| parent | 8f594c8ebd11f0e5f8a0c6369c3fe7383d250cbe (diff) | |
Diffstat (limited to 'contrib/DirectX-Headers-1.618.2/include')
49 files changed, 88573 insertions, 0 deletions
diff --git a/contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h b/contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h new file mode 100644 index 0000000..303567a --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/composition/dcomp-preview.h | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | * dcomp-preview.h - Preview versions of upcoming DirectComposition interfaces. | ||
| 7 | * | ||
| 8 | * This file provides preview versions of DirectComposition interfaces that may eventually | ||
| 9 | * be integrated into the official dcomp.h header of the Windows SDK. The inclusion of an | ||
| 10 | * interface in this file does not guarantee its future adoption. However, if an interface is | ||
| 11 | * adopted exactly as defined here, the official definition—including its GUID—will be identical | ||
| 12 | * to the preview version. | ||
| 13 | * | ||
| 14 | * If any modifications are made to an interface prior to its official release, the GUID will be | ||
| 15 | * updated accordingly. This guarantees that a QueryInterface (QI) call for a PREVIEW_ interface | ||
| 16 | * is safe: a QI will only succeed if the GUID matches, and will gracefully fail if the official | ||
| 17 | * version differs. | ||
| 18 | * | ||
| 19 | * Developers can transition to the official interfaces by removing the "PREVIEW_" prefix, provided | ||
| 20 | * that the GUIDs remain the same. Note that some PREVIEW_ interfaces may eventually be deprecated | ||
| 21 | * and removed from this file. For a smooth migration, it is recommended to adopt the official | ||
| 22 | * interfaces as soon as they become available in the Windows SDK. The preview interfaces will | ||
| 23 | * remain available long enough to support this transition. | ||
| 24 | * | ||
| 25 | * Always query for these interfaces using QueryInterface and validate the results, rather than | ||
| 26 | * assuming that the target Windows system supports the required features. | ||
| 27 | * | ||
| 28 | *-------------------------------------------------------------------------------------*/ | ||
| 29 | #pragma once | ||
| 30 | |||
| 31 | #if (NTDDI_VERSION >= NTDDI_WIN11_GE) | ||
| 32 | |||
| 33 | //+----------------------------------------------------------------------------- | ||
| 34 | // | ||
| 35 | // Interface: | ||
| 36 | // PREVIEW_IDCompositionDynamicTexture | ||
| 37 | // | ||
| 38 | // Synopsis: | ||
| 39 | // An interface representing a dynamically changing texture that can be | ||
| 40 | // bound to a dcomp visual as content. | ||
| 41 | // | ||
| 42 | //------------------------------------------------------------------------------ | ||
| 43 | #undef INTERFACE | ||
| 44 | #define INTERFACE PREVIEW_IDCompositionDynamicTexture | ||
| 45 | DECLARE_INTERFACE_IID_(PREVIEW_IDCompositionDynamicTexture, IUnknown, "A1DE1D3F-6405-447F-8E95-1383A34B0277") | ||
| 46 | { | ||
| 47 | // Set the current texture, assuming that every pixel has changed. | ||
| 48 | STDMETHOD(SetTexture)(THIS_ | ||
| 49 | _In_ IDCompositionTexture* pTexture) PURE; | ||
| 50 | |||
| 51 | // Set the current texture, assuming that only the pixels within the specified dirty rects | ||
| 52 | // have changed. | ||
| 53 | // | ||
| 54 | // DWM will use these dirty rects to optimize redrawing the texture on the screen. | ||
| 55 | // However, it does not verify the accuracy of the provided rects, so the caller must ensure | ||
| 56 | // that every changed pixel is covered by at least one rect. There are no guarantees regarding | ||
| 57 | // the redrawing of pixels outside the specified dirty rects; DWM may choose to redraw | ||
| 58 | // additional areas if necessary. | ||
| 59 | // | ||
| 60 | // If the provided array is empty or if the dirty rects are empty, this method treats the | ||
| 61 | // texture as unchanged, allowing DWM to skip redrawing. | ||
| 62 | STDMETHOD(SetTexture)(THIS_ | ||
| 63 | _In_ IDCompositionTexture* pTexture, | ||
| 64 | _In_count_(rectCount) const D2D_RECT_L *pRects, | ||
| 65 | _In_ size_t rectCount) PURE; | ||
| 66 | }; | ||
| 67 | |||
| 68 | //+----------------------------------------------------------------------------- | ||
| 69 | // | ||
| 70 | // Interface: | ||
| 71 | // PREVIEW_IDCompositionDevice5 | ||
| 72 | // | ||
| 73 | // Synopsis: | ||
| 74 | // Serves as the root factory for composition dynamic textures | ||
| 75 | // | ||
| 76 | //------------------------------------------------------------------------------ | ||
| 77 | #undef INTERFACE | ||
| 78 | #define INTERFACE PREVIEW_IDCompositionDevice5 | ||
| 79 | DECLARE_INTERFACE_IID_(PREVIEW_IDCompositionDevice5, IDCompositionDevice4, "2C6BEBFE-A603-472F-AF34-D2443356E61B") | ||
| 80 | { | ||
| 81 | STDMETHOD(CreateDynamicTexture)(THIS_ | ||
| 82 | _Outptr_ PREVIEW_IDCompositionDynamicTexture** compositionDynamicTexture) PURE; | ||
| 83 | }; | ||
| 84 | |||
| 85 | #endif // #if (NTDDI_VERSION >= NTDDI_WIN11_GE) | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/D3D12MarkerApiEnums.idl b/contrib/DirectX-Headers-1.618.2/include/directx/D3D12MarkerApiEnums.idl new file mode 100644 index 0000000..1384b73 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/D3D12MarkerApiEnums.idl | |||
| @@ -0,0 +1,119 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * | ||
| 5 | *-------------------------------------------------------------------------------------*/ | ||
| 6 | typedef enum D3D12_MARKER_API { | ||
| 7 | D3D12_MARKER_API_SETMARKER = 0, | ||
| 8 | D3D12_MARKER_API_BEGINEVENT = 1, | ||
| 9 | D3D12_MARKER_API_ENDEVENT = 2, | ||
| 10 | D3D12_MARKER_API_DRAWINSTANCED = 3, | ||
| 11 | D3D12_MARKER_API_DRAWINDEXEDINSTANCED = 4, | ||
| 12 | D3D12_MARKER_API_EXECUTEINDIRECT = 5, | ||
| 13 | D3D12_MARKER_API_DISPATCH = 6, | ||
| 14 | D3D12_MARKER_API_COPYBUFFERREGION = 7, | ||
| 15 | D3D12_MARKER_API_COPYTEXTUREREGION = 8, | ||
| 16 | D3D12_MARKER_API_COPYRESOURCE = 9, | ||
| 17 | D3D12_MARKER_API_COPYTILES = 10, | ||
| 18 | D3D12_MARKER_API_RESOLVESUBRESOURCE = 11, | ||
| 19 | D3D12_MARKER_API_CLEARRENDERTARGETVIEW = 12, | ||
| 20 | D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW = 13, | ||
| 21 | D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW = 14, | ||
| 22 | D3D12_MARKER_API_RESOURCEBARRIER = 15, | ||
| 23 | D3D12_MARKER_API_EXECUTEBUNDLE = 16, | ||
| 24 | D3D12_MARKER_API_PRESENT = 17, | ||
| 25 | D3D12_MARKER_API_RESOLVEQUERYDATA = 18, | ||
| 26 | D3D12_MARKER_API_BEGINSUBMISSION = 19, | ||
| 27 | D3D12_MARKER_API_ENDSUBMISSION = 20, | ||
| 28 | D3D12_MARKER_API_DECODEFRAME = 21, | ||
| 29 | D3D12_MARKER_API_PROCESSFRAMES = 22, | ||
| 30 | D3D12_MARKER_API_ATOMICCOPYBUFFERUINT = 23, | ||
| 31 | D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64 = 24, | ||
| 32 | D3D12_MARKER_API_RESOLVESUBRESOURCEREGION = 25, | ||
| 33 | D3D12_MARKER_API_WRITEBUFFERIMMEDIATE = 26, | ||
| 34 | D3D12_MARKER_API_DECODEFRAME1 = 27, | ||
| 35 | D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION = 28, | ||
| 36 | D3D12_MARKER_API_DECODEFRAME2 = 29, | ||
| 37 | D3D12_MARKER_API_PROCESSFRAMES1 = 30, | ||
| 38 | D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31, | ||
| 39 | D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32, | ||
| 40 | D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33, | ||
| 41 | D3D12_MARKER_API_DISPATCHRAYS = 34, | ||
| 42 | D3D12_MARKER_API_INITIALIZEMETACOMMAND = 35, | ||
| 43 | D3D12_MARKER_API_EXECUTEMETACOMMAND = 36, | ||
| 44 | D3D12_MARKER_API_ESTIMATEMOTION = 37, | ||
| 45 | D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP = 38, | ||
| 46 | D3D12_MARKER_API_SETPIPELINESTATE1 = 39, | ||
| 47 | D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND = 40, | ||
| 48 | D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND = 41, | ||
| 49 | D3D12_MARKER_API_DISPATCHMESH = 42, | ||
| 50 | D3D12_MARKER_API_ENCODEFRAME = 43, | ||
| 51 | D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA = 44, | ||
| 52 | D3D12_MARKER_API_BARRIER = 45, | ||
| 53 | D3D12_MARKER_API_BEGIN_COMMAND_LIST = 46, | ||
| 54 | D3D12_MARKER_API_DISPATCHGRAPH = 47, | ||
| 55 | D3D12_MARKER_API_SETPROGRAM = 48, | ||
| 56 | D3D12_MARKER_API_ENCODEFRAME1 = 49, | ||
| 57 | D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1 = 50, | ||
| 58 | D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT = 51, | ||
| 59 | D3D12_MARKER_API_PROCESSFRAMES2 = 52, | ||
| 60 | D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = 53, | ||
| 61 | } D3D12_MARKER_API; | ||
| 62 | |||
| 63 | typedef enum D3D12_AUTO_BREADCRUMB_OP { | ||
| 64 | D3D12_AUTO_BREADCRUMB_OP_SETMARKER = D3D12_MARKER_API_SETMARKER, | ||
| 65 | D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = D3D12_MARKER_API_BEGINEVENT, | ||
| 66 | D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = D3D12_MARKER_API_ENDEVENT, | ||
| 67 | D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = D3D12_MARKER_API_DRAWINSTANCED, | ||
| 68 | D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = D3D12_MARKER_API_DRAWINDEXEDINSTANCED, | ||
| 69 | D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = D3D12_MARKER_API_EXECUTEINDIRECT, | ||
| 70 | D3D12_AUTO_BREADCRUMB_OP_DISPATCH = D3D12_MARKER_API_DISPATCH, | ||
| 71 | D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = D3D12_MARKER_API_COPYBUFFERREGION, | ||
| 72 | D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = D3D12_MARKER_API_COPYTEXTUREREGION, | ||
| 73 | D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = D3D12_MARKER_API_COPYRESOURCE, | ||
| 74 | D3D12_AUTO_BREADCRUMB_OP_COPYTILES = D3D12_MARKER_API_COPYTILES, | ||
| 75 | D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = D3D12_MARKER_API_RESOLVESUBRESOURCE, | ||
| 76 | D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = D3D12_MARKER_API_CLEARRENDERTARGETVIEW, | ||
| 77 | D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW, | ||
| 78 | D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW, | ||
| 79 | D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = D3D12_MARKER_API_RESOURCEBARRIER, | ||
| 80 | D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = D3D12_MARKER_API_EXECUTEBUNDLE, | ||
| 81 | D3D12_AUTO_BREADCRUMB_OP_PRESENT = D3D12_MARKER_API_PRESENT, | ||
| 82 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = D3D12_MARKER_API_RESOLVEQUERYDATA, | ||
| 83 | D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = D3D12_MARKER_API_BEGINSUBMISSION, | ||
| 84 | D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = D3D12_MARKER_API_ENDSUBMISSION, | ||
| 85 | D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = D3D12_MARKER_API_DECODEFRAME, | ||
| 86 | D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = D3D12_MARKER_API_PROCESSFRAMES, | ||
| 87 | D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT, | ||
| 88 | D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64, | ||
| 89 | D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = D3D12_MARKER_API_RESOLVESUBRESOURCEREGION, | ||
| 90 | D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = D3D12_MARKER_API_WRITEBUFFERIMMEDIATE, | ||
| 91 | D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = D3D12_MARKER_API_DECODEFRAME1, | ||
| 92 | D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION, | ||
| 93 | D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = D3D12_MARKER_API_DECODEFRAME2, | ||
| 94 | D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = D3D12_MARKER_API_PROCESSFRAMES1, | ||
| 95 | D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE, | ||
| 96 | D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO, | ||
| 97 | D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE, | ||
| 98 | D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = D3D12_MARKER_API_DISPATCHRAYS, | ||
| 99 | D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = D3D12_MARKER_API_INITIALIZEMETACOMMAND, | ||
| 100 | D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = D3D12_MARKER_API_EXECUTEMETACOMMAND, | ||
| 101 | D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = D3D12_MARKER_API_ESTIMATEMOTION, | ||
| 102 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP, | ||
| 103 | D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = D3D12_MARKER_API_SETPIPELINESTATE1, | ||
| 104 | D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND, | ||
| 105 | D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND, | ||
| 106 | D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = D3D12_MARKER_API_DISPATCHMESH, | ||
| 107 | D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = D3D12_MARKER_API_ENCODEFRAME, | ||
| 108 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA, | ||
| 109 | D3D12_AUTO_BREADCRUMB_OP_BARRIER = D3D12_MARKER_API_BARRIER, | ||
| 110 | D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = D3D12_MARKER_API_BEGIN_COMMAND_LIST, | ||
| 111 | D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = D3D12_MARKER_API_DISPATCHGRAPH, | ||
| 112 | D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = D3D12_MARKER_API_SETPROGRAM, | ||
| 113 | D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME1 = D3D12_MARKER_API_ENCODEFRAME1, | ||
| 114 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA1 = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1, | ||
| 115 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEINPUTPARAMLAYOUT = D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT, | ||
| 116 | D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = D3D12_MARKER_API_PROCESSFRAMES2, | ||
| 117 | D3D12_AUTO_BREADCRUMB_OP_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS, | ||
| 118 | } D3D12_AUTO_BREADCRUMB_OP; | ||
| 119 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/D3D12TokenizedProgramFormat.hpp b/contrib/DirectX-Headers-1.618.2/include/directx/D3D12TokenizedProgramFormat.hpp new file mode 100644 index 0000000..b951454 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/D3D12TokenizedProgramFormat.hpp | |||
| @@ -0,0 +1,2634 @@ | |||
| 1 | #pragma once | ||
| 2 | //********************************************************* | ||
| 3 | // | ||
| 4 | // Copyright (c) Microsoft Corporation. | ||
| 5 | // Licensed under the MIT License (MIT). | ||
| 6 | // | ||
| 7 | //********************************************************* | ||
| 8 | // | ||
| 9 | // High Level Goals | ||
| 10 | // | ||
| 11 | // - Serve as the runtime/DDI representation for all D3D11 tokenized code, | ||
| 12 | // for all classes of programs, including pixel program, vertex program, | ||
| 13 | // geometry program, etc. | ||
| 14 | // | ||
| 15 | // - Any information that HLSL needs to give to drivers is encoded in | ||
| 16 | // this token format in some form. | ||
| 17 | // | ||
| 18 | // - Enable common tools and source code for managing all tokenizable | ||
| 19 | // program formats. | ||
| 20 | // | ||
| 21 | // - Support extensible token definitions, allowing full customizations for | ||
| 22 | // specific program classes, while maintaining general conventions for all | ||
| 23 | // program models. | ||
| 24 | // | ||
| 25 | // - Binary backwards compatible with D3D10. Any token name that was originally | ||
| 26 | // defined with "D3D10" in it is unchanged; D3D11 only adds new tokens. | ||
| 27 | // | ||
| 28 | // ---------------------------------------------------------------------------- | ||
| 29 | // | ||
| 30 | // Low Level Feature Summary | ||
| 31 | // | ||
| 32 | // - DWORD based tokens always, for simplicity | ||
| 33 | // - Opcode token is generally a single DWORD, though there is a bit indicating | ||
| 34 | // if extended information (extra DWORD(s)) are present | ||
| 35 | // - Operand tokens are a completely self contained, extensible format, | ||
| 36 | // with scalar and 4-vector data types as first class citizens, but | ||
| 37 | // allowance for extension to n-component vectors. | ||
| 38 | // - Initial operand token identifies register type, register file | ||
| 39 | // structure/dimensionality and mode of indexing for each dimension, | ||
| 40 | // and choice of component selection mechanism (i.e. mask vs. swizzle etc). | ||
| 41 | // - Optional additional extended operand tokens can defined things like | ||
| 42 | // modifiers (which are not needed by default). | ||
| 43 | // - Operand's immediate index value(s), if needed, appear as subsequent DWORD | ||
| 44 | // values, and if relative addressing is specified, an additional completely | ||
| 45 | // self contained operand definition appears nested in the token sequence. | ||
| 46 | // | ||
| 47 | // ---------------------------------------------------------------------------- | ||
| 48 | |||
| 49 | #include <winapifamily.h> | ||
| 50 | |||
| 51 | #pragma region Application Family | ||
| 52 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) | ||
| 53 | |||
| 54 | // ---------------------------------------------------------------------------- | ||
| 55 | // Version Token (VerTok) | ||
| 56 | // | ||
| 57 | // [07:00] minor version number (0-255) | ||
| 58 | // [15:08] major version number (0-255) | ||
| 59 | // [31:16] D3D10_SB_TOKENIZED_PROGRAM_TYPE | ||
| 60 | // | ||
| 61 | // ---------------------------------------------------------------------------- | ||
| 62 | |||
| 63 | typedef enum D3D10_SB_TOKENIZED_PROGRAM_TYPE | ||
| 64 | { | ||
| 65 | D3D10_SB_PIXEL_SHADER = 0, | ||
| 66 | D3D10_SB_VERTEX_SHADER = 1, | ||
| 67 | D3D10_SB_GEOMETRY_SHADER = 2, | ||
| 68 | |||
| 69 | // D3D11 Shaders | ||
| 70 | D3D11_SB_HULL_SHADER = 3, | ||
| 71 | D3D11_SB_DOMAIN_SHADER = 4, | ||
| 72 | D3D11_SB_COMPUTE_SHADER = 5, | ||
| 73 | |||
| 74 | // Subset of D3D12 Shaders where this field is referenced by runtime | ||
| 75 | // Entries from 6-12 are unique to state objects | ||
| 76 | // (e.g. library, callable and raytracing shaders) | ||
| 77 | D3D12_SB_MESH_SHADER = 13, | ||
| 78 | D3D12_SB_AMPLIFICATION_SHADER = 14, | ||
| 79 | |||
| 80 | D3D11_SB_RESERVED0 = 0xFFF0 | ||
| 81 | } D3D10_SB_TOKENIZED_PROGRAM_TYPE; | ||
| 82 | |||
| 83 | #define D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK 0xffff0000 | ||
| 84 | #define D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT 16 | ||
| 85 | |||
| 86 | // DECODER MACRO: Retrieve program type from version token | ||
| 87 | #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)) | ||
| 88 | |||
| 89 | #define D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK 0x000000f0 | ||
| 90 | #define D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT 4 | ||
| 91 | #define D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK 0x0000000f | ||
| 92 | |||
| 93 | // DECODER MACRO: Retrieve major version # from version token | ||
| 94 | #define DECODE_D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION(VerTok) (((VerTok)&D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK)>>D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT) | ||
| 95 | // DECODER MACRO: Retrieve minor version # from version token | ||
| 96 | #define DECODE_D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION(VerTok) ((VerTok)&D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK) | ||
| 97 | |||
| 98 | // ENCODER MACRO: Create complete VerTok | ||
| 99 | #define ENCODE_D3D10_SB_TOKENIZED_PROGRAM_VERSION_TOKEN(ProgType,MajorVer,MinorVer) ((((ProgType)<<D3D10_SB_TOKENIZED_PROGRAM_TYPE_SHIFT)&D3D10_SB_TOKENIZED_PROGRAM_TYPE_MASK)|\ | ||
| 100 | ((((MajorVer)<<D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_SHIFT)&D3D10_SB_TOKENIZED_PROGRAM_MAJOR_VERSION_MASK))|\ | ||
| 101 | ((MinorVer)&D3D10_SB_TOKENIZED_PROGRAM_MINOR_VERSION_MASK)) | ||
| 102 | |||
| 103 | // ---------------------------------------------------------------------------- | ||
| 104 | // Length Token (LenTok) | ||
| 105 | // | ||
| 106 | // Always follows VerTok | ||
| 107 | // | ||
| 108 | // [31:00] Unsigned integer count of number of | ||
| 109 | // DWORDs in program code, including version | ||
| 110 | // and length tokens. So the minimum value | ||
| 111 | // is 0x00000002 (if an empty program is ever | ||
| 112 | // valid). | ||
| 113 | // | ||
| 114 | // ---------------------------------------------------------------------------- | ||
| 115 | |||
| 116 | // DECODER MACRO: Retrieve program length | ||
| 117 | #define DECODE_D3D10_SB_TOKENIZED_PROGRAM_LENGTH(LenTok) (LenTok) | ||
| 118 | // ENCODER MACRO: Create complete LenTok | ||
| 119 | #define ENCODE_D3D10_SB_TOKENIZED_PROGRAM_LENGTH(Length) (Length) | ||
| 120 | #define MAX_D3D10_SB_TOKENIZED_PROGRAM_LENGTH (0xffffffff) | ||
| 121 | |||
| 122 | // ---------------------------------------------------------------------------- | ||
| 123 | // Opcode Format (OpcodeToken0) | ||
| 124 | // | ||
| 125 | // [10:00] D3D10_SB_OPCODE_TYPE | ||
| 126 | // if( [10:00] == D3D10_SB_OPCODE_CUSTOMDATA ) | ||
| 127 | // { | ||
| 128 | // Token starts a custom-data block. See "Custom-Data Block Format". | ||
| 129 | // } | ||
| 130 | // else // standard opcode token | ||
| 131 | // { | ||
| 132 | // [23:11] Opcode-Specific Controls | ||
| 133 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 134 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 135 | // contains extended opcode token. | ||
| 136 | // } | ||
| 137 | // | ||
| 138 | // ---------------------------------------------------------------------------- | ||
| 139 | |||
| 140 | typedef enum D3D10_SB_OPCODE_TYPE { | ||
| 141 | D3D10_SB_OPCODE_ADD , | ||
| 142 | D3D10_SB_OPCODE_AND , | ||
| 143 | D3D10_SB_OPCODE_BREAK , | ||
| 144 | D3D10_SB_OPCODE_BREAKC , | ||
| 145 | D3D10_SB_OPCODE_CALL , | ||
| 146 | D3D10_SB_OPCODE_CALLC , | ||
| 147 | D3D10_SB_OPCODE_CASE , | ||
| 148 | D3D10_SB_OPCODE_CONTINUE , | ||
| 149 | D3D10_SB_OPCODE_CONTINUEC , | ||
| 150 | D3D10_SB_OPCODE_CUT , | ||
| 151 | D3D10_SB_OPCODE_DEFAULT , | ||
| 152 | D3D10_SB_OPCODE_DERIV_RTX , | ||
| 153 | D3D10_SB_OPCODE_DERIV_RTY , | ||
| 154 | D3D10_SB_OPCODE_DISCARD , | ||
| 155 | D3D10_SB_OPCODE_DIV , | ||
| 156 | D3D10_SB_OPCODE_DP2 , | ||
| 157 | D3D10_SB_OPCODE_DP3 , | ||
| 158 | D3D10_SB_OPCODE_DP4 , | ||
| 159 | D3D10_SB_OPCODE_ELSE , | ||
| 160 | D3D10_SB_OPCODE_EMIT , | ||
| 161 | D3D10_SB_OPCODE_EMITTHENCUT , | ||
| 162 | D3D10_SB_OPCODE_ENDIF , | ||
| 163 | D3D10_SB_OPCODE_ENDLOOP , | ||
| 164 | D3D10_SB_OPCODE_ENDSWITCH , | ||
| 165 | D3D10_SB_OPCODE_EQ , | ||
| 166 | D3D10_SB_OPCODE_EXP , | ||
| 167 | D3D10_SB_OPCODE_FRC , | ||
| 168 | D3D10_SB_OPCODE_FTOI , | ||
| 169 | D3D10_SB_OPCODE_FTOU , | ||
| 170 | D3D10_SB_OPCODE_GE , | ||
| 171 | D3D10_SB_OPCODE_IADD , | ||
| 172 | D3D10_SB_OPCODE_IF , | ||
| 173 | D3D10_SB_OPCODE_IEQ , | ||
| 174 | D3D10_SB_OPCODE_IGE , | ||
| 175 | D3D10_SB_OPCODE_ILT , | ||
| 176 | D3D10_SB_OPCODE_IMAD , | ||
| 177 | D3D10_SB_OPCODE_IMAX , | ||
| 178 | D3D10_SB_OPCODE_IMIN , | ||
| 179 | D3D10_SB_OPCODE_IMUL , | ||
| 180 | D3D10_SB_OPCODE_INE , | ||
| 181 | D3D10_SB_OPCODE_INEG , | ||
| 182 | D3D10_SB_OPCODE_ISHL , | ||
| 183 | D3D10_SB_OPCODE_ISHR , | ||
| 184 | D3D10_SB_OPCODE_ITOF , | ||
| 185 | D3D10_SB_OPCODE_LABEL , | ||
| 186 | D3D10_SB_OPCODE_LD , | ||
| 187 | D3D10_SB_OPCODE_LD_MS , | ||
| 188 | D3D10_SB_OPCODE_LOG , | ||
| 189 | D3D10_SB_OPCODE_LOOP , | ||
| 190 | D3D10_SB_OPCODE_LT , | ||
| 191 | D3D10_SB_OPCODE_MAD , | ||
| 192 | D3D10_SB_OPCODE_MIN , | ||
| 193 | D3D10_SB_OPCODE_MAX , | ||
| 194 | D3D10_SB_OPCODE_CUSTOMDATA , | ||
| 195 | D3D10_SB_OPCODE_MOV , | ||
| 196 | D3D10_SB_OPCODE_MOVC , | ||
| 197 | D3D10_SB_OPCODE_MUL , | ||
| 198 | D3D10_SB_OPCODE_NE , | ||
| 199 | D3D10_SB_OPCODE_NOP , | ||
| 200 | D3D10_SB_OPCODE_NOT , | ||
| 201 | D3D10_SB_OPCODE_OR , | ||
| 202 | D3D10_SB_OPCODE_RESINFO , | ||
| 203 | D3D10_SB_OPCODE_RET , | ||
| 204 | D3D10_SB_OPCODE_RETC , | ||
| 205 | D3D10_SB_OPCODE_ROUND_NE , | ||
| 206 | D3D10_SB_OPCODE_ROUND_NI , | ||
| 207 | D3D10_SB_OPCODE_ROUND_PI , | ||
| 208 | D3D10_SB_OPCODE_ROUND_Z , | ||
| 209 | D3D10_SB_OPCODE_RSQ , | ||
| 210 | D3D10_SB_OPCODE_SAMPLE , | ||
| 211 | D3D10_SB_OPCODE_SAMPLE_C , | ||
| 212 | D3D10_SB_OPCODE_SAMPLE_C_LZ , | ||
| 213 | D3D10_SB_OPCODE_SAMPLE_L , | ||
| 214 | D3D10_SB_OPCODE_SAMPLE_D , | ||
| 215 | D3D10_SB_OPCODE_SAMPLE_B , | ||
| 216 | D3D10_SB_OPCODE_SQRT , | ||
| 217 | D3D10_SB_OPCODE_SWITCH , | ||
| 218 | D3D10_SB_OPCODE_SINCOS , | ||
| 219 | D3D10_SB_OPCODE_UDIV , | ||
| 220 | D3D10_SB_OPCODE_ULT , | ||
| 221 | D3D10_SB_OPCODE_UGE , | ||
| 222 | D3D10_SB_OPCODE_UMUL , | ||
| 223 | D3D10_SB_OPCODE_UMAD , | ||
| 224 | D3D10_SB_OPCODE_UMAX , | ||
| 225 | D3D10_SB_OPCODE_UMIN , | ||
| 226 | D3D10_SB_OPCODE_USHR , | ||
| 227 | D3D10_SB_OPCODE_UTOF , | ||
| 228 | D3D10_SB_OPCODE_XOR , | ||
| 229 | D3D10_SB_OPCODE_DCL_RESOURCE , // DCL* opcodes have | ||
| 230 | D3D10_SB_OPCODE_DCL_CONSTANT_BUFFER , // custom operand formats. | ||
| 231 | D3D10_SB_OPCODE_DCL_SAMPLER , | ||
| 232 | D3D10_SB_OPCODE_DCL_INDEX_RANGE , | ||
| 233 | D3D10_SB_OPCODE_DCL_GS_OUTPUT_PRIMITIVE_TOPOLOGY , | ||
| 234 | D3D10_SB_OPCODE_DCL_GS_INPUT_PRIMITIVE , | ||
| 235 | D3D10_SB_OPCODE_DCL_MAX_OUTPUT_VERTEX_COUNT , | ||
| 236 | D3D10_SB_OPCODE_DCL_INPUT , | ||
| 237 | D3D10_SB_OPCODE_DCL_INPUT_SGV , | ||
| 238 | D3D10_SB_OPCODE_DCL_INPUT_SIV , | ||
| 239 | D3D10_SB_OPCODE_DCL_INPUT_PS , | ||
| 240 | D3D10_SB_OPCODE_DCL_INPUT_PS_SGV , | ||
| 241 | D3D10_SB_OPCODE_DCL_INPUT_PS_SIV , | ||
| 242 | D3D10_SB_OPCODE_DCL_OUTPUT , | ||
| 243 | D3D10_SB_OPCODE_DCL_OUTPUT_SGV , | ||
| 244 | D3D10_SB_OPCODE_DCL_OUTPUT_SIV , | ||
| 245 | D3D10_SB_OPCODE_DCL_TEMPS , | ||
| 246 | D3D10_SB_OPCODE_DCL_INDEXABLE_TEMP , | ||
| 247 | D3D10_SB_OPCODE_DCL_GLOBAL_FLAGS , | ||
| 248 | |||
| 249 | // ----------------------------------------------- | ||
| 250 | |||
| 251 | // This marks the end of D3D10.0 opcodes | ||
| 252 | D3D10_SB_OPCODE_RESERVED0, | ||
| 253 | |||
| 254 | // ---------- DX 10.1 op codes--------------------- | ||
| 255 | |||
| 256 | D3D10_1_SB_OPCODE_LOD, | ||
| 257 | D3D10_1_SB_OPCODE_GATHER4, | ||
| 258 | D3D10_1_SB_OPCODE_SAMPLE_POS, | ||
| 259 | D3D10_1_SB_OPCODE_SAMPLE_INFO, | ||
| 260 | |||
| 261 | // ----------------------------------------------- | ||
| 262 | |||
| 263 | // This marks the end of D3D10.1 opcodes | ||
| 264 | D3D10_1_SB_OPCODE_RESERVED1, | ||
| 265 | |||
| 266 | // ---------- DX 11 op codes--------------------- | ||
| 267 | D3D11_SB_OPCODE_HS_DECLS , // token marks beginning of HS sub-shader | ||
| 268 | D3D11_SB_OPCODE_HS_CONTROL_POINT_PHASE , // token marks beginning of HS sub-shader | ||
| 269 | D3D11_SB_OPCODE_HS_FORK_PHASE , // token marks beginning of HS sub-shader | ||
| 270 | D3D11_SB_OPCODE_HS_JOIN_PHASE , // token marks beginning of HS sub-shader | ||
| 271 | |||
| 272 | D3D11_SB_OPCODE_EMIT_STREAM , | ||
| 273 | D3D11_SB_OPCODE_CUT_STREAM , | ||
| 274 | D3D11_SB_OPCODE_EMITTHENCUT_STREAM , | ||
| 275 | D3D11_SB_OPCODE_INTERFACE_CALL , | ||
| 276 | |||
| 277 | D3D11_SB_OPCODE_BUFINFO , | ||
| 278 | D3D11_SB_OPCODE_DERIV_RTX_COARSE , | ||
| 279 | D3D11_SB_OPCODE_DERIV_RTX_FINE , | ||
| 280 | D3D11_SB_OPCODE_DERIV_RTY_COARSE , | ||
| 281 | D3D11_SB_OPCODE_DERIV_RTY_FINE , | ||
| 282 | D3D11_SB_OPCODE_GATHER4_C , | ||
| 283 | D3D11_SB_OPCODE_GATHER4_PO , | ||
| 284 | D3D11_SB_OPCODE_GATHER4_PO_C , | ||
| 285 | D3D11_SB_OPCODE_RCP , | ||
| 286 | D3D11_SB_OPCODE_F32TOF16 , | ||
| 287 | D3D11_SB_OPCODE_F16TOF32 , | ||
| 288 | D3D11_SB_OPCODE_UADDC , | ||
| 289 | D3D11_SB_OPCODE_USUBB , | ||
| 290 | D3D11_SB_OPCODE_COUNTBITS , | ||
| 291 | D3D11_SB_OPCODE_FIRSTBIT_HI , | ||
| 292 | D3D11_SB_OPCODE_FIRSTBIT_LO , | ||
| 293 | D3D11_SB_OPCODE_FIRSTBIT_SHI , | ||
| 294 | D3D11_SB_OPCODE_UBFE , | ||
| 295 | D3D11_SB_OPCODE_IBFE , | ||
| 296 | D3D11_SB_OPCODE_BFI , | ||
| 297 | D3D11_SB_OPCODE_BFREV , | ||
| 298 | D3D11_SB_OPCODE_SWAPC , | ||
| 299 | |||
| 300 | D3D11_SB_OPCODE_DCL_STREAM , | ||
| 301 | D3D11_SB_OPCODE_DCL_FUNCTION_BODY , | ||
| 302 | D3D11_SB_OPCODE_DCL_FUNCTION_TABLE , | ||
| 303 | D3D11_SB_OPCODE_DCL_INTERFACE , | ||
| 304 | |||
| 305 | D3D11_SB_OPCODE_DCL_INPUT_CONTROL_POINT_COUNT , | ||
| 306 | D3D11_SB_OPCODE_DCL_OUTPUT_CONTROL_POINT_COUNT , | ||
| 307 | D3D11_SB_OPCODE_DCL_TESS_DOMAIN , | ||
| 308 | D3D11_SB_OPCODE_DCL_TESS_PARTITIONING , | ||
| 309 | D3D11_SB_OPCODE_DCL_TESS_OUTPUT_PRIMITIVE , | ||
| 310 | D3D11_SB_OPCODE_DCL_HS_MAX_TESSFACTOR , | ||
| 311 | D3D11_SB_OPCODE_DCL_HS_FORK_PHASE_INSTANCE_COUNT , | ||
| 312 | D3D11_SB_OPCODE_DCL_HS_JOIN_PHASE_INSTANCE_COUNT , | ||
| 313 | |||
| 314 | D3D11_SB_OPCODE_DCL_THREAD_GROUP , | ||
| 315 | D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_TYPED , | ||
| 316 | D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_RAW , | ||
| 317 | D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_STRUCTURED, | ||
| 318 | D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_RAW, | ||
| 319 | D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_STRUCTURED, | ||
| 320 | D3D11_SB_OPCODE_DCL_RESOURCE_RAW , | ||
| 321 | D3D11_SB_OPCODE_DCL_RESOURCE_STRUCTURED , | ||
| 322 | D3D11_SB_OPCODE_LD_UAV_TYPED , | ||
| 323 | D3D11_SB_OPCODE_STORE_UAV_TYPED , | ||
| 324 | D3D11_SB_OPCODE_LD_RAW , | ||
| 325 | D3D11_SB_OPCODE_STORE_RAW , | ||
| 326 | D3D11_SB_OPCODE_LD_STRUCTURED , | ||
| 327 | D3D11_SB_OPCODE_STORE_STRUCTURED , | ||
| 328 | D3D11_SB_OPCODE_ATOMIC_AND , | ||
| 329 | D3D11_SB_OPCODE_ATOMIC_OR , | ||
| 330 | D3D11_SB_OPCODE_ATOMIC_XOR , | ||
| 331 | D3D11_SB_OPCODE_ATOMIC_CMP_STORE , | ||
| 332 | D3D11_SB_OPCODE_ATOMIC_IADD , | ||
| 333 | D3D11_SB_OPCODE_ATOMIC_IMAX , | ||
| 334 | D3D11_SB_OPCODE_ATOMIC_IMIN , | ||
| 335 | D3D11_SB_OPCODE_ATOMIC_UMAX , | ||
| 336 | D3D11_SB_OPCODE_ATOMIC_UMIN , | ||
| 337 | D3D11_SB_OPCODE_IMM_ATOMIC_ALLOC , | ||
| 338 | D3D11_SB_OPCODE_IMM_ATOMIC_CONSUME , | ||
| 339 | D3D11_SB_OPCODE_IMM_ATOMIC_IADD , | ||
| 340 | D3D11_SB_OPCODE_IMM_ATOMIC_AND , | ||
| 341 | D3D11_SB_OPCODE_IMM_ATOMIC_OR , | ||
| 342 | D3D11_SB_OPCODE_IMM_ATOMIC_XOR , | ||
| 343 | D3D11_SB_OPCODE_IMM_ATOMIC_EXCH , | ||
| 344 | D3D11_SB_OPCODE_IMM_ATOMIC_CMP_EXCH , | ||
| 345 | D3D11_SB_OPCODE_IMM_ATOMIC_IMAX , | ||
| 346 | D3D11_SB_OPCODE_IMM_ATOMIC_IMIN , | ||
| 347 | D3D11_SB_OPCODE_IMM_ATOMIC_UMAX , | ||
| 348 | D3D11_SB_OPCODE_IMM_ATOMIC_UMIN , | ||
| 349 | D3D11_SB_OPCODE_SYNC , | ||
| 350 | |||
| 351 | D3D11_SB_OPCODE_DADD , | ||
| 352 | D3D11_SB_OPCODE_DMAX , | ||
| 353 | D3D11_SB_OPCODE_DMIN , | ||
| 354 | D3D11_SB_OPCODE_DMUL , | ||
| 355 | D3D11_SB_OPCODE_DEQ , | ||
| 356 | D3D11_SB_OPCODE_DGE , | ||
| 357 | D3D11_SB_OPCODE_DLT , | ||
| 358 | D3D11_SB_OPCODE_DNE , | ||
| 359 | D3D11_SB_OPCODE_DMOV , | ||
| 360 | D3D11_SB_OPCODE_DMOVC , | ||
| 361 | D3D11_SB_OPCODE_DTOF , | ||
| 362 | D3D11_SB_OPCODE_FTOD , | ||
| 363 | |||
| 364 | D3D11_SB_OPCODE_EVAL_SNAPPED , | ||
| 365 | D3D11_SB_OPCODE_EVAL_SAMPLE_INDEX , | ||
| 366 | D3D11_SB_OPCODE_EVAL_CENTROID , | ||
| 367 | |||
| 368 | D3D11_SB_OPCODE_DCL_GS_INSTANCE_COUNT , | ||
| 369 | |||
| 370 | D3D11_SB_OPCODE_ABORT , | ||
| 371 | D3D11_SB_OPCODE_DEBUG_BREAK , | ||
| 372 | |||
| 373 | // ----------------------------------------------- | ||
| 374 | |||
| 375 | // This marks the end of D3D11.0 opcodes | ||
| 376 | D3D11_SB_OPCODE_RESERVED0, | ||
| 377 | |||
| 378 | D3D11_1_SB_OPCODE_DDIV, | ||
| 379 | D3D11_1_SB_OPCODE_DFMA, | ||
| 380 | D3D11_1_SB_OPCODE_DRCP, | ||
| 381 | |||
| 382 | D3D11_1_SB_OPCODE_MSAD, | ||
| 383 | |||
| 384 | D3D11_1_SB_OPCODE_DTOI, | ||
| 385 | D3D11_1_SB_OPCODE_DTOU, | ||
| 386 | D3D11_1_SB_OPCODE_ITOD, | ||
| 387 | D3D11_1_SB_OPCODE_UTOD, | ||
| 388 | |||
| 389 | // ----------------------------------------------- | ||
| 390 | |||
| 391 | // This marks the end of D3D11.1 opcodes | ||
| 392 | D3D11_1_SB_OPCODE_RESERVED0, | ||
| 393 | |||
| 394 | D3DWDDM1_3_SB_OPCODE_GATHER4_FEEDBACK, | ||
| 395 | D3DWDDM1_3_SB_OPCODE_GATHER4_C_FEEDBACK, | ||
| 396 | D3DWDDM1_3_SB_OPCODE_GATHER4_PO_FEEDBACK, | ||
| 397 | D3DWDDM1_3_SB_OPCODE_GATHER4_PO_C_FEEDBACK, | ||
| 398 | D3DWDDM1_3_SB_OPCODE_LD_FEEDBACK, | ||
| 399 | D3DWDDM1_3_SB_OPCODE_LD_MS_FEEDBACK, | ||
| 400 | D3DWDDM1_3_SB_OPCODE_LD_UAV_TYPED_FEEDBACK, | ||
| 401 | D3DWDDM1_3_SB_OPCODE_LD_RAW_FEEDBACK, | ||
| 402 | D3DWDDM1_3_SB_OPCODE_LD_STRUCTURED_FEEDBACK, | ||
| 403 | D3DWDDM1_3_SB_OPCODE_SAMPLE_L_FEEDBACK, | ||
| 404 | D3DWDDM1_3_SB_OPCODE_SAMPLE_C_LZ_FEEDBACK, | ||
| 405 | |||
| 406 | D3DWDDM1_3_SB_OPCODE_SAMPLE_CLAMP_FEEDBACK, | ||
| 407 | D3DWDDM1_3_SB_OPCODE_SAMPLE_B_CLAMP_FEEDBACK, | ||
| 408 | D3DWDDM1_3_SB_OPCODE_SAMPLE_D_CLAMP_FEEDBACK, | ||
| 409 | D3DWDDM1_3_SB_OPCODE_SAMPLE_C_CLAMP_FEEDBACK, | ||
| 410 | |||
| 411 | D3DWDDM1_3_SB_OPCODE_CHECK_ACCESS_FULLY_MAPPED, | ||
| 412 | |||
| 413 | // ----------------------------------------------- | ||
| 414 | |||
| 415 | // This marks the end of WDDM 1.3 opcodes | ||
| 416 | D3DWDDM1_3_SB_OPCODE_RESERVED0, | ||
| 417 | |||
| 418 | D3D10_SB_NUM_OPCODES // Should be the last entry | ||
| 419 | } D3D10_SB_OPCODE_TYPE; | ||
| 420 | |||
| 421 | #define D3D10_SB_OPCODE_TYPE_MASK 0x00007ff | ||
| 422 | // DECODER MACRO: Retrieve program opcode | ||
| 423 | #define DECODE_D3D10_SB_OPCODE_TYPE(OpcodeToken0) ((D3D10_SB_OPCODE_TYPE)((OpcodeToken0)&D3D10_SB_OPCODE_TYPE_MASK)) | ||
| 424 | // ENCODER MACRO: Create the opcode-type portion of OpcodeToken0 | ||
| 425 | #define ENCODE_D3D10_SB_OPCODE_TYPE(OpcodeName) ((OpcodeName)&D3D10_SB_OPCODE_TYPE_MASK) | ||
| 426 | |||
| 427 | #define D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_MASK 0x7f000000 | ||
| 428 | #define D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT 24 | ||
| 429 | // DECODER MACRO: Retrieve instruction length | ||
| 430 | // in # of DWORDs including the opcode token(s). | ||
| 431 | // The range is 1-127. | ||
| 432 | #define DECODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(OpcodeToken0) (((OpcodeToken0)&D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_MASK)>> D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT) | ||
| 433 | |||
| 434 | // ENCODER MACRO: Store instruction length | ||
| 435 | // portion of OpcodeToken0, in # of DWORDs | ||
| 436 | // including the opcode token(s). | ||
| 437 | // Valid range is 1-127. | ||
| 438 | #define ENCODE_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH(Length) (((Length)<<D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_SHIFT)&D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH_MASK) | ||
| 439 | #define MAX_D3D10_SB_TOKENIZED_INSTRUCTION_LENGTH 127 | ||
| 440 | |||
| 441 | #define D3D10_SB_INSTRUCTION_SATURATE_MASK 0x00002000 | ||
| 442 | // DECODER MACRO: Check OpcodeToken0 to see if an instruction | ||
| 443 | // is to saturate the result [0..1] | ||
| 444 | // This flag is indicated by one of the bits in the | ||
| 445 | // opcode specific control range. | ||
| 446 | #define DECODE_IS_D3D10_SB_INSTRUCTION_SATURATE_ENABLED(OpcodeToken0) ((OpcodeToken0)&D3D10_SB_INSTRUCTION_SATURATE_MASK) | ||
| 447 | // ENCODER MACRO: Encode in OpcodeToken0 if instruction is to saturate the result. | ||
| 448 | #define ENCODE_D3D10_SB_INSTRUCTION_SATURATE(bSat) (((bSat)!=0)?D3D10_SB_INSTRUCTION_SATURATE_MASK:0) | ||
| 449 | |||
| 450 | // Boolean test for conditional instructions such as if (if_z or if_nz) | ||
| 451 | // This is part of the opcode specific control range. | ||
| 452 | typedef enum D3D10_SB_INSTRUCTION_TEST_BOOLEAN | ||
| 453 | { | ||
| 454 | D3D10_SB_INSTRUCTION_TEST_ZERO = 0, | ||
| 455 | D3D10_SB_INSTRUCTION_TEST_NONZERO = 1 | ||
| 456 | } D3D10_SB_INSTRUCTION_TEST_BOOLEAN; | ||
| 457 | #define D3D10_SB_INSTRUCTION_TEST_BOOLEAN_MASK 0x00040000 | ||
| 458 | #define D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT 18 | ||
| 459 | |||
| 460 | // DECODER MACRO: For an OpcodeToken0 for requires either a | ||
| 461 | // zero or non-zero test, determine which test was chosen. | ||
| 462 | #define DECODE_D3D10_SB_INSTRUCTION_TEST_BOOLEAN(OpcodeToken0) ((D3D10_SB_INSTRUCTION_TEST_BOOLEAN)(((OpcodeToken0)&D3D10_SB_INSTRUCTION_TEST_BOOLEAN_MASK)>>D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT)) | ||
| 463 | // ENCODER MACRO: Store "zero" or "nonzero" in the opcode | ||
| 464 | // specific control range of OpcodeToken0 | ||
| 465 | #define ENCODE_D3D10_SB_INSTRUCTION_TEST_BOOLEAN(Boolean) (((Boolean)<<D3D10_SB_INSTRUCTION_TEST_BOOLEAN_SHIFT)&D3D10_SB_INSTRUCTION_TEST_BOOLEAN_MASK) | ||
| 466 | |||
| 467 | // Precise value mask (bits 19-22) | ||
| 468 | // This is part of the opcode specific control range. | ||
| 469 | // It's 1 bit per-channel of the output, for instructions with multiple | ||
| 470 | // output operands, it applies to that component in each operand. This | ||
| 471 | // uses the components defined in D3D10_SB_COMPONENT_NAME. | ||
| 472 | #define D3D11_SB_INSTRUCTION_PRECISE_VALUES_MASK 0x00780000 | ||
| 473 | #define D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT 19 | ||
| 474 | |||
| 475 | // DECODER MACRO: this macro extracts from OpcodeToken0 the 4 component | ||
| 476 | // (xyzw) mask, as a field of D3D10_SB_4_COMPONENT_[X|Y|Z|W] flags. | ||
| 477 | #define DECODE_D3D11_SB_INSTRUCTION_PRECISE_VALUES(OpcodeToken0) ((((OpcodeToken0)&D3D11_SB_INSTRUCTION_PRECISE_VALUES_MASK)>>D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT)) | ||
| 478 | // ENCODER MACRO: Given a set of | ||
| 479 | // D3D10_SB_OPERAND_4_COMPONENT_[X|Y|Z|W] values | ||
| 480 | // or'd together, encode them in OpcodeToken0. | ||
| 481 | #define ENCODE_D3D11_SB_INSTRUCTION_PRECISE_VALUES(ComponentMask) (((ComponentMask)<<D3D11_SB_INSTRUCTION_PRECISE_VALUES_SHIFT)&D3D11_SB_INSTRUCTION_PRECISE_VALUES_MASK) | ||
| 482 | |||
| 483 | // resinfo instruction return type | ||
| 484 | typedef enum D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE | ||
| 485 | { | ||
| 486 | D3D10_SB_RESINFO_INSTRUCTION_RETURN_FLOAT = 0, | ||
| 487 | D3D10_SB_RESINFO_INSTRUCTION_RETURN_RCPFLOAT = 1, | ||
| 488 | D3D10_SB_RESINFO_INSTRUCTION_RETURN_UINT = 2 | ||
| 489 | } D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE; | ||
| 490 | |||
| 491 | #define D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_MASK 0x00001800 | ||
| 492 | #define D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT 11 | ||
| 493 | |||
| 494 | // DECODER MACRO: For an OpcodeToken0 for the resinfo instruction, | ||
| 495 | // determine the return type. | ||
| 496 | #define DECODE_D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE(OpcodeToken0) ((D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE)(((OpcodeToken0)&D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_MASK)>>D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT)) | ||
| 497 | // ENCODER MACRO: Encode the return type for the resinfo instruction | ||
| 498 | // in the opcode specific control range of OpcodeToken0 | ||
| 499 | #define ENCODE_D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE(ReturnType) (((ReturnType)<<D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_SHIFT)&D3D10_SB_RESINFO_INSTRUCTION_RETURN_TYPE_MASK) | ||
| 500 | |||
| 501 | // sync instruction flags | ||
| 502 | #define D3D11_SB_SYNC_THREADS_IN_GROUP 0x00000800 | ||
| 503 | #define D3D11_SB_SYNC_THREAD_GROUP_SHARED_MEMORY 0x00001000 | ||
| 504 | #define D3D11_SB_SYNC_UNORDERED_ACCESS_VIEW_MEMORY_GROUP 0x00002000 | ||
| 505 | #define D3D11_SB_SYNC_UNORDERED_ACCESS_VIEW_MEMORY_GLOBAL 0x00004000 | ||
| 506 | #define D3D11_SB_SYNC_FLAGS_MASK 0x00007800 | ||
| 507 | |||
| 508 | // DECODER MACRO: Retrieve flags for sync instruction from OpcodeToken0. | ||
| 509 | #define DECODE_D3D11_SB_SYNC_FLAGS(OperandToken0) ((OperandToken0)&D3D11_SB_SYNC_FLAGS_MASK) | ||
| 510 | |||
| 511 | // ENCODER MACRO: Given a set of sync instruciton flags, encode them in OpcodeToken0. | ||
| 512 | #define ENCODE_D3D11_SB_SYNC_FLAGS(Flags) ((Flags)&D3D11_SB_SYNC_FLAGS_MASK) | ||
| 513 | |||
| 514 | #define D3D10_SB_OPCODE_EXTENDED_MASK 0x80000000 | ||
| 515 | #define D3D10_SB_OPCODE_EXTENDED_SHIFT 31 | ||
| 516 | // DECODER MACRO: Determine if the opcode is extended | ||
| 517 | // by an additional opcode token. Currently there are no | ||
| 518 | // extended opcodes. | ||
| 519 | #define DECODE_IS_D3D10_SB_OPCODE_EXTENDED(OpcodeToken0) (((OpcodeToken0)&D3D10_SB_OPCODE_EXTENDED_MASK)>> D3D10_SB_OPCODE_EXTENDED_SHIFT) | ||
| 520 | // ENCODER MACRO: Store in OpcodeToken0 whether the opcode is extended | ||
| 521 | // by an additional opcode token. | ||
| 522 | #define ENCODE_D3D10_SB_OPCODE_EXTENDED(bExtended) (((bExtended)!=0)?D3D10_SB_OPCODE_EXTENDED_MASK:0) | ||
| 523 | |||
| 524 | // ---------------------------------------------------------------------------- | ||
| 525 | // Extended Opcode Format (OpcodeToken1) | ||
| 526 | // | ||
| 527 | // If bit31 of an opcode token is set, the | ||
| 528 | // opcode has an additional extended opcode token DWORD | ||
| 529 | // directly following OpcodeToken0. Other tokens | ||
| 530 | // expected for the opcode, such as the operand | ||
| 531 | // token(s) always follow | ||
| 532 | // OpcodeToken0 AND OpcodeToken1..n (extended | ||
| 533 | // opcode tokens, if present). | ||
| 534 | // | ||
| 535 | // [05:00] D3D10_SB_EXTENDED_OPCODE_TYPE | ||
| 536 | // [30:06] if([05:00] == D3D10_SB_EXTENDED_OPCODE_SAMPLE_CONTROLS) | ||
| 537 | // { | ||
| 538 | // This custom opcode contains controls for SAMPLE. | ||
| 539 | // [08:06] Ignored, 0. | ||
| 540 | // [12:09] U texel immediate offset (4 bit 2's comp) (0 default) | ||
| 541 | // [16:13] V texel immediate offset (4 bit 2's comp) (0 default) | ||
| 542 | // [20:17] W texel immediate offset (4 bit 2's comp) (0 default) | ||
| 543 | // [30:14] Ignored, 0. | ||
| 544 | // } | ||
| 545 | // else if( [05:00] == D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM ) | ||
| 546 | // { | ||
| 547 | // [10:06] D3D10_SB_RESOURCE_DIMENSION | ||
| 548 | // [22:11] When dimension is D3D11_SB_RESOURCE_DIMENSION_STRUCTURED_BUFFER this holds the buffer stride, otherwise 0 | ||
| 549 | // [30:23] Ignored, 0. | ||
| 550 | // } | ||
| 551 | // else if( [05:00] == D3D11_SB_EXTENDED_OPCODE_RESOURCE_RETURN_TYPE ) | ||
| 552 | // { | ||
| 553 | // [09:06] D3D10_SB_RESOURCE_RETURN_TYPE for component X | ||
| 554 | // [13:10] D3D10_SB_RESOURCE_RETURN_TYPE for component Y | ||
| 555 | // [17:14] D3D10_SB_RESOURCE_RETURN_TYPE for component Z | ||
| 556 | // [21:18] D3D10_SB_RESOURCE_RETURN_TYPE for component W | ||
| 557 | // [30:22] Ignored, 0. | ||
| 558 | // } | ||
| 559 | // else | ||
| 560 | // { | ||
| 561 | // [30:04] Ignored, 0. | ||
| 562 | // } | ||
| 563 | // [31] 0 normally. 1 there is another extended opcode. Any number | ||
| 564 | // of extended opcode tokens can be chained. It is possible that some extended | ||
| 565 | // opcode tokens could include multiple DWORDS - that is defined | ||
| 566 | // on a case by case basis. | ||
| 567 | // | ||
| 568 | // ---------------------------------------------------------------------------- | ||
| 569 | typedef enum D3D10_SB_EXTENDED_OPCODE_TYPE | ||
| 570 | { | ||
| 571 | D3D10_SB_EXTENDED_OPCODE_EMPTY = 0, | ||
| 572 | D3D10_SB_EXTENDED_OPCODE_SAMPLE_CONTROLS = 1, | ||
| 573 | D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM = 2, | ||
| 574 | D3D11_SB_EXTENDED_OPCODE_RESOURCE_RETURN_TYPE = 3, | ||
| 575 | } D3D10_SB_EXTENDED_OPCODE_TYPE; | ||
| 576 | #define D3D11_SB_MAX_SIMULTANEOUS_EXTENDED_OPCODES 3 | ||
| 577 | |||
| 578 | #define D3D10_SB_EXTENDED_OPCODE_TYPE_MASK 0x0000003f | ||
| 579 | |||
| 580 | // DECODER MACRO: Given an extended opcode | ||
| 581 | // token (OpcodeToken1), figure out what type | ||
| 582 | // of token it is (from D3D10_SB_EXTENDED_OPCODE_TYPE enum) | ||
| 583 | // to be able to interpret the rest of the token's contents. | ||
| 584 | #define DECODE_D3D10_SB_EXTENDED_OPCODE_TYPE(OpcodeToken1) ((D3D10_SB_EXTENDED_OPCODE_TYPE)((OpcodeToken1)&D3D10_SB_EXTENDED_OPCODE_TYPE_MASK)) | ||
| 585 | |||
| 586 | // ENCODER MACRO: Store extended opcode token | ||
| 587 | // type in OpcodeToken1. | ||
| 588 | #define ENCODE_D3D10_SB_EXTENDED_OPCODE_TYPE(ExtOpcodeType) ((ExtOpcodeType)&D3D10_SB_EXTENDED_OPCODE_TYPE_MASK) | ||
| 589 | |||
| 590 | typedef enum D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD | ||
| 591 | { | ||
| 592 | D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_U = 0, | ||
| 593 | D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_V = 1, | ||
| 594 | D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_W = 2, | ||
| 595 | } D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD; | ||
| 596 | #define D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD_MASK (3) | ||
| 597 | #define D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord) (9+4*((Coord)&D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_COORD_MASK)) | ||
| 598 | #define D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord) (0x0000000f<<D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord)) | ||
| 599 | |||
| 600 | // DECODER MACRO: Given an extended opcode token | ||
| 601 | // (OpcodeToken1), and extended token type == | ||
| 602 | // D3D10_SB_EXTENDED_OPCODE_SAMPLE_CONTROLS, determine the immediate | ||
| 603 | // texel address offset for u/v/w (D3D10_SB_ADDRESS_OFFSET_COORD) | ||
| 604 | // This macro returns a (signed) integer, by sign extending the | ||
| 605 | // decoded 4 bit 2's complement immediate value. | ||
| 606 | #define DECODE_IMMEDIATE_D3D10_SB_ADDRESS_OFFSET(Coord,OpcodeToken1) ((((OpcodeToken1)&D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord))>>(D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord)))) | ||
| 607 | |||
| 608 | // ENCODER MACRO: Store the immediate texel address offset | ||
| 609 | // for U or V or W Coord (D3D10_SB_ADDRESS_OFFSET_COORD) in an extended | ||
| 610 | // opcode token (OpcodeToken1) that has extended opcode | ||
| 611 | // type == D3D10_SB_EXTENDED_OPCODE_SAMPLE_CONTROLS (opcode type encoded separately) | ||
| 612 | // A 2's complement number is expected as input, from which the LSB 4 bits are extracted. | ||
| 613 | #define ENCODE_IMMEDIATE_D3D10_SB_ADDRESS_OFFSET(Coord,ImmediateOffset) (((ImmediateOffset)<<D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_SHIFT(Coord))&D3D10_SB_IMMEDIATE_ADDRESS_OFFSET_MASK(Coord)) | ||
| 614 | |||
| 615 | #define D3D11_SB_EXTENDED_RESOURCE_DIMENSION_MASK 0x000007C0 | ||
| 616 | #define D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT 6 | ||
| 617 | |||
| 618 | // DECODER MACRO: Given an extended resource declaration token, | ||
| 619 | // (D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM), determine the resource dimension | ||
| 620 | // (D3D10_SB_RESOURCE_DIMENSION enum) | ||
| 621 | #define DECODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION(OpcodeTokenN) ((D3D10_SB_RESOURCE_DIMENSION)(((OpcodeTokenN)&D3D11_SB_EXTENDED_RESOURCE_DIMENSION_MASK)>>D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT)) | ||
| 622 | |||
| 623 | // ENCODER MACRO: Store resource dimension | ||
| 624 | // (D3D10_SB_RESOURCE_DIMENSION enum) into a | ||
| 625 | // an extended resource declaration token (D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM) | ||
| 626 | #define ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION(ResourceDim) (((ResourceDim)<<D3D11_SB_EXTENDED_RESOURCE_DIMENSION_SHIFT)&D3D11_SB_EXTENDED_RESOURCE_DIMENSION_MASK) | ||
| 627 | |||
| 628 | #define D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_MASK 0x007FF800 | ||
| 629 | #define D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT 11 | ||
| 630 | |||
| 631 | // DECODER MACRO: Given an extended resource declaration token for a structured buffer, | ||
| 632 | // (D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM), determine the structure stride | ||
| 633 | // (12-bit unsigned integer) | ||
| 634 | #define DECODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE(OpcodeTokenN) (((OpcodeTokenN)&D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_MASK)>>D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT) | ||
| 635 | |||
| 636 | // ENCODER MACRO: Store resource dimension structure stride | ||
| 637 | // (12-bit unsigned integer) into a | ||
| 638 | // an extended resource declaration token (D3D11_SB_EXTENDED_OPCODE_RESOURCE_DIM) | ||
| 639 | #define ENCODE_D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE(Stride) (((Stride)<<D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_SHIFT)&D3D11_SB_EXTENDED_RESOURCE_DIMENSION_STRUCTURE_STRIDE_MASK) | ||
| 640 | |||
| 641 | #define D3D10_SB_RESOURCE_RETURN_TYPE_MASK 0x0000000f | ||
| 642 | #define D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS 0x00000004 | ||
| 643 | #define D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT 6 | ||
| 644 | |||
| 645 | // DECODER MACRO: Get the resource return type for component (0-3) from | ||
| 646 | // an extended resource declaration token (D3D11_SB_EXTENDED_OPCODE_RESOURCE_RETURN_TYPE) | ||
| 647 | #define DECODE_D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE(OpcodeTokenN, Component) \ | ||
| 648 | ((D3D10_SB_RESOURCE_RETURN_TYPE)(((OpcodeTokenN) >> \ | ||
| 649 | (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS + D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT))&D3D10_SB_RESOURCE_RETURN_TYPE_MASK)) | ||
| 650 | |||
| 651 | // ENCODER MACRO: Generate a resource return type for a component in an extended | ||
| 652 | // resource delcaration token (D3D11_SB_EXTENDED_OPCODE_RESOURCE_RETURN_TYPE) | ||
| 653 | #define ENCODE_D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE(ReturnType, Component) \ | ||
| 654 | (((ReturnType)&D3D10_SB_RESOURCE_RETURN_TYPE_MASK) << (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS + D3D11_SB_EXTENDED_RESOURCE_RETURN_TYPE_SHIFT)) | ||
| 655 | |||
| 656 | // ---------------------------------------------------------------------------- | ||
| 657 | // Custom-Data Block Format | ||
| 658 | // | ||
| 659 | // DWORD 0 (CustomDataDescTok): | ||
| 660 | // [10:00] == D3D10_SB_OPCODE_CUSTOMDATA | ||
| 661 | // [31:11] == D3D10_SB_CUSTOMDATA_CLASS | ||
| 662 | // | ||
| 663 | // DWORD 1: | ||
| 664 | // 32-bit unsigned integer count of number | ||
| 665 | // of DWORDs in custom-data block, | ||
| 666 | // including DWORD 0 and DWORD 1. | ||
| 667 | // So the minimum value is 0x00000002, | ||
| 668 | // meaning empty custom-data. | ||
| 669 | // | ||
| 670 | // Layout of custom-data contents, for the various meta-data classes, | ||
| 671 | // not defined in this file. | ||
| 672 | // | ||
| 673 | // ---------------------------------------------------------------------------- | ||
| 674 | |||
| 675 | typedef enum D3D10_SB_CUSTOMDATA_CLASS | ||
| 676 | { | ||
| 677 | D3D10_SB_CUSTOMDATA_COMMENT = 0, | ||
| 678 | D3D10_SB_CUSTOMDATA_DEBUGINFO, | ||
| 679 | D3D10_SB_CUSTOMDATA_OPAQUE, | ||
| 680 | D3D10_SB_CUSTOMDATA_DCL_IMMEDIATE_CONSTANT_BUFFER, | ||
| 681 | D3D11_SB_CUSTOMDATA_SHADER_MESSAGE, | ||
| 682 | D3D11_SB_CUSTOMDATA_SHADER_CLIP_PLANE_CONSTANT_MAPPINGS_FOR_DX9, | ||
| 683 | } D3D10_SB_CUSTOMDATA_CLASS; | ||
| 684 | |||
| 685 | #define D3D10_SB_CUSTOMDATA_CLASS_MASK 0xfffff800 | ||
| 686 | #define D3D10_SB_CUSTOMDATA_CLASS_SHIFT 11 | ||
| 687 | // DECODER MACRO: Find out what class of custom-data is present. | ||
| 688 | // The contents of the custom-data block are defined | ||
| 689 | // for each class of custom-data. | ||
| 690 | #define DECODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataDescTok) ((D3D10_SB_CUSTOMDATA_CLASS)(((CustomDataDescTok)&D3D10_SB_CUSTOMDATA_CLASS_MASK)>>D3D10_SB_CUSTOMDATA_CLASS_SHIFT)) | ||
| 691 | // ENCODER MACRO: Create complete CustomDataDescTok | ||
| 692 | #define ENCODE_D3D10_SB_CUSTOMDATA_CLASS(CustomDataClass) (ENCODE_D3D10_SB_OPCODE_TYPE(D3D10_SB_OPCODE_CUSTOMDATA)|(((CustomDataClass)<<D3D10_SB_CUSTOMDATA_CLASS_SHIFT)&D3D10_SB_CUSTOMDATA_CLASS_MASK)) | ||
| 693 | |||
| 694 | // ---------------------------------------------------------------------------- | ||
| 695 | // Instruction Operand Format (OperandToken0) | ||
| 696 | // | ||
| 697 | // [01:00] D3D10_SB_OPERAND_NUM_COMPONENTS | ||
| 698 | // [11:02] Component Selection | ||
| 699 | // if([01:00] == D3D10_SB_OPERAND_0_COMPONENT) | ||
| 700 | // [11:02] = Ignored, 0 | ||
| 701 | // else if([01:00] == D3D10_SB_OPERAND_1_COMPONENT | ||
| 702 | // [11:02] = Ignored, 0 | ||
| 703 | // else if([01:00] == D3D10_SB_OPERAND_4_COMPONENT | ||
| 704 | // { | ||
| 705 | // [03:02] = D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE | ||
| 706 | // if([03:02] == D3D10_SB_OPERAND_4_COMPONENT_MASK_MODE) | ||
| 707 | // { | ||
| 708 | // [07:04] = D3D10_SB_OPERAND_4_COMPONENT_MASK | ||
| 709 | // [11:08] = Ignored, 0 | ||
| 710 | // } | ||
| 711 | // else if([03:02] == D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MODE) | ||
| 712 | // { | ||
| 713 | // [11:04] = D3D10_SB_4_COMPONENT_SWIZZLE | ||
| 714 | // } | ||
| 715 | // else if([03:02] == D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MODE) | ||
| 716 | // { | ||
| 717 | // [05:04] = D3D10_SB_4_COMPONENT_NAME | ||
| 718 | // [11:06] = Ignored, 0 | ||
| 719 | // } | ||
| 720 | // } | ||
| 721 | // else if([01:00] == D3D10_SB_OPERAND_N_COMPONENT) | ||
| 722 | // { | ||
| 723 | // Currently not defined. | ||
| 724 | // } | ||
| 725 | // [19:12] D3D10_SB_OPERAND_TYPE | ||
| 726 | // [21:20] D3D10_SB_OPERAND_INDEX_DIMENSION: | ||
| 727 | // Number of dimensions in the register | ||
| 728 | // file (NOT the # of dimensions in the | ||
| 729 | // individual register or memory | ||
| 730 | // resource being referenced). | ||
| 731 | // [24:22] if( [21:20] >= D3D10_SB_OPERAND_INDEX_1D ) | ||
| 732 | // D3D10_SB_OPERAND_INDEX_REPRESENTATION for first operand index | ||
| 733 | // else | ||
| 734 | // Ignored, 0 | ||
| 735 | // [27:25] if( [21:20] >= D3D10_SB_OPERAND_INDEX_2D ) | ||
| 736 | // D3D10_SB_OPERAND_INDEX_REPRESENTATION for second operand index | ||
| 737 | // else | ||
| 738 | // Ignored, 0 | ||
| 739 | // [30:28] if( [21:20] == D3D10_SB_OPERAND_INDEX_3D ) | ||
| 740 | // D3D10_SB_OPERAND_INDEX_REPRESENTATION for third operand index | ||
| 741 | // else | ||
| 742 | // Ignored, 0 | ||
| 743 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 744 | // contains extended operand description. | ||
| 745 | // | ||
| 746 | // ---------------------------------------------------------------------------- | ||
| 747 | |||
| 748 | // Number of components in data vector referred to by operand. | ||
| 749 | typedef enum D3D10_SB_OPERAND_NUM_COMPONENTS | ||
| 750 | { | ||
| 751 | D3D10_SB_OPERAND_0_COMPONENT = 0, | ||
| 752 | D3D10_SB_OPERAND_1_COMPONENT = 1, | ||
| 753 | D3D10_SB_OPERAND_4_COMPONENT = 2, | ||
| 754 | D3D10_SB_OPERAND_N_COMPONENT = 3 // unused for now | ||
| 755 | } D3D10_SB_OPERAND_NUM_COMPONENTS; | ||
| 756 | #define D3D10_SB_OPERAND_NUM_COMPONENTS_MASK 0x00000003 | ||
| 757 | |||
| 758 | // DECODER MACRO: Extract from OperandToken0 how many components | ||
| 759 | // the data vector referred to by the operand contains. | ||
| 760 | // (D3D10_SB_OPERAND_NUM_COMPONENTS enum) | ||
| 761 | #define DECODE_D3D10_SB_OPERAND_NUM_COMPONENTS(OperandToken0) ((D3D10_SB_OPERAND_NUM_COMPONENTS)((OperandToken0)&D3D10_SB_OPERAND_NUM_COMPONENTS_MASK)) | ||
| 762 | |||
| 763 | // ENCODER MACRO: Define in OperandToken0 how many components | ||
| 764 | // the data vector referred to by the operand contains. | ||
| 765 | // (D3D10_SB_OPERAND_NUM_COMPONENTS enum). | ||
| 766 | #define ENCODE_D3D10_SB_OPERAND_NUM_COMPONENTS(NumComp) ((NumComp)&D3D10_SB_OPERAND_NUM_COMPONENTS_MASK) | ||
| 767 | |||
| 768 | typedef enum D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE | ||
| 769 | { | ||
| 770 | D3D10_SB_OPERAND_4_COMPONENT_MASK_MODE = 0, // mask 4 components | ||
| 771 | D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MODE = 1, // swizzle 4 components | ||
| 772 | D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MODE = 2, // select 1 of 4 components | ||
| 773 | } D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE; | ||
| 774 | |||
| 775 | #define D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK 0x0000000c | ||
| 776 | #define D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT 2 | ||
| 777 | |||
| 778 | // DECODER MACRO: For an operand representing 4component data, | ||
| 779 | // extract from OperandToken0 the method for selecting data from | ||
| 780 | // the 4 components (D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE). | ||
| 781 | #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)) | ||
| 782 | |||
| 783 | // ENCODER MACRO: For an operand representing 4component data, | ||
| 784 | // encode in OperandToken0 a value from D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE | ||
| 785 | #define ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE(SelectionMode) (((SelectionMode)<<D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_SHIFT)&D3D10_SB_OPERAND_4_COMPONENT_SELECTION_MODE_MASK) | ||
| 786 | |||
| 787 | typedef enum D3D10_SB_4_COMPONENT_NAME | ||
| 788 | { | ||
| 789 | D3D10_SB_4_COMPONENT_X = 0, | ||
| 790 | D3D10_SB_4_COMPONENT_Y = 1, | ||
| 791 | D3D10_SB_4_COMPONENT_Z = 2, | ||
| 792 | D3D10_SB_4_COMPONENT_W = 3, | ||
| 793 | D3D10_SB_4_COMPONENT_R = 0, | ||
| 794 | D3D10_SB_4_COMPONENT_G = 1, | ||
| 795 | D3D10_SB_4_COMPONENT_B = 2, | ||
| 796 | D3D10_SB_4_COMPONENT_A = 3 | ||
| 797 | } D3D10_SB_4_COMPONENT_NAME; | ||
| 798 | #define D3D10_SB_4_COMPONENT_NAME_MASK 3 | ||
| 799 | |||
| 800 | // MACROS FOR USE IN D3D10_SB_OPERAND_4_COMPONENT_MASK_MODE: | ||
| 801 | |||
| 802 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK 0x000000f0 | ||
| 803 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_SHIFT 4 | ||
| 804 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_X 0x00000010 | ||
| 805 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_Y 0x00000020 | ||
| 806 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_Z 0x00000040 | ||
| 807 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_W 0x00000080 | ||
| 808 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_R D3D10_SB_OPERAND_4_COMPONENT_MASK_X | ||
| 809 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_G D3D10_SB_OPERAND_4_COMPONENT_MASK_Y | ||
| 810 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_B D3D10_SB_OPERAND_4_COMPONENT_MASK_Z | ||
| 811 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_A D3D10_SB_OPERAND_4_COMPONENT_MASK_W | ||
| 812 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK_ALL D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK | ||
| 813 | |||
| 814 | // DECODER MACRO: When 4 component selection mode is | ||
| 815 | // D3D10_SB_OPERAND_4_COMPONENT_MASK_MODE, this macro | ||
| 816 | // extracts from OperandToken0 the 4 component (xyzw) mask, | ||
| 817 | // as a field of D3D10_SB_OPERAND_4_COMPONENT_MASK_[X|Y|Z|W] flags. | ||
| 818 | // Alternatively, the D3D10_SB_OPERAND_4_COMPONENT_MASK_[X|Y|Z|W] masks | ||
| 819 | // can be tested on OperandToken0 directly, without this macro. | ||
| 820 | #define DECODE_D3D10_SB_OPERAND_4_COMPONENT_MASK(OperandToken0) ((OperandToken0)&D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK) | ||
| 821 | |||
| 822 | // ENCODER MACRO: Given a set of | ||
| 823 | // D3D10_SB_OPERAND_4_COMPONENT_MASK_[X|Y|Z|W] values | ||
| 824 | // or'd together, encode them in OperandToken0. | ||
| 825 | #define ENCODE_D3D10_SB_OPERAND_4_COMPONENT_MASK(ComponentMask) ((ComponentMask)&D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK) | ||
| 826 | |||
| 827 | // ENCODER/DECODER MACRO: Given a D3D10_SB_4_COMPONENT_NAME, | ||
| 828 | // generate the 4-component mask for it. | ||
| 829 | // This can be used in loops that build masks or read masks. | ||
| 830 | // Alternatively, the D3D10_SB_OPERAND_4_COMPONENT_MASK_[X|Y|Z|W] masks | ||
| 831 | // can be used directly, without this macro. | ||
| 832 | #define D3D10_SB_OPERAND_4_COMPONENT_MASK(ComponentName) ((1<<(D3D10_SB_OPERAND_4_COMPONENT_MASK_SHIFT+ComponentName))&D3D10_SB_OPERAND_4_COMPONENT_MASK_MASK) | ||
| 833 | |||
| 834 | // MACROS FOR USE IN D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MODE: | ||
| 835 | |||
| 836 | #define D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MASK 0x00000ff0 | ||
| 837 | #define D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT 4 | ||
| 838 | |||
| 839 | // DECODER MACRO: When 4 component selection mode is | ||
| 840 | // D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MODE, this macro | ||
| 841 | // extracts from OperandToken0 the 4 component swizzle, | ||
| 842 | // as a field of D3D10_SB_OPERAND_4_COMPONENT_MASK_[X|Y|Z|W] flags. | ||
| 843 | #define DECODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(OperandToken0) ((OperandToken0)&D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_MASK) | ||
| 844 | |||
| 845 | // DECODER MACRO: Pass a D3D10_SB_4_COMPONENT_NAME as "DestComp" in following | ||
| 846 | // macro to extract, from OperandToken0 or from a decoded swizzle, | ||
| 847 | // the swizzle source component (D3D10_SB_4_COMPONENT_NAME enum): | ||
| 848 | #define DECODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SOURCE(OperandToken0,DestComp) ((D3D10_SB_4_COMPONENT_NAME)(((OperandToken0)>>(D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT+2*((DestComp)&D3D10_SB_4_COMPONENT_NAME_MASK)))&D3D10_SB_4_COMPONENT_NAME_MASK)) | ||
| 849 | |||
| 850 | // ENCODER MACRO: Generate a 4 component swizzle given | ||
| 851 | // 4 D3D10_SB_4_COMPONENT_NAME source values for dest | ||
| 852 | // components x, y, z, w respectively. | ||
| 853 | #define ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(XSrc,YSrc,ZSrc,WSrc) ((((XSrc)&D3D10_SB_4_COMPONENT_NAME_MASK)| \ | ||
| 854 | (((YSrc)&D3D10_SB_4_COMPONENT_NAME_MASK)<<2)| \ | ||
| 855 | (((ZSrc)&D3D10_SB_4_COMPONENT_NAME_MASK)<<4)| \ | ||
| 856 | (((WSrc)&D3D10_SB_4_COMPONENT_NAME_MASK)<<6) \ | ||
| 857 | )<<D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE_SHIFT) | ||
| 858 | |||
| 859 | // ENCODER/DECODER MACROS: Various common swizzle patterns | ||
| 860 | // (noswizzle and replicate of each channels) | ||
| 861 | #define D3D10_SB_OPERAND_4_COMPONENT_NOSWIZZLE ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(D3D10_SB_4_COMPONENT_X,\ | ||
| 862 | D3D10_SB_4_COMPONENT_Y,\ | ||
| 863 | D3D10_SB_4_COMPONENT_Z,\ | ||
| 864 | D3D10_SB_4_COMPONENT_W) | ||
| 865 | |||
| 866 | #define D3D10_SB_OPERAND_4_COMPONENT_REPLICATEX ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(D3D10_SB_4_COMPONENT_X,\ | ||
| 867 | D3D10_SB_4_COMPONENT_X,\ | ||
| 868 | D3D10_SB_4_COMPONENT_X,\ | ||
| 869 | D3D10_SB_4_COMPONENT_X) | ||
| 870 | |||
| 871 | #define D3D10_SB_OPERAND_4_COMPONENT_REPLICATEY ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(D3D10_SB_4_COMPONENT_Y,\ | ||
| 872 | D3D10_SB_4_COMPONENT_Y,\ | ||
| 873 | D3D10_SB_4_COMPONENT_Y,\ | ||
| 874 | D3D10_SB_4_COMPONENT_Y) | ||
| 875 | |||
| 876 | #define D3D10_SB_OPERAND_4_COMPONENT_REPLICATEZ ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(D3D10_SB_4_COMPONENT_Z,\ | ||
| 877 | D3D10_SB_4_COMPONENT_Z,\ | ||
| 878 | D3D10_SB_4_COMPONENT_Z,\ | ||
| 879 | D3D10_SB_4_COMPONENT_Z) | ||
| 880 | |||
| 881 | #define D3D10_SB_OPERAND_4_COMPONENT_REPLICATEW ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SWIZZLE(D3D10_SB_4_COMPONENT_W,\ | ||
| 882 | D3D10_SB_4_COMPONENT_W,\ | ||
| 883 | D3D10_SB_4_COMPONENT_W,\ | ||
| 884 | D3D10_SB_4_COMPONENT_W) | ||
| 885 | |||
| 886 | #define D3D10_SB_OPERAND_4_COMPONENT_REPLICATERED D3D10_SB_OPERAND_4_COMPONENT_REPLICATEX | ||
| 887 | #define D3D10_SB_OPERAND_4_COMPONENT_REPLICATEGREEN D3D10_SB_OPERAND_4_COMPONENT_REPLICATEY | ||
| 888 | #define D3D10_SB_OPERAND_4_COMPONENT_REPLICATEBLUE D3D10_SB_OPERAND_4_COMPONENT_REPLICATEZ | ||
| 889 | #define D3D10_SB_OPERAND_4_COMPONENT_REPLICATEALPHA D3D10_SB_OPERAND_4_COMPONENT_REPLICATEW | ||
| 890 | |||
| 891 | // MACROS FOR USE IN D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MODE: | ||
| 892 | #define D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MASK 0x00000030 | ||
| 893 | #define D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT 4 | ||
| 894 | |||
| 895 | // DECODER MACRO: When 4 component selection mode is | ||
| 896 | // D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MODE, this macro | ||
| 897 | // extracts from OperandToken0 a D3D10_SB_4_COMPONENT_NAME | ||
| 898 | // which picks one of the 4 components. | ||
| 899 | #define DECODE_D3D10_SB_OPERAND_4_COMPONENT_SELECT_1(OperandToken0) ((D3D10_SB_4_COMPONENT_NAME)(((OperandToken0)&D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MASK)>>D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT)) | ||
| 900 | |||
| 901 | // ENCODER MACRO: Given a D3D10_SB_4_COMPONENT_NAME selecting | ||
| 902 | // a single component for D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MODE, | ||
| 903 | // encode it into OperandToken0 | ||
| 904 | #define ENCODE_D3D10_SB_OPERAND_4_COMPONENT_SELECT_1(SelectedComp) (((SelectedComp)<<D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_SHIFT)&D3D10_SB_OPERAND_4_COMPONENT_SELECT_1_MASK) | ||
| 905 | |||
| 906 | // MACROS FOR DETERMINING OPERAND TYPE: | ||
| 907 | |||
| 908 | typedef enum D3D10_SB_OPERAND_TYPE | ||
| 909 | { | ||
| 910 | D3D10_SB_OPERAND_TYPE_TEMP = 0, // Temporary Register File | ||
| 911 | D3D10_SB_OPERAND_TYPE_INPUT = 1, // General Input Register File | ||
| 912 | D3D10_SB_OPERAND_TYPE_OUTPUT = 2, // General Output Register File | ||
| 913 | D3D10_SB_OPERAND_TYPE_INDEXABLE_TEMP = 3, // Temporary Register File (indexable) | ||
| 914 | D3D10_SB_OPERAND_TYPE_IMMEDIATE32 = 4, // 32bit/component immediate value(s) | ||
| 915 | // If for example, operand token bits | ||
| 916 | // [01:00]==D3D10_SB_OPERAND_4_COMPONENT, | ||
| 917 | // this means that the operand type: | ||
| 918 | // D3D10_SB_OPERAND_TYPE_IMMEDIATE32 | ||
| 919 | // results in 4 additional 32bit | ||
| 920 | // DWORDS present for the operand. | ||
| 921 | D3D10_SB_OPERAND_TYPE_IMMEDIATE64 = 5, // 64bit/comp.imm.val(s)HI:LO | ||
| 922 | D3D10_SB_OPERAND_TYPE_SAMPLER = 6, // Reference to sampler state | ||
| 923 | D3D10_SB_OPERAND_TYPE_RESOURCE = 7, // Reference to memory resource (e.g. texture) | ||
| 924 | D3D10_SB_OPERAND_TYPE_CONSTANT_BUFFER= 8, // Reference to constant buffer | ||
| 925 | D3D10_SB_OPERAND_TYPE_IMMEDIATE_CONSTANT_BUFFER= 9, // Reference to immediate constant buffer | ||
| 926 | D3D10_SB_OPERAND_TYPE_LABEL = 10, // Label | ||
| 927 | D3D10_SB_OPERAND_TYPE_INPUT_PRIMITIVEID = 11, // Input primitive ID | ||
| 928 | D3D10_SB_OPERAND_TYPE_OUTPUT_DEPTH = 12, // Output Depth | ||
| 929 | D3D10_SB_OPERAND_TYPE_NULL = 13, // Null register, used to discard results of operations | ||
| 930 | // Below Are operands new in DX 10.1 | ||
| 931 | D3D10_SB_OPERAND_TYPE_RASTERIZER = 14, // DX10.1 Rasterizer register, used to denote the depth/stencil and render target resources | ||
| 932 | D3D10_SB_OPERAND_TYPE_OUTPUT_COVERAGE_MASK = 15, // DX10.1 PS output MSAA coverage mask (scalar) | ||
| 933 | // Below Are operands new in DX 11 | ||
| 934 | D3D11_SB_OPERAND_TYPE_STREAM = 16, // Reference to GS stream output resource | ||
| 935 | D3D11_SB_OPERAND_TYPE_FUNCTION_BODY = 17, // Reference to a function definition | ||
| 936 | D3D11_SB_OPERAND_TYPE_FUNCTION_TABLE = 18, // Reference to a set of functions used by a class | ||
| 937 | D3D11_SB_OPERAND_TYPE_INTERFACE = 19, // Reference to an interface | ||
| 938 | D3D11_SB_OPERAND_TYPE_FUNCTION_INPUT = 20, // Reference to an input parameter to a function | ||
| 939 | D3D11_SB_OPERAND_TYPE_FUNCTION_OUTPUT = 21, // Reference to an output parameter to a function | ||
| 940 | D3D11_SB_OPERAND_TYPE_OUTPUT_CONTROL_POINT_ID = 22, // HS Control Point phase input saying which output control point ID this is | ||
| 941 | D3D11_SB_OPERAND_TYPE_INPUT_FORK_INSTANCE_ID = 23, // HS Fork Phase input instance ID | ||
| 942 | D3D11_SB_OPERAND_TYPE_INPUT_JOIN_INSTANCE_ID = 24, // HS Join Phase input instance ID | ||
| 943 | D3D11_SB_OPERAND_TYPE_INPUT_CONTROL_POINT = 25, // HS Fork+Join, DS phase input control points (array of them) | ||
| 944 | D3D11_SB_OPERAND_TYPE_OUTPUT_CONTROL_POINT = 26, // HS Fork+Join phase output control points (array of them) | ||
| 945 | D3D11_SB_OPERAND_TYPE_INPUT_PATCH_CONSTANT = 27, // DS+HSJoin Input Patch Constants (array of them) | ||
| 946 | D3D11_SB_OPERAND_TYPE_INPUT_DOMAIN_POINT = 28, // DS Input Domain point | ||
| 947 | D3D11_SB_OPERAND_TYPE_THIS_POINTER = 29, // Reference to an interface this pointer | ||
| 948 | D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW = 30, // Reference to UAV u# | ||
| 949 | D3D11_SB_OPERAND_TYPE_THREAD_GROUP_SHARED_MEMORY = 31, // Reference to Thread Group Shared Memory g# | ||
| 950 | D3D11_SB_OPERAND_TYPE_INPUT_THREAD_ID = 32, // Compute Shader Thread ID | ||
| 951 | D3D11_SB_OPERAND_TYPE_INPUT_THREAD_GROUP_ID = 33, // Compute Shader Thread Group ID | ||
| 952 | D3D11_SB_OPERAND_TYPE_INPUT_THREAD_ID_IN_GROUP = 34, // Compute Shader Thread ID In Thread Group | ||
| 953 | D3D11_SB_OPERAND_TYPE_INPUT_COVERAGE_MASK = 35, // Pixel shader coverage mask input | ||
| 954 | D3D11_SB_OPERAND_TYPE_INPUT_THREAD_ID_IN_GROUP_FLATTENED = 36, // Compute Shader Thread ID In Group Flattened to a 1D value. | ||
| 955 | D3D11_SB_OPERAND_TYPE_INPUT_GS_INSTANCE_ID = 37, // Input GS instance ID | ||
| 956 | D3D11_SB_OPERAND_TYPE_OUTPUT_DEPTH_GREATER_EQUAL = 38, // Output Depth, forced to be greater than or equal than current depth | ||
| 957 | D3D11_SB_OPERAND_TYPE_OUTPUT_DEPTH_LESS_EQUAL = 39, // Output Depth, forced to be less than or equal to current depth | ||
| 958 | D3D11_SB_OPERAND_TYPE_CYCLE_COUNTER = 40, // Cycle counter | ||
| 959 | D3D11_SB_OPERAND_TYPE_OUTPUT_STENCIL_REF = 41, // DX11 PS output stencil reference (scalar) | ||
| 960 | D3D11_SB_OPERAND_TYPE_INNER_COVERAGE = 42, // DX11 PS input inner coverage (scalar) | ||
| 961 | } D3D10_SB_OPERAND_TYPE; | ||
| 962 | |||
| 963 | #define D3D10_SB_OPERAND_TYPE_MASK 0x000ff000 | ||
| 964 | #define D3D10_SB_OPERAND_TYPE_SHIFT 12 | ||
| 965 | |||
| 966 | // DECODER MACRO: Determine operand type from OperandToken0. | ||
| 967 | #define DECODE_D3D10_SB_OPERAND_TYPE(OperandToken0) ((D3D10_SB_OPERAND_TYPE)(((OperandToken0)&D3D10_SB_OPERAND_TYPE_MASK)>>D3D10_SB_OPERAND_TYPE_SHIFT)) | ||
| 968 | |||
| 969 | // ENCODER MACRO: Store operand type in OperandToken0. | ||
| 970 | #define ENCODE_D3D10_SB_OPERAND_TYPE(OperandType) (((OperandType)<<D3D10_SB_OPERAND_TYPE_SHIFT)&D3D10_SB_OPERAND_TYPE_MASK) | ||
| 971 | |||
| 972 | typedef enum D3D10_SB_OPERAND_INDEX_DIMENSION | ||
| 973 | { | ||
| 974 | D3D10_SB_OPERAND_INDEX_0D = 0, // e.g. Position | ||
| 975 | D3D10_SB_OPERAND_INDEX_1D = 1, // Most common. e.g. Temp registers. | ||
| 976 | D3D10_SB_OPERAND_INDEX_2D = 2, // e.g. Geometry Program Input registers. | ||
| 977 | D3D10_SB_OPERAND_INDEX_3D = 3, // 3D rarely if ever used. | ||
| 978 | } D3D10_SB_OPERAND_INDEX_DIMENSION; | ||
| 979 | #define D3D10_SB_OPERAND_INDEX_DIMENSION_MASK 0x00300000 | ||
| 980 | #define D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT 20 | ||
| 981 | |||
| 982 | // DECODER MACRO: Determine operand index dimension from OperandToken0. | ||
| 983 | #define DECODE_D3D10_SB_OPERAND_INDEX_DIMENSION(OperandToken0) ((D3D10_SB_OPERAND_INDEX_DIMENSION)(((OperandToken0)&D3D10_SB_OPERAND_INDEX_DIMENSION_MASK)>>D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT)) | ||
| 984 | |||
| 985 | // ENCODER MACRO: Store operand index dimension | ||
| 986 | // (D3D10_SB_OPERAND_INDEX_DIMENSION enum) in OperandToken0. | ||
| 987 | #define ENCODE_D3D10_SB_OPERAND_INDEX_DIMENSION(OperandIndexDim) (((OperandIndexDim)<<D3D10_SB_OPERAND_INDEX_DIMENSION_SHIFT)&D3D10_SB_OPERAND_INDEX_DIMENSION_MASK) | ||
| 988 | |||
| 989 | typedef enum D3D10_SB_OPERAND_INDEX_REPRESENTATION | ||
| 990 | { | ||
| 991 | D3D10_SB_OPERAND_INDEX_IMMEDIATE32 = 0, // Extra DWORD | ||
| 992 | D3D10_SB_OPERAND_INDEX_IMMEDIATE64 = 1, // 2 Extra DWORDs | ||
| 993 | // (HI32:LO32) | ||
| 994 | D3D10_SB_OPERAND_INDEX_RELATIVE = 2, // Extra operand | ||
| 995 | D3D10_SB_OPERAND_INDEX_IMMEDIATE32_PLUS_RELATIVE = 3, // Extra DWORD followed by | ||
| 996 | // extra operand | ||
| 997 | D3D10_SB_OPERAND_INDEX_IMMEDIATE64_PLUS_RELATIVE = 4, // 2 Extra DWORDS | ||
| 998 | // (HI32:LO32) followed | ||
| 999 | // by extra operand | ||
| 1000 | } D3D10_SB_OPERAND_INDEX_REPRESENTATION; | ||
| 1001 | #define D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim) (22+3*((Dim)&3)) | ||
| 1002 | #define D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim) (0x3<<D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim)) | ||
| 1003 | |||
| 1004 | // DECODER MACRO: Determine from OperandToken0 what representation | ||
| 1005 | // an operand index is provided as (D3D10_SB_OPERAND_INDEX_REPRESENTATION enum), | ||
| 1006 | // for index dimension [0], [1] or [2], depending on D3D10_SB_OPERAND_INDEX_DIMENSION. | ||
| 1007 | #define DECODE_D3D10_SB_OPERAND_INDEX_REPRESENTATION(Dim,OperandToken0) ((D3D10_SB_OPERAND_INDEX_REPRESENTATION)(((OperandToken0)&D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim))>>D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim))) | ||
| 1008 | |||
| 1009 | // ENCODER MACRO: Store in OperandToken0 what representation | ||
| 1010 | // an operand index is provided as (D3D10_SB_OPERAND_INDEX_REPRESENTATION enum), | ||
| 1011 | // for index dimension [0], [1] or [2], depending on D3D10_SB_OPERAND_INDEX_DIMENSION. | ||
| 1012 | #define ENCODE_D3D10_SB_OPERAND_INDEX_REPRESENTATION(Dim,IndexRepresentation) (((IndexRepresentation)<<D3D10_SB_OPERAND_INDEX_REPRESENTATION_SHIFT(Dim))&D3D10_SB_OPERAND_INDEX_REPRESENTATION_MASK(Dim)) | ||
| 1013 | |||
| 1014 | #define D3D10_SB_OPERAND_EXTENDED_MASK 0x80000000 | ||
| 1015 | #define D3D10_SB_OPERAND_EXTENDED_SHIFT 31 | ||
| 1016 | |||
| 1017 | // DECODER MACRO: Determine if the operand is extended | ||
| 1018 | // by an additional opcode token. | ||
| 1019 | #define DECODE_IS_D3D10_SB_OPERAND_EXTENDED(OperandToken0) (((OperandToken0)&D3D10_SB_OPERAND_EXTENDED_MASK)>>D3D10_SB_OPERAND_EXTENDED_SHIFT) | ||
| 1020 | |||
| 1021 | // ENCODER MACRO: Store in OperandToken0 whether the operand is extended | ||
| 1022 | // by an additional operand token. | ||
| 1023 | #define ENCODE_D3D10_SB_OPERAND_EXTENDED(bExtended) (((bExtended)!=0)?D3D10_SB_OPERAND_EXTENDED_MASK:0) | ||
| 1024 | |||
| 1025 | // ---------------------------------------------------------------------------- | ||
| 1026 | // Extended Instruction Operand Format (OperandToken1) | ||
| 1027 | // | ||
| 1028 | // If bit31 of an operand token is set, the | ||
| 1029 | // operand has additional data in a second DWORD | ||
| 1030 | // directly following OperandToken0. Other tokens | ||
| 1031 | // expected for the operand, such as immmediate | ||
| 1032 | // values or relative address operands (full | ||
| 1033 | // operands in themselves) always follow | ||
| 1034 | // OperandToken0 AND OperandToken1..n (extended | ||
| 1035 | // operand tokens, if present). | ||
| 1036 | // | ||
| 1037 | // [05:00] D3D10_SB_EXTENDED_OPERAND_TYPE | ||
| 1038 | // [16:06] if([05:00] == D3D10_SB_EXTENDED_OPERAND_MODIFIER) | ||
| 1039 | // { | ||
| 1040 | // [13:06] D3D10_SB_OPERAND_MODIFIER | ||
| 1041 | // [16:14] Min Precision: D3D11_SB_OPERAND_MIN_PRECISION | ||
| 1042 | // [17:17] Non-uniform: D3D12_SB_OPERAND_NON_UNIFORM | ||
| 1043 | // } | ||
| 1044 | // else | ||
| 1045 | // { | ||
| 1046 | // [17:06] Ignored, 0. | ||
| 1047 | // } | ||
| 1048 | // [30:18] Ignored, 0. | ||
| 1049 | // [31] 0 normally. 1 if second order extended operand definition, | ||
| 1050 | // meaning next DWORD contains yet ANOTHER extended operand | ||
| 1051 | // description. Currently no second order extensions defined. | ||
| 1052 | // This would be useful if a particular extended operand does | ||
| 1053 | // not have enough space to store the required information in | ||
| 1054 | // a single token and so is extended further. | ||
| 1055 | // | ||
| 1056 | // ---------------------------------------------------------------------------- | ||
| 1057 | |||
| 1058 | typedef enum D3D10_SB_EXTENDED_OPERAND_TYPE | ||
| 1059 | { | ||
| 1060 | D3D10_SB_EXTENDED_OPERAND_EMPTY = 0, // Might be used if this | ||
| 1061 | // enum is full and | ||
| 1062 | // further extended opcode | ||
| 1063 | // is needed. | ||
| 1064 | D3D10_SB_EXTENDED_OPERAND_MODIFIER = 1, | ||
| 1065 | } D3D10_SB_EXTENDED_OPERAND_TYPE; | ||
| 1066 | #define D3D10_SB_EXTENDED_OPERAND_TYPE_MASK 0x0000003f | ||
| 1067 | |||
| 1068 | // DECODER MACRO: Given an extended operand | ||
| 1069 | // token (OperandToken1), figure out what type | ||
| 1070 | // of token it is (from D3D10_SB_EXTENDED_OPERAND_TYPE enum) | ||
| 1071 | // to be able to interpret the rest of the token's contents. | ||
| 1072 | #define DECODE_D3D10_SB_EXTENDED_OPERAND_TYPE(OperandToken1) ((D3D10_SB_EXTENDED_OPERAND_TYPE)((OperandToken1)&D3D10_SB_EXTENDED_OPERAND_TYPE_MASK)) | ||
| 1073 | |||
| 1074 | // ENCODER MACRO: Store extended operand token | ||
| 1075 | // type in OperandToken1. | ||
| 1076 | #define ENCODE_D3D10_SB_EXTENDED_OPERAND_TYPE(ExtOperandType) ((ExtOperandType)&D3D10_SB_EXTENDED_OPERAND_TYPE_MASK) | ||
| 1077 | |||
| 1078 | typedef enum D3D10_SB_OPERAND_MODIFIER | ||
| 1079 | { | ||
| 1080 | D3D10_SB_OPERAND_MODIFIER_NONE = 0, // Nop. This is the implied | ||
| 1081 | // default if the extended | ||
| 1082 | // operand is not present for | ||
| 1083 | // an operand for which source | ||
| 1084 | // modifiers are meaningful | ||
| 1085 | D3D10_SB_OPERAND_MODIFIER_NEG = 1, // Negate | ||
| 1086 | D3D10_SB_OPERAND_MODIFIER_ABS = 2, // Absolute value, abs() | ||
| 1087 | D3D10_SB_OPERAND_MODIFIER_ABSNEG = 3, // -abs() | ||
| 1088 | } D3D10_SB_OPERAND_MODIFIER; | ||
| 1089 | #define D3D10_SB_OPERAND_MODIFIER_MASK 0x00003fc0 | ||
| 1090 | #define D3D10_SB_OPERAND_MODIFIER_SHIFT 6 | ||
| 1091 | |||
| 1092 | // DECODER MACRO: Given a D3D10_SB_EXTENDED_OPERAND_MODIFIER | ||
| 1093 | // extended token (OperandToken1), determine the source modifier | ||
| 1094 | // (D3D10_SB_OPERAND_MODIFIER enum) | ||
| 1095 | #define DECODE_D3D10_SB_OPERAND_MODIFIER(OperandToken1) ((D3D10_SB_OPERAND_MODIFIER)(((OperandToken1)&D3D10_SB_OPERAND_MODIFIER_MASK)>>D3D10_SB_OPERAND_MODIFIER_SHIFT)) | ||
| 1096 | |||
| 1097 | // ENCODER MACRO: Generate a complete source modifier extended token | ||
| 1098 | // (OperandToken1), given D3D10_SB_OPERAND_MODIFIER enum (the | ||
| 1099 | // ext. operand type is also set to D3D10_SB_EXTENDED_OPERAND_MODIFIER). | ||
| 1100 | #define ENCODE_D3D10_SB_EXTENDED_OPERAND_MODIFIER(SourceMod) ((((SourceMod)<<D3D10_SB_OPERAND_MODIFIER_SHIFT)&D3D10_SB_OPERAND_MODIFIER_MASK)| \ | ||
| 1101 | ENCODE_D3D10_SB_EXTENDED_OPERAND_TYPE(D3D10_SB_EXTENDED_OPERAND_MODIFIER) | \ | ||
| 1102 | ENCODE_D3D10_SB_OPERAND_DOUBLE_EXTENDED(0)) | ||
| 1103 | |||
| 1104 | // Min precision specifier for source/dest operands. This | ||
| 1105 | // fits in the extended operand token field. Implementations are free to | ||
| 1106 | // execute at higher precision than the min - details spec'ed elsewhere. | ||
| 1107 | // This is part of the opcode specific control range. | ||
| 1108 | typedef enum D3D11_SB_OPERAND_MIN_PRECISION | ||
| 1109 | { | ||
| 1110 | D3D11_SB_OPERAND_MIN_PRECISION_DEFAULT = 0, // Default precision | ||
| 1111 | // for the shader model | ||
| 1112 | D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_16 = 1, // Min 16 bit/component float | ||
| 1113 | D3D11_SB_OPERAND_MIN_PRECISION_FLOAT_2_8 = 2, // Min 10(2.8)bit/comp. float | ||
| 1114 | D3D11_SB_OPERAND_MIN_PRECISION_SINT_16 = 4, // Min 16 bit/comp. signed integer | ||
| 1115 | D3D11_SB_OPERAND_MIN_PRECISION_UINT_16 = 5, // Min 16 bit/comp. unsigned integer | ||
| 1116 | } D3D11_SB_OPERAND_MIN_PRECISION; | ||
| 1117 | #define D3D11_SB_OPERAND_MIN_PRECISION_MASK 0x0001C000 | ||
| 1118 | #define D3D11_SB_OPERAND_MIN_PRECISION_SHIFT 14 | ||
| 1119 | |||
| 1120 | // DECODER MACRO: For an OperandToken1 that can specify | ||
| 1121 | // a minimum precision for execution, find out what it is. | ||
| 1122 | #define DECODE_D3D11_SB_OPERAND_MIN_PRECISION(OperandToken1) ((D3D11_SB_OPERAND_MIN_PRECISION)(((OperandToken1)& D3D11_SB_OPERAND_MIN_PRECISION_MASK)>> D3D11_SB_OPERAND_MIN_PRECISION_SHIFT)) | ||
| 1123 | |||
| 1124 | // ENCODER MACRO: Encode minimum precision for execution | ||
| 1125 | // into the extended operand token, OperandToken1 | ||
| 1126 | #define ENCODE_D3D11_SB_OPERAND_MIN_PRECISION(MinPrecision) (((MinPrecision)<< D3D11_SB_OPERAND_MIN_PRECISION_SHIFT)& D3D11_SB_OPERAND_MIN_PRECISION_MASK) | ||
| 1127 | |||
| 1128 | |||
| 1129 | // Non-uniform extended operand modifier. | ||
| 1130 | #define D3D12_SB_OPERAND_NON_UNIFORM_MASK 0x00020000 | ||
| 1131 | #define D3D12_SB_OPERAND_NON_UNIFORM_SHIFT 17 | ||
| 1132 | |||
| 1133 | // DECODER MACRO: For an OperandToken1 that can specify a non-uniform operand | ||
| 1134 | #define DECODE_D3D12_SB_OPERAND_NON_UNIFORM(OperandToken1) (((OperandToken1)& D3D12_SB_OPERAND_NON_UNIFORM_MASK)>> D3D12_SB_OPERAND_NON_UNIFORM_SHIFT) | ||
| 1135 | |||
| 1136 | // ENCODER MACRO: Encode non-uniform state into the extended operand token, OperandToken1 | ||
| 1137 | #define ENCODE_D3D12_SB_OPERAND_NON_UNIFORM(NonUniform) (((NonUniform)<< D3D12_SB_OPERAND_NON_UNIFORM_SHIFT)& D3D12_SB_OPERAND_NON_UNIFORM_MASK) | ||
| 1138 | |||
| 1139 | |||
| 1140 | #define D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK 0x80000000 | ||
| 1141 | #define D3D10_SB_OPERAND_DOUBLE_EXTENDED_SHIFT 31 | ||
| 1142 | // DECODER MACRO: Determine if an extended operand token | ||
| 1143 | // (OperandToken1) is further extended by yet another token | ||
| 1144 | // (OperandToken2). Currently there are no secondary | ||
| 1145 | // extended operand tokens. | ||
| 1146 | #define DECODE_IS_D3D10_SB_OPERAND_DOUBLE_EXTENDED(OperandToken1) (((OperandToken1)&D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK)>>D3D10_SB_OPERAND_DOUBLE_EXTENDED_SHIFT) | ||
| 1147 | |||
| 1148 | // ENCODER MACRO: Store in OperandToken1 whether the operand is extended | ||
| 1149 | // by an additional operand token. Currently there are no secondary | ||
| 1150 | // extended operand tokens. | ||
| 1151 | #define ENCODE_D3D10_SB_OPERAND_DOUBLE_EXTENDED(bExtended) (((bExtended)!=0)?D3D10_SB_OPERAND_DOUBLE_EXTENDED_MASK:0) | ||
| 1152 | |||
| 1153 | // ---------------------------------------------------------------------------- | ||
| 1154 | // Name Token (NameToken) (used in declaration statements) | ||
| 1155 | // | ||
| 1156 | // [15:00] D3D10_SB_NAME enumeration | ||
| 1157 | // [31:16] Reserved, 0 | ||
| 1158 | // | ||
| 1159 | // ---------------------------------------------------------------------------- | ||
| 1160 | #define D3D10_SB_NAME_MASK 0x0000ffff | ||
| 1161 | |||
| 1162 | // DECODER MACRO: Get the name from NameToken | ||
| 1163 | #define DECODE_D3D10_SB_NAME(NameToken) ((D3D10_SB_NAME)((NameToken)&D3D10_SB_NAME_MASK)) | ||
| 1164 | |||
| 1165 | // ENCODER MACRO: Generate a complete NameToken given a D3D10_SB_NAME | ||
| 1166 | #define ENCODE_D3D10_SB_NAME(Name) ((Name)&D3D10_SB_NAME_MASK) | ||
| 1167 | |||
| 1168 | //--------------------------------------------------------------------- | ||
| 1169 | // Declaration Statements | ||
| 1170 | // | ||
| 1171 | // Declarations start with a standard opcode token, | ||
| 1172 | // having opcode type being D3D10_SB_OPCODE_DCL*. | ||
| 1173 | // Each particular declaration type has custom | ||
| 1174 | // operand token(s), described below. | ||
| 1175 | //--------------------------------------------------------------------- | ||
| 1176 | |||
| 1177 | // ---------------------------------------------------------------------------- | ||
| 1178 | // Global Flags Declaration | ||
| 1179 | // | ||
| 1180 | // OpcodeToken0: | ||
| 1181 | // | ||
| 1182 | // [10:00] D3D10_SB_OPCODE_DCL_GLOBAL_FLAGS | ||
| 1183 | // [11:11] Refactoring allowed if bit set. | ||
| 1184 | // [12:12] Enable double precision float ops. | ||
| 1185 | // [13:13] Force early depth-stencil test. | ||
| 1186 | // [14:14] Enable RAW and structured buffers in non-CS 4.x shaders. | ||
| 1187 | // [15:15] Skip optimizations of shader IL when translating to native code | ||
| 1188 | // [16:16] Enable minimum-precision data types | ||
| 1189 | // [17:17] Enable 11.1 double-precision floating-point instruction extensions | ||
| 1190 | // [18:18] Enable 11.1 non-double instruction extensions | ||
| 1191 | // [23:19] Reserved for future flags. | ||
| 1192 | // [30:24] Instruction length in DWORDs including the opcode token. == 1 | ||
| 1193 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1194 | // contains extended operand description. This dcl is currently not | ||
| 1195 | // extended. | ||
| 1196 | // | ||
| 1197 | // OpcodeToken0 is followed by no operands. | ||
| 1198 | // | ||
| 1199 | // ---------------------------------------------------------------------------- | ||
| 1200 | #define D3D10_SB_GLOBAL_FLAG_REFACTORING_ALLOWED (1<<11) | ||
| 1201 | #define D3D11_SB_GLOBAL_FLAG_ENABLE_DOUBLE_PRECISION_FLOAT_OPS (1<<12) | ||
| 1202 | #define D3D11_SB_GLOBAL_FLAG_FORCE_EARLY_DEPTH_STENCIL (1<<13) | ||
| 1203 | #define D3D11_SB_GLOBAL_FLAG_ENABLE_RAW_AND_STRUCTURED_BUFFERS (1<<14) | ||
| 1204 | #define D3D11_1_SB_GLOBAL_FLAG_SKIP_OPTIMIZATION (1<<15) | ||
| 1205 | #define D3D11_1_SB_GLOBAL_FLAG_ENABLE_MINIMUM_PRECISION (1<<16) | ||
| 1206 | #define D3D11_1_SB_GLOBAL_FLAG_ENABLE_DOUBLE_EXTENSIONS (1<<17) | ||
| 1207 | #define D3D11_1_SB_GLOBAL_FLAG_ENABLE_SHADER_EXTENSIONS (1<<18) | ||
| 1208 | #define D3D12_SB_GLOBAL_FLAG_ALL_RESOURCES_BOUND (1<<19) | ||
| 1209 | |||
| 1210 | #define D3D10_SB_GLOBAL_FLAGS_MASK 0x00fff800 | ||
| 1211 | |||
| 1212 | // DECODER MACRO: Get global flags | ||
| 1213 | #define DECODE_D3D10_SB_GLOBAL_FLAGS(OpcodeToken0) ((OpcodeToken0)&D3D10_SB_GLOBAL_FLAGS_MASK) | ||
| 1214 | |||
| 1215 | // ENCODER MACRO: Encode global flags | ||
| 1216 | #define ENCODE_D3D10_SB_GLOBAL_FLAGS(Flags) ((Flags)&D3D10_SB_GLOBAL_FLAGS_MASK) | ||
| 1217 | |||
| 1218 | // ---------------------------------------------------------------------------- | ||
| 1219 | // Resource Declaration (non multisampled) | ||
| 1220 | // | ||
| 1221 | // OpcodeToken0: | ||
| 1222 | // | ||
| 1223 | // [10:00] D3D10_SB_OPCODE_DCL_RESOURCE | ||
| 1224 | // [15:11] D3D10_SB_RESOURCE_DIMENSION | ||
| 1225 | // [23:16] Ignored, 0 | ||
| 1226 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1227 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1228 | // contains extended operand description. This dcl is currently not | ||
| 1229 | // extended. | ||
| 1230 | // | ||
| 1231 | // OpcodeToken0 is followed by 2 operands on Shader Models 4.0 through 5.0: | ||
| 1232 | // (1) an operand, starting with OperandToken0, defining which | ||
| 1233 | // t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. | ||
| 1234 | // (2) a Resource Return Type token (ResourceReturnTypeToken) | ||
| 1235 | // | ||
| 1236 | // OpcodeToken0 is followed by 3 operands on Shader Model 5.1 and later: | ||
| 1237 | // (1) an operand, starting with OperandToken0, defining which | ||
| 1238 | // t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. | ||
| 1239 | // The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, | ||
| 1240 | // and the meaning of the index dimensions are as follows: (t<id>[<lbound>:<ubound>]) | ||
| 1241 | // 1 <id>: variable ID being declared | ||
| 1242 | // 2 <lbound>: the lower bound of the range of resources in the space | ||
| 1243 | // 3 <ubound>: the upper bound (inclusive) of this range | ||
| 1244 | // As opposed to when the t# is used in shader instructions, where the register | ||
| 1245 | // must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index | ||
| 1246 | // dimensions are as follows: (t<id>[<idx>]): | ||
| 1247 | // 1 <id>: variable ID being used (matches dcl) | ||
| 1248 | // 2 <idx>: absolute index of resource within space (may be dynamically indexed) | ||
| 1249 | // (2) a Resource Return Type token (ResourceReturnTypeToken) | ||
| 1250 | // (3) a DWORD indicating the space index. | ||
| 1251 | // | ||
| 1252 | // ---------------------------------------------------------------------------- | ||
| 1253 | #define D3D10_SB_RESOURCE_DIMENSION_MASK 0x0000F800 | ||
| 1254 | #define D3D10_SB_RESOURCE_DIMENSION_SHIFT 11 | ||
| 1255 | |||
| 1256 | // DECODER MACRO: Given a resource declaration token, | ||
| 1257 | // (OpcodeToken0), determine the resource dimension | ||
| 1258 | // (D3D10_SB_RESOURCE_DIMENSION enum) | ||
| 1259 | #define DECODE_D3D10_SB_RESOURCE_DIMENSION(OpcodeToken0) ((D3D10_SB_RESOURCE_DIMENSION)(((OpcodeToken0)&D3D10_SB_RESOURCE_DIMENSION_MASK)>>D3D10_SB_RESOURCE_DIMENSION_SHIFT)) | ||
| 1260 | |||
| 1261 | // ENCODER MACRO: Store resource dimension | ||
| 1262 | // (D3D10_SB_RESOURCE_DIMENSION enum) into a | ||
| 1263 | // a resource declaration token (OpcodeToken0) | ||
| 1264 | #define ENCODE_D3D10_SB_RESOURCE_DIMENSION(ResourceDim) (((ResourceDim)<<D3D10_SB_RESOURCE_DIMENSION_SHIFT)&D3D10_SB_RESOURCE_DIMENSION_MASK) | ||
| 1265 | |||
| 1266 | // ---------------------------------------------------------------------------- | ||
| 1267 | // Resource Declaration (multisampled) | ||
| 1268 | // | ||
| 1269 | // OpcodeToken0: | ||
| 1270 | // | ||
| 1271 | // [10:00] D3D10_SB_OPCODE_DCL_RESOURCE (same opcode as non-multisampled case) | ||
| 1272 | // [15:11] D3D10_SB_RESOURCE_DIMENSION (must be TEXTURE2DMS or TEXTURE2DMSARRAY) | ||
| 1273 | // [22:16] Sample count 1...127. 0 is currently disallowed, though | ||
| 1274 | // in future versions 0 could mean "configurable" sample count | ||
| 1275 | // [23:23] Ignored, 0 | ||
| 1276 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1277 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1278 | // contains extended operand description. This dcl is currently not | ||
| 1279 | // extended. | ||
| 1280 | // | ||
| 1281 | // OpcodeToken0 is followed by 2 operands on Shader Models 4.0 through 5.0: | ||
| 1282 | // (1) an operand, starting with OperandToken0, defining which | ||
| 1283 | // t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. | ||
| 1284 | // (2) a Resource Return Type token (ResourceReturnTypeToken) | ||
| 1285 | // | ||
| 1286 | // OpcodeToken0 is followed by 3 operands on Shader Model 5.1 and later: | ||
| 1287 | // (1) an operand, starting with OperandToken0, defining which | ||
| 1288 | // t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. | ||
| 1289 | // The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, | ||
| 1290 | // and the meaning of the index dimensions are as follows: (t<id>[<lbound>:<ubound>]) | ||
| 1291 | // 1 <id>: variable ID being declared | ||
| 1292 | // 2 <lbound>: the lower bound of the range of resources in the space | ||
| 1293 | // 3 <ubound>: the upper bound (inclusive) of this range | ||
| 1294 | // As opposed to when the t# is used in shader instructions, where the register | ||
| 1295 | // must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index | ||
| 1296 | // dimensions are as follows: (t<id>[<idx>]): | ||
| 1297 | // 1 <id>: variable ID being used (matches dcl) | ||
| 1298 | // 2 <idx>: absolute index of resource within space (may be dynamically indexed) | ||
| 1299 | // (2) a Resource Return Type token (ResourceReturnTypeToken) | ||
| 1300 | // (3) a DWORD indicating the space index. | ||
| 1301 | // | ||
| 1302 | // ---------------------------------------------------------------------------- | ||
| 1303 | |||
| 1304 | // use same macro for encoding/decoding resource dimension aas the non-msaa declaration | ||
| 1305 | |||
| 1306 | #define D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK 0x07F0000 | ||
| 1307 | #define D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT 16 | ||
| 1308 | |||
| 1309 | // DECODER MACRO: Given a resource declaration token, | ||
| 1310 | // (OpcodeToken0), determine the resource sample count (1..127) | ||
| 1311 | #define DECODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(OpcodeToken0) ((UINT)(((OpcodeToken0)&D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK)>>D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT)) | ||
| 1312 | |||
| 1313 | // ENCODER MACRO: Store resource sample count up to 127 into a | ||
| 1314 | // a resource declaration token (OpcodeToken0) | ||
| 1315 | #define ENCODE_D3D10_SB_RESOURCE_SAMPLE_COUNT(SampleCount) (((SampleCount > 127 ? 127 : SampleCount)<<D3D10_SB_RESOURCE_SAMPLE_COUNT_SHIFT)&D3D10_SB_RESOURCE_SAMPLE_COUNT_MASK) | ||
| 1316 | |||
| 1317 | // ---------------------------------------------------------------------------- | ||
| 1318 | // Resource Return Type Token (ResourceReturnTypeToken) (used in resource | ||
| 1319 | // declaration statements) | ||
| 1320 | // | ||
| 1321 | // [03:00] D3D10_SB_RESOURCE_RETURN_TYPE for component X | ||
| 1322 | // [07:04] D3D10_SB_RESOURCE_RETURN_TYPE for component Y | ||
| 1323 | // [11:08] D3D10_SB_RESOURCE_RETURN_TYPE for component Z | ||
| 1324 | // [15:12] D3D10_SB_RESOURCE_RETURN_TYPE for component W | ||
| 1325 | // [31:16] Reserved, 0 | ||
| 1326 | // | ||
| 1327 | // ---------------------------------------------------------------------------- | ||
| 1328 | // DECODER MACRO: Get the resource return type for component (0-3) from | ||
| 1329 | // ResourceReturnTypeToken | ||
| 1330 | #define DECODE_D3D10_SB_RESOURCE_RETURN_TYPE(ResourceReturnTypeToken, Component) \ | ||
| 1331 | ((D3D10_SB_RESOURCE_RETURN_TYPE)(((ResourceReturnTypeToken) >> \ | ||
| 1332 | (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS))&D3D10_SB_RESOURCE_RETURN_TYPE_MASK)) | ||
| 1333 | |||
| 1334 | // ENCODER MACRO: Generate a resource return type for a component | ||
| 1335 | #define ENCODE_D3D10_SB_RESOURCE_RETURN_TYPE(ReturnType, Component) \ | ||
| 1336 | (((ReturnType)&D3D10_SB_RESOURCE_RETURN_TYPE_MASK) << (Component * D3D10_SB_RESOURCE_RETURN_TYPE_NUMBITS)) | ||
| 1337 | |||
| 1338 | // ---------------------------------------------------------------------------- | ||
| 1339 | // Sampler Declaration | ||
| 1340 | // | ||
| 1341 | // OpcodeToken0: | ||
| 1342 | // | ||
| 1343 | // [10:00] D3D10_SB_OPCODE_DCL_SAMPLER | ||
| 1344 | // [14:11] D3D10_SB_SAMPLER_MODE | ||
| 1345 | // [23:15] Ignored, 0 | ||
| 1346 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1347 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1348 | // contains extended operand description. This dcl is currently not | ||
| 1349 | // extended. | ||
| 1350 | // | ||
| 1351 | // OpcodeToken0 is followed by 1 operand on Shader Models 4.0 through 5.0: | ||
| 1352 | // (1) Operand starting with OperandToken0, defining which sampler | ||
| 1353 | // (D3D10_SB_OPERAND_TYPE_SAMPLER) register # is being declared. | ||
| 1354 | // | ||
| 1355 | // OpcodeToken0 is followed by 2 operands on Shader Model 5.1 and later: | ||
| 1356 | // (1) an operand, starting with OperandToken0, defining which | ||
| 1357 | // s# register (D3D10_SB_OPERAND_TYPE_SAMPLER) is being declared. | ||
| 1358 | // The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, | ||
| 1359 | // and the meaning of the index dimensions are as follows: (s<id>[<lbound>:<ubound>]) | ||
| 1360 | // 1 <id>: variable ID being declared | ||
| 1361 | // 2 <lbound>: the lower bound of the range of samplers in the space | ||
| 1362 | // 3 <ubound>: the upper bound (inclusive) of this range | ||
| 1363 | // As opposed to when the s# is used in shader instructions, where the register | ||
| 1364 | // must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index | ||
| 1365 | // dimensions are as follows: (s<id>[<idx>]): | ||
| 1366 | // 1 <id>: variable ID being used (matches dcl) | ||
| 1367 | // 2 <idx>: absolute index of sampler within space (may be dynamically indexed) | ||
| 1368 | // (2) a DWORD indicating the space index. | ||
| 1369 | // | ||
| 1370 | // ---------------------------------------------------------------------------- | ||
| 1371 | typedef enum D3D10_SB_SAMPLER_MODE | ||
| 1372 | { | ||
| 1373 | D3D10_SB_SAMPLER_MODE_DEFAULT = 0, | ||
| 1374 | D3D10_SB_SAMPLER_MODE_COMPARISON = 1, | ||
| 1375 | D3D10_SB_SAMPLER_MODE_MONO = 2, | ||
| 1376 | } D3D10_SB_SAMPLER_MODE; | ||
| 1377 | |||
| 1378 | #define D3D10_SB_SAMPLER_MODE_MASK 0x00007800 | ||
| 1379 | #define D3D10_SB_SAMPLER_MODE_SHIFT 11 | ||
| 1380 | |||
| 1381 | // DECODER MACRO: Find out if a Constant Buffer is going to be indexed or not | ||
| 1382 | #define DECODE_D3D10_SB_SAMPLER_MODE(OpcodeToken0) ((D3D10_SB_SAMPLER_MODE)(((OpcodeToken0)&D3D10_SB_SAMPLER_MODE_MASK)>>D3D10_SB_SAMPLER_MODE_SHIFT)) | ||
| 1383 | |||
| 1384 | // ENCODER MACRO: Generate a resource return type for a component | ||
| 1385 | #define ENCODE_D3D10_SB_SAMPLER_MODE(SamplerMode) (((SamplerMode)<<D3D10_SB_SAMPLER_MODE_SHIFT)&D3D10_SB_SAMPLER_MODE_MASK) | ||
| 1386 | |||
| 1387 | // ---------------------------------------------------------------------------- | ||
| 1388 | // Input Register Declaration (see separate declarations for Pixel Shaders) | ||
| 1389 | // | ||
| 1390 | // OpcodeToken0: | ||
| 1391 | // | ||
| 1392 | // [10:00] D3D10_SB_OPCODE_DCL_INPUT | ||
| 1393 | // [23:11] Ignored, 0 | ||
| 1394 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1395 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1396 | // contains extended operand description. This dcl is currently not | ||
| 1397 | // extended. | ||
| 1398 | // | ||
| 1399 | // OpcodeToken0 is followed by 1 operand: | ||
| 1400 | // (1) Operand, starting with OperandToken0, defining which input | ||
| 1401 | // v# register (D3D10_SB_OPERAND_TYPE_INPUT) is being declared, | ||
| 1402 | // including writemask. | ||
| 1403 | // | ||
| 1404 | // ---------------------------------------------------------------------------- | ||
| 1405 | |||
| 1406 | // ---------------------------------------------------------------------------- | ||
| 1407 | // Input Register Declaration w/System Interpreted Value | ||
| 1408 | // (see separate declarations for Pixel Shaders) | ||
| 1409 | // | ||
| 1410 | // OpcodeToken0: | ||
| 1411 | // | ||
| 1412 | // [10:00] D3D10_SB_OPCODE_DCL_INPUT_SIV | ||
| 1413 | // [23:11] Ignored, 0 | ||
| 1414 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1415 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1416 | // contains extended operand description. This dcl is currently not | ||
| 1417 | // extended. | ||
| 1418 | // | ||
| 1419 | // OpcodeToken0 is followed by 2 operands: | ||
| 1420 | // (1) Operand, starting with OperandToken0, defining which input | ||
| 1421 | // v# register (D3D10_SB_OPERAND_TYPE_INPUT) is being declared, | ||
| 1422 | // including writemask. For Geometry Shaders, the input is | ||
| 1423 | // v[vertex][attribute], and this declaration is only for which register | ||
| 1424 | // on the attribute axis is being declared. The vertex axis value must | ||
| 1425 | // be equal to the # of vertices in the current input primitive for the GS | ||
| 1426 | // (i.e. 6 for triangle + adjacency). | ||
| 1427 | // (2) a System Interpreted Value Name (NameToken) | ||
| 1428 | // | ||
| 1429 | // ---------------------------------------------------------------------------- | ||
| 1430 | |||
| 1431 | // ---------------------------------------------------------------------------- | ||
| 1432 | // Input Register Declaration w/System Generated Value | ||
| 1433 | // (available for all shaders incl. Pixel Shader, no interpolation mode needed) | ||
| 1434 | // | ||
| 1435 | // OpcodeToken0: | ||
| 1436 | // | ||
| 1437 | // [10:00] D3D10_SB_OPCODE_DCL_INPUT_SGV | ||
| 1438 | // [23:11] Ignored, 0 | ||
| 1439 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1440 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1441 | // contains extended operand description. This dcl is currently not | ||
| 1442 | // extended. | ||
| 1443 | // | ||
| 1444 | // OpcodeToken0 is followed by 2 operands: | ||
| 1445 | // (1) Operand, starting with OperandToken0, defining which input | ||
| 1446 | // v# register (D3D10_SB_OPERAND_TYPE_INPUT) is being declared, | ||
| 1447 | // including writemask. | ||
| 1448 | // (2) a System Generated Value Name (NameToken) | ||
| 1449 | // | ||
| 1450 | // ---------------------------------------------------------------------------- | ||
| 1451 | |||
| 1452 | // ---------------------------------------------------------------------------- | ||
| 1453 | // Pixel Shader Input Register Declaration | ||
| 1454 | // | ||
| 1455 | // OpcodeToken0: | ||
| 1456 | // | ||
| 1457 | // [10:00] D3D10_SB_OPCODE_DCL_INPUT_PS | ||
| 1458 | // [14:11] D3D10_SB_INTERPOLATION_MODE | ||
| 1459 | // [23:15] Ignored, 0 | ||
| 1460 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1461 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1462 | // contains extended operand description. This dcl is currently not | ||
| 1463 | // extended. | ||
| 1464 | // | ||
| 1465 | // OpcodeToken0 is followed by 1 operand: | ||
| 1466 | // (1) Operand, starting with OperandToken0, defining which input | ||
| 1467 | // v# register (D3D10_SB_OPERAND_TYPE_INPUT) is being declared, | ||
| 1468 | // including writemask. | ||
| 1469 | // | ||
| 1470 | // ---------------------------------------------------------------------------- | ||
| 1471 | #define D3D10_SB_INPUT_INTERPOLATION_MODE_MASK 0x00007800 | ||
| 1472 | #define D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT 11 | ||
| 1473 | |||
| 1474 | // DECODER MACRO: Find out interpolation mode for the input register | ||
| 1475 | #define DECODE_D3D10_SB_INPUT_INTERPOLATION_MODE(OpcodeToken0) ((D3D10_SB_INTERPOLATION_MODE)(((OpcodeToken0)&D3D10_SB_INPUT_INTERPOLATION_MODE_MASK)>>D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT)) | ||
| 1476 | |||
| 1477 | // ENCODER MACRO: Encode interpolation mode for a register. | ||
| 1478 | #define ENCODE_D3D10_SB_INPUT_INTERPOLATION_MODE(InterpolationMode) (((InterpolationMode)<<D3D10_SB_INPUT_INTERPOLATION_MODE_SHIFT)&D3D10_SB_INPUT_INTERPOLATION_MODE_MASK) | ||
| 1479 | |||
| 1480 | // ---------------------------------------------------------------------------- | ||
| 1481 | // Pixel Shader Input Register Declaration w/System Interpreted Value | ||
| 1482 | // | ||
| 1483 | // OpcodeToken0: | ||
| 1484 | // | ||
| 1485 | // [10:00] D3D10_SB_OPCODE_DCL_INPUT_PS_SIV | ||
| 1486 | // [14:11] D3D10_SB_INTERPOLATION_MODE | ||
| 1487 | // [23:15] Ignored, 0 | ||
| 1488 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1489 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1490 | // contains extended operand description. This dcl is currently not | ||
| 1491 | // extended. | ||
| 1492 | // | ||
| 1493 | // OpcodeToken0 is followed by 2 operands: | ||
| 1494 | // (1) Operand, starting with OperandToken0, defining which input | ||
| 1495 | // v# register (D3D10_SB_OPERAND_TYPE_INPUT) is being declared. | ||
| 1496 | // (2) a System Interpreted Value Name (NameToken) | ||
| 1497 | // | ||
| 1498 | // ---------------------------------------------------------------------------- | ||
| 1499 | |||
| 1500 | // ---------------------------------------------------------------------------- | ||
| 1501 | // Pixel Shader Input Register Declaration w/System Generated Value | ||
| 1502 | // | ||
| 1503 | // OpcodeToken0: | ||
| 1504 | // | ||
| 1505 | // [10:00] D3D10_SB_OPCODE_DCL_INPUT_PS_SGV | ||
| 1506 | // [23:11] Ignored, 0 | ||
| 1507 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1508 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1509 | // contains extended operand description. This dcl is currently not | ||
| 1510 | // extended. | ||
| 1511 | // | ||
| 1512 | // OpcodeToken0 is followed by 2 operands: | ||
| 1513 | // (1) Operand, starting with OperandToken0, defining which input | ||
| 1514 | // v# register (D3D10_SB_OPERAND_TYPE_INPUT) is being declared. | ||
| 1515 | // (2) a System Generated Value Name (NameToken) | ||
| 1516 | // | ||
| 1517 | // ---------------------------------------------------------------------------- | ||
| 1518 | |||
| 1519 | // ---------------------------------------------------------------------------- | ||
| 1520 | // Output Register Declaration | ||
| 1521 | // | ||
| 1522 | // OpcodeToken0: | ||
| 1523 | // | ||
| 1524 | // [10:00] D3D10_SB_OPCODE_DCL_OUTPUT | ||
| 1525 | // [23:11] Ignored, 0 | ||
| 1526 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1527 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1528 | // contains extended operand description. This dcl is currently not | ||
| 1529 | // extended. | ||
| 1530 | // | ||
| 1531 | // OpcodeToken0 is followed by 1 operand: | ||
| 1532 | // (1) Operand, starting with OperandToken0, defining which | ||
| 1533 | // o# register (D3D10_SB_OPERAND_TYPE_OUTPUT) is being declared, | ||
| 1534 | // including writemask. | ||
| 1535 | // (in Pixel Shader, output can also be one of | ||
| 1536 | // D3D10_SB_OPERAND_TYPE_OUTPUT_DEPTH, | ||
| 1537 | // D3D11_SB_OPERAND_TYPE_OUTPUT_DEPTH_GREATER_EQUAL, or | ||
| 1538 | // D3D11_SB_OPERAND_TYPE_OUTPUT_DEPTH_LESS_EQUAL ) | ||
| 1539 | // | ||
| 1540 | // ---------------------------------------------------------------------------- | ||
| 1541 | |||
| 1542 | // ---------------------------------------------------------------------------- | ||
| 1543 | // Output Register Declaration w/System Interpreted Value | ||
| 1544 | // | ||
| 1545 | // OpcodeToken0: | ||
| 1546 | // | ||
| 1547 | // [10:00] D3D10_SB_OPCODE_DCL_OUTPUT_SIV | ||
| 1548 | // [23:11] Ignored, 0 | ||
| 1549 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1550 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1551 | // contains extended operand description. This dcl is currently not | ||
| 1552 | // extended. | ||
| 1553 | // | ||
| 1554 | // OpcodeToken0 is followed by 2 operands: | ||
| 1555 | // (1) an operand, starting with OperandToken0, defining which | ||
| 1556 | // o# register (D3D10_SB_OPERAND_TYPE_OUTPUT) is being declared, | ||
| 1557 | // including writemask. | ||
| 1558 | // (2) a System Interpreted Name token (NameToken) | ||
| 1559 | // | ||
| 1560 | // ---------------------------------------------------------------------------- | ||
| 1561 | |||
| 1562 | // ---------------------------------------------------------------------------- | ||
| 1563 | // Output Register Declaration w/System Generated Value | ||
| 1564 | // | ||
| 1565 | // OpcodeToken0: | ||
| 1566 | // | ||
| 1567 | // [10:00] D3D10_SB_OPCODE_DCL_OUTPUT_SGV | ||
| 1568 | // [23:11] Ignored, 0 | ||
| 1569 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1570 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1571 | // contains extended operand description. This dcl is currently not | ||
| 1572 | // extended. | ||
| 1573 | // | ||
| 1574 | // OpcodeToken0 is followed by 2 operands: | ||
| 1575 | // (1) an operand, starting with OperandToken0, defining which | ||
| 1576 | // o# register (D3D10_SB_OPERAND_TYPE_OUTPUT) is being declared, | ||
| 1577 | // including writemask. | ||
| 1578 | // (2) a System Generated Name token (NameToken) | ||
| 1579 | // | ||
| 1580 | // ---------------------------------------------------------------------------- | ||
| 1581 | |||
| 1582 | |||
| 1583 | // ---------------------------------------------------------------------------- | ||
| 1584 | // Input or Output Register Indexing Range Declaration | ||
| 1585 | // | ||
| 1586 | // OpcodeToken0: | ||
| 1587 | // | ||
| 1588 | // [10:00] D3D10_SB_OPCODE_DCL_INDEX_RANGE | ||
| 1589 | // [23:11] Ignored, 0 | ||
| 1590 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1591 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1592 | // contains extended operand description. This dcl is currently not | ||
| 1593 | // extended. | ||
| 1594 | // | ||
| 1595 | // OpcodeToken0 is followed by 2 operands: | ||
| 1596 | // (1) an operand, starting with OperandToken0, defining which | ||
| 1597 | // input (v#) or output (o#) register is having its array indexing range | ||
| 1598 | // declared, including writemask. For Geometry Shader inputs, | ||
| 1599 | // it is assumed that the vertex axis is always fully indexable, | ||
| 1600 | // and 0 must be specified as the vertex# in this declaration, so that | ||
| 1601 | // only the a range of attributes are having their index range defined. | ||
| 1602 | // | ||
| 1603 | // (2) a DWORD representing the count of registers starting from the one | ||
| 1604 | // indicated in (1). | ||
| 1605 | // | ||
| 1606 | // ---------------------------------------------------------------------------- | ||
| 1607 | |||
| 1608 | // ---------------------------------------------------------------------------- | ||
| 1609 | // Temp Register Declaration r0...r(n-1) | ||
| 1610 | // | ||
| 1611 | // OpcodeToken0: | ||
| 1612 | // | ||
| 1613 | // [10:00] D3D10_SB_OPCODE_DCL_TEMPS | ||
| 1614 | // [23:11] Ignored, 0 | ||
| 1615 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1616 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1617 | // contains extended operand description. This dcl is currently not | ||
| 1618 | // extended. | ||
| 1619 | // | ||
| 1620 | // OpcodeToken0 is followed by 1 operand: | ||
| 1621 | // (1) DWORD (unsigned int) indicating how many temps are being declared. | ||
| 1622 | // i.e. 5 means r0...r4 are declared. | ||
| 1623 | // | ||
| 1624 | // ---------------------------------------------------------------------------- | ||
| 1625 | |||
| 1626 | // ---------------------------------------------------------------------------- | ||
| 1627 | // Indexable Temp Register (x#[size]) Declaration | ||
| 1628 | // | ||
| 1629 | // OpcodeToken0: | ||
| 1630 | // | ||
| 1631 | // [10:00] D3D10_SB_OPCODE_DCL_INDEXABLE_TEMP | ||
| 1632 | // [23:11] Ignored, 0 | ||
| 1633 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1634 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1635 | // contains extended operand description. This dcl is currently not | ||
| 1636 | // extended. | ||
| 1637 | // | ||
| 1638 | // OpcodeToken0 is followed by 3 DWORDs: | ||
| 1639 | // (1) Register index (defines which x# register is declared) | ||
| 1640 | // (2) Number of registers in this register bank | ||
| 1641 | // (3) Number of components in the array (1-4). 1 means .x, 2 means .xy etc. | ||
| 1642 | // | ||
| 1643 | // ---------------------------------------------------------------------------- | ||
| 1644 | |||
| 1645 | // ---------------------------------------------------------------------------- | ||
| 1646 | // Constant Buffer Declaration | ||
| 1647 | // | ||
| 1648 | // OpcodeToken0: | ||
| 1649 | // | ||
| 1650 | // [10:00] D3D10_SB_OPCODE_DCL_CONSTANT_BUFFER | ||
| 1651 | // [11] D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN | ||
| 1652 | // [23:12] Ignored, 0 | ||
| 1653 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1654 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1655 | // contains extended operand description. This dcl is currently not | ||
| 1656 | // extended. | ||
| 1657 | // | ||
| 1658 | // OpcodeToken0 is followed by 1 operand on Shader Model 4.0 through 5.0: | ||
| 1659 | // (1) Operand, starting with OperandToken0, defining which CB slot (cb#[size]) | ||
| 1660 | // is being declared. (operand type: D3D10_SB_OPERAND_TYPE_CONSTANT_BUFFER) | ||
| 1661 | // The indexing dimension for the register must be | ||
| 1662 | // D3D10_SB_OPERAND_INDEX_DIMENSION_2D, where the first index specifies | ||
| 1663 | // which cb#[] is being declared, and the second (array) index specifies the size | ||
| 1664 | // of the buffer, as a count of 32-bit*4 elements. (As opposed to when the | ||
| 1665 | // cb#[] is used in shader instructions, and the array index represents which | ||
| 1666 | // location in the constant buffer is being referenced.) | ||
| 1667 | // If the size is specified as 0, the CB size is not known (any size CB | ||
| 1668 | // can be bound to the slot). | ||
| 1669 | // | ||
| 1670 | // The order of constant buffer declarations in a shader indicates their | ||
| 1671 | // relative priority from highest to lowest (hint to driver). | ||
| 1672 | // | ||
| 1673 | // OpcodeToken0 is followed by 3 operands on Shader Model 5.1 and later: | ||
| 1674 | // (1) Operand, starting with OperandToken0, defining which CB range (ID and bounds) | ||
| 1675 | // is being declared. (operand type: D3D10_SB_OPERAND_TYPE_CONSTANT_BUFFER) | ||
| 1676 | // The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, | ||
| 1677 | // and the meaning of the index dimensions are as follows: (cb<id>[<lbound>:<ubound>]) | ||
| 1678 | // 1 <id>: variable ID being declared | ||
| 1679 | // 2 <lbound>: the lower bound of the range of constant buffers in the space | ||
| 1680 | // 3 <ubound>: the upper bound (inclusive) of this range | ||
| 1681 | // As opposed to when the cb#[] is used in shader instructions: (cb<id>[<idx>][<loc>]) | ||
| 1682 | // 1 <id>: variable ID being used (matches dcl) | ||
| 1683 | // 2 <idx>: absolute index of constant buffer within space (may be dynamically indexed) | ||
| 1684 | // 3 <loc>: location of vector within constant buffer being referenced, | ||
| 1685 | // which may also be dynamically indexed, with no access pattern flag required. | ||
| 1686 | // (2) a DWORD indicating the size of the constant buffer as a count of 16-byte vectors. | ||
| 1687 | // Each vector is 32-bit*4 elements == 128-bits == 16 bytes. | ||
| 1688 | // If the size is specified as 0, the CB size is not known (any size CB | ||
| 1689 | // can be bound to the slot). | ||
| 1690 | // (3) a DWORD indicating the space index. | ||
| 1691 | // | ||
| 1692 | // ---------------------------------------------------------------------------- | ||
| 1693 | |||
| 1694 | typedef enum D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN | ||
| 1695 | { | ||
| 1696 | D3D10_SB_CONSTANT_BUFFER_IMMEDIATE_INDEXED = 0, | ||
| 1697 | D3D10_SB_CONSTANT_BUFFER_DYNAMIC_INDEXED = 1 | ||
| 1698 | } D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN; | ||
| 1699 | |||
| 1700 | #define D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK 0x00000800 | ||
| 1701 | #define D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT 11 | ||
| 1702 | |||
| 1703 | // DECODER MACRO: Find out if a Constant Buffer is going to be indexed or not | ||
| 1704 | #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)) | ||
| 1705 | |||
| 1706 | // ENCODER MACRO: Encode the access pattern for the Constant Buffer | ||
| 1707 | #define ENCODE_D3D10_SB_D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN(AccessPattern) (((AccessPattern)<<D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_SHIFT)&D3D10_SB_CONSTANT_BUFFER_ACCESS_PATTERN_MASK) | ||
| 1708 | |||
| 1709 | // ---------------------------------------------------------------------------- | ||
| 1710 | // Immediate Constant Buffer Declaration | ||
| 1711 | // | ||
| 1712 | // OpcodeToken0: | ||
| 1713 | // | ||
| 1714 | // [10:00] D3D10_SB_OPCODE_CUSTOMDATA | ||
| 1715 | // [31:11] == D3D10_SB_CUSTOMDATA_DCL_IMMEDIATE_CONSTANT_BUFFER | ||
| 1716 | // | ||
| 1717 | // OpcodeToken0 is followed by: | ||
| 1718 | // (1) DWORD indicating length of declaration, including OpcodeToken0. | ||
| 1719 | // This length must = 2(for OpcodeToken0 and 1) + a multiple of 4 | ||
| 1720 | // (# of immediate constants) | ||
| 1721 | // (2) Sequence of 4-tuples of DWORDs defining the Immediate Constant Buffer. | ||
| 1722 | // The number of 4-tuples is (length above - 1) / 4 | ||
| 1723 | // ---------------------------------------------------------------------------- | ||
| 1724 | |||
| 1725 | // ---------------------------------------------------------------------------- | ||
| 1726 | // Shader Message Declaration | ||
| 1727 | // | ||
| 1728 | // OpcodeToken0: | ||
| 1729 | // | ||
| 1730 | // [10:00] D3D10_SB_OPCODE_CUSTOMDATA | ||
| 1731 | // [31:11] == D3D11_SB_CUSTOMDATA_SHADER_MESSAGE | ||
| 1732 | // | ||
| 1733 | // OpcodeToken0 is followed by: | ||
| 1734 | // (1) DWORD indicating length of declaration, including OpcodeToken0. | ||
| 1735 | // (2) DWORD (D3D11_SB_SHADER_MESSAGE_ID) indicating shader message or error. | ||
| 1736 | // (3) D3D11_SB_SHADER_MESSAGE_FORMAT indicating the convention for formatting the message. | ||
| 1737 | // (4) DWORD indicating the number of characters in the string without the terminator. | ||
| 1738 | // (5) DWORD indicating the number of operands. | ||
| 1739 | // (6) DWORD indicating length of operands. | ||
| 1740 | // (7) Encoded operands. | ||
| 1741 | // (8) String with trailing zero, padded to a multiple of DWORDs. | ||
| 1742 | // The string is in the given format and the operands given should | ||
| 1743 | // be used for argument substitutions when formatting. | ||
| 1744 | // ---------------------------------------------------------------------------- | ||
| 1745 | |||
| 1746 | typedef enum D3D11_SB_SHADER_MESSAGE_ID | ||
| 1747 | { | ||
| 1748 | D3D11_SB_SHADER_MESSAGE_ID_MESSAGE = 0x00200102, | ||
| 1749 | D3D11_SB_SHADER_MESSAGE_ID_ERROR = 0x00200103 | ||
| 1750 | } D3D11_SB_SHADER_MESSAGE_ID; | ||
| 1751 | |||
| 1752 | typedef enum D3D11_SB_SHADER_MESSAGE_FORMAT | ||
| 1753 | { | ||
| 1754 | // No formatting, just a text string. Operands are ignored. | ||
| 1755 | D3D11_SB_SHADER_MESSAGE_FORMAT_ANSI_TEXT, | ||
| 1756 | // Format string follows C/C++ printf conventions. | ||
| 1757 | D3D11_SB_SHADER_MESSAGE_FORMAT_ANSI_PRINTF, | ||
| 1758 | } D3D11_SB_SHADER_MESSAGE_FORMAT; | ||
| 1759 | |||
| 1760 | // ---------------------------------------------------------------------------- | ||
| 1761 | // Shader Clip Plane Constant Mappings for DX9 hardware | ||
| 1762 | // | ||
| 1763 | // OpcodeToken0: | ||
| 1764 | // | ||
| 1765 | // [10:00] D3D10_SB_OPCODE_CUSTOMDATA | ||
| 1766 | // [31:11] == D3D11_SB_CUSTOMDATA_SHADER_CLIP_PLANE_CONSTANT_MAPPINGS_FOR_DX9 | ||
| 1767 | // | ||
| 1768 | // OpcodeToken0 is followed by: | ||
| 1769 | // (1) DWORD indicating length of declaration, including OpcodeToken0. | ||
| 1770 | // (2) DWORD indicating number of constant mappings (up to 6 mappings). | ||
| 1771 | // (3+) Constant mapping tables in following format. | ||
| 1772 | // | ||
| 1773 | // struct _Clip_Plane_Constant_Mapping | ||
| 1774 | // { | ||
| 1775 | // WORD ConstantBufferIndex; // cb[n] | ||
| 1776 | // WORD StartConstantElement; // starting index of cb[n][m] | ||
| 1777 | // WORD ConstantElemntCount; // number of elements cb[n][m] ~ cb[n][m+l] | ||
| 1778 | // WORD Reserved; // | ||
| 1779 | // }; | ||
| 1780 | // ---------------------------------------------------------------------------- | ||
| 1781 | |||
| 1782 | // ---------------------------------------------------------------------------- | ||
| 1783 | // Geometry Shader Input Primitive Declaration | ||
| 1784 | // | ||
| 1785 | // OpcodeToken0: | ||
| 1786 | // | ||
| 1787 | // [10:00] D3D10_SB_OPCODE_DCL_GS_INPUT_PRIMITIVE | ||
| 1788 | // [16:11] D3D10_SB_PRIMITIVE [not D3D10_SB_PRIMITIVE_TOPOLOGY] | ||
| 1789 | // [23:17] Ignored, 0 | ||
| 1790 | // [30:24] Instruction length in DWORDs including the opcode token. == 1 | ||
| 1791 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1792 | // contains extended operand description. This dcl is currently not | ||
| 1793 | // extended. | ||
| 1794 | // | ||
| 1795 | // ---------------------------------------------------------------------------- | ||
| 1796 | |||
| 1797 | #define D3D10_SB_GS_INPUT_PRIMITIVE_MASK 0x0001f800 | ||
| 1798 | #define D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT 11 | ||
| 1799 | |||
| 1800 | // DECODER MACRO: Given a primitive topology declaration, | ||
| 1801 | // (OpcodeToken0), determine the primitive topology | ||
| 1802 | // (D3D10_SB_PRIMITIVE enum) | ||
| 1803 | #define DECODE_D3D10_SB_GS_INPUT_PRIMITIVE(OpcodeToken0) ((D3D10_SB_PRIMITIVE)(((OpcodeToken0)&D3D10_SB_GS_INPUT_PRIMITIVE_MASK)>>D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT)) | ||
| 1804 | |||
| 1805 | // ENCODER MACRO: Store primitive topology | ||
| 1806 | // (D3D10_SB_PRIMITIVE enum) into a | ||
| 1807 | // a primitive topology declaration token (OpcodeToken0) | ||
| 1808 | #define ENCODE_D3D10_SB_GS_INPUT_PRIMITIVE(Prim) (((Prim)<<D3D10_SB_GS_INPUT_PRIMITIVE_SHIFT)&D3D10_SB_GS_INPUT_PRIMITIVE_MASK) | ||
| 1809 | |||
| 1810 | // ---------------------------------------------------------------------------- | ||
| 1811 | // Geometry Shader Output Topology Declaration | ||
| 1812 | // | ||
| 1813 | // OpcodeToken0: | ||
| 1814 | // | ||
| 1815 | // [10:00] D3D10_SB_OPCODE_DCL_GS_OUTPUT_PRIMITIVE_TOPOLOGY | ||
| 1816 | // [17:11] D3D10_SB_PRIMITIVE_TOPOLOGY | ||
| 1817 | // [23:18] Ignored, 0 | ||
| 1818 | // [30:24] Instruction length in DWORDs including the opcode token. == 1 | ||
| 1819 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1820 | // contains extended operand description. This dcl is currently not | ||
| 1821 | // extended. | ||
| 1822 | // | ||
| 1823 | // ---------------------------------------------------------------------------- | ||
| 1824 | |||
| 1825 | #define D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_MASK 0x0001f800 | ||
| 1826 | #define D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT 11 | ||
| 1827 | |||
| 1828 | // DECODER MACRO: Given a primitive topology declaration, | ||
| 1829 | // (OpcodeToken0), determine the primitive topology | ||
| 1830 | // (D3D10_SB_PRIMITIVE_TOPOLOGY enum) | ||
| 1831 | #define DECODE_D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY(OpcodeToken0) ((D3D10_SB_PRIMITIVE_TOPOLOGY)(((OpcodeToken0)&D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_MASK)>>D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT)) | ||
| 1832 | |||
| 1833 | // ENCODER MACRO: Store primitive topology | ||
| 1834 | // (D3D10_SB_PRIMITIVE_TOPOLOGY enum) into a | ||
| 1835 | // a primitive topology declaration token (OpcodeToken0) | ||
| 1836 | #define ENCODE_D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY(PrimTopology) (((PrimTopology)<<D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_SHIFT)&D3D10_SB_GS_OUTPUT_PRIMITIVE_TOPOLOGY_MASK) | ||
| 1837 | |||
| 1838 | // ---------------------------------------------------------------------------- | ||
| 1839 | // Geometry Shader Maximum Output Vertex Count Declaration | ||
| 1840 | // | ||
| 1841 | // OpcodeToken0: | ||
| 1842 | // | ||
| 1843 | // [10:00] D3D10_SB_OPCODE_DCL_MAX_OUTPUT_VERTEX_COUNT | ||
| 1844 | // [23:11] Ignored, 0 | ||
| 1845 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1846 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1847 | // contains extended operand description. This dcl is currently not | ||
| 1848 | // extended. | ||
| 1849 | // | ||
| 1850 | // OpcodeToken0 is followed by a DWORD representing the | ||
| 1851 | // maximum number of primitives that could be output | ||
| 1852 | // by the Geometry Shader. | ||
| 1853 | // | ||
| 1854 | // ---------------------------------------------------------------------------- | ||
| 1855 | |||
| 1856 | // ---------------------------------------------------------------------------- | ||
| 1857 | // Geometry Shader Instance Count Declaration | ||
| 1858 | // | ||
| 1859 | // OpcodeToken0: | ||
| 1860 | // | ||
| 1861 | // [10:00] D3D11_SB_OPCODE_DCL_GS_INSTANCE_COUNT | ||
| 1862 | // [23:11] Ignored, 0 | ||
| 1863 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 1864 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1865 | // contains extended operand description. This dcl is currently not | ||
| 1866 | // extended. | ||
| 1867 | // | ||
| 1868 | // OpcodeToken0 is followed by a UINT32 representing the | ||
| 1869 | // number of instances of the geometry shader program to execute. | ||
| 1870 | // | ||
| 1871 | // ---------------------------------------------------------------------------- | ||
| 1872 | |||
| 1873 | // ---------------------------------------------------------------------------- | ||
| 1874 | // Hull Shader Declaration Phase: HS/DS Input Control Point Count | ||
| 1875 | // | ||
| 1876 | // OpcodeToken0: | ||
| 1877 | // | ||
| 1878 | // [10:00] D3D11_SB_OPCODE_DCL_INPUT_CONTROL_POINT_COUNT | ||
| 1879 | // [16:11] Control point count | ||
| 1880 | // [23:17] Ignored, 0 | ||
| 1881 | // [30:24] Instruction length in DWORDs including the opcode token. == 1 | ||
| 1882 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1883 | // contains extended operand description. This dcl is currently not | ||
| 1884 | // extended. | ||
| 1885 | // | ||
| 1886 | // ---------------------------------------------------------------------------- | ||
| 1887 | #define D3D11_SB_INPUT_CONTROL_POINT_COUNT_MASK 0x0001f800 | ||
| 1888 | #define D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT 11 | ||
| 1889 | |||
| 1890 | // DECODER MACRO: Given an input control point count declaration token, | ||
| 1891 | // (OpcodeToken0), determine the control point count | ||
| 1892 | #define DECODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(OpcodeToken0) ((UINT)(((OpcodeToken0)&D3D11_SB_INPUT_CONTROL_POINT_COUNT_MASK)>>D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT)) | ||
| 1893 | |||
| 1894 | // ENCODER MACRO: Store input control point count into a declaration token | ||
| 1895 | #define ENCODE_D3D11_SB_INPUT_CONTROL_POINT_COUNT(Count) (((Count)<<D3D11_SB_INPUT_CONTROL_POINT_COUNT_SHIFT)&D3D11_SB_INPUT_CONTROL_POINT_COUNT_MASK) | ||
| 1896 | |||
| 1897 | // ---------------------------------------------------------------------------- | ||
| 1898 | // Hull Shader Declaration Phase: HS Output Control Point Count | ||
| 1899 | // | ||
| 1900 | // OpcodeToken0: | ||
| 1901 | // | ||
| 1902 | // [10:00] D3D11_SB_OPCODE_DCL_OUTPUT_CONTROL_POINT_COUNT | ||
| 1903 | // [16:11] Control point count | ||
| 1904 | // [23:17] Ignored, 0 | ||
| 1905 | // [30:24] Instruction length in DWORDs including the opcode token. == 1 | ||
| 1906 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1907 | // contains extended operand description. This dcl is currently not | ||
| 1908 | // extended. | ||
| 1909 | // | ||
| 1910 | // ---------------------------------------------------------------------------- | ||
| 1911 | #define D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_MASK 0x0001f800 | ||
| 1912 | #define D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT 11 | ||
| 1913 | |||
| 1914 | // DECODER MACRO: Given an output control point count declaration token, | ||
| 1915 | // (OpcodeToken0), determine the control point count | ||
| 1916 | #define DECODE_D3D11_SB_OUTPUT_CONTROL_POINT_COUNT(OpcodeToken0) ((UINT)(((OpcodeToken0)&D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_MASK)>>D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT)) | ||
| 1917 | |||
| 1918 | // ENCODER MACRO: Store output control point count into a declaration token | ||
| 1919 | #define ENCODE_D3D11_SB_OUTPUT_CONTROL_POINT_COUNT(Count) (((Count)<<D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_SHIFT)&D3D11_SB_OUTPUT_CONTROL_POINT_COUNT_MASK) | ||
| 1920 | |||
| 1921 | // ---------------------------------------------------------------------------- | ||
| 1922 | // Hull Shader Declaration Phase: Tessellator Domain | ||
| 1923 | // | ||
| 1924 | // OpcodeToken0: | ||
| 1925 | // | ||
| 1926 | // [10:00] D3D11_SB_OPCODE_DCL_TESS_DOMAIN | ||
| 1927 | // [12:11] Domain | ||
| 1928 | // [23:13] Ignored, 0 | ||
| 1929 | // [30:24] Instruction length in DWORDs including the opcode token. == 1 | ||
| 1930 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1931 | // contains extended operand description. This dcl is currently not | ||
| 1932 | // extended. | ||
| 1933 | // | ||
| 1934 | // ---------------------------------------------------------------------------- | ||
| 1935 | typedef enum D3D11_SB_TESSELLATOR_DOMAIN | ||
| 1936 | { | ||
| 1937 | D3D11_SB_TESSELLATOR_DOMAIN_UNDEFINED = 0, | ||
| 1938 | D3D11_SB_TESSELLATOR_DOMAIN_ISOLINE = 1, | ||
| 1939 | D3D11_SB_TESSELLATOR_DOMAIN_TRI = 2, | ||
| 1940 | D3D11_SB_TESSELLATOR_DOMAIN_QUAD = 3 | ||
| 1941 | } D3D11_SB_TESSELLATOR_DOMAIN; | ||
| 1942 | |||
| 1943 | #define D3D11_SB_TESS_DOMAIN_MASK 0x00001800 | ||
| 1944 | #define D3D11_SB_TESS_DOMAIN_SHIFT 11 | ||
| 1945 | |||
| 1946 | // DECODER MACRO: Given a tessellator domain declaration, | ||
| 1947 | // (OpcodeToken0), determine the domain | ||
| 1948 | // (D3D11_SB_TESSELLATOR_DOMAIN enum) | ||
| 1949 | #define DECODE_D3D11_SB_TESS_DOMAIN(OpcodeToken0) ((D3D11_SB_TESSELLATOR_DOMAIN)(((OpcodeToken0)&D3D11_SB_TESS_DOMAIN_MASK)>>D3D11_SB_TESS_DOMAIN_SHIFT)) | ||
| 1950 | |||
| 1951 | // ENCODER MACRO: Store tessellator domain | ||
| 1952 | // (D3D11_SB_TESSELLATOR_DOMAIN enum) into a | ||
| 1953 | // a tessellator domain declaration token (OpcodeToken0) | ||
| 1954 | #define ENCODE_D3D11_SB_TESS_DOMAIN(Domain) (((Domain)<<D3D11_SB_TESS_DOMAIN_SHIFT)&D3D11_SB_TESS_DOMAIN_MASK) | ||
| 1955 | |||
| 1956 | // ---------------------------------------------------------------------------- | ||
| 1957 | // Hull Shader Declaration Phase: Tessellator Partitioning | ||
| 1958 | // | ||
| 1959 | // OpcodeToken0: | ||
| 1960 | // | ||
| 1961 | // [10:00] D3D11_SB_OPCODE_DCL_TESS_PARTITIONING | ||
| 1962 | // [13:11] Partitioning | ||
| 1963 | // [23:14] Ignored, 0 | ||
| 1964 | // [30:24] Instruction length in DWORDs including the opcode token. == 1 | ||
| 1965 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 1966 | // contains extended operand description. This dcl is currently not | ||
| 1967 | // extended. | ||
| 1968 | // | ||
| 1969 | // ---------------------------------------------------------------------------- | ||
| 1970 | typedef enum D3D11_SB_TESSELLATOR_PARTITIONING | ||
| 1971 | { | ||
| 1972 | D3D11_SB_TESSELLATOR_PARTITIONING_UNDEFINED = 0, | ||
| 1973 | D3D11_SB_TESSELLATOR_PARTITIONING_INTEGER = 1, | ||
| 1974 | D3D11_SB_TESSELLATOR_PARTITIONING_POW2 = 2, | ||
| 1975 | D3D11_SB_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3, | ||
| 1976 | D3D11_SB_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4 | ||
| 1977 | } D3D11_SB_TESSELLATOR_PARTITIONING; | ||
| 1978 | |||
| 1979 | #define D3D11_SB_TESS_PARTITIONING_MASK 0x00003800 | ||
| 1980 | #define D3D11_SB_TESS_PARTITIONING_SHIFT 11 | ||
| 1981 | |||
| 1982 | // DECODER MACRO: Given a tessellator partitioning declaration, | ||
| 1983 | // (OpcodeToken0), determine the domain | ||
| 1984 | // (D3D11_SB_TESSELLATOR_PARTITIONING enum) | ||
| 1985 | #define DECODE_D3D11_SB_TESS_PARTITIONING(OpcodeToken0) ((D3D11_SB_TESSELLATOR_PARTITIONING)(((OpcodeToken0)&D3D11_SB_TESS_PARTITIONING_MASK)>>D3D11_SB_TESS_PARTITIONING_SHIFT)) | ||
| 1986 | |||
| 1987 | // ENCODER MACRO: Store tessellator partitioning | ||
| 1988 | // (D3D11_SB_TESSELLATOR_PARTITIONING enum) into a | ||
| 1989 | // a tessellator partitioning declaration token (OpcodeToken0) | ||
| 1990 | #define ENCODE_D3D11_SB_TESS_PARTITIONING(Partitioning) (((Partitioning)<<D3D11_SB_TESS_PARTITIONING_SHIFT)&D3D11_SB_TESS_PARTITIONING_MASK) | ||
| 1991 | |||
| 1992 | // ---------------------------------------------------------------------------- | ||
| 1993 | // Hull Shader Declaration Phase: Tessellator Output Primitive | ||
| 1994 | // | ||
| 1995 | // OpcodeToken0: | ||
| 1996 | // | ||
| 1997 | // [10:00] D3D11_SB_OPCODE_DCL_TESS_OUTPUT_PRIMITIVE | ||
| 1998 | // [13:11] Output Primitive | ||
| 1999 | // [23:14] Ignored, 0 | ||
| 2000 | // [30:24] Instruction length in DWORDs including the opcode token. == 1 | ||
| 2001 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2002 | // contains extended operand description. This dcl is currently not | ||
| 2003 | // extended. | ||
| 2004 | // | ||
| 2005 | // ---------------------------------------------------------------------------- | ||
| 2006 | typedef enum D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE | ||
| 2007 | { | ||
| 2008 | D3D11_SB_TESSELLATOR_OUTPUT_UNDEFINED = 0, | ||
| 2009 | D3D11_SB_TESSELLATOR_OUTPUT_POINT = 1, | ||
| 2010 | D3D11_SB_TESSELLATOR_OUTPUT_LINE = 2, | ||
| 2011 | D3D11_SB_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3, | ||
| 2012 | D3D11_SB_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4 | ||
| 2013 | } D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE; | ||
| 2014 | |||
| 2015 | #define D3D11_SB_TESS_OUTPUT_PRIMITIVE_MASK 0x00003800 | ||
| 2016 | #define D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT 11 | ||
| 2017 | |||
| 2018 | // DECODER MACRO: Given a tessellator output primitive declaration, | ||
| 2019 | // (OpcodeToken0), determine the domain | ||
| 2020 | // (D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE enum) | ||
| 2021 | #define DECODE_D3D11_SB_TESS_OUTPUT_PRIMITIVE(OpcodeToken0) ((D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE)(((OpcodeToken0)&D3D11_SB_TESS_OUTPUT_PRIMITIVE_MASK)>>D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT)) | ||
| 2022 | |||
| 2023 | // ENCODER MACRO: Store tessellator output primitive | ||
| 2024 | // (D3D11_SB_TESSELLATOR_OUTPUT_PRIMITIVE enum) into a | ||
| 2025 | // a tessellator output primitive declaration token (OpcodeToken0) | ||
| 2026 | #define ENCODE_D3D11_SB_TESS_OUTPUT_PRIMITIVE(OutputPrimitive) (((OutputPrimitive)<<D3D11_SB_TESS_OUTPUT_PRIMITIVE_SHIFT)&D3D11_SB_TESS_OUTPUT_PRIMITIVE_MASK) | ||
| 2027 | |||
| 2028 | |||
| 2029 | // ---------------------------------------------------------------------------- | ||
| 2030 | // Hull Shader Declaration Phase: Hull Shader Max Tessfactor | ||
| 2031 | // | ||
| 2032 | // OpcodeToken0: | ||
| 2033 | // | ||
| 2034 | // [10:00] D3D11_SB_OPCODE_DCL_HS_MAX_TESSFACTOR | ||
| 2035 | // [23:11] Ignored, 0 | ||
| 2036 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2037 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2038 | // contains extended operand description. This dcl is currently not | ||
| 2039 | // extended. | ||
| 2040 | // | ||
| 2041 | // OpcodeToken0 is followed by a float32 representing the | ||
| 2042 | // maximum TessFactor. | ||
| 2043 | // | ||
| 2044 | // ---------------------------------------------------------------------------- | ||
| 2045 | |||
| 2046 | // ---------------------------------------------------------------------------- | ||
| 2047 | // Hull Shader Declaration Phase: Hull Shader Fork Phase Instance Count | ||
| 2048 | // | ||
| 2049 | // OpcodeToken0: | ||
| 2050 | // | ||
| 2051 | // [10:00] D3D11_SB_OPCODE_DCL_HS_FORK_PHASE_INSTANCE_COUNT | ||
| 2052 | // [23:11] Ignored, 0 | ||
| 2053 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2054 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2055 | // contains extended operand description. This dcl is currently not | ||
| 2056 | // extended. | ||
| 2057 | // | ||
| 2058 | // OpcodeToken0 is followed by a UINT32 representing the | ||
| 2059 | // number of instances of the current fork phase program to execute. | ||
| 2060 | // | ||
| 2061 | // ---------------------------------------------------------------------------- | ||
| 2062 | |||
| 2063 | typedef enum D3D10_SB_INTERPOLATION_MODE | ||
| 2064 | { | ||
| 2065 | D3D10_SB_INTERPOLATION_UNDEFINED = 0, | ||
| 2066 | D3D10_SB_INTERPOLATION_CONSTANT = 1, | ||
| 2067 | D3D10_SB_INTERPOLATION_LINEAR = 2, | ||
| 2068 | D3D10_SB_INTERPOLATION_LINEAR_CENTROID = 3, | ||
| 2069 | D3D10_SB_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4, | ||
| 2070 | D3D10_SB_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5, | ||
| 2071 | D3D10_SB_INTERPOLATION_LINEAR_SAMPLE = 6, // DX10.1 | ||
| 2072 | D3D10_SB_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7, // DX10.1 | ||
| 2073 | } D3D10_SB_INTERPOLATION_MODE; | ||
| 2074 | |||
| 2075 | // Keep PRIMITIVE_TOPOLOGY values in sync with earlier DX versions (HW consumes values directly). | ||
| 2076 | typedef enum D3D10_SB_PRIMITIVE_TOPOLOGY | ||
| 2077 | { | ||
| 2078 | D3D10_SB_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, | ||
| 2079 | D3D10_SB_PRIMITIVE_TOPOLOGY_POINTLIST = 1, | ||
| 2080 | D3D10_SB_PRIMITIVE_TOPOLOGY_LINELIST = 2, | ||
| 2081 | D3D10_SB_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, | ||
| 2082 | D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, | ||
| 2083 | D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, | ||
| 2084 | // 6 is reserved for legacy triangle fans | ||
| 2085 | // Adjacency values should be equal to (0x8 & non-adjacency): | ||
| 2086 | D3D10_SB_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, | ||
| 2087 | D3D10_SB_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, | ||
| 2088 | D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, | ||
| 2089 | D3D10_SB_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13, | ||
| 2090 | } D3D10_SB_PRIMITIVE_TOPOLOGY; | ||
| 2091 | |||
| 2092 | typedef enum D3D10_SB_PRIMITIVE | ||
| 2093 | { | ||
| 2094 | D3D10_SB_PRIMITIVE_UNDEFINED = 0, | ||
| 2095 | D3D10_SB_PRIMITIVE_POINT = 1, | ||
| 2096 | D3D10_SB_PRIMITIVE_LINE = 2, | ||
| 2097 | D3D10_SB_PRIMITIVE_TRIANGLE = 3, | ||
| 2098 | // Adjacency values should be equal to (0x4 & non-adjacency): | ||
| 2099 | D3D10_SB_PRIMITIVE_LINE_ADJ = 6, | ||
| 2100 | D3D10_SB_PRIMITIVE_TRIANGLE_ADJ = 7, | ||
| 2101 | D3D11_SB_PRIMITIVE_1_CONTROL_POINT_PATCH = 8, | ||
| 2102 | D3D11_SB_PRIMITIVE_2_CONTROL_POINT_PATCH = 9, | ||
| 2103 | D3D11_SB_PRIMITIVE_3_CONTROL_POINT_PATCH = 10, | ||
| 2104 | D3D11_SB_PRIMITIVE_4_CONTROL_POINT_PATCH = 11, | ||
| 2105 | D3D11_SB_PRIMITIVE_5_CONTROL_POINT_PATCH = 12, | ||
| 2106 | D3D11_SB_PRIMITIVE_6_CONTROL_POINT_PATCH = 13, | ||
| 2107 | D3D11_SB_PRIMITIVE_7_CONTROL_POINT_PATCH = 14, | ||
| 2108 | D3D11_SB_PRIMITIVE_8_CONTROL_POINT_PATCH = 15, | ||
| 2109 | D3D11_SB_PRIMITIVE_9_CONTROL_POINT_PATCH = 16, | ||
| 2110 | D3D11_SB_PRIMITIVE_10_CONTROL_POINT_PATCH = 17, | ||
| 2111 | D3D11_SB_PRIMITIVE_11_CONTROL_POINT_PATCH = 18, | ||
| 2112 | D3D11_SB_PRIMITIVE_12_CONTROL_POINT_PATCH = 19, | ||
| 2113 | D3D11_SB_PRIMITIVE_13_CONTROL_POINT_PATCH = 20, | ||
| 2114 | D3D11_SB_PRIMITIVE_14_CONTROL_POINT_PATCH = 21, | ||
| 2115 | D3D11_SB_PRIMITIVE_15_CONTROL_POINT_PATCH = 22, | ||
| 2116 | D3D11_SB_PRIMITIVE_16_CONTROL_POINT_PATCH = 23, | ||
| 2117 | D3D11_SB_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, | ||
| 2118 | D3D11_SB_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, | ||
| 2119 | D3D11_SB_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, | ||
| 2120 | D3D11_SB_PRIMITIVE_20_CONTROL_POINT_PATCH = 27, | ||
| 2121 | D3D11_SB_PRIMITIVE_21_CONTROL_POINT_PATCH = 28, | ||
| 2122 | D3D11_SB_PRIMITIVE_22_CONTROL_POINT_PATCH = 29, | ||
| 2123 | D3D11_SB_PRIMITIVE_23_CONTROL_POINT_PATCH = 30, | ||
| 2124 | D3D11_SB_PRIMITIVE_24_CONTROL_POINT_PATCH = 31, | ||
| 2125 | D3D11_SB_PRIMITIVE_25_CONTROL_POINT_PATCH = 32, | ||
| 2126 | D3D11_SB_PRIMITIVE_26_CONTROL_POINT_PATCH = 33, | ||
| 2127 | D3D11_SB_PRIMITIVE_27_CONTROL_POINT_PATCH = 34, | ||
| 2128 | D3D11_SB_PRIMITIVE_28_CONTROL_POINT_PATCH = 35, | ||
| 2129 | D3D11_SB_PRIMITIVE_29_CONTROL_POINT_PATCH = 36, | ||
| 2130 | D3D11_SB_PRIMITIVE_30_CONTROL_POINT_PATCH = 37, | ||
| 2131 | D3D11_SB_PRIMITIVE_31_CONTROL_POINT_PATCH = 38, | ||
| 2132 | D3D11_SB_PRIMITIVE_32_CONTROL_POINT_PATCH = 39, | ||
| 2133 | } D3D10_SB_PRIMITIVE; | ||
| 2134 | |||
| 2135 | typedef enum D3D10_SB_COMPONENT_MASK | ||
| 2136 | { | ||
| 2137 | D3D10_SB_COMPONENT_MASK_X = 1, | ||
| 2138 | D3D10_SB_COMPONENT_MASK_Y = 2, | ||
| 2139 | D3D10_SB_COMPONENT_MASK_Z = 4, | ||
| 2140 | D3D10_SB_COMPONENT_MASK_W = 8, | ||
| 2141 | D3D10_SB_COMPONENT_MASK_R = 1, | ||
| 2142 | D3D10_SB_COMPONENT_MASK_G = 2, | ||
| 2143 | D3D10_SB_COMPONENT_MASK_B = 4, | ||
| 2144 | D3D10_SB_COMPONENT_MASK_A = 8, | ||
| 2145 | D3D10_SB_COMPONENT_MASK_ALL = 15, | ||
| 2146 | } D3D10_SB_COMPONENT_MASK; | ||
| 2147 | |||
| 2148 | typedef enum D3D10_SB_NAME | ||
| 2149 | { | ||
| 2150 | D3D10_SB_NAME_UNDEFINED = 0, | ||
| 2151 | D3D10_SB_NAME_POSITION = 1, | ||
| 2152 | D3D10_SB_NAME_CLIP_DISTANCE = 2, | ||
| 2153 | D3D10_SB_NAME_CULL_DISTANCE = 3, | ||
| 2154 | D3D10_SB_NAME_RENDER_TARGET_ARRAY_INDEX = 4, | ||
| 2155 | D3D10_SB_NAME_VIEWPORT_ARRAY_INDEX = 5, | ||
| 2156 | D3D10_SB_NAME_VERTEX_ID = 6, | ||
| 2157 | D3D10_SB_NAME_PRIMITIVE_ID = 7, | ||
| 2158 | D3D10_SB_NAME_INSTANCE_ID = 8, | ||
| 2159 | D3D10_SB_NAME_IS_FRONT_FACE = 9, | ||
| 2160 | D3D10_SB_NAME_SAMPLE_INDEX = 10, | ||
| 2161 | // The following are added for D3D11 | ||
| 2162 | D3D11_SB_NAME_FINAL_QUAD_U_EQ_0_EDGE_TESSFACTOR = 11, | ||
| 2163 | D3D11_SB_NAME_FINAL_QUAD_V_EQ_0_EDGE_TESSFACTOR = 12, | ||
| 2164 | D3D11_SB_NAME_FINAL_QUAD_U_EQ_1_EDGE_TESSFACTOR = 13, | ||
| 2165 | D3D11_SB_NAME_FINAL_QUAD_V_EQ_1_EDGE_TESSFACTOR = 14, | ||
| 2166 | D3D11_SB_NAME_FINAL_QUAD_U_INSIDE_TESSFACTOR = 15, | ||
| 2167 | D3D11_SB_NAME_FINAL_QUAD_V_INSIDE_TESSFACTOR = 16, | ||
| 2168 | D3D11_SB_NAME_FINAL_TRI_U_EQ_0_EDGE_TESSFACTOR = 17, | ||
| 2169 | D3D11_SB_NAME_FINAL_TRI_V_EQ_0_EDGE_TESSFACTOR = 18, | ||
| 2170 | D3D11_SB_NAME_FINAL_TRI_W_EQ_0_EDGE_TESSFACTOR = 19, | ||
| 2171 | D3D11_SB_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 20, | ||
| 2172 | D3D11_SB_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 21, | ||
| 2173 | D3D11_SB_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 22, | ||
| 2174 | // The following are added for D3D12 | ||
| 2175 | D3D12_SB_NAME_BARYCENTRICS = 23, | ||
| 2176 | D3D12_SB_NAME_SHADINGRATE = 24, | ||
| 2177 | D3D12_SB_NAME_CULLPRIMITIVE = 25, | ||
| 2178 | } D3D10_SB_NAME; | ||
| 2179 | |||
| 2180 | typedef enum D3D10_SB_RESOURCE_DIMENSION | ||
| 2181 | { | ||
| 2182 | D3D10_SB_RESOURCE_DIMENSION_UNKNOWN = 0, | ||
| 2183 | D3D10_SB_RESOURCE_DIMENSION_BUFFER = 1, | ||
| 2184 | D3D10_SB_RESOURCE_DIMENSION_TEXTURE1D = 2, | ||
| 2185 | D3D10_SB_RESOURCE_DIMENSION_TEXTURE2D = 3, | ||
| 2186 | D3D10_SB_RESOURCE_DIMENSION_TEXTURE2DMS = 4, | ||
| 2187 | D3D10_SB_RESOURCE_DIMENSION_TEXTURE3D = 5, | ||
| 2188 | D3D10_SB_RESOURCE_DIMENSION_TEXTURECUBE = 6, | ||
| 2189 | D3D10_SB_RESOURCE_DIMENSION_TEXTURE1DARRAY = 7, | ||
| 2190 | D3D10_SB_RESOURCE_DIMENSION_TEXTURE2DARRAY = 8, | ||
| 2191 | D3D10_SB_RESOURCE_DIMENSION_TEXTURE2DMSARRAY = 9, | ||
| 2192 | D3D10_SB_RESOURCE_DIMENSION_TEXTURECUBEARRAY = 10, | ||
| 2193 | D3D11_SB_RESOURCE_DIMENSION_RAW_BUFFER = 11, | ||
| 2194 | D3D11_SB_RESOURCE_DIMENSION_STRUCTURED_BUFFER = 12, | ||
| 2195 | } D3D10_SB_RESOURCE_DIMENSION; | ||
| 2196 | |||
| 2197 | typedef enum D3D10_SB_RESOURCE_RETURN_TYPE | ||
| 2198 | { | ||
| 2199 | D3D10_SB_RETURN_TYPE_UNORM = 1, | ||
| 2200 | D3D10_SB_RETURN_TYPE_SNORM = 2, | ||
| 2201 | D3D10_SB_RETURN_TYPE_SINT = 3, | ||
| 2202 | D3D10_SB_RETURN_TYPE_UINT = 4, | ||
| 2203 | D3D10_SB_RETURN_TYPE_FLOAT = 5, | ||
| 2204 | D3D10_SB_RETURN_TYPE_MIXED = 6, | ||
| 2205 | D3D11_SB_RETURN_TYPE_DOUBLE = 7, | ||
| 2206 | D3D11_SB_RETURN_TYPE_CONTINUED = 8, | ||
| 2207 | D3D11_SB_RETURN_TYPE_UNUSED = 9, | ||
| 2208 | } D3D10_SB_RESOURCE_RETURN_TYPE; | ||
| 2209 | |||
| 2210 | typedef enum D3D10_SB_REGISTER_COMPONENT_TYPE | ||
| 2211 | { | ||
| 2212 | D3D10_SB_REGISTER_COMPONENT_UNKNOWN = 0, | ||
| 2213 | D3D10_SB_REGISTER_COMPONENT_UINT32 = 1, | ||
| 2214 | D3D10_SB_REGISTER_COMPONENT_SINT32 = 2, | ||
| 2215 | D3D10_SB_REGISTER_COMPONENT_FLOAT32 = 3, | ||
| 2216 | // Below types aren't used in DXBC, only signatures from DXIL shaders | ||
| 2217 | D3D10_SB_REGISTER_COMPONENT_UINT16 = 4, | ||
| 2218 | D3D10_SB_REGISTER_COMPONENT_SINT16 = 5, | ||
| 2219 | D3D10_SB_REGISTER_COMPONENT_FLOAT16 = 6, | ||
| 2220 | D3D10_SB_REGISTER_COMPONENT_UINT64 = 7, | ||
| 2221 | D3D10_SB_REGISTER_COMPONENT_SINT64 = 8, | ||
| 2222 | D3D10_SB_REGISTER_COMPONENT_FLOAT64 = 9, | ||
| 2223 | } D3D10_SB_REGISTER_COMPONENT_TYPE; | ||
| 2224 | |||
| 2225 | typedef enum D3D10_SB_INSTRUCTION_RETURN_TYPE | ||
| 2226 | { | ||
| 2227 | D3D10_SB_INSTRUCTION_RETURN_FLOAT = 0, | ||
| 2228 | D3D10_SB_INSTRUCTION_RETURN_UINT = 1 | ||
| 2229 | } D3D10_SB_INSTRUCTION_RETURN_TYPE; | ||
| 2230 | |||
| 2231 | #define D3D10_SB_INSTRUCTION_RETURN_TYPE_MASK 0x00001800 | ||
| 2232 | #define D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT 11 | ||
| 2233 | |||
| 2234 | // DECODER MACRO: For an OpcodeToken0 with the return type | ||
| 2235 | // determine the return type. | ||
| 2236 | #define DECODE_D3D10_SB_INSTRUCTION_RETURN_TYPE(OpcodeToken0) ((D3D10_SB_INSTRUCTION_RETURN_TYPE)(((OpcodeToken0)&D3D10_SB_INSTRUCTION_RETURN_TYPE_MASK)>>D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT)) | ||
| 2237 | // ENCODER MACRO: Encode the return type for instructions | ||
| 2238 | // in the opcode specific control range of OpcodeToken0 | ||
| 2239 | #define ENCODE_D3D10_SB_INSTRUCTION_RETURN_TYPE(ReturnType) (((ReturnType)<<D3D10_SB_INSTRUCTION_RETURN_TYPE_SHIFT)&D3D10_SB_INSTRUCTION_RETURN_TYPE_MASK) | ||
| 2240 | |||
| 2241 | // ---------------------------------------------------------------------------- | ||
| 2242 | // Interface function body Declaration | ||
| 2243 | // | ||
| 2244 | // OpcodeToken0: | ||
| 2245 | // | ||
| 2246 | // [10:00] D3D10_SB_OPCODE_DCL_FUNCTION_BODY | ||
| 2247 | // [23:11] Ignored, 0 | ||
| 2248 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2249 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2250 | // contains extended operand description. If it is extended, then | ||
| 2251 | // it contains the actual instruction length in DWORDs, since | ||
| 2252 | // it may not fit into 7 bits if enough operands are defined. | ||
| 2253 | // | ||
| 2254 | // OpcodeToken0 is followed by a DWORD that represents the function body | ||
| 2255 | // identifier. | ||
| 2256 | // | ||
| 2257 | // ---------------------------------------------------------------------------- | ||
| 2258 | |||
| 2259 | // ---------------------------------------------------------------------------- | ||
| 2260 | // Interface function table Declaration | ||
| 2261 | // | ||
| 2262 | // OpcodeToken0: | ||
| 2263 | // | ||
| 2264 | // [10:00] D3D10_SB_OPCODE_DCL_FUNCTION_TABLE | ||
| 2265 | // [23:11] Ignored, 0 | ||
| 2266 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2267 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2268 | // contains extended operand description. If it is extended, then | ||
| 2269 | // it contains the actual instruction length in DWORDs, since | ||
| 2270 | // it may not fit into 7 bits if enough functions are defined. | ||
| 2271 | // | ||
| 2272 | // OpcodeToken0 is followed by a DWORD that represents the function table | ||
| 2273 | // identifier and another DWORD (TableLength) that gives the number of | ||
| 2274 | // functions in the table. | ||
| 2275 | // | ||
| 2276 | // This is followed by TableLength DWORDs which are function body indices. | ||
| 2277 | // | ||
| 2278 | // ---------------------------------------------------------------------------- | ||
| 2279 | |||
| 2280 | // ---------------------------------------------------------------------------- | ||
| 2281 | // Interface Declaration | ||
| 2282 | // | ||
| 2283 | // OpcodeToken0: | ||
| 2284 | // | ||
| 2285 | // [10:00] D3D10_SB_OPCODE_DCL_INTERFACE | ||
| 2286 | // [11] 1 if the interface is indexed dynamically, 0 otherwise. | ||
| 2287 | // [23:12] Ignored, 0 | ||
| 2288 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2289 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2290 | // contains extended operand description. If it is extended, then | ||
| 2291 | // it contains the actual instruction length in DWORDs, since | ||
| 2292 | // it may not fit into 7 bits if enough types are used. | ||
| 2293 | // | ||
| 2294 | // OpcodeToken0 is followed by a DWORD that represents the interface | ||
| 2295 | // identifier. Next is a DWORD that gives the expected function table | ||
| 2296 | // length. Then another DWORD (OpcodeToken3) with the following layout: | ||
| 2297 | // | ||
| 2298 | // [15:00] TableLength, the number of types that implement this interface | ||
| 2299 | // [31:16] ArrayLength, the number of interfaces that are defined in this array. | ||
| 2300 | // | ||
| 2301 | // This is followed by TableLength DWORDs which are function table | ||
| 2302 | // identifiers, representing possible tables for a given interface. | ||
| 2303 | // | ||
| 2304 | // ---------------------------------------------------------------------------- | ||
| 2305 | |||
| 2306 | #define D3D11_SB_INTERFACE_INDEXED_BIT_MASK 0x00000800 | ||
| 2307 | #define D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT 11 | ||
| 2308 | |||
| 2309 | #define D3D11_SB_INTERFACE_TABLE_LENGTH_MASK 0x0000ffff | ||
| 2310 | #define D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT 0 | ||
| 2311 | |||
| 2312 | #define D3D11_SB_INTERFACE_ARRAY_LENGTH_MASK 0xffff0000 | ||
| 2313 | #define D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT 16 | ||
| 2314 | |||
| 2315 | // get/set the indexed bit for an interface definition | ||
| 2316 | #define DECODE_D3D11_SB_INTERFACE_INDEXED_BIT(OpcodeToken0) ((((OpcodeToken0)&D3D11_SB_INTERFACE_INDEXED_BIT_MASK)>>D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT) ? true : false) | ||
| 2317 | #define ENCODE_D3D11_SB_INTERFACE_INDEXED_BIT(IndexedBit) (((IndexedBit)<<D3D11_SB_INTERFACE_INDEXED_BIT_SHIFT)&D3D11_SB_INTERFACE_INDEXED_BIT_MASK) | ||
| 2318 | |||
| 2319 | // get/set the table length for an interface definition | ||
| 2320 | #define DECODE_D3D11_SB_INTERFACE_TABLE_LENGTH(OpcodeToken0) ((UINT)(((OpcodeToken0)&D3D11_SB_INTERFACE_TABLE_LENGTH_MASK)>>D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT)) | ||
| 2321 | #define ENCODE_D3D11_SB_INTERFACE_TABLE_LENGTH(TableLength) (((TableLength)<<D3D11_SB_INTERFACE_TABLE_LENGTH_SHIFT)&D3D11_SB_INTERFACE_TABLE_LENGTH_MASK) | ||
| 2322 | |||
| 2323 | // get/set the array length for an interface definition | ||
| 2324 | #define DECODE_D3D11_SB_INTERFACE_ARRAY_LENGTH(OpcodeToken0) ((UINT)(((OpcodeToken0)&D3D11_SB_INTERFACE_ARRAY_LENGTH_MASK)>>D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT)) | ||
| 2325 | #define ENCODE_D3D11_SB_INTERFACE_ARRAY_LENGTH(ArrayLength) (((ArrayLength)<<D3D11_SB_INTERFACE_ARRAY_LENGTH_SHIFT)&D3D11_SB_INTERFACE_ARRAY_LENGTH_MASK) | ||
| 2326 | |||
| 2327 | // ---------------------------------------------------------------------------- | ||
| 2328 | // Interface call | ||
| 2329 | // | ||
| 2330 | // OpcodeToken0: | ||
| 2331 | // | ||
| 2332 | // [10:00] D3D10_SB_OPCODE_INTERFACE_CALL | ||
| 2333 | // [23:11] Ignored, 0 | ||
| 2334 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2335 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2336 | // contains extended operand description. If it is extended, then | ||
| 2337 | // it contains the actual instruction length in DWORDs, since | ||
| 2338 | // it may not fit into 7 bits if enough types are used. | ||
| 2339 | // | ||
| 2340 | // OpcodeToken0 is followed by a DWORD that gives the function index to | ||
| 2341 | // call in the function table specified for the given interface. | ||
| 2342 | // Next is the interface operand. | ||
| 2343 | // | ||
| 2344 | // ---------------------------------------------------------------------------- | ||
| 2345 | |||
| 2346 | // ---------------------------------------------------------------------------- | ||
| 2347 | // Thread Group Declaration (Compute Shader) | ||
| 2348 | // | ||
| 2349 | // OpcodeToken0: | ||
| 2350 | // | ||
| 2351 | // [10:00] D3D11_SB_OPCODE_DCL_THREAD_GROUP | ||
| 2352 | // [23:11] Ignored, 0 | ||
| 2353 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2354 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2355 | // contains extended operand description. If it is extended, then | ||
| 2356 | // it contains the actual instruction length in DWORDs, since | ||
| 2357 | // it may not fit into 7 bits if enough types are used. | ||
| 2358 | // | ||
| 2359 | // OpcodeToken0 is followed by 3 DWORDs, the Thread Group dimensions as UINT32: | ||
| 2360 | // x, y, z | ||
| 2361 | // | ||
| 2362 | // ---------------------------------------------------------------------------- | ||
| 2363 | |||
| 2364 | // ---------------------------------------------------------------------------- | ||
| 2365 | // Typed Unordered Access View Declaration | ||
| 2366 | // | ||
| 2367 | // OpcodeToken0: | ||
| 2368 | // | ||
| 2369 | // [10:00] D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_TYPED | ||
| 2370 | // [15:11] D3D10_SB_RESOURCE_DIMENSION | ||
| 2371 | // [16:16] D3D11_SB_GLOBALLY_COHERENT_ACCESS or 0 (LOCALLY_COHERENT) | ||
| 2372 | // [17:17] D3D11_SB_RASTERIZER_ORDERED_ACCESS or 0 | ||
| 2373 | // [23:18] Ignored, 0 | ||
| 2374 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2375 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2376 | // contains extended operand description. This dcl is currently not | ||
| 2377 | // extended. | ||
| 2378 | // | ||
| 2379 | // OpcodeToken0 is followed by 2 operands on Shader Models 4.0 through 5.0: | ||
| 2380 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2381 | // u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is being declared. | ||
| 2382 | // (2) a Resource Return Type token (ResourceReturnTypeToken) | ||
| 2383 | // | ||
| 2384 | // OpcodeToken0 is followed by 3 operands on Shader Model 5.1 and later: | ||
| 2385 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2386 | // u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is being declared. | ||
| 2387 | // The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, | ||
| 2388 | // and the meaning of the index dimensions are as follows: (u<id>[<lbound>:<ubound>]) | ||
| 2389 | // 1 <id>: variable ID being declared | ||
| 2390 | // 2 <lbound>: the lower bound of the range of UAV's in the space | ||
| 2391 | // 3 <ubound>: the upper bound (inclusive) of this range | ||
| 2392 | // As opposed to when the u# is used in shader instructions, where the register | ||
| 2393 | // must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index | ||
| 2394 | // dimensions are as follows: (u<id>[<idx>]): | ||
| 2395 | // 1 <id>: variable ID being used (matches dcl) | ||
| 2396 | // 2 <idx>: absolute index of uav within space (may be dynamically indexed) | ||
| 2397 | // (2) a Resource Return Type token (ResourceReturnTypeToken) | ||
| 2398 | // (3) a DWORD indicating the space index. | ||
| 2399 | // | ||
| 2400 | // ---------------------------------------------------------------------------- | ||
| 2401 | // UAV access scope flags | ||
| 2402 | #define D3D11_SB_GLOBALLY_COHERENT_ACCESS 0x00010000 | ||
| 2403 | #define D3D11_SB_ACCESS_COHERENCY_MASK 0x00010000 | ||
| 2404 | |||
| 2405 | // DECODER MACRO: Retrieve flags for sync instruction from OpcodeToken0. | ||
| 2406 | #define DECODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(OperandToken0) ((OperandToken0)&D3D11_SB_ACCESS_COHERENCY_MASK) | ||
| 2407 | |||
| 2408 | // ENCODER MACRO: Given a set of sync instruciton flags, encode them in OpcodeToken0. | ||
| 2409 | #define ENCODE_D3D11_SB_ACCESS_COHERENCY_FLAGS(Flags) ((Flags)&D3D11_SB_ACCESS_COHERENCY_MASK) | ||
| 2410 | |||
| 2411 | // Additional UAV access flags | ||
| 2412 | #define D3D11_SB_RASTERIZER_ORDERED_ACCESS 0x00020000 | ||
| 2413 | |||
| 2414 | // Resource flags mask. Use to retrieve all resource flags, including the order preserving counter. | ||
| 2415 | #define D3D11_SB_RESOURCE_FLAGS_MASK (D3D11_SB_GLOBALLY_COHERENT_ACCESS|D3D11_SB_RASTERIZER_ORDERED_ACCESS|D3D11_SB_UAV_HAS_ORDER_PRESERVING_COUNTER) | ||
| 2416 | |||
| 2417 | // DECODER MACRO: Retrieve UAV access flags for from OpcodeToken0. | ||
| 2418 | #define DECODE_D3D11_SB_RESOURCE_FLAGS(OperandToken0) ((OperandToken0)&D3D11_SB_RESOURCE_FLAGS_MASK) | ||
| 2419 | |||
| 2420 | // ENCODER MACRO: Given UAV access flags, encode them in OpcodeToken0. | ||
| 2421 | #define ENCODE_D3D11_SB_RESOURCE_FLAGS(Flags) ((Flags)&D3D11_SB_RESOURCE_FLAGS_MASK) | ||
| 2422 | |||
| 2423 | // ---------------------------------------------------------------------------- | ||
| 2424 | // Raw Unordered Access View Declaration | ||
| 2425 | // | ||
| 2426 | // OpcodeToken0: | ||
| 2427 | // | ||
| 2428 | // [10:00] D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_RAW | ||
| 2429 | // [15:11] Ignored, 0 | ||
| 2430 | // [16:16] D3D11_SB_GLOBALLY_COHERENT_ACCESS or 0 (LOCALLY_COHERENT) | ||
| 2431 | // [17:17] D3D11_SB_RASTERIZER_ORDERED_ACCESS or 0 | ||
| 2432 | // [23:18] Ignored, 0 | ||
| 2433 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2434 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2435 | // contains extended operand description. This dcl is currently not | ||
| 2436 | // extended. | ||
| 2437 | // | ||
| 2438 | // OpcodeToken0 is followed by 1 operand on Shader Models 4.0 through 5.0: | ||
| 2439 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2440 | // u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is being declared. | ||
| 2441 | // | ||
| 2442 | // OpcodeToken0 is followed by 2 operands on Shader Model 5.1 and later: | ||
| 2443 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2444 | // u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is being declared. | ||
| 2445 | // The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, | ||
| 2446 | // and the meaning of the index dimensions are as follows: (u<id>[<lbound>:<ubound>]) | ||
| 2447 | // 1 <id>: variable ID being declared | ||
| 2448 | // 2 <lbound>: the lower bound of the range of UAV's in the space | ||
| 2449 | // 3 <ubound>: the upper bound (inclusive) of this range | ||
| 2450 | // As opposed to when the u# is used in shader instructions, where the register | ||
| 2451 | // must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index | ||
| 2452 | // dimensions are as follows: (u<id>[<idx>]): | ||
| 2453 | // 1 <id>: variable ID being used (matches dcl) | ||
| 2454 | // 2 <idx>: absolute index of uav within space (may be dynamically indexed) | ||
| 2455 | // (2) a DWORD indicating the space index. | ||
| 2456 | // | ||
| 2457 | // ---------------------------------------------------------------------------- | ||
| 2458 | |||
| 2459 | // ---------------------------------------------------------------------------- | ||
| 2460 | // Structured Unordered Access View Declaration | ||
| 2461 | // | ||
| 2462 | // OpcodeToken0: | ||
| 2463 | // | ||
| 2464 | // [10:00] D3D11_SB_OPCODE_DCL_UNORDERED_ACCESS_VIEW_STRUCTURED | ||
| 2465 | // [15:11] Ignored, 0 | ||
| 2466 | // [16:16] D3D11_SB_GLOBALLY_COHERENT_ACCESS or 0 (LOCALLY_COHERENT) | ||
| 2467 | // [17:17] D3D11_SB_RASTERIZER_ORDERED_ACCESS or 0 | ||
| 2468 | // [22:18] Ignored, 0 | ||
| 2469 | // [23:23] D3D11_SB_UAV_HAS_ORDER_PRESERVING_COUNTER or 0 | ||
| 2470 | // | ||
| 2471 | // The presence of this flag means that if a UAV is bound to the | ||
| 2472 | // corresponding slot, it must have been created with | ||
| 2473 | // D3D11_BUFFER_UAV_FLAG_COUNTER at the API. Also, the shader | ||
| 2474 | // can contain either imm_atomic_alloc or _consume instructions | ||
| 2475 | // operating on the given UAV. | ||
| 2476 | // | ||
| 2477 | // If this flag is not present, the shader can still contain | ||
| 2478 | // either imm_atomic_alloc or imm_atomic_consume instructions for | ||
| 2479 | // this UAV. But if such instructions are present in this case, | ||
| 2480 | // and a UAV is bound corresponding slot, it must have been created | ||
| 2481 | // with the D3D11_BUFFER_UAV_FLAG_APPEND flag at the API. | ||
| 2482 | // Append buffers have a counter as well, but values returned | ||
| 2483 | // to the shader are only valid for the lifetime of the shader | ||
| 2484 | // invocation. | ||
| 2485 | // | ||
| 2486 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2487 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2488 | // contains extended operand description. This dcl is currently not | ||
| 2489 | // extended. | ||
| 2490 | // | ||
| 2491 | // OpcodeToken0 is followed by 2 operands: | ||
| 2492 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2493 | // u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is | ||
| 2494 | // being declared. | ||
| 2495 | // (2) a DWORD indicating UINT32 byte stride | ||
| 2496 | // | ||
| 2497 | // OpcodeToken0 is followed by 3 operands on Shader Model 5.1 and later: | ||
| 2498 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2499 | // u# register (D3D11_SB_OPERAND_TYPE_UNORDERED_ACCESS_VIEW) is being declared. | ||
| 2500 | // The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, | ||
| 2501 | // and the meaning of the index dimensions are as follows: (u<id>[<lbound>:<ubound>]) | ||
| 2502 | // 1 <id>: variable ID being declared | ||
| 2503 | // 2 <lbound>: the lower bound of the range of UAV's in the space | ||
| 2504 | // 3 <ubound>: the upper bound (inclusive) of this range | ||
| 2505 | // As opposed to when the u# is used in shader instructions, where the register | ||
| 2506 | // must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index | ||
| 2507 | // dimensions are as follows: (u<id>[<idx>]): | ||
| 2508 | // 1 <id>: variable ID being used (matches dcl) | ||
| 2509 | // 2 <idx>: absolute index of uav within space (may be dynamically indexed) | ||
| 2510 | // (2) a DWORD indicating UINT32 byte stride | ||
| 2511 | // (3) a DWORD indicating the space index. | ||
| 2512 | // | ||
| 2513 | // ---------------------------------------------------------------------------- | ||
| 2514 | // UAV flags | ||
| 2515 | #define D3D11_SB_UAV_HAS_ORDER_PRESERVING_COUNTER 0x00800000 | ||
| 2516 | #define D3D11_SB_UAV_FLAGS_MASK 0x00800000 | ||
| 2517 | |||
| 2518 | // DECODER MACRO: Retrieve flags about UAV from OpcodeToken0. | ||
| 2519 | #define DECODE_D3D11_SB_UAV_FLAGS(OperandToken0) ((OperandToken0)&D3D11_SB_UAV_FLAGS_MASK) | ||
| 2520 | |||
| 2521 | // ENCODER MACRO: Given a set of UAV flags, encode them in OpcodeToken0. | ||
| 2522 | #define ENCODE_D3D11_SB_UAV_FLAGS(Flags) ((Flags)&D3D11_SB_UAV_FLAGS_MASK) | ||
| 2523 | |||
| 2524 | // ---------------------------------------------------------------------------- | ||
| 2525 | // Raw Thread Group Shared Memory Declaration | ||
| 2526 | // | ||
| 2527 | // OpcodeToken0: | ||
| 2528 | // | ||
| 2529 | // [10:00] D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_RAW | ||
| 2530 | // [23:11] Ignored, 0 | ||
| 2531 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2532 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2533 | // contains extended operand description. This dcl is currently not | ||
| 2534 | // extended. | ||
| 2535 | // | ||
| 2536 | // OpcodeToken0 is followed by 2 operands: | ||
| 2537 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2538 | // g# register (D3D11_SB_OPERAND_TYPE_THREAD_GROUP_SHARED_MEMORY) is being declared. | ||
| 2539 | // (2) a DWORD indicating the byte count, which must be a multiple of 4. | ||
| 2540 | // | ||
| 2541 | // ---------------------------------------------------------------------------- | ||
| 2542 | |||
| 2543 | // ---------------------------------------------------------------------------- | ||
| 2544 | // Structured Thread Group Shared Memory Declaration | ||
| 2545 | // | ||
| 2546 | // OpcodeToken0: | ||
| 2547 | // | ||
| 2548 | // [10:00] D3D11_SB_OPCODE_DCL_THREAD_GROUP_SHARED_MEMORY_STRUCTURED | ||
| 2549 | // [23:11] Ignored, 0 | ||
| 2550 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2551 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2552 | // contains extended operand description. This dcl is currently not | ||
| 2553 | // extended. | ||
| 2554 | // | ||
| 2555 | // OpcodeToken0 is followed by 3 operands: | ||
| 2556 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2557 | // g# register (D3D11_SB_OPERAND_TYPE_THREAD_GROUP_SHARED_MEMORY) is | ||
| 2558 | // being declared. | ||
| 2559 | // (2) a DWORD indicating UINT32 struct byte stride | ||
| 2560 | // (3) a DWORD indicating UINT32 struct count | ||
| 2561 | // | ||
| 2562 | // ---------------------------------------------------------------------------- | ||
| 2563 | |||
| 2564 | // ---------------------------------------------------------------------------- | ||
| 2565 | // Raw Shader Resource View Declaration | ||
| 2566 | // | ||
| 2567 | // OpcodeToken0: | ||
| 2568 | // | ||
| 2569 | // [10:00] D3D11_SB_OPCODE_DCL_RESOURCE_RAW | ||
| 2570 | // [23:11] Ignored, 0 | ||
| 2571 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2572 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2573 | // contains extended operand description. This dcl is currently not | ||
| 2574 | // extended. | ||
| 2575 | // | ||
| 2576 | // OpcodeToken0 is followed by 1 operand: | ||
| 2577 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2578 | // t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. | ||
| 2579 | // | ||
| 2580 | // OpcodeToken0 is followed by 2 operands on Shader Model 5.1 and later: | ||
| 2581 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2582 | // t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. | ||
| 2583 | // The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, | ||
| 2584 | // and the meaning of the index dimensions are as follows: (t<id>[<lbound>:<ubound>]) | ||
| 2585 | // 1 <id>: variable ID being declared | ||
| 2586 | // 2 <lbound>: the lower bound of the range of resources in the space | ||
| 2587 | // 3 <ubound>: the upper bound (inclusive) of this range | ||
| 2588 | // As opposed to when the t# is used in shader instructions, where the register | ||
| 2589 | // must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index | ||
| 2590 | // dimensions are as follows: (t<id>[<idx>]): | ||
| 2591 | // 1 <id>: variable ID being used (matches dcl) | ||
| 2592 | // 2 <idx>: absolute index of resource within space (may be dynamically indexed) | ||
| 2593 | // (2) a DWORD indicating the space index. | ||
| 2594 | // | ||
| 2595 | // ---------------------------------------------------------------------------- | ||
| 2596 | |||
| 2597 | // ---------------------------------------------------------------------------- | ||
| 2598 | // Structured Shader Resource View Declaration | ||
| 2599 | // | ||
| 2600 | // OpcodeToken0: | ||
| 2601 | // | ||
| 2602 | // [10:00] D3D11_SB_OPCODE_DCL_RESOURCE_STRUCTURED | ||
| 2603 | // [23:11] Ignored, 0 | ||
| 2604 | // [30:24] Instruction length in DWORDs including the opcode token. | ||
| 2605 | // [31] 0 normally. 1 if extended operand definition, meaning next DWORD | ||
| 2606 | // contains extended operand description. This dcl is currently not | ||
| 2607 | // extended. | ||
| 2608 | // | ||
| 2609 | // OpcodeToken0 is followed by 2 operands: | ||
| 2610 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2611 | // g# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is | ||
| 2612 | // being declared. | ||
| 2613 | // (2) a DWORD indicating UINT32 struct byte stride | ||
| 2614 | // | ||
| 2615 | // OpcodeToken0 is followed by 3 operands on Shader Model 5.1 and later: | ||
| 2616 | // (1) an operand, starting with OperandToken0, defining which | ||
| 2617 | // t# register (D3D10_SB_OPERAND_TYPE_RESOURCE) is being declared. | ||
| 2618 | // The indexing dimension for the register must be D3D10_SB_OPERAND_INDEX_DIMENSION_3D, | ||
| 2619 | // and the meaning of the index dimensions are as follows: (t<id>[<lbound>:<ubound>]) | ||
| 2620 | // 1 <id>: variable ID being declared | ||
| 2621 | // 2 <lbound>: the lower bound of the range of resources in the space | ||
| 2622 | // 3 <ubound>: the upper bound (inclusive) of this range | ||
| 2623 | // As opposed to when the t# is used in shader instructions, where the register | ||
| 2624 | // must be D3D10_SB_OPERAND_INDEX_DIMENSION_2D, and the meaning of the index | ||
| 2625 | // dimensions are as follows: (t<id>[<idx>]): | ||
| 2626 | // 1 <id>: variable ID being used (matches dcl) | ||
| 2627 | // 2 <idx>: absolute index of resource within space (may be dynamically indexed) | ||
| 2628 | // (2) a DWORD indicating UINT32 struct byte stride | ||
| 2629 | // (3) a DWORD indicating the space index. | ||
| 2630 | // | ||
| 2631 | // ---------------------------------------------------------------------------- | ||
| 2632 | |||
| 2633 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ | ||
| 2634 | #pragma endregion | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/DirectML.h b/contrib/DirectX-Headers-1.618.2/include/directx/DirectML.h new file mode 100644 index 0000000..3bd1921 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/DirectML.h | |||
| @@ -0,0 +1,2651 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. All rights reserved. | ||
| 2 | |||
| 3 | #ifndef DIRECTML_H | ||
| 4 | #define DIRECTML_H | ||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #ifdef _GAMING_XBOX_SCARLETT | ||
| 8 | #include "d3d12_xs.h" | ||
| 9 | #elif _GAMING_XBOX_XBOXONE | ||
| 10 | #include "d3d12_x.h" | ||
| 11 | #else | ||
| 12 | #include "d3d12.h" | ||
| 13 | #endif | ||
| 14 | |||
| 15 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) | ||
| 16 | |||
| 17 | #ifndef DML_DECLARE_INTERFACE | ||
| 18 | #define DML_DECLARE_INTERFACE(iid) DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE | ||
| 19 | #endif | ||
| 20 | |||
| 21 | #ifndef DML_TARGET_VERSION | ||
| 22 | |||
| 23 | #if !defined(NTDDI_VERSION) || defined(DML_TARGET_VERSION_USE_LATEST) // Use the latest if using redist or no Windows target set. | ||
| 24 | #define DML_TARGET_VERSION 0x6400 | ||
| 25 | #elif defined(NTDDI_WIN10_ZN) && NTDDI_VERSION >= NTDDI_WIN10_ZN | ||
| 26 | #define DML_TARGET_VERSION 0x6000 | ||
| 27 | #elif defined(NTDDI_WIN10_NI) && NTDDI_VERSION >= NTDDI_WIN10_NI | ||
| 28 | #define DML_TARGET_VERSION 0x5000 | ||
| 29 | #elif defined(NTDDI_WIN10_CO) && NTDDI_VERSION >= NTDDI_WIN10_CO | ||
| 30 | #define DML_TARGET_VERSION 0x4000 | ||
| 31 | #elif defined(NTDDI_WIN10_FE) && NTDDI_VERSION >= NTDDI_WIN10_FE | ||
| 32 | #define DML_TARGET_VERSION 0x3000 | ||
| 33 | #elif defined(NTDDI_WIN10_VB) && NTDDI_VERSION >= NTDDI_WIN10_VB // Windows 10 2004 Update | ||
| 34 | #define DML_TARGET_VERSION 0x2000 | ||
| 35 | #else // defined(NTDDI_WIN10_19H1) && NTDDI_VERSION >= NTDDI_WIN10_19H1 // Windows 10 1903 Update | ||
| 36 | #define DML_TARGET_VERSION 0x1000 | ||
| 37 | #endif | ||
| 38 | |||
| 39 | #endif // !defined(DML_TARGET_VERSION) | ||
| 40 | |||
| 41 | // =================================================================================================================== | ||
| 42 | // DirectML constants | ||
| 43 | // =================================================================================================================== | ||
| 44 | |||
| 45 | static const UINT DML_TENSOR_DIMENSION_COUNT_MAX = 5; | ||
| 46 | #if DML_TARGET_VERSION >= 0x3000 | ||
| 47 | static const UINT DML_TENSOR_DIMENSION_COUNT_MAX1 = 8; | ||
| 48 | #endif | ||
| 49 | |||
| 50 | static const UINT DML_TEMPORARY_BUFFER_ALIGNMENT = 256; | ||
| 51 | static const UINT DML_PERSISTENT_BUFFER_ALIGNMENT = 256; | ||
| 52 | |||
| 53 | static const UINT DML_MINIMUM_BUFFER_TENSOR_ALIGNMENT = 16; | ||
| 54 | |||
| 55 | |||
| 56 | // =================================================================================================================== | ||
| 57 | // Interface declarations | ||
| 58 | // =================================================================================================================== | ||
| 59 | |||
| 60 | interface IDMLObject; | ||
| 61 | interface IDMLDevice; | ||
| 62 | interface IDMLDeviceChild; | ||
| 63 | interface IDMLPageable; | ||
| 64 | interface IDMLDispatchable; | ||
| 65 | interface IDMLOperator; | ||
| 66 | interface IDMLCompiledOperator; | ||
| 67 | interface IDMLOperatorInitializer; | ||
| 68 | interface IDMLBindingTable; | ||
| 69 | interface IDMLCommandRecorder; | ||
| 70 | |||
| 71 | |||
| 72 | // =================================================================================================================== | ||
| 73 | // Tensor descriptions | ||
| 74 | // =================================================================================================================== | ||
| 75 | |||
| 76 | enum DML_TENSOR_DATA_TYPE | ||
| 77 | { | ||
| 78 | DML_TENSOR_DATA_TYPE_UNKNOWN, | ||
| 79 | DML_TENSOR_DATA_TYPE_FLOAT32, | ||
| 80 | DML_TENSOR_DATA_TYPE_FLOAT16, | ||
| 81 | DML_TENSOR_DATA_TYPE_UINT32, | ||
| 82 | DML_TENSOR_DATA_TYPE_UINT16, | ||
| 83 | DML_TENSOR_DATA_TYPE_UINT8, | ||
| 84 | DML_TENSOR_DATA_TYPE_INT32, | ||
| 85 | DML_TENSOR_DATA_TYPE_INT16, | ||
| 86 | DML_TENSOR_DATA_TYPE_INT8, | ||
| 87 | DML_TENSOR_DATA_TYPE_FLOAT64, | ||
| 88 | DML_TENSOR_DATA_TYPE_UINT64, | ||
| 89 | DML_TENSOR_DATA_TYPE_INT64, | ||
| 90 | #if DML_TARGET_VERSION >= 0x6300 | ||
| 91 | DML_TENSOR_DATA_TYPE_UINT4, | ||
| 92 | DML_TENSOR_DATA_TYPE_INT4, | ||
| 93 | #endif // DML_TARGET_VERSION >= 0x6300 | ||
| 94 | }; | ||
| 95 | |||
| 96 | enum DML_TENSOR_TYPE | ||
| 97 | { | ||
| 98 | DML_TENSOR_TYPE_INVALID, | ||
| 99 | |||
| 100 | DML_TENSOR_TYPE_BUFFER, | ||
| 101 | }; | ||
| 102 | |||
| 103 | enum DML_TENSOR_FLAGS | ||
| 104 | { | ||
| 105 | DML_TENSOR_FLAG_NONE = 0x0, | ||
| 106 | DML_TENSOR_FLAG_OWNED_BY_DML = 0x1, | ||
| 107 | }; | ||
| 108 | |||
| 109 | DEFINE_ENUM_FLAG_OPERATORS(DML_TENSOR_FLAGS) | ||
| 110 | |||
| 111 | struct DML_BUFFER_TENSOR_DESC | ||
| 112 | { | ||
| 113 | DML_TENSOR_DATA_TYPE DataType; | ||
| 114 | DML_TENSOR_FLAGS Flags; | ||
| 115 | UINT DimensionCount; | ||
| 116 | _Field_size_(DimensionCount) const UINT* Sizes; | ||
| 117 | _Field_size_opt_(DimensionCount) const UINT* Strides; | ||
| 118 | UINT64 TotalTensorSizeInBytes; | ||
| 119 | UINT GuaranteedBaseOffsetAlignment; | ||
| 120 | }; | ||
| 121 | |||
| 122 | struct DML_TENSOR_DESC | ||
| 123 | { | ||
| 124 | DML_TENSOR_TYPE Type; | ||
| 125 | _Field_size_(_Inexpressible_("Dependent on tensor type")) const void* Desc; | ||
| 126 | }; | ||
| 127 | |||
| 128 | |||
| 129 | // =================================================================================================================== | ||
| 130 | // Operator types | ||
| 131 | // =================================================================================================================== | ||
| 132 | |||
| 133 | enum DML_OPERATOR_TYPE | ||
| 134 | { | ||
| 135 | DML_OPERATOR_INVALID, | ||
| 136 | |||
| 137 | DML_OPERATOR_ELEMENT_WISE_IDENTITY, | ||
| 138 | DML_OPERATOR_ELEMENT_WISE_ABS, | ||
| 139 | DML_OPERATOR_ELEMENT_WISE_ACOS, | ||
| 140 | DML_OPERATOR_ELEMENT_WISE_ADD, | ||
| 141 | DML_OPERATOR_ELEMENT_WISE_ASIN, | ||
| 142 | DML_OPERATOR_ELEMENT_WISE_ATAN, | ||
| 143 | DML_OPERATOR_ELEMENT_WISE_CEIL, | ||
| 144 | DML_OPERATOR_ELEMENT_WISE_CLIP, | ||
| 145 | DML_OPERATOR_ELEMENT_WISE_COS, | ||
| 146 | DML_OPERATOR_ELEMENT_WISE_DIVIDE, | ||
| 147 | DML_OPERATOR_ELEMENT_WISE_EXP, | ||
| 148 | DML_OPERATOR_ELEMENT_WISE_FLOOR, | ||
| 149 | DML_OPERATOR_ELEMENT_WISE_LOG, | ||
| 150 | DML_OPERATOR_ELEMENT_WISE_LOGICAL_AND, | ||
| 151 | DML_OPERATOR_ELEMENT_WISE_LOGICAL_EQUALS, | ||
| 152 | DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN, | ||
| 153 | DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN, | ||
| 154 | DML_OPERATOR_ELEMENT_WISE_LOGICAL_NOT, | ||
| 155 | DML_OPERATOR_ELEMENT_WISE_LOGICAL_OR, | ||
| 156 | DML_OPERATOR_ELEMENT_WISE_LOGICAL_XOR, | ||
| 157 | DML_OPERATOR_ELEMENT_WISE_MAX, | ||
| 158 | DML_OPERATOR_ELEMENT_WISE_MEAN, | ||
| 159 | DML_OPERATOR_ELEMENT_WISE_MIN, | ||
| 160 | DML_OPERATOR_ELEMENT_WISE_MULTIPLY, | ||
| 161 | DML_OPERATOR_ELEMENT_WISE_POW, | ||
| 162 | DML_OPERATOR_ELEMENT_WISE_CONSTANT_POW, | ||
| 163 | DML_OPERATOR_ELEMENT_WISE_RECIP, | ||
| 164 | DML_OPERATOR_ELEMENT_WISE_SIN, | ||
| 165 | DML_OPERATOR_ELEMENT_WISE_SQRT, | ||
| 166 | DML_OPERATOR_ELEMENT_WISE_SUBTRACT, | ||
| 167 | DML_OPERATOR_ELEMENT_WISE_TAN, | ||
| 168 | DML_OPERATOR_ELEMENT_WISE_THRESHOLD, | ||
| 169 | DML_OPERATOR_ELEMENT_WISE_QUANTIZE_LINEAR, | ||
| 170 | DML_OPERATOR_ELEMENT_WISE_DEQUANTIZE_LINEAR, | ||
| 171 | DML_OPERATOR_ACTIVATION_ELU, | ||
| 172 | DML_OPERATOR_ACTIVATION_HARDMAX, | ||
| 173 | DML_OPERATOR_ACTIVATION_HARD_SIGMOID, | ||
| 174 | DML_OPERATOR_ACTIVATION_IDENTITY, | ||
| 175 | DML_OPERATOR_ACTIVATION_LEAKY_RELU, | ||
| 176 | DML_OPERATOR_ACTIVATION_LINEAR, | ||
| 177 | DML_OPERATOR_ACTIVATION_LOG_SOFTMAX, | ||
| 178 | DML_OPERATOR_ACTIVATION_PARAMETERIZED_RELU, | ||
| 179 | DML_OPERATOR_ACTIVATION_PARAMETRIC_SOFTPLUS, | ||
| 180 | DML_OPERATOR_ACTIVATION_RELU, | ||
| 181 | DML_OPERATOR_ACTIVATION_SCALED_ELU, | ||
| 182 | DML_OPERATOR_ACTIVATION_SCALED_TANH, | ||
| 183 | DML_OPERATOR_ACTIVATION_SIGMOID, | ||
| 184 | DML_OPERATOR_ACTIVATION_SOFTMAX, | ||
| 185 | DML_OPERATOR_ACTIVATION_SOFTPLUS, | ||
| 186 | DML_OPERATOR_ACTIVATION_SOFTSIGN, | ||
| 187 | DML_OPERATOR_ACTIVATION_TANH, | ||
| 188 | DML_OPERATOR_ACTIVATION_THRESHOLDED_RELU, | ||
| 189 | DML_OPERATOR_CONVOLUTION, | ||
| 190 | DML_OPERATOR_GEMM, | ||
| 191 | DML_OPERATOR_REDUCE, | ||
| 192 | DML_OPERATOR_AVERAGE_POOLING, | ||
| 193 | DML_OPERATOR_LP_POOLING, | ||
| 194 | DML_OPERATOR_MAX_POOLING, | ||
| 195 | DML_OPERATOR_ROI_POOLING, | ||
| 196 | DML_OPERATOR_SLICE, | ||
| 197 | DML_OPERATOR_CAST, | ||
| 198 | DML_OPERATOR_SPLIT, | ||
| 199 | DML_OPERATOR_JOIN, | ||
| 200 | DML_OPERATOR_PADDING, | ||
| 201 | DML_OPERATOR_VALUE_SCALE_2D, | ||
| 202 | DML_OPERATOR_UPSAMPLE_2D, | ||
| 203 | DML_OPERATOR_GATHER, | ||
| 204 | DML_OPERATOR_SPACE_TO_DEPTH, | ||
| 205 | DML_OPERATOR_DEPTH_TO_SPACE, | ||
| 206 | DML_OPERATOR_TILE, | ||
| 207 | DML_OPERATOR_TOP_K, | ||
| 208 | DML_OPERATOR_BATCH_NORMALIZATION, | ||
| 209 | DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION, | ||
| 210 | DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION, | ||
| 211 | DML_OPERATOR_LP_NORMALIZATION, | ||
| 212 | DML_OPERATOR_RNN, | ||
| 213 | DML_OPERATOR_LSTM, | ||
| 214 | DML_OPERATOR_GRU, | ||
| 215 | |||
| 216 | #if DML_TARGET_VERSION >= 0x2000 | ||
| 217 | DML_OPERATOR_ELEMENT_WISE_SIGN, | ||
| 218 | DML_OPERATOR_ELEMENT_WISE_IS_NAN, | ||
| 219 | DML_OPERATOR_ELEMENT_WISE_ERF, | ||
| 220 | DML_OPERATOR_ELEMENT_WISE_SINH, | ||
| 221 | DML_OPERATOR_ELEMENT_WISE_COSH, | ||
| 222 | DML_OPERATOR_ELEMENT_WISE_TANH, | ||
| 223 | DML_OPERATOR_ELEMENT_WISE_ASINH, | ||
| 224 | DML_OPERATOR_ELEMENT_WISE_ACOSH, | ||
| 225 | DML_OPERATOR_ELEMENT_WISE_ATANH, | ||
| 226 | DML_OPERATOR_ELEMENT_WISE_IF, | ||
| 227 | DML_OPERATOR_ELEMENT_WISE_ADD1, | ||
| 228 | DML_OPERATOR_ACTIVATION_SHRINK, | ||
| 229 | DML_OPERATOR_MAX_POOLING1, | ||
| 230 | DML_OPERATOR_MAX_UNPOOLING, | ||
| 231 | DML_OPERATOR_DIAGONAL_MATRIX, | ||
| 232 | DML_OPERATOR_SCATTER_ELEMENTS, | ||
| 233 | DML_OPERATOR_SCATTER = DML_OPERATOR_SCATTER_ELEMENTS, // Alias name for backwards compatibility. | ||
| 234 | DML_OPERATOR_ONE_HOT, | ||
| 235 | DML_OPERATOR_RESAMPLE, | ||
| 236 | #endif // DML_TARGET_VERSION >= 0x2000 | ||
| 237 | |||
| 238 | #if DML_TARGET_VERSION >= 0x2100 | ||
| 239 | DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_LEFT, | ||
| 240 | DML_OPERATOR_ELEMENT_WISE_BIT_SHIFT_RIGHT, | ||
| 241 | DML_OPERATOR_ELEMENT_WISE_ROUND, | ||
| 242 | DML_OPERATOR_ELEMENT_WISE_IS_INFINITY, | ||
| 243 | DML_OPERATOR_ELEMENT_WISE_MODULUS_TRUNCATE, | ||
| 244 | DML_OPERATOR_ELEMENT_WISE_MODULUS_FLOOR, | ||
| 245 | DML_OPERATOR_FILL_VALUE_CONSTANT, | ||
| 246 | DML_OPERATOR_FILL_VALUE_SEQUENCE, | ||
| 247 | DML_OPERATOR_CUMULATIVE_SUMMATION, | ||
| 248 | DML_OPERATOR_REVERSE_SUBSEQUENCES, | ||
| 249 | DML_OPERATOR_GATHER_ELEMENTS, | ||
| 250 | DML_OPERATOR_GATHER_ND, | ||
| 251 | DML_OPERATOR_SCATTER_ND, | ||
| 252 | DML_OPERATOR_MAX_POOLING2, | ||
| 253 | DML_OPERATOR_SLICE1, | ||
| 254 | DML_OPERATOR_TOP_K1, | ||
| 255 | DML_OPERATOR_DEPTH_TO_SPACE1, | ||
| 256 | DML_OPERATOR_SPACE_TO_DEPTH1, | ||
| 257 | DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION1, | ||
| 258 | DML_OPERATOR_RESAMPLE1, | ||
| 259 | DML_OPERATOR_MATRIX_MULTIPLY_INTEGER, | ||
| 260 | DML_OPERATOR_QUANTIZED_LINEAR_MATRIX_MULTIPLY, | ||
| 261 | DML_OPERATOR_CONVOLUTION_INTEGER, | ||
| 262 | DML_OPERATOR_QUANTIZED_LINEAR_CONVOLUTION, | ||
| 263 | #endif // DML_TARGET_VERSION >= 0x2100 | ||
| 264 | |||
| 265 | #if DML_TARGET_VERSION >= 0x3000 | ||
| 266 | DML_OPERATOR_ELEMENT_WISE_BIT_AND, | ||
| 267 | DML_OPERATOR_ELEMENT_WISE_BIT_OR, | ||
| 268 | DML_OPERATOR_ELEMENT_WISE_BIT_XOR, | ||
| 269 | DML_OPERATOR_ELEMENT_WISE_BIT_NOT, | ||
| 270 | DML_OPERATOR_ELEMENT_WISE_BIT_COUNT, | ||
| 271 | DML_OPERATOR_ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUAL, | ||
| 272 | DML_OPERATOR_ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUAL, | ||
| 273 | DML_OPERATOR_ACTIVATION_CELU, | ||
| 274 | DML_OPERATOR_ACTIVATION_RELU_GRAD, | ||
| 275 | DML_OPERATOR_AVERAGE_POOLING_GRAD, | ||
| 276 | DML_OPERATOR_MAX_POOLING_GRAD, | ||
| 277 | DML_OPERATOR_RANDOM_GENERATOR, | ||
| 278 | DML_OPERATOR_NONZERO_COORDINATES, | ||
| 279 | DML_OPERATOR_RESAMPLE_GRAD, | ||
| 280 | DML_OPERATOR_SLICE_GRAD, | ||
| 281 | DML_OPERATOR_ADAM_OPTIMIZER, | ||
| 282 | DML_OPERATOR_ARGMIN, | ||
| 283 | DML_OPERATOR_ARGMAX, | ||
| 284 | DML_OPERATOR_ROI_ALIGN, | ||
| 285 | DML_OPERATOR_GATHER_ND1, | ||
| 286 | #endif // DML_TARGET_VERSION >= 0x3000 | ||
| 287 | |||
| 288 | #if DML_TARGET_VERSION >= 0x3100 | ||
| 289 | DML_OPERATOR_ELEMENT_WISE_ATAN_YX, | ||
| 290 | DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD, | ||
| 291 | DML_OPERATOR_ELEMENT_WISE_DIFFERENCE_SQUARE, | ||
| 292 | DML_OPERATOR_LOCAL_RESPONSE_NORMALIZATION_GRAD, | ||
| 293 | DML_OPERATOR_CUMULATIVE_PRODUCT, | ||
| 294 | DML_OPERATOR_BATCH_NORMALIZATION_GRAD, | ||
| 295 | #endif // DML_TARGET_VERSION >= 0x3100 | ||
| 296 | |||
| 297 | #if DML_TARGET_VERSION >= 0x4000 | ||
| 298 | DML_OPERATOR_ELEMENT_WISE_QUANTIZED_LINEAR_ADD, | ||
| 299 | DML_OPERATOR_DYNAMIC_QUANTIZE_LINEAR, | ||
| 300 | DML_OPERATOR_ROI_ALIGN1, | ||
| 301 | #endif // DML_TARGET_VERSION >= 0x4000 | ||
| 302 | |||
| 303 | #if DML_TARGET_VERSION >= 0x4100 | ||
| 304 | DML_OPERATOR_ROI_ALIGN_GRAD, | ||
| 305 | DML_OPERATOR_BATCH_NORMALIZATION_TRAINING, | ||
| 306 | DML_OPERATOR_BATCH_NORMALIZATION_TRAINING_GRAD, | ||
| 307 | #endif // DML_TARGET_VERSION >= 0x4100 | ||
| 308 | |||
| 309 | #if DML_TARGET_VERSION >= 0x5000 | ||
| 310 | DML_OPERATOR_ELEMENT_WISE_CLIP1, | ||
| 311 | DML_OPERATOR_ELEMENT_WISE_CLIP_GRAD1, | ||
| 312 | DML_OPERATOR_PADDING1, | ||
| 313 | DML_OPERATOR_ELEMENT_WISE_NEGATE, | ||
| 314 | #endif // DML_TARGET_VERSION >= 0x5000 | ||
| 315 | |||
| 316 | #if DML_TARGET_VERSION >= 0x5100 | ||
| 317 | DML_OPERATOR_ACTIVATION_GELU, | ||
| 318 | DML_OPERATOR_ACTIVATION_SOFTMAX1, | ||
| 319 | DML_OPERATOR_ACTIVATION_LOG_SOFTMAX1, | ||
| 320 | DML_OPERATOR_ACTIVATION_HARDMAX1, | ||
| 321 | DML_OPERATOR_RESAMPLE2, | ||
| 322 | DML_OPERATOR_RESAMPLE_GRAD1, | ||
| 323 | DML_OPERATOR_DIAGONAL_MATRIX1, | ||
| 324 | #endif // DML_TARGET_VERSION >= 0x5100 | ||
| 325 | |||
| 326 | #if DML_TARGET_VERSION >= 0x6100 | ||
| 327 | DML_OPERATOR_MULTIHEAD_ATTENTION, | ||
| 328 | #endif // DML_TARGET_VERSION >= 0x6100 | ||
| 329 | |||
| 330 | #if DML_TARGET_VERSION >= 0x6200 | ||
| 331 | DML_OPERATOR_LP_POOLING1, | ||
| 332 | DML_OPERATOR_AVERAGE_POOLING1, | ||
| 333 | DML_OPERATOR_ACTIVATION_SWISH, | ||
| 334 | DML_OPERATOR_ACTIVATION_HARD_SWISH, | ||
| 335 | DML_OPERATOR_QUANTIZED_LINEAR_AVERAGE_POOLING, | ||
| 336 | DML_OPERATOR_MATRIX_MULTIPLY_INTEGER_TO_FLOAT, | ||
| 337 | #endif // DML_TARGET_VERSION >= 0x6200 | ||
| 338 | |||
| 339 | #if DML_TARGET_VERSION >= 0x6300 | ||
| 340 | DML_OPERATOR_MEAN_VARIANCE_NORMALIZATION2, | ||
| 341 | DML_OPERATOR_MULTIHEAD_ATTENTION1, | ||
| 342 | DML_OPERATOR_QUANTIZE, | ||
| 343 | DML_OPERATOR_DEQUANTIZE, | ||
| 344 | #endif // DML_TARGET_VERSION >= 0x6300 | ||
| 345 | |||
| 346 | #if DML_TARGET_VERSION >= 0x6400 | ||
| 347 | DML_OPERATOR_RESAMPLE3, | ||
| 348 | DML_OPERATOR_FOLD, | ||
| 349 | DML_OPERATOR_UNFOLD, | ||
| 350 | #endif // DML_TARGET_VERSION >= 0x6400 | ||
| 351 | }; | ||
| 352 | |||
| 353 | // =================================================================================================================== | ||
| 354 | // Operator enumerations and structures | ||
| 355 | // =================================================================================================================== | ||
| 356 | |||
| 357 | enum DML_REDUCE_FUNCTION | ||
| 358 | { | ||
| 359 | DML_REDUCE_FUNCTION_ARGMAX, | ||
| 360 | DML_REDUCE_FUNCTION_ARGMIN, | ||
| 361 | DML_REDUCE_FUNCTION_AVERAGE, | ||
| 362 | DML_REDUCE_FUNCTION_L1, | ||
| 363 | DML_REDUCE_FUNCTION_L2, | ||
| 364 | DML_REDUCE_FUNCTION_LOG_SUM, | ||
| 365 | DML_REDUCE_FUNCTION_LOG_SUM_EXP, | ||
| 366 | DML_REDUCE_FUNCTION_MAX, | ||
| 367 | DML_REDUCE_FUNCTION_MIN, | ||
| 368 | DML_REDUCE_FUNCTION_MULTIPLY, | ||
| 369 | DML_REDUCE_FUNCTION_SUM, | ||
| 370 | DML_REDUCE_FUNCTION_SUM_SQUARE, | ||
| 371 | }; | ||
| 372 | |||
| 373 | enum DML_MATRIX_TRANSFORM | ||
| 374 | { | ||
| 375 | DML_MATRIX_TRANSFORM_NONE, | ||
| 376 | DML_MATRIX_TRANSFORM_TRANSPOSE, | ||
| 377 | }; | ||
| 378 | |||
| 379 | enum DML_CONVOLUTION_MODE | ||
| 380 | { | ||
| 381 | DML_CONVOLUTION_MODE_CONVOLUTION, | ||
| 382 | DML_CONVOLUTION_MODE_CROSS_CORRELATION, | ||
| 383 | }; | ||
| 384 | |||
| 385 | enum DML_CONVOLUTION_DIRECTION | ||
| 386 | { | ||
| 387 | DML_CONVOLUTION_DIRECTION_FORWARD, | ||
| 388 | DML_CONVOLUTION_DIRECTION_BACKWARD, | ||
| 389 | }; | ||
| 390 | |||
| 391 | enum DML_PADDING_MODE | ||
| 392 | { | ||
| 393 | DML_PADDING_MODE_CONSTANT, | ||
| 394 | DML_PADDING_MODE_EDGE, | ||
| 395 | DML_PADDING_MODE_REFLECTION, | ||
| 396 | |||
| 397 | #if DML_TARGET_VERSION >= 0x3000 | ||
| 398 | DML_PADDING_MODE_SYMMETRIC, | ||
| 399 | #endif | ||
| 400 | |||
| 401 | #if DML_TARGET_VERSION >= 0x6400 | ||
| 402 | DML_PADDING_MODE_WRAP, | ||
| 403 | #endif | ||
| 404 | }; | ||
| 405 | |||
| 406 | enum DML_INTERPOLATION_MODE | ||
| 407 | { | ||
| 408 | DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR, | ||
| 409 | DML_INTERPOLATION_MODE_LINEAR, | ||
| 410 | }; | ||
| 411 | |||
| 412 | struct DML_SCALE_BIAS | ||
| 413 | { | ||
| 414 | FLOAT Scale; | ||
| 415 | FLOAT Bias; | ||
| 416 | }; | ||
| 417 | |||
| 418 | struct DML_SIZE_2D | ||
| 419 | { | ||
| 420 | UINT Width; | ||
| 421 | UINT Height; | ||
| 422 | }; | ||
| 423 | |||
| 424 | enum DML_RECURRENT_NETWORK_DIRECTION | ||
| 425 | { | ||
| 426 | DML_RECURRENT_NETWORK_DIRECTION_FORWARD, | ||
| 427 | DML_RECURRENT_NETWORK_DIRECTION_BACKWARD, | ||
| 428 | DML_RECURRENT_NETWORK_DIRECTION_BIDIRECTIONAL, | ||
| 429 | }; | ||
| 430 | |||
| 431 | #if DML_TARGET_VERSION >= 0x2100 | ||
| 432 | |||
| 433 | enum DML_ROUNDING_MODE | ||
| 434 | { | ||
| 435 | DML_ROUNDING_MODE_HALVES_TO_NEAREST_EVEN, | ||
| 436 | DML_ROUNDING_MODE_TOWARD_ZERO, | ||
| 437 | DML_ROUNDING_MODE_TOWARD_INFINITY, | ||
| 438 | }; | ||
| 439 | |||
| 440 | enum DML_IS_INFINITY_MODE | ||
| 441 | { | ||
| 442 | DML_IS_INFINITY_MODE_EITHER = 0, | ||
| 443 | DML_IS_INFINITY_MODE_POSITIVE = 1, | ||
| 444 | DML_IS_INFINITY_MODE_NEGATIVE = 2, | ||
| 445 | }; | ||
| 446 | |||
| 447 | enum DML_AXIS_DIRECTION | ||
| 448 | { | ||
| 449 | DML_AXIS_DIRECTION_INCREASING = 0, | ||
| 450 | DML_AXIS_DIRECTION_DECREASING = 1, | ||
| 451 | }; | ||
| 452 | |||
| 453 | enum DML_DEPTH_SPACE_ORDER | ||
| 454 | { | ||
| 455 | DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW, | ||
| 456 | DML_DEPTH_SPACE_ORDER_COLUMN_ROW_DEPTH, | ||
| 457 | }; | ||
| 458 | |||
| 459 | union DML_SCALAR_UNION | ||
| 460 | { | ||
| 461 | BYTE Bytes[8]; | ||
| 462 | INT8 Int8; | ||
| 463 | UINT8 UInt8; | ||
| 464 | INT16 Int16; | ||
| 465 | UINT16 UInt16; | ||
| 466 | INT32 Int32; | ||
| 467 | UINT32 UInt32; | ||
| 468 | INT64 Int64; | ||
| 469 | UINT64 UInt64; | ||
| 470 | FLOAT Float32; | ||
| 471 | DOUBLE Float64; | ||
| 472 | }; | ||
| 473 | |||
| 474 | #endif // DML_TARGET_VERSION >= 0x2100 | ||
| 475 | |||
| 476 | #if DML_TARGET_VERSION >= 0x3000 | ||
| 477 | |||
| 478 | enum DML_RANDOM_GENERATOR_TYPE | ||
| 479 | { | ||
| 480 | DML_RANDOM_GENERATOR_TYPE_PHILOX_4X32_10 | ||
| 481 | }; | ||
| 482 | |||
| 483 | #endif // DML_TARGET_VERSION >= 0x3000 | ||
| 484 | |||
| 485 | #if DML_TARGET_VERSION >= 0x6100 | ||
| 486 | |||
| 487 | enum DML_MULTIHEAD_ATTENTION_MASK_TYPE | ||
| 488 | { | ||
| 489 | DML_MULTIHEAD_ATTENTION_MASK_TYPE_NONE, | ||
| 490 | DML_MULTIHEAD_ATTENTION_MASK_TYPE_KEY_SEQUENCE_LENGTH, | ||
| 491 | DML_MULTIHEAD_ATTENTION_MASK_TYPE_KEY_SEQUENCE_END_START, | ||
| 492 | DML_MULTIHEAD_ATTENTION_MASK_TYPE_KEY_QUERY_SEQUENCE_LENGTH_START_END, | ||
| 493 | DML_MULTIHEAD_ATTENTION_MASK_TYPE_BOOLEAN, | ||
| 494 | }; | ||
| 495 | |||
| 496 | #endif // DML_TARGET_VERSION >= 0x6100 | ||
| 497 | |||
| 498 | #if DML_TARGET_VERSION >= 0x6300 | ||
| 499 | |||
| 500 | enum DML_QUANTIZATION_TYPE | ||
| 501 | { | ||
| 502 | DML_QUANTIZATION_TYPE_NONE, | ||
| 503 | DML_QUANTIZATION_TYPE_SCALE, | ||
| 504 | DML_QUANTIZATION_TYPE_SCALE_ZERO_POINT, | ||
| 505 | }; | ||
| 506 | |||
| 507 | #endif // DML_TARGET_VERSION >= 0x6300 | ||
| 508 | |||
| 509 | // =================================================================================================================== | ||
| 510 | // Operator descriptions | ||
| 511 | // =================================================================================================================== | ||
| 512 | |||
| 513 | struct DML_OPERATOR_DESC | ||
| 514 | { | ||
| 515 | DML_OPERATOR_TYPE Type; | ||
| 516 | _Field_size_(_Inexpressible_("Dependent on operator type")) const void* Desc; | ||
| 517 | }; | ||
| 518 | |||
| 519 | struct DML_ELEMENT_WISE_IDENTITY_OPERATOR_DESC | ||
| 520 | { | ||
| 521 | const DML_TENSOR_DESC* InputTensor; | ||
| 522 | const DML_TENSOR_DESC* OutputTensor; | ||
| 523 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 524 | }; | ||
| 525 | |||
| 526 | struct DML_ELEMENT_WISE_ABS_OPERATOR_DESC | ||
| 527 | { | ||
| 528 | const DML_TENSOR_DESC* InputTensor; | ||
| 529 | const DML_TENSOR_DESC* OutputTensor; | ||
| 530 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 531 | }; | ||
| 532 | |||
| 533 | struct DML_ELEMENT_WISE_ACOS_OPERATOR_DESC | ||
| 534 | { | ||
| 535 | const DML_TENSOR_DESC* InputTensor; | ||
| 536 | const DML_TENSOR_DESC* OutputTensor; | ||
| 537 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 538 | }; | ||
| 539 | |||
| 540 | struct DML_ELEMENT_WISE_ADD_OPERATOR_DESC | ||
| 541 | { | ||
| 542 | const DML_TENSOR_DESC* ATensor; | ||
| 543 | const DML_TENSOR_DESC* BTensor; | ||
| 544 | const DML_TENSOR_DESC* OutputTensor; | ||
| 545 | }; | ||
| 546 | |||
| 547 | struct DML_ELEMENT_WISE_ADD1_OPERATOR_DESC | ||
| 548 | { | ||
| 549 | const DML_TENSOR_DESC* ATensor; | ||
| 550 | const DML_TENSOR_DESC* BTensor; | ||
| 551 | const DML_TENSOR_DESC* OutputTensor; | ||
| 552 | _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; | ||
| 553 | }; | ||
| 554 | |||
| 555 | struct DML_ELEMENT_WISE_ASIN_OPERATOR_DESC | ||
| 556 | { | ||
| 557 | const DML_TENSOR_DESC* InputTensor; | ||
| 558 | const DML_TENSOR_DESC* OutputTensor; | ||
| 559 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 560 | }; | ||
| 561 | |||
| 562 | struct DML_ELEMENT_WISE_ATAN_OPERATOR_DESC | ||
| 563 | { | ||
| 564 | const DML_TENSOR_DESC* InputTensor; | ||
| 565 | const DML_TENSOR_DESC* OutputTensor; | ||
| 566 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 567 | }; | ||
| 568 | |||
| 569 | struct DML_ELEMENT_WISE_CEIL_OPERATOR_DESC | ||
| 570 | { | ||
| 571 | const DML_TENSOR_DESC* InputTensor; | ||
| 572 | const DML_TENSOR_DESC* OutputTensor; | ||
| 573 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 574 | }; | ||
| 575 | |||
| 576 | struct DML_ELEMENT_WISE_CLIP_OPERATOR_DESC | ||
| 577 | { | ||
| 578 | const DML_TENSOR_DESC* InputTensor; | ||
| 579 | const DML_TENSOR_DESC* OutputTensor; | ||
| 580 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 581 | FLOAT Min; | ||
| 582 | FLOAT Max; | ||
| 583 | }; | ||
| 584 | |||
| 585 | struct DML_ELEMENT_WISE_COS_OPERATOR_DESC | ||
| 586 | { | ||
| 587 | const DML_TENSOR_DESC* InputTensor; | ||
| 588 | const DML_TENSOR_DESC* OutputTensor; | ||
| 589 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 590 | }; | ||
| 591 | |||
| 592 | struct DML_ELEMENT_WISE_DIVIDE_OPERATOR_DESC | ||
| 593 | { | ||
| 594 | const DML_TENSOR_DESC* ATensor; | ||
| 595 | const DML_TENSOR_DESC* BTensor; | ||
| 596 | const DML_TENSOR_DESC* OutputTensor; | ||
| 597 | }; | ||
| 598 | |||
| 599 | struct DML_ELEMENT_WISE_EXP_OPERATOR_DESC | ||
| 600 | { | ||
| 601 | const DML_TENSOR_DESC* InputTensor; | ||
| 602 | const DML_TENSOR_DESC* OutputTensor; | ||
| 603 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 604 | }; | ||
| 605 | |||
| 606 | struct DML_ELEMENT_WISE_FLOOR_OPERATOR_DESC | ||
| 607 | { | ||
| 608 | const DML_TENSOR_DESC* InputTensor; | ||
| 609 | const DML_TENSOR_DESC* OutputTensor; | ||
| 610 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 611 | }; | ||
| 612 | |||
| 613 | struct DML_ELEMENT_WISE_LOG_OPERATOR_DESC | ||
| 614 | { | ||
| 615 | const DML_TENSOR_DESC* InputTensor; | ||
| 616 | const DML_TENSOR_DESC* OutputTensor; | ||
| 617 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 618 | }; | ||
| 619 | |||
| 620 | struct DML_ELEMENT_WISE_LOGICAL_AND_OPERATOR_DESC | ||
| 621 | { | ||
| 622 | const DML_TENSOR_DESC* ATensor; | ||
| 623 | const DML_TENSOR_DESC* BTensor; | ||
| 624 | const DML_TENSOR_DESC* OutputTensor; | ||
| 625 | }; | ||
| 626 | |||
| 627 | struct DML_ELEMENT_WISE_LOGICAL_EQUALS_OPERATOR_DESC | ||
| 628 | { | ||
| 629 | const DML_TENSOR_DESC* ATensor; | ||
| 630 | const DML_TENSOR_DESC* BTensor; | ||
| 631 | const DML_TENSOR_DESC* OutputTensor; | ||
| 632 | }; | ||
| 633 | |||
| 634 | struct DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OPERATOR_DESC | ||
| 635 | { | ||
| 636 | const DML_TENSOR_DESC* ATensor; | ||
| 637 | const DML_TENSOR_DESC* BTensor; | ||
| 638 | const DML_TENSOR_DESC* OutputTensor; | ||
| 639 | }; | ||
| 640 | |||
| 641 | struct DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OPERATOR_DESC | ||
| 642 | { | ||
| 643 | const DML_TENSOR_DESC* ATensor; | ||
| 644 | const DML_TENSOR_DESC* BTensor; | ||
| 645 | const DML_TENSOR_DESC* OutputTensor; | ||
| 646 | }; | ||
| 647 | |||
| 648 | struct DML_ELEMENT_WISE_LOGICAL_NOT_OPERATOR_DESC | ||
| 649 | { | ||
| 650 | const DML_TENSOR_DESC* InputTensor; | ||
| 651 | const DML_TENSOR_DESC* OutputTensor; | ||
| 652 | }; | ||
| 653 | |||
| 654 | struct DML_ELEMENT_WISE_LOGICAL_OR_OPERATOR_DESC | ||
| 655 | { | ||
| 656 | const DML_TENSOR_DESC* ATensor; | ||
| 657 | const DML_TENSOR_DESC* BTensor; | ||
| 658 | const DML_TENSOR_DESC* OutputTensor; | ||
| 659 | }; | ||
| 660 | |||
| 661 | struct DML_ELEMENT_WISE_LOGICAL_XOR_OPERATOR_DESC | ||
| 662 | { | ||
| 663 | const DML_TENSOR_DESC* ATensor; | ||
| 664 | const DML_TENSOR_DESC* BTensor; | ||
| 665 | const DML_TENSOR_DESC* OutputTensor; | ||
| 666 | }; | ||
| 667 | |||
| 668 | struct DML_ELEMENT_WISE_MAX_OPERATOR_DESC | ||
| 669 | { | ||
| 670 | const DML_TENSOR_DESC* ATensor; | ||
| 671 | const DML_TENSOR_DESC* BTensor; | ||
| 672 | const DML_TENSOR_DESC* OutputTensor; | ||
| 673 | }; | ||
| 674 | |||
| 675 | struct DML_ELEMENT_WISE_MEAN_OPERATOR_DESC | ||
| 676 | { | ||
| 677 | const DML_TENSOR_DESC* ATensor; | ||
| 678 | const DML_TENSOR_DESC* BTensor; | ||
| 679 | const DML_TENSOR_DESC* OutputTensor; | ||
| 680 | }; | ||
| 681 | |||
| 682 | struct DML_ELEMENT_WISE_MIN_OPERATOR_DESC | ||
| 683 | { | ||
| 684 | const DML_TENSOR_DESC* ATensor; | ||
| 685 | const DML_TENSOR_DESC* BTensor; | ||
| 686 | const DML_TENSOR_DESC* OutputTensor; | ||
| 687 | }; | ||
| 688 | |||
| 689 | struct DML_ELEMENT_WISE_MULTIPLY_OPERATOR_DESC | ||
| 690 | { | ||
| 691 | const DML_TENSOR_DESC* ATensor; | ||
| 692 | const DML_TENSOR_DESC* BTensor; | ||
| 693 | const DML_TENSOR_DESC* OutputTensor; | ||
| 694 | }; | ||
| 695 | |||
| 696 | struct DML_ELEMENT_WISE_POW_OPERATOR_DESC | ||
| 697 | { | ||
| 698 | const DML_TENSOR_DESC* InputTensor; | ||
| 699 | const DML_TENSOR_DESC* ExponentTensor; | ||
| 700 | const DML_TENSOR_DESC* OutputTensor; | ||
| 701 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 702 | }; | ||
| 703 | |||
| 704 | struct DML_ELEMENT_WISE_CONSTANT_POW_OPERATOR_DESC | ||
| 705 | { | ||
| 706 | const DML_TENSOR_DESC* InputTensor; | ||
| 707 | const DML_TENSOR_DESC* OutputTensor; | ||
| 708 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 709 | FLOAT Exponent; | ||
| 710 | }; | ||
| 711 | |||
| 712 | struct DML_ELEMENT_WISE_RECIP_OPERATOR_DESC | ||
| 713 | { | ||
| 714 | const DML_TENSOR_DESC* InputTensor; | ||
| 715 | const DML_TENSOR_DESC* OutputTensor; | ||
| 716 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 717 | }; | ||
| 718 | |||
| 719 | struct DML_ELEMENT_WISE_SIN_OPERATOR_DESC | ||
| 720 | { | ||
| 721 | const DML_TENSOR_DESC* InputTensor; | ||
| 722 | const DML_TENSOR_DESC* OutputTensor; | ||
| 723 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 724 | }; | ||
| 725 | |||
| 726 | struct DML_ELEMENT_WISE_SQRT_OPERATOR_DESC | ||
| 727 | { | ||
| 728 | const DML_TENSOR_DESC* InputTensor; | ||
| 729 | const DML_TENSOR_DESC* OutputTensor; | ||
| 730 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 731 | }; | ||
| 732 | |||
| 733 | struct DML_ELEMENT_WISE_SUBTRACT_OPERATOR_DESC | ||
| 734 | { | ||
| 735 | const DML_TENSOR_DESC* ATensor; | ||
| 736 | const DML_TENSOR_DESC* BTensor; | ||
| 737 | const DML_TENSOR_DESC* OutputTensor; | ||
| 738 | }; | ||
| 739 | |||
| 740 | struct DML_ELEMENT_WISE_TAN_OPERATOR_DESC | ||
| 741 | { | ||
| 742 | const DML_TENSOR_DESC* InputTensor; | ||
| 743 | const DML_TENSOR_DESC* OutputTensor; | ||
| 744 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 745 | }; | ||
| 746 | |||
| 747 | struct DML_ELEMENT_WISE_THRESHOLD_OPERATOR_DESC | ||
| 748 | { | ||
| 749 | const DML_TENSOR_DESC* InputTensor; | ||
| 750 | const DML_TENSOR_DESC* OutputTensor; | ||
| 751 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 752 | FLOAT Min; | ||
| 753 | }; | ||
| 754 | |||
| 755 | struct DML_ELEMENT_WISE_QUANTIZE_LINEAR_OPERATOR_DESC | ||
| 756 | { | ||
| 757 | const DML_TENSOR_DESC* InputTensor; | ||
| 758 | const DML_TENSOR_DESC* ScaleTensor; | ||
| 759 | _Maybenull_ const DML_TENSOR_DESC* ZeroPointTensor; | ||
| 760 | const DML_TENSOR_DESC* OutputTensor; | ||
| 761 | }; | ||
| 762 | |||
| 763 | struct DML_ELEMENT_WISE_DEQUANTIZE_LINEAR_OPERATOR_DESC | ||
| 764 | { | ||
| 765 | const DML_TENSOR_DESC* InputTensor; | ||
| 766 | const DML_TENSOR_DESC* ScaleTensor; | ||
| 767 | _Maybenull_ const DML_TENSOR_DESC* ZeroPointTensor; | ||
| 768 | const DML_TENSOR_DESC* OutputTensor; | ||
| 769 | }; | ||
| 770 | |||
| 771 | struct DML_ACTIVATION_ELU_OPERATOR_DESC | ||
| 772 | { | ||
| 773 | const DML_TENSOR_DESC* InputTensor; | ||
| 774 | const DML_TENSOR_DESC* OutputTensor; | ||
| 775 | FLOAT Alpha; | ||
| 776 | }; | ||
| 777 | |||
| 778 | struct DML_ACTIVATION_HARDMAX_OPERATOR_DESC | ||
| 779 | { | ||
| 780 | const DML_TENSOR_DESC* InputTensor; | ||
| 781 | const DML_TENSOR_DESC* OutputTensor; | ||
| 782 | }; | ||
| 783 | |||
| 784 | struct DML_ACTIVATION_HARD_SIGMOID_OPERATOR_DESC | ||
| 785 | { | ||
| 786 | const DML_TENSOR_DESC* InputTensor; | ||
| 787 | const DML_TENSOR_DESC* OutputTensor; | ||
| 788 | FLOAT Alpha; | ||
| 789 | FLOAT Beta; | ||
| 790 | }; | ||
| 791 | |||
| 792 | struct DML_ACTIVATION_IDENTITY_OPERATOR_DESC | ||
| 793 | { | ||
| 794 | const DML_TENSOR_DESC* InputTensor; | ||
| 795 | const DML_TENSOR_DESC* OutputTensor; | ||
| 796 | }; | ||
| 797 | |||
| 798 | struct DML_ACTIVATION_LEAKY_RELU_OPERATOR_DESC | ||
| 799 | { | ||
| 800 | const DML_TENSOR_DESC* InputTensor; | ||
| 801 | const DML_TENSOR_DESC* OutputTensor; | ||
| 802 | FLOAT Alpha; | ||
| 803 | }; | ||
| 804 | |||
| 805 | struct DML_ACTIVATION_LINEAR_OPERATOR_DESC | ||
| 806 | { | ||
| 807 | const DML_TENSOR_DESC* InputTensor; | ||
| 808 | const DML_TENSOR_DESC* OutputTensor; | ||
| 809 | FLOAT Alpha; | ||
| 810 | FLOAT Beta; | ||
| 811 | }; | ||
| 812 | |||
| 813 | struct DML_ACTIVATION_LOG_SOFTMAX_OPERATOR_DESC | ||
| 814 | { | ||
| 815 | const DML_TENSOR_DESC* InputTensor; | ||
| 816 | const DML_TENSOR_DESC* OutputTensor; | ||
| 817 | }; | ||
| 818 | |||
| 819 | struct DML_ACTIVATION_PARAMETERIZED_RELU_OPERATOR_DESC | ||
| 820 | { | ||
| 821 | const DML_TENSOR_DESC* InputTensor; | ||
| 822 | const DML_TENSOR_DESC* SlopeTensor; | ||
| 823 | const DML_TENSOR_DESC* OutputTensor; | ||
| 824 | }; | ||
| 825 | |||
| 826 | struct DML_ACTIVATION_PARAMETRIC_SOFTPLUS_OPERATOR_DESC | ||
| 827 | { | ||
| 828 | const DML_TENSOR_DESC* InputTensor; | ||
| 829 | const DML_TENSOR_DESC* OutputTensor; | ||
| 830 | FLOAT Alpha; | ||
| 831 | FLOAT Beta; | ||
| 832 | }; | ||
| 833 | |||
| 834 | struct DML_ACTIVATION_RELU_OPERATOR_DESC | ||
| 835 | { | ||
| 836 | const DML_TENSOR_DESC* InputTensor; | ||
| 837 | const DML_TENSOR_DESC* OutputTensor; | ||
| 838 | }; | ||
| 839 | |||
| 840 | struct DML_ACTIVATION_SCALED_ELU_OPERATOR_DESC | ||
| 841 | { | ||
| 842 | const DML_TENSOR_DESC* InputTensor; | ||
| 843 | const DML_TENSOR_DESC* OutputTensor; | ||
| 844 | FLOAT Alpha; | ||
| 845 | FLOAT Gamma; | ||
| 846 | }; | ||
| 847 | |||
| 848 | struct DML_ACTIVATION_SCALED_TANH_OPERATOR_DESC | ||
| 849 | { | ||
| 850 | const DML_TENSOR_DESC* InputTensor; | ||
| 851 | const DML_TENSOR_DESC* OutputTensor; | ||
| 852 | FLOAT Alpha; | ||
| 853 | FLOAT Beta; | ||
| 854 | }; | ||
| 855 | |||
| 856 | struct DML_ACTIVATION_SIGMOID_OPERATOR_DESC | ||
| 857 | { | ||
| 858 | const DML_TENSOR_DESC* InputTensor; | ||
| 859 | const DML_TENSOR_DESC* OutputTensor; | ||
| 860 | }; | ||
| 861 | |||
| 862 | struct DML_ACTIVATION_SOFTMAX_OPERATOR_DESC | ||
| 863 | { | ||
| 864 | const DML_TENSOR_DESC* InputTensor; | ||
| 865 | const DML_TENSOR_DESC* OutputTensor; | ||
| 866 | }; | ||
| 867 | |||
| 868 | struct DML_ACTIVATION_SOFTPLUS_OPERATOR_DESC | ||
| 869 | { | ||
| 870 | const DML_TENSOR_DESC* InputTensor; | ||
| 871 | const DML_TENSOR_DESC* OutputTensor; | ||
| 872 | FLOAT Steepness; | ||
| 873 | }; | ||
| 874 | |||
| 875 | struct DML_ACTIVATION_SOFTSIGN_OPERATOR_DESC | ||
| 876 | { | ||
| 877 | const DML_TENSOR_DESC* InputTensor; | ||
| 878 | const DML_TENSOR_DESC* OutputTensor; | ||
| 879 | }; | ||
| 880 | |||
| 881 | struct DML_ACTIVATION_TANH_OPERATOR_DESC | ||
| 882 | { | ||
| 883 | const DML_TENSOR_DESC* InputTensor; | ||
| 884 | const DML_TENSOR_DESC* OutputTensor; | ||
| 885 | }; | ||
| 886 | |||
| 887 | struct DML_ACTIVATION_THRESHOLDED_RELU_OPERATOR_DESC | ||
| 888 | { | ||
| 889 | const DML_TENSOR_DESC* InputTensor; | ||
| 890 | const DML_TENSOR_DESC* OutputTensor; | ||
| 891 | FLOAT Alpha; | ||
| 892 | }; | ||
| 893 | |||
| 894 | struct DML_CONVOLUTION_OPERATOR_DESC | ||
| 895 | { | ||
| 896 | const DML_TENSOR_DESC* InputTensor; | ||
| 897 | const DML_TENSOR_DESC* FilterTensor; | ||
| 898 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 899 | const DML_TENSOR_DESC* OutputTensor; | ||
| 900 | DML_CONVOLUTION_MODE Mode; | ||
| 901 | DML_CONVOLUTION_DIRECTION Direction; | ||
| 902 | UINT DimensionCount; | ||
| 903 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 904 | _Field_size_(DimensionCount) const UINT* Dilations; | ||
| 905 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 906 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 907 | _Field_size_(DimensionCount) const UINT* OutputPadding; | ||
| 908 | UINT GroupCount; | ||
| 909 | _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; | ||
| 910 | }; | ||
| 911 | |||
| 912 | struct DML_GEMM_OPERATOR_DESC | ||
| 913 | { | ||
| 914 | const DML_TENSOR_DESC* ATensor; | ||
| 915 | const DML_TENSOR_DESC* BTensor; | ||
| 916 | _Maybenull_ const DML_TENSOR_DESC* CTensor; | ||
| 917 | const DML_TENSOR_DESC* OutputTensor; | ||
| 918 | DML_MATRIX_TRANSFORM TransA; | ||
| 919 | DML_MATRIX_TRANSFORM TransB; | ||
| 920 | FLOAT Alpha; | ||
| 921 | FLOAT Beta; | ||
| 922 | _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; | ||
| 923 | }; | ||
| 924 | |||
| 925 | struct DML_REDUCE_OPERATOR_DESC | ||
| 926 | { | ||
| 927 | DML_REDUCE_FUNCTION Function; | ||
| 928 | const DML_TENSOR_DESC* InputTensor; | ||
| 929 | const DML_TENSOR_DESC* OutputTensor; | ||
| 930 | UINT AxisCount; | ||
| 931 | _Field_size_(AxisCount) const UINT* Axes; | ||
| 932 | }; | ||
| 933 | |||
| 934 | struct DML_AVERAGE_POOLING_OPERATOR_DESC | ||
| 935 | { | ||
| 936 | const DML_TENSOR_DESC* InputTensor; | ||
| 937 | const DML_TENSOR_DESC* OutputTensor; | ||
| 938 | UINT DimensionCount; | ||
| 939 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 940 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 941 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 942 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 943 | BOOL IncludePadding; | ||
| 944 | }; | ||
| 945 | |||
| 946 | struct DML_LP_POOLING_OPERATOR_DESC | ||
| 947 | { | ||
| 948 | const DML_TENSOR_DESC* InputTensor; | ||
| 949 | const DML_TENSOR_DESC* OutputTensor; | ||
| 950 | UINT DimensionCount; | ||
| 951 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 952 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 953 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 954 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 955 | UINT P; | ||
| 956 | }; | ||
| 957 | |||
| 958 | struct DML_MAX_POOLING_OPERATOR_DESC | ||
| 959 | { | ||
| 960 | const DML_TENSOR_DESC* InputTensor; | ||
| 961 | const DML_TENSOR_DESC* OutputTensor; | ||
| 962 | UINT DimensionCount; | ||
| 963 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 964 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 965 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 966 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 967 | }; | ||
| 968 | |||
| 969 | struct DML_ROI_POOLING_OPERATOR_DESC | ||
| 970 | { | ||
| 971 | const DML_TENSOR_DESC* InputTensor; | ||
| 972 | const DML_TENSOR_DESC* ROITensor; | ||
| 973 | const DML_TENSOR_DESC* OutputTensor; | ||
| 974 | FLOAT SpatialScale; | ||
| 975 | DML_SIZE_2D PooledSize; | ||
| 976 | }; | ||
| 977 | |||
| 978 | struct DML_SLICE_OPERATOR_DESC | ||
| 979 | { | ||
| 980 | const DML_TENSOR_DESC* InputTensor; | ||
| 981 | const DML_TENSOR_DESC* OutputTensor; | ||
| 982 | UINT DimensionCount; | ||
| 983 | _Field_size_(DimensionCount) const UINT* Offsets; | ||
| 984 | _Field_size_(DimensionCount) const UINT* Sizes; | ||
| 985 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 986 | }; | ||
| 987 | |||
| 988 | struct DML_CAST_OPERATOR_DESC | ||
| 989 | { | ||
| 990 | const DML_TENSOR_DESC* InputTensor; | ||
| 991 | const DML_TENSOR_DESC* OutputTensor; | ||
| 992 | }; | ||
| 993 | |||
| 994 | struct DML_SPLIT_OPERATOR_DESC | ||
| 995 | { | ||
| 996 | const DML_TENSOR_DESC* InputTensor; | ||
| 997 | UINT OutputCount; | ||
| 998 | _Field_size_(OutputCount) const DML_TENSOR_DESC* OutputTensors; | ||
| 999 | UINT Axis; | ||
| 1000 | }; | ||
| 1001 | |||
| 1002 | struct DML_JOIN_OPERATOR_DESC | ||
| 1003 | { | ||
| 1004 | UINT InputCount; | ||
| 1005 | _Field_size_(InputCount) const DML_TENSOR_DESC* InputTensors; | ||
| 1006 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1007 | UINT Axis; | ||
| 1008 | }; | ||
| 1009 | |||
| 1010 | struct DML_PADDING_OPERATOR_DESC | ||
| 1011 | { | ||
| 1012 | const DML_TENSOR_DESC* InputTensor; | ||
| 1013 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1014 | DML_PADDING_MODE PaddingMode; | ||
| 1015 | FLOAT PaddingValue; | ||
| 1016 | UINT DimensionCount; | ||
| 1017 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 1018 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 1019 | }; | ||
| 1020 | |||
| 1021 | struct DML_VALUE_SCALE_2D_OPERATOR_DESC | ||
| 1022 | { | ||
| 1023 | const DML_TENSOR_DESC* InputTensor; | ||
| 1024 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1025 | FLOAT Scale; | ||
| 1026 | UINT ChannelCount; | ||
| 1027 | _Field_size_(ChannelCount) const FLOAT* Bias; | ||
| 1028 | }; | ||
| 1029 | |||
| 1030 | struct DML_UPSAMPLE_2D_OPERATOR_DESC | ||
| 1031 | { | ||
| 1032 | const DML_TENSOR_DESC* InputTensor; | ||
| 1033 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1034 | DML_SIZE_2D ScaleSize; | ||
| 1035 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 1036 | }; | ||
| 1037 | |||
| 1038 | struct DML_GATHER_OPERATOR_DESC | ||
| 1039 | { | ||
| 1040 | const DML_TENSOR_DESC* InputTensor; | ||
| 1041 | const DML_TENSOR_DESC* IndicesTensor; | ||
| 1042 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1043 | UINT Axis; | ||
| 1044 | UINT IndexDimensions; | ||
| 1045 | }; | ||
| 1046 | |||
| 1047 | struct DML_SPACE_TO_DEPTH_OPERATOR_DESC | ||
| 1048 | { | ||
| 1049 | const DML_TENSOR_DESC* InputTensor; | ||
| 1050 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1051 | UINT BlockSize; | ||
| 1052 | }; | ||
| 1053 | |||
| 1054 | struct DML_DEPTH_TO_SPACE_OPERATOR_DESC | ||
| 1055 | { | ||
| 1056 | const DML_TENSOR_DESC* InputTensor; | ||
| 1057 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1058 | UINT BlockSize; | ||
| 1059 | }; | ||
| 1060 | |||
| 1061 | struct DML_TILE_OPERATOR_DESC | ||
| 1062 | { | ||
| 1063 | const DML_TENSOR_DESC* InputTensor; | ||
| 1064 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1065 | UINT RepeatsCount; | ||
| 1066 | _Field_size_(RepeatsCount) const UINT* Repeats; | ||
| 1067 | }; | ||
| 1068 | |||
| 1069 | struct DML_TOP_K_OPERATOR_DESC | ||
| 1070 | { | ||
| 1071 | const DML_TENSOR_DESC* InputTensor; | ||
| 1072 | const DML_TENSOR_DESC* OutputValueTensor; | ||
| 1073 | const DML_TENSOR_DESC* OutputIndexTensor; | ||
| 1074 | UINT Axis; | ||
| 1075 | UINT K; | ||
| 1076 | }; | ||
| 1077 | |||
| 1078 | struct DML_BATCH_NORMALIZATION_OPERATOR_DESC | ||
| 1079 | { | ||
| 1080 | const DML_TENSOR_DESC* InputTensor; | ||
| 1081 | const DML_TENSOR_DESC* MeanTensor; | ||
| 1082 | const DML_TENSOR_DESC* VarianceTensor; | ||
| 1083 | const DML_TENSOR_DESC* ScaleTensor; | ||
| 1084 | const DML_TENSOR_DESC* BiasTensor; | ||
| 1085 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1086 | BOOL Spatial; | ||
| 1087 | FLOAT Epsilon; | ||
| 1088 | _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; | ||
| 1089 | }; | ||
| 1090 | |||
| 1091 | struct DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC | ||
| 1092 | { | ||
| 1093 | const DML_TENSOR_DESC* InputTensor; | ||
| 1094 | _Maybenull_ const DML_TENSOR_DESC* ScaleTensor; | ||
| 1095 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 1096 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1097 | BOOL CrossChannel; | ||
| 1098 | BOOL NormalizeVariance; | ||
| 1099 | FLOAT Epsilon; | ||
| 1100 | _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; | ||
| 1101 | }; | ||
| 1102 | |||
| 1103 | struct DML_LOCAL_RESPONSE_NORMALIZATION_OPERATOR_DESC | ||
| 1104 | { | ||
| 1105 | const DML_TENSOR_DESC* InputTensor; | ||
| 1106 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1107 | BOOL CrossChannel; | ||
| 1108 | UINT LocalSize; | ||
| 1109 | FLOAT Alpha; | ||
| 1110 | FLOAT Beta; | ||
| 1111 | FLOAT Bias; | ||
| 1112 | }; | ||
| 1113 | |||
| 1114 | struct DML_LP_NORMALIZATION_OPERATOR_DESC | ||
| 1115 | { | ||
| 1116 | const DML_TENSOR_DESC* InputTensor; | ||
| 1117 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1118 | UINT Axis; | ||
| 1119 | FLOAT Epsilon; | ||
| 1120 | UINT P; | ||
| 1121 | }; | ||
| 1122 | |||
| 1123 | struct DML_RNN_OPERATOR_DESC | ||
| 1124 | { | ||
| 1125 | const DML_TENSOR_DESC* InputTensor; | ||
| 1126 | const DML_TENSOR_DESC* WeightTensor; | ||
| 1127 | const DML_TENSOR_DESC* RecurrenceTensor; | ||
| 1128 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 1129 | _Maybenull_ const DML_TENSOR_DESC* HiddenInitTensor; | ||
| 1130 | _Maybenull_ const DML_TENSOR_DESC* SequenceLengthsTensor; | ||
| 1131 | _Maybenull_ const DML_TENSOR_DESC* OutputSequenceTensor; | ||
| 1132 | _Maybenull_ const DML_TENSOR_DESC* OutputSingleTensor; | ||
| 1133 | UINT ActivationDescCount; | ||
| 1134 | _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC* ActivationDescs; | ||
| 1135 | DML_RECURRENT_NETWORK_DIRECTION Direction; | ||
| 1136 | }; | ||
| 1137 | |||
| 1138 | struct DML_LSTM_OPERATOR_DESC | ||
| 1139 | { | ||
| 1140 | const DML_TENSOR_DESC* InputTensor; | ||
| 1141 | const DML_TENSOR_DESC* WeightTensor; | ||
| 1142 | const DML_TENSOR_DESC* RecurrenceTensor; | ||
| 1143 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 1144 | _Maybenull_ const DML_TENSOR_DESC* HiddenInitTensor; | ||
| 1145 | _Maybenull_ const DML_TENSOR_DESC* CellMemInitTensor; | ||
| 1146 | _Maybenull_ const DML_TENSOR_DESC* SequenceLengthsTensor; | ||
| 1147 | _Maybenull_ const DML_TENSOR_DESC* PeepholeTensor; | ||
| 1148 | _Maybenull_ const DML_TENSOR_DESC* OutputSequenceTensor; | ||
| 1149 | _Maybenull_ const DML_TENSOR_DESC* OutputSingleTensor; | ||
| 1150 | _Maybenull_ const DML_TENSOR_DESC* OutputCellSingleTensor; | ||
| 1151 | UINT ActivationDescCount; | ||
| 1152 | _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC* ActivationDescs; | ||
| 1153 | DML_RECURRENT_NETWORK_DIRECTION Direction; | ||
| 1154 | float ClipThreshold; | ||
| 1155 | BOOL UseClipThreshold; | ||
| 1156 | BOOL CoupleInputForget; | ||
| 1157 | }; | ||
| 1158 | |||
| 1159 | struct DML_GRU_OPERATOR_DESC | ||
| 1160 | { | ||
| 1161 | const DML_TENSOR_DESC* InputTensor; | ||
| 1162 | const DML_TENSOR_DESC* WeightTensor; | ||
| 1163 | const DML_TENSOR_DESC* RecurrenceTensor; | ||
| 1164 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 1165 | _Maybenull_ const DML_TENSOR_DESC* HiddenInitTensor; | ||
| 1166 | _Maybenull_ const DML_TENSOR_DESC* SequenceLengthsTensor; | ||
| 1167 | _Maybenull_ const DML_TENSOR_DESC* OutputSequenceTensor; | ||
| 1168 | _Maybenull_ const DML_TENSOR_DESC* OutputSingleTensor; | ||
| 1169 | UINT ActivationDescCount; | ||
| 1170 | _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC* ActivationDescs; | ||
| 1171 | DML_RECURRENT_NETWORK_DIRECTION Direction; | ||
| 1172 | BOOL LinearBeforeReset; | ||
| 1173 | }; | ||
| 1174 | |||
| 1175 | #if DML_TARGET_VERSION >= 0x2000 | ||
| 1176 | |||
| 1177 | struct DML_ELEMENT_WISE_SIGN_OPERATOR_DESC | ||
| 1178 | { | ||
| 1179 | const DML_TENSOR_DESC* InputTensor; | ||
| 1180 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1181 | }; | ||
| 1182 | |||
| 1183 | struct DML_ELEMENT_WISE_IS_NAN_OPERATOR_DESC | ||
| 1184 | { | ||
| 1185 | const DML_TENSOR_DESC* InputTensor; | ||
| 1186 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1187 | }; | ||
| 1188 | |||
| 1189 | struct DML_ELEMENT_WISE_ERF_OPERATOR_DESC | ||
| 1190 | { | ||
| 1191 | const DML_TENSOR_DESC* InputTensor; | ||
| 1192 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1193 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 1194 | }; | ||
| 1195 | |||
| 1196 | struct DML_ELEMENT_WISE_SINH_OPERATOR_DESC | ||
| 1197 | { | ||
| 1198 | const DML_TENSOR_DESC* InputTensor; | ||
| 1199 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1200 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 1201 | }; | ||
| 1202 | |||
| 1203 | struct DML_ELEMENT_WISE_COSH_OPERATOR_DESC | ||
| 1204 | { | ||
| 1205 | const DML_TENSOR_DESC* InputTensor; | ||
| 1206 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1207 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 1208 | }; | ||
| 1209 | |||
| 1210 | struct DML_ELEMENT_WISE_TANH_OPERATOR_DESC | ||
| 1211 | { | ||
| 1212 | const DML_TENSOR_DESC* InputTensor; | ||
| 1213 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1214 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 1215 | }; | ||
| 1216 | |||
| 1217 | struct DML_ELEMENT_WISE_ASINH_OPERATOR_DESC | ||
| 1218 | { | ||
| 1219 | const DML_TENSOR_DESC* InputTensor; | ||
| 1220 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1221 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 1222 | }; | ||
| 1223 | |||
| 1224 | struct DML_ELEMENT_WISE_ACOSH_OPERATOR_DESC | ||
| 1225 | { | ||
| 1226 | const DML_TENSOR_DESC* InputTensor; | ||
| 1227 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1228 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 1229 | }; | ||
| 1230 | |||
| 1231 | struct DML_ELEMENT_WISE_ATANH_OPERATOR_DESC | ||
| 1232 | { | ||
| 1233 | const DML_TENSOR_DESC* InputTensor; | ||
| 1234 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1235 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 1236 | }; | ||
| 1237 | |||
| 1238 | struct DML_ELEMENT_WISE_IF_OPERATOR_DESC | ||
| 1239 | { | ||
| 1240 | const DML_TENSOR_DESC* ConditionTensor; | ||
| 1241 | const DML_TENSOR_DESC* ATensor; | ||
| 1242 | const DML_TENSOR_DESC* BTensor; | ||
| 1243 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1244 | }; | ||
| 1245 | |||
| 1246 | struct DML_ACTIVATION_SHRINK_OPERATOR_DESC | ||
| 1247 | { | ||
| 1248 | const DML_TENSOR_DESC* InputTensor; | ||
| 1249 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1250 | FLOAT Bias; | ||
| 1251 | FLOAT Threshold; | ||
| 1252 | }; | ||
| 1253 | |||
| 1254 | struct DML_MAX_POOLING1_OPERATOR_DESC | ||
| 1255 | { | ||
| 1256 | const DML_TENSOR_DESC* InputTensor; | ||
| 1257 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1258 | _Maybenull_ const DML_TENSOR_DESC* OutputIndicesTensor; | ||
| 1259 | UINT DimensionCount; | ||
| 1260 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 1261 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 1262 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 1263 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 1264 | }; | ||
| 1265 | |||
| 1266 | struct DML_MAX_UNPOOLING_OPERATOR_DESC | ||
| 1267 | { | ||
| 1268 | const DML_TENSOR_DESC* InputTensor; | ||
| 1269 | const DML_TENSOR_DESC* IndicesTensor; | ||
| 1270 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1271 | }; | ||
| 1272 | |||
| 1273 | struct DML_DIAGONAL_MATRIX_OPERATOR_DESC | ||
| 1274 | { | ||
| 1275 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1276 | INT Offset; | ||
| 1277 | FLOAT Value; | ||
| 1278 | }; | ||
| 1279 | |||
| 1280 | struct DML_SCATTER_OPERATOR_DESC | ||
| 1281 | { | ||
| 1282 | const DML_TENSOR_DESC* InputTensor; | ||
| 1283 | const DML_TENSOR_DESC* IndicesTensor; | ||
| 1284 | const DML_TENSOR_DESC* UpdatesTensor; | ||
| 1285 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1286 | UINT Axis; | ||
| 1287 | }; | ||
| 1288 | |||
| 1289 | struct DML_ONE_HOT_OPERATOR_DESC | ||
| 1290 | { | ||
| 1291 | const DML_TENSOR_DESC* IndicesTensor; | ||
| 1292 | const DML_TENSOR_DESC* ValuesTensor; | ||
| 1293 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1294 | UINT Axis; | ||
| 1295 | }; | ||
| 1296 | |||
| 1297 | struct DML_RESAMPLE_OPERATOR_DESC | ||
| 1298 | { | ||
| 1299 | const DML_TENSOR_DESC* InputTensor; | ||
| 1300 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1301 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 1302 | UINT ScaleCount; | ||
| 1303 | _Field_size_(ScaleCount) const FLOAT* Scales; | ||
| 1304 | }; | ||
| 1305 | |||
| 1306 | #endif // DML_TARGET_VERSION >= 0x2000 | ||
| 1307 | |||
| 1308 | #if DML_TARGET_VERSION >= 0x2100 | ||
| 1309 | |||
| 1310 | struct DML_ELEMENT_WISE_BIT_SHIFT_LEFT_OPERATOR_DESC | ||
| 1311 | { | ||
| 1312 | const DML_TENSOR_DESC* ATensor; | ||
| 1313 | const DML_TENSOR_DESC* BTensor; | ||
| 1314 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1315 | }; | ||
| 1316 | |||
| 1317 | struct DML_ELEMENT_WISE_BIT_SHIFT_RIGHT_OPERATOR_DESC | ||
| 1318 | { | ||
| 1319 | const DML_TENSOR_DESC* ATensor; | ||
| 1320 | const DML_TENSOR_DESC* BTensor; | ||
| 1321 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1322 | }; | ||
| 1323 | |||
| 1324 | struct DML_ELEMENT_WISE_ROUND_OPERATOR_DESC | ||
| 1325 | { | ||
| 1326 | const DML_TENSOR_DESC* InputTensor; | ||
| 1327 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1328 | DML_ROUNDING_MODE RoundingMode; | ||
| 1329 | }; | ||
| 1330 | |||
| 1331 | struct DML_ELEMENT_WISE_IS_INFINITY_OPERATOR_DESC | ||
| 1332 | { | ||
| 1333 | const DML_TENSOR_DESC* InputTensor; | ||
| 1334 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1335 | DML_IS_INFINITY_MODE InfinityMode; | ||
| 1336 | }; | ||
| 1337 | |||
| 1338 | struct DML_ELEMENT_WISE_MODULUS_TRUNCATE_OPERATOR_DESC | ||
| 1339 | { | ||
| 1340 | const DML_TENSOR_DESC* ATensor; | ||
| 1341 | const DML_TENSOR_DESC* BTensor; | ||
| 1342 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1343 | }; | ||
| 1344 | |||
| 1345 | struct DML_ELEMENT_WISE_MODULUS_FLOOR_OPERATOR_DESC | ||
| 1346 | { | ||
| 1347 | const DML_TENSOR_DESC* ATensor; | ||
| 1348 | const DML_TENSOR_DESC* BTensor; | ||
| 1349 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1350 | }; | ||
| 1351 | |||
| 1352 | struct DML_FILL_VALUE_CONSTANT_OPERATOR_DESC | ||
| 1353 | { | ||
| 1354 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1355 | DML_TENSOR_DATA_TYPE ValueDataType; | ||
| 1356 | DML_SCALAR_UNION Value; | ||
| 1357 | }; | ||
| 1358 | |||
| 1359 | struct DML_FILL_VALUE_SEQUENCE_OPERATOR_DESC | ||
| 1360 | { | ||
| 1361 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1362 | DML_TENSOR_DATA_TYPE ValueDataType; | ||
| 1363 | DML_SCALAR_UNION ValueStart; | ||
| 1364 | DML_SCALAR_UNION ValueDelta; | ||
| 1365 | }; | ||
| 1366 | |||
| 1367 | struct DML_CUMULATIVE_SUMMATION_OPERATOR_DESC | ||
| 1368 | { | ||
| 1369 | const DML_TENSOR_DESC* InputTensor; | ||
| 1370 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1371 | UINT Axis; | ||
| 1372 | DML_AXIS_DIRECTION AxisDirection; | ||
| 1373 | BOOL HasExclusiveSum; | ||
| 1374 | }; | ||
| 1375 | |||
| 1376 | struct DML_REVERSE_SUBSEQUENCES_OPERATOR_DESC | ||
| 1377 | { | ||
| 1378 | const DML_TENSOR_DESC* InputTensor; | ||
| 1379 | const DML_TENSOR_DESC* SequenceLengthsTensor; | ||
| 1380 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1381 | UINT Axis; | ||
| 1382 | }; | ||
| 1383 | |||
| 1384 | struct DML_GATHER_ELEMENTS_OPERATOR_DESC | ||
| 1385 | { | ||
| 1386 | const DML_TENSOR_DESC* InputTensor; | ||
| 1387 | const DML_TENSOR_DESC* IndicesTensor; | ||
| 1388 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1389 | UINT Axis; | ||
| 1390 | }; | ||
| 1391 | |||
| 1392 | // Alias existing operator, symmetric with DML_GATHER_ELEMENTS_OPERATOR_DESC. | ||
| 1393 | using DML_SCATTER_ELEMENTS_OPERATOR_DESC = DML_SCATTER_OPERATOR_DESC; | ||
| 1394 | |||
| 1395 | struct DML_GATHER_ND_OPERATOR_DESC | ||
| 1396 | { | ||
| 1397 | const DML_TENSOR_DESC* InputTensor; | ||
| 1398 | const DML_TENSOR_DESC* IndicesTensor; | ||
| 1399 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1400 | UINT InputDimensionCount; | ||
| 1401 | UINT IndicesDimensionCount; | ||
| 1402 | }; | ||
| 1403 | |||
| 1404 | struct DML_SCATTER_ND_OPERATOR_DESC | ||
| 1405 | { | ||
| 1406 | const DML_TENSOR_DESC* InputTensor; | ||
| 1407 | const DML_TENSOR_DESC* IndicesTensor; | ||
| 1408 | const DML_TENSOR_DESC* UpdatesTensor; | ||
| 1409 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1410 | UINT InputDimensionCount; | ||
| 1411 | UINT IndicesDimensionCount; | ||
| 1412 | }; | ||
| 1413 | |||
| 1414 | struct DML_MAX_POOLING2_OPERATOR_DESC | ||
| 1415 | { | ||
| 1416 | const DML_TENSOR_DESC* InputTensor; | ||
| 1417 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1418 | _Maybenull_ const DML_TENSOR_DESC* OutputIndicesTensor; | ||
| 1419 | UINT DimensionCount; | ||
| 1420 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 1421 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 1422 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 1423 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 1424 | _Field_size_(DimensionCount) const UINT* Dilations; | ||
| 1425 | }; | ||
| 1426 | |||
| 1427 | struct DML_SLICE1_OPERATOR_DESC | ||
| 1428 | { | ||
| 1429 | const DML_TENSOR_DESC* InputTensor; | ||
| 1430 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1431 | UINT DimensionCount; | ||
| 1432 | _Field_size_(DimensionCount) const UINT* InputWindowOffsets; | ||
| 1433 | _Field_size_(DimensionCount) const UINT* InputWindowSizes; | ||
| 1434 | _Field_size_(DimensionCount) const INT* InputWindowStrides; | ||
| 1435 | }; | ||
| 1436 | |||
| 1437 | struct DML_TOP_K1_OPERATOR_DESC | ||
| 1438 | { | ||
| 1439 | const DML_TENSOR_DESC* InputTensor; | ||
| 1440 | const DML_TENSOR_DESC* OutputValueTensor; | ||
| 1441 | const DML_TENSOR_DESC* OutputIndexTensor; | ||
| 1442 | UINT Axis; | ||
| 1443 | UINT K; | ||
| 1444 | DML_AXIS_DIRECTION AxisDirection; | ||
| 1445 | }; | ||
| 1446 | |||
| 1447 | struct DML_DEPTH_TO_SPACE1_OPERATOR_DESC | ||
| 1448 | { | ||
| 1449 | const DML_TENSOR_DESC* InputTensor; | ||
| 1450 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1451 | UINT BlockSize; | ||
| 1452 | DML_DEPTH_SPACE_ORDER Order; | ||
| 1453 | }; | ||
| 1454 | |||
| 1455 | struct DML_SPACE_TO_DEPTH1_OPERATOR_DESC | ||
| 1456 | { | ||
| 1457 | const DML_TENSOR_DESC* InputTensor; | ||
| 1458 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1459 | UINT BlockSize; | ||
| 1460 | DML_DEPTH_SPACE_ORDER Order; | ||
| 1461 | }; | ||
| 1462 | |||
| 1463 | struct DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC | ||
| 1464 | { | ||
| 1465 | const DML_TENSOR_DESC* InputTensor; | ||
| 1466 | _Maybenull_ const DML_TENSOR_DESC* ScaleTensor; | ||
| 1467 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 1468 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1469 | UINT AxisCount; | ||
| 1470 | _Field_size_(AxisCount) const UINT* Axes; | ||
| 1471 | BOOL NormalizeVariance; | ||
| 1472 | FLOAT Epsilon; | ||
| 1473 | _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; | ||
| 1474 | }; | ||
| 1475 | |||
| 1476 | struct DML_RESAMPLE1_OPERATOR_DESC | ||
| 1477 | { | ||
| 1478 | const DML_TENSOR_DESC* InputTensor; | ||
| 1479 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1480 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 1481 | UINT DimensionCount; | ||
| 1482 | _Field_size_(DimensionCount) const FLOAT* Scales; | ||
| 1483 | _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; | ||
| 1484 | _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; | ||
| 1485 | }; | ||
| 1486 | |||
| 1487 | struct DML_MATRIX_MULTIPLY_INTEGER_OPERATOR_DESC | ||
| 1488 | { | ||
| 1489 | const DML_TENSOR_DESC* ATensor; | ||
| 1490 | _Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor; | ||
| 1491 | const DML_TENSOR_DESC* BTensor; | ||
| 1492 | _Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor; | ||
| 1493 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1494 | }; | ||
| 1495 | |||
| 1496 | struct DML_QUANTIZED_LINEAR_MATRIX_MULTIPLY_OPERATOR_DESC | ||
| 1497 | { | ||
| 1498 | const DML_TENSOR_DESC* ATensor; | ||
| 1499 | const DML_TENSOR_DESC* AScaleTensor; | ||
| 1500 | _Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor; | ||
| 1501 | const DML_TENSOR_DESC* BTensor; | ||
| 1502 | const DML_TENSOR_DESC* BScaleTensor; | ||
| 1503 | _Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor; | ||
| 1504 | const DML_TENSOR_DESC* OutputScaleTensor; | ||
| 1505 | _Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor; | ||
| 1506 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1507 | }; | ||
| 1508 | |||
| 1509 | struct DML_CONVOLUTION_INTEGER_OPERATOR_DESC | ||
| 1510 | { | ||
| 1511 | const DML_TENSOR_DESC* InputTensor; | ||
| 1512 | _Maybenull_ const DML_TENSOR_DESC* InputZeroPointTensor; | ||
| 1513 | const DML_TENSOR_DESC* FilterTensor; | ||
| 1514 | _Maybenull_ const DML_TENSOR_DESC* FilterZeroPointTensor; | ||
| 1515 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1516 | UINT DimensionCount; | ||
| 1517 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 1518 | _Field_size_(DimensionCount) const UINT* Dilations; | ||
| 1519 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 1520 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 1521 | UINT GroupCount; | ||
| 1522 | }; | ||
| 1523 | |||
| 1524 | struct DML_QUANTIZED_LINEAR_CONVOLUTION_OPERATOR_DESC | ||
| 1525 | { | ||
| 1526 | const DML_TENSOR_DESC* InputTensor; | ||
| 1527 | const DML_TENSOR_DESC* InputScaleTensor; | ||
| 1528 | _Maybenull_ const DML_TENSOR_DESC* InputZeroPointTensor; | ||
| 1529 | const DML_TENSOR_DESC* FilterTensor; | ||
| 1530 | const DML_TENSOR_DESC* FilterScaleTensor; | ||
| 1531 | _Maybenull_ const DML_TENSOR_DESC* FilterZeroPointTensor; | ||
| 1532 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 1533 | const DML_TENSOR_DESC* OutputScaleTensor; | ||
| 1534 | _Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor; | ||
| 1535 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1536 | UINT DimensionCount; | ||
| 1537 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 1538 | _Field_size_(DimensionCount) const UINT* Dilations; | ||
| 1539 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 1540 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 1541 | UINT GroupCount; | ||
| 1542 | }; | ||
| 1543 | |||
| 1544 | #endif // DML_TARGET_VERSION >= 0x2100 | ||
| 1545 | |||
| 1546 | #if DML_TARGET_VERSION >= 0x3000 | ||
| 1547 | |||
| 1548 | struct DML_ELEMENT_WISE_BIT_AND_OPERATOR_DESC | ||
| 1549 | { | ||
| 1550 | const DML_TENSOR_DESC* ATensor; | ||
| 1551 | const DML_TENSOR_DESC* BTensor; | ||
| 1552 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1553 | }; | ||
| 1554 | |||
| 1555 | struct DML_ELEMENT_WISE_BIT_OR_OPERATOR_DESC | ||
| 1556 | { | ||
| 1557 | const DML_TENSOR_DESC* ATensor; | ||
| 1558 | const DML_TENSOR_DESC* BTensor; | ||
| 1559 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1560 | }; | ||
| 1561 | |||
| 1562 | struct DML_ELEMENT_WISE_BIT_XOR_OPERATOR_DESC | ||
| 1563 | { | ||
| 1564 | const DML_TENSOR_DESC* ATensor; | ||
| 1565 | const DML_TENSOR_DESC* BTensor; | ||
| 1566 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1567 | }; | ||
| 1568 | |||
| 1569 | struct DML_ELEMENT_WISE_BIT_NOT_OPERATOR_DESC | ||
| 1570 | { | ||
| 1571 | const DML_TENSOR_DESC* InputTensor; | ||
| 1572 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1573 | }; | ||
| 1574 | |||
| 1575 | struct DML_ELEMENT_WISE_BIT_COUNT_OPERATOR_DESC | ||
| 1576 | { | ||
| 1577 | const DML_TENSOR_DESC* InputTensor; | ||
| 1578 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1579 | }; | ||
| 1580 | |||
| 1581 | struct DML_ELEMENT_WISE_LOGICAL_GREATER_THAN_OR_EQUAL_OPERATOR_DESC | ||
| 1582 | { | ||
| 1583 | const DML_TENSOR_DESC* ATensor; | ||
| 1584 | const DML_TENSOR_DESC* BTensor; | ||
| 1585 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1586 | }; | ||
| 1587 | |||
| 1588 | struct DML_ELEMENT_WISE_LOGICAL_LESS_THAN_OR_EQUAL_OPERATOR_DESC | ||
| 1589 | { | ||
| 1590 | const DML_TENSOR_DESC* ATensor; | ||
| 1591 | const DML_TENSOR_DESC* BTensor; | ||
| 1592 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1593 | }; | ||
| 1594 | |||
| 1595 | struct DML_ACTIVATION_CELU_OPERATOR_DESC | ||
| 1596 | { | ||
| 1597 | const DML_TENSOR_DESC* InputTensor; | ||
| 1598 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1599 | FLOAT Alpha; | ||
| 1600 | }; | ||
| 1601 | |||
| 1602 | struct DML_ACTIVATION_RELU_GRAD_OPERATOR_DESC | ||
| 1603 | { | ||
| 1604 | const DML_TENSOR_DESC* InputTensor; | ||
| 1605 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1606 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1607 | }; | ||
| 1608 | |||
| 1609 | struct DML_AVERAGE_POOLING_GRAD_OPERATOR_DESC | ||
| 1610 | { | ||
| 1611 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1612 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1613 | UINT DimensionCount; | ||
| 1614 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 1615 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 1616 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 1617 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 1618 | BOOL IncludePadding; | ||
| 1619 | }; | ||
| 1620 | |||
| 1621 | struct DML_MAX_POOLING_GRAD_OPERATOR_DESC | ||
| 1622 | { | ||
| 1623 | const DML_TENSOR_DESC* InputTensor; | ||
| 1624 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1625 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1626 | UINT DimensionCount; | ||
| 1627 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 1628 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 1629 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 1630 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 1631 | _Field_size_(DimensionCount) const UINT* Dilations; | ||
| 1632 | }; | ||
| 1633 | |||
| 1634 | struct DML_RANDOM_GENERATOR_OPERATOR_DESC | ||
| 1635 | { | ||
| 1636 | const DML_TENSOR_DESC* InputStateTensor; | ||
| 1637 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1638 | _Maybenull_ const DML_TENSOR_DESC* OutputStateTensor; | ||
| 1639 | DML_RANDOM_GENERATOR_TYPE Type; | ||
| 1640 | }; | ||
| 1641 | |||
| 1642 | struct DML_NONZERO_COORDINATES_OPERATOR_DESC | ||
| 1643 | { | ||
| 1644 | const DML_TENSOR_DESC* InputTensor; | ||
| 1645 | const DML_TENSOR_DESC* OutputCountTensor; | ||
| 1646 | const DML_TENSOR_DESC* OutputCoordinatesTensor; | ||
| 1647 | }; | ||
| 1648 | |||
| 1649 | struct DML_RESAMPLE_GRAD_OPERATOR_DESC | ||
| 1650 | { | ||
| 1651 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1652 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1653 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 1654 | UINT DimensionCount; | ||
| 1655 | _Field_size_(DimensionCount) const FLOAT* Scales; | ||
| 1656 | _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; | ||
| 1657 | _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; | ||
| 1658 | }; | ||
| 1659 | |||
| 1660 | struct DML_SLICE_GRAD_OPERATOR_DESC | ||
| 1661 | { | ||
| 1662 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1663 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1664 | UINT DimensionCount; | ||
| 1665 | _Field_size_(DimensionCount) const UINT* InputWindowOffsets; | ||
| 1666 | _Field_size_(DimensionCount) const UINT* InputWindowSizes; | ||
| 1667 | _Field_size_(DimensionCount) const INT* InputWindowStrides; | ||
| 1668 | }; | ||
| 1669 | |||
| 1670 | struct DML_ADAM_OPTIMIZER_OPERATOR_DESC | ||
| 1671 | { | ||
| 1672 | const DML_TENSOR_DESC* InputParametersTensor; | ||
| 1673 | const DML_TENSOR_DESC* InputFirstMomentTensor; | ||
| 1674 | const DML_TENSOR_DESC* InputSecondMomentTensor; | ||
| 1675 | const DML_TENSOR_DESC* GradientTensor; | ||
| 1676 | const DML_TENSOR_DESC* TrainingStepTensor; | ||
| 1677 | const DML_TENSOR_DESC* OutputParametersTensor; | ||
| 1678 | const DML_TENSOR_DESC* OutputFirstMomentTensor; | ||
| 1679 | const DML_TENSOR_DESC* OutputSecondMomentTensor; | ||
| 1680 | FLOAT LearningRate; | ||
| 1681 | FLOAT Beta1; | ||
| 1682 | FLOAT Beta2; | ||
| 1683 | FLOAT Epsilon; | ||
| 1684 | }; | ||
| 1685 | |||
| 1686 | struct DML_ARGMIN_OPERATOR_DESC | ||
| 1687 | { | ||
| 1688 | const DML_TENSOR_DESC* InputTensor; | ||
| 1689 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1690 | UINT AxisCount; | ||
| 1691 | _Field_size_(AxisCount) const UINT* Axes; | ||
| 1692 | DML_AXIS_DIRECTION AxisDirection; | ||
| 1693 | }; | ||
| 1694 | |||
| 1695 | struct DML_ARGMAX_OPERATOR_DESC | ||
| 1696 | { | ||
| 1697 | const DML_TENSOR_DESC* InputTensor; | ||
| 1698 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1699 | UINT AxisCount; | ||
| 1700 | _Field_size_(AxisCount) const UINT* Axes; | ||
| 1701 | DML_AXIS_DIRECTION AxisDirection; | ||
| 1702 | }; | ||
| 1703 | |||
| 1704 | struct DML_ROI_ALIGN_OPERATOR_DESC | ||
| 1705 | { | ||
| 1706 | const DML_TENSOR_DESC* InputTensor; | ||
| 1707 | const DML_TENSOR_DESC* ROITensor; | ||
| 1708 | const DML_TENSOR_DESC* BatchIndicesTensor; | ||
| 1709 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1710 | DML_REDUCE_FUNCTION ReductionFunction; | ||
| 1711 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 1712 | FLOAT SpatialScaleX; | ||
| 1713 | FLOAT SpatialScaleY; | ||
| 1714 | FLOAT OutOfBoundsInputValue; | ||
| 1715 | UINT MinimumSamplesPerOutput; | ||
| 1716 | UINT MaximumSamplesPerOutput; | ||
| 1717 | }; | ||
| 1718 | |||
| 1719 | struct DML_GATHER_ND1_OPERATOR_DESC | ||
| 1720 | { | ||
| 1721 | const DML_TENSOR_DESC* InputTensor; | ||
| 1722 | const DML_TENSOR_DESC* IndicesTensor; | ||
| 1723 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1724 | UINT InputDimensionCount; | ||
| 1725 | UINT IndicesDimensionCount; | ||
| 1726 | UINT BatchDimensionCount; | ||
| 1727 | }; | ||
| 1728 | |||
| 1729 | #endif // DML_TARGET_VERSION >= 0x3000 | ||
| 1730 | |||
| 1731 | #if DML_TARGET_VERSION >= 0x3100 | ||
| 1732 | |||
| 1733 | struct DML_ELEMENT_WISE_ATAN_YX_OPERATOR_DESC | ||
| 1734 | { | ||
| 1735 | const DML_TENSOR_DESC* ATensor; | ||
| 1736 | const DML_TENSOR_DESC* BTensor; | ||
| 1737 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1738 | }; | ||
| 1739 | |||
| 1740 | struct DML_ELEMENT_WISE_CLIP_GRAD_OPERATOR_DESC | ||
| 1741 | { | ||
| 1742 | const DML_TENSOR_DESC* InputTensor; | ||
| 1743 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1744 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1745 | FLOAT Min; | ||
| 1746 | FLOAT Max; | ||
| 1747 | }; | ||
| 1748 | |||
| 1749 | struct DML_ELEMENT_WISE_DIFFERENCE_SQUARE_OPERATOR_DESC | ||
| 1750 | { | ||
| 1751 | const DML_TENSOR_DESC* ATensor; | ||
| 1752 | const DML_TENSOR_DESC* BTensor; | ||
| 1753 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1754 | }; | ||
| 1755 | |||
| 1756 | struct DML_LOCAL_RESPONSE_NORMALIZATION_GRAD_OPERATOR_DESC | ||
| 1757 | { | ||
| 1758 | const DML_TENSOR_DESC* InputTensor; | ||
| 1759 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1760 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1761 | BOOL CrossChannel; | ||
| 1762 | UINT LocalSize; | ||
| 1763 | FLOAT Alpha; | ||
| 1764 | FLOAT Beta; | ||
| 1765 | FLOAT Bias; | ||
| 1766 | }; | ||
| 1767 | |||
| 1768 | struct DML_CUMULATIVE_PRODUCT_OPERATOR_DESC | ||
| 1769 | { | ||
| 1770 | const DML_TENSOR_DESC* InputTensor; | ||
| 1771 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1772 | UINT Axis; | ||
| 1773 | DML_AXIS_DIRECTION AxisDirection; | ||
| 1774 | BOOL HasExclusiveProduct; | ||
| 1775 | }; | ||
| 1776 | |||
| 1777 | struct DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC | ||
| 1778 | { | ||
| 1779 | const DML_TENSOR_DESC* InputTensor; | ||
| 1780 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1781 | const DML_TENSOR_DESC* MeanTensor; | ||
| 1782 | const DML_TENSOR_DESC* VarianceTensor; | ||
| 1783 | const DML_TENSOR_DESC* ScaleTensor; | ||
| 1784 | |||
| 1785 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1786 | const DML_TENSOR_DESC* OutputScaleGradientTensor; | ||
| 1787 | const DML_TENSOR_DESC* OutputBiasGradientTensor; | ||
| 1788 | |||
| 1789 | FLOAT Epsilon; | ||
| 1790 | }; | ||
| 1791 | |||
| 1792 | #endif // DML_TARGET_VERSION >= 0x3100 | ||
| 1793 | |||
| 1794 | #if DML_TARGET_VERSION >= 0x4000 | ||
| 1795 | struct DML_ELEMENT_WISE_QUANTIZED_LINEAR_ADD_OPERATOR_DESC | ||
| 1796 | { | ||
| 1797 | const DML_TENSOR_DESC* ATensor; | ||
| 1798 | const DML_TENSOR_DESC* AScaleTensor; | ||
| 1799 | _Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor; | ||
| 1800 | const DML_TENSOR_DESC* BTensor; | ||
| 1801 | const DML_TENSOR_DESC* BScaleTensor; | ||
| 1802 | _Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor; | ||
| 1803 | const DML_TENSOR_DESC* OutputScaleTensor; // This is an input tensor | ||
| 1804 | _Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor; // This is an input tensor | ||
| 1805 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1806 | }; | ||
| 1807 | |||
| 1808 | struct DML_DYNAMIC_QUANTIZE_LINEAR_OPERATOR_DESC | ||
| 1809 | { | ||
| 1810 | const DML_TENSOR_DESC* InputTensor; | ||
| 1811 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1812 | const DML_TENSOR_DESC* OutputScaleTensor; // This is an output tensor | ||
| 1813 | const DML_TENSOR_DESC* OutputZeroPointTensor; // This is an output tensor | ||
| 1814 | }; | ||
| 1815 | |||
| 1816 | struct DML_ROI_ALIGN1_OPERATOR_DESC | ||
| 1817 | { | ||
| 1818 | const DML_TENSOR_DESC* InputTensor; | ||
| 1819 | const DML_TENSOR_DESC* ROITensor; | ||
| 1820 | const DML_TENSOR_DESC* BatchIndicesTensor; | ||
| 1821 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1822 | DML_REDUCE_FUNCTION ReductionFunction; | ||
| 1823 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 1824 | FLOAT SpatialScaleX; | ||
| 1825 | FLOAT SpatialScaleY; | ||
| 1826 | FLOAT InputPixelOffset; | ||
| 1827 | FLOAT OutputPixelOffset; | ||
| 1828 | FLOAT OutOfBoundsInputValue; | ||
| 1829 | UINT MinimumSamplesPerOutput; | ||
| 1830 | UINT MaximumSamplesPerOutput; | ||
| 1831 | BOOL AlignRegionsToCorners; | ||
| 1832 | }; | ||
| 1833 | |||
| 1834 | #endif // DML_TARGET_VERSION >= 0x4000 | ||
| 1835 | |||
| 1836 | #if DML_TARGET_VERSION >= 0x4100 | ||
| 1837 | |||
| 1838 | struct DML_ROI_ALIGN_GRAD_OPERATOR_DESC | ||
| 1839 | { | ||
| 1840 | _Maybenull_ const DML_TENSOR_DESC* InputTensor; | ||
| 1841 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1842 | const DML_TENSOR_DESC* ROITensor; | ||
| 1843 | const DML_TENSOR_DESC* BatchIndicesTensor; | ||
| 1844 | _Maybenull_ const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1845 | _Maybenull_ const DML_TENSOR_DESC* OutputROIGradientTensor; | ||
| 1846 | DML_REDUCE_FUNCTION ReductionFunction; | ||
| 1847 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 1848 | FLOAT SpatialScaleX; | ||
| 1849 | FLOAT SpatialScaleY; | ||
| 1850 | FLOAT InputPixelOffset; | ||
| 1851 | FLOAT OutputPixelOffset; | ||
| 1852 | UINT MinimumSamplesPerOutput; | ||
| 1853 | UINT MaximumSamplesPerOutput; | ||
| 1854 | BOOL AlignRegionsToCorners; | ||
| 1855 | }; | ||
| 1856 | |||
| 1857 | struct DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC | ||
| 1858 | { | ||
| 1859 | const DML_TENSOR_DESC* InputTensor; | ||
| 1860 | const DML_TENSOR_DESC* ScaleTensor; | ||
| 1861 | const DML_TENSOR_DESC* BiasTensor; | ||
| 1862 | _Maybenull_ const DML_TENSOR_DESC* FusedAddTensor; | ||
| 1863 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1864 | const DML_TENSOR_DESC* OutputMeanTensor; | ||
| 1865 | const DML_TENSOR_DESC* OutputVarianceTensor; | ||
| 1866 | FLOAT Epsilon; | ||
| 1867 | _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; | ||
| 1868 | }; | ||
| 1869 | |||
| 1870 | struct DML_BATCH_NORMALIZATION_TRAINING_GRAD_OPERATOR_DESC | ||
| 1871 | { | ||
| 1872 | const DML_TENSOR_DESC* InputTensor; | ||
| 1873 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1874 | const DML_TENSOR_DESC* MeanTensor; | ||
| 1875 | const DML_TENSOR_DESC* VarianceTensor; | ||
| 1876 | const DML_TENSOR_DESC* ScaleTensor; | ||
| 1877 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1878 | const DML_TENSOR_DESC* OutputScaleGradientTensor; | ||
| 1879 | const DML_TENSOR_DESC* OutputBiasGradientTensor; | ||
| 1880 | FLOAT Epsilon; | ||
| 1881 | }; | ||
| 1882 | |||
| 1883 | #endif // DML_TARGET_VERSION >= 0x4100 | ||
| 1884 | |||
| 1885 | #if DML_TARGET_VERSION >= 0x5000 | ||
| 1886 | |||
| 1887 | struct DML_ELEMENT_WISE_CLIP1_OPERATOR_DESC | ||
| 1888 | { | ||
| 1889 | const DML_TENSOR_DESC* InputTensor; | ||
| 1890 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1891 | _Maybenull_ const DML_SCALE_BIAS* ScaleBias; | ||
| 1892 | DML_TENSOR_DATA_TYPE MinMaxDataType; | ||
| 1893 | DML_SCALAR_UNION Min; | ||
| 1894 | DML_SCALAR_UNION Max; | ||
| 1895 | }; | ||
| 1896 | |||
| 1897 | struct DML_ELEMENT_WISE_CLIP_GRAD1_OPERATOR_DESC | ||
| 1898 | { | ||
| 1899 | const DML_TENSOR_DESC* InputTensor; | ||
| 1900 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1901 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1902 | DML_TENSOR_DATA_TYPE MinMaxDataType; | ||
| 1903 | DML_SCALAR_UNION Min; | ||
| 1904 | DML_SCALAR_UNION Max; | ||
| 1905 | }; | ||
| 1906 | |||
| 1907 | struct DML_PADDING1_OPERATOR_DESC | ||
| 1908 | { | ||
| 1909 | const DML_TENSOR_DESC* InputTensor; | ||
| 1910 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1911 | DML_PADDING_MODE PaddingMode; | ||
| 1912 | DML_TENSOR_DATA_TYPE PaddingValueDataType; | ||
| 1913 | DML_SCALAR_UNION PaddingValue; | ||
| 1914 | UINT DimensionCount; | ||
| 1915 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 1916 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 1917 | }; | ||
| 1918 | |||
| 1919 | struct DML_ELEMENT_WISE_NEGATE_OPERATOR_DESC | ||
| 1920 | { | ||
| 1921 | const DML_TENSOR_DESC* InputTensor; | ||
| 1922 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1923 | }; | ||
| 1924 | |||
| 1925 | #endif // DML_TARGET_VERSION >= 0x5000 | ||
| 1926 | |||
| 1927 | #if DML_TARGET_VERSION >= 0x5100 | ||
| 1928 | |||
| 1929 | struct DML_ACTIVATION_GELU_OPERATOR_DESC | ||
| 1930 | { | ||
| 1931 | const DML_TENSOR_DESC* InputTensor; | ||
| 1932 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1933 | }; | ||
| 1934 | |||
| 1935 | struct DML_ACTIVATION_SOFTMAX1_OPERATOR_DESC | ||
| 1936 | { | ||
| 1937 | const DML_TENSOR_DESC* InputTensor; | ||
| 1938 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1939 | UINT AxisCount; | ||
| 1940 | _Field_size_(AxisCount) const UINT* Axes; | ||
| 1941 | }; | ||
| 1942 | |||
| 1943 | struct DML_ACTIVATION_LOG_SOFTMAX1_OPERATOR_DESC | ||
| 1944 | { | ||
| 1945 | const DML_TENSOR_DESC* InputTensor; | ||
| 1946 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1947 | UINT AxisCount; | ||
| 1948 | _Field_size_(AxisCount) const UINT* Axes; | ||
| 1949 | }; | ||
| 1950 | |||
| 1951 | struct DML_ACTIVATION_HARDMAX1_OPERATOR_DESC | ||
| 1952 | { | ||
| 1953 | const DML_TENSOR_DESC* InputTensor; | ||
| 1954 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1955 | UINT AxisCount; | ||
| 1956 | _Field_size_(AxisCount) const UINT* Axes; | ||
| 1957 | }; | ||
| 1958 | |||
| 1959 | struct DML_RESAMPLE2_OPERATOR_DESC | ||
| 1960 | { | ||
| 1961 | const DML_TENSOR_DESC* InputTensor; | ||
| 1962 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1963 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 1964 | DML_AXIS_DIRECTION RoundingDirection; | ||
| 1965 | UINT DimensionCount; | ||
| 1966 | _Field_size_(DimensionCount) const FLOAT* Scales; | ||
| 1967 | _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; | ||
| 1968 | _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; | ||
| 1969 | }; | ||
| 1970 | |||
| 1971 | struct DML_RESAMPLE_GRAD1_OPERATOR_DESC | ||
| 1972 | { | ||
| 1973 | const DML_TENSOR_DESC* InputGradientTensor; | ||
| 1974 | const DML_TENSOR_DESC* OutputGradientTensor; | ||
| 1975 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 1976 | DML_AXIS_DIRECTION RoundingDirection; | ||
| 1977 | UINT DimensionCount; | ||
| 1978 | _Field_size_(DimensionCount) const FLOAT* Scales; | ||
| 1979 | _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; | ||
| 1980 | _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; | ||
| 1981 | }; | ||
| 1982 | |||
| 1983 | struct DML_DIAGONAL_MATRIX1_OPERATOR_DESC | ||
| 1984 | { | ||
| 1985 | _Maybenull_ const DML_TENSOR_DESC* InputTensor; | ||
| 1986 | const DML_TENSOR_DESC* OutputTensor; | ||
| 1987 | DML_TENSOR_DATA_TYPE ValueDataType; | ||
| 1988 | DML_SCALAR_UNION Value; | ||
| 1989 | INT DiagonalFillBegin; | ||
| 1990 | INT DiagonalFillEnd; | ||
| 1991 | }; | ||
| 1992 | |||
| 1993 | #endif // DML_TARGET_VERSION >= 0x5100 | ||
| 1994 | |||
| 1995 | #if DML_TARGET_VERSION >= 0x6100 | ||
| 1996 | |||
| 1997 | struct DML_MULTIHEAD_ATTENTION_OPERATOR_DESC | ||
| 1998 | { | ||
| 1999 | _Maybenull_ const DML_TENSOR_DESC* QueryTensor; | ||
| 2000 | _Maybenull_ const DML_TENSOR_DESC* KeyTensor; | ||
| 2001 | _Maybenull_ const DML_TENSOR_DESC* ValueTensor; | ||
| 2002 | _Maybenull_ const DML_TENSOR_DESC* StackedQueryKeyTensor; | ||
| 2003 | _Maybenull_ const DML_TENSOR_DESC* StackedKeyValueTensor; | ||
| 2004 | _Maybenull_ const DML_TENSOR_DESC* StackedQueryKeyValueTensor; | ||
| 2005 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 2006 | _Maybenull_ const DML_TENSOR_DESC* MaskTensor; | ||
| 2007 | _Maybenull_ const DML_TENSOR_DESC* RelativePositionBiasTensor; | ||
| 2008 | _Maybenull_ const DML_TENSOR_DESC* PastKeyTensor; | ||
| 2009 | _Maybenull_ const DML_TENSOR_DESC* PastValueTensor; | ||
| 2010 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2011 | _Maybenull_ const DML_TENSOR_DESC* OutputPresentKeyTensor; | ||
| 2012 | _Maybenull_ const DML_TENSOR_DESC* OutputPresentValueTensor; | ||
| 2013 | FLOAT Scale; | ||
| 2014 | FLOAT MaskFilterValue; | ||
| 2015 | UINT HeadCount; | ||
| 2016 | DML_MULTIHEAD_ATTENTION_MASK_TYPE MaskType; | ||
| 2017 | }; | ||
| 2018 | |||
| 2019 | #endif // DML_TARGET_VERSION >= 0x6100 | ||
| 2020 | |||
| 2021 | #if DML_TARGET_VERSION >= 0x6200 | ||
| 2022 | |||
| 2023 | struct DML_LP_POOLING1_OPERATOR_DESC | ||
| 2024 | { | ||
| 2025 | const DML_TENSOR_DESC* InputTensor; | ||
| 2026 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2027 | UINT DimensionCount; | ||
| 2028 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 2029 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 2030 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 2031 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 2032 | _Field_size_(DimensionCount) const UINT* Dilations; | ||
| 2033 | UINT P; | ||
| 2034 | }; | ||
| 2035 | |||
| 2036 | struct DML_AVERAGE_POOLING1_OPERATOR_DESC | ||
| 2037 | { | ||
| 2038 | const DML_TENSOR_DESC* InputTensor; | ||
| 2039 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2040 | UINT DimensionCount; | ||
| 2041 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 2042 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 2043 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 2044 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 2045 | _Field_size_(DimensionCount) const UINT* Dilations; | ||
| 2046 | BOOL IncludePadding; | ||
| 2047 | }; | ||
| 2048 | |||
| 2049 | struct DML_ACTIVATION_SWISH_OPERATOR_DESC | ||
| 2050 | { | ||
| 2051 | const DML_TENSOR_DESC* InputTensor; | ||
| 2052 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2053 | FLOAT SigmoidInputScale; | ||
| 2054 | }; | ||
| 2055 | |||
| 2056 | struct DML_ACTIVATION_HARD_SWISH_OPERATOR_DESC | ||
| 2057 | { | ||
| 2058 | const DML_TENSOR_DESC* InputTensor; | ||
| 2059 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2060 | FLOAT Alpha; | ||
| 2061 | FLOAT Beta; | ||
| 2062 | }; | ||
| 2063 | |||
| 2064 | struct DML_QUANTIZED_LINEAR_AVERAGE_POOLING_OPERATOR_DESC | ||
| 2065 | { | ||
| 2066 | const DML_TENSOR_DESC* InputTensor; | ||
| 2067 | const DML_TENSOR_DESC* InputScaleTensor; | ||
| 2068 | _Maybenull_ const DML_TENSOR_DESC* InputZeroPointTensor; | ||
| 2069 | const DML_TENSOR_DESC* OutputScaleTensor; | ||
| 2070 | _Maybenull_ const DML_TENSOR_DESC* OutputZeroPointTensor; | ||
| 2071 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2072 | UINT DimensionCount; | ||
| 2073 | _Field_size_(DimensionCount) const UINT* Strides; | ||
| 2074 | _Field_size_(DimensionCount) const UINT* WindowSize; | ||
| 2075 | _Field_size_(DimensionCount) const UINT* StartPadding; | ||
| 2076 | _Field_size_(DimensionCount) const UINT* EndPadding; | ||
| 2077 | _Field_size_(DimensionCount) const UINT* Dilations; | ||
| 2078 | BOOL IncludePadding; | ||
| 2079 | }; | ||
| 2080 | |||
| 2081 | struct DML_MATRIX_MULTIPLY_INTEGER_TO_FLOAT_OPERATOR_DESC | ||
| 2082 | { | ||
| 2083 | const DML_TENSOR_DESC* ATensor; | ||
| 2084 | const DML_TENSOR_DESC* AScaleTensor; | ||
| 2085 | _Maybenull_ const DML_TENSOR_DESC* AZeroPointTensor; | ||
| 2086 | const DML_TENSOR_DESC* BTensor; | ||
| 2087 | const DML_TENSOR_DESC* BScaleTensor; | ||
| 2088 | _Maybenull_ const DML_TENSOR_DESC* BZeroPointTensor; | ||
| 2089 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 2090 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2091 | }; | ||
| 2092 | |||
| 2093 | #endif // DML_TARGET_VERSION >= 0x6200 | ||
| 2094 | |||
| 2095 | #if DML_TARGET_VERSION >= 0x6300 | ||
| 2096 | |||
| 2097 | struct DML_MEAN_VARIANCE_NORMALIZATION2_OPERATOR_DESC | ||
| 2098 | { | ||
| 2099 | const DML_TENSOR_DESC* InputTensor; | ||
| 2100 | _Maybenull_ const DML_TENSOR_DESC* ScaleTensor; | ||
| 2101 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 2102 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2103 | UINT AxisCount; | ||
| 2104 | _Field_size_(AxisCount) const UINT* Axes; | ||
| 2105 | BOOL UseMean; | ||
| 2106 | BOOL UseVariance; | ||
| 2107 | FLOAT Epsilon; | ||
| 2108 | _Maybenull_ const DML_OPERATOR_DESC* FusedActivation; | ||
| 2109 | }; | ||
| 2110 | |||
| 2111 | struct DML_MULTIHEAD_ATTENTION1_OPERATOR_DESC | ||
| 2112 | { | ||
| 2113 | _Maybenull_ const DML_TENSOR_DESC* QueryTensor; | ||
| 2114 | _Maybenull_ const DML_TENSOR_DESC* KeyTensor; | ||
| 2115 | _Maybenull_ const DML_TENSOR_DESC* ValueTensor; | ||
| 2116 | _Maybenull_ const DML_TENSOR_DESC* StackedQueryKeyTensor; | ||
| 2117 | _Maybenull_ const DML_TENSOR_DESC* StackedKeyValueTensor; | ||
| 2118 | _Maybenull_ const DML_TENSOR_DESC* StackedQueryKeyValueTensor; | ||
| 2119 | _Maybenull_ const DML_TENSOR_DESC* BiasTensor; | ||
| 2120 | _Maybenull_ const DML_TENSOR_DESC* MaskTensor; | ||
| 2121 | _Maybenull_ const DML_TENSOR_DESC* RelativePositionBiasTensor; | ||
| 2122 | _Maybenull_ const DML_TENSOR_DESC* PastKeyTensor; | ||
| 2123 | _Maybenull_ const DML_TENSOR_DESC* PastValueTensor; | ||
| 2124 | _Maybenull_ const DML_TENSOR_DESC* PastSequenceLengthsTensor; | ||
| 2125 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2126 | _Maybenull_ const DML_TENSOR_DESC* OutputPresentKeyTensor; | ||
| 2127 | _Maybenull_ const DML_TENSOR_DESC* OutputPresentValueTensor; | ||
| 2128 | FLOAT Scale; | ||
| 2129 | FLOAT MaskFilterValue; | ||
| 2130 | UINT QueryHeadCount; | ||
| 2131 | UINT KeyValueHeadCount; | ||
| 2132 | DML_MULTIHEAD_ATTENTION_MASK_TYPE MaskType; | ||
| 2133 | }; | ||
| 2134 | |||
| 2135 | struct DML_QUANTIZE_OPERATOR_DESC | ||
| 2136 | { | ||
| 2137 | const DML_TENSOR_DESC* InputTensor; | ||
| 2138 | DML_QUANTIZATION_TYPE QuantizationType; | ||
| 2139 | UINT QuantizationTensorCount; | ||
| 2140 | _Field_size_(QuantizationTensorCount) const DML_TENSOR_DESC* QuantizationTensors; | ||
| 2141 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2142 | }; | ||
| 2143 | |||
| 2144 | struct DML_DEQUANTIZE_OPERATOR_DESC | ||
| 2145 | { | ||
| 2146 | const DML_TENSOR_DESC* InputTensor; | ||
| 2147 | DML_QUANTIZATION_TYPE QuantizationType; | ||
| 2148 | UINT QuantizationTensorCount; | ||
| 2149 | _Field_size_(QuantizationTensorCount) const DML_TENSOR_DESC* QuantizationTensors; | ||
| 2150 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2151 | }; | ||
| 2152 | |||
| 2153 | #endif // DML_TARGET_VERSION >= 0x6300 | ||
| 2154 | |||
| 2155 | #if DML_TARGET_VERSION >= 0x6400 | ||
| 2156 | |||
| 2157 | struct DML_RESAMPLE3_OPERATOR_DESC | ||
| 2158 | { | ||
| 2159 | const DML_TENSOR_DESC* InputTensor; | ||
| 2160 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2161 | DML_INTERPOLATION_MODE InterpolationMode; | ||
| 2162 | DML_AXIS_DIRECTION RoundingDirection; | ||
| 2163 | UINT DimensionCount; | ||
| 2164 | _Field_size_(DimensionCount) const FLOAT* Scales; | ||
| 2165 | _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets; | ||
| 2166 | _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets; | ||
| 2167 | BOOL Antialiased; | ||
| 2168 | }; | ||
| 2169 | |||
| 2170 | struct DML_FOLD_OPERATOR_DESC | ||
| 2171 | { | ||
| 2172 | const DML_TENSOR_DESC* InputTensor; | ||
| 2173 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2174 | UINT DimensionCount; | ||
| 2175 | _Field_size_(DimensionCount) const UINT* WindowSizes; // Size of the extracted patch | ||
| 2176 | _Field_size_(DimensionCount) const UINT* Strides; // Step size of the extracted patches | ||
| 2177 | _Field_size_(DimensionCount) const UINT* Dilations; // Dialations of the extracted patch | ||
| 2178 | _Field_size_(DimensionCount) const UINT* StartPadding; // Start padding of the "source tensor" | ||
| 2179 | _Field_size_(DimensionCount) const UINT* EndPadding; // End padding of the "source tensor" | ||
| 2180 | }; | ||
| 2181 | |||
| 2182 | struct DML_UNFOLD_OPERATOR_DESC | ||
| 2183 | { | ||
| 2184 | const DML_TENSOR_DESC* InputTensor; | ||
| 2185 | const DML_TENSOR_DESC* OutputTensor; | ||
| 2186 | UINT DimensionCount; | ||
| 2187 | _Field_size_(DimensionCount) const UINT* WindowSizes; // Size of the extracted patch | ||
| 2188 | _Field_size_(DimensionCount) const UINT* Strides; // Step size of the extracted patches | ||
| 2189 | _Field_size_(DimensionCount) const UINT* Dilations; // Dialations of the extracted patch | ||
| 2190 | _Field_size_(DimensionCount) const UINT* StartPadding; // Start padding of the "source tensor" | ||
| 2191 | _Field_size_(DimensionCount) const UINT* EndPadding; // End padding of the "source tensor" | ||
| 2192 | }; | ||
| 2193 | |||
| 2194 | #endif // DML_TARGET_VERSION >= 0x6400 | ||
| 2195 | |||
| 2196 | // =================================================================================================================== | ||
| 2197 | // DML feature support queries | ||
| 2198 | // =================================================================================================================== | ||
| 2199 | |||
| 2200 | #if DML_TARGET_VERSION >= 0x2000 | ||
| 2201 | |||
| 2202 | enum DML_FEATURE_LEVEL | ||
| 2203 | { | ||
| 2204 | DML_FEATURE_LEVEL_1_0 = 0x1000, | ||
| 2205 | DML_FEATURE_LEVEL_2_0 = 0x2000, | ||
| 2206 | DML_FEATURE_LEVEL_2_1 = 0x2100, | ||
| 2207 | DML_FEATURE_LEVEL_3_0 = 0x3000, | ||
| 2208 | DML_FEATURE_LEVEL_3_1 = 0x3100, | ||
| 2209 | DML_FEATURE_LEVEL_4_0 = 0x4000, | ||
| 2210 | DML_FEATURE_LEVEL_4_1 = 0x4100, | ||
| 2211 | DML_FEATURE_LEVEL_5_0 = 0x5000, | ||
| 2212 | DML_FEATURE_LEVEL_5_1 = 0x5100, | ||
| 2213 | DML_FEATURE_LEVEL_5_2 = 0x5200, | ||
| 2214 | DML_FEATURE_LEVEL_6_0 = 0x6000, | ||
| 2215 | DML_FEATURE_LEVEL_6_1 = 0x6100, | ||
| 2216 | DML_FEATURE_LEVEL_6_2 = 0x6200, | ||
| 2217 | DML_FEATURE_LEVEL_6_3 = 0x6300, | ||
| 2218 | DML_FEATURE_LEVEL_6_4 = 0x6400, | ||
| 2219 | }; | ||
| 2220 | |||
| 2221 | #endif // DML_TARGET_VERSION >= 0x2000 | ||
| 2222 | |||
| 2223 | enum DML_FEATURE | ||
| 2224 | { | ||
| 2225 | DML_FEATURE_TENSOR_DATA_TYPE_SUPPORT, | ||
| 2226 | |||
| 2227 | #if DML_TARGET_VERSION >= 0x2000 | ||
| 2228 | DML_FEATURE_FEATURE_LEVELS, | ||
| 2229 | #endif // DML_TARGET_VERSION >= 0x2000 | ||
| 2230 | }; | ||
| 2231 | |||
| 2232 | struct DML_FEATURE_QUERY_TENSOR_DATA_TYPE_SUPPORT | ||
| 2233 | { | ||
| 2234 | DML_TENSOR_DATA_TYPE DataType; | ||
| 2235 | }; | ||
| 2236 | |||
| 2237 | struct DML_FEATURE_DATA_TENSOR_DATA_TYPE_SUPPORT | ||
| 2238 | { | ||
| 2239 | BOOL IsSupported; | ||
| 2240 | }; | ||
| 2241 | |||
| 2242 | #if DML_TARGET_VERSION >= 0x2000 | ||
| 2243 | |||
| 2244 | struct DML_FEATURE_QUERY_FEATURE_LEVELS | ||
| 2245 | { | ||
| 2246 | UINT RequestedFeatureLevelCount; | ||
| 2247 | _Field_size_(RequestedFeatureLevelCount) const DML_FEATURE_LEVEL* RequestedFeatureLevels; | ||
| 2248 | }; | ||
| 2249 | |||
| 2250 | struct DML_FEATURE_DATA_FEATURE_LEVELS | ||
| 2251 | { | ||
| 2252 | DML_FEATURE_LEVEL MaxSupportedFeatureLevel; | ||
| 2253 | }; | ||
| 2254 | |||
| 2255 | #endif // DML_TARGET_VERSION >= 0x2000 | ||
| 2256 | |||
| 2257 | // =================================================================================================================== | ||
| 2258 | // DML device functions, enumerations, and structures | ||
| 2259 | // =================================================================================================================== | ||
| 2260 | |||
| 2261 | struct DML_BINDING_TABLE_DESC | ||
| 2262 | { | ||
| 2263 | IDMLDispatchable* Dispatchable; | ||
| 2264 | D3D12_CPU_DESCRIPTOR_HANDLE CPUDescriptorHandle; | ||
| 2265 | D3D12_GPU_DESCRIPTOR_HANDLE GPUDescriptorHandle; | ||
| 2266 | UINT SizeInDescriptors; | ||
| 2267 | }; | ||
| 2268 | |||
| 2269 | enum DML_EXECUTION_FLAGS | ||
| 2270 | { | ||
| 2271 | DML_EXECUTION_FLAG_NONE = 0, | ||
| 2272 | DML_EXECUTION_FLAG_ALLOW_HALF_PRECISION_COMPUTATION = 0x1, | ||
| 2273 | DML_EXECUTION_FLAG_DISABLE_META_COMMANDS = 0x2, | ||
| 2274 | DML_EXECUTION_FLAG_DESCRIPTORS_VOLATILE = 0x4, | ||
| 2275 | }; | ||
| 2276 | |||
| 2277 | DEFINE_ENUM_FLAG_OPERATORS(DML_EXECUTION_FLAGS) | ||
| 2278 | |||
| 2279 | enum DML_CREATE_DEVICE_FLAGS | ||
| 2280 | { | ||
| 2281 | DML_CREATE_DEVICE_FLAG_NONE = 0, | ||
| 2282 | DML_CREATE_DEVICE_FLAG_DEBUG = 0x1, | ||
| 2283 | }; | ||
| 2284 | |||
| 2285 | DEFINE_ENUM_FLAG_OPERATORS(DML_CREATE_DEVICE_FLAGS) | ||
| 2286 | |||
| 2287 | STDAPI DMLCreateDevice( | ||
| 2288 | ID3D12Device* d3d12Device, | ||
| 2289 | DML_CREATE_DEVICE_FLAGS flags, | ||
| 2290 | REFIID riid, // Expected: IDMLDevice | ||
| 2291 | _COM_Outptr_opt_ void** ppv | ||
| 2292 | ); | ||
| 2293 | |||
| 2294 | #if DML_TARGET_VERSION >= 0x2000 | ||
| 2295 | |||
| 2296 | STDAPI DMLCreateDevice1( | ||
| 2297 | ID3D12Device* d3d12Device, | ||
| 2298 | DML_CREATE_DEVICE_FLAGS flags, | ||
| 2299 | DML_FEATURE_LEVEL minimumFeatureLevel, | ||
| 2300 | REFIID riid, // Expected: IDMLDevice | ||
| 2301 | _COM_Outptr_opt_ void** ppv | ||
| 2302 | ); | ||
| 2303 | |||
| 2304 | #endif // DML_TARGET_VERSION >= 0x2000 | ||
| 2305 | |||
| 2306 | // =================================================================================================================== | ||
| 2307 | // DML object | ||
| 2308 | // =================================================================================================================== | ||
| 2309 | |||
| 2310 | interface DML_DECLARE_INTERFACE("c8263aac-9e0c-4a2d-9b8e-007521a3317c") IDMLObject : IUnknown | ||
| 2311 | { | ||
| 2312 | IFACEMETHOD(GetPrivateData)( | ||
| 2313 | REFGUID guid, | ||
| 2314 | _Inout_ UINT* dataSize, | ||
| 2315 | _Out_writes_bytes_opt_(*dataSize) void* data | ||
| 2316 | ) = 0; | ||
| 2317 | |||
| 2318 | IFACEMETHOD(SetPrivateData)( | ||
| 2319 | REFGUID guid, | ||
| 2320 | UINT dataSize, | ||
| 2321 | _In_reads_bytes_opt_(dataSize) const void* data | ||
| 2322 | ) = 0; | ||
| 2323 | |||
| 2324 | IFACEMETHOD(SetPrivateDataInterface)( | ||
| 2325 | REFGUID guid, | ||
| 2326 | _In_opt_ IUnknown* data | ||
| 2327 | ) = 0; | ||
| 2328 | |||
| 2329 | IFACEMETHOD(SetName)( | ||
| 2330 | PCWSTR name | ||
| 2331 | ) = 0; | ||
| 2332 | }; | ||
| 2333 | |||
| 2334 | // =================================================================================================================== | ||
| 2335 | // DML device | ||
| 2336 | // =================================================================================================================== | ||
| 2337 | |||
| 2338 | interface DML_DECLARE_INTERFACE("6dbd6437-96fd-423f-a98c-ae5e7c2a573f") IDMLDevice : IDMLObject | ||
| 2339 | { | ||
| 2340 | IFACEMETHOD(CheckFeatureSupport)( | ||
| 2341 | DML_FEATURE feature, | ||
| 2342 | UINT featureQueryDataSize, | ||
| 2343 | _In_reads_bytes_opt_(featureQueryDataSize) const void* featureQueryData, | ||
| 2344 | UINT featureSupportDataSize, | ||
| 2345 | _Out_writes_bytes_(featureSupportDataSize) void* featureSupportData | ||
| 2346 | ) = 0; | ||
| 2347 | |||
| 2348 | IFACEMETHOD(CreateOperator)( | ||
| 2349 | const DML_OPERATOR_DESC* desc, | ||
| 2350 | REFIID riid, // expected: IDMLOperator | ||
| 2351 | _COM_Outptr_opt_ void** ppv | ||
| 2352 | ) = 0; | ||
| 2353 | |||
| 2354 | IFACEMETHOD(CompileOperator)( | ||
| 2355 | IDMLOperator* op, | ||
| 2356 | DML_EXECUTION_FLAGS flags, | ||
| 2357 | REFIID riid, // expected: IDMLCompiledOperator | ||
| 2358 | _COM_Outptr_opt_ void** ppv | ||
| 2359 | ) = 0; | ||
| 2360 | |||
| 2361 | IFACEMETHOD(CreateOperatorInitializer)( | ||
| 2362 | UINT operatorCount, | ||
| 2363 | _In_reads_opt_(operatorCount) IDMLCompiledOperator* const* operators, | ||
| 2364 | REFIID riid, // expected: IDMLOperatorInitializer | ||
| 2365 | _COM_Outptr_ void** ppv | ||
| 2366 | ) = 0; | ||
| 2367 | |||
| 2368 | IFACEMETHOD(CreateCommandRecorder)( | ||
| 2369 | REFIID riid, // expected: IDMLCommandRecorder | ||
| 2370 | _COM_Outptr_ void** ppv | ||
| 2371 | ) = 0; | ||
| 2372 | |||
| 2373 | IFACEMETHOD(CreateBindingTable)( | ||
| 2374 | _In_opt_ const DML_BINDING_TABLE_DESC* desc, | ||
| 2375 | REFIID riid, // expected: IDMLBindingTable | ||
| 2376 | _COM_Outptr_ void** ppv | ||
| 2377 | ) = 0; | ||
| 2378 | |||
| 2379 | IFACEMETHOD(Evict)( | ||
| 2380 | UINT count, | ||
| 2381 | _In_reads_(count) IDMLPageable* const* ppObjects | ||
| 2382 | ) = 0; | ||
| 2383 | |||
| 2384 | IFACEMETHOD(MakeResident)( | ||
| 2385 | UINT count, | ||
| 2386 | _In_reads_(count) IDMLPageable* const* ppObjects | ||
| 2387 | ) = 0; | ||
| 2388 | |||
| 2389 | IFACEMETHOD(GetDeviceRemovedReason)( | ||
| 2390 | ) = 0; | ||
| 2391 | |||
| 2392 | IFACEMETHOD(GetParentDevice)( | ||
| 2393 | REFIID riid, | ||
| 2394 | _COM_Outptr_ void** ppv | ||
| 2395 | ) = 0; | ||
| 2396 | }; | ||
| 2397 | |||
| 2398 | |||
| 2399 | // =================================================================================================================== | ||
| 2400 | // DML device children | ||
| 2401 | // =================================================================================================================== | ||
| 2402 | |||
| 2403 | interface DML_DECLARE_INTERFACE("27e83142-8165-49e3-974e-2fd66e4cb69d") IDMLDeviceChild : IDMLObject | ||
| 2404 | { | ||
| 2405 | IFACEMETHOD(GetDevice)( | ||
| 2406 | REFIID riid, // expected: IDMLDevice | ||
| 2407 | _COM_Outptr_ void** ppv | ||
| 2408 | ) = 0; | ||
| 2409 | }; | ||
| 2410 | |||
| 2411 | interface DML_DECLARE_INTERFACE("b1ab0825-4542-4a4b-8617-6dde6e8f6201") IDMLPageable : IDMLDeviceChild | ||
| 2412 | { | ||
| 2413 | }; | ||
| 2414 | |||
| 2415 | |||
| 2416 | // =================================================================================================================== | ||
| 2417 | // DML operator | ||
| 2418 | // =================================================================================================================== | ||
| 2419 | |||
| 2420 | interface DML_DECLARE_INTERFACE("26caae7a-3081-4633-9581-226fbe57695d") IDMLOperator : IDMLDeviceChild | ||
| 2421 | { | ||
| 2422 | }; | ||
| 2423 | |||
| 2424 | |||
| 2425 | // =================================================================================================================== | ||
| 2426 | // DML dispatchable | ||
| 2427 | // =================================================================================================================== | ||
| 2428 | |||
| 2429 | struct DML_BINDING_PROPERTIES | ||
| 2430 | { | ||
| 2431 | UINT RequiredDescriptorCount; | ||
| 2432 | UINT64 TemporaryResourceSize; | ||
| 2433 | UINT64 PersistentResourceSize; | ||
| 2434 | }; | ||
| 2435 | |||
| 2436 | interface DML_DECLARE_INTERFACE("dcb821a8-1039-441e-9f1c-b1759c2f3cec") IDMLDispatchable : IDMLPageable | ||
| 2437 | { | ||
| 2438 | IFACEMETHOD_(DML_BINDING_PROPERTIES, GetBindingProperties)() = 0; | ||
| 2439 | }; | ||
| 2440 | |||
| 2441 | |||
| 2442 | // =================================================================================================================== | ||
| 2443 | // DML compiled operator | ||
| 2444 | // =================================================================================================================== | ||
| 2445 | |||
| 2446 | interface DML_DECLARE_INTERFACE("6b15e56a-bf5c-4902-92d8-da3a650afea4") IDMLCompiledOperator : IDMLDispatchable | ||
| 2447 | { | ||
| 2448 | }; | ||
| 2449 | |||
| 2450 | |||
| 2451 | // =================================================================================================================== | ||
| 2452 | // DML operator initializer | ||
| 2453 | // =================================================================================================================== | ||
| 2454 | |||
| 2455 | interface DML_DECLARE_INTERFACE("427c1113-435c-469c-8676-4d5dd072f813") IDMLOperatorInitializer : IDMLDispatchable | ||
| 2456 | { | ||
| 2457 | IFACEMETHOD(Reset)( | ||
| 2458 | UINT operatorCount, | ||
| 2459 | _In_reads_opt_(operatorCount) IDMLCompiledOperator* const* operators | ||
| 2460 | ) = 0; | ||
| 2461 | }; | ||
| 2462 | |||
| 2463 | // =================================================================================================================== | ||
| 2464 | // DML binding table | ||
| 2465 | // =================================================================================================================== | ||
| 2466 | |||
| 2467 | enum DML_BINDING_TYPE | ||
| 2468 | { | ||
| 2469 | DML_BINDING_TYPE_NONE, | ||
| 2470 | DML_BINDING_TYPE_BUFFER, | ||
| 2471 | DML_BINDING_TYPE_BUFFER_ARRAY, | ||
| 2472 | }; | ||
| 2473 | |||
| 2474 | struct DML_BINDING_DESC | ||
| 2475 | { | ||
| 2476 | DML_BINDING_TYPE Type; | ||
| 2477 | _Field_size_opt_(_Inexpressible_("Dependent on binding type")) const void* Desc; | ||
| 2478 | }; | ||
| 2479 | |||
| 2480 | struct DML_BUFFER_BINDING | ||
| 2481 | { | ||
| 2482 | _Maybenull_ ID3D12Resource* Buffer; | ||
| 2483 | UINT64 Offset; | ||
| 2484 | UINT64 SizeInBytes; | ||
| 2485 | }; | ||
| 2486 | |||
| 2487 | struct DML_BUFFER_ARRAY_BINDING | ||
| 2488 | { | ||
| 2489 | UINT BindingCount; | ||
| 2490 | _Field_size_(BindingCount) const DML_BUFFER_BINDING* Bindings; | ||
| 2491 | }; | ||
| 2492 | |||
| 2493 | interface DML_DECLARE_INTERFACE("29c687dc-de74-4e3b-ab00-1168f2fc3cfc") IDMLBindingTable : IDMLDeviceChild | ||
| 2494 | { | ||
| 2495 | IFACEMETHOD_(void, BindInputs)( | ||
| 2496 | UINT bindingCount, | ||
| 2497 | _In_reads_opt_(bindingCount) const DML_BINDING_DESC* bindings | ||
| 2498 | ) = 0; | ||
| 2499 | |||
| 2500 | IFACEMETHOD_(void, BindOutputs)( | ||
| 2501 | UINT bindingCount, | ||
| 2502 | _In_reads_opt_(bindingCount) const DML_BINDING_DESC* bindings | ||
| 2503 | ) = 0; | ||
| 2504 | |||
| 2505 | IFACEMETHOD_(void, BindTemporaryResource)( | ||
| 2506 | _In_opt_ const DML_BINDING_DESC* binding | ||
| 2507 | ) = 0; | ||
| 2508 | |||
| 2509 | IFACEMETHOD_(void, BindPersistentResource)( | ||
| 2510 | _In_opt_ const DML_BINDING_DESC* binding | ||
| 2511 | ) = 0; | ||
| 2512 | |||
| 2513 | IFACEMETHOD(Reset)( | ||
| 2514 | _In_opt_ const DML_BINDING_TABLE_DESC* desc | ||
| 2515 | ) = 0; | ||
| 2516 | }; | ||
| 2517 | |||
| 2518 | |||
| 2519 | // =================================================================================================================== | ||
| 2520 | // DML command recorder | ||
| 2521 | // =================================================================================================================== | ||
| 2522 | |||
| 2523 | interface DML_DECLARE_INTERFACE("e6857a76-2e3e-4fdd-bff4-5d2ba10fb453") IDMLCommandRecorder : IDMLDeviceChild | ||
| 2524 | { | ||
| 2525 | IFACEMETHOD_(void, RecordDispatch)( | ||
| 2526 | ID3D12CommandList* commandList, | ||
| 2527 | IDMLDispatchable* dispatchable, | ||
| 2528 | IDMLBindingTable* bindings | ||
| 2529 | ) = 0; | ||
| 2530 | }; | ||
| 2531 | |||
| 2532 | |||
| 2533 | // =================================================================================================================== | ||
| 2534 | // DML debug | ||
| 2535 | // =================================================================================================================== | ||
| 2536 | |||
| 2537 | interface DML_DECLARE_INTERFACE("7d6f3ac9-394a-4ac3-92a7-390cc57a8217") IDMLDebugDevice : IUnknown | ||
| 2538 | { | ||
| 2539 | IFACEMETHOD_(void, SetMuteDebugOutput)( | ||
| 2540 | BOOL mute | ||
| 2541 | ) = 0; | ||
| 2542 | }; | ||
| 2543 | |||
| 2544 | |||
| 2545 | // =================================================================================================================== | ||
| 2546 | // DML graph | ||
| 2547 | // =================================================================================================================== | ||
| 2548 | |||
| 2549 | #if DML_TARGET_VERSION >= 0x2100 | ||
| 2550 | |||
| 2551 | enum DML_GRAPH_EDGE_TYPE | ||
| 2552 | { | ||
| 2553 | DML_GRAPH_EDGE_TYPE_INVALID, | ||
| 2554 | DML_GRAPH_EDGE_TYPE_INPUT, | ||
| 2555 | DML_GRAPH_EDGE_TYPE_OUTPUT, | ||
| 2556 | DML_GRAPH_EDGE_TYPE_INTERMEDIATE, | ||
| 2557 | }; | ||
| 2558 | |||
| 2559 | struct DML_GRAPH_EDGE_DESC | ||
| 2560 | { | ||
| 2561 | DML_GRAPH_EDGE_TYPE Type; | ||
| 2562 | _Field_size_(_Inexpressible_("Dependent on edge type")) const void* Desc; | ||
| 2563 | }; | ||
| 2564 | |||
| 2565 | struct DML_INPUT_GRAPH_EDGE_DESC | ||
| 2566 | { | ||
| 2567 | UINT GraphInputIndex; | ||
| 2568 | UINT ToNodeIndex; | ||
| 2569 | UINT ToNodeInputIndex; | ||
| 2570 | _Field_z_ _Maybenull_ const char* Name; | ||
| 2571 | }; | ||
| 2572 | |||
| 2573 | struct DML_OUTPUT_GRAPH_EDGE_DESC | ||
| 2574 | { | ||
| 2575 | UINT FromNodeIndex; | ||
| 2576 | UINT FromNodeOutputIndex; | ||
| 2577 | UINT GraphOutputIndex; | ||
| 2578 | _Field_z_ _Maybenull_ const char* Name; | ||
| 2579 | }; | ||
| 2580 | |||
| 2581 | struct DML_INTERMEDIATE_GRAPH_EDGE_DESC | ||
| 2582 | { | ||
| 2583 | UINT FromNodeIndex; | ||
| 2584 | UINT FromNodeOutputIndex; | ||
| 2585 | UINT ToNodeIndex; | ||
| 2586 | UINT ToNodeInputIndex; | ||
| 2587 | _Field_z_ _Maybenull_ const char* Name; | ||
| 2588 | }; | ||
| 2589 | |||
| 2590 | enum DML_GRAPH_NODE_TYPE | ||
| 2591 | { | ||
| 2592 | DML_GRAPH_NODE_TYPE_INVALID, | ||
| 2593 | DML_GRAPH_NODE_TYPE_OPERATOR, | ||
| 2594 | #if DML_TARGET_VERSION >= 0x6200 | ||
| 2595 | DML_GRAPH_NODE_TYPE_CONSTANT | ||
| 2596 | #endif // DML_TARGET_VERSION >= 0x6200 | ||
| 2597 | }; | ||
| 2598 | |||
| 2599 | struct DML_GRAPH_NODE_DESC | ||
| 2600 | { | ||
| 2601 | DML_GRAPH_NODE_TYPE Type; | ||
| 2602 | _Field_size_(_Inexpressible_("Dependent on node type")) const void* Desc; | ||
| 2603 | }; | ||
| 2604 | |||
| 2605 | struct DML_OPERATOR_GRAPH_NODE_DESC | ||
| 2606 | { | ||
| 2607 | IDMLOperator* Operator; | ||
| 2608 | _Field_z_ _Maybenull_ const char* Name; | ||
| 2609 | }; | ||
| 2610 | |||
| 2611 | #if DML_TARGET_VERSION >= 0x6200 | ||
| 2612 | struct DML_CONSTANT_DATA_GRAPH_NODE_DESC | ||
| 2613 | { | ||
| 2614 | _Field_size_bytes_(DataSize) const void* Data; | ||
| 2615 | SIZE_T DataSize; | ||
| 2616 | _Field_z_ _Maybenull_ const char* Name; | ||
| 2617 | }; | ||
| 2618 | #endif // DML_TARGET_VERSION >= 0x6200 | ||
| 2619 | |||
| 2620 | struct DML_GRAPH_DESC | ||
| 2621 | { | ||
| 2622 | UINT InputCount; | ||
| 2623 | UINT OutputCount; | ||
| 2624 | |||
| 2625 | UINT NodeCount; | ||
| 2626 | _Field_size_(NodeCount) const DML_GRAPH_NODE_DESC* Nodes; | ||
| 2627 | |||
| 2628 | UINT InputEdgeCount; | ||
| 2629 | _Field_size_opt_(InputEdgeCount) const DML_GRAPH_EDGE_DESC* InputEdges; | ||
| 2630 | |||
| 2631 | UINT OutputEdgeCount; | ||
| 2632 | _Field_size_(OutputEdgeCount) const DML_GRAPH_EDGE_DESC* OutputEdges; | ||
| 2633 | |||
| 2634 | UINT IntermediateEdgeCount; | ||
| 2635 | _Field_size_opt_(IntermediateEdgeCount) const DML_GRAPH_EDGE_DESC* IntermediateEdges; | ||
| 2636 | }; | ||
| 2637 | |||
| 2638 | interface DML_DECLARE_INTERFACE("a0884f9a-d2be-4355-aa5d-5901281ad1d2") IDMLDevice1 : IDMLDevice | ||
| 2639 | { | ||
| 2640 | IFACEMETHOD(CompileGraph)( | ||
| 2641 | const DML_GRAPH_DESC* desc, | ||
| 2642 | DML_EXECUTION_FLAGS flags, | ||
| 2643 | REFIID riid, // expected: IDMLCompiledOperator | ||
| 2644 | _COM_Outptr_opt_ void** ppv | ||
| 2645 | ) = 0; | ||
| 2646 | }; | ||
| 2647 | |||
| 2648 | #endif // DML_TARGET_VERSION >= 0x2100 | ||
| 2649 | |||
| 2650 | #endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) | ||
| 2651 | #endif // DIRECTML_H | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.h new file mode 100644 index 0000000..0d12a2b --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.h | |||
| @@ -0,0 +1,36886 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | |||
| 8 | |||
| 9 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ | ||
| 10 | |||
| 11 | |||
| 12 | /* File created by MIDL compiler version 8.01.0628 */ | ||
| 13 | |||
| 14 | |||
| 15 | |||
| 16 | /* verify that the <rpcndr.h> version is high enough to compile this file*/ | ||
| 17 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | ||
| 18 | #define __REQUIRED_RPCNDR_H_VERSION__ 500 | ||
| 19 | #endif | ||
| 20 | |||
| 21 | /* verify that the <rpcsal.h> version is high enough to compile this file*/ | ||
| 22 | #ifndef __REQUIRED_RPCSAL_H_VERSION__ | ||
| 23 | #define __REQUIRED_RPCSAL_H_VERSION__ 100 | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include "rpc.h" | ||
| 27 | #include "rpcndr.h" | ||
| 28 | |||
| 29 | #ifndef __RPCNDR_H_VERSION__ | ||
| 30 | #error this stub requires an updated version of <rpcndr.h> | ||
| 31 | #endif /* __RPCNDR_H_VERSION__ */ | ||
| 32 | |||
| 33 | #ifndef COM_NO_WINDOWS_H | ||
| 34 | #include "windows.h" | ||
| 35 | #include "ole2.h" | ||
| 36 | #endif /*COM_NO_WINDOWS_H*/ | ||
| 37 | |||
| 38 | #ifndef __d3d12_h__ | ||
| 39 | #define __d3d12_h__ | ||
| 40 | |||
| 41 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) | ||
| 42 | #pragma once | ||
| 43 | #endif | ||
| 44 | |||
| 45 | #ifndef DECLSPEC_XFGVIRT | ||
| 46 | #if defined(_CONTROL_FLOW_GUARD_XFG) | ||
| 47 | #define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) | ||
| 48 | #else | ||
| 49 | #define DECLSPEC_XFGVIRT(base, func) | ||
| 50 | #endif | ||
| 51 | #endif | ||
| 52 | |||
| 53 | /* Forward Declarations */ | ||
| 54 | |||
| 55 | #ifndef __ID3D12Object_FWD_DEFINED__ | ||
| 56 | #define __ID3D12Object_FWD_DEFINED__ | ||
| 57 | typedef interface ID3D12Object ID3D12Object; | ||
| 58 | |||
| 59 | #endif /* __ID3D12Object_FWD_DEFINED__ */ | ||
| 60 | |||
| 61 | |||
| 62 | #ifndef __ID3D12DeviceChild_FWD_DEFINED__ | ||
| 63 | #define __ID3D12DeviceChild_FWD_DEFINED__ | ||
| 64 | typedef interface ID3D12DeviceChild ID3D12DeviceChild; | ||
| 65 | |||
| 66 | #endif /* __ID3D12DeviceChild_FWD_DEFINED__ */ | ||
| 67 | |||
| 68 | |||
| 69 | #ifndef __ID3D12RootSignature_FWD_DEFINED__ | ||
| 70 | #define __ID3D12RootSignature_FWD_DEFINED__ | ||
| 71 | typedef interface ID3D12RootSignature ID3D12RootSignature; | ||
| 72 | |||
| 73 | #endif /* __ID3D12RootSignature_FWD_DEFINED__ */ | ||
| 74 | |||
| 75 | |||
| 76 | #ifndef __ID3D12RootSignatureDeserializer_FWD_DEFINED__ | ||
| 77 | #define __ID3D12RootSignatureDeserializer_FWD_DEFINED__ | ||
| 78 | typedef interface ID3D12RootSignatureDeserializer ID3D12RootSignatureDeserializer; | ||
| 79 | |||
| 80 | #endif /* __ID3D12RootSignatureDeserializer_FWD_DEFINED__ */ | ||
| 81 | |||
| 82 | |||
| 83 | #ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ | ||
| 84 | #define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ | ||
| 85 | typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer; | ||
| 86 | |||
| 87 | #endif /* __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__ */ | ||
| 88 | |||
| 89 | |||
| 90 | #ifndef __ID3D12Pageable_FWD_DEFINED__ | ||
| 91 | #define __ID3D12Pageable_FWD_DEFINED__ | ||
| 92 | typedef interface ID3D12Pageable ID3D12Pageable; | ||
| 93 | |||
| 94 | #endif /* __ID3D12Pageable_FWD_DEFINED__ */ | ||
| 95 | |||
| 96 | |||
| 97 | #ifndef __ID3D12Heap_FWD_DEFINED__ | ||
| 98 | #define __ID3D12Heap_FWD_DEFINED__ | ||
| 99 | typedef interface ID3D12Heap ID3D12Heap; | ||
| 100 | |||
| 101 | #endif /* __ID3D12Heap_FWD_DEFINED__ */ | ||
| 102 | |||
| 103 | |||
| 104 | #ifndef __ID3D12Resource_FWD_DEFINED__ | ||
| 105 | #define __ID3D12Resource_FWD_DEFINED__ | ||
| 106 | typedef interface ID3D12Resource ID3D12Resource; | ||
| 107 | |||
| 108 | #endif /* __ID3D12Resource_FWD_DEFINED__ */ | ||
| 109 | |||
| 110 | |||
| 111 | #ifndef __ID3D12CommandAllocator_FWD_DEFINED__ | ||
| 112 | #define __ID3D12CommandAllocator_FWD_DEFINED__ | ||
| 113 | typedef interface ID3D12CommandAllocator ID3D12CommandAllocator; | ||
| 114 | |||
| 115 | #endif /* __ID3D12CommandAllocator_FWD_DEFINED__ */ | ||
| 116 | |||
| 117 | |||
| 118 | #ifndef __ID3D12Fence_FWD_DEFINED__ | ||
| 119 | #define __ID3D12Fence_FWD_DEFINED__ | ||
| 120 | typedef interface ID3D12Fence ID3D12Fence; | ||
| 121 | |||
| 122 | #endif /* __ID3D12Fence_FWD_DEFINED__ */ | ||
| 123 | |||
| 124 | |||
| 125 | #ifndef __ID3D12Fence1_FWD_DEFINED__ | ||
| 126 | #define __ID3D12Fence1_FWD_DEFINED__ | ||
| 127 | typedef interface ID3D12Fence1 ID3D12Fence1; | ||
| 128 | |||
| 129 | #endif /* __ID3D12Fence1_FWD_DEFINED__ */ | ||
| 130 | |||
| 131 | |||
| 132 | #ifndef __ID3D12PipelineState_FWD_DEFINED__ | ||
| 133 | #define __ID3D12PipelineState_FWD_DEFINED__ | ||
| 134 | typedef interface ID3D12PipelineState ID3D12PipelineState; | ||
| 135 | |||
| 136 | #endif /* __ID3D12PipelineState_FWD_DEFINED__ */ | ||
| 137 | |||
| 138 | |||
| 139 | #ifndef __ID3D12PipelineState1_FWD_DEFINED__ | ||
| 140 | #define __ID3D12PipelineState1_FWD_DEFINED__ | ||
| 141 | typedef interface ID3D12PipelineState1 ID3D12PipelineState1; | ||
| 142 | |||
| 143 | #endif /* __ID3D12PipelineState1_FWD_DEFINED__ */ | ||
| 144 | |||
| 145 | |||
| 146 | #ifndef __ID3D12DescriptorHeap_FWD_DEFINED__ | ||
| 147 | #define __ID3D12DescriptorHeap_FWD_DEFINED__ | ||
| 148 | typedef interface ID3D12DescriptorHeap ID3D12DescriptorHeap; | ||
| 149 | |||
| 150 | #endif /* __ID3D12DescriptorHeap_FWD_DEFINED__ */ | ||
| 151 | |||
| 152 | |||
| 153 | #ifndef __ID3D12QueryHeap_FWD_DEFINED__ | ||
| 154 | #define __ID3D12QueryHeap_FWD_DEFINED__ | ||
| 155 | typedef interface ID3D12QueryHeap ID3D12QueryHeap; | ||
| 156 | |||
| 157 | #endif /* __ID3D12QueryHeap_FWD_DEFINED__ */ | ||
| 158 | |||
| 159 | |||
| 160 | #ifndef __ID3D12CommandSignature_FWD_DEFINED__ | ||
| 161 | #define __ID3D12CommandSignature_FWD_DEFINED__ | ||
| 162 | typedef interface ID3D12CommandSignature ID3D12CommandSignature; | ||
| 163 | |||
| 164 | #endif /* __ID3D12CommandSignature_FWD_DEFINED__ */ | ||
| 165 | |||
| 166 | |||
| 167 | #ifndef __ID3D12CommandList_FWD_DEFINED__ | ||
| 168 | #define __ID3D12CommandList_FWD_DEFINED__ | ||
| 169 | typedef interface ID3D12CommandList ID3D12CommandList; | ||
| 170 | |||
| 171 | #endif /* __ID3D12CommandList_FWD_DEFINED__ */ | ||
| 172 | |||
| 173 | |||
| 174 | #ifndef __ID3D12GraphicsCommandList_FWD_DEFINED__ | ||
| 175 | #define __ID3D12GraphicsCommandList_FWD_DEFINED__ | ||
| 176 | typedef interface ID3D12GraphicsCommandList ID3D12GraphicsCommandList; | ||
| 177 | |||
| 178 | #endif /* __ID3D12GraphicsCommandList_FWD_DEFINED__ */ | ||
| 179 | |||
| 180 | |||
| 181 | #ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__ | ||
| 182 | #define __ID3D12GraphicsCommandList1_FWD_DEFINED__ | ||
| 183 | typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1; | ||
| 184 | |||
| 185 | #endif /* __ID3D12GraphicsCommandList1_FWD_DEFINED__ */ | ||
| 186 | |||
| 187 | |||
| 188 | #ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__ | ||
| 189 | #define __ID3D12GraphicsCommandList2_FWD_DEFINED__ | ||
| 190 | typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2; | ||
| 191 | |||
| 192 | #endif /* __ID3D12GraphicsCommandList2_FWD_DEFINED__ */ | ||
| 193 | |||
| 194 | |||
| 195 | #ifndef __ID3D12CommandQueue_FWD_DEFINED__ | ||
| 196 | #define __ID3D12CommandQueue_FWD_DEFINED__ | ||
| 197 | typedef interface ID3D12CommandQueue ID3D12CommandQueue; | ||
| 198 | |||
| 199 | #endif /* __ID3D12CommandQueue_FWD_DEFINED__ */ | ||
| 200 | |||
| 201 | |||
| 202 | #ifndef __ID3D12CommandQueue1_FWD_DEFINED__ | ||
| 203 | #define __ID3D12CommandQueue1_FWD_DEFINED__ | ||
| 204 | typedef interface ID3D12CommandQueue1 ID3D12CommandQueue1; | ||
| 205 | |||
| 206 | #endif /* __ID3D12CommandQueue1_FWD_DEFINED__ */ | ||
| 207 | |||
| 208 | |||
| 209 | #ifndef __ID3D12Device_FWD_DEFINED__ | ||
| 210 | #define __ID3D12Device_FWD_DEFINED__ | ||
| 211 | typedef interface ID3D12Device ID3D12Device; | ||
| 212 | |||
| 213 | #endif /* __ID3D12Device_FWD_DEFINED__ */ | ||
| 214 | |||
| 215 | |||
| 216 | #ifndef __ID3D12PipelineLibrary_FWD_DEFINED__ | ||
| 217 | #define __ID3D12PipelineLibrary_FWD_DEFINED__ | ||
| 218 | typedef interface ID3D12PipelineLibrary ID3D12PipelineLibrary; | ||
| 219 | |||
| 220 | #endif /* __ID3D12PipelineLibrary_FWD_DEFINED__ */ | ||
| 221 | |||
| 222 | |||
| 223 | #ifndef __ID3D12PipelineLibrary1_FWD_DEFINED__ | ||
| 224 | #define __ID3D12PipelineLibrary1_FWD_DEFINED__ | ||
| 225 | typedef interface ID3D12PipelineLibrary1 ID3D12PipelineLibrary1; | ||
| 226 | |||
| 227 | #endif /* __ID3D12PipelineLibrary1_FWD_DEFINED__ */ | ||
| 228 | |||
| 229 | |||
| 230 | #ifndef __ID3D12Device1_FWD_DEFINED__ | ||
| 231 | #define __ID3D12Device1_FWD_DEFINED__ | ||
| 232 | typedef interface ID3D12Device1 ID3D12Device1; | ||
| 233 | |||
| 234 | #endif /* __ID3D12Device1_FWD_DEFINED__ */ | ||
| 235 | |||
| 236 | |||
| 237 | #ifndef __ID3D12Device2_FWD_DEFINED__ | ||
| 238 | #define __ID3D12Device2_FWD_DEFINED__ | ||
| 239 | typedef interface ID3D12Device2 ID3D12Device2; | ||
| 240 | |||
| 241 | #endif /* __ID3D12Device2_FWD_DEFINED__ */ | ||
| 242 | |||
| 243 | |||
| 244 | #ifndef __ID3D12Device3_FWD_DEFINED__ | ||
| 245 | #define __ID3D12Device3_FWD_DEFINED__ | ||
| 246 | typedef interface ID3D12Device3 ID3D12Device3; | ||
| 247 | |||
| 248 | #endif /* __ID3D12Device3_FWD_DEFINED__ */ | ||
| 249 | |||
| 250 | |||
| 251 | #ifndef __ID3D12ProtectedSession_FWD_DEFINED__ | ||
| 252 | #define __ID3D12ProtectedSession_FWD_DEFINED__ | ||
| 253 | typedef interface ID3D12ProtectedSession ID3D12ProtectedSession; | ||
| 254 | |||
| 255 | #endif /* __ID3D12ProtectedSession_FWD_DEFINED__ */ | ||
| 256 | |||
| 257 | |||
| 258 | #ifndef __ID3D12ProtectedResourceSession_FWD_DEFINED__ | ||
| 259 | #define __ID3D12ProtectedResourceSession_FWD_DEFINED__ | ||
| 260 | typedef interface ID3D12ProtectedResourceSession ID3D12ProtectedResourceSession; | ||
| 261 | |||
| 262 | #endif /* __ID3D12ProtectedResourceSession_FWD_DEFINED__ */ | ||
| 263 | |||
| 264 | |||
| 265 | #ifndef __ID3D12Device4_FWD_DEFINED__ | ||
| 266 | #define __ID3D12Device4_FWD_DEFINED__ | ||
| 267 | typedef interface ID3D12Device4 ID3D12Device4; | ||
| 268 | |||
| 269 | #endif /* __ID3D12Device4_FWD_DEFINED__ */ | ||
| 270 | |||
| 271 | |||
| 272 | #ifndef __ID3D12LifetimeOwner_FWD_DEFINED__ | ||
| 273 | #define __ID3D12LifetimeOwner_FWD_DEFINED__ | ||
| 274 | typedef interface ID3D12LifetimeOwner ID3D12LifetimeOwner; | ||
| 275 | |||
| 276 | #endif /* __ID3D12LifetimeOwner_FWD_DEFINED__ */ | ||
| 277 | |||
| 278 | |||
| 279 | #ifndef __ID3D12SwapChainAssistant_FWD_DEFINED__ | ||
| 280 | #define __ID3D12SwapChainAssistant_FWD_DEFINED__ | ||
| 281 | typedef interface ID3D12SwapChainAssistant ID3D12SwapChainAssistant; | ||
| 282 | |||
| 283 | #endif /* __ID3D12SwapChainAssistant_FWD_DEFINED__ */ | ||
| 284 | |||
| 285 | |||
| 286 | #ifndef __ID3D12LifetimeTracker_FWD_DEFINED__ | ||
| 287 | #define __ID3D12LifetimeTracker_FWD_DEFINED__ | ||
| 288 | typedef interface ID3D12LifetimeTracker ID3D12LifetimeTracker; | ||
| 289 | |||
| 290 | #endif /* __ID3D12LifetimeTracker_FWD_DEFINED__ */ | ||
| 291 | |||
| 292 | |||
| 293 | #ifndef __ID3D12StateObject_FWD_DEFINED__ | ||
| 294 | #define __ID3D12StateObject_FWD_DEFINED__ | ||
| 295 | typedef interface ID3D12StateObject ID3D12StateObject; | ||
| 296 | |||
| 297 | #endif /* __ID3D12StateObject_FWD_DEFINED__ */ | ||
| 298 | |||
| 299 | |||
| 300 | #ifndef __ID3D12StateObjectProperties_FWD_DEFINED__ | ||
| 301 | #define __ID3D12StateObjectProperties_FWD_DEFINED__ | ||
| 302 | typedef interface ID3D12StateObjectProperties ID3D12StateObjectProperties; | ||
| 303 | |||
| 304 | #endif /* __ID3D12StateObjectProperties_FWD_DEFINED__ */ | ||
| 305 | |||
| 306 | |||
| 307 | #ifndef __ID3D12StateObjectProperties1_FWD_DEFINED__ | ||
| 308 | #define __ID3D12StateObjectProperties1_FWD_DEFINED__ | ||
| 309 | typedef interface ID3D12StateObjectProperties1 ID3D12StateObjectProperties1; | ||
| 310 | |||
| 311 | #endif /* __ID3D12StateObjectProperties1_FWD_DEFINED__ */ | ||
| 312 | |||
| 313 | |||
| 314 | #ifndef __ID3D12StateObjectProperties2_FWD_DEFINED__ | ||
| 315 | #define __ID3D12StateObjectProperties2_FWD_DEFINED__ | ||
| 316 | typedef interface ID3D12StateObjectProperties2 ID3D12StateObjectProperties2; | ||
| 317 | |||
| 318 | #endif /* __ID3D12StateObjectProperties2_FWD_DEFINED__ */ | ||
| 319 | |||
| 320 | |||
| 321 | #ifndef __ID3D12WorkGraphProperties_FWD_DEFINED__ | ||
| 322 | #define __ID3D12WorkGraphProperties_FWD_DEFINED__ | ||
| 323 | typedef interface ID3D12WorkGraphProperties ID3D12WorkGraphProperties; | ||
| 324 | |||
| 325 | #endif /* __ID3D12WorkGraphProperties_FWD_DEFINED__ */ | ||
| 326 | |||
| 327 | |||
| 328 | #ifndef __ID3D12Device5_FWD_DEFINED__ | ||
| 329 | #define __ID3D12Device5_FWD_DEFINED__ | ||
| 330 | typedef interface ID3D12Device5 ID3D12Device5; | ||
| 331 | |||
| 332 | #endif /* __ID3D12Device5_FWD_DEFINED__ */ | ||
| 333 | |||
| 334 | |||
| 335 | #ifndef __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ | ||
| 336 | #define __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ | ||
| 337 | typedef interface ID3D12DeviceRemovedExtendedDataSettings ID3D12DeviceRemovedExtendedDataSettings; | ||
| 338 | |||
| 339 | #endif /* __ID3D12DeviceRemovedExtendedDataSettings_FWD_DEFINED__ */ | ||
| 340 | |||
| 341 | |||
| 342 | #ifndef __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ | ||
| 343 | #define __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ | ||
| 344 | typedef interface ID3D12DeviceRemovedExtendedDataSettings1 ID3D12DeviceRemovedExtendedDataSettings1; | ||
| 345 | |||
| 346 | #endif /* __ID3D12DeviceRemovedExtendedDataSettings1_FWD_DEFINED__ */ | ||
| 347 | |||
| 348 | |||
| 349 | #ifndef __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ | ||
| 350 | #define __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ | ||
| 351 | typedef interface ID3D12DeviceRemovedExtendedDataSettings2 ID3D12DeviceRemovedExtendedDataSettings2; | ||
| 352 | |||
| 353 | #endif /* __ID3D12DeviceRemovedExtendedDataSettings2_FWD_DEFINED__ */ | ||
| 354 | |||
| 355 | |||
| 356 | #ifndef __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ | ||
| 357 | #define __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ | ||
| 358 | typedef interface ID3D12DeviceRemovedExtendedData ID3D12DeviceRemovedExtendedData; | ||
| 359 | |||
| 360 | #endif /* __ID3D12DeviceRemovedExtendedData_FWD_DEFINED__ */ | ||
| 361 | |||
| 362 | |||
| 363 | #ifndef __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ | ||
| 364 | #define __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ | ||
| 365 | typedef interface ID3D12DeviceRemovedExtendedData1 ID3D12DeviceRemovedExtendedData1; | ||
| 366 | |||
| 367 | #endif /* __ID3D12DeviceRemovedExtendedData1_FWD_DEFINED__ */ | ||
| 368 | |||
| 369 | |||
| 370 | #ifndef __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ | ||
| 371 | #define __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ | ||
| 372 | typedef interface ID3D12DeviceRemovedExtendedData2 ID3D12DeviceRemovedExtendedData2; | ||
| 373 | |||
| 374 | #endif /* __ID3D12DeviceRemovedExtendedData2_FWD_DEFINED__ */ | ||
| 375 | |||
| 376 | |||
| 377 | #ifndef __ID3D12Device6_FWD_DEFINED__ | ||
| 378 | #define __ID3D12Device6_FWD_DEFINED__ | ||
| 379 | typedef interface ID3D12Device6 ID3D12Device6; | ||
| 380 | |||
| 381 | #endif /* __ID3D12Device6_FWD_DEFINED__ */ | ||
| 382 | |||
| 383 | |||
| 384 | #ifndef __ID3D12ProtectedResourceSession1_FWD_DEFINED__ | ||
| 385 | #define __ID3D12ProtectedResourceSession1_FWD_DEFINED__ | ||
| 386 | typedef interface ID3D12ProtectedResourceSession1 ID3D12ProtectedResourceSession1; | ||
| 387 | |||
| 388 | #endif /* __ID3D12ProtectedResourceSession1_FWD_DEFINED__ */ | ||
| 389 | |||
| 390 | |||
| 391 | #ifndef __ID3D12Device7_FWD_DEFINED__ | ||
| 392 | #define __ID3D12Device7_FWD_DEFINED__ | ||
| 393 | typedef interface ID3D12Device7 ID3D12Device7; | ||
| 394 | |||
| 395 | #endif /* __ID3D12Device7_FWD_DEFINED__ */ | ||
| 396 | |||
| 397 | |||
| 398 | #ifndef __ID3D12Device8_FWD_DEFINED__ | ||
| 399 | #define __ID3D12Device8_FWD_DEFINED__ | ||
| 400 | typedef interface ID3D12Device8 ID3D12Device8; | ||
| 401 | |||
| 402 | #endif /* __ID3D12Device8_FWD_DEFINED__ */ | ||
| 403 | |||
| 404 | |||
| 405 | #ifndef __ID3D12Resource1_FWD_DEFINED__ | ||
| 406 | #define __ID3D12Resource1_FWD_DEFINED__ | ||
| 407 | typedef interface ID3D12Resource1 ID3D12Resource1; | ||
| 408 | |||
| 409 | #endif /* __ID3D12Resource1_FWD_DEFINED__ */ | ||
| 410 | |||
| 411 | |||
| 412 | #ifndef __ID3D12Resource2_FWD_DEFINED__ | ||
| 413 | #define __ID3D12Resource2_FWD_DEFINED__ | ||
| 414 | typedef interface ID3D12Resource2 ID3D12Resource2; | ||
| 415 | |||
| 416 | #endif /* __ID3D12Resource2_FWD_DEFINED__ */ | ||
| 417 | |||
| 418 | |||
| 419 | #ifndef __ID3D12Heap1_FWD_DEFINED__ | ||
| 420 | #define __ID3D12Heap1_FWD_DEFINED__ | ||
| 421 | typedef interface ID3D12Heap1 ID3D12Heap1; | ||
| 422 | |||
| 423 | #endif /* __ID3D12Heap1_FWD_DEFINED__ */ | ||
| 424 | |||
| 425 | |||
| 426 | #ifndef __ID3D12GraphicsCommandList3_FWD_DEFINED__ | ||
| 427 | #define __ID3D12GraphicsCommandList3_FWD_DEFINED__ | ||
| 428 | typedef interface ID3D12GraphicsCommandList3 ID3D12GraphicsCommandList3; | ||
| 429 | |||
| 430 | #endif /* __ID3D12GraphicsCommandList3_FWD_DEFINED__ */ | ||
| 431 | |||
| 432 | |||
| 433 | #ifndef __ID3D12MetaCommand_FWD_DEFINED__ | ||
| 434 | #define __ID3D12MetaCommand_FWD_DEFINED__ | ||
| 435 | typedef interface ID3D12MetaCommand ID3D12MetaCommand; | ||
| 436 | |||
| 437 | #endif /* __ID3D12MetaCommand_FWD_DEFINED__ */ | ||
| 438 | |||
| 439 | |||
| 440 | #ifndef __ID3D12GraphicsCommandList4_FWD_DEFINED__ | ||
| 441 | #define __ID3D12GraphicsCommandList4_FWD_DEFINED__ | ||
| 442 | typedef interface ID3D12GraphicsCommandList4 ID3D12GraphicsCommandList4; | ||
| 443 | |||
| 444 | #endif /* __ID3D12GraphicsCommandList4_FWD_DEFINED__ */ | ||
| 445 | |||
| 446 | |||
| 447 | #ifndef __ID3D12ShaderCacheSession_FWD_DEFINED__ | ||
| 448 | #define __ID3D12ShaderCacheSession_FWD_DEFINED__ | ||
| 449 | typedef interface ID3D12ShaderCacheSession ID3D12ShaderCacheSession; | ||
| 450 | |||
| 451 | #endif /* __ID3D12ShaderCacheSession_FWD_DEFINED__ */ | ||
| 452 | |||
| 453 | |||
| 454 | #ifndef __ID3D12Device9_FWD_DEFINED__ | ||
| 455 | #define __ID3D12Device9_FWD_DEFINED__ | ||
| 456 | typedef interface ID3D12Device9 ID3D12Device9; | ||
| 457 | |||
| 458 | #endif /* __ID3D12Device9_FWD_DEFINED__ */ | ||
| 459 | |||
| 460 | |||
| 461 | #ifndef __ID3D12Device10_FWD_DEFINED__ | ||
| 462 | #define __ID3D12Device10_FWD_DEFINED__ | ||
| 463 | typedef interface ID3D12Device10 ID3D12Device10; | ||
| 464 | |||
| 465 | #endif /* __ID3D12Device10_FWD_DEFINED__ */ | ||
| 466 | |||
| 467 | |||
| 468 | #ifndef __ID3D12Device11_FWD_DEFINED__ | ||
| 469 | #define __ID3D12Device11_FWD_DEFINED__ | ||
| 470 | typedef interface ID3D12Device11 ID3D12Device11; | ||
| 471 | |||
| 472 | #endif /* __ID3D12Device11_FWD_DEFINED__ */ | ||
| 473 | |||
| 474 | |||
| 475 | #ifndef __ID3D12Device12_FWD_DEFINED__ | ||
| 476 | #define __ID3D12Device12_FWD_DEFINED__ | ||
| 477 | typedef interface ID3D12Device12 ID3D12Device12; | ||
| 478 | |||
| 479 | #endif /* __ID3D12Device12_FWD_DEFINED__ */ | ||
| 480 | |||
| 481 | |||
| 482 | #ifndef __ID3D12Device13_FWD_DEFINED__ | ||
| 483 | #define __ID3D12Device13_FWD_DEFINED__ | ||
| 484 | typedef interface ID3D12Device13 ID3D12Device13; | ||
| 485 | |||
| 486 | #endif /* __ID3D12Device13_FWD_DEFINED__ */ | ||
| 487 | |||
| 488 | |||
| 489 | #ifndef __ID3D12Device14_FWD_DEFINED__ | ||
| 490 | #define __ID3D12Device14_FWD_DEFINED__ | ||
| 491 | typedef interface ID3D12Device14 ID3D12Device14; | ||
| 492 | |||
| 493 | #endif /* __ID3D12Device14_FWD_DEFINED__ */ | ||
| 494 | |||
| 495 | |||
| 496 | #ifndef __ID3D12StateObjectDatabase_FWD_DEFINED__ | ||
| 497 | #define __ID3D12StateObjectDatabase_FWD_DEFINED__ | ||
| 498 | typedef interface ID3D12StateObjectDatabase ID3D12StateObjectDatabase; | ||
| 499 | |||
| 500 | #endif /* __ID3D12StateObjectDatabase_FWD_DEFINED__ */ | ||
| 501 | |||
| 502 | |||
| 503 | #ifndef __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ | ||
| 504 | #define __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ | ||
| 505 | typedef interface ID3D12VirtualizationGuestDevice ID3D12VirtualizationGuestDevice; | ||
| 506 | |||
| 507 | #endif /* __ID3D12VirtualizationGuestDevice_FWD_DEFINED__ */ | ||
| 508 | |||
| 509 | |||
| 510 | #ifndef __ID3D12Tools_FWD_DEFINED__ | ||
| 511 | #define __ID3D12Tools_FWD_DEFINED__ | ||
| 512 | typedef interface ID3D12Tools ID3D12Tools; | ||
| 513 | |||
| 514 | #endif /* __ID3D12Tools_FWD_DEFINED__ */ | ||
| 515 | |||
| 516 | |||
| 517 | #ifndef __ID3D12Tools1_FWD_DEFINED__ | ||
| 518 | #define __ID3D12Tools1_FWD_DEFINED__ | ||
| 519 | typedef interface ID3D12Tools1 ID3D12Tools1; | ||
| 520 | |||
| 521 | #endif /* __ID3D12Tools1_FWD_DEFINED__ */ | ||
| 522 | |||
| 523 | |||
| 524 | #ifndef __ID3D12Tools2_FWD_DEFINED__ | ||
| 525 | #define __ID3D12Tools2_FWD_DEFINED__ | ||
| 526 | typedef interface ID3D12Tools2 ID3D12Tools2; | ||
| 527 | |||
| 528 | #endif /* __ID3D12Tools2_FWD_DEFINED__ */ | ||
| 529 | |||
| 530 | |||
| 531 | #ifndef __ID3D12PageableTools_FWD_DEFINED__ | ||
| 532 | #define __ID3D12PageableTools_FWD_DEFINED__ | ||
| 533 | typedef interface ID3D12PageableTools ID3D12PageableTools; | ||
| 534 | |||
| 535 | #endif /* __ID3D12PageableTools_FWD_DEFINED__ */ | ||
| 536 | |||
| 537 | |||
| 538 | #ifndef __ID3D12DeviceTools_FWD_DEFINED__ | ||
| 539 | #define __ID3D12DeviceTools_FWD_DEFINED__ | ||
| 540 | typedef interface ID3D12DeviceTools ID3D12DeviceTools; | ||
| 541 | |||
| 542 | #endif /* __ID3D12DeviceTools_FWD_DEFINED__ */ | ||
| 543 | |||
| 544 | |||
| 545 | #ifndef __ID3D12DeviceTools1_FWD_DEFINED__ | ||
| 546 | #define __ID3D12DeviceTools1_FWD_DEFINED__ | ||
| 547 | typedef interface ID3D12DeviceTools1 ID3D12DeviceTools1; | ||
| 548 | |||
| 549 | #endif /* __ID3D12DeviceTools1_FWD_DEFINED__ */ | ||
| 550 | |||
| 551 | |||
| 552 | #ifndef __ID3D12SDKConfiguration_FWD_DEFINED__ | ||
| 553 | #define __ID3D12SDKConfiguration_FWD_DEFINED__ | ||
| 554 | typedef interface ID3D12SDKConfiguration ID3D12SDKConfiguration; | ||
| 555 | |||
| 556 | #endif /* __ID3D12SDKConfiguration_FWD_DEFINED__ */ | ||
| 557 | |||
| 558 | |||
| 559 | #ifndef __ID3D12SDKConfiguration1_FWD_DEFINED__ | ||
| 560 | #define __ID3D12SDKConfiguration1_FWD_DEFINED__ | ||
| 561 | typedef interface ID3D12SDKConfiguration1 ID3D12SDKConfiguration1; | ||
| 562 | |||
| 563 | #endif /* __ID3D12SDKConfiguration1_FWD_DEFINED__ */ | ||
| 564 | |||
| 565 | |||
| 566 | #ifndef __ID3D12DeviceFactory_FWD_DEFINED__ | ||
| 567 | #define __ID3D12DeviceFactory_FWD_DEFINED__ | ||
| 568 | typedef interface ID3D12DeviceFactory ID3D12DeviceFactory; | ||
| 569 | |||
| 570 | #endif /* __ID3D12DeviceFactory_FWD_DEFINED__ */ | ||
| 571 | |||
| 572 | |||
| 573 | #ifndef __ID3D12DeviceConfiguration_FWD_DEFINED__ | ||
| 574 | #define __ID3D12DeviceConfiguration_FWD_DEFINED__ | ||
| 575 | typedef interface ID3D12DeviceConfiguration ID3D12DeviceConfiguration; | ||
| 576 | |||
| 577 | #endif /* __ID3D12DeviceConfiguration_FWD_DEFINED__ */ | ||
| 578 | |||
| 579 | |||
| 580 | #ifndef __ID3D12DeviceConfiguration1_FWD_DEFINED__ | ||
| 581 | #define __ID3D12DeviceConfiguration1_FWD_DEFINED__ | ||
| 582 | typedef interface ID3D12DeviceConfiguration1 ID3D12DeviceConfiguration1; | ||
| 583 | |||
| 584 | #endif /* __ID3D12DeviceConfiguration1_FWD_DEFINED__ */ | ||
| 585 | |||
| 586 | |||
| 587 | #ifndef __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ | ||
| 588 | #define __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ | ||
| 589 | typedef interface ID3D12StateObjectDatabaseFactory ID3D12StateObjectDatabaseFactory; | ||
| 590 | |||
| 591 | #endif /* __ID3D12StateObjectDatabaseFactory_FWD_DEFINED__ */ | ||
| 592 | |||
| 593 | |||
| 594 | #ifndef __ID3D12GraphicsCommandList5_FWD_DEFINED__ | ||
| 595 | #define __ID3D12GraphicsCommandList5_FWD_DEFINED__ | ||
| 596 | typedef interface ID3D12GraphicsCommandList5 ID3D12GraphicsCommandList5; | ||
| 597 | |||
| 598 | #endif /* __ID3D12GraphicsCommandList5_FWD_DEFINED__ */ | ||
| 599 | |||
| 600 | |||
| 601 | #ifndef __ID3D12GraphicsCommandList6_FWD_DEFINED__ | ||
| 602 | #define __ID3D12GraphicsCommandList6_FWD_DEFINED__ | ||
| 603 | typedef interface ID3D12GraphicsCommandList6 ID3D12GraphicsCommandList6; | ||
| 604 | |||
| 605 | #endif /* __ID3D12GraphicsCommandList6_FWD_DEFINED__ */ | ||
| 606 | |||
| 607 | |||
| 608 | #ifndef __ID3D12GraphicsCommandList7_FWD_DEFINED__ | ||
| 609 | #define __ID3D12GraphicsCommandList7_FWD_DEFINED__ | ||
| 610 | typedef interface ID3D12GraphicsCommandList7 ID3D12GraphicsCommandList7; | ||
| 611 | |||
| 612 | #endif /* __ID3D12GraphicsCommandList7_FWD_DEFINED__ */ | ||
| 613 | |||
| 614 | |||
| 615 | #ifndef __ID3D12GraphicsCommandList8_FWD_DEFINED__ | ||
| 616 | #define __ID3D12GraphicsCommandList8_FWD_DEFINED__ | ||
| 617 | typedef interface ID3D12GraphicsCommandList8 ID3D12GraphicsCommandList8; | ||
| 618 | |||
| 619 | #endif /* __ID3D12GraphicsCommandList8_FWD_DEFINED__ */ | ||
| 620 | |||
| 621 | |||
| 622 | #ifndef __ID3D12GraphicsCommandList9_FWD_DEFINED__ | ||
| 623 | #define __ID3D12GraphicsCommandList9_FWD_DEFINED__ | ||
| 624 | typedef interface ID3D12GraphicsCommandList9 ID3D12GraphicsCommandList9; | ||
| 625 | |||
| 626 | #endif /* __ID3D12GraphicsCommandList9_FWD_DEFINED__ */ | ||
| 627 | |||
| 628 | |||
| 629 | #ifndef __ID3D12GraphicsCommandList10_FWD_DEFINED__ | ||
| 630 | #define __ID3D12GraphicsCommandList10_FWD_DEFINED__ | ||
| 631 | typedef interface ID3D12GraphicsCommandList10 ID3D12GraphicsCommandList10; | ||
| 632 | |||
| 633 | #endif /* __ID3D12GraphicsCommandList10_FWD_DEFINED__ */ | ||
| 634 | |||
| 635 | |||
| 636 | #ifndef __ID3D12DSRDeviceFactory_FWD_DEFINED__ | ||
| 637 | #define __ID3D12DSRDeviceFactory_FWD_DEFINED__ | ||
| 638 | typedef interface ID3D12DSRDeviceFactory ID3D12DSRDeviceFactory; | ||
| 639 | |||
| 640 | #endif /* __ID3D12DSRDeviceFactory_FWD_DEFINED__ */ | ||
| 641 | |||
| 642 | |||
| 643 | #ifndef __ID3D12GBVDiagnostics_FWD_DEFINED__ | ||
| 644 | #define __ID3D12GBVDiagnostics_FWD_DEFINED__ | ||
| 645 | typedef interface ID3D12GBVDiagnostics ID3D12GBVDiagnostics; | ||
| 646 | |||
| 647 | #endif /* __ID3D12GBVDiagnostics_FWD_DEFINED__ */ | ||
| 648 | |||
| 649 | |||
| 650 | /* header files for imported files */ | ||
| 651 | #include "oaidl.h" | ||
| 652 | #include "ocidl.h" | ||
| 653 | #include "dxgicommon.h" | ||
| 654 | #include "dxgiformat.h" | ||
| 655 | #include "d3dcommon.h" | ||
| 656 | |||
| 657 | #ifdef __cplusplus | ||
| 658 | extern "C"{ | ||
| 659 | #endif | ||
| 660 | |||
| 661 | |||
| 662 | /* interface __MIDL_itf_d3d12_0000_0000 */ | ||
| 663 | /* [local] */ | ||
| 664 | |||
| 665 | #include <winapifamily.h> | ||
| 666 | #pragma region App Family | ||
| 667 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) | ||
| 668 | #ifndef _D3D12_CONSTANTS | ||
| 669 | #define _D3D12_CONSTANTS | ||
| 670 | #define D3D12_16BIT_INDEX_STRIP_CUT_VALUE ( 0xffff ) | ||
| 671 | |||
| 672 | #define D3D12_32BIT_INDEX_STRIP_CUT_VALUE ( 0xffffffff ) | ||
| 673 | |||
| 674 | #define D3D12_8BIT_INDEX_STRIP_CUT_VALUE ( 0xff ) | ||
| 675 | |||
| 676 | #define D3D12_APPEND_ALIGNED_ELEMENT ( 0xffffffff ) | ||
| 677 | |||
| 678 | #define D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT ( 9 ) | ||
| 679 | |||
| 680 | #define D3D12_CLIP_OR_CULL_DISTANCE_COUNT ( 8 ) | ||
| 681 | |||
| 682 | #define D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT ( 2 ) | ||
| 683 | |||
| 684 | #define D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT ( 14 ) | ||
| 685 | |||
| 686 | #define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS ( 4 ) | ||
| 687 | |||
| 688 | #define D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 689 | |||
| 690 | #define D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT ( 15 ) | ||
| 691 | |||
| 692 | #define D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT ( 16 ) | ||
| 693 | |||
| 694 | #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) | ||
| 695 | |||
| 696 | #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT ( 15 ) | ||
| 697 | |||
| 698 | #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) | ||
| 699 | |||
| 700 | #define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) | ||
| 701 | |||
| 702 | #define D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT ( 64 ) | ||
| 703 | |||
| 704 | #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS ( 4 ) | ||
| 705 | |||
| 706 | #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT ( 1 ) | ||
| 707 | |||
| 708 | #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST ( 1 ) | ||
| 709 | |||
| 710 | #define D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS ( 1 ) | ||
| 711 | |||
| 712 | #define D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT ( 32 ) | ||
| 713 | |||
| 714 | #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS ( 1 ) | ||
| 715 | |||
| 716 | #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT ( 128 ) | ||
| 717 | |||
| 718 | #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST ( 1 ) | ||
| 719 | |||
| 720 | #define D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS ( 1 ) | ||
| 721 | |||
| 722 | #define D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT ( 128 ) | ||
| 723 | |||
| 724 | #define D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS ( 1 ) | ||
| 725 | |||
| 726 | #define D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT ( 16 ) | ||
| 727 | |||
| 728 | #define D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST ( 1 ) | ||
| 729 | |||
| 730 | #define D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS ( 1 ) | ||
| 731 | |||
| 732 | #define D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT ( 16 ) | ||
| 733 | |||
| 734 | #define D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT ( 32 ) | ||
| 735 | |||
| 736 | #define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS ( 4 ) | ||
| 737 | |||
| 738 | #define D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 739 | |||
| 740 | #define D3D12_COMMONSHADER_TEMP_REGISTER_COUNT ( 4096 ) | ||
| 741 | |||
| 742 | #define D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST ( 3 ) | ||
| 743 | |||
| 744 | #define D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS ( 3 ) | ||
| 745 | |||
| 746 | #define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX ( 10 ) | ||
| 747 | |||
| 748 | #define D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN ( -10 ) | ||
| 749 | |||
| 750 | #define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE ( -8 ) | ||
| 751 | |||
| 752 | #define D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE ( 7 ) | ||
| 753 | |||
| 754 | #define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT ( 256 ) | ||
| 755 | |||
| 756 | #define D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 256 ) | ||
| 757 | |||
| 758 | #define D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP ( 64 ) | ||
| 759 | |||
| 760 | #define D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 240 ) | ||
| 761 | |||
| 762 | #define D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP ( 68 ) | ||
| 763 | |||
| 764 | #define D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 224 ) | ||
| 765 | |||
| 766 | #define D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP ( 72 ) | ||
| 767 | |||
| 768 | #define D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 208 ) | ||
| 769 | |||
| 770 | #define D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP ( 76 ) | ||
| 771 | |||
| 772 | #define D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 192 ) | ||
| 773 | |||
| 774 | #define D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP ( 84 ) | ||
| 775 | |||
| 776 | #define D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 176 ) | ||
| 777 | |||
| 778 | #define D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP ( 92 ) | ||
| 779 | |||
| 780 | #define D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 160 ) | ||
| 781 | |||
| 782 | #define D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP ( 100 ) | ||
| 783 | |||
| 784 | #define D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 144 ) | ||
| 785 | |||
| 786 | #define D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP ( 112 ) | ||
| 787 | |||
| 788 | #define D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 128 ) | ||
| 789 | |||
| 790 | #define D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP ( 128 ) | ||
| 791 | |||
| 792 | #define D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 112 ) | ||
| 793 | |||
| 794 | #define D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP ( 144 ) | ||
| 795 | |||
| 796 | #define D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 96 ) | ||
| 797 | |||
| 798 | #define D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP ( 168 ) | ||
| 799 | |||
| 800 | #define D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 80 ) | ||
| 801 | |||
| 802 | #define D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP ( 204 ) | ||
| 803 | |||
| 804 | #define D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 64 ) | ||
| 805 | |||
| 806 | #define D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP ( 256 ) | ||
| 807 | |||
| 808 | #define D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 48 ) | ||
| 809 | |||
| 810 | #define D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP ( 340 ) | ||
| 811 | |||
| 812 | #define D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 32 ) | ||
| 813 | |||
| 814 | #define D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP ( 512 ) | ||
| 815 | |||
| 816 | #define D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD ( 16 ) | ||
| 817 | |||
| 818 | #define D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP ( 768 ) | ||
| 819 | |||
| 820 | #define D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION ( 1 ) | ||
| 821 | |||
| 822 | #define D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT ( 256 ) | ||
| 823 | |||
| 824 | #define D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 768 ) | ||
| 825 | |||
| 826 | #define D3D12_CS_4_X_THREAD_GROUP_MAX_X ( 768 ) | ||
| 827 | |||
| 828 | #define D3D12_CS_4_X_THREAD_GROUP_MAX_Y ( 768 ) | ||
| 829 | |||
| 830 | #define D3D12_CS_4_X_UAV_REGISTER_COUNT ( 1 ) | ||
| 831 | |||
| 832 | #define D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION ( 65535 ) | ||
| 833 | |||
| 834 | #define D3D12_CS_TGSM_REGISTER_COUNT ( 8192 ) | ||
| 835 | |||
| 836 | #define D3D12_CS_TGSM_REGISTER_READS_PER_INST ( 1 ) | ||
| 837 | |||
| 838 | #define D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS ( 1 ) | ||
| 839 | |||
| 840 | #define D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS ( 1 ) | ||
| 841 | |||
| 842 | #define D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS ( 3 ) | ||
| 843 | |||
| 844 | #define D3D12_CS_THREADGROUPID_REGISTER_COUNT ( 1 ) | ||
| 845 | |||
| 846 | #define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS ( 1 ) | ||
| 847 | |||
| 848 | #define D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT ( 1 ) | ||
| 849 | |||
| 850 | #define D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS ( 3 ) | ||
| 851 | |||
| 852 | #define D3D12_CS_THREADIDINGROUP_REGISTER_COUNT ( 1 ) | ||
| 853 | |||
| 854 | #define D3D12_CS_THREADID_REGISTER_COMPONENTS ( 3 ) | ||
| 855 | |||
| 856 | #define D3D12_CS_THREADID_REGISTER_COUNT ( 1 ) | ||
| 857 | |||
| 858 | #define D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP ( 1024 ) | ||
| 859 | |||
| 860 | #define D3D12_CS_THREAD_GROUP_MAX_X ( 1024 ) | ||
| 861 | |||
| 862 | #define D3D12_CS_THREAD_GROUP_MAX_Y ( 1024 ) | ||
| 863 | |||
| 864 | #define D3D12_CS_THREAD_GROUP_MAX_Z ( 64 ) | ||
| 865 | |||
| 866 | #define D3D12_CS_THREAD_GROUP_MIN_X ( 1 ) | ||
| 867 | |||
| 868 | #define D3D12_CS_THREAD_GROUP_MIN_Y ( 1 ) | ||
| 869 | |||
| 870 | #define D3D12_CS_THREAD_GROUP_MIN_Z ( 1 ) | ||
| 871 | |||
| 872 | #define D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL ( 16384 ) | ||
| 873 | |||
| 874 | #define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f ) | ||
| 875 | #define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f ) | ||
| 876 | #define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f ) | ||
| 877 | #define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f ) | ||
| 878 | #define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f ) | ||
| 879 | #define D3D12_DEFAULT_DEPTH_BIAS ( 0 ) | ||
| 880 | |||
| 881 | #define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f ) | ||
| 882 | #define D3D12_DEFAULT_MAX_ANISOTROPY ( 16 ) | ||
| 883 | |||
| 884 | #define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f ) | ||
| 885 | #define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 4194304 ) | ||
| 886 | |||
| 887 | #define D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX ( 0 ) | ||
| 888 | |||
| 889 | #define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) | ||
| 890 | |||
| 891 | #define D3D12_DEFAULT_SAMPLE_MASK ( 0xffffffff ) | ||
| 892 | |||
| 893 | #define D3D12_DEFAULT_SCISSOR_ENDX ( 0 ) | ||
| 894 | |||
| 895 | #define D3D12_DEFAULT_SCISSOR_ENDY ( 0 ) | ||
| 896 | |||
| 897 | #define D3D12_DEFAULT_SCISSOR_STARTX ( 0 ) | ||
| 898 | |||
| 899 | #define D3D12_DEFAULT_SCISSOR_STARTY ( 0 ) | ||
| 900 | |||
| 901 | #define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f ) | ||
| 902 | #define D3D12_DEFAULT_STENCIL_READ_MASK ( 0xff ) | ||
| 903 | |||
| 904 | #define D3D12_DEFAULT_STENCIL_REFERENCE ( 0 ) | ||
| 905 | |||
| 906 | #define D3D12_DEFAULT_STENCIL_WRITE_MASK ( 0xff ) | ||
| 907 | |||
| 908 | #define D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX ( 0 ) | ||
| 909 | |||
| 910 | #define D3D12_DEFAULT_VIEWPORT_HEIGHT ( 0 ) | ||
| 911 | |||
| 912 | #define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f ) | ||
| 913 | #define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f ) | ||
| 914 | #define D3D12_DEFAULT_VIEWPORT_TOPLEFTX ( 0 ) | ||
| 915 | |||
| 916 | #define D3D12_DEFAULT_VIEWPORT_TOPLEFTY ( 0 ) | ||
| 917 | |||
| 918 | #define D3D12_DEFAULT_VIEWPORT_WIDTH ( 0 ) | ||
| 919 | |||
| 920 | #define D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND ( 0xffffffff ) | ||
| 921 | |||
| 922 | #define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END ( 0xfffffff7 ) | ||
| 923 | |||
| 924 | #define D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) | ||
| 925 | |||
| 926 | #define D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) | ||
| 927 | |||
| 928 | #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) | ||
| 929 | |||
| 930 | #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 931 | |||
| 932 | #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT ( 32 ) | ||
| 933 | |||
| 934 | #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) | ||
| 935 | |||
| 936 | #define D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) | ||
| 937 | |||
| 938 | #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS ( 3 ) | ||
| 939 | |||
| 940 | #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 941 | |||
| 942 | #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT ( 1 ) | ||
| 943 | |||
| 944 | #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST ( 2 ) | ||
| 945 | |||
| 946 | #define D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS ( 1 ) | ||
| 947 | |||
| 948 | #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) | ||
| 949 | |||
| 950 | #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 951 | |||
| 952 | #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) | ||
| 953 | |||
| 954 | #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) | ||
| 955 | |||
| 956 | #define D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) | ||
| 957 | |||
| 958 | #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) | ||
| 959 | |||
| 960 | #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 961 | |||
| 962 | #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) | ||
| 963 | |||
| 964 | #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) | ||
| 965 | |||
| 966 | #define D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) | ||
| 967 | |||
| 968 | #define D3D12_DS_OUTPUT_REGISTER_COMPONENTS ( 4 ) | ||
| 969 | |||
| 970 | #define D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 971 | |||
| 972 | #define D3D12_DS_OUTPUT_REGISTER_COUNT ( 32 ) | ||
| 973 | |||
| 974 | #define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 ) | ||
| 975 | #define D3D12_FLOAT32_MAX ( 3.402823466e+38f ) | ||
| 976 | #define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f ) | ||
| 977 | #define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f ) | ||
| 978 | #define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f ) | ||
| 979 | #define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f ) | ||
| 980 | #define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f ) | ||
| 981 | #define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f ) | ||
| 982 | #define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f ) | ||
| 983 | #define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f ) | ||
| 984 | #define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f ) | ||
| 985 | #define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f ) | ||
| 986 | #define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f ) | ||
| 987 | #define D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST ( 2 ) | ||
| 988 | |||
| 989 | #define D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS ( 1 ) | ||
| 990 | |||
| 991 | #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) | ||
| 992 | |||
| 993 | #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 994 | |||
| 995 | #define D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT ( 1 ) | ||
| 996 | |||
| 997 | #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS ( 1 ) | ||
| 998 | |||
| 999 | #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1000 | |||
| 1001 | #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT ( 1 ) | ||
| 1002 | |||
| 1003 | #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST ( 2 ) | ||
| 1004 | |||
| 1005 | #define D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS ( 1 ) | ||
| 1006 | |||
| 1007 | #define D3D12_GS_INPUT_REGISTER_COMPONENTS ( 4 ) | ||
| 1008 | |||
| 1009 | #define D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1010 | |||
| 1011 | #define D3D12_GS_INPUT_REGISTER_COUNT ( 32 ) | ||
| 1012 | |||
| 1013 | #define D3D12_GS_INPUT_REGISTER_READS_PER_INST ( 2 ) | ||
| 1014 | |||
| 1015 | #define D3D12_GS_INPUT_REGISTER_READ_PORTS ( 1 ) | ||
| 1016 | |||
| 1017 | #define D3D12_GS_INPUT_REGISTER_VERTICES ( 32 ) | ||
| 1018 | |||
| 1019 | #define D3D12_GS_MAX_INSTANCE_COUNT ( 32 ) | ||
| 1020 | |||
| 1021 | #define D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES ( 1024 ) | ||
| 1022 | |||
| 1023 | #define D3D12_GS_OUTPUT_ELEMENTS ( 32 ) | ||
| 1024 | |||
| 1025 | #define D3D12_GS_OUTPUT_REGISTER_COMPONENTS ( 4 ) | ||
| 1026 | |||
| 1027 | #define D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1028 | |||
| 1029 | #define D3D12_GS_OUTPUT_REGISTER_COUNT ( 32 ) | ||
| 1030 | |||
| 1031 | #define D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT ( 32 ) | ||
| 1032 | |||
| 1033 | #define D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT ( 32 ) | ||
| 1034 | |||
| 1035 | #define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS ( 4 ) | ||
| 1036 | |||
| 1037 | #define D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1038 | |||
| 1039 | #define D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST ( 2 ) | ||
| 1040 | |||
| 1041 | #define D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS ( 1 ) | ||
| 1042 | |||
| 1043 | #define D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) | ||
| 1044 | |||
| 1045 | #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) | ||
| 1046 | |||
| 1047 | #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1048 | |||
| 1049 | #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT ( 1 ) | ||
| 1050 | |||
| 1051 | #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) | ||
| 1052 | |||
| 1053 | #define D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) | ||
| 1054 | |||
| 1055 | #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS ( 1 ) | ||
| 1056 | |||
| 1057 | #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1058 | |||
| 1059 | #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT ( 1 ) | ||
| 1060 | |||
| 1061 | #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST ( 2 ) | ||
| 1062 | |||
| 1063 | #define D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS ( 1 ) | ||
| 1064 | |||
| 1065 | #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS ( 1 ) | ||
| 1066 | |||
| 1067 | #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1068 | |||
| 1069 | #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT ( 1 ) | ||
| 1070 | |||
| 1071 | #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST ( 2 ) | ||
| 1072 | |||
| 1073 | #define D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS ( 1 ) | ||
| 1074 | |||
| 1075 | #define D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND ( 0xffffffff ) | ||
| 1076 | |||
| 1077 | #define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f ) | ||
| 1078 | #define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f ) | ||
| 1079 | #define D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS ( 3968 ) | ||
| 1080 | |||
| 1081 | #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS ( 1 ) | ||
| 1082 | |||
| 1083 | #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1084 | |||
| 1085 | #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT ( 1 ) | ||
| 1086 | |||
| 1087 | #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST ( 2 ) | ||
| 1088 | |||
| 1089 | #define D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS ( 1 ) | ||
| 1090 | |||
| 1091 | #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS ( 4 ) | ||
| 1092 | |||
| 1093 | #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1094 | |||
| 1095 | #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT ( 32 ) | ||
| 1096 | |||
| 1097 | #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST ( 2 ) | ||
| 1098 | |||
| 1099 | #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS ( 1 ) | ||
| 1100 | |||
| 1101 | #define D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS ( 128 ) | ||
| 1102 | |||
| 1103 | #define D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES ( 0 ) | ||
| 1104 | |||
| 1105 | #define D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY ( 0 ) | ||
| 1106 | |||
| 1107 | #define D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES ( 0 ) | ||
| 1108 | |||
| 1109 | #define D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT ( 1 ) | ||
| 1110 | |||
| 1111 | #define D3D12_IA_INSTANCE_ID_BIT_COUNT ( 32 ) | ||
| 1112 | |||
| 1113 | #define D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT ( 32 ) | ||
| 1114 | |||
| 1115 | #define D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT ( 32 ) | ||
| 1116 | |||
| 1117 | #define D3D12_IA_PRIMITIVE_ID_BIT_COUNT ( 32 ) | ||
| 1118 | |||
| 1119 | #define D3D12_IA_VERTEX_ID_BIT_COUNT ( 32 ) | ||
| 1120 | |||
| 1121 | #define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT ( 32 ) | ||
| 1122 | |||
| 1123 | #define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS ( 128 ) | ||
| 1124 | |||
| 1125 | #define D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT ( 32 ) | ||
| 1126 | |||
| 1127 | #define D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT ( 0xffffffff ) | ||
| 1128 | |||
| 1129 | #define D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER ( 0xffffffff ) | ||
| 1130 | |||
| 1131 | #define D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL ( 0xffffffff ) | ||
| 1132 | |||
| 1133 | #define D3D12_KEEP_UNORDERED_ACCESS_VIEWS ( 0xffffffff ) | ||
| 1134 | |||
| 1135 | #define D3D12_LINEAR_GAMMA ( 1.0f ) | ||
| 1136 | #define D3D12_MAJOR_VERSION ( 12 ) | ||
| 1137 | |||
| 1138 | #define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f ) | ||
| 1139 | #define D3D12_MAX_DEPTH ( 1.0f ) | ||
| 1140 | #define D3D12_MAX_LIVE_STATIC_SAMPLERS ( 2032 ) | ||
| 1141 | |||
| 1142 | #define D3D12_MAX_MAXANISOTROPY ( 16 ) | ||
| 1143 | |||
| 1144 | #define D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT ( 32 ) | ||
| 1145 | |||
| 1146 | #define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f ) | ||
| 1147 | #define D3D12_MAX_ROOT_COST ( 64 ) | ||
| 1148 | |||
| 1149 | #define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 ( 1000000 ) | ||
| 1150 | |||
| 1151 | #define D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 ( 1000000 ) | ||
| 1152 | |||
| 1153 | #define D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE ( 2048 ) | ||
| 1154 | |||
| 1155 | #define D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP ( 17 ) | ||
| 1156 | |||
| 1157 | #define D3D12_MAX_VIEW_INSTANCE_COUNT ( 4 ) | ||
| 1158 | |||
| 1159 | #define D3D12_MINOR_VERSION ( 0 ) | ||
| 1160 | |||
| 1161 | #define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f ) | ||
| 1162 | #define D3D12_MIN_DEPTH ( 0.0f ) | ||
| 1163 | #define D3D12_MIN_MAXANISOTROPY ( 0 ) | ||
| 1164 | |||
| 1165 | #define D3D12_MIP_LOD_BIAS_MAX ( 15.99f ) | ||
| 1166 | #define D3D12_MIP_LOD_BIAS_MIN ( -16.0f ) | ||
| 1167 | #define D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT ( 8 ) | ||
| 1168 | |||
| 1169 | #define D3D12_MIP_LOD_RANGE_BIT_COUNT ( 8 ) | ||
| 1170 | |||
| 1171 | #define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f ) | ||
| 1172 | #define D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT ( 0 ) | ||
| 1173 | |||
| 1174 | #define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) | ||
| 1175 | |||
| 1176 | #define D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff8 ) | ||
| 1177 | |||
| 1178 | #define D3D12_PACKED_TILE ( 0xffffffff ) | ||
| 1179 | |||
| 1180 | #define D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 15 ) | ||
| 1181 | |||
| 1182 | #define D3D12_PREVIEW_SDK_VERSION ( 717 ) | ||
| 1183 | |||
| 1184 | #define D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) | ||
| 1185 | |||
| 1186 | #define D3D12_PS_CS_UAV_REGISTER_COMPONENTS ( 1 ) | ||
| 1187 | |||
| 1188 | #define D3D12_PS_CS_UAV_REGISTER_COUNT ( 8 ) | ||
| 1189 | |||
| 1190 | #define D3D12_PS_CS_UAV_REGISTER_READS_PER_INST ( 1 ) | ||
| 1191 | |||
| 1192 | #define D3D12_PS_CS_UAV_REGISTER_READ_PORTS ( 1 ) | ||
| 1193 | |||
| 1194 | #define D3D12_PS_FRONTFACING_DEFAULT_VALUE ( 0xffffffff ) | ||
| 1195 | |||
| 1196 | #define D3D12_PS_FRONTFACING_FALSE_VALUE ( 0 ) | ||
| 1197 | |||
| 1198 | #define D3D12_PS_FRONTFACING_TRUE_VALUE ( 0xffffffff ) | ||
| 1199 | |||
| 1200 | #define D3D12_PS_INPUT_REGISTER_COMPONENTS ( 4 ) | ||
| 1201 | |||
| 1202 | #define D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1203 | |||
| 1204 | #define D3D12_PS_INPUT_REGISTER_COUNT ( 32 ) | ||
| 1205 | |||
| 1206 | #define D3D12_PS_INPUT_REGISTER_READS_PER_INST ( 2 ) | ||
| 1207 | |||
| 1208 | #define D3D12_PS_INPUT_REGISTER_READ_PORTS ( 1 ) | ||
| 1209 | |||
| 1210 | #define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f ) | ||
| 1211 | #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS ( 1 ) | ||
| 1212 | |||
| 1213 | #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1214 | |||
| 1215 | #define D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT ( 1 ) | ||
| 1216 | |||
| 1217 | #define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS ( 1 ) | ||
| 1218 | |||
| 1219 | #define D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1220 | |||
| 1221 | #define D3D12_PS_OUTPUT_MASK_REGISTER_COUNT ( 1 ) | ||
| 1222 | |||
| 1223 | #define D3D12_PS_OUTPUT_REGISTER_COMPONENTS ( 4 ) | ||
| 1224 | |||
| 1225 | #define D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1226 | |||
| 1227 | #define D3D12_PS_OUTPUT_REGISTER_COUNT ( 8 ) | ||
| 1228 | |||
| 1229 | #define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f ) | ||
| 1230 | #define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT ( 16 ) | ||
| 1231 | |||
| 1232 | #define D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT ( 8 ) | ||
| 1233 | |||
| 1234 | #define D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT ( 256 ) | ||
| 1235 | |||
| 1236 | #define D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT ( 16 ) | ||
| 1237 | |||
| 1238 | #define D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES ( 32 ) | ||
| 1239 | |||
| 1240 | #define D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH ( 31 ) | ||
| 1241 | |||
| 1242 | #define D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 16777216 ) | ||
| 1243 | |||
| 1244 | #define D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE ( 16777216 ) | ||
| 1245 | |||
| 1246 | #define D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE ( 536870912 ) | ||
| 1247 | |||
| 1248 | #define D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS ( 1073741824 ) | ||
| 1249 | |||
| 1250 | #define D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE ( 4096 ) | ||
| 1251 | |||
| 1252 | #define D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT ( 128 ) | ||
| 1253 | |||
| 1254 | #define D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL ( 12 ) | ||
| 1255 | |||
| 1256 | #define D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT ( 32 ) | ||
| 1257 | |||
| 1258 | #define D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT ( 64 ) | ||
| 1259 | |||
| 1260 | #define D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT ( 16 ) | ||
| 1261 | |||
| 1262 | #define D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE ( 4096 ) | ||
| 1263 | |||
| 1264 | #define D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP ( 27 ) | ||
| 1265 | |||
| 1266 | #define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) | ||
| 1267 | |||
| 1268 | #define D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE ( 4096 ) | ||
| 1269 | |||
| 1270 | #define D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 32 ) | ||
| 1271 | |||
| 1272 | #define D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP ( 32 ) | ||
| 1273 | |||
| 1274 | #define D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION ( 16384 ) | ||
| 1275 | |||
| 1276 | #define D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT ( 1024 ) | ||
| 1277 | |||
| 1278 | #define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT ( 4096 ) | ||
| 1279 | |||
| 1280 | #define D3D12_REQ_MAXANISOTROPY ( 16 ) | ||
| 1281 | |||
| 1282 | #define D3D12_REQ_MIP_LEVELS ( 15 ) | ||
| 1283 | |||
| 1284 | #define D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES ( 2048 ) | ||
| 1285 | |||
| 1286 | #define D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE ( 4096 ) | ||
| 1287 | |||
| 1288 | #define D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH ( 16384 ) | ||
| 1289 | |||
| 1290 | #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM ( 128 ) | ||
| 1291 | |||
| 1292 | #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f ) | ||
| 1293 | #define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM ( 2048 ) | ||
| 1294 | |||
| 1295 | #define D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP ( 20 ) | ||
| 1296 | |||
| 1297 | #define D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE ( 4096 ) | ||
| 1298 | |||
| 1299 | #define D3D12_REQ_SUBRESOURCES ( 30720 ) | ||
| 1300 | |||
| 1301 | #define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION ( 2048 ) | ||
| 1302 | |||
| 1303 | #define D3D12_REQ_TEXTURE1D_U_DIMENSION ( 16384 ) | ||
| 1304 | |||
| 1305 | #define D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION ( 2048 ) | ||
| 1306 | |||
| 1307 | #define D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION ( 16384 ) | ||
| 1308 | |||
| 1309 | #define D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION ( 2048 ) | ||
| 1310 | |||
| 1311 | #define D3D12_REQ_TEXTURECUBE_DIMENSION ( 16384 ) | ||
| 1312 | |||
| 1313 | #define D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL ( 0 ) | ||
| 1314 | |||
| 1315 | #define D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES ( 0xffffffff ) | ||
| 1316 | |||
| 1317 | #define D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT ( 2 ) | ||
| 1318 | |||
| 1319 | #define D3D12_SDK_VERSION ( 618 ) | ||
| 1320 | |||
| 1321 | #define D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES ( 32 ) | ||
| 1322 | |||
| 1323 | #define D3D12_SHADER_MAJOR_VERSION ( 5 ) | ||
| 1324 | |||
| 1325 | #define D3D12_SHADER_MAX_INSTANCES ( 65535 ) | ||
| 1326 | |||
| 1327 | #define D3D12_SHADER_MAX_INTERFACES ( 253 ) | ||
| 1328 | |||
| 1329 | #define D3D12_SHADER_MAX_INTERFACE_CALL_SITES ( 4096 ) | ||
| 1330 | |||
| 1331 | #define D3D12_SHADER_MAX_TYPES ( 65535 ) | ||
| 1332 | |||
| 1333 | #define D3D12_SHADER_MINOR_VERSION ( 1 ) | ||
| 1334 | |||
| 1335 | #define D3D12_SHIFT_INSTRUCTION_PAD_VALUE ( 0 ) | ||
| 1336 | |||
| 1337 | #define D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT ( 5 ) | ||
| 1338 | |||
| 1339 | #define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ( 8 ) | ||
| 1340 | |||
| 1341 | #define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT ( 65536 ) | ||
| 1342 | |||
| 1343 | #define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT ( 4096 ) | ||
| 1344 | |||
| 1345 | #define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES ( 2048 ) | ||
| 1346 | |||
| 1347 | #define D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES ( 512 ) | ||
| 1348 | |||
| 1349 | #define D3D12_SO_BUFFER_SLOT_COUNT ( 4 ) | ||
| 1350 | |||
| 1351 | #define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP ( 0xffffffff ) | ||
| 1352 | |||
| 1353 | #define D3D12_SO_NO_RASTERIZED_STREAM ( 0xffffffff ) | ||
| 1354 | |||
| 1355 | #define D3D12_SO_OUTPUT_COMPONENT_COUNT ( 128 ) | ||
| 1356 | |||
| 1357 | #define D3D12_SO_STREAM_COUNT ( 4 ) | ||
| 1358 | |||
| 1359 | #define D3D12_SPEC_DATE_DAY ( 14 ) | ||
| 1360 | |||
| 1361 | #define D3D12_SPEC_DATE_MONTH ( 11 ) | ||
| 1362 | |||
| 1363 | #define D3D12_SPEC_DATE_YEAR ( 2014 ) | ||
| 1364 | |||
| 1365 | #define D3D12_SPEC_VERSION ( 1.16 ) | ||
| 1366 | #define D3D12_SRGB_GAMMA ( 2.2f ) | ||
| 1367 | #define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f ) | ||
| 1368 | #define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f ) | ||
| 1369 | #define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f ) | ||
| 1370 | #define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f ) | ||
| 1371 | #define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f ) | ||
| 1372 | #define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f ) | ||
| 1373 | #define D3D12_STANDARD_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1374 | |||
| 1375 | #define D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED ( 64 ) | ||
| 1376 | |||
| 1377 | #define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE ( 4 ) | ||
| 1378 | |||
| 1379 | #define D3D12_STANDARD_PIXEL_COMPONENT_COUNT ( 128 ) | ||
| 1380 | |||
| 1381 | #define D3D12_STANDARD_PIXEL_ELEMENT_COUNT ( 32 ) | ||
| 1382 | |||
| 1383 | #define D3D12_STANDARD_VECTOR_SIZE ( 4 ) | ||
| 1384 | |||
| 1385 | #define D3D12_STANDARD_VERTEX_ELEMENT_COUNT ( 32 ) | ||
| 1386 | |||
| 1387 | #define D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT ( 64 ) | ||
| 1388 | |||
| 1389 | #define D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT ( 8 ) | ||
| 1390 | |||
| 1391 | #define D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT ( 8 ) | ||
| 1392 | |||
| 1393 | #define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END ( 0xffffffff ) | ||
| 1394 | |||
| 1395 | #define D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START ( 0xfffffff0 ) | ||
| 1396 | |||
| 1397 | #define D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR ( 64 ) | ||
| 1398 | |||
| 1399 | #define D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 64 ) | ||
| 1400 | |||
| 1401 | #define D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR ( 63 ) | ||
| 1402 | |||
| 1403 | #define D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR ( 64 ) | ||
| 1404 | |||
| 1405 | #define D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR ( 2 ) | ||
| 1406 | |||
| 1407 | #define D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR ( 1 ) | ||
| 1408 | |||
| 1409 | #define D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR ( 1 ) | ||
| 1410 | |||
| 1411 | #define D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT ( 16 ) | ||
| 1412 | |||
| 1413 | #define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ( 256 ) | ||
| 1414 | |||
| 1415 | #define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ( 512 ) | ||
| 1416 | |||
| 1417 | #define D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNMENT ( 4096 ) | ||
| 1418 | |||
| 1419 | #define D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNMENT ( 8 ) | ||
| 1420 | |||
| 1421 | #define D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES ( 65536 ) | ||
| 1422 | |||
| 1423 | #define D3D12_TRACKED_WORKLOAD_MAX_INSTANCES ( 32 ) | ||
| 1424 | |||
| 1425 | #define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT ( 4096 ) | ||
| 1426 | |||
| 1427 | #define D3D12_UAV_SLOT_COUNT ( 64 ) | ||
| 1428 | |||
| 1429 | #define D3D12_UNBOUND_MEMORY_ACCESS_RESULT ( 0 ) | ||
| 1430 | |||
| 1431 | #define D3D12_VIDEO_DECODE_MAX_ARGUMENTS ( 10 ) | ||
| 1432 | |||
| 1433 | #define D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS ( 4 ) | ||
| 1434 | |||
| 1435 | #define D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT ( 256 ) | ||
| 1436 | |||
| 1437 | #define D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT ( 256 ) | ||
| 1438 | |||
| 1439 | #define D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN ( 0xffffffff ) | ||
| 1440 | |||
| 1441 | #define D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX ( 0xff ) | ||
| 1442 | |||
| 1443 | #define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS ( 64 ) | ||
| 1444 | |||
| 1445 | #define D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS ( 64 ) | ||
| 1446 | |||
| 1447 | #define D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN ( 9 ) | ||
| 1448 | |||
| 1449 | #define D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM ( 8 ) | ||
| 1450 | |||
| 1451 | #define D3D12_VIDEO_PROCESS_MAX_FILTERS ( 32 ) | ||
| 1452 | |||
| 1453 | #define D3D12_VIDEO_PROCESS_STEREO_VIEWS ( 2 ) | ||
| 1454 | |||
| 1455 | #define D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX ( 15 ) | ||
| 1456 | |||
| 1457 | #define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE ( 16 ) | ||
| 1458 | |||
| 1459 | #define D3D12_VIEWPORT_BOUNDS_MAX ( 32767 ) | ||
| 1460 | |||
| 1461 | #define D3D12_VIEWPORT_BOUNDS_MIN ( -32768 ) | ||
| 1462 | |||
| 1463 | #define D3D12_VS_INPUT_REGISTER_COMPONENTS ( 4 ) | ||
| 1464 | |||
| 1465 | #define D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1466 | |||
| 1467 | #define D3D12_VS_INPUT_REGISTER_COUNT ( 32 ) | ||
| 1468 | |||
| 1469 | #define D3D12_VS_INPUT_REGISTER_READS_PER_INST ( 2 ) | ||
| 1470 | |||
| 1471 | #define D3D12_VS_INPUT_REGISTER_READ_PORTS ( 1 ) | ||
| 1472 | |||
| 1473 | #define D3D12_VS_OUTPUT_REGISTER_COMPONENTS ( 4 ) | ||
| 1474 | |||
| 1475 | #define D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT ( 32 ) | ||
| 1476 | |||
| 1477 | #define D3D12_VS_OUTPUT_REGISTER_COUNT ( 32 ) | ||
| 1478 | |||
| 1479 | #define D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT ( 10 ) | ||
| 1480 | |||
| 1481 | #define D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP ( 25 ) | ||
| 1482 | |||
| 1483 | #define D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP ( 25 ) | ||
| 1484 | |||
| 1485 | #define D3D12_WORK_GRAPHS_BACKING_MEMORY_ALIGNMENT_IN_BYTES ( 8 ) | ||
| 1486 | |||
| 1487 | #define D3D12_WORK_GRAPHS_MAX_NODE_DEPTH ( 32 ) | ||
| 1488 | |||
| 1489 | #endif | ||
| 1490 | |||
| 1491 | typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS; | ||
| 1492 | |||
| 1493 | typedef | ||
| 1494 | enum D3D12_COMMAND_LIST_TYPE | ||
| 1495 | { | ||
| 1496 | D3D12_COMMAND_LIST_TYPE_DIRECT = 0, | ||
| 1497 | D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, | ||
| 1498 | D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, | ||
| 1499 | D3D12_COMMAND_LIST_TYPE_COPY = 3, | ||
| 1500 | D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4, | ||
| 1501 | D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5, | ||
| 1502 | D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6, | ||
| 1503 | D3D12_COMMAND_LIST_TYPE_NONE = -1 | ||
| 1504 | } D3D12_COMMAND_LIST_TYPE; | ||
| 1505 | |||
| 1506 | typedef | ||
| 1507 | enum D3D12_COMMAND_QUEUE_FLAGS | ||
| 1508 | { | ||
| 1509 | D3D12_COMMAND_QUEUE_FLAG_NONE = 0, | ||
| 1510 | D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1, | ||
| 1511 | D3D12_COMMAND_QUEUE_FLAG_ALLOW_DYNAMIC_PRIORITY = 0x2 | ||
| 1512 | } D3D12_COMMAND_QUEUE_FLAGS; | ||
| 1513 | |||
| 1514 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS ) | ||
| 1515 | typedef | ||
| 1516 | enum D3D12_COMMAND_QUEUE_PRIORITY | ||
| 1517 | { | ||
| 1518 | D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, | ||
| 1519 | D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100, | ||
| 1520 | D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000 | ||
| 1521 | } D3D12_COMMAND_QUEUE_PRIORITY; | ||
| 1522 | |||
| 1523 | typedef struct D3D12_COMMAND_QUEUE_DESC | ||
| 1524 | { | ||
| 1525 | D3D12_COMMAND_LIST_TYPE Type; | ||
| 1526 | INT Priority; | ||
| 1527 | D3D12_COMMAND_QUEUE_FLAGS Flags; | ||
| 1528 | UINT NodeMask; | ||
| 1529 | } D3D12_COMMAND_QUEUE_DESC; | ||
| 1530 | |||
| 1531 | typedef | ||
| 1532 | enum D3D12_PRIMITIVE_TOPOLOGY_TYPE | ||
| 1533 | { | ||
| 1534 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, | ||
| 1535 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1, | ||
| 1536 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2, | ||
| 1537 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3, | ||
| 1538 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4 | ||
| 1539 | } D3D12_PRIMITIVE_TOPOLOGY_TYPE; | ||
| 1540 | |||
| 1541 | typedef | ||
| 1542 | enum D3D12_INPUT_CLASSIFICATION | ||
| 1543 | { | ||
| 1544 | D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0, | ||
| 1545 | D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1 | ||
| 1546 | } D3D12_INPUT_CLASSIFICATION; | ||
| 1547 | |||
| 1548 | typedef struct D3D12_INPUT_ELEMENT_DESC | ||
| 1549 | { | ||
| 1550 | LPCSTR SemanticName; | ||
| 1551 | UINT SemanticIndex; | ||
| 1552 | DXGI_FORMAT Format; | ||
| 1553 | UINT InputSlot; | ||
| 1554 | UINT AlignedByteOffset; | ||
| 1555 | D3D12_INPUT_CLASSIFICATION InputSlotClass; | ||
| 1556 | UINT InstanceDataStepRate; | ||
| 1557 | } D3D12_INPUT_ELEMENT_DESC; | ||
| 1558 | |||
| 1559 | typedef | ||
| 1560 | enum D3D12_FILL_MODE | ||
| 1561 | { | ||
| 1562 | D3D12_FILL_MODE_WIREFRAME = 2, | ||
| 1563 | D3D12_FILL_MODE_SOLID = 3 | ||
| 1564 | } D3D12_FILL_MODE; | ||
| 1565 | |||
| 1566 | typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; | ||
| 1567 | |||
| 1568 | typedef D3D_PRIMITIVE D3D12_PRIMITIVE; | ||
| 1569 | |||
| 1570 | typedef | ||
| 1571 | enum D3D12_CULL_MODE | ||
| 1572 | { | ||
| 1573 | D3D12_CULL_MODE_NONE = 1, | ||
| 1574 | D3D12_CULL_MODE_FRONT = 2, | ||
| 1575 | D3D12_CULL_MODE_BACK = 3 | ||
| 1576 | } D3D12_CULL_MODE; | ||
| 1577 | |||
| 1578 | typedef struct D3D12_SO_DECLARATION_ENTRY | ||
| 1579 | { | ||
| 1580 | UINT Stream; | ||
| 1581 | LPCSTR SemanticName; | ||
| 1582 | UINT SemanticIndex; | ||
| 1583 | BYTE StartComponent; | ||
| 1584 | BYTE ComponentCount; | ||
| 1585 | BYTE OutputSlot; | ||
| 1586 | } D3D12_SO_DECLARATION_ENTRY; | ||
| 1587 | |||
| 1588 | typedef struct D3D12_VIEWPORT | ||
| 1589 | { | ||
| 1590 | FLOAT TopLeftX; | ||
| 1591 | FLOAT TopLeftY; | ||
| 1592 | FLOAT Width; | ||
| 1593 | FLOAT Height; | ||
| 1594 | FLOAT MinDepth; | ||
| 1595 | FLOAT MaxDepth; | ||
| 1596 | } D3D12_VIEWPORT; | ||
| 1597 | |||
| 1598 | typedef RECT D3D12_RECT; | ||
| 1599 | |||
| 1600 | typedef struct D3D12_BOX | ||
| 1601 | { | ||
| 1602 | UINT left; | ||
| 1603 | UINT top; | ||
| 1604 | UINT front; | ||
| 1605 | UINT right; | ||
| 1606 | UINT bottom; | ||
| 1607 | UINT back; | ||
| 1608 | } D3D12_BOX; | ||
| 1609 | |||
| 1610 | #ifdef __midl | ||
| 1611 | #ifndef LUID_DEFINED | ||
| 1612 | #define LUID_DEFINED 1 | ||
| 1613 | typedef struct __LUID | ||
| 1614 | { | ||
| 1615 | DWORD LowPart; | ||
| 1616 | LONG HighPart; | ||
| 1617 | } LUID; | ||
| 1618 | |||
| 1619 | typedef struct __LUID *PLUID; | ||
| 1620 | |||
| 1621 | #endif | ||
| 1622 | #endif | ||
| 1623 | typedef | ||
| 1624 | enum D3D12_COMPARISON_FUNC | ||
| 1625 | { | ||
| 1626 | D3D12_COMPARISON_FUNC_NONE = 0, | ||
| 1627 | D3D12_COMPARISON_FUNC_NEVER = 1, | ||
| 1628 | D3D12_COMPARISON_FUNC_LESS = 2, | ||
| 1629 | D3D12_COMPARISON_FUNC_EQUAL = 3, | ||
| 1630 | D3D12_COMPARISON_FUNC_LESS_EQUAL = 4, | ||
| 1631 | D3D12_COMPARISON_FUNC_GREATER = 5, | ||
| 1632 | D3D12_COMPARISON_FUNC_NOT_EQUAL = 6, | ||
| 1633 | D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7, | ||
| 1634 | D3D12_COMPARISON_FUNC_ALWAYS = 8 | ||
| 1635 | } D3D12_COMPARISON_FUNC; | ||
| 1636 | |||
| 1637 | typedef | ||
| 1638 | enum D3D12_DEPTH_WRITE_MASK | ||
| 1639 | { | ||
| 1640 | D3D12_DEPTH_WRITE_MASK_ZERO = 0, | ||
| 1641 | D3D12_DEPTH_WRITE_MASK_ALL = 1 | ||
| 1642 | } D3D12_DEPTH_WRITE_MASK; | ||
| 1643 | |||
| 1644 | typedef | ||
| 1645 | enum D3D12_STENCIL_OP | ||
| 1646 | { | ||
| 1647 | D3D12_STENCIL_OP_KEEP = 1, | ||
| 1648 | D3D12_STENCIL_OP_ZERO = 2, | ||
| 1649 | D3D12_STENCIL_OP_REPLACE = 3, | ||
| 1650 | D3D12_STENCIL_OP_INCR_SAT = 4, | ||
| 1651 | D3D12_STENCIL_OP_DECR_SAT = 5, | ||
| 1652 | D3D12_STENCIL_OP_INVERT = 6, | ||
| 1653 | D3D12_STENCIL_OP_INCR = 7, | ||
| 1654 | D3D12_STENCIL_OP_DECR = 8 | ||
| 1655 | } D3D12_STENCIL_OP; | ||
| 1656 | |||
| 1657 | typedef struct D3D12_DEPTH_STENCILOP_DESC | ||
| 1658 | { | ||
| 1659 | D3D12_STENCIL_OP StencilFailOp; | ||
| 1660 | D3D12_STENCIL_OP StencilDepthFailOp; | ||
| 1661 | D3D12_STENCIL_OP StencilPassOp; | ||
| 1662 | D3D12_COMPARISON_FUNC StencilFunc; | ||
| 1663 | } D3D12_DEPTH_STENCILOP_DESC; | ||
| 1664 | |||
| 1665 | typedef struct D3D12_DEPTH_STENCIL_DESC | ||
| 1666 | { | ||
| 1667 | BOOL DepthEnable; | ||
| 1668 | D3D12_DEPTH_WRITE_MASK DepthWriteMask; | ||
| 1669 | D3D12_COMPARISON_FUNC DepthFunc; | ||
| 1670 | BOOL StencilEnable; | ||
| 1671 | UINT8 StencilReadMask; | ||
| 1672 | UINT8 StencilWriteMask; | ||
| 1673 | D3D12_DEPTH_STENCILOP_DESC FrontFace; | ||
| 1674 | D3D12_DEPTH_STENCILOP_DESC BackFace; | ||
| 1675 | } D3D12_DEPTH_STENCIL_DESC; | ||
| 1676 | |||
| 1677 | typedef struct D3D12_DEPTH_STENCIL_DESC1 | ||
| 1678 | { | ||
| 1679 | BOOL DepthEnable; | ||
| 1680 | D3D12_DEPTH_WRITE_MASK DepthWriteMask; | ||
| 1681 | D3D12_COMPARISON_FUNC DepthFunc; | ||
| 1682 | BOOL StencilEnable; | ||
| 1683 | UINT8 StencilReadMask; | ||
| 1684 | UINT8 StencilWriteMask; | ||
| 1685 | D3D12_DEPTH_STENCILOP_DESC FrontFace; | ||
| 1686 | D3D12_DEPTH_STENCILOP_DESC BackFace; | ||
| 1687 | BOOL DepthBoundsTestEnable; | ||
| 1688 | } D3D12_DEPTH_STENCIL_DESC1; | ||
| 1689 | |||
| 1690 | typedef struct D3D12_DEPTH_STENCILOP_DESC1 | ||
| 1691 | { | ||
| 1692 | D3D12_STENCIL_OP StencilFailOp; | ||
| 1693 | D3D12_STENCIL_OP StencilDepthFailOp; | ||
| 1694 | D3D12_STENCIL_OP StencilPassOp; | ||
| 1695 | D3D12_COMPARISON_FUNC StencilFunc; | ||
| 1696 | UINT8 StencilReadMask; | ||
| 1697 | UINT8 StencilWriteMask; | ||
| 1698 | } D3D12_DEPTH_STENCILOP_DESC1; | ||
| 1699 | |||
| 1700 | typedef struct D3D12_DEPTH_STENCIL_DESC2 | ||
| 1701 | { | ||
| 1702 | BOOL DepthEnable; | ||
| 1703 | D3D12_DEPTH_WRITE_MASK DepthWriteMask; | ||
| 1704 | D3D12_COMPARISON_FUNC DepthFunc; | ||
| 1705 | BOOL StencilEnable; | ||
| 1706 | D3D12_DEPTH_STENCILOP_DESC1 FrontFace; | ||
| 1707 | D3D12_DEPTH_STENCILOP_DESC1 BackFace; | ||
| 1708 | BOOL DepthBoundsTestEnable; | ||
| 1709 | } D3D12_DEPTH_STENCIL_DESC2; | ||
| 1710 | |||
| 1711 | typedef | ||
| 1712 | enum D3D12_BLEND | ||
| 1713 | { | ||
| 1714 | D3D12_BLEND_ZERO = 1, | ||
| 1715 | D3D12_BLEND_ONE = 2, | ||
| 1716 | D3D12_BLEND_SRC_COLOR = 3, | ||
| 1717 | D3D12_BLEND_INV_SRC_COLOR = 4, | ||
| 1718 | D3D12_BLEND_SRC_ALPHA = 5, | ||
| 1719 | D3D12_BLEND_INV_SRC_ALPHA = 6, | ||
| 1720 | D3D12_BLEND_DEST_ALPHA = 7, | ||
| 1721 | D3D12_BLEND_INV_DEST_ALPHA = 8, | ||
| 1722 | D3D12_BLEND_DEST_COLOR = 9, | ||
| 1723 | D3D12_BLEND_INV_DEST_COLOR = 10, | ||
| 1724 | D3D12_BLEND_SRC_ALPHA_SAT = 11, | ||
| 1725 | D3D12_BLEND_BLEND_FACTOR = 14, | ||
| 1726 | D3D12_BLEND_INV_BLEND_FACTOR = 15, | ||
| 1727 | D3D12_BLEND_SRC1_COLOR = 16, | ||
| 1728 | D3D12_BLEND_INV_SRC1_COLOR = 17, | ||
| 1729 | D3D12_BLEND_SRC1_ALPHA = 18, | ||
| 1730 | D3D12_BLEND_INV_SRC1_ALPHA = 19, | ||
| 1731 | D3D12_BLEND_ALPHA_FACTOR = 20, | ||
| 1732 | D3D12_BLEND_INV_ALPHA_FACTOR = 21 | ||
| 1733 | } D3D12_BLEND; | ||
| 1734 | |||
| 1735 | typedef | ||
| 1736 | enum D3D12_BLEND_OP | ||
| 1737 | { | ||
| 1738 | D3D12_BLEND_OP_ADD = 1, | ||
| 1739 | D3D12_BLEND_OP_SUBTRACT = 2, | ||
| 1740 | D3D12_BLEND_OP_REV_SUBTRACT = 3, | ||
| 1741 | D3D12_BLEND_OP_MIN = 4, | ||
| 1742 | D3D12_BLEND_OP_MAX = 5 | ||
| 1743 | } D3D12_BLEND_OP; | ||
| 1744 | |||
| 1745 | typedef | ||
| 1746 | enum D3D12_COLOR_WRITE_ENABLE | ||
| 1747 | { | ||
| 1748 | D3D12_COLOR_WRITE_ENABLE_RED = 1, | ||
| 1749 | D3D12_COLOR_WRITE_ENABLE_GREEN = 2, | ||
| 1750 | D3D12_COLOR_WRITE_ENABLE_BLUE = 4, | ||
| 1751 | D3D12_COLOR_WRITE_ENABLE_ALPHA = 8, | ||
| 1752 | 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 ) | ||
| 1753 | } D3D12_COLOR_WRITE_ENABLE; | ||
| 1754 | |||
| 1755 | typedef | ||
| 1756 | enum D3D12_LOGIC_OP | ||
| 1757 | { | ||
| 1758 | D3D12_LOGIC_OP_CLEAR = 0, | ||
| 1759 | D3D12_LOGIC_OP_SET = ( D3D12_LOGIC_OP_CLEAR + 1 ) , | ||
| 1760 | D3D12_LOGIC_OP_COPY = ( D3D12_LOGIC_OP_SET + 1 ) , | ||
| 1761 | D3D12_LOGIC_OP_COPY_INVERTED = ( D3D12_LOGIC_OP_COPY + 1 ) , | ||
| 1762 | D3D12_LOGIC_OP_NOOP = ( D3D12_LOGIC_OP_COPY_INVERTED + 1 ) , | ||
| 1763 | D3D12_LOGIC_OP_INVERT = ( D3D12_LOGIC_OP_NOOP + 1 ) , | ||
| 1764 | D3D12_LOGIC_OP_AND = ( D3D12_LOGIC_OP_INVERT + 1 ) , | ||
| 1765 | D3D12_LOGIC_OP_NAND = ( D3D12_LOGIC_OP_AND + 1 ) , | ||
| 1766 | D3D12_LOGIC_OP_OR = ( D3D12_LOGIC_OP_NAND + 1 ) , | ||
| 1767 | D3D12_LOGIC_OP_NOR = ( D3D12_LOGIC_OP_OR + 1 ) , | ||
| 1768 | D3D12_LOGIC_OP_XOR = ( D3D12_LOGIC_OP_NOR + 1 ) , | ||
| 1769 | D3D12_LOGIC_OP_EQUIV = ( D3D12_LOGIC_OP_XOR + 1 ) , | ||
| 1770 | D3D12_LOGIC_OP_AND_REVERSE = ( D3D12_LOGIC_OP_EQUIV + 1 ) , | ||
| 1771 | D3D12_LOGIC_OP_AND_INVERTED = ( D3D12_LOGIC_OP_AND_REVERSE + 1 ) , | ||
| 1772 | D3D12_LOGIC_OP_OR_REVERSE = ( D3D12_LOGIC_OP_AND_INVERTED + 1 ) , | ||
| 1773 | D3D12_LOGIC_OP_OR_INVERTED = ( D3D12_LOGIC_OP_OR_REVERSE + 1 ) | ||
| 1774 | } D3D12_LOGIC_OP; | ||
| 1775 | |||
| 1776 | typedef struct D3D12_RENDER_TARGET_BLEND_DESC | ||
| 1777 | { | ||
| 1778 | BOOL BlendEnable; | ||
| 1779 | BOOL LogicOpEnable; | ||
| 1780 | D3D12_BLEND SrcBlend; | ||
| 1781 | D3D12_BLEND DestBlend; | ||
| 1782 | D3D12_BLEND_OP BlendOp; | ||
| 1783 | D3D12_BLEND SrcBlendAlpha; | ||
| 1784 | D3D12_BLEND DestBlendAlpha; | ||
| 1785 | D3D12_BLEND_OP BlendOpAlpha; | ||
| 1786 | D3D12_LOGIC_OP LogicOp; | ||
| 1787 | UINT8 RenderTargetWriteMask; | ||
| 1788 | } D3D12_RENDER_TARGET_BLEND_DESC; | ||
| 1789 | |||
| 1790 | typedef struct D3D12_BLEND_DESC | ||
| 1791 | { | ||
| 1792 | BOOL AlphaToCoverageEnable; | ||
| 1793 | BOOL IndependentBlendEnable; | ||
| 1794 | D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[ 8 ]; | ||
| 1795 | } D3D12_BLEND_DESC; | ||
| 1796 | |||
| 1797 | /* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT. | ||
| 1798 | IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */ | ||
| 1799 | typedef | ||
| 1800 | enum D3D12_CONSERVATIVE_RASTERIZATION_MODE | ||
| 1801 | { | ||
| 1802 | D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, | ||
| 1803 | D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1 | ||
| 1804 | } D3D12_CONSERVATIVE_RASTERIZATION_MODE; | ||
| 1805 | |||
| 1806 | typedef struct D3D12_RASTERIZER_DESC | ||
| 1807 | { | ||
| 1808 | D3D12_FILL_MODE FillMode; | ||
| 1809 | D3D12_CULL_MODE CullMode; | ||
| 1810 | BOOL FrontCounterClockwise; | ||
| 1811 | INT DepthBias; | ||
| 1812 | FLOAT DepthBiasClamp; | ||
| 1813 | FLOAT SlopeScaledDepthBias; | ||
| 1814 | BOOL DepthClipEnable; | ||
| 1815 | BOOL MultisampleEnable; | ||
| 1816 | BOOL AntialiasedLineEnable; | ||
| 1817 | UINT ForcedSampleCount; | ||
| 1818 | D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; | ||
| 1819 | } D3D12_RASTERIZER_DESC; | ||
| 1820 | |||
| 1821 | typedef struct D3D12_RASTERIZER_DESC1 | ||
| 1822 | { | ||
| 1823 | D3D12_FILL_MODE FillMode; | ||
| 1824 | D3D12_CULL_MODE CullMode; | ||
| 1825 | BOOL FrontCounterClockwise; | ||
| 1826 | FLOAT DepthBias; | ||
| 1827 | FLOAT DepthBiasClamp; | ||
| 1828 | FLOAT SlopeScaledDepthBias; | ||
| 1829 | BOOL DepthClipEnable; | ||
| 1830 | BOOL MultisampleEnable; | ||
| 1831 | BOOL AntialiasedLineEnable; | ||
| 1832 | UINT ForcedSampleCount; | ||
| 1833 | D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; | ||
| 1834 | } D3D12_RASTERIZER_DESC1; | ||
| 1835 | |||
| 1836 | typedef | ||
| 1837 | enum D3D12_LINE_RASTERIZATION_MODE | ||
| 1838 | { | ||
| 1839 | D3D12_LINE_RASTERIZATION_MODE_ALIASED = 0, | ||
| 1840 | D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED = ( D3D12_LINE_RASTERIZATION_MODE_ALIASED + 1 ) , | ||
| 1841 | D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE = ( D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED + 1 ) , | ||
| 1842 | D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW = ( D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE + 1 ) | ||
| 1843 | } D3D12_LINE_RASTERIZATION_MODE; | ||
| 1844 | |||
| 1845 | typedef struct D3D12_RASTERIZER_DESC2 | ||
| 1846 | { | ||
| 1847 | D3D12_FILL_MODE FillMode; | ||
| 1848 | D3D12_CULL_MODE CullMode; | ||
| 1849 | BOOL FrontCounterClockwise; | ||
| 1850 | FLOAT DepthBias; | ||
| 1851 | FLOAT DepthBiasClamp; | ||
| 1852 | FLOAT SlopeScaledDepthBias; | ||
| 1853 | BOOL DepthClipEnable; | ||
| 1854 | D3D12_LINE_RASTERIZATION_MODE LineRasterizationMode; | ||
| 1855 | UINT ForcedSampleCount; | ||
| 1856 | D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; | ||
| 1857 | } D3D12_RASTERIZER_DESC2; | ||
| 1858 | |||
| 1859 | |||
| 1860 | |||
| 1861 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_c_ifspec; | ||
| 1862 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0000_v0_0_s_ifspec; | ||
| 1863 | |||
| 1864 | #ifndef __ID3D12Object_INTERFACE_DEFINED__ | ||
| 1865 | #define __ID3D12Object_INTERFACE_DEFINED__ | ||
| 1866 | |||
| 1867 | /* interface ID3D12Object */ | ||
| 1868 | /* [unique][local][object][uuid] */ | ||
| 1869 | |||
| 1870 | |||
| 1871 | EXTERN_C const IID IID_ID3D12Object; | ||
| 1872 | |||
| 1873 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1874 | |||
| 1875 | MIDL_INTERFACE("c4fec28f-7966-4e95-9f94-f431cb56c3b8") | ||
| 1876 | ID3D12Object : public IUnknown | ||
| 1877 | { | ||
| 1878 | public: | ||
| 1879 | virtual HRESULT STDMETHODCALLTYPE GetPrivateData( | ||
| 1880 | _In_ REFGUID guid, | ||
| 1881 | _Inout_ UINT *pDataSize, | ||
| 1882 | _Out_writes_bytes_opt_( *pDataSize ) void *pData) = 0; | ||
| 1883 | |||
| 1884 | virtual HRESULT STDMETHODCALLTYPE SetPrivateData( | ||
| 1885 | _In_ REFGUID guid, | ||
| 1886 | _In_ UINT DataSize, | ||
| 1887 | _In_reads_bytes_opt_( DataSize ) const void *pData) = 0; | ||
| 1888 | |||
| 1889 | virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( | ||
| 1890 | _In_ REFGUID guid, | ||
| 1891 | _In_opt_ const IUnknown *pData) = 0; | ||
| 1892 | |||
| 1893 | virtual HRESULT STDMETHODCALLTYPE SetName( | ||
| 1894 | _In_z_ LPCWSTR Name) = 0; | ||
| 1895 | |||
| 1896 | }; | ||
| 1897 | |||
| 1898 | |||
| 1899 | #else /* C style interface */ | ||
| 1900 | |||
| 1901 | typedef struct ID3D12ObjectVtbl | ||
| 1902 | { | ||
| 1903 | BEGIN_INTERFACE | ||
| 1904 | |||
| 1905 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1906 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1907 | ID3D12Object * This, | ||
| 1908 | REFIID riid, | ||
| 1909 | _COM_Outptr_ void **ppvObject); | ||
| 1910 | |||
| 1911 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1912 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1913 | ID3D12Object * This); | ||
| 1914 | |||
| 1915 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1916 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1917 | ID3D12Object * This); | ||
| 1918 | |||
| 1919 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 1920 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 1921 | ID3D12Object * This, | ||
| 1922 | _In_ REFGUID guid, | ||
| 1923 | _Inout_ UINT *pDataSize, | ||
| 1924 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 1925 | |||
| 1926 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 1927 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 1928 | ID3D12Object * This, | ||
| 1929 | _In_ REFGUID guid, | ||
| 1930 | _In_ UINT DataSize, | ||
| 1931 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 1932 | |||
| 1933 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 1934 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 1935 | ID3D12Object * This, | ||
| 1936 | _In_ REFGUID guid, | ||
| 1937 | _In_opt_ const IUnknown *pData); | ||
| 1938 | |||
| 1939 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 1940 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 1941 | ID3D12Object * This, | ||
| 1942 | _In_z_ LPCWSTR Name); | ||
| 1943 | |||
| 1944 | END_INTERFACE | ||
| 1945 | } ID3D12ObjectVtbl; | ||
| 1946 | |||
| 1947 | interface ID3D12Object | ||
| 1948 | { | ||
| 1949 | CONST_VTBL struct ID3D12ObjectVtbl *lpVtbl; | ||
| 1950 | }; | ||
| 1951 | |||
| 1952 | |||
| 1953 | |||
| 1954 | #ifdef COBJMACROS | ||
| 1955 | |||
| 1956 | |||
| 1957 | #define ID3D12Object_QueryInterface(This,riid,ppvObject) \ | ||
| 1958 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1959 | |||
| 1960 | #define ID3D12Object_AddRef(This) \ | ||
| 1961 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1962 | |||
| 1963 | #define ID3D12Object_Release(This) \ | ||
| 1964 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1965 | |||
| 1966 | |||
| 1967 | #define ID3D12Object_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 1968 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 1969 | |||
| 1970 | #define ID3D12Object_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 1971 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 1972 | |||
| 1973 | #define ID3D12Object_SetPrivateDataInterface(This,guid,pData) \ | ||
| 1974 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 1975 | |||
| 1976 | #define ID3D12Object_SetName(This,Name) \ | ||
| 1977 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 1978 | |||
| 1979 | #endif /* COBJMACROS */ | ||
| 1980 | |||
| 1981 | |||
| 1982 | #endif /* C style interface */ | ||
| 1983 | |||
| 1984 | |||
| 1985 | |||
| 1986 | |||
| 1987 | #endif /* __ID3D12Object_INTERFACE_DEFINED__ */ | ||
| 1988 | |||
| 1989 | |||
| 1990 | #ifndef __ID3D12DeviceChild_INTERFACE_DEFINED__ | ||
| 1991 | #define __ID3D12DeviceChild_INTERFACE_DEFINED__ | ||
| 1992 | |||
| 1993 | /* interface ID3D12DeviceChild */ | ||
| 1994 | /* [unique][local][object][uuid] */ | ||
| 1995 | |||
| 1996 | |||
| 1997 | EXTERN_C const IID IID_ID3D12DeviceChild; | ||
| 1998 | |||
| 1999 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 2000 | |||
| 2001 | MIDL_INTERFACE("905db94b-a00c-4140-9df5-2b64ca9ea357") | ||
| 2002 | ID3D12DeviceChild : public ID3D12Object | ||
| 2003 | { | ||
| 2004 | public: | ||
| 2005 | virtual HRESULT STDMETHODCALLTYPE GetDevice( | ||
| 2006 | REFIID riid, | ||
| 2007 | _COM_Outptr_opt_ void **ppvDevice) = 0; | ||
| 2008 | |||
| 2009 | }; | ||
| 2010 | |||
| 2011 | |||
| 2012 | #else /* C style interface */ | ||
| 2013 | |||
| 2014 | typedef struct ID3D12DeviceChildVtbl | ||
| 2015 | { | ||
| 2016 | BEGIN_INTERFACE | ||
| 2017 | |||
| 2018 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 2019 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 2020 | ID3D12DeviceChild * This, | ||
| 2021 | REFIID riid, | ||
| 2022 | _COM_Outptr_ void **ppvObject); | ||
| 2023 | |||
| 2024 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 2025 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 2026 | ID3D12DeviceChild * This); | ||
| 2027 | |||
| 2028 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 2029 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 2030 | ID3D12DeviceChild * This); | ||
| 2031 | |||
| 2032 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 2033 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 2034 | ID3D12DeviceChild * This, | ||
| 2035 | _In_ REFGUID guid, | ||
| 2036 | _Inout_ UINT *pDataSize, | ||
| 2037 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 2038 | |||
| 2039 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 2040 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 2041 | ID3D12DeviceChild * This, | ||
| 2042 | _In_ REFGUID guid, | ||
| 2043 | _In_ UINT DataSize, | ||
| 2044 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 2045 | |||
| 2046 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 2047 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 2048 | ID3D12DeviceChild * This, | ||
| 2049 | _In_ REFGUID guid, | ||
| 2050 | _In_opt_ const IUnknown *pData); | ||
| 2051 | |||
| 2052 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 2053 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 2054 | ID3D12DeviceChild * This, | ||
| 2055 | _In_z_ LPCWSTR Name); | ||
| 2056 | |||
| 2057 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 2058 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 2059 | ID3D12DeviceChild * This, | ||
| 2060 | REFIID riid, | ||
| 2061 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 2062 | |||
| 2063 | END_INTERFACE | ||
| 2064 | } ID3D12DeviceChildVtbl; | ||
| 2065 | |||
| 2066 | interface ID3D12DeviceChild | ||
| 2067 | { | ||
| 2068 | CONST_VTBL struct ID3D12DeviceChildVtbl *lpVtbl; | ||
| 2069 | }; | ||
| 2070 | |||
| 2071 | |||
| 2072 | |||
| 2073 | #ifdef COBJMACROS | ||
| 2074 | |||
| 2075 | |||
| 2076 | #define ID3D12DeviceChild_QueryInterface(This,riid,ppvObject) \ | ||
| 2077 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 2078 | |||
| 2079 | #define ID3D12DeviceChild_AddRef(This) \ | ||
| 2080 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 2081 | |||
| 2082 | #define ID3D12DeviceChild_Release(This) \ | ||
| 2083 | ( (This)->lpVtbl -> Release(This) ) | ||
| 2084 | |||
| 2085 | |||
| 2086 | #define ID3D12DeviceChild_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 2087 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 2088 | |||
| 2089 | #define ID3D12DeviceChild_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 2090 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 2091 | |||
| 2092 | #define ID3D12DeviceChild_SetPrivateDataInterface(This,guid,pData) \ | ||
| 2093 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 2094 | |||
| 2095 | #define ID3D12DeviceChild_SetName(This,Name) \ | ||
| 2096 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 2097 | |||
| 2098 | |||
| 2099 | #define ID3D12DeviceChild_GetDevice(This,riid,ppvDevice) \ | ||
| 2100 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 2101 | |||
| 2102 | #endif /* COBJMACROS */ | ||
| 2103 | |||
| 2104 | |||
| 2105 | #endif /* C style interface */ | ||
| 2106 | |||
| 2107 | |||
| 2108 | |||
| 2109 | |||
| 2110 | #endif /* __ID3D12DeviceChild_INTERFACE_DEFINED__ */ | ||
| 2111 | |||
| 2112 | |||
| 2113 | #ifndef __ID3D12RootSignature_INTERFACE_DEFINED__ | ||
| 2114 | #define __ID3D12RootSignature_INTERFACE_DEFINED__ | ||
| 2115 | |||
| 2116 | /* interface ID3D12RootSignature */ | ||
| 2117 | /* [unique][local][object][uuid] */ | ||
| 2118 | |||
| 2119 | |||
| 2120 | EXTERN_C const IID IID_ID3D12RootSignature; | ||
| 2121 | |||
| 2122 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 2123 | |||
| 2124 | MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214") | ||
| 2125 | ID3D12RootSignature : public ID3D12DeviceChild | ||
| 2126 | { | ||
| 2127 | public: | ||
| 2128 | }; | ||
| 2129 | |||
| 2130 | |||
| 2131 | #else /* C style interface */ | ||
| 2132 | |||
| 2133 | typedef struct ID3D12RootSignatureVtbl | ||
| 2134 | { | ||
| 2135 | BEGIN_INTERFACE | ||
| 2136 | |||
| 2137 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 2138 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 2139 | ID3D12RootSignature * This, | ||
| 2140 | REFIID riid, | ||
| 2141 | _COM_Outptr_ void **ppvObject); | ||
| 2142 | |||
| 2143 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 2144 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 2145 | ID3D12RootSignature * This); | ||
| 2146 | |||
| 2147 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 2148 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 2149 | ID3D12RootSignature * This); | ||
| 2150 | |||
| 2151 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 2152 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 2153 | ID3D12RootSignature * This, | ||
| 2154 | _In_ REFGUID guid, | ||
| 2155 | _Inout_ UINT *pDataSize, | ||
| 2156 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 2157 | |||
| 2158 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 2159 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 2160 | ID3D12RootSignature * This, | ||
| 2161 | _In_ REFGUID guid, | ||
| 2162 | _In_ UINT DataSize, | ||
| 2163 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 2164 | |||
| 2165 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 2166 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 2167 | ID3D12RootSignature * This, | ||
| 2168 | _In_ REFGUID guid, | ||
| 2169 | _In_opt_ const IUnknown *pData); | ||
| 2170 | |||
| 2171 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 2172 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 2173 | ID3D12RootSignature * This, | ||
| 2174 | _In_z_ LPCWSTR Name); | ||
| 2175 | |||
| 2176 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 2177 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 2178 | ID3D12RootSignature * This, | ||
| 2179 | REFIID riid, | ||
| 2180 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 2181 | |||
| 2182 | END_INTERFACE | ||
| 2183 | } ID3D12RootSignatureVtbl; | ||
| 2184 | |||
| 2185 | interface ID3D12RootSignature | ||
| 2186 | { | ||
| 2187 | CONST_VTBL struct ID3D12RootSignatureVtbl *lpVtbl; | ||
| 2188 | }; | ||
| 2189 | |||
| 2190 | |||
| 2191 | |||
| 2192 | #ifdef COBJMACROS | ||
| 2193 | |||
| 2194 | |||
| 2195 | #define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) \ | ||
| 2196 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 2197 | |||
| 2198 | #define ID3D12RootSignature_AddRef(This) \ | ||
| 2199 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 2200 | |||
| 2201 | #define ID3D12RootSignature_Release(This) \ | ||
| 2202 | ( (This)->lpVtbl -> Release(This) ) | ||
| 2203 | |||
| 2204 | |||
| 2205 | #define ID3D12RootSignature_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 2206 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 2207 | |||
| 2208 | #define ID3D12RootSignature_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 2209 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 2210 | |||
| 2211 | #define ID3D12RootSignature_SetPrivateDataInterface(This,guid,pData) \ | ||
| 2212 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 2213 | |||
| 2214 | #define ID3D12RootSignature_SetName(This,Name) \ | ||
| 2215 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 2216 | |||
| 2217 | |||
| 2218 | #define ID3D12RootSignature_GetDevice(This,riid,ppvDevice) \ | ||
| 2219 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 2220 | |||
| 2221 | |||
| 2222 | #endif /* COBJMACROS */ | ||
| 2223 | |||
| 2224 | |||
| 2225 | #endif /* C style interface */ | ||
| 2226 | |||
| 2227 | |||
| 2228 | |||
| 2229 | |||
| 2230 | #endif /* __ID3D12RootSignature_INTERFACE_DEFINED__ */ | ||
| 2231 | |||
| 2232 | |||
| 2233 | /* interface __MIDL_itf_d3d12_0000_0001 */ | ||
| 2234 | /* [local] */ | ||
| 2235 | |||
| 2236 | typedef struct D3D12_SHADER_BYTECODE | ||
| 2237 | { | ||
| 2238 | _Field_size_bytes_full_(BytecodeLength) const void *pShaderBytecode; | ||
| 2239 | SIZE_T BytecodeLength; | ||
| 2240 | } D3D12_SHADER_BYTECODE; | ||
| 2241 | |||
| 2242 | typedef struct D3D12_STREAM_OUTPUT_DESC | ||
| 2243 | { | ||
| 2244 | _Field_size_full_(NumEntries) const D3D12_SO_DECLARATION_ENTRY *pSODeclaration; | ||
| 2245 | UINT NumEntries; | ||
| 2246 | _Field_size_full_(NumStrides) const UINT *pBufferStrides; | ||
| 2247 | UINT NumStrides; | ||
| 2248 | UINT RasterizedStream; | ||
| 2249 | } D3D12_STREAM_OUTPUT_DESC; | ||
| 2250 | |||
| 2251 | typedef struct D3D12_INPUT_LAYOUT_DESC | ||
| 2252 | { | ||
| 2253 | _Field_size_full_(NumElements) const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs; | ||
| 2254 | UINT NumElements; | ||
| 2255 | } D3D12_INPUT_LAYOUT_DESC; | ||
| 2256 | |||
| 2257 | typedef | ||
| 2258 | enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE | ||
| 2259 | { | ||
| 2260 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0, | ||
| 2261 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1, | ||
| 2262 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2 | ||
| 2263 | } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE; | ||
| 2264 | |||
| 2265 | typedef | ||
| 2266 | enum D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS | ||
| 2267 | { | ||
| 2268 | D3D12_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, | ||
| 2269 | D3D12_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe | ||
| 2270 | } D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS; | ||
| 2271 | |||
| 2272 | typedef struct D3D12_CACHED_PIPELINE_STATE | ||
| 2273 | { | ||
| 2274 | _Field_size_bytes_full_(CachedBlobSizeInBytes) const void *pCachedBlob; | ||
| 2275 | SIZE_T CachedBlobSizeInBytes; | ||
| 2276 | } D3D12_CACHED_PIPELINE_STATE; | ||
| 2277 | |||
| 2278 | typedef | ||
| 2279 | enum D3D12_PIPELINE_STATE_FLAGS | ||
| 2280 | { | ||
| 2281 | D3D12_PIPELINE_STATE_FLAG_NONE = 0, | ||
| 2282 | D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1, | ||
| 2283 | D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS = 0x4, | ||
| 2284 | D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT = 0x8 | ||
| 2285 | } D3D12_PIPELINE_STATE_FLAGS; | ||
| 2286 | |||
| 2287 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS ) | ||
| 2288 | typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC | ||
| 2289 | { | ||
| 2290 | ID3D12RootSignature *pRootSignature; | ||
| 2291 | D3D12_SHADER_BYTECODE VS; | ||
| 2292 | D3D12_SHADER_BYTECODE PS; | ||
| 2293 | D3D12_SHADER_BYTECODE DS; | ||
| 2294 | D3D12_SHADER_BYTECODE HS; | ||
| 2295 | D3D12_SHADER_BYTECODE GS; | ||
| 2296 | D3D12_STREAM_OUTPUT_DESC StreamOutput; | ||
| 2297 | D3D12_BLEND_DESC BlendState; | ||
| 2298 | UINT SampleMask; | ||
| 2299 | D3D12_RASTERIZER_DESC RasterizerState; | ||
| 2300 | D3D12_DEPTH_STENCIL_DESC DepthStencilState; | ||
| 2301 | D3D12_INPUT_LAYOUT_DESC InputLayout; | ||
| 2302 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; | ||
| 2303 | D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; | ||
| 2304 | UINT NumRenderTargets; | ||
| 2305 | DXGI_FORMAT RTVFormats[ 8 ]; | ||
| 2306 | DXGI_FORMAT DSVFormat; | ||
| 2307 | DXGI_SAMPLE_DESC SampleDesc; | ||
| 2308 | UINT NodeMask; | ||
| 2309 | D3D12_CACHED_PIPELINE_STATE CachedPSO; | ||
| 2310 | D3D12_PIPELINE_STATE_FLAGS Flags; | ||
| 2311 | } D3D12_GRAPHICS_PIPELINE_STATE_DESC; | ||
| 2312 | |||
| 2313 | typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC | ||
| 2314 | { | ||
| 2315 | ID3D12RootSignature *pRootSignature; | ||
| 2316 | D3D12_SHADER_BYTECODE CS; | ||
| 2317 | UINT NodeMask; | ||
| 2318 | D3D12_CACHED_PIPELINE_STATE CachedPSO; | ||
| 2319 | D3D12_PIPELINE_STATE_FLAGS Flags; | ||
| 2320 | } D3D12_COMPUTE_PIPELINE_STATE_DESC; | ||
| 2321 | |||
| 2322 | typedef | ||
| 2323 | enum D3D_ROOT_SIGNATURE_VERSION | ||
| 2324 | { | ||
| 2325 | D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, | ||
| 2326 | D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, | ||
| 2327 | D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2, | ||
| 2328 | D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3 | ||
| 2329 | } D3D_ROOT_SIGNATURE_VERSION; | ||
| 2330 | |||
| 2331 | typedef struct D3D12_SERIALIZED_ROOT_SIGNATURE_DESC | ||
| 2332 | { | ||
| 2333 | _Field_size_bytes_full_(SerializedBlobSizeInBytes) const void *pSerializedBlob; | ||
| 2334 | SIZE_T SerializedBlobSizeInBytes; | ||
| 2335 | } D3D12_SERIALIZED_ROOT_SIGNATURE_DESC; | ||
| 2336 | |||
| 2337 | typedef struct D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE | ||
| 2338 | { | ||
| 2339 | D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; | ||
| 2340 | } D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE; | ||
| 2341 | |||
| 2342 | typedef struct D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE | ||
| 2343 | { | ||
| 2344 | D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; | ||
| 2345 | } D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE; | ||
| 2346 | |||
| 2347 | struct D3D12_RT_FORMAT_ARRAY | ||
| 2348 | { | ||
| 2349 | DXGI_FORMAT RTFormats[ 8 ]; | ||
| 2350 | UINT NumRenderTargets; | ||
| 2351 | } ; | ||
| 2352 | typedef struct D3D12_PIPELINE_STATE_STREAM_DESC | ||
| 2353 | { | ||
| 2354 | _In_ SIZE_T SizeInBytes; | ||
| 2355 | _In_reads_(_Inexpressible_("Dependent on size of subobjects")) void *pPipelineStateSubobjectStream; | ||
| 2356 | } D3D12_PIPELINE_STATE_STREAM_DESC; | ||
| 2357 | |||
| 2358 | typedef | ||
| 2359 | enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE | ||
| 2360 | { | ||
| 2361 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE = 0, | ||
| 2362 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE + 1 ) , | ||
| 2363 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS + 1 ) , | ||
| 2364 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS + 1 ) , | ||
| 2365 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS + 1 ) , | ||
| 2366 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS + 1 ) , | ||
| 2367 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS + 1 ) , | ||
| 2368 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS + 1 ) , | ||
| 2369 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT + 1 ) , | ||
| 2370 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND + 1 ) , | ||
| 2371 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK + 1 ) , | ||
| 2372 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER + 1 ) , | ||
| 2373 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL + 1 ) , | ||
| 2374 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT + 1 ) , | ||
| 2375 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE + 1 ) , | ||
| 2376 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY + 1 ) , | ||
| 2377 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS + 1 ) , | ||
| 2378 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT + 1 ) , | ||
| 2379 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC + 1 ) , | ||
| 2380 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK + 1 ) , | ||
| 2381 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO + 1 ) , | ||
| 2382 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS + 1 ) , | ||
| 2383 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 + 1 ) , | ||
| 2384 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24, | ||
| 2385 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25, | ||
| 2386 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26, | ||
| 2387 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27, | ||
| 2388 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28, | ||
| 2389 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE = 29, | ||
| 2390 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE + 1 ) | ||
| 2391 | } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; | ||
| 2392 | |||
| 2393 | typedef | ||
| 2394 | enum D3D12_FEATURE | ||
| 2395 | { | ||
| 2396 | D3D12_FEATURE_D3D12_OPTIONS = 0, | ||
| 2397 | D3D12_FEATURE_ARCHITECTURE = 1, | ||
| 2398 | D3D12_FEATURE_FEATURE_LEVELS = 2, | ||
| 2399 | D3D12_FEATURE_FORMAT_SUPPORT = 3, | ||
| 2400 | D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4, | ||
| 2401 | D3D12_FEATURE_FORMAT_INFO = 5, | ||
| 2402 | D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6, | ||
| 2403 | D3D12_FEATURE_SHADER_MODEL = 7, | ||
| 2404 | D3D12_FEATURE_D3D12_OPTIONS1 = 8, | ||
| 2405 | D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10, | ||
| 2406 | D3D12_FEATURE_ROOT_SIGNATURE = 12, | ||
| 2407 | D3D12_FEATURE_ARCHITECTURE1 = 16, | ||
| 2408 | D3D12_FEATURE_D3D12_OPTIONS2 = 18, | ||
| 2409 | D3D12_FEATURE_SHADER_CACHE = 19, | ||
| 2410 | D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20, | ||
| 2411 | D3D12_FEATURE_D3D12_OPTIONS3 = 21, | ||
| 2412 | D3D12_FEATURE_EXISTING_HEAPS = 22, | ||
| 2413 | D3D12_FEATURE_D3D12_OPTIONS4 = 23, | ||
| 2414 | D3D12_FEATURE_SERIALIZATION = 24, | ||
| 2415 | D3D12_FEATURE_CROSS_NODE = 25, | ||
| 2416 | D3D12_FEATURE_D3D12_OPTIONS5 = 27, | ||
| 2417 | D3D12_FEATURE_DISPLAYABLE = 28, | ||
| 2418 | D3D12_FEATURE_D3D12_OPTIONS6 = 30, | ||
| 2419 | D3D12_FEATURE_QUERY_META_COMMAND = 31, | ||
| 2420 | D3D12_FEATURE_D3D12_OPTIONS7 = 32, | ||
| 2421 | D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33, | ||
| 2422 | D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34, | ||
| 2423 | D3D12_FEATURE_D3D12_OPTIONS8 = 36, | ||
| 2424 | D3D12_FEATURE_D3D12_OPTIONS9 = 37, | ||
| 2425 | D3D12_FEATURE_D3D12_OPTIONS10 = 39, | ||
| 2426 | D3D12_FEATURE_D3D12_OPTIONS11 = 40, | ||
| 2427 | D3D12_FEATURE_D3D12_OPTIONS12 = 41, | ||
| 2428 | D3D12_FEATURE_D3D12_OPTIONS13 = 42, | ||
| 2429 | D3D12_FEATURE_D3D12_OPTIONS14 = 43, | ||
| 2430 | D3D12_FEATURE_D3D12_OPTIONS15 = 44, | ||
| 2431 | D3D12_FEATURE_D3D12_OPTIONS16 = 45, | ||
| 2432 | D3D12_FEATURE_D3D12_OPTIONS17 = 46, | ||
| 2433 | D3D12_FEATURE_D3D12_OPTIONS18 = 47, | ||
| 2434 | D3D12_FEATURE_D3D12_OPTIONS19 = 48, | ||
| 2435 | D3D12_FEATURE_D3D12_OPTIONS20 = 49, | ||
| 2436 | D3D12_FEATURE_PREDICATION = 50, | ||
| 2437 | D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, | ||
| 2438 | D3D12_FEATURE_HARDWARE_COPY = 52, | ||
| 2439 | D3D12_FEATURE_D3D12_OPTIONS21 = 53, | ||
| 2440 | D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT = 54, | ||
| 2441 | D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56, | ||
| 2442 | D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57, | ||
| 2443 | D3D12_FEATURE_SHADER_CACHE_ABI_SUPPORT = 61 | ||
| 2444 | } D3D12_FEATURE; | ||
| 2445 | |||
| 2446 | typedef | ||
| 2447 | enum D3D12_SHADER_MIN_PRECISION_SUPPORT | ||
| 2448 | { | ||
| 2449 | D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0, | ||
| 2450 | D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1, | ||
| 2451 | D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2 | ||
| 2452 | } D3D12_SHADER_MIN_PRECISION_SUPPORT; | ||
| 2453 | |||
| 2454 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT ) | ||
| 2455 | typedef | ||
| 2456 | enum D3D12_TILED_RESOURCES_TIER | ||
| 2457 | { | ||
| 2458 | D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, | ||
| 2459 | D3D12_TILED_RESOURCES_TIER_1 = 1, | ||
| 2460 | D3D12_TILED_RESOURCES_TIER_2 = 2, | ||
| 2461 | D3D12_TILED_RESOURCES_TIER_3 = 3, | ||
| 2462 | D3D12_TILED_RESOURCES_TIER_4 = 4 | ||
| 2463 | } D3D12_TILED_RESOURCES_TIER; | ||
| 2464 | |||
| 2465 | typedef | ||
| 2466 | enum D3D12_RESOURCE_BINDING_TIER | ||
| 2467 | { | ||
| 2468 | D3D12_RESOURCE_BINDING_TIER_1 = 1, | ||
| 2469 | D3D12_RESOURCE_BINDING_TIER_2 = 2, | ||
| 2470 | D3D12_RESOURCE_BINDING_TIER_3 = 3 | ||
| 2471 | } D3D12_RESOURCE_BINDING_TIER; | ||
| 2472 | |||
| 2473 | typedef | ||
| 2474 | enum D3D12_CONSERVATIVE_RASTERIZATION_TIER | ||
| 2475 | { | ||
| 2476 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0, | ||
| 2477 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, | ||
| 2478 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, | ||
| 2479 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3 | ||
| 2480 | } D3D12_CONSERVATIVE_RASTERIZATION_TIER; | ||
| 2481 | |||
| 2482 | typedef | ||
| 2483 | enum D3D12_FORMAT_SUPPORT1 | ||
| 2484 | { | ||
| 2485 | D3D12_FORMAT_SUPPORT1_NONE = 0, | ||
| 2486 | D3D12_FORMAT_SUPPORT1_BUFFER = 0x1, | ||
| 2487 | D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x2, | ||
| 2488 | D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x4, | ||
| 2489 | D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x8, | ||
| 2490 | D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x10, | ||
| 2491 | D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x20, | ||
| 2492 | D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x40, | ||
| 2493 | D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x80, | ||
| 2494 | D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x100, | ||
| 2495 | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x200, | ||
| 2496 | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x400, | ||
| 2497 | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x800, | ||
| 2498 | D3D12_FORMAT_SUPPORT1_MIP = 0x1000, | ||
| 2499 | D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x4000, | ||
| 2500 | D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x8000, | ||
| 2501 | D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x10000, | ||
| 2502 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x40000, | ||
| 2503 | D3D12_FORMAT_SUPPORT1_DISPLAY = 0x80000, | ||
| 2504 | D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x100000, | ||
| 2505 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x200000, | ||
| 2506 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x400000, | ||
| 2507 | D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x800000, | ||
| 2508 | D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x1000000, | ||
| 2509 | D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000, | ||
| 2510 | D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x4000000, | ||
| 2511 | D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x8000000, | ||
| 2512 | D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000, | ||
| 2513 | D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000, | ||
| 2514 | D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000 | ||
| 2515 | } D3D12_FORMAT_SUPPORT1; | ||
| 2516 | |||
| 2517 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 ) | ||
| 2518 | typedef | ||
| 2519 | enum D3D12_FORMAT_SUPPORT2 | ||
| 2520 | { | ||
| 2521 | D3D12_FORMAT_SUPPORT2_NONE = 0, | ||
| 2522 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1, | ||
| 2523 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2, | ||
| 2524 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4, | ||
| 2525 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8, | ||
| 2526 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10, | ||
| 2527 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20, | ||
| 2528 | D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40, | ||
| 2529 | D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80, | ||
| 2530 | D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100, | ||
| 2531 | D3D12_FORMAT_SUPPORT2_TILED = 0x200, | ||
| 2532 | D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000, | ||
| 2533 | D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x8000, | ||
| 2534 | D3D12_FORMAT_SUPPORT2_DISPLAYABLE = 0x10000 | ||
| 2535 | } D3D12_FORMAT_SUPPORT2; | ||
| 2536 | |||
| 2537 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 ) | ||
| 2538 | typedef | ||
| 2539 | enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS | ||
| 2540 | { | ||
| 2541 | D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0, | ||
| 2542 | D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1 | ||
| 2543 | } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS; | ||
| 2544 | |||
| 2545 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS ) | ||
| 2546 | typedef | ||
| 2547 | enum D3D12_CROSS_NODE_SHARING_TIER | ||
| 2548 | { | ||
| 2549 | D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0, | ||
| 2550 | D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, | ||
| 2551 | D3D12_CROSS_NODE_SHARING_TIER_1 = 2, | ||
| 2552 | D3D12_CROSS_NODE_SHARING_TIER_2 = 3, | ||
| 2553 | D3D12_CROSS_NODE_SHARING_TIER_3 = 4 | ||
| 2554 | } D3D12_CROSS_NODE_SHARING_TIER; | ||
| 2555 | |||
| 2556 | typedef | ||
| 2557 | enum D3D12_RESOURCE_HEAP_TIER | ||
| 2558 | { | ||
| 2559 | D3D12_RESOURCE_HEAP_TIER_1 = 1, | ||
| 2560 | D3D12_RESOURCE_HEAP_TIER_2 = 2 | ||
| 2561 | } D3D12_RESOURCE_HEAP_TIER; | ||
| 2562 | |||
| 2563 | typedef | ||
| 2564 | enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER | ||
| 2565 | { | ||
| 2566 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0, | ||
| 2567 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1, | ||
| 2568 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2 | ||
| 2569 | } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER; | ||
| 2570 | |||
| 2571 | typedef | ||
| 2572 | enum D3D12_VIEW_INSTANCING_TIER | ||
| 2573 | { | ||
| 2574 | D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0, | ||
| 2575 | D3D12_VIEW_INSTANCING_TIER_1 = 1, | ||
| 2576 | D3D12_VIEW_INSTANCING_TIER_2 = 2, | ||
| 2577 | D3D12_VIEW_INSTANCING_TIER_3 = 3 | ||
| 2578 | } D3D12_VIEW_INSTANCING_TIER; | ||
| 2579 | |||
| 2580 | typedef | ||
| 2581 | enum D3D12_WORK_GRAPHS_TIER | ||
| 2582 | { | ||
| 2583 | D3D12_WORK_GRAPHS_TIER_NOT_SUPPORTED = 0, | ||
| 2584 | D3D12_WORK_GRAPHS_TIER_1_0 = 10 | ||
| 2585 | } D3D12_WORK_GRAPHS_TIER; | ||
| 2586 | |||
| 2587 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS | ||
| 2588 | { | ||
| 2589 | _Out_ BOOL DoublePrecisionFloatShaderOps; | ||
| 2590 | _Out_ BOOL OutputMergerLogicOp; | ||
| 2591 | _Out_ D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; | ||
| 2592 | _Out_ D3D12_TILED_RESOURCES_TIER TiledResourcesTier; | ||
| 2593 | _Out_ D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; | ||
| 2594 | _Out_ BOOL PSSpecifiedStencilRefSupported; | ||
| 2595 | _Out_ BOOL TypedUAVLoadAdditionalFormats; | ||
| 2596 | _Out_ BOOL ROVsSupported; | ||
| 2597 | _Out_ D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; | ||
| 2598 | _Out_ UINT MaxGPUVirtualAddressBitsPerResource; | ||
| 2599 | _Out_ BOOL StandardSwizzle64KBSupported; | ||
| 2600 | _Out_ D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; | ||
| 2601 | _Out_ BOOL CrossAdapterRowMajorTextureSupported; | ||
| 2602 | _Out_ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; | ||
| 2603 | _Out_ D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; | ||
| 2604 | } D3D12_FEATURE_DATA_D3D12_OPTIONS; | ||
| 2605 | |||
| 2606 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 | ||
| 2607 | { | ||
| 2608 | _Out_ BOOL WaveOps; | ||
| 2609 | _Out_ UINT WaveLaneCountMin; | ||
| 2610 | _Out_ UINT WaveLaneCountMax; | ||
| 2611 | _Out_ UINT TotalLaneCount; | ||
| 2612 | _Out_ BOOL ExpandedComputeResourceStates; | ||
| 2613 | _Out_ BOOL Int64ShaderOps; | ||
| 2614 | } D3D12_FEATURE_DATA_D3D12_OPTIONS1; | ||
| 2615 | |||
| 2616 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 | ||
| 2617 | { | ||
| 2618 | _Out_ BOOL DepthBoundsTestSupported; | ||
| 2619 | _Out_ D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; | ||
| 2620 | } D3D12_FEATURE_DATA_D3D12_OPTIONS2; | ||
| 2621 | |||
| 2622 | typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE | ||
| 2623 | { | ||
| 2624 | _Inout_ D3D_ROOT_SIGNATURE_VERSION HighestVersion; | ||
| 2625 | } D3D12_FEATURE_DATA_ROOT_SIGNATURE; | ||
| 2626 | |||
| 2627 | typedef struct D3D12_FEATURE_DATA_ARCHITECTURE | ||
| 2628 | { | ||
| 2629 | _In_ UINT NodeIndex; | ||
| 2630 | _Out_ BOOL TileBasedRenderer; | ||
| 2631 | _Out_ BOOL UMA; | ||
| 2632 | _Out_ BOOL CacheCoherentUMA; | ||
| 2633 | } D3D12_FEATURE_DATA_ARCHITECTURE; | ||
| 2634 | |||
| 2635 | typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 | ||
| 2636 | { | ||
| 2637 | _In_ UINT NodeIndex; | ||
| 2638 | _Out_ BOOL TileBasedRenderer; | ||
| 2639 | _Out_ BOOL UMA; | ||
| 2640 | _Out_ BOOL CacheCoherentUMA; | ||
| 2641 | _Out_ BOOL IsolatedMMU; | ||
| 2642 | } D3D12_FEATURE_DATA_ARCHITECTURE1; | ||
| 2643 | |||
| 2644 | typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS | ||
| 2645 | { | ||
| 2646 | _In_ UINT NumFeatureLevels; | ||
| 2647 | _In_reads_(NumFeatureLevels) const D3D_FEATURE_LEVEL *pFeatureLevelsRequested; | ||
| 2648 | _Out_ D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; | ||
| 2649 | } D3D12_FEATURE_DATA_FEATURE_LEVELS; | ||
| 2650 | |||
| 2651 | typedef | ||
| 2652 | enum D3D_SHADER_MODEL | ||
| 2653 | { | ||
| 2654 | D3D_SHADER_MODEL_NONE = 0, | ||
| 2655 | D3D_SHADER_MODEL_5_1 = 0x51, | ||
| 2656 | D3D_SHADER_MODEL_6_0 = 0x60, | ||
| 2657 | D3D_SHADER_MODEL_6_1 = 0x61, | ||
| 2658 | D3D_SHADER_MODEL_6_2 = 0x62, | ||
| 2659 | D3D_SHADER_MODEL_6_3 = 0x63, | ||
| 2660 | D3D_SHADER_MODEL_6_4 = 0x64, | ||
| 2661 | D3D_SHADER_MODEL_6_5 = 0x65, | ||
| 2662 | D3D_SHADER_MODEL_6_6 = 0x66, | ||
| 2663 | D3D_SHADER_MODEL_6_7 = 0x67, | ||
| 2664 | D3D_SHADER_MODEL_6_8 = 0x68, | ||
| 2665 | D3D_SHADER_MODEL_6_9 = 0x69, | ||
| 2666 | D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_9 | ||
| 2667 | } D3D_SHADER_MODEL; | ||
| 2668 | |||
| 2669 | typedef struct D3D12_FEATURE_DATA_SHADER_MODEL | ||
| 2670 | { | ||
| 2671 | _Inout_ D3D_SHADER_MODEL HighestShaderModel; | ||
| 2672 | } D3D12_FEATURE_DATA_SHADER_MODEL; | ||
| 2673 | |||
| 2674 | typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT | ||
| 2675 | { | ||
| 2676 | _In_ DXGI_FORMAT Format; | ||
| 2677 | _Out_ D3D12_FORMAT_SUPPORT1 Support1; | ||
| 2678 | _Out_ D3D12_FORMAT_SUPPORT2 Support2; | ||
| 2679 | } D3D12_FEATURE_DATA_FORMAT_SUPPORT; | ||
| 2680 | |||
| 2681 | typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS | ||
| 2682 | { | ||
| 2683 | _In_ DXGI_FORMAT Format; | ||
| 2684 | _In_ UINT SampleCount; | ||
| 2685 | _In_ D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; | ||
| 2686 | _Out_ UINT NumQualityLevels; | ||
| 2687 | } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS; | ||
| 2688 | |||
| 2689 | typedef struct D3D12_FEATURE_DATA_FORMAT_INFO | ||
| 2690 | { | ||
| 2691 | DXGI_FORMAT Format; | ||
| 2692 | UINT8 PlaneCount; | ||
| 2693 | } D3D12_FEATURE_DATA_FORMAT_INFO; | ||
| 2694 | |||
| 2695 | typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT | ||
| 2696 | { | ||
| 2697 | UINT MaxGPUVirtualAddressBitsPerResource; | ||
| 2698 | UINT MaxGPUVirtualAddressBitsPerProcess; | ||
| 2699 | } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; | ||
| 2700 | |||
| 2701 | typedef | ||
| 2702 | enum D3D12_SHADER_CACHE_SUPPORT_FLAGS | ||
| 2703 | { | ||
| 2704 | D3D12_SHADER_CACHE_SUPPORT_NONE = 0, | ||
| 2705 | D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1, | ||
| 2706 | D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2, | ||
| 2707 | D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4, | ||
| 2708 | D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8, | ||
| 2709 | D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10, | ||
| 2710 | D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20, | ||
| 2711 | D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40 | ||
| 2712 | } D3D12_SHADER_CACHE_SUPPORT_FLAGS; | ||
| 2713 | |||
| 2714 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS ) | ||
| 2715 | typedef struct D3D12_FEATURE_DATA_SHADER_CACHE | ||
| 2716 | { | ||
| 2717 | _Out_ D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags; | ||
| 2718 | } D3D12_FEATURE_DATA_SHADER_CACHE; | ||
| 2719 | |||
| 2720 | typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY | ||
| 2721 | { | ||
| 2722 | _In_ D3D12_COMMAND_LIST_TYPE CommandListType; | ||
| 2723 | _In_ UINT Priority; | ||
| 2724 | _Out_ BOOL PriorityForTypeIsSupported; | ||
| 2725 | } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY; | ||
| 2726 | |||
| 2727 | typedef | ||
| 2728 | enum D3D12_COMMAND_LIST_SUPPORT_FLAGS | ||
| 2729 | { | ||
| 2730 | D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0, | ||
| 2731 | D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = ( 1 << D3D12_COMMAND_LIST_TYPE_DIRECT ) , | ||
| 2732 | D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = ( 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE ) , | ||
| 2733 | D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = ( 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE ) , | ||
| 2734 | D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = ( 1 << D3D12_COMMAND_LIST_TYPE_COPY ) , | ||
| 2735 | D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE ) , | ||
| 2736 | D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS ) , | ||
| 2737 | D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = ( 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE ) | ||
| 2738 | } D3D12_COMMAND_LIST_SUPPORT_FLAGS; | ||
| 2739 | |||
| 2740 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS ) | ||
| 2741 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 | ||
| 2742 | { | ||
| 2743 | _Out_ BOOL CopyQueueTimestampQueriesSupported; | ||
| 2744 | _Out_ BOOL CastingFullyTypedFormatSupported; | ||
| 2745 | _Out_ D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags; | ||
| 2746 | _Out_ D3D12_VIEW_INSTANCING_TIER ViewInstancingTier; | ||
| 2747 | _Out_ BOOL BarycentricsSupported; | ||
| 2748 | } D3D12_FEATURE_DATA_D3D12_OPTIONS3; | ||
| 2749 | |||
| 2750 | typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS | ||
| 2751 | { | ||
| 2752 | _Out_ BOOL Supported; | ||
| 2753 | } D3D12_FEATURE_DATA_EXISTING_HEAPS; | ||
| 2754 | |||
| 2755 | typedef | ||
| 2756 | enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER | ||
| 2757 | { | ||
| 2758 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0, | ||
| 2759 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 + 1 ) , | ||
| 2760 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2 = ( D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 + 1 ) | ||
| 2761 | } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER; | ||
| 2762 | |||
| 2763 | typedef struct D3D12_FEATURE_DATA_DISPLAYABLE | ||
| 2764 | { | ||
| 2765 | _Out_ BOOL DisplayableTexture; | ||
| 2766 | _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; | ||
| 2767 | } D3D12_FEATURE_DATA_DISPLAYABLE; | ||
| 2768 | |||
| 2769 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 | ||
| 2770 | { | ||
| 2771 | _Out_ BOOL MSAA64KBAlignedTextureSupported; | ||
| 2772 | _Out_ D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; | ||
| 2773 | _Out_ BOOL Native16BitShaderOpsSupported; | ||
| 2774 | } D3D12_FEATURE_DATA_D3D12_OPTIONS4; | ||
| 2775 | |||
| 2776 | typedef | ||
| 2777 | enum D3D12_HEAP_SERIALIZATION_TIER | ||
| 2778 | { | ||
| 2779 | D3D12_HEAP_SERIALIZATION_TIER_0 = 0, | ||
| 2780 | D3D12_HEAP_SERIALIZATION_TIER_10 = 10 | ||
| 2781 | } D3D12_HEAP_SERIALIZATION_TIER; | ||
| 2782 | |||
| 2783 | typedef struct D3D12_FEATURE_DATA_SERIALIZATION | ||
| 2784 | { | ||
| 2785 | _In_ UINT NodeIndex; | ||
| 2786 | _Out_ D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier; | ||
| 2787 | } D3D12_FEATURE_DATA_SERIALIZATION; | ||
| 2788 | |||
| 2789 | typedef struct D3D12_FEATURE_DATA_CROSS_NODE | ||
| 2790 | { | ||
| 2791 | D3D12_CROSS_NODE_SHARING_TIER SharingTier; | ||
| 2792 | BOOL AtomicShaderInstructions; | ||
| 2793 | } D3D12_FEATURE_DATA_CROSS_NODE; | ||
| 2794 | |||
| 2795 | typedef | ||
| 2796 | enum D3D12_RENDER_PASS_TIER | ||
| 2797 | { | ||
| 2798 | D3D12_RENDER_PASS_TIER_0 = 0, | ||
| 2799 | D3D12_RENDER_PASS_TIER_1 = 1, | ||
| 2800 | D3D12_RENDER_PASS_TIER_2 = 2 | ||
| 2801 | } D3D12_RENDER_PASS_TIER; | ||
| 2802 | |||
| 2803 | typedef | ||
| 2804 | enum D3D12_RAYTRACING_TIER | ||
| 2805 | { | ||
| 2806 | D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0, | ||
| 2807 | D3D12_RAYTRACING_TIER_1_0 = 10, | ||
| 2808 | D3D12_RAYTRACING_TIER_1_1 = 11, | ||
| 2809 | D3D12_RAYTRACING_TIER_1_2 = 12 | ||
| 2810 | } D3D12_RAYTRACING_TIER; | ||
| 2811 | |||
| 2812 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 | ||
| 2813 | { | ||
| 2814 | _Out_ BOOL SRVOnlyTiledResourceTier3; | ||
| 2815 | _Out_ D3D12_RENDER_PASS_TIER RenderPassesTier; | ||
| 2816 | _Out_ D3D12_RAYTRACING_TIER RaytracingTier; | ||
| 2817 | } D3D12_FEATURE_DATA_D3D12_OPTIONS5; | ||
| 2818 | |||
| 2819 | typedef | ||
| 2820 | enum D3D12_VARIABLE_SHADING_RATE_TIER | ||
| 2821 | { | ||
| 2822 | D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0, | ||
| 2823 | D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1, | ||
| 2824 | D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2 | ||
| 2825 | } D3D12_VARIABLE_SHADING_RATE_TIER; | ||
| 2826 | |||
| 2827 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 | ||
| 2828 | { | ||
| 2829 | _Out_ BOOL AdditionalShadingRatesSupported; | ||
| 2830 | _Out_ BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing; | ||
| 2831 | _Out_ D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier; | ||
| 2832 | _Out_ UINT ShadingRateImageTileSize; | ||
| 2833 | _Out_ BOOL BackgroundProcessingSupported; | ||
| 2834 | } D3D12_FEATURE_DATA_D3D12_OPTIONS6; | ||
| 2835 | |||
| 2836 | typedef | ||
| 2837 | enum D3D12_MESH_SHADER_TIER | ||
| 2838 | { | ||
| 2839 | D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0, | ||
| 2840 | D3D12_MESH_SHADER_TIER_1 = 10 | ||
| 2841 | } D3D12_MESH_SHADER_TIER; | ||
| 2842 | |||
| 2843 | typedef | ||
| 2844 | enum D3D12_SAMPLER_FEEDBACK_TIER | ||
| 2845 | { | ||
| 2846 | D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0, | ||
| 2847 | D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90, | ||
| 2848 | D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100 | ||
| 2849 | } D3D12_SAMPLER_FEEDBACK_TIER; | ||
| 2850 | |||
| 2851 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 | ||
| 2852 | { | ||
| 2853 | _Out_ D3D12_MESH_SHADER_TIER MeshShaderTier; | ||
| 2854 | _Out_ D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier; | ||
| 2855 | } D3D12_FEATURE_DATA_D3D12_OPTIONS7; | ||
| 2856 | |||
| 2857 | typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND | ||
| 2858 | { | ||
| 2859 | _In_ GUID CommandId; | ||
| 2860 | _In_ UINT NodeMask; | ||
| 2861 | _Field_size_bytes_full_opt_( QueryInputDataSizeInBytes ) const void *pQueryInputData; | ||
| 2862 | _In_ SIZE_T QueryInputDataSizeInBytes; | ||
| 2863 | _Field_size_bytes_full_( QueryOutputDataSizeInBytes ) void *pQueryOutputData; | ||
| 2864 | _In_ SIZE_T QueryOutputDataSizeInBytes; | ||
| 2865 | } D3D12_FEATURE_DATA_QUERY_META_COMMAND; | ||
| 2866 | |||
| 2867 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 | ||
| 2868 | { | ||
| 2869 | _Out_ BOOL UnalignedBlockTexturesSupported; | ||
| 2870 | } D3D12_FEATURE_DATA_D3D12_OPTIONS8; | ||
| 2871 | |||
| 2872 | typedef | ||
| 2873 | enum D3D12_WAVE_MMA_TIER | ||
| 2874 | { | ||
| 2875 | D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0, | ||
| 2876 | D3D12_WAVE_MMA_TIER_1_0 = 10 | ||
| 2877 | } D3D12_WAVE_MMA_TIER; | ||
| 2878 | |||
| 2879 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 | ||
| 2880 | { | ||
| 2881 | _Out_ BOOL MeshShaderPipelineStatsSupported; | ||
| 2882 | _Out_ BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex; | ||
| 2883 | _Out_ BOOL AtomicInt64OnTypedResourceSupported; | ||
| 2884 | _Out_ BOOL AtomicInt64OnGroupSharedSupported; | ||
| 2885 | _Out_ BOOL DerivativesInMeshAndAmplificationShadersSupported; | ||
| 2886 | _Out_ D3D12_WAVE_MMA_TIER WaveMMATier; | ||
| 2887 | } D3D12_FEATURE_DATA_D3D12_OPTIONS9; | ||
| 2888 | |||
| 2889 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 | ||
| 2890 | { | ||
| 2891 | _Out_ BOOL VariableRateShadingSumCombinerSupported; | ||
| 2892 | _Out_ BOOL MeshShaderPerPrimitiveShadingRateSupported; | ||
| 2893 | } D3D12_FEATURE_DATA_D3D12_OPTIONS10; | ||
| 2894 | |||
| 2895 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 | ||
| 2896 | { | ||
| 2897 | _Out_ BOOL AtomicInt64OnDescriptorHeapResourceSupported; | ||
| 2898 | } D3D12_FEATURE_DATA_D3D12_OPTIONS11; | ||
| 2899 | |||
| 2900 | typedef | ||
| 2901 | enum D3D12_TRI_STATE | ||
| 2902 | { | ||
| 2903 | D3D12_TRI_STATE_UNKNOWN = -1, | ||
| 2904 | D3D12_TRI_STATE_FALSE = 0, | ||
| 2905 | D3D12_TRI_STATE_TRUE = 1 | ||
| 2906 | } D3D12_TRI_STATE; | ||
| 2907 | |||
| 2908 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 | ||
| 2909 | { | ||
| 2910 | _Out_ D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives; | ||
| 2911 | _Out_ BOOL EnhancedBarriersSupported; | ||
| 2912 | _Out_ BOOL RelaxedFormatCastingSupported; | ||
| 2913 | } D3D12_FEATURE_DATA_D3D12_OPTIONS12; | ||
| 2914 | |||
| 2915 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13 | ||
| 2916 | { | ||
| 2917 | _Out_ BOOL UnrestrictedBufferTextureCopyPitchSupported; | ||
| 2918 | _Out_ BOOL UnrestrictedVertexElementAlignmentSupported; | ||
| 2919 | _Out_ BOOL InvertedViewportHeightFlipsYSupported; | ||
| 2920 | _Out_ BOOL InvertedViewportDepthFlipsZSupported; | ||
| 2921 | _Out_ BOOL TextureCopyBetweenDimensionsSupported; | ||
| 2922 | _Out_ BOOL AlphaBlendFactorSupported; | ||
| 2923 | } D3D12_FEATURE_DATA_D3D12_OPTIONS13; | ||
| 2924 | |||
| 2925 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14 | ||
| 2926 | { | ||
| 2927 | _Out_ BOOL AdvancedTextureOpsSupported; | ||
| 2928 | _Out_ BOOL WriteableMSAATexturesSupported; | ||
| 2929 | _Out_ BOOL IndependentFrontAndBackStencilRefMaskSupported; | ||
| 2930 | } D3D12_FEATURE_DATA_D3D12_OPTIONS14; | ||
| 2931 | |||
| 2932 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15 | ||
| 2933 | { | ||
| 2934 | _Out_ BOOL TriangleFanSupported; | ||
| 2935 | _Out_ BOOL DynamicIndexBufferStripCutSupported; | ||
| 2936 | } D3D12_FEATURE_DATA_D3D12_OPTIONS15; | ||
| 2937 | |||
| 2938 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16 | ||
| 2939 | { | ||
| 2940 | _Out_ BOOL DynamicDepthBiasSupported; | ||
| 2941 | _Out_ BOOL GPUUploadHeapSupported; | ||
| 2942 | } D3D12_FEATURE_DATA_D3D12_OPTIONS16; | ||
| 2943 | |||
| 2944 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17 | ||
| 2945 | { | ||
| 2946 | _Out_ BOOL NonNormalizedCoordinateSamplersSupported; | ||
| 2947 | _Out_ BOOL ManualWriteTrackingResourceSupported; | ||
| 2948 | } D3D12_FEATURE_DATA_D3D12_OPTIONS17; | ||
| 2949 | |||
| 2950 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18 | ||
| 2951 | { | ||
| 2952 | _Out_ BOOL RenderPassesValid; | ||
| 2953 | } D3D12_FEATURE_DATA_D3D12_OPTIONS18; | ||
| 2954 | |||
| 2955 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS19 | ||
| 2956 | { | ||
| 2957 | BOOL MismatchingOutputDimensionsSupported; | ||
| 2958 | UINT SupportedSampleCountsWithNoOutputs; | ||
| 2959 | BOOL PointSamplingAddressesNeverRoundUp; | ||
| 2960 | BOOL RasterizerDesc2Supported; | ||
| 2961 | BOOL NarrowQuadrilateralLinesSupported; | ||
| 2962 | BOOL AnisoFilterWithPointMipSupported; | ||
| 2963 | UINT MaxSamplerDescriptorHeapSize; | ||
| 2964 | UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers; | ||
| 2965 | UINT MaxViewDescriptorHeapSize; | ||
| 2966 | _Out_ BOOL ComputeOnlyCustomHeapSupported; | ||
| 2967 | } D3D12_FEATURE_DATA_D3D12_OPTIONS19; | ||
| 2968 | |||
| 2969 | typedef | ||
| 2970 | enum D3D12_RECREATE_AT_TIER | ||
| 2971 | { | ||
| 2972 | D3D12_RECREATE_AT_TIER_NOT_SUPPORTED = 0, | ||
| 2973 | D3D12_RECREATE_AT_TIER_1 = 1 | ||
| 2974 | } D3D12_RECREATE_AT_TIER; | ||
| 2975 | |||
| 2976 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS20 | ||
| 2977 | { | ||
| 2978 | _Out_ BOOL ComputeOnlyWriteWatchSupported; | ||
| 2979 | D3D12_RECREATE_AT_TIER RecreateAtTier; | ||
| 2980 | } D3D12_FEATURE_DATA_D3D12_OPTIONS20; | ||
| 2981 | |||
| 2982 | typedef | ||
| 2983 | enum D3D12_EXECUTE_INDIRECT_TIER | ||
| 2984 | { | ||
| 2985 | D3D12_EXECUTE_INDIRECT_TIER_1_0 = 10, | ||
| 2986 | D3D12_EXECUTE_INDIRECT_TIER_1_1 = 11 | ||
| 2987 | } D3D12_EXECUTE_INDIRECT_TIER; | ||
| 2988 | |||
| 2989 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 | ||
| 2990 | { | ||
| 2991 | _Out_ D3D12_WORK_GRAPHS_TIER WorkGraphsTier; | ||
| 2992 | _Out_ D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier; | ||
| 2993 | _Out_ BOOL SampleCmpGradientAndBiasSupported; | ||
| 2994 | _Out_ BOOL ExtendedCommandInfoSupported; | ||
| 2995 | } D3D12_FEATURE_DATA_D3D12_OPTIONS21; | ||
| 2996 | |||
| 2997 | typedef | ||
| 2998 | enum D3D12_TIGHT_ALIGNMENT_TIER | ||
| 2999 | { | ||
| 3000 | D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED = 0, | ||
| 3001 | D3D12_TIGHT_ALIGNMENT_TIER_1 = ( D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED + 1 ) | ||
| 3002 | } D3D12_TIGHT_ALIGNMENT_TIER; | ||
| 3003 | |||
| 3004 | typedef struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT | ||
| 3005 | { | ||
| 3006 | _Out_ D3D12_TIGHT_ALIGNMENT_TIER SupportTier; | ||
| 3007 | } D3D12_FEATURE_DATA_TIGHT_ALIGNMENT; | ||
| 3008 | |||
| 3009 | typedef struct D3D12_FEATURE_DATA_PREDICATION | ||
| 3010 | { | ||
| 3011 | _Out_ BOOL Supported; | ||
| 3012 | } D3D12_FEATURE_DATA_PREDICATION; | ||
| 3013 | |||
| 3014 | typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY | ||
| 3015 | { | ||
| 3016 | _Out_ BOOL Supported; | ||
| 3017 | } D3D12_FEATURE_DATA_HARDWARE_COPY; | ||
| 3018 | |||
| 3019 | typedef struct D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE | ||
| 3020 | { | ||
| 3021 | _Out_ BOOL Supported; | ||
| 3022 | } D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE; | ||
| 3023 | |||
| 3024 | typedef struct D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED | ||
| 3025 | { | ||
| 3026 | _Out_ BOOL Supported; | ||
| 3027 | } D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED; | ||
| 3028 | |||
| 3029 | typedef struct D3D12_RESOURCE_ALLOCATION_INFO | ||
| 3030 | { | ||
| 3031 | UINT64 SizeInBytes; | ||
| 3032 | UINT64 Alignment; | ||
| 3033 | } D3D12_RESOURCE_ALLOCATION_INFO; | ||
| 3034 | |||
| 3035 | typedef struct D3D12_RESOURCE_ALLOCATION_INFO1 | ||
| 3036 | { | ||
| 3037 | UINT64 Offset; | ||
| 3038 | UINT64 Alignment; | ||
| 3039 | UINT64 SizeInBytes; | ||
| 3040 | } D3D12_RESOURCE_ALLOCATION_INFO1; | ||
| 3041 | |||
| 3042 | typedef | ||
| 3043 | enum D3D12_HEAP_TYPE | ||
| 3044 | { | ||
| 3045 | D3D12_HEAP_TYPE_DEFAULT = 1, | ||
| 3046 | D3D12_HEAP_TYPE_UPLOAD = 2, | ||
| 3047 | D3D12_HEAP_TYPE_READBACK = 3, | ||
| 3048 | D3D12_HEAP_TYPE_CUSTOM = 4, | ||
| 3049 | D3D12_HEAP_TYPE_GPU_UPLOAD = 5 | ||
| 3050 | } D3D12_HEAP_TYPE; | ||
| 3051 | |||
| 3052 | typedef | ||
| 3053 | enum D3D12_CPU_PAGE_PROPERTY | ||
| 3054 | { | ||
| 3055 | D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, | ||
| 3056 | D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1, | ||
| 3057 | D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, | ||
| 3058 | D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3 | ||
| 3059 | } D3D12_CPU_PAGE_PROPERTY; | ||
| 3060 | |||
| 3061 | typedef | ||
| 3062 | enum D3D12_MEMORY_POOL | ||
| 3063 | { | ||
| 3064 | D3D12_MEMORY_POOL_UNKNOWN = 0, | ||
| 3065 | D3D12_MEMORY_POOL_L0 = 1, | ||
| 3066 | D3D12_MEMORY_POOL_L1 = 2 | ||
| 3067 | } D3D12_MEMORY_POOL; | ||
| 3068 | |||
| 3069 | typedef struct D3D12_HEAP_PROPERTIES | ||
| 3070 | { | ||
| 3071 | D3D12_HEAP_TYPE Type; | ||
| 3072 | D3D12_CPU_PAGE_PROPERTY CPUPageProperty; | ||
| 3073 | D3D12_MEMORY_POOL MemoryPoolPreference; | ||
| 3074 | UINT CreationNodeMask; | ||
| 3075 | UINT VisibleNodeMask; | ||
| 3076 | } D3D12_HEAP_PROPERTIES; | ||
| 3077 | |||
| 3078 | typedef | ||
| 3079 | enum D3D12_HEAP_FLAGS | ||
| 3080 | { | ||
| 3081 | D3D12_HEAP_FLAG_NONE = 0, | ||
| 3082 | D3D12_HEAP_FLAG_SHARED = 0x1, | ||
| 3083 | D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4, | ||
| 3084 | D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8, | ||
| 3085 | D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20, | ||
| 3086 | D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40, | ||
| 3087 | D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80, | ||
| 3088 | D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100, | ||
| 3089 | D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200, | ||
| 3090 | D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400, | ||
| 3091 | D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800, | ||
| 3092 | D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000, | ||
| 3093 | D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING = 0x2000, | ||
| 3094 | D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0, | ||
| 3095 | D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0, | ||
| 3096 | D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, | ||
| 3097 | D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84 | ||
| 3098 | } D3D12_HEAP_FLAGS; | ||
| 3099 | |||
| 3100 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS ) | ||
| 3101 | typedef struct D3D12_HEAP_DESC | ||
| 3102 | { | ||
| 3103 | UINT64 SizeInBytes; | ||
| 3104 | D3D12_HEAP_PROPERTIES Properties; | ||
| 3105 | UINT64 Alignment; | ||
| 3106 | D3D12_HEAP_FLAGS Flags; | ||
| 3107 | } D3D12_HEAP_DESC; | ||
| 3108 | |||
| 3109 | typedef | ||
| 3110 | enum D3D12_RESOURCE_DIMENSION | ||
| 3111 | { | ||
| 3112 | D3D12_RESOURCE_DIMENSION_UNKNOWN = 0, | ||
| 3113 | D3D12_RESOURCE_DIMENSION_BUFFER = 1, | ||
| 3114 | D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2, | ||
| 3115 | D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3, | ||
| 3116 | D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4 | ||
| 3117 | } D3D12_RESOURCE_DIMENSION; | ||
| 3118 | |||
| 3119 | typedef struct D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO | ||
| 3120 | { | ||
| 3121 | _In_ DXGI_FORMAT Format; | ||
| 3122 | _In_ D3D12_RESOURCE_DIMENSION Dimension; | ||
| 3123 | _In_ D3D12_HEAP_PROPERTIES DestHeapProperties; | ||
| 3124 | _Out_ BOOL Supported; | ||
| 3125 | } D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO; | ||
| 3126 | |||
| 3127 | typedef | ||
| 3128 | enum D3D12_TEXTURE_LAYOUT | ||
| 3129 | { | ||
| 3130 | D3D12_TEXTURE_LAYOUT_UNKNOWN = 0, | ||
| 3131 | D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, | ||
| 3132 | D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, | ||
| 3133 | D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3 | ||
| 3134 | } D3D12_TEXTURE_LAYOUT; | ||
| 3135 | |||
| 3136 | typedef | ||
| 3137 | enum D3D12_RESOURCE_FLAGS | ||
| 3138 | { | ||
| 3139 | D3D12_RESOURCE_FLAG_NONE = 0, | ||
| 3140 | D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1, | ||
| 3141 | D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2, | ||
| 3142 | D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4, | ||
| 3143 | D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, | ||
| 3144 | D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, | ||
| 3145 | D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20, | ||
| 3146 | D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, | ||
| 3147 | D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, | ||
| 3148 | D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100, | ||
| 3149 | D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x400 | ||
| 3150 | } D3D12_RESOURCE_FLAGS; | ||
| 3151 | |||
| 3152 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS ) | ||
| 3153 | typedef struct D3D12_MIP_REGION | ||
| 3154 | { | ||
| 3155 | UINT Width; | ||
| 3156 | UINT Height; | ||
| 3157 | UINT Depth; | ||
| 3158 | } D3D12_MIP_REGION; | ||
| 3159 | |||
| 3160 | typedef struct D3D12_RESOURCE_DESC | ||
| 3161 | { | ||
| 3162 | D3D12_RESOURCE_DIMENSION Dimension; | ||
| 3163 | UINT64 Alignment; | ||
| 3164 | UINT64 Width; | ||
| 3165 | UINT Height; | ||
| 3166 | UINT16 DepthOrArraySize; | ||
| 3167 | UINT16 MipLevels; | ||
| 3168 | DXGI_FORMAT Format; | ||
| 3169 | DXGI_SAMPLE_DESC SampleDesc; | ||
| 3170 | D3D12_TEXTURE_LAYOUT Layout; | ||
| 3171 | D3D12_RESOURCE_FLAGS Flags; | ||
| 3172 | } D3D12_RESOURCE_DESC; | ||
| 3173 | |||
| 3174 | typedef struct D3D12_RESOURCE_DESC1 | ||
| 3175 | { | ||
| 3176 | D3D12_RESOURCE_DIMENSION Dimension; | ||
| 3177 | UINT64 Alignment; | ||
| 3178 | UINT64 Width; | ||
| 3179 | UINT Height; | ||
| 3180 | UINT16 DepthOrArraySize; | ||
| 3181 | UINT16 MipLevels; | ||
| 3182 | DXGI_FORMAT Format; | ||
| 3183 | DXGI_SAMPLE_DESC SampleDesc; | ||
| 3184 | D3D12_TEXTURE_LAYOUT Layout; | ||
| 3185 | D3D12_RESOURCE_FLAGS Flags; | ||
| 3186 | D3D12_MIP_REGION SamplerFeedbackMipRegion; | ||
| 3187 | } D3D12_RESOURCE_DESC1; | ||
| 3188 | |||
| 3189 | typedef struct D3D12_DEPTH_STENCIL_VALUE | ||
| 3190 | { | ||
| 3191 | FLOAT Depth; | ||
| 3192 | UINT8 Stencil; | ||
| 3193 | } D3D12_DEPTH_STENCIL_VALUE; | ||
| 3194 | |||
| 3195 | typedef struct D3D12_CLEAR_VALUE | ||
| 3196 | { | ||
| 3197 | DXGI_FORMAT Format; | ||
| 3198 | union | ||
| 3199 | { | ||
| 3200 | FLOAT Color[ 4 ]; | ||
| 3201 | D3D12_DEPTH_STENCIL_VALUE DepthStencil; | ||
| 3202 | } ; | ||
| 3203 | } D3D12_CLEAR_VALUE; | ||
| 3204 | |||
| 3205 | typedef struct D3D12_RANGE | ||
| 3206 | { | ||
| 3207 | SIZE_T Begin; | ||
| 3208 | SIZE_T End; | ||
| 3209 | } D3D12_RANGE; | ||
| 3210 | |||
| 3211 | typedef struct D3D12_RANGE_UINT64 | ||
| 3212 | { | ||
| 3213 | UINT64 Begin; | ||
| 3214 | UINT64 End; | ||
| 3215 | } D3D12_RANGE_UINT64; | ||
| 3216 | |||
| 3217 | typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 | ||
| 3218 | { | ||
| 3219 | UINT Subresource; | ||
| 3220 | D3D12_RANGE_UINT64 Range; | ||
| 3221 | } D3D12_SUBRESOURCE_RANGE_UINT64; | ||
| 3222 | |||
| 3223 | typedef struct D3D12_SUBRESOURCE_INFO | ||
| 3224 | { | ||
| 3225 | UINT64 Offset; | ||
| 3226 | UINT RowPitch; | ||
| 3227 | UINT DepthPitch; | ||
| 3228 | } D3D12_SUBRESOURCE_INFO; | ||
| 3229 | |||
| 3230 | typedef struct D3D12_TILED_RESOURCE_COORDINATE | ||
| 3231 | { | ||
| 3232 | UINT X; | ||
| 3233 | UINT Y; | ||
| 3234 | UINT Z; | ||
| 3235 | UINT Subresource; | ||
| 3236 | } D3D12_TILED_RESOURCE_COORDINATE; | ||
| 3237 | |||
| 3238 | typedef struct D3D12_TILE_REGION_SIZE | ||
| 3239 | { | ||
| 3240 | UINT NumTiles; | ||
| 3241 | BOOL UseBox; | ||
| 3242 | UINT Width; | ||
| 3243 | UINT16 Height; | ||
| 3244 | UINT16 Depth; | ||
| 3245 | } D3D12_TILE_REGION_SIZE; | ||
| 3246 | |||
| 3247 | typedef | ||
| 3248 | enum D3D12_TILE_RANGE_FLAGS | ||
| 3249 | { | ||
| 3250 | D3D12_TILE_RANGE_FLAG_NONE = 0, | ||
| 3251 | D3D12_TILE_RANGE_FLAG_NULL = 1, | ||
| 3252 | D3D12_TILE_RANGE_FLAG_SKIP = 2, | ||
| 3253 | D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4 | ||
| 3254 | } D3D12_TILE_RANGE_FLAGS; | ||
| 3255 | |||
| 3256 | typedef struct D3D12_SUBRESOURCE_TILING | ||
| 3257 | { | ||
| 3258 | UINT WidthInTiles; | ||
| 3259 | UINT16 HeightInTiles; | ||
| 3260 | UINT16 DepthInTiles; | ||
| 3261 | UINT StartTileIndexInOverallResource; | ||
| 3262 | } D3D12_SUBRESOURCE_TILING; | ||
| 3263 | |||
| 3264 | typedef struct D3D12_TILE_SHAPE | ||
| 3265 | { | ||
| 3266 | UINT WidthInTexels; | ||
| 3267 | UINT HeightInTexels; | ||
| 3268 | UINT DepthInTexels; | ||
| 3269 | } D3D12_TILE_SHAPE; | ||
| 3270 | |||
| 3271 | typedef struct D3D12_PACKED_MIP_INFO | ||
| 3272 | { | ||
| 3273 | UINT8 NumStandardMips; | ||
| 3274 | UINT8 NumPackedMips; | ||
| 3275 | UINT NumTilesForPackedMips; | ||
| 3276 | UINT StartTileIndexInOverallResource; | ||
| 3277 | } D3D12_PACKED_MIP_INFO; | ||
| 3278 | |||
| 3279 | typedef | ||
| 3280 | enum D3D12_TILE_MAPPING_FLAGS | ||
| 3281 | { | ||
| 3282 | D3D12_TILE_MAPPING_FLAG_NONE = 0, | ||
| 3283 | D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1 | ||
| 3284 | } D3D12_TILE_MAPPING_FLAGS; | ||
| 3285 | |||
| 3286 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS ) | ||
| 3287 | typedef | ||
| 3288 | enum D3D12_TILE_COPY_FLAGS | ||
| 3289 | { | ||
| 3290 | D3D12_TILE_COPY_FLAG_NONE = 0, | ||
| 3291 | D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1, | ||
| 3292 | D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, | ||
| 3293 | D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4 | ||
| 3294 | } D3D12_TILE_COPY_FLAGS; | ||
| 3295 | |||
| 3296 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS ) | ||
| 3297 | typedef | ||
| 3298 | enum D3D12_RESOURCE_STATES | ||
| 3299 | { | ||
| 3300 | D3D12_RESOURCE_STATE_COMMON = 0, | ||
| 3301 | D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1, | ||
| 3302 | D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2, | ||
| 3303 | D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4, | ||
| 3304 | D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8, | ||
| 3305 | D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10, | ||
| 3306 | D3D12_RESOURCE_STATE_DEPTH_READ = 0x20, | ||
| 3307 | D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40, | ||
| 3308 | D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80, | ||
| 3309 | D3D12_RESOURCE_STATE_STREAM_OUT = 0x100, | ||
| 3310 | D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200, | ||
| 3311 | D3D12_RESOURCE_STATE_COPY_DEST = 0x400, | ||
| 3312 | D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800, | ||
| 3313 | D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000, | ||
| 3314 | D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000, | ||
| 3315 | D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000, | ||
| 3316 | D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000, | ||
| 3317 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000 = 0x8000, | ||
| 3318 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000 = 0x4000, | ||
| 3319 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000 = 0x100000, | ||
| 3320 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000 = 0x40000000, | ||
| 3321 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000 = 0x80000000, | ||
| 3322 | D3D12_RESOURCE_STATE_GENERIC_READ = ( ( ( ( ( 0x1 | 0x2 ) | 0x40 ) | 0x80 ) | 0x200 ) | 0x800 ) , | ||
| 3323 | D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = ( 0x40 | 0x80 ) , | ||
| 3324 | D3D12_RESOURCE_STATE_PRESENT = 0, | ||
| 3325 | D3D12_RESOURCE_STATE_PREDICATION = 0x200, | ||
| 3326 | D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000, | ||
| 3327 | D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000, | ||
| 3328 | D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000, | ||
| 3329 | D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000, | ||
| 3330 | D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000, | ||
| 3331 | D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000 | ||
| 3332 | } D3D12_RESOURCE_STATES; | ||
| 3333 | |||
| 3334 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES ) | ||
| 3335 | typedef | ||
| 3336 | enum D3D12_RESOURCE_BARRIER_TYPE | ||
| 3337 | { | ||
| 3338 | D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0, | ||
| 3339 | D3D12_RESOURCE_BARRIER_TYPE_ALIASING = ( D3D12_RESOURCE_BARRIER_TYPE_TRANSITION + 1 ) , | ||
| 3340 | D3D12_RESOURCE_BARRIER_TYPE_UAV = ( D3D12_RESOURCE_BARRIER_TYPE_ALIASING + 1 ) | ||
| 3341 | } D3D12_RESOURCE_BARRIER_TYPE; | ||
| 3342 | |||
| 3343 | |||
| 3344 | typedef struct D3D12_RESOURCE_TRANSITION_BARRIER | ||
| 3345 | { | ||
| 3346 | ID3D12Resource *pResource; | ||
| 3347 | UINT Subresource; | ||
| 3348 | D3D12_RESOURCE_STATES StateBefore; | ||
| 3349 | D3D12_RESOURCE_STATES StateAfter; | ||
| 3350 | } D3D12_RESOURCE_TRANSITION_BARRIER; | ||
| 3351 | |||
| 3352 | typedef struct D3D12_RESOURCE_ALIASING_BARRIER | ||
| 3353 | { | ||
| 3354 | ID3D12Resource *pResourceBefore; | ||
| 3355 | ID3D12Resource *pResourceAfter; | ||
| 3356 | } D3D12_RESOURCE_ALIASING_BARRIER; | ||
| 3357 | |||
| 3358 | typedef struct D3D12_RESOURCE_UAV_BARRIER | ||
| 3359 | { | ||
| 3360 | ID3D12Resource *pResource; | ||
| 3361 | } D3D12_RESOURCE_UAV_BARRIER; | ||
| 3362 | |||
| 3363 | typedef | ||
| 3364 | enum D3D12_RESOURCE_BARRIER_FLAGS | ||
| 3365 | { | ||
| 3366 | D3D12_RESOURCE_BARRIER_FLAG_NONE = 0, | ||
| 3367 | D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1, | ||
| 3368 | D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2 | ||
| 3369 | } D3D12_RESOURCE_BARRIER_FLAGS; | ||
| 3370 | |||
| 3371 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS ) | ||
| 3372 | typedef struct D3D12_RESOURCE_BARRIER | ||
| 3373 | { | ||
| 3374 | D3D12_RESOURCE_BARRIER_TYPE Type; | ||
| 3375 | D3D12_RESOURCE_BARRIER_FLAGS Flags; | ||
| 3376 | union | ||
| 3377 | { | ||
| 3378 | D3D12_RESOURCE_TRANSITION_BARRIER Transition; | ||
| 3379 | D3D12_RESOURCE_ALIASING_BARRIER Aliasing; | ||
| 3380 | D3D12_RESOURCE_UAV_BARRIER UAV; | ||
| 3381 | } ; | ||
| 3382 | } D3D12_RESOURCE_BARRIER; | ||
| 3383 | |||
| 3384 | typedef struct D3D12_SUBRESOURCE_FOOTPRINT | ||
| 3385 | { | ||
| 3386 | DXGI_FORMAT Format; | ||
| 3387 | UINT Width; | ||
| 3388 | UINT Height; | ||
| 3389 | UINT Depth; | ||
| 3390 | UINT RowPitch; | ||
| 3391 | } D3D12_SUBRESOURCE_FOOTPRINT; | ||
| 3392 | |||
| 3393 | typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT | ||
| 3394 | { | ||
| 3395 | UINT64 Offset; | ||
| 3396 | D3D12_SUBRESOURCE_FOOTPRINT Footprint; | ||
| 3397 | } D3D12_PLACED_SUBRESOURCE_FOOTPRINT; | ||
| 3398 | |||
| 3399 | typedef | ||
| 3400 | enum D3D12_TEXTURE_COPY_TYPE | ||
| 3401 | { | ||
| 3402 | D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, | ||
| 3403 | D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1 | ||
| 3404 | } D3D12_TEXTURE_COPY_TYPE; | ||
| 3405 | |||
| 3406 | typedef struct D3D12_TEXTURE_COPY_LOCATION | ||
| 3407 | { | ||
| 3408 | ID3D12Resource *pResource; | ||
| 3409 | D3D12_TEXTURE_COPY_TYPE Type; | ||
| 3410 | union | ||
| 3411 | { | ||
| 3412 | D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; | ||
| 3413 | UINT SubresourceIndex; | ||
| 3414 | } ; | ||
| 3415 | } D3D12_TEXTURE_COPY_LOCATION; | ||
| 3416 | |||
| 3417 | typedef | ||
| 3418 | enum D3D12_RESOLVE_MODE | ||
| 3419 | { | ||
| 3420 | D3D12_RESOLVE_MODE_DECOMPRESS = 0, | ||
| 3421 | D3D12_RESOLVE_MODE_MIN = 1, | ||
| 3422 | D3D12_RESOLVE_MODE_MAX = 2, | ||
| 3423 | D3D12_RESOLVE_MODE_AVERAGE = 3, | ||
| 3424 | D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4, | ||
| 3425 | D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5 | ||
| 3426 | } D3D12_RESOLVE_MODE; | ||
| 3427 | |||
| 3428 | typedef struct D3D12_SAMPLE_POSITION | ||
| 3429 | { | ||
| 3430 | INT8 X; | ||
| 3431 | INT8 Y; | ||
| 3432 | } D3D12_SAMPLE_POSITION; | ||
| 3433 | |||
| 3434 | typedef struct D3D12_VIEW_INSTANCE_LOCATION | ||
| 3435 | { | ||
| 3436 | UINT ViewportArrayIndex; | ||
| 3437 | UINT RenderTargetArrayIndex; | ||
| 3438 | } D3D12_VIEW_INSTANCE_LOCATION; | ||
| 3439 | |||
| 3440 | typedef | ||
| 3441 | enum D3D12_VIEW_INSTANCING_FLAGS | ||
| 3442 | { | ||
| 3443 | D3D12_VIEW_INSTANCING_FLAG_NONE = 0, | ||
| 3444 | D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1 | ||
| 3445 | } D3D12_VIEW_INSTANCING_FLAGS; | ||
| 3446 | |||
| 3447 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS ) | ||
| 3448 | typedef struct D3D12_VIEW_INSTANCING_DESC | ||
| 3449 | { | ||
| 3450 | UINT ViewInstanceCount; | ||
| 3451 | _Field_size_full_(ViewInstanceCount) const D3D12_VIEW_INSTANCE_LOCATION *pViewInstanceLocations; | ||
| 3452 | D3D12_VIEW_INSTANCING_FLAGS Flags; | ||
| 3453 | } D3D12_VIEW_INSTANCING_DESC; | ||
| 3454 | |||
| 3455 | typedef | ||
| 3456 | enum D3D12_SHADER_COMPONENT_MAPPING | ||
| 3457 | { | ||
| 3458 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0, | ||
| 3459 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1, | ||
| 3460 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2, | ||
| 3461 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3, | ||
| 3462 | D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4, | ||
| 3463 | D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5 | ||
| 3464 | } D3D12_SHADER_COMPONENT_MAPPING; | ||
| 3465 | |||
| 3466 | #define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7 | ||
| 3467 | #define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3 | ||
| 3468 | #define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4)) | ||
| 3469 | #define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \ | ||
| 3470 | (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \ | ||
| 3471 | (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \ | ||
| 3472 | (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \ | ||
| 3473 | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)) | ||
| 3474 | #define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) ((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK)) | ||
| 3475 | #define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3) | ||
| 3476 | typedef | ||
| 3477 | enum D3D12_BUFFER_SRV_FLAGS | ||
| 3478 | { | ||
| 3479 | D3D12_BUFFER_SRV_FLAG_NONE = 0, | ||
| 3480 | D3D12_BUFFER_SRV_FLAG_RAW = 0x1 | ||
| 3481 | } D3D12_BUFFER_SRV_FLAGS; | ||
| 3482 | |||
| 3483 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS ) | ||
| 3484 | typedef struct D3D12_BUFFER_SRV | ||
| 3485 | { | ||
| 3486 | UINT64 FirstElement; | ||
| 3487 | UINT NumElements; | ||
| 3488 | UINT StructureByteStride; | ||
| 3489 | D3D12_BUFFER_SRV_FLAGS Flags; | ||
| 3490 | } D3D12_BUFFER_SRV; | ||
| 3491 | |||
| 3492 | typedef struct D3D12_TEX1D_SRV | ||
| 3493 | { | ||
| 3494 | UINT MostDetailedMip; | ||
| 3495 | UINT MipLevels; | ||
| 3496 | FLOAT ResourceMinLODClamp; | ||
| 3497 | } D3D12_TEX1D_SRV; | ||
| 3498 | |||
| 3499 | typedef struct D3D12_TEX1D_ARRAY_SRV | ||
| 3500 | { | ||
| 3501 | UINT MostDetailedMip; | ||
| 3502 | UINT MipLevels; | ||
| 3503 | UINT FirstArraySlice; | ||
| 3504 | UINT ArraySize; | ||
| 3505 | FLOAT ResourceMinLODClamp; | ||
| 3506 | } D3D12_TEX1D_ARRAY_SRV; | ||
| 3507 | |||
| 3508 | typedef struct D3D12_TEX2D_SRV | ||
| 3509 | { | ||
| 3510 | UINT MostDetailedMip; | ||
| 3511 | UINT MipLevels; | ||
| 3512 | UINT PlaneSlice; | ||
| 3513 | FLOAT ResourceMinLODClamp; | ||
| 3514 | } D3D12_TEX2D_SRV; | ||
| 3515 | |||
| 3516 | typedef struct D3D12_TEX2D_ARRAY_SRV | ||
| 3517 | { | ||
| 3518 | UINT MostDetailedMip; | ||
| 3519 | UINT MipLevels; | ||
| 3520 | UINT FirstArraySlice; | ||
| 3521 | UINT ArraySize; | ||
| 3522 | UINT PlaneSlice; | ||
| 3523 | FLOAT ResourceMinLODClamp; | ||
| 3524 | } D3D12_TEX2D_ARRAY_SRV; | ||
| 3525 | |||
| 3526 | typedef struct D3D12_TEX3D_SRV | ||
| 3527 | { | ||
| 3528 | UINT MostDetailedMip; | ||
| 3529 | UINT MipLevels; | ||
| 3530 | FLOAT ResourceMinLODClamp; | ||
| 3531 | } D3D12_TEX3D_SRV; | ||
| 3532 | |||
| 3533 | typedef struct D3D12_TEXCUBE_SRV | ||
| 3534 | { | ||
| 3535 | UINT MostDetailedMip; | ||
| 3536 | UINT MipLevels; | ||
| 3537 | FLOAT ResourceMinLODClamp; | ||
| 3538 | } D3D12_TEXCUBE_SRV; | ||
| 3539 | |||
| 3540 | typedef struct D3D12_TEXCUBE_ARRAY_SRV | ||
| 3541 | { | ||
| 3542 | UINT MostDetailedMip; | ||
| 3543 | UINT MipLevels; | ||
| 3544 | UINT First2DArrayFace; | ||
| 3545 | UINT NumCubes; | ||
| 3546 | FLOAT ResourceMinLODClamp; | ||
| 3547 | } D3D12_TEXCUBE_ARRAY_SRV; | ||
| 3548 | |||
| 3549 | typedef struct D3D12_TEX2DMS_SRV | ||
| 3550 | { | ||
| 3551 | UINT UnusedField_NothingToDefine; | ||
| 3552 | } D3D12_TEX2DMS_SRV; | ||
| 3553 | |||
| 3554 | typedef struct D3D12_TEX2DMS_ARRAY_SRV | ||
| 3555 | { | ||
| 3556 | UINT FirstArraySlice; | ||
| 3557 | UINT ArraySize; | ||
| 3558 | } D3D12_TEX2DMS_ARRAY_SRV; | ||
| 3559 | |||
| 3560 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV | ||
| 3561 | { | ||
| 3562 | D3D12_GPU_VIRTUAL_ADDRESS Location; | ||
| 3563 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV; | ||
| 3564 | |||
| 3565 | typedef | ||
| 3566 | enum D3D12_SRV_DIMENSION | ||
| 3567 | { | ||
| 3568 | D3D12_SRV_DIMENSION_UNKNOWN = 0, | ||
| 3569 | D3D12_SRV_DIMENSION_BUFFER = 1, | ||
| 3570 | D3D12_SRV_DIMENSION_TEXTURE1D = 2, | ||
| 3571 | D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, | ||
| 3572 | D3D12_SRV_DIMENSION_TEXTURE2D = 4, | ||
| 3573 | D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, | ||
| 3574 | D3D12_SRV_DIMENSION_TEXTURE2DMS = 6, | ||
| 3575 | D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, | ||
| 3576 | D3D12_SRV_DIMENSION_TEXTURE3D = 8, | ||
| 3577 | D3D12_SRV_DIMENSION_TEXTURECUBE = 9, | ||
| 3578 | D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10, | ||
| 3579 | D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11 | ||
| 3580 | } D3D12_SRV_DIMENSION; | ||
| 3581 | |||
| 3582 | typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC | ||
| 3583 | { | ||
| 3584 | DXGI_FORMAT Format; | ||
| 3585 | D3D12_SRV_DIMENSION ViewDimension; | ||
| 3586 | UINT Shader4ComponentMapping; | ||
| 3587 | union | ||
| 3588 | { | ||
| 3589 | D3D12_BUFFER_SRV Buffer; | ||
| 3590 | D3D12_TEX1D_SRV Texture1D; | ||
| 3591 | D3D12_TEX1D_ARRAY_SRV Texture1DArray; | ||
| 3592 | D3D12_TEX2D_SRV Texture2D; | ||
| 3593 | D3D12_TEX2D_ARRAY_SRV Texture2DArray; | ||
| 3594 | D3D12_TEX2DMS_SRV Texture2DMS; | ||
| 3595 | D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; | ||
| 3596 | D3D12_TEX3D_SRV Texture3D; | ||
| 3597 | D3D12_TEXCUBE_SRV TextureCube; | ||
| 3598 | D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; | ||
| 3599 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure; | ||
| 3600 | } ; | ||
| 3601 | } D3D12_SHADER_RESOURCE_VIEW_DESC; | ||
| 3602 | |||
| 3603 | typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC | ||
| 3604 | { | ||
| 3605 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; | ||
| 3606 | UINT SizeInBytes; | ||
| 3607 | } D3D12_CONSTANT_BUFFER_VIEW_DESC; | ||
| 3608 | |||
| 3609 | typedef | ||
| 3610 | enum D3D12_FILTER | ||
| 3611 | { | ||
| 3612 | D3D12_FILTER_MIN_MAG_MIP_POINT = 0, | ||
| 3613 | D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x1, | ||
| 3614 | D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x4, | ||
| 3615 | D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x5, | ||
| 3616 | D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10, | ||
| 3617 | D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11, | ||
| 3618 | D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14, | ||
| 3619 | D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15, | ||
| 3620 | D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x54, | ||
| 3621 | D3D12_FILTER_ANISOTROPIC = 0x55, | ||
| 3622 | D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80, | ||
| 3623 | D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81, | ||
| 3624 | D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84, | ||
| 3625 | D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85, | ||
| 3626 | D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90, | ||
| 3627 | D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91, | ||
| 3628 | D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94, | ||
| 3629 | D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95, | ||
| 3630 | D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 0xd4, | ||
| 3631 | D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5, | ||
| 3632 | D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100, | ||
| 3633 | D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101, | ||
| 3634 | D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104, | ||
| 3635 | D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105, | ||
| 3636 | D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110, | ||
| 3637 | D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111, | ||
| 3638 | D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114, | ||
| 3639 | D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115, | ||
| 3640 | D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x154, | ||
| 3641 | D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155, | ||
| 3642 | D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180, | ||
| 3643 | D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181, | ||
| 3644 | D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184, | ||
| 3645 | D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185, | ||
| 3646 | D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190, | ||
| 3647 | D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191, | ||
| 3648 | D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194, | ||
| 3649 | D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195, | ||
| 3650 | D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x1d4, | ||
| 3651 | D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5 | ||
| 3652 | } D3D12_FILTER; | ||
| 3653 | |||
| 3654 | typedef | ||
| 3655 | enum D3D12_FILTER_TYPE | ||
| 3656 | { | ||
| 3657 | D3D12_FILTER_TYPE_POINT = 0, | ||
| 3658 | D3D12_FILTER_TYPE_LINEAR = 1 | ||
| 3659 | } D3D12_FILTER_TYPE; | ||
| 3660 | |||
| 3661 | typedef | ||
| 3662 | enum D3D12_FILTER_REDUCTION_TYPE | ||
| 3663 | { | ||
| 3664 | D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0, | ||
| 3665 | D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1, | ||
| 3666 | D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2, | ||
| 3667 | D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3 | ||
| 3668 | } D3D12_FILTER_REDUCTION_TYPE; | ||
| 3669 | |||
| 3670 | #define D3D12_FILTER_REDUCTION_TYPE_MASK ( 0x3 ) | ||
| 3671 | |||
| 3672 | #define D3D12_FILTER_REDUCTION_TYPE_SHIFT ( 7 ) | ||
| 3673 | |||
| 3674 | #define D3D12_FILTER_TYPE_MASK ( 0x3 ) | ||
| 3675 | |||
| 3676 | #define D3D12_MIN_FILTER_SHIFT ( 4 ) | ||
| 3677 | |||
| 3678 | #define D3D12_MAG_FILTER_SHIFT ( 2 ) | ||
| 3679 | |||
| 3680 | #define D3D12_MIP_FILTER_SHIFT ( 0 ) | ||
| 3681 | |||
| 3682 | #define D3D12_ANISOTROPIC_FILTERING_BIT ( 0x40 ) | ||
| 3683 | |||
| 3684 | #define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \ | ||
| 3685 | ( ( D3D12_FILTER ) ( \ | ||
| 3686 | ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \ | ||
| 3687 | ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \ | ||
| 3688 | ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \ | ||
| 3689 | ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) | ||
| 3690 | #define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \ | ||
| 3691 | ( ( D3D12_FILTER ) ( \ | ||
| 3692 | D3D12_ANISOTROPIC_FILTERING_BIT | \ | ||
| 3693 | D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \ | ||
| 3694 | D3D12_FILTER_TYPE_LINEAR, \ | ||
| 3695 | D3D12_FILTER_TYPE_LINEAR, \ | ||
| 3696 | reduction ) ) ) | ||
| 3697 | #define D3D12_ENCODE_MIN_MAG_ANISOTROPIC_MIP_POINT_FILTER( reduction ) \ | ||
| 3698 | ( ( D3D12_FILTER ) ( \ | ||
| 3699 | D3D12_ANISOTROPIC_FILTERING_BIT | \ | ||
| 3700 | D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \ | ||
| 3701 | D3D12_FILTER_TYPE_LINEAR, \ | ||
| 3702 | D3D12_FILTER_TYPE_POINT, \ | ||
| 3703 | reduction ) ) ) | ||
| 3704 | #define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \ | ||
| 3705 | ( ( D3D12_FILTER_TYPE ) \ | ||
| 3706 | ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) | ||
| 3707 | #define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \ | ||
| 3708 | ( ( D3D12_FILTER_TYPE ) \ | ||
| 3709 | ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) | ||
| 3710 | #define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \ | ||
| 3711 | ( ( D3D12_FILTER_TYPE ) \ | ||
| 3712 | ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) | ||
| 3713 | #define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \ | ||
| 3714 | ( ( D3D12_FILTER_REDUCTION_TYPE ) \ | ||
| 3715 | ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) | ||
| 3716 | #define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \ | ||
| 3717 | ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) | ||
| 3718 | #define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \ | ||
| 3719 | ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \ | ||
| 3720 | ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \ | ||
| 3721 | ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) ) | ||
| 3722 | typedef | ||
| 3723 | enum D3D12_TEXTURE_ADDRESS_MODE | ||
| 3724 | { | ||
| 3725 | D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, | ||
| 3726 | D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, | ||
| 3727 | D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, | ||
| 3728 | D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, | ||
| 3729 | D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5 | ||
| 3730 | } D3D12_TEXTURE_ADDRESS_MODE; | ||
| 3731 | |||
| 3732 | typedef struct D3D12_SAMPLER_DESC | ||
| 3733 | { | ||
| 3734 | D3D12_FILTER Filter; | ||
| 3735 | D3D12_TEXTURE_ADDRESS_MODE AddressU; | ||
| 3736 | D3D12_TEXTURE_ADDRESS_MODE AddressV; | ||
| 3737 | D3D12_TEXTURE_ADDRESS_MODE AddressW; | ||
| 3738 | FLOAT MipLODBias; | ||
| 3739 | UINT MaxAnisotropy; | ||
| 3740 | D3D12_COMPARISON_FUNC ComparisonFunc; | ||
| 3741 | FLOAT BorderColor[ 4 ]; | ||
| 3742 | FLOAT MinLOD; | ||
| 3743 | FLOAT MaxLOD; | ||
| 3744 | } D3D12_SAMPLER_DESC; | ||
| 3745 | |||
| 3746 | typedef | ||
| 3747 | enum D3D12_SAMPLER_FLAGS | ||
| 3748 | { | ||
| 3749 | D3D12_SAMPLER_FLAG_NONE = 0, | ||
| 3750 | D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR = 0x1, | ||
| 3751 | D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES = 0x2 | ||
| 3752 | } D3D12_SAMPLER_FLAGS; | ||
| 3753 | |||
| 3754 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_SAMPLER_FLAGS ) | ||
| 3755 | typedef struct D3D12_SAMPLER_DESC2 | ||
| 3756 | { | ||
| 3757 | D3D12_FILTER Filter; | ||
| 3758 | D3D12_TEXTURE_ADDRESS_MODE AddressU; | ||
| 3759 | D3D12_TEXTURE_ADDRESS_MODE AddressV; | ||
| 3760 | D3D12_TEXTURE_ADDRESS_MODE AddressW; | ||
| 3761 | FLOAT MipLODBias; | ||
| 3762 | UINT MaxAnisotropy; | ||
| 3763 | D3D12_COMPARISON_FUNC ComparisonFunc; | ||
| 3764 | union | ||
| 3765 | { | ||
| 3766 | FLOAT FloatBorderColor[ 4 ]; | ||
| 3767 | UINT UintBorderColor[ 4 ]; | ||
| 3768 | } ; | ||
| 3769 | FLOAT MinLOD; | ||
| 3770 | FLOAT MaxLOD; | ||
| 3771 | D3D12_SAMPLER_FLAGS Flags; | ||
| 3772 | } D3D12_SAMPLER_DESC2; | ||
| 3773 | |||
| 3774 | typedef | ||
| 3775 | enum D3D12_BUFFER_UAV_FLAGS | ||
| 3776 | { | ||
| 3777 | D3D12_BUFFER_UAV_FLAG_NONE = 0, | ||
| 3778 | D3D12_BUFFER_UAV_FLAG_RAW = 0x1 | ||
| 3779 | } D3D12_BUFFER_UAV_FLAGS; | ||
| 3780 | |||
| 3781 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS ) | ||
| 3782 | typedef struct D3D12_BUFFER_UAV | ||
| 3783 | { | ||
| 3784 | UINT64 FirstElement; | ||
| 3785 | UINT NumElements; | ||
| 3786 | UINT StructureByteStride; | ||
| 3787 | UINT64 CounterOffsetInBytes; | ||
| 3788 | D3D12_BUFFER_UAV_FLAGS Flags; | ||
| 3789 | } D3D12_BUFFER_UAV; | ||
| 3790 | |||
| 3791 | typedef struct D3D12_TEX1D_UAV | ||
| 3792 | { | ||
| 3793 | UINT MipSlice; | ||
| 3794 | } D3D12_TEX1D_UAV; | ||
| 3795 | |||
| 3796 | typedef struct D3D12_TEX1D_ARRAY_UAV | ||
| 3797 | { | ||
| 3798 | UINT MipSlice; | ||
| 3799 | UINT FirstArraySlice; | ||
| 3800 | UINT ArraySize; | ||
| 3801 | } D3D12_TEX1D_ARRAY_UAV; | ||
| 3802 | |||
| 3803 | typedef struct D3D12_TEX2D_UAV | ||
| 3804 | { | ||
| 3805 | UINT MipSlice; | ||
| 3806 | UINT PlaneSlice; | ||
| 3807 | } D3D12_TEX2D_UAV; | ||
| 3808 | |||
| 3809 | typedef struct D3D12_TEX2D_ARRAY_UAV | ||
| 3810 | { | ||
| 3811 | UINT MipSlice; | ||
| 3812 | UINT FirstArraySlice; | ||
| 3813 | UINT ArraySize; | ||
| 3814 | UINT PlaneSlice; | ||
| 3815 | } D3D12_TEX2D_ARRAY_UAV; | ||
| 3816 | |||
| 3817 | typedef struct D3D12_TEX2DMS_UAV | ||
| 3818 | { | ||
| 3819 | UINT UnusedField_NothingToDefine; | ||
| 3820 | } D3D12_TEX2DMS_UAV; | ||
| 3821 | |||
| 3822 | typedef struct D3D12_TEX2DMS_ARRAY_UAV | ||
| 3823 | { | ||
| 3824 | UINT FirstArraySlice; | ||
| 3825 | UINT ArraySize; | ||
| 3826 | } D3D12_TEX2DMS_ARRAY_UAV; | ||
| 3827 | |||
| 3828 | typedef struct D3D12_TEX3D_UAV | ||
| 3829 | { | ||
| 3830 | UINT MipSlice; | ||
| 3831 | UINT FirstWSlice; | ||
| 3832 | UINT WSize; | ||
| 3833 | } D3D12_TEX3D_UAV; | ||
| 3834 | |||
| 3835 | typedef | ||
| 3836 | enum D3D12_UAV_DIMENSION | ||
| 3837 | { | ||
| 3838 | D3D12_UAV_DIMENSION_UNKNOWN = 0, | ||
| 3839 | D3D12_UAV_DIMENSION_BUFFER = 1, | ||
| 3840 | D3D12_UAV_DIMENSION_TEXTURE1D = 2, | ||
| 3841 | D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, | ||
| 3842 | D3D12_UAV_DIMENSION_TEXTURE2D = 4, | ||
| 3843 | D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, | ||
| 3844 | D3D12_UAV_DIMENSION_TEXTURE2DMS = 6, | ||
| 3845 | D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY = 7, | ||
| 3846 | D3D12_UAV_DIMENSION_TEXTURE3D = 8 | ||
| 3847 | } D3D12_UAV_DIMENSION; | ||
| 3848 | |||
| 3849 | typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC | ||
| 3850 | { | ||
| 3851 | DXGI_FORMAT Format; | ||
| 3852 | D3D12_UAV_DIMENSION ViewDimension; | ||
| 3853 | union | ||
| 3854 | { | ||
| 3855 | D3D12_BUFFER_UAV Buffer; | ||
| 3856 | D3D12_TEX1D_UAV Texture1D; | ||
| 3857 | D3D12_TEX1D_ARRAY_UAV Texture1DArray; | ||
| 3858 | D3D12_TEX2D_UAV Texture2D; | ||
| 3859 | D3D12_TEX2D_ARRAY_UAV Texture2DArray; | ||
| 3860 | D3D12_TEX2DMS_UAV Texture2DMS; | ||
| 3861 | D3D12_TEX2DMS_ARRAY_UAV Texture2DMSArray; | ||
| 3862 | D3D12_TEX3D_UAV Texture3D; | ||
| 3863 | } ; | ||
| 3864 | } D3D12_UNORDERED_ACCESS_VIEW_DESC; | ||
| 3865 | |||
| 3866 | typedef struct D3D12_BUFFER_RTV | ||
| 3867 | { | ||
| 3868 | UINT64 FirstElement; | ||
| 3869 | UINT NumElements; | ||
| 3870 | } D3D12_BUFFER_RTV; | ||
| 3871 | |||
| 3872 | typedef struct D3D12_TEX1D_RTV | ||
| 3873 | { | ||
| 3874 | UINT MipSlice; | ||
| 3875 | } D3D12_TEX1D_RTV; | ||
| 3876 | |||
| 3877 | typedef struct D3D12_TEX1D_ARRAY_RTV | ||
| 3878 | { | ||
| 3879 | UINT MipSlice; | ||
| 3880 | UINT FirstArraySlice; | ||
| 3881 | UINT ArraySize; | ||
| 3882 | } D3D12_TEX1D_ARRAY_RTV; | ||
| 3883 | |||
| 3884 | typedef struct D3D12_TEX2D_RTV | ||
| 3885 | { | ||
| 3886 | UINT MipSlice; | ||
| 3887 | UINT PlaneSlice; | ||
| 3888 | } D3D12_TEX2D_RTV; | ||
| 3889 | |||
| 3890 | typedef struct D3D12_TEX2DMS_RTV | ||
| 3891 | { | ||
| 3892 | UINT UnusedField_NothingToDefine; | ||
| 3893 | } D3D12_TEX2DMS_RTV; | ||
| 3894 | |||
| 3895 | typedef struct D3D12_TEX2D_ARRAY_RTV | ||
| 3896 | { | ||
| 3897 | UINT MipSlice; | ||
| 3898 | UINT FirstArraySlice; | ||
| 3899 | UINT ArraySize; | ||
| 3900 | UINT PlaneSlice; | ||
| 3901 | } D3D12_TEX2D_ARRAY_RTV; | ||
| 3902 | |||
| 3903 | typedef struct D3D12_TEX2DMS_ARRAY_RTV | ||
| 3904 | { | ||
| 3905 | UINT FirstArraySlice; | ||
| 3906 | UINT ArraySize; | ||
| 3907 | } D3D12_TEX2DMS_ARRAY_RTV; | ||
| 3908 | |||
| 3909 | typedef struct D3D12_TEX3D_RTV | ||
| 3910 | { | ||
| 3911 | UINT MipSlice; | ||
| 3912 | UINT FirstWSlice; | ||
| 3913 | UINT WSize; | ||
| 3914 | } D3D12_TEX3D_RTV; | ||
| 3915 | |||
| 3916 | typedef | ||
| 3917 | enum D3D12_RTV_DIMENSION | ||
| 3918 | { | ||
| 3919 | D3D12_RTV_DIMENSION_UNKNOWN = 0, | ||
| 3920 | D3D12_RTV_DIMENSION_BUFFER = 1, | ||
| 3921 | D3D12_RTV_DIMENSION_TEXTURE1D = 2, | ||
| 3922 | D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3, | ||
| 3923 | D3D12_RTV_DIMENSION_TEXTURE2D = 4, | ||
| 3924 | D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5, | ||
| 3925 | D3D12_RTV_DIMENSION_TEXTURE2DMS = 6, | ||
| 3926 | D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, | ||
| 3927 | D3D12_RTV_DIMENSION_TEXTURE3D = 8 | ||
| 3928 | } D3D12_RTV_DIMENSION; | ||
| 3929 | |||
| 3930 | typedef struct D3D12_RENDER_TARGET_VIEW_DESC | ||
| 3931 | { | ||
| 3932 | DXGI_FORMAT Format; | ||
| 3933 | D3D12_RTV_DIMENSION ViewDimension; | ||
| 3934 | union | ||
| 3935 | { | ||
| 3936 | D3D12_BUFFER_RTV Buffer; | ||
| 3937 | D3D12_TEX1D_RTV Texture1D; | ||
| 3938 | D3D12_TEX1D_ARRAY_RTV Texture1DArray; | ||
| 3939 | D3D12_TEX2D_RTV Texture2D; | ||
| 3940 | D3D12_TEX2D_ARRAY_RTV Texture2DArray; | ||
| 3941 | D3D12_TEX2DMS_RTV Texture2DMS; | ||
| 3942 | D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; | ||
| 3943 | D3D12_TEX3D_RTV Texture3D; | ||
| 3944 | } ; | ||
| 3945 | } D3D12_RENDER_TARGET_VIEW_DESC; | ||
| 3946 | |||
| 3947 | typedef struct D3D12_TEX1D_DSV | ||
| 3948 | { | ||
| 3949 | UINT MipSlice; | ||
| 3950 | } D3D12_TEX1D_DSV; | ||
| 3951 | |||
| 3952 | typedef struct D3D12_TEX1D_ARRAY_DSV | ||
| 3953 | { | ||
| 3954 | UINT MipSlice; | ||
| 3955 | UINT FirstArraySlice; | ||
| 3956 | UINT ArraySize; | ||
| 3957 | } D3D12_TEX1D_ARRAY_DSV; | ||
| 3958 | |||
| 3959 | typedef struct D3D12_TEX2D_DSV | ||
| 3960 | { | ||
| 3961 | UINT MipSlice; | ||
| 3962 | } D3D12_TEX2D_DSV; | ||
| 3963 | |||
| 3964 | typedef struct D3D12_TEX2D_ARRAY_DSV | ||
| 3965 | { | ||
| 3966 | UINT MipSlice; | ||
| 3967 | UINT FirstArraySlice; | ||
| 3968 | UINT ArraySize; | ||
| 3969 | } D3D12_TEX2D_ARRAY_DSV; | ||
| 3970 | |||
| 3971 | typedef struct D3D12_TEX2DMS_DSV | ||
| 3972 | { | ||
| 3973 | UINT UnusedField_NothingToDefine; | ||
| 3974 | } D3D12_TEX2DMS_DSV; | ||
| 3975 | |||
| 3976 | typedef struct D3D12_TEX2DMS_ARRAY_DSV | ||
| 3977 | { | ||
| 3978 | UINT FirstArraySlice; | ||
| 3979 | UINT ArraySize; | ||
| 3980 | } D3D12_TEX2DMS_ARRAY_DSV; | ||
| 3981 | |||
| 3982 | typedef | ||
| 3983 | enum D3D12_DSV_FLAGS | ||
| 3984 | { | ||
| 3985 | D3D12_DSV_FLAG_NONE = 0, | ||
| 3986 | D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1, | ||
| 3987 | D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2 | ||
| 3988 | } D3D12_DSV_FLAGS; | ||
| 3989 | |||
| 3990 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS ) | ||
| 3991 | typedef | ||
| 3992 | enum D3D12_DSV_DIMENSION | ||
| 3993 | { | ||
| 3994 | D3D12_DSV_DIMENSION_UNKNOWN = 0, | ||
| 3995 | D3D12_DSV_DIMENSION_TEXTURE1D = 1, | ||
| 3996 | D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2, | ||
| 3997 | D3D12_DSV_DIMENSION_TEXTURE2D = 3, | ||
| 3998 | D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4, | ||
| 3999 | D3D12_DSV_DIMENSION_TEXTURE2DMS = 5, | ||
| 4000 | D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6 | ||
| 4001 | } D3D12_DSV_DIMENSION; | ||
| 4002 | |||
| 4003 | typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC | ||
| 4004 | { | ||
| 4005 | DXGI_FORMAT Format; | ||
| 4006 | D3D12_DSV_DIMENSION ViewDimension; | ||
| 4007 | D3D12_DSV_FLAGS Flags; | ||
| 4008 | union | ||
| 4009 | { | ||
| 4010 | D3D12_TEX1D_DSV Texture1D; | ||
| 4011 | D3D12_TEX1D_ARRAY_DSV Texture1DArray; | ||
| 4012 | D3D12_TEX2D_DSV Texture2D; | ||
| 4013 | D3D12_TEX2D_ARRAY_DSV Texture2DArray; | ||
| 4014 | D3D12_TEX2DMS_DSV Texture2DMS; | ||
| 4015 | D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; | ||
| 4016 | } ; | ||
| 4017 | } D3D12_DEPTH_STENCIL_VIEW_DESC; | ||
| 4018 | |||
| 4019 | typedef | ||
| 4020 | enum D3D12_CLEAR_FLAGS | ||
| 4021 | { | ||
| 4022 | D3D12_CLEAR_FLAG_DEPTH = 0x1, | ||
| 4023 | D3D12_CLEAR_FLAG_STENCIL = 0x2 | ||
| 4024 | } D3D12_CLEAR_FLAGS; | ||
| 4025 | |||
| 4026 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS ) | ||
| 4027 | typedef | ||
| 4028 | enum D3D12_FENCE_FLAGS | ||
| 4029 | { | ||
| 4030 | D3D12_FENCE_FLAG_NONE = 0, | ||
| 4031 | D3D12_FENCE_FLAG_SHARED = 0x1, | ||
| 4032 | D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2, | ||
| 4033 | D3D12_FENCE_FLAG_NON_MONITORED = 0x4 | ||
| 4034 | } D3D12_FENCE_FLAGS; | ||
| 4035 | |||
| 4036 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS ) | ||
| 4037 | typedef | ||
| 4038 | enum D3D12_DESCRIPTOR_HEAP_TYPE | ||
| 4039 | { | ||
| 4040 | D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV = 0, | ||
| 4041 | D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV + 1 ) , | ||
| 4042 | D3D12_DESCRIPTOR_HEAP_TYPE_RTV = ( D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER + 1 ) , | ||
| 4043 | D3D12_DESCRIPTOR_HEAP_TYPE_DSV = ( D3D12_DESCRIPTOR_HEAP_TYPE_RTV + 1 ) , | ||
| 4044 | D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES = ( D3D12_DESCRIPTOR_HEAP_TYPE_DSV + 1 ) | ||
| 4045 | } D3D12_DESCRIPTOR_HEAP_TYPE; | ||
| 4046 | |||
| 4047 | typedef | ||
| 4048 | enum D3D12_DESCRIPTOR_HEAP_FLAGS | ||
| 4049 | { | ||
| 4050 | D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0, | ||
| 4051 | D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1 | ||
| 4052 | } D3D12_DESCRIPTOR_HEAP_FLAGS; | ||
| 4053 | |||
| 4054 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS ) | ||
| 4055 | typedef struct D3D12_DESCRIPTOR_HEAP_DESC | ||
| 4056 | { | ||
| 4057 | D3D12_DESCRIPTOR_HEAP_TYPE Type; | ||
| 4058 | UINT NumDescriptors; | ||
| 4059 | D3D12_DESCRIPTOR_HEAP_FLAGS Flags; | ||
| 4060 | UINT NodeMask; | ||
| 4061 | } D3D12_DESCRIPTOR_HEAP_DESC; | ||
| 4062 | |||
| 4063 | typedef | ||
| 4064 | enum D3D12_DESCRIPTOR_RANGE_TYPE | ||
| 4065 | { | ||
| 4066 | D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0, | ||
| 4067 | D3D12_DESCRIPTOR_RANGE_TYPE_UAV = ( D3D12_DESCRIPTOR_RANGE_TYPE_SRV + 1 ) , | ||
| 4068 | D3D12_DESCRIPTOR_RANGE_TYPE_CBV = ( D3D12_DESCRIPTOR_RANGE_TYPE_UAV + 1 ) , | ||
| 4069 | D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = ( D3D12_DESCRIPTOR_RANGE_TYPE_CBV + 1 ) | ||
| 4070 | } D3D12_DESCRIPTOR_RANGE_TYPE; | ||
| 4071 | |||
| 4072 | typedef struct D3D12_DESCRIPTOR_RANGE | ||
| 4073 | { | ||
| 4074 | D3D12_DESCRIPTOR_RANGE_TYPE RangeType; | ||
| 4075 | UINT NumDescriptors; | ||
| 4076 | UINT BaseShaderRegister; | ||
| 4077 | UINT RegisterSpace; | ||
| 4078 | UINT OffsetInDescriptorsFromTableStart; | ||
| 4079 | } D3D12_DESCRIPTOR_RANGE; | ||
| 4080 | |||
| 4081 | typedef struct D3D12_ROOT_DESCRIPTOR_TABLE | ||
| 4082 | { | ||
| 4083 | UINT NumDescriptorRanges; | ||
| 4084 | _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges; | ||
| 4085 | } D3D12_ROOT_DESCRIPTOR_TABLE; | ||
| 4086 | |||
| 4087 | typedef struct D3D12_ROOT_CONSTANTS | ||
| 4088 | { | ||
| 4089 | UINT ShaderRegister; | ||
| 4090 | UINT RegisterSpace; | ||
| 4091 | UINT Num32BitValues; | ||
| 4092 | } D3D12_ROOT_CONSTANTS; | ||
| 4093 | |||
| 4094 | typedef struct D3D12_ROOT_DESCRIPTOR | ||
| 4095 | { | ||
| 4096 | UINT ShaderRegister; | ||
| 4097 | UINT RegisterSpace; | ||
| 4098 | } D3D12_ROOT_DESCRIPTOR; | ||
| 4099 | |||
| 4100 | typedef | ||
| 4101 | enum D3D12_SHADER_VISIBILITY | ||
| 4102 | { | ||
| 4103 | D3D12_SHADER_VISIBILITY_ALL = 0, | ||
| 4104 | D3D12_SHADER_VISIBILITY_VERTEX = 1, | ||
| 4105 | D3D12_SHADER_VISIBILITY_HULL = 2, | ||
| 4106 | D3D12_SHADER_VISIBILITY_DOMAIN = 3, | ||
| 4107 | D3D12_SHADER_VISIBILITY_GEOMETRY = 4, | ||
| 4108 | D3D12_SHADER_VISIBILITY_PIXEL = 5, | ||
| 4109 | D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6, | ||
| 4110 | D3D12_SHADER_VISIBILITY_MESH = 7 | ||
| 4111 | } D3D12_SHADER_VISIBILITY; | ||
| 4112 | |||
| 4113 | typedef | ||
| 4114 | enum D3D12_ROOT_PARAMETER_TYPE | ||
| 4115 | { | ||
| 4116 | D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0, | ||
| 4117 | D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = ( D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE + 1 ) , | ||
| 4118 | D3D12_ROOT_PARAMETER_TYPE_CBV = ( D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS + 1 ) , | ||
| 4119 | D3D12_ROOT_PARAMETER_TYPE_SRV = ( D3D12_ROOT_PARAMETER_TYPE_CBV + 1 ) , | ||
| 4120 | D3D12_ROOT_PARAMETER_TYPE_UAV = ( D3D12_ROOT_PARAMETER_TYPE_SRV + 1 ) | ||
| 4121 | } D3D12_ROOT_PARAMETER_TYPE; | ||
| 4122 | |||
| 4123 | typedef struct D3D12_ROOT_PARAMETER | ||
| 4124 | { | ||
| 4125 | D3D12_ROOT_PARAMETER_TYPE ParameterType; | ||
| 4126 | union | ||
| 4127 | { | ||
| 4128 | D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; | ||
| 4129 | D3D12_ROOT_CONSTANTS Constants; | ||
| 4130 | D3D12_ROOT_DESCRIPTOR Descriptor; | ||
| 4131 | } ; | ||
| 4132 | D3D12_SHADER_VISIBILITY ShaderVisibility; | ||
| 4133 | } D3D12_ROOT_PARAMETER; | ||
| 4134 | |||
| 4135 | typedef | ||
| 4136 | enum D3D12_ROOT_SIGNATURE_FLAGS | ||
| 4137 | { | ||
| 4138 | D3D12_ROOT_SIGNATURE_FLAG_NONE = 0, | ||
| 4139 | D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, | ||
| 4140 | D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, | ||
| 4141 | D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4, | ||
| 4142 | D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, | ||
| 4143 | D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, | ||
| 4144 | D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, | ||
| 4145 | D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40, | ||
| 4146 | D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80, | ||
| 4147 | D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100, | ||
| 4148 | D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200, | ||
| 4149 | D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400, | ||
| 4150 | D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800 | ||
| 4151 | } D3D12_ROOT_SIGNATURE_FLAGS; | ||
| 4152 | |||
| 4153 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS ) | ||
| 4154 | typedef | ||
| 4155 | enum D3D12_STATIC_BORDER_COLOR | ||
| 4156 | { | ||
| 4157 | D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0, | ||
| 4158 | D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = ( D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK + 1 ) , | ||
| 4159 | D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK + 1 ) , | ||
| 4160 | D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE + 1 ) , | ||
| 4161 | D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT = ( D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT + 1 ) | ||
| 4162 | } D3D12_STATIC_BORDER_COLOR; | ||
| 4163 | |||
| 4164 | typedef struct D3D12_STATIC_SAMPLER_DESC | ||
| 4165 | { | ||
| 4166 | D3D12_FILTER Filter; | ||
| 4167 | D3D12_TEXTURE_ADDRESS_MODE AddressU; | ||
| 4168 | D3D12_TEXTURE_ADDRESS_MODE AddressV; | ||
| 4169 | D3D12_TEXTURE_ADDRESS_MODE AddressW; | ||
| 4170 | FLOAT MipLODBias; | ||
| 4171 | UINT MaxAnisotropy; | ||
| 4172 | D3D12_COMPARISON_FUNC ComparisonFunc; | ||
| 4173 | D3D12_STATIC_BORDER_COLOR BorderColor; | ||
| 4174 | FLOAT MinLOD; | ||
| 4175 | FLOAT MaxLOD; | ||
| 4176 | UINT ShaderRegister; | ||
| 4177 | UINT RegisterSpace; | ||
| 4178 | D3D12_SHADER_VISIBILITY ShaderVisibility; | ||
| 4179 | } D3D12_STATIC_SAMPLER_DESC; | ||
| 4180 | |||
| 4181 | typedef struct D3D12_STATIC_SAMPLER_DESC1 | ||
| 4182 | { | ||
| 4183 | D3D12_FILTER Filter; | ||
| 4184 | D3D12_TEXTURE_ADDRESS_MODE AddressU; | ||
| 4185 | D3D12_TEXTURE_ADDRESS_MODE AddressV; | ||
| 4186 | D3D12_TEXTURE_ADDRESS_MODE AddressW; | ||
| 4187 | FLOAT MipLODBias; | ||
| 4188 | UINT MaxAnisotropy; | ||
| 4189 | D3D12_COMPARISON_FUNC ComparisonFunc; | ||
| 4190 | D3D12_STATIC_BORDER_COLOR BorderColor; | ||
| 4191 | FLOAT MinLOD; | ||
| 4192 | FLOAT MaxLOD; | ||
| 4193 | UINT ShaderRegister; | ||
| 4194 | UINT RegisterSpace; | ||
| 4195 | D3D12_SHADER_VISIBILITY ShaderVisibility; | ||
| 4196 | D3D12_SAMPLER_FLAGS Flags; | ||
| 4197 | } D3D12_STATIC_SAMPLER_DESC1; | ||
| 4198 | |||
| 4199 | typedef struct D3D12_ROOT_SIGNATURE_DESC | ||
| 4200 | { | ||
| 4201 | UINT NumParameters; | ||
| 4202 | _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER *pParameters; | ||
| 4203 | UINT NumStaticSamplers; | ||
| 4204 | _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; | ||
| 4205 | D3D12_ROOT_SIGNATURE_FLAGS Flags; | ||
| 4206 | } D3D12_ROOT_SIGNATURE_DESC; | ||
| 4207 | |||
| 4208 | typedef | ||
| 4209 | enum D3D12_DESCRIPTOR_RANGE_FLAGS | ||
| 4210 | { | ||
| 4211 | D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0, | ||
| 4212 | D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1, | ||
| 4213 | D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2, | ||
| 4214 | D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, | ||
| 4215 | D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8, | ||
| 4216 | D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000 | ||
| 4217 | } D3D12_DESCRIPTOR_RANGE_FLAGS; | ||
| 4218 | |||
| 4219 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS ) | ||
| 4220 | typedef struct D3D12_DESCRIPTOR_RANGE1 | ||
| 4221 | { | ||
| 4222 | D3D12_DESCRIPTOR_RANGE_TYPE RangeType; | ||
| 4223 | UINT NumDescriptors; | ||
| 4224 | UINT BaseShaderRegister; | ||
| 4225 | UINT RegisterSpace; | ||
| 4226 | D3D12_DESCRIPTOR_RANGE_FLAGS Flags; | ||
| 4227 | UINT OffsetInDescriptorsFromTableStart; | ||
| 4228 | } D3D12_DESCRIPTOR_RANGE1; | ||
| 4229 | |||
| 4230 | typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 | ||
| 4231 | { | ||
| 4232 | UINT NumDescriptorRanges; | ||
| 4233 | _Field_size_full_(NumDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges; | ||
| 4234 | } D3D12_ROOT_DESCRIPTOR_TABLE1; | ||
| 4235 | |||
| 4236 | typedef | ||
| 4237 | enum D3D12_ROOT_DESCRIPTOR_FLAGS | ||
| 4238 | { | ||
| 4239 | D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0, | ||
| 4240 | D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2, | ||
| 4241 | D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, | ||
| 4242 | D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8 | ||
| 4243 | } D3D12_ROOT_DESCRIPTOR_FLAGS; | ||
| 4244 | |||
| 4245 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS ) | ||
| 4246 | typedef struct D3D12_ROOT_DESCRIPTOR1 | ||
| 4247 | { | ||
| 4248 | UINT ShaderRegister; | ||
| 4249 | UINT RegisterSpace; | ||
| 4250 | D3D12_ROOT_DESCRIPTOR_FLAGS Flags; | ||
| 4251 | } D3D12_ROOT_DESCRIPTOR1; | ||
| 4252 | |||
| 4253 | typedef struct D3D12_ROOT_PARAMETER1 | ||
| 4254 | { | ||
| 4255 | D3D12_ROOT_PARAMETER_TYPE ParameterType; | ||
| 4256 | union | ||
| 4257 | { | ||
| 4258 | D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable; | ||
| 4259 | D3D12_ROOT_CONSTANTS Constants; | ||
| 4260 | D3D12_ROOT_DESCRIPTOR1 Descriptor; | ||
| 4261 | } ; | ||
| 4262 | D3D12_SHADER_VISIBILITY ShaderVisibility; | ||
| 4263 | } D3D12_ROOT_PARAMETER1; | ||
| 4264 | |||
| 4265 | typedef struct D3D12_ROOT_SIGNATURE_DESC1 | ||
| 4266 | { | ||
| 4267 | UINT NumParameters; | ||
| 4268 | _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters; | ||
| 4269 | UINT NumStaticSamplers; | ||
| 4270 | _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers; | ||
| 4271 | D3D12_ROOT_SIGNATURE_FLAGS Flags; | ||
| 4272 | } D3D12_ROOT_SIGNATURE_DESC1; | ||
| 4273 | |||
| 4274 | typedef struct D3D12_ROOT_SIGNATURE_DESC2 | ||
| 4275 | { | ||
| 4276 | UINT NumParameters; | ||
| 4277 | _Field_size_full_(NumParameters) const D3D12_ROOT_PARAMETER1 *pParameters; | ||
| 4278 | UINT NumStaticSamplers; | ||
| 4279 | _Field_size_full_(NumStaticSamplers) const D3D12_STATIC_SAMPLER_DESC1 *pStaticSamplers; | ||
| 4280 | D3D12_ROOT_SIGNATURE_FLAGS Flags; | ||
| 4281 | } D3D12_ROOT_SIGNATURE_DESC2; | ||
| 4282 | |||
| 4283 | typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC | ||
| 4284 | { | ||
| 4285 | D3D_ROOT_SIGNATURE_VERSION Version; | ||
| 4286 | union | ||
| 4287 | { | ||
| 4288 | D3D12_ROOT_SIGNATURE_DESC Desc_1_0; | ||
| 4289 | D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1; | ||
| 4290 | D3D12_ROOT_SIGNATURE_DESC2 Desc_1_2; | ||
| 4291 | } ; | ||
| 4292 | } D3D12_VERSIONED_ROOT_SIGNATURE_DESC; | ||
| 4293 | |||
| 4294 | |||
| 4295 | |||
| 4296 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_c_ifspec; | ||
| 4297 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0001_v0_0_s_ifspec; | ||
| 4298 | |||
| 4299 | #ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ | ||
| 4300 | #define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ | ||
| 4301 | |||
| 4302 | /* interface ID3D12RootSignatureDeserializer */ | ||
| 4303 | /* [unique][local][object][uuid] */ | ||
| 4304 | |||
| 4305 | |||
| 4306 | EXTERN_C const IID IID_ID3D12RootSignatureDeserializer; | ||
| 4307 | |||
| 4308 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 4309 | |||
| 4310 | MIDL_INTERFACE("34AB647B-3CC8-46AC-841B-C0965645C046") | ||
| 4311 | ID3D12RootSignatureDeserializer : public IUnknown | ||
| 4312 | { | ||
| 4313 | public: | ||
| 4314 | virtual const D3D12_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetRootSignatureDesc( void) = 0; | ||
| 4315 | |||
| 4316 | }; | ||
| 4317 | |||
| 4318 | |||
| 4319 | #else /* C style interface */ | ||
| 4320 | |||
| 4321 | typedef struct ID3D12RootSignatureDeserializerVtbl | ||
| 4322 | { | ||
| 4323 | BEGIN_INTERFACE | ||
| 4324 | |||
| 4325 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 4326 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 4327 | ID3D12RootSignatureDeserializer * This, | ||
| 4328 | REFIID riid, | ||
| 4329 | _COM_Outptr_ void **ppvObject); | ||
| 4330 | |||
| 4331 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 4332 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 4333 | ID3D12RootSignatureDeserializer * This); | ||
| 4334 | |||
| 4335 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 4336 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 4337 | ID3D12RootSignatureDeserializer * This); | ||
| 4338 | |||
| 4339 | DECLSPEC_XFGVIRT(ID3D12RootSignatureDeserializer, GetRootSignatureDesc) | ||
| 4340 | const D3D12_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetRootSignatureDesc )( | ||
| 4341 | ID3D12RootSignatureDeserializer * This); | ||
| 4342 | |||
| 4343 | END_INTERFACE | ||
| 4344 | } ID3D12RootSignatureDeserializerVtbl; | ||
| 4345 | |||
| 4346 | interface ID3D12RootSignatureDeserializer | ||
| 4347 | { | ||
| 4348 | CONST_VTBL struct ID3D12RootSignatureDeserializerVtbl *lpVtbl; | ||
| 4349 | }; | ||
| 4350 | |||
| 4351 | |||
| 4352 | |||
| 4353 | #ifdef COBJMACROS | ||
| 4354 | |||
| 4355 | |||
| 4356 | #define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \ | ||
| 4357 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4358 | |||
| 4359 | #define ID3D12RootSignatureDeserializer_AddRef(This) \ | ||
| 4360 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4361 | |||
| 4362 | #define ID3D12RootSignatureDeserializer_Release(This) \ | ||
| 4363 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4364 | |||
| 4365 | |||
| 4366 | #define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) \ | ||
| 4367 | ( (This)->lpVtbl -> GetRootSignatureDesc(This) ) | ||
| 4368 | |||
| 4369 | #endif /* COBJMACROS */ | ||
| 4370 | |||
| 4371 | |||
| 4372 | #endif /* C style interface */ | ||
| 4373 | |||
| 4374 | |||
| 4375 | |||
| 4376 | |||
| 4377 | #endif /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */ | ||
| 4378 | |||
| 4379 | |||
| 4380 | #ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ | ||
| 4381 | #define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ | ||
| 4382 | |||
| 4383 | /* interface ID3D12VersionedRootSignatureDeserializer */ | ||
| 4384 | /* [unique][local][object][uuid] */ | ||
| 4385 | |||
| 4386 | |||
| 4387 | EXTERN_C const IID IID_ID3D12VersionedRootSignatureDeserializer; | ||
| 4388 | |||
| 4389 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 4390 | |||
| 4391 | MIDL_INTERFACE("7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0") | ||
| 4392 | ID3D12VersionedRootSignatureDeserializer : public IUnknown | ||
| 4393 | { | ||
| 4394 | public: | ||
| 4395 | virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion( | ||
| 4396 | D3D_ROOT_SIGNATURE_VERSION convertToVersion, | ||
| 4397 | _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc) = 0; | ||
| 4398 | |||
| 4399 | virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc( void) = 0; | ||
| 4400 | |||
| 4401 | }; | ||
| 4402 | |||
| 4403 | |||
| 4404 | #else /* C style interface */ | ||
| 4405 | |||
| 4406 | typedef struct ID3D12VersionedRootSignatureDeserializerVtbl | ||
| 4407 | { | ||
| 4408 | BEGIN_INTERFACE | ||
| 4409 | |||
| 4410 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 4411 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 4412 | ID3D12VersionedRootSignatureDeserializer * This, | ||
| 4413 | REFIID riid, | ||
| 4414 | _COM_Outptr_ void **ppvObject); | ||
| 4415 | |||
| 4416 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 4417 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 4418 | ID3D12VersionedRootSignatureDeserializer * This); | ||
| 4419 | |||
| 4420 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 4421 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 4422 | ID3D12VersionedRootSignatureDeserializer * This); | ||
| 4423 | |||
| 4424 | DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetRootSignatureDescAtVersion) | ||
| 4425 | HRESULT ( STDMETHODCALLTYPE *GetRootSignatureDescAtVersion )( | ||
| 4426 | ID3D12VersionedRootSignatureDeserializer * This, | ||
| 4427 | D3D_ROOT_SIGNATURE_VERSION convertToVersion, | ||
| 4428 | _Out_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **ppDesc); | ||
| 4429 | |||
| 4430 | DECLSPEC_XFGVIRT(ID3D12VersionedRootSignatureDeserializer, GetUnconvertedRootSignatureDesc) | ||
| 4431 | const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *( STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc )( | ||
| 4432 | ID3D12VersionedRootSignatureDeserializer * This); | ||
| 4433 | |||
| 4434 | END_INTERFACE | ||
| 4435 | } ID3D12VersionedRootSignatureDeserializerVtbl; | ||
| 4436 | |||
| 4437 | interface ID3D12VersionedRootSignatureDeserializer | ||
| 4438 | { | ||
| 4439 | CONST_VTBL struct ID3D12VersionedRootSignatureDeserializerVtbl *lpVtbl; | ||
| 4440 | }; | ||
| 4441 | |||
| 4442 | |||
| 4443 | |||
| 4444 | #ifdef COBJMACROS | ||
| 4445 | |||
| 4446 | |||
| 4447 | #define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) \ | ||
| 4448 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4449 | |||
| 4450 | #define ID3D12VersionedRootSignatureDeserializer_AddRef(This) \ | ||
| 4451 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4452 | |||
| 4453 | #define ID3D12VersionedRootSignatureDeserializer_Release(This) \ | ||
| 4454 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4455 | |||
| 4456 | |||
| 4457 | #define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) \ | ||
| 4458 | ( (This)->lpVtbl -> GetRootSignatureDescAtVersion(This,convertToVersion,ppDesc) ) | ||
| 4459 | |||
| 4460 | #define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) \ | ||
| 4461 | ( (This)->lpVtbl -> GetUnconvertedRootSignatureDesc(This) ) | ||
| 4462 | |||
| 4463 | #endif /* COBJMACROS */ | ||
| 4464 | |||
| 4465 | |||
| 4466 | #endif /* C style interface */ | ||
| 4467 | |||
| 4468 | |||
| 4469 | |||
| 4470 | |||
| 4471 | #endif /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */ | ||
| 4472 | |||
| 4473 | |||
| 4474 | /* interface __MIDL_itf_d3d12_0000_0003 */ | ||
| 4475 | /* [local] */ | ||
| 4476 | |||
| 4477 | typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)( | ||
| 4478 | _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, | ||
| 4479 | _In_ D3D_ROOT_SIGNATURE_VERSION Version, | ||
| 4480 | _Out_ ID3DBlob** ppBlob, | ||
| 4481 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); | ||
| 4482 | |||
| 4483 | HRESULT WINAPI D3D12SerializeRootSignature( | ||
| 4484 | _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature, | ||
| 4485 | _In_ D3D_ROOT_SIGNATURE_VERSION Version, | ||
| 4486 | _Out_ ID3DBlob** ppBlob, | ||
| 4487 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); | ||
| 4488 | |||
| 4489 | typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)( | ||
| 4490 | _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, | ||
| 4491 | _In_ SIZE_T SrcDataSizeInBytes, | ||
| 4492 | _In_ REFIID pRootSignatureDeserializerInterface, | ||
| 4493 | _Out_ void** ppRootSignatureDeserializer); | ||
| 4494 | |||
| 4495 | HRESULT WINAPI D3D12CreateRootSignatureDeserializer( | ||
| 4496 | _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, | ||
| 4497 | _In_ SIZE_T SrcDataSizeInBytes, | ||
| 4498 | _In_ REFIID pRootSignatureDeserializerInterface, | ||
| 4499 | _Out_ void** ppRootSignatureDeserializer); | ||
| 4500 | |||
| 4501 | typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)( | ||
| 4502 | _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, | ||
| 4503 | _Out_ ID3DBlob** ppBlob, | ||
| 4504 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); | ||
| 4505 | |||
| 4506 | HRESULT WINAPI D3D12SerializeVersionedRootSignature( | ||
| 4507 | _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, | ||
| 4508 | _Out_ ID3DBlob** ppBlob, | ||
| 4509 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); | ||
| 4510 | |||
| 4511 | typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)( | ||
| 4512 | _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, | ||
| 4513 | _In_ SIZE_T SrcDataSizeInBytes, | ||
| 4514 | _In_ REFIID pRootSignatureDeserializerInterface, | ||
| 4515 | _Out_ void** ppRootSignatureDeserializer); | ||
| 4516 | |||
| 4517 | HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer( | ||
| 4518 | _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, | ||
| 4519 | _In_ SIZE_T SrcDataSizeInBytes, | ||
| 4520 | _In_ REFIID pRootSignatureDeserializerInterface, | ||
| 4521 | _Out_ void** ppRootSignatureDeserializer); | ||
| 4522 | |||
| 4523 | typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER_FROM_SUBOBJECT_IN_LIBRARY)( | ||
| 4524 | _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, | ||
| 4525 | _In_ SIZE_T SrcDataSizeInBytes, | ||
| 4526 | _In_ LPCWSTR RootSignatureSubobjectName, | ||
| 4527 | _In_ REFIID pRootSignatureDeserializerInterface, | ||
| 4528 | _Out_ void** ppRootSignatureDeserializer); | ||
| 4529 | |||
| 4530 | HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary( | ||
| 4531 | _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData, | ||
| 4532 | _In_ SIZE_T SrcDataSizeInBytes, | ||
| 4533 | _In_opt_ LPCWSTR RootSignatureSubobjectName, | ||
| 4534 | _In_ REFIID pRootSignatureDeserializerInterface, | ||
| 4535 | _Out_ void** ppRootSignatureDeserializer); | ||
| 4536 | |||
| 4537 | typedef struct D3D12_CPU_DESCRIPTOR_HANDLE | ||
| 4538 | { | ||
| 4539 | SIZE_T ptr; | ||
| 4540 | } D3D12_CPU_DESCRIPTOR_HANDLE; | ||
| 4541 | |||
| 4542 | typedef struct D3D12_GPU_DESCRIPTOR_HANDLE | ||
| 4543 | { | ||
| 4544 | UINT64 ptr; | ||
| 4545 | } D3D12_GPU_DESCRIPTOR_HANDLE; | ||
| 4546 | |||
| 4547 | // If rects are supplied in D3D12_DISCARD_REGION, below, the resource | ||
| 4548 | // must have 2D subresources with all specified subresources the same dimension. | ||
| 4549 | typedef struct D3D12_DISCARD_REGION | ||
| 4550 | { | ||
| 4551 | UINT NumRects; | ||
| 4552 | _In_reads_(NumRects) const D3D12_RECT *pRects; | ||
| 4553 | UINT FirstSubresource; | ||
| 4554 | UINT NumSubresources; | ||
| 4555 | } D3D12_DISCARD_REGION; | ||
| 4556 | |||
| 4557 | typedef | ||
| 4558 | enum D3D12_QUERY_HEAP_TYPE | ||
| 4559 | { | ||
| 4560 | D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0, | ||
| 4561 | D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, | ||
| 4562 | D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, | ||
| 4563 | D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3, | ||
| 4564 | D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4, | ||
| 4565 | D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5, | ||
| 4566 | D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7 | ||
| 4567 | } D3D12_QUERY_HEAP_TYPE; | ||
| 4568 | |||
| 4569 | typedef struct D3D12_QUERY_HEAP_DESC | ||
| 4570 | { | ||
| 4571 | D3D12_QUERY_HEAP_TYPE Type; | ||
| 4572 | UINT Count; | ||
| 4573 | UINT NodeMask; | ||
| 4574 | } D3D12_QUERY_HEAP_DESC; | ||
| 4575 | |||
| 4576 | typedef | ||
| 4577 | enum D3D12_QUERY_TYPE | ||
| 4578 | { | ||
| 4579 | D3D12_QUERY_TYPE_OCCLUSION = 0, | ||
| 4580 | D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1, | ||
| 4581 | D3D12_QUERY_TYPE_TIMESTAMP = 2, | ||
| 4582 | D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3, | ||
| 4583 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4, | ||
| 4584 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, | ||
| 4585 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, | ||
| 4586 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7, | ||
| 4587 | D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8, | ||
| 4588 | D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10 | ||
| 4589 | } D3D12_QUERY_TYPE; | ||
| 4590 | |||
| 4591 | typedef | ||
| 4592 | enum D3D12_PREDICATION_OP | ||
| 4593 | { | ||
| 4594 | D3D12_PREDICATION_OP_EQUAL_ZERO = 0, | ||
| 4595 | D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1 | ||
| 4596 | } D3D12_PREDICATION_OP; | ||
| 4597 | |||
| 4598 | typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS | ||
| 4599 | { | ||
| 4600 | UINT64 IAVertices; | ||
| 4601 | UINT64 IAPrimitives; | ||
| 4602 | UINT64 VSInvocations; | ||
| 4603 | UINT64 GSInvocations; | ||
| 4604 | UINT64 GSPrimitives; | ||
| 4605 | UINT64 CInvocations; | ||
| 4606 | UINT64 CPrimitives; | ||
| 4607 | UINT64 PSInvocations; | ||
| 4608 | UINT64 HSInvocations; | ||
| 4609 | UINT64 DSInvocations; | ||
| 4610 | UINT64 CSInvocations; | ||
| 4611 | } D3D12_QUERY_DATA_PIPELINE_STATISTICS; | ||
| 4612 | |||
| 4613 | typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 | ||
| 4614 | { | ||
| 4615 | UINT64 IAVertices; | ||
| 4616 | UINT64 IAPrimitives; | ||
| 4617 | UINT64 VSInvocations; | ||
| 4618 | UINT64 GSInvocations; | ||
| 4619 | UINT64 GSPrimitives; | ||
| 4620 | UINT64 CInvocations; | ||
| 4621 | UINT64 CPrimitives; | ||
| 4622 | UINT64 PSInvocations; | ||
| 4623 | UINT64 HSInvocations; | ||
| 4624 | UINT64 DSInvocations; | ||
| 4625 | UINT64 CSInvocations; | ||
| 4626 | UINT64 ASInvocations; | ||
| 4627 | UINT64 MSInvocations; | ||
| 4628 | UINT64 MSPrimitives; | ||
| 4629 | } D3D12_QUERY_DATA_PIPELINE_STATISTICS1; | ||
| 4630 | |||
| 4631 | typedef struct D3D12_QUERY_DATA_SO_STATISTICS | ||
| 4632 | { | ||
| 4633 | UINT64 NumPrimitivesWritten; | ||
| 4634 | UINT64 PrimitivesStorageNeeded; | ||
| 4635 | } D3D12_QUERY_DATA_SO_STATISTICS; | ||
| 4636 | |||
| 4637 | typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW | ||
| 4638 | { | ||
| 4639 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; | ||
| 4640 | UINT64 SizeInBytes; | ||
| 4641 | D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; | ||
| 4642 | } D3D12_STREAM_OUTPUT_BUFFER_VIEW; | ||
| 4643 | |||
| 4644 | typedef struct D3D12_DRAW_ARGUMENTS | ||
| 4645 | { | ||
| 4646 | UINT VertexCountPerInstance; | ||
| 4647 | UINT InstanceCount; | ||
| 4648 | UINT StartVertexLocation; | ||
| 4649 | UINT StartInstanceLocation; | ||
| 4650 | } D3D12_DRAW_ARGUMENTS; | ||
| 4651 | |||
| 4652 | typedef struct D3D12_DRAW_INDEXED_ARGUMENTS | ||
| 4653 | { | ||
| 4654 | UINT IndexCountPerInstance; | ||
| 4655 | UINT InstanceCount; | ||
| 4656 | UINT StartIndexLocation; | ||
| 4657 | INT BaseVertexLocation; | ||
| 4658 | UINT StartInstanceLocation; | ||
| 4659 | } D3D12_DRAW_INDEXED_ARGUMENTS; | ||
| 4660 | |||
| 4661 | typedef struct D3D12_DISPATCH_ARGUMENTS | ||
| 4662 | { | ||
| 4663 | UINT ThreadGroupCountX; | ||
| 4664 | UINT ThreadGroupCountY; | ||
| 4665 | UINT ThreadGroupCountZ; | ||
| 4666 | } D3D12_DISPATCH_ARGUMENTS; | ||
| 4667 | |||
| 4668 | typedef struct D3D12_VERTEX_BUFFER_VIEW | ||
| 4669 | { | ||
| 4670 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; | ||
| 4671 | UINT SizeInBytes; | ||
| 4672 | UINT StrideInBytes; | ||
| 4673 | } D3D12_VERTEX_BUFFER_VIEW; | ||
| 4674 | |||
| 4675 | typedef struct D3D12_INDEX_BUFFER_VIEW | ||
| 4676 | { | ||
| 4677 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; | ||
| 4678 | UINT SizeInBytes; | ||
| 4679 | DXGI_FORMAT Format; | ||
| 4680 | } D3D12_INDEX_BUFFER_VIEW; | ||
| 4681 | |||
| 4682 | typedef | ||
| 4683 | enum D3D12_INDIRECT_ARGUMENT_TYPE | ||
| 4684 | { | ||
| 4685 | D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0, | ||
| 4686 | D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW + 1 ) , | ||
| 4687 | D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED + 1 ) , | ||
| 4688 | D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH + 1 ) , | ||
| 4689 | D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW + 1 ) , | ||
| 4690 | D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW + 1 ) , | ||
| 4691 | D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT + 1 ) , | ||
| 4692 | D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW + 1 ) , | ||
| 4693 | D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = ( D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW + 1 ) , | ||
| 4694 | D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS = ( D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW + 1 ) , | ||
| 4695 | D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS + 1 ) , | ||
| 4696 | D3D12_INDIRECT_ARGUMENT_TYPE_INCREMENTING_CONSTANT = ( D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH + 1 ) | ||
| 4697 | } D3D12_INDIRECT_ARGUMENT_TYPE; | ||
| 4698 | |||
| 4699 | typedef struct D3D12_INDIRECT_ARGUMENT_DESC | ||
| 4700 | { | ||
| 4701 | D3D12_INDIRECT_ARGUMENT_TYPE Type; | ||
| 4702 | union | ||
| 4703 | { | ||
| 4704 | struct | ||
| 4705 | { | ||
| 4706 | UINT Slot; | ||
| 4707 | } VertexBuffer; | ||
| 4708 | struct | ||
| 4709 | { | ||
| 4710 | UINT RootParameterIndex; | ||
| 4711 | UINT DestOffsetIn32BitValues; | ||
| 4712 | UINT Num32BitValuesToSet; | ||
| 4713 | } Constant; | ||
| 4714 | struct | ||
| 4715 | { | ||
| 4716 | UINT RootParameterIndex; | ||
| 4717 | } ConstantBufferView; | ||
| 4718 | struct | ||
| 4719 | { | ||
| 4720 | UINT RootParameterIndex; | ||
| 4721 | } ShaderResourceView; | ||
| 4722 | struct | ||
| 4723 | { | ||
| 4724 | UINT RootParameterIndex; | ||
| 4725 | } UnorderedAccessView; | ||
| 4726 | struct | ||
| 4727 | { | ||
| 4728 | UINT RootParameterIndex; | ||
| 4729 | UINT DestOffsetIn32BitValues; | ||
| 4730 | } IncrementingConstant; | ||
| 4731 | } ; | ||
| 4732 | } D3D12_INDIRECT_ARGUMENT_DESC; | ||
| 4733 | |||
| 4734 | typedef struct D3D12_COMMAND_SIGNATURE_DESC | ||
| 4735 | { | ||
| 4736 | UINT ByteStride; | ||
| 4737 | UINT NumArgumentDescs; | ||
| 4738 | _Field_size_full_(NumArgumentDescs) const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs; | ||
| 4739 | UINT NodeMask; | ||
| 4740 | } D3D12_COMMAND_SIGNATURE_DESC; | ||
| 4741 | |||
| 4742 | |||
| 4743 | |||
| 4744 | |||
| 4745 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_c_ifspec; | ||
| 4746 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0003_v0_0_s_ifspec; | ||
| 4747 | |||
| 4748 | #ifndef __ID3D12Pageable_INTERFACE_DEFINED__ | ||
| 4749 | #define __ID3D12Pageable_INTERFACE_DEFINED__ | ||
| 4750 | |||
| 4751 | /* interface ID3D12Pageable */ | ||
| 4752 | /* [unique][local][object][uuid] */ | ||
| 4753 | |||
| 4754 | |||
| 4755 | EXTERN_C const IID IID_ID3D12Pageable; | ||
| 4756 | |||
| 4757 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 4758 | |||
| 4759 | MIDL_INTERFACE("63ee58fb-1268-4835-86da-f008ce62f0d6") | ||
| 4760 | ID3D12Pageable : public ID3D12DeviceChild | ||
| 4761 | { | ||
| 4762 | public: | ||
| 4763 | }; | ||
| 4764 | |||
| 4765 | |||
| 4766 | #else /* C style interface */ | ||
| 4767 | |||
| 4768 | typedef struct ID3D12PageableVtbl | ||
| 4769 | { | ||
| 4770 | BEGIN_INTERFACE | ||
| 4771 | |||
| 4772 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 4773 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 4774 | ID3D12Pageable * This, | ||
| 4775 | REFIID riid, | ||
| 4776 | _COM_Outptr_ void **ppvObject); | ||
| 4777 | |||
| 4778 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 4779 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 4780 | ID3D12Pageable * This); | ||
| 4781 | |||
| 4782 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 4783 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 4784 | ID3D12Pageable * This); | ||
| 4785 | |||
| 4786 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 4787 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 4788 | ID3D12Pageable * This, | ||
| 4789 | _In_ REFGUID guid, | ||
| 4790 | _Inout_ UINT *pDataSize, | ||
| 4791 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 4792 | |||
| 4793 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 4794 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 4795 | ID3D12Pageable * This, | ||
| 4796 | _In_ REFGUID guid, | ||
| 4797 | _In_ UINT DataSize, | ||
| 4798 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 4799 | |||
| 4800 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 4801 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 4802 | ID3D12Pageable * This, | ||
| 4803 | _In_ REFGUID guid, | ||
| 4804 | _In_opt_ const IUnknown *pData); | ||
| 4805 | |||
| 4806 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 4807 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 4808 | ID3D12Pageable * This, | ||
| 4809 | _In_z_ LPCWSTR Name); | ||
| 4810 | |||
| 4811 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 4812 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 4813 | ID3D12Pageable * This, | ||
| 4814 | REFIID riid, | ||
| 4815 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 4816 | |||
| 4817 | END_INTERFACE | ||
| 4818 | } ID3D12PageableVtbl; | ||
| 4819 | |||
| 4820 | interface ID3D12Pageable | ||
| 4821 | { | ||
| 4822 | CONST_VTBL struct ID3D12PageableVtbl *lpVtbl; | ||
| 4823 | }; | ||
| 4824 | |||
| 4825 | |||
| 4826 | |||
| 4827 | #ifdef COBJMACROS | ||
| 4828 | |||
| 4829 | |||
| 4830 | #define ID3D12Pageable_QueryInterface(This,riid,ppvObject) \ | ||
| 4831 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4832 | |||
| 4833 | #define ID3D12Pageable_AddRef(This) \ | ||
| 4834 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4835 | |||
| 4836 | #define ID3D12Pageable_Release(This) \ | ||
| 4837 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4838 | |||
| 4839 | |||
| 4840 | #define ID3D12Pageable_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 4841 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 4842 | |||
| 4843 | #define ID3D12Pageable_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 4844 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 4845 | |||
| 4846 | #define ID3D12Pageable_SetPrivateDataInterface(This,guid,pData) \ | ||
| 4847 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 4848 | |||
| 4849 | #define ID3D12Pageable_SetName(This,Name) \ | ||
| 4850 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 4851 | |||
| 4852 | |||
| 4853 | #define ID3D12Pageable_GetDevice(This,riid,ppvDevice) \ | ||
| 4854 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 4855 | |||
| 4856 | |||
| 4857 | #endif /* COBJMACROS */ | ||
| 4858 | |||
| 4859 | |||
| 4860 | #endif /* C style interface */ | ||
| 4861 | |||
| 4862 | |||
| 4863 | |||
| 4864 | |||
| 4865 | #endif /* __ID3D12Pageable_INTERFACE_DEFINED__ */ | ||
| 4866 | |||
| 4867 | |||
| 4868 | #ifndef __ID3D12Heap_INTERFACE_DEFINED__ | ||
| 4869 | #define __ID3D12Heap_INTERFACE_DEFINED__ | ||
| 4870 | |||
| 4871 | /* interface ID3D12Heap */ | ||
| 4872 | /* [unique][local][object][uuid] */ | ||
| 4873 | |||
| 4874 | |||
| 4875 | EXTERN_C const IID IID_ID3D12Heap; | ||
| 4876 | |||
| 4877 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 4878 | |||
| 4879 | MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3") | ||
| 4880 | ID3D12Heap : public ID3D12Pageable | ||
| 4881 | { | ||
| 4882 | public: | ||
| 4883 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 4884 | virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 4885 | #else | ||
| 4886 | virtual D3D12_HEAP_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 4887 | D3D12_HEAP_DESC * RetVal) = 0; | ||
| 4888 | #endif | ||
| 4889 | |||
| 4890 | }; | ||
| 4891 | |||
| 4892 | |||
| 4893 | #else /* C style interface */ | ||
| 4894 | |||
| 4895 | typedef struct ID3D12HeapVtbl | ||
| 4896 | { | ||
| 4897 | BEGIN_INTERFACE | ||
| 4898 | |||
| 4899 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 4900 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 4901 | ID3D12Heap * This, | ||
| 4902 | REFIID riid, | ||
| 4903 | _COM_Outptr_ void **ppvObject); | ||
| 4904 | |||
| 4905 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 4906 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 4907 | ID3D12Heap * This); | ||
| 4908 | |||
| 4909 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 4910 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 4911 | ID3D12Heap * This); | ||
| 4912 | |||
| 4913 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 4914 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 4915 | ID3D12Heap * This, | ||
| 4916 | _In_ REFGUID guid, | ||
| 4917 | _Inout_ UINT *pDataSize, | ||
| 4918 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 4919 | |||
| 4920 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 4921 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 4922 | ID3D12Heap * This, | ||
| 4923 | _In_ REFGUID guid, | ||
| 4924 | _In_ UINT DataSize, | ||
| 4925 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 4926 | |||
| 4927 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 4928 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 4929 | ID3D12Heap * This, | ||
| 4930 | _In_ REFGUID guid, | ||
| 4931 | _In_opt_ const IUnknown *pData); | ||
| 4932 | |||
| 4933 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 4934 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 4935 | ID3D12Heap * This, | ||
| 4936 | _In_z_ LPCWSTR Name); | ||
| 4937 | |||
| 4938 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 4939 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 4940 | ID3D12Heap * This, | ||
| 4941 | REFIID riid, | ||
| 4942 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 4943 | |||
| 4944 | DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc) | ||
| 4945 | #if !defined(_WIN32) | ||
| 4946 | D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 4947 | ID3D12Heap * This); | ||
| 4948 | |||
| 4949 | #else | ||
| 4950 | D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 4951 | ID3D12Heap * This, | ||
| 4952 | D3D12_HEAP_DESC * RetVal); | ||
| 4953 | |||
| 4954 | #endif | ||
| 4955 | |||
| 4956 | END_INTERFACE | ||
| 4957 | } ID3D12HeapVtbl; | ||
| 4958 | |||
| 4959 | interface ID3D12Heap | ||
| 4960 | { | ||
| 4961 | CONST_VTBL struct ID3D12HeapVtbl *lpVtbl; | ||
| 4962 | }; | ||
| 4963 | |||
| 4964 | |||
| 4965 | |||
| 4966 | #ifdef COBJMACROS | ||
| 4967 | |||
| 4968 | |||
| 4969 | #define ID3D12Heap_QueryInterface(This,riid,ppvObject) \ | ||
| 4970 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4971 | |||
| 4972 | #define ID3D12Heap_AddRef(This) \ | ||
| 4973 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4974 | |||
| 4975 | #define ID3D12Heap_Release(This) \ | ||
| 4976 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4977 | |||
| 4978 | |||
| 4979 | #define ID3D12Heap_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 4980 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 4981 | |||
| 4982 | #define ID3D12Heap_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 4983 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 4984 | |||
| 4985 | #define ID3D12Heap_SetPrivateDataInterface(This,guid,pData) \ | ||
| 4986 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 4987 | |||
| 4988 | #define ID3D12Heap_SetName(This,Name) \ | ||
| 4989 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 4990 | |||
| 4991 | |||
| 4992 | #define ID3D12Heap_GetDevice(This,riid,ppvDevice) \ | ||
| 4993 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 4994 | |||
| 4995 | |||
| 4996 | #if !defined(_WIN32) | ||
| 4997 | |||
| 4998 | #define ID3D12Heap_GetDesc(This) \ | ||
| 4999 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 5000 | #else | ||
| 5001 | #define ID3D12Heap_GetDesc(This,RetVal) \ | ||
| 5002 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 5003 | #endif | ||
| 5004 | |||
| 5005 | #endif /* COBJMACROS */ | ||
| 5006 | |||
| 5007 | |||
| 5008 | #endif /* C style interface */ | ||
| 5009 | |||
| 5010 | |||
| 5011 | |||
| 5012 | |||
| 5013 | #endif /* __ID3D12Heap_INTERFACE_DEFINED__ */ | ||
| 5014 | |||
| 5015 | |||
| 5016 | #ifndef __ID3D12Resource_INTERFACE_DEFINED__ | ||
| 5017 | #define __ID3D12Resource_INTERFACE_DEFINED__ | ||
| 5018 | |||
| 5019 | /* interface ID3D12Resource */ | ||
| 5020 | /* [unique][local][object][uuid] */ | ||
| 5021 | |||
| 5022 | |||
| 5023 | EXTERN_C const IID IID_ID3D12Resource; | ||
| 5024 | |||
| 5025 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5026 | |||
| 5027 | MIDL_INTERFACE("696442be-a72e-4059-bc79-5b5c98040fad") | ||
| 5028 | ID3D12Resource : public ID3D12Pageable | ||
| 5029 | { | ||
| 5030 | public: | ||
| 5031 | virtual HRESULT STDMETHODCALLTYPE Map( | ||
| 5032 | UINT Subresource, | ||
| 5033 | _In_opt_ const D3D12_RANGE *pReadRange, | ||
| 5034 | _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData) = 0; | ||
| 5035 | |||
| 5036 | virtual void STDMETHODCALLTYPE Unmap( | ||
| 5037 | UINT Subresource, | ||
| 5038 | _In_opt_ const D3D12_RANGE *pWrittenRange) = 0; | ||
| 5039 | |||
| 5040 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 5041 | virtual D3D12_RESOURCE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 5042 | #else | ||
| 5043 | virtual D3D12_RESOURCE_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 5044 | D3D12_RESOURCE_DESC * RetVal) = 0; | ||
| 5045 | #endif | ||
| 5046 | |||
| 5047 | virtual D3D12_GPU_VIRTUAL_ADDRESS STDMETHODCALLTYPE GetGPUVirtualAddress( void) = 0; | ||
| 5048 | |||
| 5049 | virtual HRESULT STDMETHODCALLTYPE WriteToSubresource( | ||
| 5050 | UINT DstSubresource, | ||
| 5051 | _In_opt_ const D3D12_BOX *pDstBox, | ||
| 5052 | _In_ const void *pSrcData, | ||
| 5053 | UINT SrcRowPitch, | ||
| 5054 | UINT SrcDepthPitch) = 0; | ||
| 5055 | |||
| 5056 | virtual HRESULT STDMETHODCALLTYPE ReadFromSubresource( | ||
| 5057 | _Out_ void *pDstData, | ||
| 5058 | UINT DstRowPitch, | ||
| 5059 | UINT DstDepthPitch, | ||
| 5060 | UINT SrcSubresource, | ||
| 5061 | _In_opt_ const D3D12_BOX *pSrcBox) = 0; | ||
| 5062 | |||
| 5063 | virtual HRESULT STDMETHODCALLTYPE GetHeapProperties( | ||
| 5064 | _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 5065 | _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags) = 0; | ||
| 5066 | |||
| 5067 | }; | ||
| 5068 | |||
| 5069 | |||
| 5070 | #else /* C style interface */ | ||
| 5071 | |||
| 5072 | typedef struct ID3D12ResourceVtbl | ||
| 5073 | { | ||
| 5074 | BEGIN_INTERFACE | ||
| 5075 | |||
| 5076 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 5077 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 5078 | ID3D12Resource * This, | ||
| 5079 | REFIID riid, | ||
| 5080 | _COM_Outptr_ void **ppvObject); | ||
| 5081 | |||
| 5082 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 5083 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 5084 | ID3D12Resource * This); | ||
| 5085 | |||
| 5086 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 5087 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 5088 | ID3D12Resource * This); | ||
| 5089 | |||
| 5090 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 5091 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 5092 | ID3D12Resource * This, | ||
| 5093 | _In_ REFGUID guid, | ||
| 5094 | _Inout_ UINT *pDataSize, | ||
| 5095 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 5096 | |||
| 5097 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 5098 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 5099 | ID3D12Resource * This, | ||
| 5100 | _In_ REFGUID guid, | ||
| 5101 | _In_ UINT DataSize, | ||
| 5102 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 5103 | |||
| 5104 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 5105 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 5106 | ID3D12Resource * This, | ||
| 5107 | _In_ REFGUID guid, | ||
| 5108 | _In_opt_ const IUnknown *pData); | ||
| 5109 | |||
| 5110 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 5111 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 5112 | ID3D12Resource * This, | ||
| 5113 | _In_z_ LPCWSTR Name); | ||
| 5114 | |||
| 5115 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 5116 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 5117 | ID3D12Resource * This, | ||
| 5118 | REFIID riid, | ||
| 5119 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 5120 | |||
| 5121 | DECLSPEC_XFGVIRT(ID3D12Resource, Map) | ||
| 5122 | HRESULT ( STDMETHODCALLTYPE *Map )( | ||
| 5123 | ID3D12Resource * This, | ||
| 5124 | UINT Subresource, | ||
| 5125 | _In_opt_ const D3D12_RANGE *pReadRange, | ||
| 5126 | _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); | ||
| 5127 | |||
| 5128 | DECLSPEC_XFGVIRT(ID3D12Resource, Unmap) | ||
| 5129 | void ( STDMETHODCALLTYPE *Unmap )( | ||
| 5130 | ID3D12Resource * This, | ||
| 5131 | UINT Subresource, | ||
| 5132 | _In_opt_ const D3D12_RANGE *pWrittenRange); | ||
| 5133 | |||
| 5134 | DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc) | ||
| 5135 | #if !defined(_WIN32) | ||
| 5136 | D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 5137 | ID3D12Resource * This); | ||
| 5138 | |||
| 5139 | #else | ||
| 5140 | D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 5141 | ID3D12Resource * This, | ||
| 5142 | D3D12_RESOURCE_DESC * RetVal); | ||
| 5143 | |||
| 5144 | #endif | ||
| 5145 | |||
| 5146 | DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress) | ||
| 5147 | D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( | ||
| 5148 | ID3D12Resource * This); | ||
| 5149 | |||
| 5150 | DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource) | ||
| 5151 | HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( | ||
| 5152 | ID3D12Resource * This, | ||
| 5153 | UINT DstSubresource, | ||
| 5154 | _In_opt_ const D3D12_BOX *pDstBox, | ||
| 5155 | _In_ const void *pSrcData, | ||
| 5156 | UINT SrcRowPitch, | ||
| 5157 | UINT SrcDepthPitch); | ||
| 5158 | |||
| 5159 | DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource) | ||
| 5160 | HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( | ||
| 5161 | ID3D12Resource * This, | ||
| 5162 | _Out_ void *pDstData, | ||
| 5163 | UINT DstRowPitch, | ||
| 5164 | UINT DstDepthPitch, | ||
| 5165 | UINT SrcSubresource, | ||
| 5166 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 5167 | |||
| 5168 | DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties) | ||
| 5169 | HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( | ||
| 5170 | ID3D12Resource * This, | ||
| 5171 | _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 5172 | _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); | ||
| 5173 | |||
| 5174 | END_INTERFACE | ||
| 5175 | } ID3D12ResourceVtbl; | ||
| 5176 | |||
| 5177 | interface ID3D12Resource | ||
| 5178 | { | ||
| 5179 | CONST_VTBL struct ID3D12ResourceVtbl *lpVtbl; | ||
| 5180 | }; | ||
| 5181 | |||
| 5182 | |||
| 5183 | |||
| 5184 | #ifdef COBJMACROS | ||
| 5185 | |||
| 5186 | |||
| 5187 | #define ID3D12Resource_QueryInterface(This,riid,ppvObject) \ | ||
| 5188 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 5189 | |||
| 5190 | #define ID3D12Resource_AddRef(This) \ | ||
| 5191 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 5192 | |||
| 5193 | #define ID3D12Resource_Release(This) \ | ||
| 5194 | ( (This)->lpVtbl -> Release(This) ) | ||
| 5195 | |||
| 5196 | |||
| 5197 | #define ID3D12Resource_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 5198 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5199 | |||
| 5200 | #define ID3D12Resource_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5201 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5202 | |||
| 5203 | #define ID3D12Resource_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5204 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5205 | |||
| 5206 | #define ID3D12Resource_SetName(This,Name) \ | ||
| 5207 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5208 | |||
| 5209 | |||
| 5210 | #define ID3D12Resource_GetDevice(This,riid,ppvDevice) \ | ||
| 5211 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5212 | |||
| 5213 | |||
| 5214 | |||
| 5215 | #define ID3D12Resource_Map(This,Subresource,pReadRange,ppData) \ | ||
| 5216 | ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) | ||
| 5217 | |||
| 5218 | #define ID3D12Resource_Unmap(This,Subresource,pWrittenRange) \ | ||
| 5219 | ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) | ||
| 5220 | #if !defined(_WIN32) | ||
| 5221 | |||
| 5222 | #define ID3D12Resource_GetDesc(This) \ | ||
| 5223 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 5224 | #else | ||
| 5225 | #define ID3D12Resource_GetDesc(This,RetVal) \ | ||
| 5226 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 5227 | #endif | ||
| 5228 | |||
| 5229 | #define ID3D12Resource_GetGPUVirtualAddress(This) \ | ||
| 5230 | ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) | ||
| 5231 | |||
| 5232 | #define ID3D12Resource_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ | ||
| 5233 | ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) | ||
| 5234 | |||
| 5235 | #define ID3D12Resource_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ | ||
| 5236 | ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) | ||
| 5237 | |||
| 5238 | #define ID3D12Resource_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ | ||
| 5239 | ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) | ||
| 5240 | |||
| 5241 | #endif /* COBJMACROS */ | ||
| 5242 | |||
| 5243 | |||
| 5244 | #endif /* C style interface */ | ||
| 5245 | |||
| 5246 | |||
| 5247 | |||
| 5248 | |||
| 5249 | #endif /* __ID3D12Resource_INTERFACE_DEFINED__ */ | ||
| 5250 | |||
| 5251 | |||
| 5252 | #ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__ | ||
| 5253 | #define __ID3D12CommandAllocator_INTERFACE_DEFINED__ | ||
| 5254 | |||
| 5255 | /* interface ID3D12CommandAllocator */ | ||
| 5256 | /* [unique][local][object][uuid] */ | ||
| 5257 | |||
| 5258 | |||
| 5259 | EXTERN_C const IID IID_ID3D12CommandAllocator; | ||
| 5260 | |||
| 5261 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5262 | |||
| 5263 | MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24") | ||
| 5264 | ID3D12CommandAllocator : public ID3D12Pageable | ||
| 5265 | { | ||
| 5266 | public: | ||
| 5267 | virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; | ||
| 5268 | |||
| 5269 | }; | ||
| 5270 | |||
| 5271 | |||
| 5272 | #else /* C style interface */ | ||
| 5273 | |||
| 5274 | typedef struct ID3D12CommandAllocatorVtbl | ||
| 5275 | { | ||
| 5276 | BEGIN_INTERFACE | ||
| 5277 | |||
| 5278 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 5279 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 5280 | ID3D12CommandAllocator * This, | ||
| 5281 | REFIID riid, | ||
| 5282 | _COM_Outptr_ void **ppvObject); | ||
| 5283 | |||
| 5284 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 5285 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 5286 | ID3D12CommandAllocator * This); | ||
| 5287 | |||
| 5288 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 5289 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 5290 | ID3D12CommandAllocator * This); | ||
| 5291 | |||
| 5292 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 5293 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 5294 | ID3D12CommandAllocator * This, | ||
| 5295 | _In_ REFGUID guid, | ||
| 5296 | _Inout_ UINT *pDataSize, | ||
| 5297 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 5298 | |||
| 5299 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 5300 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 5301 | ID3D12CommandAllocator * This, | ||
| 5302 | _In_ REFGUID guid, | ||
| 5303 | _In_ UINT DataSize, | ||
| 5304 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 5305 | |||
| 5306 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 5307 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 5308 | ID3D12CommandAllocator * This, | ||
| 5309 | _In_ REFGUID guid, | ||
| 5310 | _In_opt_ const IUnknown *pData); | ||
| 5311 | |||
| 5312 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 5313 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 5314 | ID3D12CommandAllocator * This, | ||
| 5315 | _In_z_ LPCWSTR Name); | ||
| 5316 | |||
| 5317 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 5318 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 5319 | ID3D12CommandAllocator * This, | ||
| 5320 | REFIID riid, | ||
| 5321 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 5322 | |||
| 5323 | DECLSPEC_XFGVIRT(ID3D12CommandAllocator, Reset) | ||
| 5324 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 5325 | ID3D12CommandAllocator * This); | ||
| 5326 | |||
| 5327 | END_INTERFACE | ||
| 5328 | } ID3D12CommandAllocatorVtbl; | ||
| 5329 | |||
| 5330 | interface ID3D12CommandAllocator | ||
| 5331 | { | ||
| 5332 | CONST_VTBL struct ID3D12CommandAllocatorVtbl *lpVtbl; | ||
| 5333 | }; | ||
| 5334 | |||
| 5335 | |||
| 5336 | |||
| 5337 | #ifdef COBJMACROS | ||
| 5338 | |||
| 5339 | |||
| 5340 | #define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) \ | ||
| 5341 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 5342 | |||
| 5343 | #define ID3D12CommandAllocator_AddRef(This) \ | ||
| 5344 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 5345 | |||
| 5346 | #define ID3D12CommandAllocator_Release(This) \ | ||
| 5347 | ( (This)->lpVtbl -> Release(This) ) | ||
| 5348 | |||
| 5349 | |||
| 5350 | #define ID3D12CommandAllocator_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 5351 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5352 | |||
| 5353 | #define ID3D12CommandAllocator_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5354 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5355 | |||
| 5356 | #define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5357 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5358 | |||
| 5359 | #define ID3D12CommandAllocator_SetName(This,Name) \ | ||
| 5360 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5361 | |||
| 5362 | |||
| 5363 | #define ID3D12CommandAllocator_GetDevice(This,riid,ppvDevice) \ | ||
| 5364 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5365 | |||
| 5366 | |||
| 5367 | |||
| 5368 | #define ID3D12CommandAllocator_Reset(This) \ | ||
| 5369 | ( (This)->lpVtbl -> Reset(This) ) | ||
| 5370 | |||
| 5371 | #endif /* COBJMACROS */ | ||
| 5372 | |||
| 5373 | |||
| 5374 | #endif /* C style interface */ | ||
| 5375 | |||
| 5376 | |||
| 5377 | |||
| 5378 | |||
| 5379 | #endif /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */ | ||
| 5380 | |||
| 5381 | |||
| 5382 | #ifndef __ID3D12Fence_INTERFACE_DEFINED__ | ||
| 5383 | #define __ID3D12Fence_INTERFACE_DEFINED__ | ||
| 5384 | |||
| 5385 | /* interface ID3D12Fence */ | ||
| 5386 | /* [unique][local][object][uuid] */ | ||
| 5387 | |||
| 5388 | |||
| 5389 | EXTERN_C const IID IID_ID3D12Fence; | ||
| 5390 | |||
| 5391 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5392 | |||
| 5393 | MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76") | ||
| 5394 | ID3D12Fence : public ID3D12Pageable | ||
| 5395 | { | ||
| 5396 | public: | ||
| 5397 | virtual UINT64 STDMETHODCALLTYPE GetCompletedValue( void) = 0; | ||
| 5398 | |||
| 5399 | virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion( | ||
| 5400 | UINT64 Value, | ||
| 5401 | HANDLE hEvent) = 0; | ||
| 5402 | |||
| 5403 | virtual HRESULT STDMETHODCALLTYPE Signal( | ||
| 5404 | UINT64 Value) = 0; | ||
| 5405 | |||
| 5406 | }; | ||
| 5407 | |||
| 5408 | |||
| 5409 | #else /* C style interface */ | ||
| 5410 | |||
| 5411 | typedef struct ID3D12FenceVtbl | ||
| 5412 | { | ||
| 5413 | BEGIN_INTERFACE | ||
| 5414 | |||
| 5415 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 5416 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 5417 | ID3D12Fence * This, | ||
| 5418 | REFIID riid, | ||
| 5419 | _COM_Outptr_ void **ppvObject); | ||
| 5420 | |||
| 5421 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 5422 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 5423 | ID3D12Fence * This); | ||
| 5424 | |||
| 5425 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 5426 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 5427 | ID3D12Fence * This); | ||
| 5428 | |||
| 5429 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 5430 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 5431 | ID3D12Fence * This, | ||
| 5432 | _In_ REFGUID guid, | ||
| 5433 | _Inout_ UINT *pDataSize, | ||
| 5434 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 5435 | |||
| 5436 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 5437 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 5438 | ID3D12Fence * This, | ||
| 5439 | _In_ REFGUID guid, | ||
| 5440 | _In_ UINT DataSize, | ||
| 5441 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 5442 | |||
| 5443 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 5444 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 5445 | ID3D12Fence * This, | ||
| 5446 | _In_ REFGUID guid, | ||
| 5447 | _In_opt_ const IUnknown *pData); | ||
| 5448 | |||
| 5449 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 5450 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 5451 | ID3D12Fence * This, | ||
| 5452 | _In_z_ LPCWSTR Name); | ||
| 5453 | |||
| 5454 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 5455 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 5456 | ID3D12Fence * This, | ||
| 5457 | REFIID riid, | ||
| 5458 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 5459 | |||
| 5460 | DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue) | ||
| 5461 | UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )( | ||
| 5462 | ID3D12Fence * This); | ||
| 5463 | |||
| 5464 | DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion) | ||
| 5465 | HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )( | ||
| 5466 | ID3D12Fence * This, | ||
| 5467 | UINT64 Value, | ||
| 5468 | HANDLE hEvent); | ||
| 5469 | |||
| 5470 | DECLSPEC_XFGVIRT(ID3D12Fence, Signal) | ||
| 5471 | HRESULT ( STDMETHODCALLTYPE *Signal )( | ||
| 5472 | ID3D12Fence * This, | ||
| 5473 | UINT64 Value); | ||
| 5474 | |||
| 5475 | END_INTERFACE | ||
| 5476 | } ID3D12FenceVtbl; | ||
| 5477 | |||
| 5478 | interface ID3D12Fence | ||
| 5479 | { | ||
| 5480 | CONST_VTBL struct ID3D12FenceVtbl *lpVtbl; | ||
| 5481 | }; | ||
| 5482 | |||
| 5483 | |||
| 5484 | |||
| 5485 | #ifdef COBJMACROS | ||
| 5486 | |||
| 5487 | |||
| 5488 | #define ID3D12Fence_QueryInterface(This,riid,ppvObject) \ | ||
| 5489 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 5490 | |||
| 5491 | #define ID3D12Fence_AddRef(This) \ | ||
| 5492 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 5493 | |||
| 5494 | #define ID3D12Fence_Release(This) \ | ||
| 5495 | ( (This)->lpVtbl -> Release(This) ) | ||
| 5496 | |||
| 5497 | |||
| 5498 | #define ID3D12Fence_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 5499 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5500 | |||
| 5501 | #define ID3D12Fence_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5502 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5503 | |||
| 5504 | #define ID3D12Fence_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5505 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5506 | |||
| 5507 | #define ID3D12Fence_SetName(This,Name) \ | ||
| 5508 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5509 | |||
| 5510 | |||
| 5511 | #define ID3D12Fence_GetDevice(This,riid,ppvDevice) \ | ||
| 5512 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5513 | |||
| 5514 | |||
| 5515 | |||
| 5516 | #define ID3D12Fence_GetCompletedValue(This) \ | ||
| 5517 | ( (This)->lpVtbl -> GetCompletedValue(This) ) | ||
| 5518 | |||
| 5519 | #define ID3D12Fence_SetEventOnCompletion(This,Value,hEvent) \ | ||
| 5520 | ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) ) | ||
| 5521 | |||
| 5522 | #define ID3D12Fence_Signal(This,Value) \ | ||
| 5523 | ( (This)->lpVtbl -> Signal(This,Value) ) | ||
| 5524 | |||
| 5525 | #endif /* COBJMACROS */ | ||
| 5526 | |||
| 5527 | |||
| 5528 | #endif /* C style interface */ | ||
| 5529 | |||
| 5530 | |||
| 5531 | |||
| 5532 | |||
| 5533 | #endif /* __ID3D12Fence_INTERFACE_DEFINED__ */ | ||
| 5534 | |||
| 5535 | |||
| 5536 | #ifndef __ID3D12Fence1_INTERFACE_DEFINED__ | ||
| 5537 | #define __ID3D12Fence1_INTERFACE_DEFINED__ | ||
| 5538 | |||
| 5539 | /* interface ID3D12Fence1 */ | ||
| 5540 | /* [unique][local][object][uuid] */ | ||
| 5541 | |||
| 5542 | |||
| 5543 | EXTERN_C const IID IID_ID3D12Fence1; | ||
| 5544 | |||
| 5545 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5546 | |||
| 5547 | MIDL_INTERFACE("433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a") | ||
| 5548 | ID3D12Fence1 : public ID3D12Fence | ||
| 5549 | { | ||
| 5550 | public: | ||
| 5551 | virtual D3D12_FENCE_FLAGS STDMETHODCALLTYPE GetCreationFlags( void) = 0; | ||
| 5552 | |||
| 5553 | }; | ||
| 5554 | |||
| 5555 | |||
| 5556 | #else /* C style interface */ | ||
| 5557 | |||
| 5558 | typedef struct ID3D12Fence1Vtbl | ||
| 5559 | { | ||
| 5560 | BEGIN_INTERFACE | ||
| 5561 | |||
| 5562 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 5563 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 5564 | ID3D12Fence1 * This, | ||
| 5565 | REFIID riid, | ||
| 5566 | _COM_Outptr_ void **ppvObject); | ||
| 5567 | |||
| 5568 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 5569 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 5570 | ID3D12Fence1 * This); | ||
| 5571 | |||
| 5572 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 5573 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 5574 | ID3D12Fence1 * This); | ||
| 5575 | |||
| 5576 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 5577 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 5578 | ID3D12Fence1 * This, | ||
| 5579 | _In_ REFGUID guid, | ||
| 5580 | _Inout_ UINT *pDataSize, | ||
| 5581 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 5582 | |||
| 5583 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 5584 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 5585 | ID3D12Fence1 * This, | ||
| 5586 | _In_ REFGUID guid, | ||
| 5587 | _In_ UINT DataSize, | ||
| 5588 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 5589 | |||
| 5590 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 5591 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 5592 | ID3D12Fence1 * This, | ||
| 5593 | _In_ REFGUID guid, | ||
| 5594 | _In_opt_ const IUnknown *pData); | ||
| 5595 | |||
| 5596 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 5597 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 5598 | ID3D12Fence1 * This, | ||
| 5599 | _In_z_ LPCWSTR Name); | ||
| 5600 | |||
| 5601 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 5602 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 5603 | ID3D12Fence1 * This, | ||
| 5604 | REFIID riid, | ||
| 5605 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 5606 | |||
| 5607 | DECLSPEC_XFGVIRT(ID3D12Fence, GetCompletedValue) | ||
| 5608 | UINT64 ( STDMETHODCALLTYPE *GetCompletedValue )( | ||
| 5609 | ID3D12Fence1 * This); | ||
| 5610 | |||
| 5611 | DECLSPEC_XFGVIRT(ID3D12Fence, SetEventOnCompletion) | ||
| 5612 | HRESULT ( STDMETHODCALLTYPE *SetEventOnCompletion )( | ||
| 5613 | ID3D12Fence1 * This, | ||
| 5614 | UINT64 Value, | ||
| 5615 | HANDLE hEvent); | ||
| 5616 | |||
| 5617 | DECLSPEC_XFGVIRT(ID3D12Fence, Signal) | ||
| 5618 | HRESULT ( STDMETHODCALLTYPE *Signal )( | ||
| 5619 | ID3D12Fence1 * This, | ||
| 5620 | UINT64 Value); | ||
| 5621 | |||
| 5622 | DECLSPEC_XFGVIRT(ID3D12Fence1, GetCreationFlags) | ||
| 5623 | D3D12_FENCE_FLAGS ( STDMETHODCALLTYPE *GetCreationFlags )( | ||
| 5624 | ID3D12Fence1 * This); | ||
| 5625 | |||
| 5626 | END_INTERFACE | ||
| 5627 | } ID3D12Fence1Vtbl; | ||
| 5628 | |||
| 5629 | interface ID3D12Fence1 | ||
| 5630 | { | ||
| 5631 | CONST_VTBL struct ID3D12Fence1Vtbl *lpVtbl; | ||
| 5632 | }; | ||
| 5633 | |||
| 5634 | |||
| 5635 | |||
| 5636 | #ifdef COBJMACROS | ||
| 5637 | |||
| 5638 | |||
| 5639 | #define ID3D12Fence1_QueryInterface(This,riid,ppvObject) \ | ||
| 5640 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 5641 | |||
| 5642 | #define ID3D12Fence1_AddRef(This) \ | ||
| 5643 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 5644 | |||
| 5645 | #define ID3D12Fence1_Release(This) \ | ||
| 5646 | ( (This)->lpVtbl -> Release(This) ) | ||
| 5647 | |||
| 5648 | |||
| 5649 | #define ID3D12Fence1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 5650 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5651 | |||
| 5652 | #define ID3D12Fence1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5653 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5654 | |||
| 5655 | #define ID3D12Fence1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5656 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5657 | |||
| 5658 | #define ID3D12Fence1_SetName(This,Name) \ | ||
| 5659 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5660 | |||
| 5661 | |||
| 5662 | #define ID3D12Fence1_GetDevice(This,riid,ppvDevice) \ | ||
| 5663 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5664 | |||
| 5665 | |||
| 5666 | |||
| 5667 | #define ID3D12Fence1_GetCompletedValue(This) \ | ||
| 5668 | ( (This)->lpVtbl -> GetCompletedValue(This) ) | ||
| 5669 | |||
| 5670 | #define ID3D12Fence1_SetEventOnCompletion(This,Value,hEvent) \ | ||
| 5671 | ( (This)->lpVtbl -> SetEventOnCompletion(This,Value,hEvent) ) | ||
| 5672 | |||
| 5673 | #define ID3D12Fence1_Signal(This,Value) \ | ||
| 5674 | ( (This)->lpVtbl -> Signal(This,Value) ) | ||
| 5675 | |||
| 5676 | |||
| 5677 | #define ID3D12Fence1_GetCreationFlags(This) \ | ||
| 5678 | ( (This)->lpVtbl -> GetCreationFlags(This) ) | ||
| 5679 | |||
| 5680 | #endif /* COBJMACROS */ | ||
| 5681 | |||
| 5682 | |||
| 5683 | #endif /* C style interface */ | ||
| 5684 | |||
| 5685 | |||
| 5686 | |||
| 5687 | |||
| 5688 | #endif /* __ID3D12Fence1_INTERFACE_DEFINED__ */ | ||
| 5689 | |||
| 5690 | |||
| 5691 | #ifndef __ID3D12PipelineState_INTERFACE_DEFINED__ | ||
| 5692 | #define __ID3D12PipelineState_INTERFACE_DEFINED__ | ||
| 5693 | |||
| 5694 | /* interface ID3D12PipelineState */ | ||
| 5695 | /* [unique][local][object][uuid] */ | ||
| 5696 | |||
| 5697 | |||
| 5698 | EXTERN_C const IID IID_ID3D12PipelineState; | ||
| 5699 | |||
| 5700 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5701 | |||
| 5702 | MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445") | ||
| 5703 | ID3D12PipelineState : public ID3D12Pageable | ||
| 5704 | { | ||
| 5705 | public: | ||
| 5706 | virtual HRESULT STDMETHODCALLTYPE GetCachedBlob( | ||
| 5707 | _COM_Outptr_ ID3DBlob **ppBlob) = 0; | ||
| 5708 | |||
| 5709 | }; | ||
| 5710 | |||
| 5711 | |||
| 5712 | #else /* C style interface */ | ||
| 5713 | |||
| 5714 | typedef struct ID3D12PipelineStateVtbl | ||
| 5715 | { | ||
| 5716 | BEGIN_INTERFACE | ||
| 5717 | |||
| 5718 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 5719 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 5720 | ID3D12PipelineState * This, | ||
| 5721 | REFIID riid, | ||
| 5722 | _COM_Outptr_ void **ppvObject); | ||
| 5723 | |||
| 5724 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 5725 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 5726 | ID3D12PipelineState * This); | ||
| 5727 | |||
| 5728 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 5729 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 5730 | ID3D12PipelineState * This); | ||
| 5731 | |||
| 5732 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 5733 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 5734 | ID3D12PipelineState * This, | ||
| 5735 | _In_ REFGUID guid, | ||
| 5736 | _Inout_ UINT *pDataSize, | ||
| 5737 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 5738 | |||
| 5739 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 5740 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 5741 | ID3D12PipelineState * This, | ||
| 5742 | _In_ REFGUID guid, | ||
| 5743 | _In_ UINT DataSize, | ||
| 5744 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 5745 | |||
| 5746 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 5747 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 5748 | ID3D12PipelineState * This, | ||
| 5749 | _In_ REFGUID guid, | ||
| 5750 | _In_opt_ const IUnknown *pData); | ||
| 5751 | |||
| 5752 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 5753 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 5754 | ID3D12PipelineState * This, | ||
| 5755 | _In_z_ LPCWSTR Name); | ||
| 5756 | |||
| 5757 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 5758 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 5759 | ID3D12PipelineState * This, | ||
| 5760 | REFIID riid, | ||
| 5761 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 5762 | |||
| 5763 | DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob) | ||
| 5764 | HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )( | ||
| 5765 | ID3D12PipelineState * This, | ||
| 5766 | _COM_Outptr_ ID3DBlob **ppBlob); | ||
| 5767 | |||
| 5768 | END_INTERFACE | ||
| 5769 | } ID3D12PipelineStateVtbl; | ||
| 5770 | |||
| 5771 | interface ID3D12PipelineState | ||
| 5772 | { | ||
| 5773 | CONST_VTBL struct ID3D12PipelineStateVtbl *lpVtbl; | ||
| 5774 | }; | ||
| 5775 | |||
| 5776 | |||
| 5777 | |||
| 5778 | #ifdef COBJMACROS | ||
| 5779 | |||
| 5780 | |||
| 5781 | #define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) \ | ||
| 5782 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 5783 | |||
| 5784 | #define ID3D12PipelineState_AddRef(This) \ | ||
| 5785 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 5786 | |||
| 5787 | #define ID3D12PipelineState_Release(This) \ | ||
| 5788 | ( (This)->lpVtbl -> Release(This) ) | ||
| 5789 | |||
| 5790 | |||
| 5791 | #define ID3D12PipelineState_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 5792 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5793 | |||
| 5794 | #define ID3D12PipelineState_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5795 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5796 | |||
| 5797 | #define ID3D12PipelineState_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5798 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5799 | |||
| 5800 | #define ID3D12PipelineState_SetName(This,Name) \ | ||
| 5801 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5802 | |||
| 5803 | |||
| 5804 | #define ID3D12PipelineState_GetDevice(This,riid,ppvDevice) \ | ||
| 5805 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5806 | |||
| 5807 | |||
| 5808 | |||
| 5809 | #define ID3D12PipelineState_GetCachedBlob(This,ppBlob) \ | ||
| 5810 | ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) ) | ||
| 5811 | |||
| 5812 | #endif /* COBJMACROS */ | ||
| 5813 | |||
| 5814 | |||
| 5815 | #endif /* C style interface */ | ||
| 5816 | |||
| 5817 | |||
| 5818 | |||
| 5819 | |||
| 5820 | #endif /* __ID3D12PipelineState_INTERFACE_DEFINED__ */ | ||
| 5821 | |||
| 5822 | |||
| 5823 | #ifndef __ID3D12PipelineState1_INTERFACE_DEFINED__ | ||
| 5824 | #define __ID3D12PipelineState1_INTERFACE_DEFINED__ | ||
| 5825 | |||
| 5826 | /* interface ID3D12PipelineState1 */ | ||
| 5827 | /* [unique][local][object][uuid] */ | ||
| 5828 | |||
| 5829 | |||
| 5830 | EXTERN_C const IID IID_ID3D12PipelineState1; | ||
| 5831 | |||
| 5832 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5833 | |||
| 5834 | MIDL_INTERFACE("5646804c-9638-48f7-9182-b3ee5a6b60fb") | ||
| 5835 | ID3D12PipelineState1 : public ID3D12PipelineState | ||
| 5836 | { | ||
| 5837 | public: | ||
| 5838 | virtual HRESULT STDMETHODCALLTYPE GetRootSignature( | ||
| 5839 | REFIID riid, | ||
| 5840 | _COM_Outptr_ void **ppvRootSignature) = 0; | ||
| 5841 | |||
| 5842 | }; | ||
| 5843 | |||
| 5844 | |||
| 5845 | #else /* C style interface */ | ||
| 5846 | |||
| 5847 | typedef struct ID3D12PipelineState1Vtbl | ||
| 5848 | { | ||
| 5849 | BEGIN_INTERFACE | ||
| 5850 | |||
| 5851 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 5852 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 5853 | ID3D12PipelineState1 * This, | ||
| 5854 | REFIID riid, | ||
| 5855 | _COM_Outptr_ void **ppvObject); | ||
| 5856 | |||
| 5857 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 5858 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 5859 | ID3D12PipelineState1 * This); | ||
| 5860 | |||
| 5861 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 5862 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 5863 | ID3D12PipelineState1 * This); | ||
| 5864 | |||
| 5865 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 5866 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 5867 | ID3D12PipelineState1 * This, | ||
| 5868 | _In_ REFGUID guid, | ||
| 5869 | _Inout_ UINT *pDataSize, | ||
| 5870 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 5871 | |||
| 5872 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 5873 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 5874 | ID3D12PipelineState1 * This, | ||
| 5875 | _In_ REFGUID guid, | ||
| 5876 | _In_ UINT DataSize, | ||
| 5877 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 5878 | |||
| 5879 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 5880 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 5881 | ID3D12PipelineState1 * This, | ||
| 5882 | _In_ REFGUID guid, | ||
| 5883 | _In_opt_ const IUnknown *pData); | ||
| 5884 | |||
| 5885 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 5886 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 5887 | ID3D12PipelineState1 * This, | ||
| 5888 | _In_z_ LPCWSTR Name); | ||
| 5889 | |||
| 5890 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 5891 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 5892 | ID3D12PipelineState1 * This, | ||
| 5893 | REFIID riid, | ||
| 5894 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 5895 | |||
| 5896 | DECLSPEC_XFGVIRT(ID3D12PipelineState, GetCachedBlob) | ||
| 5897 | HRESULT ( STDMETHODCALLTYPE *GetCachedBlob )( | ||
| 5898 | ID3D12PipelineState1 * This, | ||
| 5899 | _COM_Outptr_ ID3DBlob **ppBlob); | ||
| 5900 | |||
| 5901 | DECLSPEC_XFGVIRT(ID3D12PipelineState1, GetRootSignature) | ||
| 5902 | HRESULT ( STDMETHODCALLTYPE *GetRootSignature )( | ||
| 5903 | ID3D12PipelineState1 * This, | ||
| 5904 | REFIID riid, | ||
| 5905 | _COM_Outptr_ void **ppvRootSignature); | ||
| 5906 | |||
| 5907 | END_INTERFACE | ||
| 5908 | } ID3D12PipelineState1Vtbl; | ||
| 5909 | |||
| 5910 | interface ID3D12PipelineState1 | ||
| 5911 | { | ||
| 5912 | CONST_VTBL struct ID3D12PipelineState1Vtbl *lpVtbl; | ||
| 5913 | }; | ||
| 5914 | |||
| 5915 | |||
| 5916 | |||
| 5917 | #ifdef COBJMACROS | ||
| 5918 | |||
| 5919 | |||
| 5920 | #define ID3D12PipelineState1_QueryInterface(This,riid,ppvObject) \ | ||
| 5921 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 5922 | |||
| 5923 | #define ID3D12PipelineState1_AddRef(This) \ | ||
| 5924 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 5925 | |||
| 5926 | #define ID3D12PipelineState1_Release(This) \ | ||
| 5927 | ( (This)->lpVtbl -> Release(This) ) | ||
| 5928 | |||
| 5929 | |||
| 5930 | #define ID3D12PipelineState1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 5931 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5932 | |||
| 5933 | #define ID3D12PipelineState1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5934 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5935 | |||
| 5936 | #define ID3D12PipelineState1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5937 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5938 | |||
| 5939 | #define ID3D12PipelineState1_SetName(This,Name) \ | ||
| 5940 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5941 | |||
| 5942 | |||
| 5943 | #define ID3D12PipelineState1_GetDevice(This,riid,ppvDevice) \ | ||
| 5944 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5945 | |||
| 5946 | |||
| 5947 | |||
| 5948 | #define ID3D12PipelineState1_GetCachedBlob(This,ppBlob) \ | ||
| 5949 | ( (This)->lpVtbl -> GetCachedBlob(This,ppBlob) ) | ||
| 5950 | |||
| 5951 | |||
| 5952 | #define ID3D12PipelineState1_GetRootSignature(This,riid,ppvRootSignature) \ | ||
| 5953 | ( (This)->lpVtbl -> GetRootSignature(This,riid,ppvRootSignature) ) | ||
| 5954 | |||
| 5955 | #endif /* COBJMACROS */ | ||
| 5956 | |||
| 5957 | |||
| 5958 | #endif /* C style interface */ | ||
| 5959 | |||
| 5960 | |||
| 5961 | |||
| 5962 | |||
| 5963 | #endif /* __ID3D12PipelineState1_INTERFACE_DEFINED__ */ | ||
| 5964 | |||
| 5965 | |||
| 5966 | #ifndef __ID3D12DescriptorHeap_INTERFACE_DEFINED__ | ||
| 5967 | #define __ID3D12DescriptorHeap_INTERFACE_DEFINED__ | ||
| 5968 | |||
| 5969 | /* interface ID3D12DescriptorHeap */ | ||
| 5970 | /* [unique][local][object][uuid] */ | ||
| 5971 | |||
| 5972 | |||
| 5973 | EXTERN_C const IID IID_ID3D12DescriptorHeap; | ||
| 5974 | |||
| 5975 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5976 | |||
| 5977 | MIDL_INTERFACE("8efb471d-616c-4f49-90f7-127bb763fa51") | ||
| 5978 | ID3D12DescriptorHeap : public ID3D12Pageable | ||
| 5979 | { | ||
| 5980 | public: | ||
| 5981 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 5982 | virtual D3D12_DESCRIPTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 5983 | #else | ||
| 5984 | virtual D3D12_DESCRIPTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 5985 | D3D12_DESCRIPTOR_HEAP_DESC * RetVal) = 0; | ||
| 5986 | #endif | ||
| 5987 | |||
| 5988 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 5989 | virtual D3D12_CPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( void) = 0; | ||
| 5990 | #else | ||
| 5991 | virtual D3D12_CPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetCPUDescriptorHandleForHeapStart( | ||
| 5992 | D3D12_CPU_DESCRIPTOR_HANDLE * RetVal) = 0; | ||
| 5993 | #endif | ||
| 5994 | |||
| 5995 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 5996 | virtual D3D12_GPU_DESCRIPTOR_HANDLE STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( void) = 0; | ||
| 5997 | #else | ||
| 5998 | virtual D3D12_GPU_DESCRIPTOR_HANDLE *STDMETHODCALLTYPE GetGPUDescriptorHandleForHeapStart( | ||
| 5999 | D3D12_GPU_DESCRIPTOR_HANDLE * RetVal) = 0; | ||
| 6000 | #endif | ||
| 6001 | |||
| 6002 | }; | ||
| 6003 | |||
| 6004 | |||
| 6005 | #else /* C style interface */ | ||
| 6006 | |||
| 6007 | typedef struct ID3D12DescriptorHeapVtbl | ||
| 6008 | { | ||
| 6009 | BEGIN_INTERFACE | ||
| 6010 | |||
| 6011 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 6012 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 6013 | ID3D12DescriptorHeap * This, | ||
| 6014 | REFIID riid, | ||
| 6015 | _COM_Outptr_ void **ppvObject); | ||
| 6016 | |||
| 6017 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 6018 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 6019 | ID3D12DescriptorHeap * This); | ||
| 6020 | |||
| 6021 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 6022 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 6023 | ID3D12DescriptorHeap * This); | ||
| 6024 | |||
| 6025 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 6026 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 6027 | ID3D12DescriptorHeap * This, | ||
| 6028 | _In_ REFGUID guid, | ||
| 6029 | _Inout_ UINT *pDataSize, | ||
| 6030 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 6031 | |||
| 6032 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 6033 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 6034 | ID3D12DescriptorHeap * This, | ||
| 6035 | _In_ REFGUID guid, | ||
| 6036 | _In_ UINT DataSize, | ||
| 6037 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 6038 | |||
| 6039 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 6040 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 6041 | ID3D12DescriptorHeap * This, | ||
| 6042 | _In_ REFGUID guid, | ||
| 6043 | _In_opt_ const IUnknown *pData); | ||
| 6044 | |||
| 6045 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 6046 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 6047 | ID3D12DescriptorHeap * This, | ||
| 6048 | _In_z_ LPCWSTR Name); | ||
| 6049 | |||
| 6050 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 6051 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 6052 | ID3D12DescriptorHeap * This, | ||
| 6053 | REFIID riid, | ||
| 6054 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 6055 | |||
| 6056 | DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetDesc) | ||
| 6057 | #if !defined(_WIN32) | ||
| 6058 | D3D12_DESCRIPTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 6059 | ID3D12DescriptorHeap * This); | ||
| 6060 | |||
| 6061 | #else | ||
| 6062 | D3D12_DESCRIPTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 6063 | ID3D12DescriptorHeap * This, | ||
| 6064 | D3D12_DESCRIPTOR_HEAP_DESC * RetVal); | ||
| 6065 | |||
| 6066 | #endif | ||
| 6067 | |||
| 6068 | DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetCPUDescriptorHandleForHeapStart) | ||
| 6069 | #if !defined(_WIN32) | ||
| 6070 | D3D12_CPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )( | ||
| 6071 | ID3D12DescriptorHeap * This); | ||
| 6072 | |||
| 6073 | #else | ||
| 6074 | D3D12_CPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetCPUDescriptorHandleForHeapStart )( | ||
| 6075 | ID3D12DescriptorHeap * This, | ||
| 6076 | D3D12_CPU_DESCRIPTOR_HANDLE * RetVal); | ||
| 6077 | |||
| 6078 | #endif | ||
| 6079 | |||
| 6080 | DECLSPEC_XFGVIRT(ID3D12DescriptorHeap, GetGPUDescriptorHandleForHeapStart) | ||
| 6081 | #if !defined(_WIN32) | ||
| 6082 | D3D12_GPU_DESCRIPTOR_HANDLE ( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )( | ||
| 6083 | ID3D12DescriptorHeap * This); | ||
| 6084 | |||
| 6085 | #else | ||
| 6086 | D3D12_GPU_DESCRIPTOR_HANDLE *( STDMETHODCALLTYPE *GetGPUDescriptorHandleForHeapStart )( | ||
| 6087 | ID3D12DescriptorHeap * This, | ||
| 6088 | D3D12_GPU_DESCRIPTOR_HANDLE * RetVal); | ||
| 6089 | |||
| 6090 | #endif | ||
| 6091 | |||
| 6092 | END_INTERFACE | ||
| 6093 | } ID3D12DescriptorHeapVtbl; | ||
| 6094 | |||
| 6095 | interface ID3D12DescriptorHeap | ||
| 6096 | { | ||
| 6097 | CONST_VTBL struct ID3D12DescriptorHeapVtbl *lpVtbl; | ||
| 6098 | }; | ||
| 6099 | |||
| 6100 | |||
| 6101 | |||
| 6102 | #ifdef COBJMACROS | ||
| 6103 | |||
| 6104 | |||
| 6105 | #define ID3D12DescriptorHeap_QueryInterface(This,riid,ppvObject) \ | ||
| 6106 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 6107 | |||
| 6108 | #define ID3D12DescriptorHeap_AddRef(This) \ | ||
| 6109 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 6110 | |||
| 6111 | #define ID3D12DescriptorHeap_Release(This) \ | ||
| 6112 | ( (This)->lpVtbl -> Release(This) ) | ||
| 6113 | |||
| 6114 | |||
| 6115 | #define ID3D12DescriptorHeap_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 6116 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 6117 | |||
| 6118 | #define ID3D12DescriptorHeap_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 6119 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 6120 | |||
| 6121 | #define ID3D12DescriptorHeap_SetPrivateDataInterface(This,guid,pData) \ | ||
| 6122 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 6123 | |||
| 6124 | #define ID3D12DescriptorHeap_SetName(This,Name) \ | ||
| 6125 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 6126 | |||
| 6127 | |||
| 6128 | #define ID3D12DescriptorHeap_GetDevice(This,riid,ppvDevice) \ | ||
| 6129 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 6130 | |||
| 6131 | |||
| 6132 | #if !defined(_WIN32) | ||
| 6133 | |||
| 6134 | #define ID3D12DescriptorHeap_GetDesc(This) \ | ||
| 6135 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 6136 | #else | ||
| 6137 | #define ID3D12DescriptorHeap_GetDesc(This,RetVal) \ | ||
| 6138 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 6139 | #endif | ||
| 6140 | #if !defined(_WIN32) | ||
| 6141 | |||
| 6142 | #define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This) \ | ||
| 6143 | ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This) ) | ||
| 6144 | #else | ||
| 6145 | #define ID3D12DescriptorHeap_GetCPUDescriptorHandleForHeapStart(This,RetVal) \ | ||
| 6146 | ( (This)->lpVtbl -> GetCPUDescriptorHandleForHeapStart(This,RetVal) ) | ||
| 6147 | #endif | ||
| 6148 | #if !defined(_WIN32) | ||
| 6149 | |||
| 6150 | #define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This) \ | ||
| 6151 | ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This) ) | ||
| 6152 | #else | ||
| 6153 | #define ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(This,RetVal) \ | ||
| 6154 | ( (This)->lpVtbl -> GetGPUDescriptorHandleForHeapStart(This,RetVal) ) | ||
| 6155 | #endif | ||
| 6156 | |||
| 6157 | #endif /* COBJMACROS */ | ||
| 6158 | |||
| 6159 | |||
| 6160 | #endif /* C style interface */ | ||
| 6161 | |||
| 6162 | |||
| 6163 | |||
| 6164 | |||
| 6165 | #endif /* __ID3D12DescriptorHeap_INTERFACE_DEFINED__ */ | ||
| 6166 | |||
| 6167 | |||
| 6168 | #ifndef __ID3D12QueryHeap_INTERFACE_DEFINED__ | ||
| 6169 | #define __ID3D12QueryHeap_INTERFACE_DEFINED__ | ||
| 6170 | |||
| 6171 | /* interface ID3D12QueryHeap */ | ||
| 6172 | /* [unique][local][object][uuid] */ | ||
| 6173 | |||
| 6174 | |||
| 6175 | EXTERN_C const IID IID_ID3D12QueryHeap; | ||
| 6176 | |||
| 6177 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 6178 | |||
| 6179 | MIDL_INTERFACE("0d9658ae-ed45-469e-a61d-970ec583cab4") | ||
| 6180 | ID3D12QueryHeap : public ID3D12Pageable | ||
| 6181 | { | ||
| 6182 | public: | ||
| 6183 | }; | ||
| 6184 | |||
| 6185 | |||
| 6186 | #else /* C style interface */ | ||
| 6187 | |||
| 6188 | typedef struct ID3D12QueryHeapVtbl | ||
| 6189 | { | ||
| 6190 | BEGIN_INTERFACE | ||
| 6191 | |||
| 6192 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 6193 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 6194 | ID3D12QueryHeap * This, | ||
| 6195 | REFIID riid, | ||
| 6196 | _COM_Outptr_ void **ppvObject); | ||
| 6197 | |||
| 6198 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 6199 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 6200 | ID3D12QueryHeap * This); | ||
| 6201 | |||
| 6202 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 6203 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 6204 | ID3D12QueryHeap * This); | ||
| 6205 | |||
| 6206 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 6207 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 6208 | ID3D12QueryHeap * This, | ||
| 6209 | _In_ REFGUID guid, | ||
| 6210 | _Inout_ UINT *pDataSize, | ||
| 6211 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 6212 | |||
| 6213 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 6214 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 6215 | ID3D12QueryHeap * This, | ||
| 6216 | _In_ REFGUID guid, | ||
| 6217 | _In_ UINT DataSize, | ||
| 6218 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 6219 | |||
| 6220 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 6221 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 6222 | ID3D12QueryHeap * This, | ||
| 6223 | _In_ REFGUID guid, | ||
| 6224 | _In_opt_ const IUnknown *pData); | ||
| 6225 | |||
| 6226 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 6227 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 6228 | ID3D12QueryHeap * This, | ||
| 6229 | _In_z_ LPCWSTR Name); | ||
| 6230 | |||
| 6231 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 6232 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 6233 | ID3D12QueryHeap * This, | ||
| 6234 | REFIID riid, | ||
| 6235 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 6236 | |||
| 6237 | END_INTERFACE | ||
| 6238 | } ID3D12QueryHeapVtbl; | ||
| 6239 | |||
| 6240 | interface ID3D12QueryHeap | ||
| 6241 | { | ||
| 6242 | CONST_VTBL struct ID3D12QueryHeapVtbl *lpVtbl; | ||
| 6243 | }; | ||
| 6244 | |||
| 6245 | |||
| 6246 | |||
| 6247 | #ifdef COBJMACROS | ||
| 6248 | |||
| 6249 | |||
| 6250 | #define ID3D12QueryHeap_QueryInterface(This,riid,ppvObject) \ | ||
| 6251 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 6252 | |||
| 6253 | #define ID3D12QueryHeap_AddRef(This) \ | ||
| 6254 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 6255 | |||
| 6256 | #define ID3D12QueryHeap_Release(This) \ | ||
| 6257 | ( (This)->lpVtbl -> Release(This) ) | ||
| 6258 | |||
| 6259 | |||
| 6260 | #define ID3D12QueryHeap_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 6261 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 6262 | |||
| 6263 | #define ID3D12QueryHeap_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 6264 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 6265 | |||
| 6266 | #define ID3D12QueryHeap_SetPrivateDataInterface(This,guid,pData) \ | ||
| 6267 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 6268 | |||
| 6269 | #define ID3D12QueryHeap_SetName(This,Name) \ | ||
| 6270 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 6271 | |||
| 6272 | |||
| 6273 | #define ID3D12QueryHeap_GetDevice(This,riid,ppvDevice) \ | ||
| 6274 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 6275 | |||
| 6276 | |||
| 6277 | |||
| 6278 | #endif /* COBJMACROS */ | ||
| 6279 | |||
| 6280 | |||
| 6281 | #endif /* C style interface */ | ||
| 6282 | |||
| 6283 | |||
| 6284 | |||
| 6285 | |||
| 6286 | #endif /* __ID3D12QueryHeap_INTERFACE_DEFINED__ */ | ||
| 6287 | |||
| 6288 | |||
| 6289 | #ifndef __ID3D12CommandSignature_INTERFACE_DEFINED__ | ||
| 6290 | #define __ID3D12CommandSignature_INTERFACE_DEFINED__ | ||
| 6291 | |||
| 6292 | /* interface ID3D12CommandSignature */ | ||
| 6293 | /* [unique][local][object][uuid] */ | ||
| 6294 | |||
| 6295 | |||
| 6296 | EXTERN_C const IID IID_ID3D12CommandSignature; | ||
| 6297 | |||
| 6298 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 6299 | |||
| 6300 | MIDL_INTERFACE("c36a797c-ec80-4f0a-8985-a7b2475082d1") | ||
| 6301 | ID3D12CommandSignature : public ID3D12Pageable | ||
| 6302 | { | ||
| 6303 | public: | ||
| 6304 | }; | ||
| 6305 | |||
| 6306 | |||
| 6307 | #else /* C style interface */ | ||
| 6308 | |||
| 6309 | typedef struct ID3D12CommandSignatureVtbl | ||
| 6310 | { | ||
| 6311 | BEGIN_INTERFACE | ||
| 6312 | |||
| 6313 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 6314 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 6315 | ID3D12CommandSignature * This, | ||
| 6316 | REFIID riid, | ||
| 6317 | _COM_Outptr_ void **ppvObject); | ||
| 6318 | |||
| 6319 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 6320 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 6321 | ID3D12CommandSignature * This); | ||
| 6322 | |||
| 6323 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 6324 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 6325 | ID3D12CommandSignature * This); | ||
| 6326 | |||
| 6327 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 6328 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 6329 | ID3D12CommandSignature * This, | ||
| 6330 | _In_ REFGUID guid, | ||
| 6331 | _Inout_ UINT *pDataSize, | ||
| 6332 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 6333 | |||
| 6334 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 6335 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 6336 | ID3D12CommandSignature * This, | ||
| 6337 | _In_ REFGUID guid, | ||
| 6338 | _In_ UINT DataSize, | ||
| 6339 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 6340 | |||
| 6341 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 6342 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 6343 | ID3D12CommandSignature * This, | ||
| 6344 | _In_ REFGUID guid, | ||
| 6345 | _In_opt_ const IUnknown *pData); | ||
| 6346 | |||
| 6347 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 6348 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 6349 | ID3D12CommandSignature * This, | ||
| 6350 | _In_z_ LPCWSTR Name); | ||
| 6351 | |||
| 6352 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 6353 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 6354 | ID3D12CommandSignature * This, | ||
| 6355 | REFIID riid, | ||
| 6356 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 6357 | |||
| 6358 | END_INTERFACE | ||
| 6359 | } ID3D12CommandSignatureVtbl; | ||
| 6360 | |||
| 6361 | interface ID3D12CommandSignature | ||
| 6362 | { | ||
| 6363 | CONST_VTBL struct ID3D12CommandSignatureVtbl *lpVtbl; | ||
| 6364 | }; | ||
| 6365 | |||
| 6366 | |||
| 6367 | |||
| 6368 | #ifdef COBJMACROS | ||
| 6369 | |||
| 6370 | |||
| 6371 | #define ID3D12CommandSignature_QueryInterface(This,riid,ppvObject) \ | ||
| 6372 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 6373 | |||
| 6374 | #define ID3D12CommandSignature_AddRef(This) \ | ||
| 6375 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 6376 | |||
| 6377 | #define ID3D12CommandSignature_Release(This) \ | ||
| 6378 | ( (This)->lpVtbl -> Release(This) ) | ||
| 6379 | |||
| 6380 | |||
| 6381 | #define ID3D12CommandSignature_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 6382 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 6383 | |||
| 6384 | #define ID3D12CommandSignature_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 6385 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 6386 | |||
| 6387 | #define ID3D12CommandSignature_SetPrivateDataInterface(This,guid,pData) \ | ||
| 6388 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 6389 | |||
| 6390 | #define ID3D12CommandSignature_SetName(This,Name) \ | ||
| 6391 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 6392 | |||
| 6393 | |||
| 6394 | #define ID3D12CommandSignature_GetDevice(This,riid,ppvDevice) \ | ||
| 6395 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 6396 | |||
| 6397 | |||
| 6398 | |||
| 6399 | #endif /* COBJMACROS */ | ||
| 6400 | |||
| 6401 | |||
| 6402 | #endif /* C style interface */ | ||
| 6403 | |||
| 6404 | |||
| 6405 | |||
| 6406 | |||
| 6407 | #endif /* __ID3D12CommandSignature_INTERFACE_DEFINED__ */ | ||
| 6408 | |||
| 6409 | |||
| 6410 | #ifndef __ID3D12CommandList_INTERFACE_DEFINED__ | ||
| 6411 | #define __ID3D12CommandList_INTERFACE_DEFINED__ | ||
| 6412 | |||
| 6413 | /* interface ID3D12CommandList */ | ||
| 6414 | /* [unique][local][object][uuid] */ | ||
| 6415 | |||
| 6416 | |||
| 6417 | EXTERN_C const IID IID_ID3D12CommandList; | ||
| 6418 | |||
| 6419 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 6420 | |||
| 6421 | MIDL_INTERFACE("7116d91c-e7e4-47ce-b8c6-ec8168f437e5") | ||
| 6422 | ID3D12CommandList : public ID3D12DeviceChild | ||
| 6423 | { | ||
| 6424 | public: | ||
| 6425 | virtual D3D12_COMMAND_LIST_TYPE STDMETHODCALLTYPE GetType( void) = 0; | ||
| 6426 | |||
| 6427 | }; | ||
| 6428 | |||
| 6429 | |||
| 6430 | #else /* C style interface */ | ||
| 6431 | |||
| 6432 | typedef struct ID3D12CommandListVtbl | ||
| 6433 | { | ||
| 6434 | BEGIN_INTERFACE | ||
| 6435 | |||
| 6436 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 6437 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 6438 | ID3D12CommandList * This, | ||
| 6439 | REFIID riid, | ||
| 6440 | _COM_Outptr_ void **ppvObject); | ||
| 6441 | |||
| 6442 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 6443 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 6444 | ID3D12CommandList * This); | ||
| 6445 | |||
| 6446 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 6447 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 6448 | ID3D12CommandList * This); | ||
| 6449 | |||
| 6450 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 6451 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 6452 | ID3D12CommandList * This, | ||
| 6453 | _In_ REFGUID guid, | ||
| 6454 | _Inout_ UINT *pDataSize, | ||
| 6455 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 6456 | |||
| 6457 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 6458 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 6459 | ID3D12CommandList * This, | ||
| 6460 | _In_ REFGUID guid, | ||
| 6461 | _In_ UINT DataSize, | ||
| 6462 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 6463 | |||
| 6464 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 6465 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 6466 | ID3D12CommandList * This, | ||
| 6467 | _In_ REFGUID guid, | ||
| 6468 | _In_opt_ const IUnknown *pData); | ||
| 6469 | |||
| 6470 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 6471 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 6472 | ID3D12CommandList * This, | ||
| 6473 | _In_z_ LPCWSTR Name); | ||
| 6474 | |||
| 6475 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 6476 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 6477 | ID3D12CommandList * This, | ||
| 6478 | REFIID riid, | ||
| 6479 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 6480 | |||
| 6481 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 6482 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 6483 | ID3D12CommandList * This); | ||
| 6484 | |||
| 6485 | END_INTERFACE | ||
| 6486 | } ID3D12CommandListVtbl; | ||
| 6487 | |||
| 6488 | interface ID3D12CommandList | ||
| 6489 | { | ||
| 6490 | CONST_VTBL struct ID3D12CommandListVtbl *lpVtbl; | ||
| 6491 | }; | ||
| 6492 | |||
| 6493 | |||
| 6494 | |||
| 6495 | #ifdef COBJMACROS | ||
| 6496 | |||
| 6497 | |||
| 6498 | #define ID3D12CommandList_QueryInterface(This,riid,ppvObject) \ | ||
| 6499 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 6500 | |||
| 6501 | #define ID3D12CommandList_AddRef(This) \ | ||
| 6502 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 6503 | |||
| 6504 | #define ID3D12CommandList_Release(This) \ | ||
| 6505 | ( (This)->lpVtbl -> Release(This) ) | ||
| 6506 | |||
| 6507 | |||
| 6508 | #define ID3D12CommandList_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 6509 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 6510 | |||
| 6511 | #define ID3D12CommandList_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 6512 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 6513 | |||
| 6514 | #define ID3D12CommandList_SetPrivateDataInterface(This,guid,pData) \ | ||
| 6515 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 6516 | |||
| 6517 | #define ID3D12CommandList_SetName(This,Name) \ | ||
| 6518 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 6519 | |||
| 6520 | |||
| 6521 | #define ID3D12CommandList_GetDevice(This,riid,ppvDevice) \ | ||
| 6522 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 6523 | |||
| 6524 | |||
| 6525 | #define ID3D12CommandList_GetType(This) \ | ||
| 6526 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 6527 | |||
| 6528 | #endif /* COBJMACROS */ | ||
| 6529 | |||
| 6530 | |||
| 6531 | #endif /* C style interface */ | ||
| 6532 | |||
| 6533 | |||
| 6534 | |||
| 6535 | |||
| 6536 | #endif /* __ID3D12CommandList_INTERFACE_DEFINED__ */ | ||
| 6537 | |||
| 6538 | |||
| 6539 | #ifndef __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ | ||
| 6540 | #define __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ | ||
| 6541 | |||
| 6542 | /* interface ID3D12GraphicsCommandList */ | ||
| 6543 | /* [unique][local][object][uuid] */ | ||
| 6544 | |||
| 6545 | |||
| 6546 | EXTERN_C const IID IID_ID3D12GraphicsCommandList; | ||
| 6547 | |||
| 6548 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 6549 | |||
| 6550 | MIDL_INTERFACE("5b160d0f-ac1b-4185-8ba8-b3ae42a5a455") | ||
| 6551 | ID3D12GraphicsCommandList : public ID3D12CommandList | ||
| 6552 | { | ||
| 6553 | public: | ||
| 6554 | virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; | ||
| 6555 | |||
| 6556 | virtual HRESULT STDMETHODCALLTYPE Reset( | ||
| 6557 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 6558 | _In_opt_ ID3D12PipelineState *pInitialState) = 0; | ||
| 6559 | |||
| 6560 | virtual void STDMETHODCALLTYPE ClearState( | ||
| 6561 | _In_opt_ ID3D12PipelineState *pPipelineState) = 0; | ||
| 6562 | |||
| 6563 | virtual void STDMETHODCALLTYPE DrawInstanced( | ||
| 6564 | _In_ UINT VertexCountPerInstance, | ||
| 6565 | _In_ UINT InstanceCount, | ||
| 6566 | _In_ UINT StartVertexLocation, | ||
| 6567 | _In_ UINT StartInstanceLocation) = 0; | ||
| 6568 | |||
| 6569 | virtual void STDMETHODCALLTYPE DrawIndexedInstanced( | ||
| 6570 | _In_ UINT IndexCountPerInstance, | ||
| 6571 | _In_ UINT InstanceCount, | ||
| 6572 | _In_ UINT StartIndexLocation, | ||
| 6573 | _In_ INT BaseVertexLocation, | ||
| 6574 | _In_ UINT StartInstanceLocation) = 0; | ||
| 6575 | |||
| 6576 | virtual void STDMETHODCALLTYPE Dispatch( | ||
| 6577 | _In_ UINT ThreadGroupCountX, | ||
| 6578 | _In_ UINT ThreadGroupCountY, | ||
| 6579 | _In_ UINT ThreadGroupCountZ) = 0; | ||
| 6580 | |||
| 6581 | virtual void STDMETHODCALLTYPE CopyBufferRegion( | ||
| 6582 | _In_ ID3D12Resource *pDstBuffer, | ||
| 6583 | UINT64 DstOffset, | ||
| 6584 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 6585 | UINT64 SrcOffset, | ||
| 6586 | UINT64 NumBytes) = 0; | ||
| 6587 | |||
| 6588 | virtual void STDMETHODCALLTYPE CopyTextureRegion( | ||
| 6589 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 6590 | UINT DstX, | ||
| 6591 | UINT DstY, | ||
| 6592 | UINT DstZ, | ||
| 6593 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 6594 | _In_opt_ const D3D12_BOX *pSrcBox) = 0; | ||
| 6595 | |||
| 6596 | virtual void STDMETHODCALLTYPE CopyResource( | ||
| 6597 | _In_ ID3D12Resource *pDstResource, | ||
| 6598 | _In_ ID3D12Resource *pSrcResource) = 0; | ||
| 6599 | |||
| 6600 | virtual void STDMETHODCALLTYPE CopyTiles( | ||
| 6601 | _In_ ID3D12Resource *pTiledResource, | ||
| 6602 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 6603 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 6604 | _In_ ID3D12Resource *pBuffer, | ||
| 6605 | UINT64 BufferStartOffsetInBytes, | ||
| 6606 | D3D12_TILE_COPY_FLAGS Flags) = 0; | ||
| 6607 | |||
| 6608 | virtual void STDMETHODCALLTYPE ResolveSubresource( | ||
| 6609 | _In_ ID3D12Resource *pDstResource, | ||
| 6610 | _In_ UINT DstSubresource, | ||
| 6611 | _In_ ID3D12Resource *pSrcResource, | ||
| 6612 | _In_ UINT SrcSubresource, | ||
| 6613 | _In_ DXGI_FORMAT Format) = 0; | ||
| 6614 | |||
| 6615 | virtual void STDMETHODCALLTYPE IASetPrimitiveTopology( | ||
| 6616 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology) = 0; | ||
| 6617 | |||
| 6618 | virtual void STDMETHODCALLTYPE RSSetViewports( | ||
| 6619 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 6620 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports) = 0; | ||
| 6621 | |||
| 6622 | virtual void STDMETHODCALLTYPE RSSetScissorRects( | ||
| 6623 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 6624 | _In_reads_( NumRects) const D3D12_RECT *pRects) = 0; | ||
| 6625 | |||
| 6626 | virtual void STDMETHODCALLTYPE OMSetBlendFactor( | ||
| 6627 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]) = 0; | ||
| 6628 | |||
| 6629 | virtual void STDMETHODCALLTYPE OMSetStencilRef( | ||
| 6630 | _In_ UINT StencilRef) = 0; | ||
| 6631 | |||
| 6632 | virtual void STDMETHODCALLTYPE SetPipelineState( | ||
| 6633 | _In_ ID3D12PipelineState *pPipelineState) = 0; | ||
| 6634 | |||
| 6635 | virtual void STDMETHODCALLTYPE ResourceBarrier( | ||
| 6636 | _In_ UINT NumBarriers, | ||
| 6637 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; | ||
| 6638 | |||
| 6639 | virtual void STDMETHODCALLTYPE ExecuteBundle( | ||
| 6640 | _In_ ID3D12GraphicsCommandList *pCommandList) = 0; | ||
| 6641 | |||
| 6642 | virtual void STDMETHODCALLTYPE SetDescriptorHeaps( | ||
| 6643 | _In_ UINT NumDescriptorHeaps, | ||
| 6644 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps) = 0; | ||
| 6645 | |||
| 6646 | virtual void STDMETHODCALLTYPE SetComputeRootSignature( | ||
| 6647 | _In_opt_ ID3D12RootSignature *pRootSignature) = 0; | ||
| 6648 | |||
| 6649 | virtual void STDMETHODCALLTYPE SetGraphicsRootSignature( | ||
| 6650 | _In_opt_ ID3D12RootSignature *pRootSignature) = 0; | ||
| 6651 | |||
| 6652 | virtual void STDMETHODCALLTYPE SetComputeRootDescriptorTable( | ||
| 6653 | _In_ UINT RootParameterIndex, | ||
| 6654 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; | ||
| 6655 | |||
| 6656 | virtual void STDMETHODCALLTYPE SetGraphicsRootDescriptorTable( | ||
| 6657 | _In_ UINT RootParameterIndex, | ||
| 6658 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor) = 0; | ||
| 6659 | |||
| 6660 | virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstant( | ||
| 6661 | _In_ UINT RootParameterIndex, | ||
| 6662 | _In_ UINT SrcData, | ||
| 6663 | _In_ UINT DestOffsetIn32BitValues) = 0; | ||
| 6664 | |||
| 6665 | virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstant( | ||
| 6666 | _In_ UINT RootParameterIndex, | ||
| 6667 | _In_ UINT SrcData, | ||
| 6668 | _In_ UINT DestOffsetIn32BitValues) = 0; | ||
| 6669 | |||
| 6670 | virtual void STDMETHODCALLTYPE SetComputeRoot32BitConstants( | ||
| 6671 | _In_ UINT RootParameterIndex, | ||
| 6672 | _In_ UINT Num32BitValuesToSet, | ||
| 6673 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 6674 | _In_ UINT DestOffsetIn32BitValues) = 0; | ||
| 6675 | |||
| 6676 | virtual void STDMETHODCALLTYPE SetGraphicsRoot32BitConstants( | ||
| 6677 | _In_ UINT RootParameterIndex, | ||
| 6678 | _In_ UINT Num32BitValuesToSet, | ||
| 6679 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 6680 | _In_ UINT DestOffsetIn32BitValues) = 0; | ||
| 6681 | |||
| 6682 | virtual void STDMETHODCALLTYPE SetComputeRootConstantBufferView( | ||
| 6683 | _In_ UINT RootParameterIndex, | ||
| 6684 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; | ||
| 6685 | |||
| 6686 | virtual void STDMETHODCALLTYPE SetGraphicsRootConstantBufferView( | ||
| 6687 | _In_ UINT RootParameterIndex, | ||
| 6688 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; | ||
| 6689 | |||
| 6690 | virtual void STDMETHODCALLTYPE SetComputeRootShaderResourceView( | ||
| 6691 | _In_ UINT RootParameterIndex, | ||
| 6692 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; | ||
| 6693 | |||
| 6694 | virtual void STDMETHODCALLTYPE SetGraphicsRootShaderResourceView( | ||
| 6695 | _In_ UINT RootParameterIndex, | ||
| 6696 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; | ||
| 6697 | |||
| 6698 | virtual void STDMETHODCALLTYPE SetComputeRootUnorderedAccessView( | ||
| 6699 | _In_ UINT RootParameterIndex, | ||
| 6700 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; | ||
| 6701 | |||
| 6702 | virtual void STDMETHODCALLTYPE SetGraphicsRootUnorderedAccessView( | ||
| 6703 | _In_ UINT RootParameterIndex, | ||
| 6704 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation) = 0; | ||
| 6705 | |||
| 6706 | virtual void STDMETHODCALLTYPE IASetIndexBuffer( | ||
| 6707 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView) = 0; | ||
| 6708 | |||
| 6709 | virtual void STDMETHODCALLTYPE IASetVertexBuffers( | ||
| 6710 | _In_ UINT StartSlot, | ||
| 6711 | _In_ UINT NumViews, | ||
| 6712 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews) = 0; | ||
| 6713 | |||
| 6714 | virtual void STDMETHODCALLTYPE SOSetTargets( | ||
| 6715 | _In_ UINT StartSlot, | ||
| 6716 | _In_ UINT NumViews, | ||
| 6717 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews) = 0; | ||
| 6718 | |||
| 6719 | virtual void STDMETHODCALLTYPE OMSetRenderTargets( | ||
| 6720 | _In_ UINT NumRenderTargetDescriptors, | ||
| 6721 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 6722 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 6723 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor) = 0; | ||
| 6724 | |||
| 6725 | virtual void STDMETHODCALLTYPE ClearDepthStencilView( | ||
| 6726 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 6727 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 6728 | _In_ FLOAT Depth, | ||
| 6729 | _In_ UINT8 Stencil, | ||
| 6730 | _In_ UINT NumRects, | ||
| 6731 | _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; | ||
| 6732 | |||
| 6733 | virtual void STDMETHODCALLTYPE ClearRenderTargetView( | ||
| 6734 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 6735 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 6736 | _In_ UINT NumRects, | ||
| 6737 | _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; | ||
| 6738 | |||
| 6739 | virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewUint( | ||
| 6740 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 6741 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 6742 | _In_ ID3D12Resource *pResource, | ||
| 6743 | _In_ const UINT Values[ 4 ], | ||
| 6744 | _In_ UINT NumRects, | ||
| 6745 | _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; | ||
| 6746 | |||
| 6747 | virtual void STDMETHODCALLTYPE ClearUnorderedAccessViewFloat( | ||
| 6748 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 6749 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 6750 | _In_ ID3D12Resource *pResource, | ||
| 6751 | _In_ const FLOAT Values[ 4 ], | ||
| 6752 | _In_ UINT NumRects, | ||
| 6753 | _In_reads_(NumRects) const D3D12_RECT *pRects) = 0; | ||
| 6754 | |||
| 6755 | virtual void STDMETHODCALLTYPE DiscardResource( | ||
| 6756 | _In_ ID3D12Resource *pResource, | ||
| 6757 | _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; | ||
| 6758 | |||
| 6759 | virtual void STDMETHODCALLTYPE BeginQuery( | ||
| 6760 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 6761 | _In_ D3D12_QUERY_TYPE Type, | ||
| 6762 | _In_ UINT Index) = 0; | ||
| 6763 | |||
| 6764 | virtual void STDMETHODCALLTYPE EndQuery( | ||
| 6765 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 6766 | _In_ D3D12_QUERY_TYPE Type, | ||
| 6767 | _In_ UINT Index) = 0; | ||
| 6768 | |||
| 6769 | virtual void STDMETHODCALLTYPE ResolveQueryData( | ||
| 6770 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 6771 | _In_ D3D12_QUERY_TYPE Type, | ||
| 6772 | _In_ UINT StartIndex, | ||
| 6773 | _In_ UINT NumQueries, | ||
| 6774 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 6775 | _In_ UINT64 AlignedDestinationBufferOffset) = 0; | ||
| 6776 | |||
| 6777 | virtual void STDMETHODCALLTYPE SetPredication( | ||
| 6778 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 6779 | _In_ UINT64 AlignedBufferOffset, | ||
| 6780 | _In_ D3D12_PREDICATION_OP Operation) = 0; | ||
| 6781 | |||
| 6782 | virtual void STDMETHODCALLTYPE SetMarker( | ||
| 6783 | UINT Metadata, | ||
| 6784 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 6785 | UINT Size) = 0; | ||
| 6786 | |||
| 6787 | virtual void STDMETHODCALLTYPE BeginEvent( | ||
| 6788 | UINT Metadata, | ||
| 6789 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 6790 | UINT Size) = 0; | ||
| 6791 | |||
| 6792 | virtual void STDMETHODCALLTYPE EndEvent( void) = 0; | ||
| 6793 | |||
| 6794 | virtual void STDMETHODCALLTYPE ExecuteIndirect( | ||
| 6795 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 6796 | _In_ UINT MaxCommandCount, | ||
| 6797 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 6798 | _In_ UINT64 ArgumentBufferOffset, | ||
| 6799 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 6800 | _In_ UINT64 CountBufferOffset) = 0; | ||
| 6801 | |||
| 6802 | }; | ||
| 6803 | |||
| 6804 | |||
| 6805 | #else /* C style interface */ | ||
| 6806 | |||
| 6807 | typedef struct ID3D12GraphicsCommandListVtbl | ||
| 6808 | { | ||
| 6809 | BEGIN_INTERFACE | ||
| 6810 | |||
| 6811 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 6812 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 6813 | ID3D12GraphicsCommandList * This, | ||
| 6814 | REFIID riid, | ||
| 6815 | _COM_Outptr_ void **ppvObject); | ||
| 6816 | |||
| 6817 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 6818 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 6819 | ID3D12GraphicsCommandList * This); | ||
| 6820 | |||
| 6821 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 6822 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 6823 | ID3D12GraphicsCommandList * This); | ||
| 6824 | |||
| 6825 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 6826 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 6827 | ID3D12GraphicsCommandList * This, | ||
| 6828 | _In_ REFGUID guid, | ||
| 6829 | _Inout_ UINT *pDataSize, | ||
| 6830 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 6831 | |||
| 6832 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 6833 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 6834 | ID3D12GraphicsCommandList * This, | ||
| 6835 | _In_ REFGUID guid, | ||
| 6836 | _In_ UINT DataSize, | ||
| 6837 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 6838 | |||
| 6839 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 6840 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 6841 | ID3D12GraphicsCommandList * This, | ||
| 6842 | _In_ REFGUID guid, | ||
| 6843 | _In_opt_ const IUnknown *pData); | ||
| 6844 | |||
| 6845 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 6846 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 6847 | ID3D12GraphicsCommandList * This, | ||
| 6848 | _In_z_ LPCWSTR Name); | ||
| 6849 | |||
| 6850 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 6851 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 6852 | ID3D12GraphicsCommandList * This, | ||
| 6853 | REFIID riid, | ||
| 6854 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 6855 | |||
| 6856 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 6857 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 6858 | ID3D12GraphicsCommandList * This); | ||
| 6859 | |||
| 6860 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 6861 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 6862 | ID3D12GraphicsCommandList * This); | ||
| 6863 | |||
| 6864 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 6865 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 6866 | ID3D12GraphicsCommandList * This, | ||
| 6867 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 6868 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 6869 | |||
| 6870 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 6871 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 6872 | ID3D12GraphicsCommandList * This, | ||
| 6873 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 6874 | |||
| 6875 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 6876 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 6877 | ID3D12GraphicsCommandList * This, | ||
| 6878 | _In_ UINT VertexCountPerInstance, | ||
| 6879 | _In_ UINT InstanceCount, | ||
| 6880 | _In_ UINT StartVertexLocation, | ||
| 6881 | _In_ UINT StartInstanceLocation); | ||
| 6882 | |||
| 6883 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 6884 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 6885 | ID3D12GraphicsCommandList * This, | ||
| 6886 | _In_ UINT IndexCountPerInstance, | ||
| 6887 | _In_ UINT InstanceCount, | ||
| 6888 | _In_ UINT StartIndexLocation, | ||
| 6889 | _In_ INT BaseVertexLocation, | ||
| 6890 | _In_ UINT StartInstanceLocation); | ||
| 6891 | |||
| 6892 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 6893 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 6894 | ID3D12GraphicsCommandList * This, | ||
| 6895 | _In_ UINT ThreadGroupCountX, | ||
| 6896 | _In_ UINT ThreadGroupCountY, | ||
| 6897 | _In_ UINT ThreadGroupCountZ); | ||
| 6898 | |||
| 6899 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 6900 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 6901 | ID3D12GraphicsCommandList * This, | ||
| 6902 | _In_ ID3D12Resource *pDstBuffer, | ||
| 6903 | UINT64 DstOffset, | ||
| 6904 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 6905 | UINT64 SrcOffset, | ||
| 6906 | UINT64 NumBytes); | ||
| 6907 | |||
| 6908 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 6909 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 6910 | ID3D12GraphicsCommandList * This, | ||
| 6911 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 6912 | UINT DstX, | ||
| 6913 | UINT DstY, | ||
| 6914 | UINT DstZ, | ||
| 6915 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 6916 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 6917 | |||
| 6918 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 6919 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 6920 | ID3D12GraphicsCommandList * This, | ||
| 6921 | _In_ ID3D12Resource *pDstResource, | ||
| 6922 | _In_ ID3D12Resource *pSrcResource); | ||
| 6923 | |||
| 6924 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 6925 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 6926 | ID3D12GraphicsCommandList * This, | ||
| 6927 | _In_ ID3D12Resource *pTiledResource, | ||
| 6928 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 6929 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 6930 | _In_ ID3D12Resource *pBuffer, | ||
| 6931 | UINT64 BufferStartOffsetInBytes, | ||
| 6932 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 6933 | |||
| 6934 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 6935 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 6936 | ID3D12GraphicsCommandList * This, | ||
| 6937 | _In_ ID3D12Resource *pDstResource, | ||
| 6938 | _In_ UINT DstSubresource, | ||
| 6939 | _In_ ID3D12Resource *pSrcResource, | ||
| 6940 | _In_ UINT SrcSubresource, | ||
| 6941 | _In_ DXGI_FORMAT Format); | ||
| 6942 | |||
| 6943 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 6944 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 6945 | ID3D12GraphicsCommandList * This, | ||
| 6946 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 6947 | |||
| 6948 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 6949 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 6950 | ID3D12GraphicsCommandList * This, | ||
| 6951 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 6952 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 6953 | |||
| 6954 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 6955 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 6956 | ID3D12GraphicsCommandList * This, | ||
| 6957 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 6958 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 6959 | |||
| 6960 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 6961 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 6962 | ID3D12GraphicsCommandList * This, | ||
| 6963 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 6964 | |||
| 6965 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 6966 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 6967 | ID3D12GraphicsCommandList * This, | ||
| 6968 | _In_ UINT StencilRef); | ||
| 6969 | |||
| 6970 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 6971 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 6972 | ID3D12GraphicsCommandList * This, | ||
| 6973 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 6974 | |||
| 6975 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 6976 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 6977 | ID3D12GraphicsCommandList * This, | ||
| 6978 | _In_ UINT NumBarriers, | ||
| 6979 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 6980 | |||
| 6981 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 6982 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 6983 | ID3D12GraphicsCommandList * This, | ||
| 6984 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 6985 | |||
| 6986 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 6987 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 6988 | ID3D12GraphicsCommandList * This, | ||
| 6989 | _In_ UINT NumDescriptorHeaps, | ||
| 6990 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 6991 | |||
| 6992 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 6993 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 6994 | ID3D12GraphicsCommandList * This, | ||
| 6995 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 6996 | |||
| 6997 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 6998 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 6999 | ID3D12GraphicsCommandList * This, | ||
| 7000 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 7001 | |||
| 7002 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 7003 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 7004 | ID3D12GraphicsCommandList * This, | ||
| 7005 | _In_ UINT RootParameterIndex, | ||
| 7006 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 7007 | |||
| 7008 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 7009 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 7010 | ID3D12GraphicsCommandList * This, | ||
| 7011 | _In_ UINT RootParameterIndex, | ||
| 7012 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 7013 | |||
| 7014 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 7015 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 7016 | ID3D12GraphicsCommandList * This, | ||
| 7017 | _In_ UINT RootParameterIndex, | ||
| 7018 | _In_ UINT SrcData, | ||
| 7019 | _In_ UINT DestOffsetIn32BitValues); | ||
| 7020 | |||
| 7021 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 7022 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 7023 | ID3D12GraphicsCommandList * This, | ||
| 7024 | _In_ UINT RootParameterIndex, | ||
| 7025 | _In_ UINT SrcData, | ||
| 7026 | _In_ UINT DestOffsetIn32BitValues); | ||
| 7027 | |||
| 7028 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 7029 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 7030 | ID3D12GraphicsCommandList * This, | ||
| 7031 | _In_ UINT RootParameterIndex, | ||
| 7032 | _In_ UINT Num32BitValuesToSet, | ||
| 7033 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 7034 | _In_ UINT DestOffsetIn32BitValues); | ||
| 7035 | |||
| 7036 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 7037 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 7038 | ID3D12GraphicsCommandList * This, | ||
| 7039 | _In_ UINT RootParameterIndex, | ||
| 7040 | _In_ UINT Num32BitValuesToSet, | ||
| 7041 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 7042 | _In_ UINT DestOffsetIn32BitValues); | ||
| 7043 | |||
| 7044 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 7045 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 7046 | ID3D12GraphicsCommandList * This, | ||
| 7047 | _In_ UINT RootParameterIndex, | ||
| 7048 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7049 | |||
| 7050 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 7051 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 7052 | ID3D12GraphicsCommandList * This, | ||
| 7053 | _In_ UINT RootParameterIndex, | ||
| 7054 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7055 | |||
| 7056 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 7057 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 7058 | ID3D12GraphicsCommandList * This, | ||
| 7059 | _In_ UINT RootParameterIndex, | ||
| 7060 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7061 | |||
| 7062 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 7063 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 7064 | ID3D12GraphicsCommandList * This, | ||
| 7065 | _In_ UINT RootParameterIndex, | ||
| 7066 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7067 | |||
| 7068 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 7069 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 7070 | ID3D12GraphicsCommandList * This, | ||
| 7071 | _In_ UINT RootParameterIndex, | ||
| 7072 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7073 | |||
| 7074 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 7075 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 7076 | ID3D12GraphicsCommandList * This, | ||
| 7077 | _In_ UINT RootParameterIndex, | ||
| 7078 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7079 | |||
| 7080 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 7081 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 7082 | ID3D12GraphicsCommandList * This, | ||
| 7083 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 7084 | |||
| 7085 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 7086 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 7087 | ID3D12GraphicsCommandList * This, | ||
| 7088 | _In_ UINT StartSlot, | ||
| 7089 | _In_ UINT NumViews, | ||
| 7090 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 7091 | |||
| 7092 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 7093 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 7094 | ID3D12GraphicsCommandList * This, | ||
| 7095 | _In_ UINT StartSlot, | ||
| 7096 | _In_ UINT NumViews, | ||
| 7097 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 7098 | |||
| 7099 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 7100 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 7101 | ID3D12GraphicsCommandList * This, | ||
| 7102 | _In_ UINT NumRenderTargetDescriptors, | ||
| 7103 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 7104 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 7105 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 7106 | |||
| 7107 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 7108 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 7109 | ID3D12GraphicsCommandList * This, | ||
| 7110 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 7111 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 7112 | _In_ FLOAT Depth, | ||
| 7113 | _In_ UINT8 Stencil, | ||
| 7114 | _In_ UINT NumRects, | ||
| 7115 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 7116 | |||
| 7117 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 7118 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 7119 | ID3D12GraphicsCommandList * This, | ||
| 7120 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 7121 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 7122 | _In_ UINT NumRects, | ||
| 7123 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 7124 | |||
| 7125 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 7126 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 7127 | ID3D12GraphicsCommandList * This, | ||
| 7128 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 7129 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 7130 | _In_ ID3D12Resource *pResource, | ||
| 7131 | _In_ const UINT Values[ 4 ], | ||
| 7132 | _In_ UINT NumRects, | ||
| 7133 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 7134 | |||
| 7135 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 7136 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 7137 | ID3D12GraphicsCommandList * This, | ||
| 7138 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 7139 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 7140 | _In_ ID3D12Resource *pResource, | ||
| 7141 | _In_ const FLOAT Values[ 4 ], | ||
| 7142 | _In_ UINT NumRects, | ||
| 7143 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 7144 | |||
| 7145 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 7146 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 7147 | ID3D12GraphicsCommandList * This, | ||
| 7148 | _In_ ID3D12Resource *pResource, | ||
| 7149 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 7150 | |||
| 7151 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 7152 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 7153 | ID3D12GraphicsCommandList * This, | ||
| 7154 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 7155 | _In_ D3D12_QUERY_TYPE Type, | ||
| 7156 | _In_ UINT Index); | ||
| 7157 | |||
| 7158 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 7159 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 7160 | ID3D12GraphicsCommandList * This, | ||
| 7161 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 7162 | _In_ D3D12_QUERY_TYPE Type, | ||
| 7163 | _In_ UINT Index); | ||
| 7164 | |||
| 7165 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 7166 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 7167 | ID3D12GraphicsCommandList * This, | ||
| 7168 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 7169 | _In_ D3D12_QUERY_TYPE Type, | ||
| 7170 | _In_ UINT StartIndex, | ||
| 7171 | _In_ UINT NumQueries, | ||
| 7172 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 7173 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 7174 | |||
| 7175 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 7176 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 7177 | ID3D12GraphicsCommandList * This, | ||
| 7178 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 7179 | _In_ UINT64 AlignedBufferOffset, | ||
| 7180 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 7181 | |||
| 7182 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 7183 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 7184 | ID3D12GraphicsCommandList * This, | ||
| 7185 | UINT Metadata, | ||
| 7186 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 7187 | UINT Size); | ||
| 7188 | |||
| 7189 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 7190 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 7191 | ID3D12GraphicsCommandList * This, | ||
| 7192 | UINT Metadata, | ||
| 7193 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 7194 | UINT Size); | ||
| 7195 | |||
| 7196 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 7197 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 7198 | ID3D12GraphicsCommandList * This); | ||
| 7199 | |||
| 7200 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 7201 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 7202 | ID3D12GraphicsCommandList * This, | ||
| 7203 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 7204 | _In_ UINT MaxCommandCount, | ||
| 7205 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 7206 | _In_ UINT64 ArgumentBufferOffset, | ||
| 7207 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 7208 | _In_ UINT64 CountBufferOffset); | ||
| 7209 | |||
| 7210 | END_INTERFACE | ||
| 7211 | } ID3D12GraphicsCommandListVtbl; | ||
| 7212 | |||
| 7213 | interface ID3D12GraphicsCommandList | ||
| 7214 | { | ||
| 7215 | CONST_VTBL struct ID3D12GraphicsCommandListVtbl *lpVtbl; | ||
| 7216 | }; | ||
| 7217 | |||
| 7218 | |||
| 7219 | |||
| 7220 | #ifdef COBJMACROS | ||
| 7221 | |||
| 7222 | |||
| 7223 | #define ID3D12GraphicsCommandList_QueryInterface(This,riid,ppvObject) \ | ||
| 7224 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 7225 | |||
| 7226 | #define ID3D12GraphicsCommandList_AddRef(This) \ | ||
| 7227 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 7228 | |||
| 7229 | #define ID3D12GraphicsCommandList_Release(This) \ | ||
| 7230 | ( (This)->lpVtbl -> Release(This) ) | ||
| 7231 | |||
| 7232 | |||
| 7233 | #define ID3D12GraphicsCommandList_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 7234 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 7235 | |||
| 7236 | #define ID3D12GraphicsCommandList_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 7237 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 7238 | |||
| 7239 | #define ID3D12GraphicsCommandList_SetPrivateDataInterface(This,guid,pData) \ | ||
| 7240 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 7241 | |||
| 7242 | #define ID3D12GraphicsCommandList_SetName(This,Name) \ | ||
| 7243 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 7244 | |||
| 7245 | |||
| 7246 | #define ID3D12GraphicsCommandList_GetDevice(This,riid,ppvDevice) \ | ||
| 7247 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 7248 | |||
| 7249 | |||
| 7250 | #define ID3D12GraphicsCommandList_GetType(This) \ | ||
| 7251 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 7252 | |||
| 7253 | |||
| 7254 | #define ID3D12GraphicsCommandList_Close(This) \ | ||
| 7255 | ( (This)->lpVtbl -> Close(This) ) | ||
| 7256 | |||
| 7257 | #define ID3D12GraphicsCommandList_Reset(This,pAllocator,pInitialState) \ | ||
| 7258 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 7259 | |||
| 7260 | #define ID3D12GraphicsCommandList_ClearState(This,pPipelineState) \ | ||
| 7261 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 7262 | |||
| 7263 | #define ID3D12GraphicsCommandList_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 7264 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 7265 | |||
| 7266 | #define ID3D12GraphicsCommandList_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 7267 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 7268 | |||
| 7269 | #define ID3D12GraphicsCommandList_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 7270 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 7271 | |||
| 7272 | #define ID3D12GraphicsCommandList_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 7273 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 7274 | |||
| 7275 | #define ID3D12GraphicsCommandList_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 7276 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 7277 | |||
| 7278 | #define ID3D12GraphicsCommandList_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 7279 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 7280 | |||
| 7281 | #define ID3D12GraphicsCommandList_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 7282 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 7283 | |||
| 7284 | #define ID3D12GraphicsCommandList_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 7285 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 7286 | |||
| 7287 | #define ID3D12GraphicsCommandList_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 7288 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 7289 | |||
| 7290 | #define ID3D12GraphicsCommandList_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 7291 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 7292 | |||
| 7293 | #define ID3D12GraphicsCommandList_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 7294 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 7295 | |||
| 7296 | #define ID3D12GraphicsCommandList_OMSetBlendFactor(This,BlendFactor) \ | ||
| 7297 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 7298 | |||
| 7299 | #define ID3D12GraphicsCommandList_OMSetStencilRef(This,StencilRef) \ | ||
| 7300 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 7301 | |||
| 7302 | #define ID3D12GraphicsCommandList_SetPipelineState(This,pPipelineState) \ | ||
| 7303 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 7304 | |||
| 7305 | #define ID3D12GraphicsCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 7306 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 7307 | |||
| 7308 | #define ID3D12GraphicsCommandList_ExecuteBundle(This,pCommandList) \ | ||
| 7309 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 7310 | |||
| 7311 | #define ID3D12GraphicsCommandList_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 7312 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 7313 | |||
| 7314 | #define ID3D12GraphicsCommandList_SetComputeRootSignature(This,pRootSignature) \ | ||
| 7315 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 7316 | |||
| 7317 | #define ID3D12GraphicsCommandList_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 7318 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 7319 | |||
| 7320 | #define ID3D12GraphicsCommandList_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 7321 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 7322 | |||
| 7323 | #define ID3D12GraphicsCommandList_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 7324 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 7325 | |||
| 7326 | #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 7327 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 7328 | |||
| 7329 | #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 7330 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 7331 | |||
| 7332 | #define ID3D12GraphicsCommandList_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 7333 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 7334 | |||
| 7335 | #define ID3D12GraphicsCommandList_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 7336 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 7337 | |||
| 7338 | #define ID3D12GraphicsCommandList_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 7339 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 7340 | |||
| 7341 | #define ID3D12GraphicsCommandList_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 7342 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 7343 | |||
| 7344 | #define ID3D12GraphicsCommandList_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 7345 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 7346 | |||
| 7347 | #define ID3D12GraphicsCommandList_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 7348 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 7349 | |||
| 7350 | #define ID3D12GraphicsCommandList_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 7351 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 7352 | |||
| 7353 | #define ID3D12GraphicsCommandList_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 7354 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 7355 | |||
| 7356 | #define ID3D12GraphicsCommandList_IASetIndexBuffer(This,pView) \ | ||
| 7357 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 7358 | |||
| 7359 | #define ID3D12GraphicsCommandList_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 7360 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 7361 | |||
| 7362 | #define ID3D12GraphicsCommandList_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 7363 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 7364 | |||
| 7365 | #define ID3D12GraphicsCommandList_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 7366 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 7367 | |||
| 7368 | #define ID3D12GraphicsCommandList_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 7369 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 7370 | |||
| 7371 | #define ID3D12GraphicsCommandList_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 7372 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 7373 | |||
| 7374 | #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 7375 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 7376 | |||
| 7377 | #define ID3D12GraphicsCommandList_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 7378 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 7379 | |||
| 7380 | #define ID3D12GraphicsCommandList_DiscardResource(This,pResource,pRegion) \ | ||
| 7381 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 7382 | |||
| 7383 | #define ID3D12GraphicsCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 7384 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 7385 | |||
| 7386 | #define ID3D12GraphicsCommandList_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 7387 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 7388 | |||
| 7389 | #define ID3D12GraphicsCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 7390 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 7391 | |||
| 7392 | #define ID3D12GraphicsCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 7393 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 7394 | |||
| 7395 | #define ID3D12GraphicsCommandList_SetMarker(This,Metadata,pData,Size) \ | ||
| 7396 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 7397 | |||
| 7398 | #define ID3D12GraphicsCommandList_BeginEvent(This,Metadata,pData,Size) \ | ||
| 7399 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 7400 | |||
| 7401 | #define ID3D12GraphicsCommandList_EndEvent(This) \ | ||
| 7402 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 7403 | |||
| 7404 | #define ID3D12GraphicsCommandList_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 7405 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 7406 | |||
| 7407 | #endif /* COBJMACROS */ | ||
| 7408 | |||
| 7409 | |||
| 7410 | #endif /* C style interface */ | ||
| 7411 | |||
| 7412 | |||
| 7413 | |||
| 7414 | |||
| 7415 | #endif /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */ | ||
| 7416 | |||
| 7417 | |||
| 7418 | #ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ | ||
| 7419 | #define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ | ||
| 7420 | |||
| 7421 | /* interface ID3D12GraphicsCommandList1 */ | ||
| 7422 | /* [unique][local][object][uuid] */ | ||
| 7423 | |||
| 7424 | |||
| 7425 | EXTERN_C const IID IID_ID3D12GraphicsCommandList1; | ||
| 7426 | |||
| 7427 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 7428 | |||
| 7429 | MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7") | ||
| 7430 | ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList | ||
| 7431 | { | ||
| 7432 | public: | ||
| 7433 | virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT( | ||
| 7434 | _In_ ID3D12Resource *pDstBuffer, | ||
| 7435 | UINT64 DstOffset, | ||
| 7436 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 7437 | UINT64 SrcOffset, | ||
| 7438 | UINT Dependencies, | ||
| 7439 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 7440 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0; | ||
| 7441 | |||
| 7442 | virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64( | ||
| 7443 | _In_ ID3D12Resource *pDstBuffer, | ||
| 7444 | UINT64 DstOffset, | ||
| 7445 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 7446 | UINT64 SrcOffset, | ||
| 7447 | UINT Dependencies, | ||
| 7448 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 7449 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges) = 0; | ||
| 7450 | |||
| 7451 | virtual void STDMETHODCALLTYPE OMSetDepthBounds( | ||
| 7452 | _In_ FLOAT Min, | ||
| 7453 | _In_ FLOAT Max) = 0; | ||
| 7454 | |||
| 7455 | virtual void STDMETHODCALLTYPE SetSamplePositions( | ||
| 7456 | _In_ UINT NumSamplesPerPixel, | ||
| 7457 | _In_ UINT NumPixels, | ||
| 7458 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions) = 0; | ||
| 7459 | |||
| 7460 | virtual void STDMETHODCALLTYPE ResolveSubresourceRegion( | ||
| 7461 | _In_ ID3D12Resource *pDstResource, | ||
| 7462 | _In_ UINT DstSubresource, | ||
| 7463 | _In_ UINT DstX, | ||
| 7464 | _In_ UINT DstY, | ||
| 7465 | _In_ ID3D12Resource *pSrcResource, | ||
| 7466 | _In_ UINT SrcSubresource, | ||
| 7467 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 7468 | _In_ DXGI_FORMAT Format, | ||
| 7469 | _In_ D3D12_RESOLVE_MODE ResolveMode) = 0; | ||
| 7470 | |||
| 7471 | virtual void STDMETHODCALLTYPE SetViewInstanceMask( | ||
| 7472 | _In_ UINT Mask) = 0; | ||
| 7473 | |||
| 7474 | }; | ||
| 7475 | |||
| 7476 | |||
| 7477 | #else /* C style interface */ | ||
| 7478 | |||
| 7479 | typedef struct ID3D12GraphicsCommandList1Vtbl | ||
| 7480 | { | ||
| 7481 | BEGIN_INTERFACE | ||
| 7482 | |||
| 7483 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 7484 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 7485 | ID3D12GraphicsCommandList1 * This, | ||
| 7486 | REFIID riid, | ||
| 7487 | _COM_Outptr_ void **ppvObject); | ||
| 7488 | |||
| 7489 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 7490 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 7491 | ID3D12GraphicsCommandList1 * This); | ||
| 7492 | |||
| 7493 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 7494 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 7495 | ID3D12GraphicsCommandList1 * This); | ||
| 7496 | |||
| 7497 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 7498 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 7499 | ID3D12GraphicsCommandList1 * This, | ||
| 7500 | _In_ REFGUID guid, | ||
| 7501 | _Inout_ UINT *pDataSize, | ||
| 7502 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 7503 | |||
| 7504 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 7505 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 7506 | ID3D12GraphicsCommandList1 * This, | ||
| 7507 | _In_ REFGUID guid, | ||
| 7508 | _In_ UINT DataSize, | ||
| 7509 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 7510 | |||
| 7511 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 7512 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 7513 | ID3D12GraphicsCommandList1 * This, | ||
| 7514 | _In_ REFGUID guid, | ||
| 7515 | _In_opt_ const IUnknown *pData); | ||
| 7516 | |||
| 7517 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 7518 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 7519 | ID3D12GraphicsCommandList1 * This, | ||
| 7520 | _In_z_ LPCWSTR Name); | ||
| 7521 | |||
| 7522 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 7523 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 7524 | ID3D12GraphicsCommandList1 * This, | ||
| 7525 | REFIID riid, | ||
| 7526 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 7527 | |||
| 7528 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 7529 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 7530 | ID3D12GraphicsCommandList1 * This); | ||
| 7531 | |||
| 7532 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 7533 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 7534 | ID3D12GraphicsCommandList1 * This); | ||
| 7535 | |||
| 7536 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 7537 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 7538 | ID3D12GraphicsCommandList1 * This, | ||
| 7539 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 7540 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 7541 | |||
| 7542 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 7543 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 7544 | ID3D12GraphicsCommandList1 * This, | ||
| 7545 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 7546 | |||
| 7547 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 7548 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 7549 | ID3D12GraphicsCommandList1 * This, | ||
| 7550 | _In_ UINT VertexCountPerInstance, | ||
| 7551 | _In_ UINT InstanceCount, | ||
| 7552 | _In_ UINT StartVertexLocation, | ||
| 7553 | _In_ UINT StartInstanceLocation); | ||
| 7554 | |||
| 7555 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 7556 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 7557 | ID3D12GraphicsCommandList1 * This, | ||
| 7558 | _In_ UINT IndexCountPerInstance, | ||
| 7559 | _In_ UINT InstanceCount, | ||
| 7560 | _In_ UINT StartIndexLocation, | ||
| 7561 | _In_ INT BaseVertexLocation, | ||
| 7562 | _In_ UINT StartInstanceLocation); | ||
| 7563 | |||
| 7564 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 7565 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 7566 | ID3D12GraphicsCommandList1 * This, | ||
| 7567 | _In_ UINT ThreadGroupCountX, | ||
| 7568 | _In_ UINT ThreadGroupCountY, | ||
| 7569 | _In_ UINT ThreadGroupCountZ); | ||
| 7570 | |||
| 7571 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 7572 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 7573 | ID3D12GraphicsCommandList1 * This, | ||
| 7574 | _In_ ID3D12Resource *pDstBuffer, | ||
| 7575 | UINT64 DstOffset, | ||
| 7576 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 7577 | UINT64 SrcOffset, | ||
| 7578 | UINT64 NumBytes); | ||
| 7579 | |||
| 7580 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 7581 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 7582 | ID3D12GraphicsCommandList1 * This, | ||
| 7583 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 7584 | UINT DstX, | ||
| 7585 | UINT DstY, | ||
| 7586 | UINT DstZ, | ||
| 7587 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 7588 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 7589 | |||
| 7590 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 7591 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 7592 | ID3D12GraphicsCommandList1 * This, | ||
| 7593 | _In_ ID3D12Resource *pDstResource, | ||
| 7594 | _In_ ID3D12Resource *pSrcResource); | ||
| 7595 | |||
| 7596 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 7597 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 7598 | ID3D12GraphicsCommandList1 * This, | ||
| 7599 | _In_ ID3D12Resource *pTiledResource, | ||
| 7600 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 7601 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 7602 | _In_ ID3D12Resource *pBuffer, | ||
| 7603 | UINT64 BufferStartOffsetInBytes, | ||
| 7604 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 7605 | |||
| 7606 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 7607 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 7608 | ID3D12GraphicsCommandList1 * This, | ||
| 7609 | _In_ ID3D12Resource *pDstResource, | ||
| 7610 | _In_ UINT DstSubresource, | ||
| 7611 | _In_ ID3D12Resource *pSrcResource, | ||
| 7612 | _In_ UINT SrcSubresource, | ||
| 7613 | _In_ DXGI_FORMAT Format); | ||
| 7614 | |||
| 7615 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 7616 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 7617 | ID3D12GraphicsCommandList1 * This, | ||
| 7618 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 7619 | |||
| 7620 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 7621 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 7622 | ID3D12GraphicsCommandList1 * This, | ||
| 7623 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 7624 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 7625 | |||
| 7626 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 7627 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 7628 | ID3D12GraphicsCommandList1 * This, | ||
| 7629 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 7630 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 7631 | |||
| 7632 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 7633 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 7634 | ID3D12GraphicsCommandList1 * This, | ||
| 7635 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 7636 | |||
| 7637 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 7638 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 7639 | ID3D12GraphicsCommandList1 * This, | ||
| 7640 | _In_ UINT StencilRef); | ||
| 7641 | |||
| 7642 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 7643 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 7644 | ID3D12GraphicsCommandList1 * This, | ||
| 7645 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 7646 | |||
| 7647 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 7648 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 7649 | ID3D12GraphicsCommandList1 * This, | ||
| 7650 | _In_ UINT NumBarriers, | ||
| 7651 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 7652 | |||
| 7653 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 7654 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 7655 | ID3D12GraphicsCommandList1 * This, | ||
| 7656 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 7657 | |||
| 7658 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 7659 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 7660 | ID3D12GraphicsCommandList1 * This, | ||
| 7661 | _In_ UINT NumDescriptorHeaps, | ||
| 7662 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 7663 | |||
| 7664 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 7665 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 7666 | ID3D12GraphicsCommandList1 * This, | ||
| 7667 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 7668 | |||
| 7669 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 7670 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 7671 | ID3D12GraphicsCommandList1 * This, | ||
| 7672 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 7673 | |||
| 7674 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 7675 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 7676 | ID3D12GraphicsCommandList1 * This, | ||
| 7677 | _In_ UINT RootParameterIndex, | ||
| 7678 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 7679 | |||
| 7680 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 7681 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 7682 | ID3D12GraphicsCommandList1 * This, | ||
| 7683 | _In_ UINT RootParameterIndex, | ||
| 7684 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 7685 | |||
| 7686 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 7687 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 7688 | ID3D12GraphicsCommandList1 * This, | ||
| 7689 | _In_ UINT RootParameterIndex, | ||
| 7690 | _In_ UINT SrcData, | ||
| 7691 | _In_ UINT DestOffsetIn32BitValues); | ||
| 7692 | |||
| 7693 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 7694 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 7695 | ID3D12GraphicsCommandList1 * This, | ||
| 7696 | _In_ UINT RootParameterIndex, | ||
| 7697 | _In_ UINT SrcData, | ||
| 7698 | _In_ UINT DestOffsetIn32BitValues); | ||
| 7699 | |||
| 7700 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 7701 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 7702 | ID3D12GraphicsCommandList1 * This, | ||
| 7703 | _In_ UINT RootParameterIndex, | ||
| 7704 | _In_ UINT Num32BitValuesToSet, | ||
| 7705 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 7706 | _In_ UINT DestOffsetIn32BitValues); | ||
| 7707 | |||
| 7708 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 7709 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 7710 | ID3D12GraphicsCommandList1 * This, | ||
| 7711 | _In_ UINT RootParameterIndex, | ||
| 7712 | _In_ UINT Num32BitValuesToSet, | ||
| 7713 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 7714 | _In_ UINT DestOffsetIn32BitValues); | ||
| 7715 | |||
| 7716 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 7717 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 7718 | ID3D12GraphicsCommandList1 * This, | ||
| 7719 | _In_ UINT RootParameterIndex, | ||
| 7720 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7721 | |||
| 7722 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 7723 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 7724 | ID3D12GraphicsCommandList1 * This, | ||
| 7725 | _In_ UINT RootParameterIndex, | ||
| 7726 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7727 | |||
| 7728 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 7729 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 7730 | ID3D12GraphicsCommandList1 * This, | ||
| 7731 | _In_ UINT RootParameterIndex, | ||
| 7732 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7733 | |||
| 7734 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 7735 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 7736 | ID3D12GraphicsCommandList1 * This, | ||
| 7737 | _In_ UINT RootParameterIndex, | ||
| 7738 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7739 | |||
| 7740 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 7741 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 7742 | ID3D12GraphicsCommandList1 * This, | ||
| 7743 | _In_ UINT RootParameterIndex, | ||
| 7744 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7745 | |||
| 7746 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 7747 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 7748 | ID3D12GraphicsCommandList1 * This, | ||
| 7749 | _In_ UINT RootParameterIndex, | ||
| 7750 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 7751 | |||
| 7752 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 7753 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 7754 | ID3D12GraphicsCommandList1 * This, | ||
| 7755 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 7756 | |||
| 7757 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 7758 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 7759 | ID3D12GraphicsCommandList1 * This, | ||
| 7760 | _In_ UINT StartSlot, | ||
| 7761 | _In_ UINT NumViews, | ||
| 7762 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 7763 | |||
| 7764 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 7765 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 7766 | ID3D12GraphicsCommandList1 * This, | ||
| 7767 | _In_ UINT StartSlot, | ||
| 7768 | _In_ UINT NumViews, | ||
| 7769 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 7770 | |||
| 7771 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 7772 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 7773 | ID3D12GraphicsCommandList1 * This, | ||
| 7774 | _In_ UINT NumRenderTargetDescriptors, | ||
| 7775 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 7776 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 7777 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 7778 | |||
| 7779 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 7780 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 7781 | ID3D12GraphicsCommandList1 * This, | ||
| 7782 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 7783 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 7784 | _In_ FLOAT Depth, | ||
| 7785 | _In_ UINT8 Stencil, | ||
| 7786 | _In_ UINT NumRects, | ||
| 7787 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 7788 | |||
| 7789 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 7790 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 7791 | ID3D12GraphicsCommandList1 * This, | ||
| 7792 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 7793 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 7794 | _In_ UINT NumRects, | ||
| 7795 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 7796 | |||
| 7797 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 7798 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 7799 | ID3D12GraphicsCommandList1 * This, | ||
| 7800 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 7801 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 7802 | _In_ ID3D12Resource *pResource, | ||
| 7803 | _In_ const UINT Values[ 4 ], | ||
| 7804 | _In_ UINT NumRects, | ||
| 7805 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 7806 | |||
| 7807 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 7808 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 7809 | ID3D12GraphicsCommandList1 * This, | ||
| 7810 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 7811 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 7812 | _In_ ID3D12Resource *pResource, | ||
| 7813 | _In_ const FLOAT Values[ 4 ], | ||
| 7814 | _In_ UINT NumRects, | ||
| 7815 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 7816 | |||
| 7817 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 7818 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 7819 | ID3D12GraphicsCommandList1 * This, | ||
| 7820 | _In_ ID3D12Resource *pResource, | ||
| 7821 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 7822 | |||
| 7823 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 7824 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 7825 | ID3D12GraphicsCommandList1 * This, | ||
| 7826 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 7827 | _In_ D3D12_QUERY_TYPE Type, | ||
| 7828 | _In_ UINT Index); | ||
| 7829 | |||
| 7830 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 7831 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 7832 | ID3D12GraphicsCommandList1 * This, | ||
| 7833 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 7834 | _In_ D3D12_QUERY_TYPE Type, | ||
| 7835 | _In_ UINT Index); | ||
| 7836 | |||
| 7837 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 7838 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 7839 | ID3D12GraphicsCommandList1 * This, | ||
| 7840 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 7841 | _In_ D3D12_QUERY_TYPE Type, | ||
| 7842 | _In_ UINT StartIndex, | ||
| 7843 | _In_ UINT NumQueries, | ||
| 7844 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 7845 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 7846 | |||
| 7847 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 7848 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 7849 | ID3D12GraphicsCommandList1 * This, | ||
| 7850 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 7851 | _In_ UINT64 AlignedBufferOffset, | ||
| 7852 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 7853 | |||
| 7854 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 7855 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 7856 | ID3D12GraphicsCommandList1 * This, | ||
| 7857 | UINT Metadata, | ||
| 7858 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 7859 | UINT Size); | ||
| 7860 | |||
| 7861 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 7862 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 7863 | ID3D12GraphicsCommandList1 * This, | ||
| 7864 | UINT Metadata, | ||
| 7865 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 7866 | UINT Size); | ||
| 7867 | |||
| 7868 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 7869 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 7870 | ID3D12GraphicsCommandList1 * This); | ||
| 7871 | |||
| 7872 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 7873 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 7874 | ID3D12GraphicsCommandList1 * This, | ||
| 7875 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 7876 | _In_ UINT MaxCommandCount, | ||
| 7877 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 7878 | _In_ UINT64 ArgumentBufferOffset, | ||
| 7879 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 7880 | _In_ UINT64 CountBufferOffset); | ||
| 7881 | |||
| 7882 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 7883 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 7884 | ID3D12GraphicsCommandList1 * This, | ||
| 7885 | _In_ ID3D12Resource *pDstBuffer, | ||
| 7886 | UINT64 DstOffset, | ||
| 7887 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 7888 | UINT64 SrcOffset, | ||
| 7889 | UINT Dependencies, | ||
| 7890 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 7891 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 7892 | |||
| 7893 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 7894 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 7895 | ID3D12GraphicsCommandList1 * This, | ||
| 7896 | _In_ ID3D12Resource *pDstBuffer, | ||
| 7897 | UINT64 DstOffset, | ||
| 7898 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 7899 | UINT64 SrcOffset, | ||
| 7900 | UINT Dependencies, | ||
| 7901 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 7902 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 7903 | |||
| 7904 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 7905 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 7906 | ID3D12GraphicsCommandList1 * This, | ||
| 7907 | _In_ FLOAT Min, | ||
| 7908 | _In_ FLOAT Max); | ||
| 7909 | |||
| 7910 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 7911 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 7912 | ID3D12GraphicsCommandList1 * This, | ||
| 7913 | _In_ UINT NumSamplesPerPixel, | ||
| 7914 | _In_ UINT NumPixels, | ||
| 7915 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 7916 | |||
| 7917 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 7918 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 7919 | ID3D12GraphicsCommandList1 * This, | ||
| 7920 | _In_ ID3D12Resource *pDstResource, | ||
| 7921 | _In_ UINT DstSubresource, | ||
| 7922 | _In_ UINT DstX, | ||
| 7923 | _In_ UINT DstY, | ||
| 7924 | _In_ ID3D12Resource *pSrcResource, | ||
| 7925 | _In_ UINT SrcSubresource, | ||
| 7926 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 7927 | _In_ DXGI_FORMAT Format, | ||
| 7928 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 7929 | |||
| 7930 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 7931 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 7932 | ID3D12GraphicsCommandList1 * This, | ||
| 7933 | _In_ UINT Mask); | ||
| 7934 | |||
| 7935 | END_INTERFACE | ||
| 7936 | } ID3D12GraphicsCommandList1Vtbl; | ||
| 7937 | |||
| 7938 | interface ID3D12GraphicsCommandList1 | ||
| 7939 | { | ||
| 7940 | CONST_VTBL struct ID3D12GraphicsCommandList1Vtbl *lpVtbl; | ||
| 7941 | }; | ||
| 7942 | |||
| 7943 | |||
| 7944 | |||
| 7945 | #ifdef COBJMACROS | ||
| 7946 | |||
| 7947 | |||
| 7948 | #define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) \ | ||
| 7949 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 7950 | |||
| 7951 | #define ID3D12GraphicsCommandList1_AddRef(This) \ | ||
| 7952 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 7953 | |||
| 7954 | #define ID3D12GraphicsCommandList1_Release(This) \ | ||
| 7955 | ( (This)->lpVtbl -> Release(This) ) | ||
| 7956 | |||
| 7957 | |||
| 7958 | #define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 7959 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 7960 | |||
| 7961 | #define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 7962 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 7963 | |||
| 7964 | #define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 7965 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 7966 | |||
| 7967 | #define ID3D12GraphicsCommandList1_SetName(This,Name) \ | ||
| 7968 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 7969 | |||
| 7970 | |||
| 7971 | #define ID3D12GraphicsCommandList1_GetDevice(This,riid,ppvDevice) \ | ||
| 7972 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 7973 | |||
| 7974 | |||
| 7975 | #define ID3D12GraphicsCommandList1_GetType(This) \ | ||
| 7976 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 7977 | |||
| 7978 | |||
| 7979 | #define ID3D12GraphicsCommandList1_Close(This) \ | ||
| 7980 | ( (This)->lpVtbl -> Close(This) ) | ||
| 7981 | |||
| 7982 | #define ID3D12GraphicsCommandList1_Reset(This,pAllocator,pInitialState) \ | ||
| 7983 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 7984 | |||
| 7985 | #define ID3D12GraphicsCommandList1_ClearState(This,pPipelineState) \ | ||
| 7986 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 7987 | |||
| 7988 | #define ID3D12GraphicsCommandList1_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 7989 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 7990 | |||
| 7991 | #define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 7992 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 7993 | |||
| 7994 | #define ID3D12GraphicsCommandList1_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 7995 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 7996 | |||
| 7997 | #define ID3D12GraphicsCommandList1_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 7998 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 7999 | |||
| 8000 | #define ID3D12GraphicsCommandList1_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 8001 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 8002 | |||
| 8003 | #define ID3D12GraphicsCommandList1_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 8004 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 8005 | |||
| 8006 | #define ID3D12GraphicsCommandList1_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 8007 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 8008 | |||
| 8009 | #define ID3D12GraphicsCommandList1_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 8010 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 8011 | |||
| 8012 | #define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 8013 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 8014 | |||
| 8015 | #define ID3D12GraphicsCommandList1_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 8016 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 8017 | |||
| 8018 | #define ID3D12GraphicsCommandList1_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 8019 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 8020 | |||
| 8021 | #define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,BlendFactor) \ | ||
| 8022 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 8023 | |||
| 8024 | #define ID3D12GraphicsCommandList1_OMSetStencilRef(This,StencilRef) \ | ||
| 8025 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 8026 | |||
| 8027 | #define ID3D12GraphicsCommandList1_SetPipelineState(This,pPipelineState) \ | ||
| 8028 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 8029 | |||
| 8030 | #define ID3D12GraphicsCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 8031 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 8032 | |||
| 8033 | #define ID3D12GraphicsCommandList1_ExecuteBundle(This,pCommandList) \ | ||
| 8034 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 8035 | |||
| 8036 | #define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 8037 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 8038 | |||
| 8039 | #define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,pRootSignature) \ | ||
| 8040 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 8041 | |||
| 8042 | #define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 8043 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 8044 | |||
| 8045 | #define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 8046 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 8047 | |||
| 8048 | #define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 8049 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 8050 | |||
| 8051 | #define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 8052 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 8053 | |||
| 8054 | #define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 8055 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 8056 | |||
| 8057 | #define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 8058 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 8059 | |||
| 8060 | #define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 8061 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 8062 | |||
| 8063 | #define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 8064 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 8065 | |||
| 8066 | #define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 8067 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 8068 | |||
| 8069 | #define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 8070 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 8071 | |||
| 8072 | #define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 8073 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 8074 | |||
| 8075 | #define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 8076 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 8077 | |||
| 8078 | #define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 8079 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 8080 | |||
| 8081 | #define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,pView) \ | ||
| 8082 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 8083 | |||
| 8084 | #define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 8085 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 8086 | |||
| 8087 | #define ID3D12GraphicsCommandList1_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 8088 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 8089 | |||
| 8090 | #define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 8091 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 8092 | |||
| 8093 | #define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 8094 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 8095 | |||
| 8096 | #define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 8097 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 8098 | |||
| 8099 | #define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 8100 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 8101 | |||
| 8102 | #define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 8103 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 8104 | |||
| 8105 | #define ID3D12GraphicsCommandList1_DiscardResource(This,pResource,pRegion) \ | ||
| 8106 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 8107 | |||
| 8108 | #define ID3D12GraphicsCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 8109 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 8110 | |||
| 8111 | #define ID3D12GraphicsCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 8112 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 8113 | |||
| 8114 | #define ID3D12GraphicsCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 8115 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 8116 | |||
| 8117 | #define ID3D12GraphicsCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 8118 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 8119 | |||
| 8120 | #define ID3D12GraphicsCommandList1_SetMarker(This,Metadata,pData,Size) \ | ||
| 8121 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 8122 | |||
| 8123 | #define ID3D12GraphicsCommandList1_BeginEvent(This,Metadata,pData,Size) \ | ||
| 8124 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 8125 | |||
| 8126 | #define ID3D12GraphicsCommandList1_EndEvent(This) \ | ||
| 8127 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 8128 | |||
| 8129 | #define ID3D12GraphicsCommandList1_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 8130 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 8131 | |||
| 8132 | |||
| 8133 | #define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 8134 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 8135 | |||
| 8136 | #define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 8137 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 8138 | |||
| 8139 | #define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,Min,Max) \ | ||
| 8140 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 8141 | |||
| 8142 | #define ID3D12GraphicsCommandList1_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 8143 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 8144 | |||
| 8145 | #define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 8146 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 8147 | |||
| 8148 | #define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,Mask) \ | ||
| 8149 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 8150 | |||
| 8151 | #endif /* COBJMACROS */ | ||
| 8152 | |||
| 8153 | |||
| 8154 | #endif /* C style interface */ | ||
| 8155 | |||
| 8156 | |||
| 8157 | |||
| 8158 | |||
| 8159 | #endif /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */ | ||
| 8160 | |||
| 8161 | |||
| 8162 | /* interface __MIDL_itf_d3d12_0000_0019 */ | ||
| 8163 | /* [local] */ | ||
| 8164 | |||
| 8165 | typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER | ||
| 8166 | { | ||
| 8167 | D3D12_GPU_VIRTUAL_ADDRESS Dest; | ||
| 8168 | UINT32 Value; | ||
| 8169 | } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER; | ||
| 8170 | |||
| 8171 | typedef | ||
| 8172 | enum D3D12_WRITEBUFFERIMMEDIATE_MODE | ||
| 8173 | { | ||
| 8174 | D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0, | ||
| 8175 | D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1, | ||
| 8176 | D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2 | ||
| 8177 | } D3D12_WRITEBUFFERIMMEDIATE_MODE; | ||
| 8178 | |||
| 8179 | |||
| 8180 | |||
| 8181 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_c_ifspec; | ||
| 8182 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0019_v0_0_s_ifspec; | ||
| 8183 | |||
| 8184 | #ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ | ||
| 8185 | #define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ | ||
| 8186 | |||
| 8187 | /* interface ID3D12GraphicsCommandList2 */ | ||
| 8188 | /* [unique][local][object][uuid] */ | ||
| 8189 | |||
| 8190 | |||
| 8191 | EXTERN_C const IID IID_ID3D12GraphicsCommandList2; | ||
| 8192 | |||
| 8193 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 8194 | |||
| 8195 | MIDL_INTERFACE("38C3E585-FF17-412C-9150-4FC6F9D72A28") | ||
| 8196 | ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1 | ||
| 8197 | { | ||
| 8198 | public: | ||
| 8199 | virtual void STDMETHODCALLTYPE WriteBufferImmediate( | ||
| 8200 | UINT Count, | ||
| 8201 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 8202 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; | ||
| 8203 | |||
| 8204 | }; | ||
| 8205 | |||
| 8206 | |||
| 8207 | #else /* C style interface */ | ||
| 8208 | |||
| 8209 | typedef struct ID3D12GraphicsCommandList2Vtbl | ||
| 8210 | { | ||
| 8211 | BEGIN_INTERFACE | ||
| 8212 | |||
| 8213 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 8214 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 8215 | ID3D12GraphicsCommandList2 * This, | ||
| 8216 | REFIID riid, | ||
| 8217 | _COM_Outptr_ void **ppvObject); | ||
| 8218 | |||
| 8219 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 8220 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 8221 | ID3D12GraphicsCommandList2 * This); | ||
| 8222 | |||
| 8223 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 8224 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 8225 | ID3D12GraphicsCommandList2 * This); | ||
| 8226 | |||
| 8227 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 8228 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 8229 | ID3D12GraphicsCommandList2 * This, | ||
| 8230 | _In_ REFGUID guid, | ||
| 8231 | _Inout_ UINT *pDataSize, | ||
| 8232 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 8233 | |||
| 8234 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 8235 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 8236 | ID3D12GraphicsCommandList2 * This, | ||
| 8237 | _In_ REFGUID guid, | ||
| 8238 | _In_ UINT DataSize, | ||
| 8239 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 8240 | |||
| 8241 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 8242 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 8243 | ID3D12GraphicsCommandList2 * This, | ||
| 8244 | _In_ REFGUID guid, | ||
| 8245 | _In_opt_ const IUnknown *pData); | ||
| 8246 | |||
| 8247 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 8248 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 8249 | ID3D12GraphicsCommandList2 * This, | ||
| 8250 | _In_z_ LPCWSTR Name); | ||
| 8251 | |||
| 8252 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 8253 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 8254 | ID3D12GraphicsCommandList2 * This, | ||
| 8255 | REFIID riid, | ||
| 8256 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 8257 | |||
| 8258 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 8259 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 8260 | ID3D12GraphicsCommandList2 * This); | ||
| 8261 | |||
| 8262 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 8263 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 8264 | ID3D12GraphicsCommandList2 * This); | ||
| 8265 | |||
| 8266 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 8267 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 8268 | ID3D12GraphicsCommandList2 * This, | ||
| 8269 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 8270 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 8271 | |||
| 8272 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 8273 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 8274 | ID3D12GraphicsCommandList2 * This, | ||
| 8275 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 8276 | |||
| 8277 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 8278 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 8279 | ID3D12GraphicsCommandList2 * This, | ||
| 8280 | _In_ UINT VertexCountPerInstance, | ||
| 8281 | _In_ UINT InstanceCount, | ||
| 8282 | _In_ UINT StartVertexLocation, | ||
| 8283 | _In_ UINT StartInstanceLocation); | ||
| 8284 | |||
| 8285 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 8286 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 8287 | ID3D12GraphicsCommandList2 * This, | ||
| 8288 | _In_ UINT IndexCountPerInstance, | ||
| 8289 | _In_ UINT InstanceCount, | ||
| 8290 | _In_ UINT StartIndexLocation, | ||
| 8291 | _In_ INT BaseVertexLocation, | ||
| 8292 | _In_ UINT StartInstanceLocation); | ||
| 8293 | |||
| 8294 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 8295 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 8296 | ID3D12GraphicsCommandList2 * This, | ||
| 8297 | _In_ UINT ThreadGroupCountX, | ||
| 8298 | _In_ UINT ThreadGroupCountY, | ||
| 8299 | _In_ UINT ThreadGroupCountZ); | ||
| 8300 | |||
| 8301 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 8302 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 8303 | ID3D12GraphicsCommandList2 * This, | ||
| 8304 | _In_ ID3D12Resource *pDstBuffer, | ||
| 8305 | UINT64 DstOffset, | ||
| 8306 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 8307 | UINT64 SrcOffset, | ||
| 8308 | UINT64 NumBytes); | ||
| 8309 | |||
| 8310 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 8311 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 8312 | ID3D12GraphicsCommandList2 * This, | ||
| 8313 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 8314 | UINT DstX, | ||
| 8315 | UINT DstY, | ||
| 8316 | UINT DstZ, | ||
| 8317 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 8318 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 8319 | |||
| 8320 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 8321 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 8322 | ID3D12GraphicsCommandList2 * This, | ||
| 8323 | _In_ ID3D12Resource *pDstResource, | ||
| 8324 | _In_ ID3D12Resource *pSrcResource); | ||
| 8325 | |||
| 8326 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 8327 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 8328 | ID3D12GraphicsCommandList2 * This, | ||
| 8329 | _In_ ID3D12Resource *pTiledResource, | ||
| 8330 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 8331 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 8332 | _In_ ID3D12Resource *pBuffer, | ||
| 8333 | UINT64 BufferStartOffsetInBytes, | ||
| 8334 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 8335 | |||
| 8336 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 8337 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 8338 | ID3D12GraphicsCommandList2 * This, | ||
| 8339 | _In_ ID3D12Resource *pDstResource, | ||
| 8340 | _In_ UINT DstSubresource, | ||
| 8341 | _In_ ID3D12Resource *pSrcResource, | ||
| 8342 | _In_ UINT SrcSubresource, | ||
| 8343 | _In_ DXGI_FORMAT Format); | ||
| 8344 | |||
| 8345 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 8346 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 8347 | ID3D12GraphicsCommandList2 * This, | ||
| 8348 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 8349 | |||
| 8350 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 8351 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 8352 | ID3D12GraphicsCommandList2 * This, | ||
| 8353 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 8354 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 8355 | |||
| 8356 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 8357 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 8358 | ID3D12GraphicsCommandList2 * This, | ||
| 8359 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 8360 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 8361 | |||
| 8362 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 8363 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 8364 | ID3D12GraphicsCommandList2 * This, | ||
| 8365 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 8366 | |||
| 8367 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 8368 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 8369 | ID3D12GraphicsCommandList2 * This, | ||
| 8370 | _In_ UINT StencilRef); | ||
| 8371 | |||
| 8372 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 8373 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 8374 | ID3D12GraphicsCommandList2 * This, | ||
| 8375 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 8376 | |||
| 8377 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 8378 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 8379 | ID3D12GraphicsCommandList2 * This, | ||
| 8380 | _In_ UINT NumBarriers, | ||
| 8381 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 8382 | |||
| 8383 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 8384 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 8385 | ID3D12GraphicsCommandList2 * This, | ||
| 8386 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 8387 | |||
| 8388 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 8389 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 8390 | ID3D12GraphicsCommandList2 * This, | ||
| 8391 | _In_ UINT NumDescriptorHeaps, | ||
| 8392 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 8393 | |||
| 8394 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 8395 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 8396 | ID3D12GraphicsCommandList2 * This, | ||
| 8397 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 8398 | |||
| 8399 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 8400 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 8401 | ID3D12GraphicsCommandList2 * This, | ||
| 8402 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 8403 | |||
| 8404 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 8405 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 8406 | ID3D12GraphicsCommandList2 * This, | ||
| 8407 | _In_ UINT RootParameterIndex, | ||
| 8408 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 8409 | |||
| 8410 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 8411 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 8412 | ID3D12GraphicsCommandList2 * This, | ||
| 8413 | _In_ UINT RootParameterIndex, | ||
| 8414 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 8415 | |||
| 8416 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 8417 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 8418 | ID3D12GraphicsCommandList2 * This, | ||
| 8419 | _In_ UINT RootParameterIndex, | ||
| 8420 | _In_ UINT SrcData, | ||
| 8421 | _In_ UINT DestOffsetIn32BitValues); | ||
| 8422 | |||
| 8423 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 8424 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 8425 | ID3D12GraphicsCommandList2 * This, | ||
| 8426 | _In_ UINT RootParameterIndex, | ||
| 8427 | _In_ UINT SrcData, | ||
| 8428 | _In_ UINT DestOffsetIn32BitValues); | ||
| 8429 | |||
| 8430 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 8431 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 8432 | ID3D12GraphicsCommandList2 * This, | ||
| 8433 | _In_ UINT RootParameterIndex, | ||
| 8434 | _In_ UINT Num32BitValuesToSet, | ||
| 8435 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 8436 | _In_ UINT DestOffsetIn32BitValues); | ||
| 8437 | |||
| 8438 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 8439 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 8440 | ID3D12GraphicsCommandList2 * This, | ||
| 8441 | _In_ UINT RootParameterIndex, | ||
| 8442 | _In_ UINT Num32BitValuesToSet, | ||
| 8443 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 8444 | _In_ UINT DestOffsetIn32BitValues); | ||
| 8445 | |||
| 8446 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 8447 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 8448 | ID3D12GraphicsCommandList2 * This, | ||
| 8449 | _In_ UINT RootParameterIndex, | ||
| 8450 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 8451 | |||
| 8452 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 8453 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 8454 | ID3D12GraphicsCommandList2 * This, | ||
| 8455 | _In_ UINT RootParameterIndex, | ||
| 8456 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 8457 | |||
| 8458 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 8459 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 8460 | ID3D12GraphicsCommandList2 * This, | ||
| 8461 | _In_ UINT RootParameterIndex, | ||
| 8462 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 8463 | |||
| 8464 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 8465 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 8466 | ID3D12GraphicsCommandList2 * This, | ||
| 8467 | _In_ UINT RootParameterIndex, | ||
| 8468 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 8469 | |||
| 8470 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 8471 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 8472 | ID3D12GraphicsCommandList2 * This, | ||
| 8473 | _In_ UINT RootParameterIndex, | ||
| 8474 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 8475 | |||
| 8476 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 8477 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 8478 | ID3D12GraphicsCommandList2 * This, | ||
| 8479 | _In_ UINT RootParameterIndex, | ||
| 8480 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 8481 | |||
| 8482 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 8483 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 8484 | ID3D12GraphicsCommandList2 * This, | ||
| 8485 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 8486 | |||
| 8487 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 8488 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 8489 | ID3D12GraphicsCommandList2 * This, | ||
| 8490 | _In_ UINT StartSlot, | ||
| 8491 | _In_ UINT NumViews, | ||
| 8492 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 8493 | |||
| 8494 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 8495 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 8496 | ID3D12GraphicsCommandList2 * This, | ||
| 8497 | _In_ UINT StartSlot, | ||
| 8498 | _In_ UINT NumViews, | ||
| 8499 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 8500 | |||
| 8501 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 8502 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 8503 | ID3D12GraphicsCommandList2 * This, | ||
| 8504 | _In_ UINT NumRenderTargetDescriptors, | ||
| 8505 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 8506 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 8507 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 8508 | |||
| 8509 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 8510 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 8511 | ID3D12GraphicsCommandList2 * This, | ||
| 8512 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 8513 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 8514 | _In_ FLOAT Depth, | ||
| 8515 | _In_ UINT8 Stencil, | ||
| 8516 | _In_ UINT NumRects, | ||
| 8517 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 8518 | |||
| 8519 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 8520 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 8521 | ID3D12GraphicsCommandList2 * This, | ||
| 8522 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 8523 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 8524 | _In_ UINT NumRects, | ||
| 8525 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 8526 | |||
| 8527 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 8528 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 8529 | ID3D12GraphicsCommandList2 * This, | ||
| 8530 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 8531 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 8532 | _In_ ID3D12Resource *pResource, | ||
| 8533 | _In_ const UINT Values[ 4 ], | ||
| 8534 | _In_ UINT NumRects, | ||
| 8535 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 8536 | |||
| 8537 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 8538 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 8539 | ID3D12GraphicsCommandList2 * This, | ||
| 8540 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 8541 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 8542 | _In_ ID3D12Resource *pResource, | ||
| 8543 | _In_ const FLOAT Values[ 4 ], | ||
| 8544 | _In_ UINT NumRects, | ||
| 8545 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 8546 | |||
| 8547 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 8548 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 8549 | ID3D12GraphicsCommandList2 * This, | ||
| 8550 | _In_ ID3D12Resource *pResource, | ||
| 8551 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 8552 | |||
| 8553 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 8554 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 8555 | ID3D12GraphicsCommandList2 * This, | ||
| 8556 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 8557 | _In_ D3D12_QUERY_TYPE Type, | ||
| 8558 | _In_ UINT Index); | ||
| 8559 | |||
| 8560 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 8561 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 8562 | ID3D12GraphicsCommandList2 * This, | ||
| 8563 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 8564 | _In_ D3D12_QUERY_TYPE Type, | ||
| 8565 | _In_ UINT Index); | ||
| 8566 | |||
| 8567 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 8568 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 8569 | ID3D12GraphicsCommandList2 * This, | ||
| 8570 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 8571 | _In_ D3D12_QUERY_TYPE Type, | ||
| 8572 | _In_ UINT StartIndex, | ||
| 8573 | _In_ UINT NumQueries, | ||
| 8574 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 8575 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 8576 | |||
| 8577 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 8578 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 8579 | ID3D12GraphicsCommandList2 * This, | ||
| 8580 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 8581 | _In_ UINT64 AlignedBufferOffset, | ||
| 8582 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 8583 | |||
| 8584 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 8585 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 8586 | ID3D12GraphicsCommandList2 * This, | ||
| 8587 | UINT Metadata, | ||
| 8588 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 8589 | UINT Size); | ||
| 8590 | |||
| 8591 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 8592 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 8593 | ID3D12GraphicsCommandList2 * This, | ||
| 8594 | UINT Metadata, | ||
| 8595 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 8596 | UINT Size); | ||
| 8597 | |||
| 8598 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 8599 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 8600 | ID3D12GraphicsCommandList2 * This); | ||
| 8601 | |||
| 8602 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 8603 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 8604 | ID3D12GraphicsCommandList2 * This, | ||
| 8605 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 8606 | _In_ UINT MaxCommandCount, | ||
| 8607 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 8608 | _In_ UINT64 ArgumentBufferOffset, | ||
| 8609 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 8610 | _In_ UINT64 CountBufferOffset); | ||
| 8611 | |||
| 8612 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 8613 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 8614 | ID3D12GraphicsCommandList2 * This, | ||
| 8615 | _In_ ID3D12Resource *pDstBuffer, | ||
| 8616 | UINT64 DstOffset, | ||
| 8617 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 8618 | UINT64 SrcOffset, | ||
| 8619 | UINT Dependencies, | ||
| 8620 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 8621 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 8622 | |||
| 8623 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 8624 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 8625 | ID3D12GraphicsCommandList2 * This, | ||
| 8626 | _In_ ID3D12Resource *pDstBuffer, | ||
| 8627 | UINT64 DstOffset, | ||
| 8628 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 8629 | UINT64 SrcOffset, | ||
| 8630 | UINT Dependencies, | ||
| 8631 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 8632 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 8633 | |||
| 8634 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 8635 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 8636 | ID3D12GraphicsCommandList2 * This, | ||
| 8637 | _In_ FLOAT Min, | ||
| 8638 | _In_ FLOAT Max); | ||
| 8639 | |||
| 8640 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 8641 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 8642 | ID3D12GraphicsCommandList2 * This, | ||
| 8643 | _In_ UINT NumSamplesPerPixel, | ||
| 8644 | _In_ UINT NumPixels, | ||
| 8645 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 8646 | |||
| 8647 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 8648 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 8649 | ID3D12GraphicsCommandList2 * This, | ||
| 8650 | _In_ ID3D12Resource *pDstResource, | ||
| 8651 | _In_ UINT DstSubresource, | ||
| 8652 | _In_ UINT DstX, | ||
| 8653 | _In_ UINT DstY, | ||
| 8654 | _In_ ID3D12Resource *pSrcResource, | ||
| 8655 | _In_ UINT SrcSubresource, | ||
| 8656 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 8657 | _In_ DXGI_FORMAT Format, | ||
| 8658 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 8659 | |||
| 8660 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 8661 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 8662 | ID3D12GraphicsCommandList2 * This, | ||
| 8663 | _In_ UINT Mask); | ||
| 8664 | |||
| 8665 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) | ||
| 8666 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 8667 | ID3D12GraphicsCommandList2 * This, | ||
| 8668 | UINT Count, | ||
| 8669 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 8670 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 8671 | |||
| 8672 | END_INTERFACE | ||
| 8673 | } ID3D12GraphicsCommandList2Vtbl; | ||
| 8674 | |||
| 8675 | interface ID3D12GraphicsCommandList2 | ||
| 8676 | { | ||
| 8677 | CONST_VTBL struct ID3D12GraphicsCommandList2Vtbl *lpVtbl; | ||
| 8678 | }; | ||
| 8679 | |||
| 8680 | |||
| 8681 | |||
| 8682 | #ifdef COBJMACROS | ||
| 8683 | |||
| 8684 | |||
| 8685 | #define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) \ | ||
| 8686 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 8687 | |||
| 8688 | #define ID3D12GraphicsCommandList2_AddRef(This) \ | ||
| 8689 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 8690 | |||
| 8691 | #define ID3D12GraphicsCommandList2_Release(This) \ | ||
| 8692 | ( (This)->lpVtbl -> Release(This) ) | ||
| 8693 | |||
| 8694 | |||
| 8695 | #define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 8696 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 8697 | |||
| 8698 | #define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 8699 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 8700 | |||
| 8701 | #define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,pData) \ | ||
| 8702 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 8703 | |||
| 8704 | #define ID3D12GraphicsCommandList2_SetName(This,Name) \ | ||
| 8705 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 8706 | |||
| 8707 | |||
| 8708 | #define ID3D12GraphicsCommandList2_GetDevice(This,riid,ppvDevice) \ | ||
| 8709 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 8710 | |||
| 8711 | |||
| 8712 | #define ID3D12GraphicsCommandList2_GetType(This) \ | ||
| 8713 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 8714 | |||
| 8715 | |||
| 8716 | #define ID3D12GraphicsCommandList2_Close(This) \ | ||
| 8717 | ( (This)->lpVtbl -> Close(This) ) | ||
| 8718 | |||
| 8719 | #define ID3D12GraphicsCommandList2_Reset(This,pAllocator,pInitialState) \ | ||
| 8720 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 8721 | |||
| 8722 | #define ID3D12GraphicsCommandList2_ClearState(This,pPipelineState) \ | ||
| 8723 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 8724 | |||
| 8725 | #define ID3D12GraphicsCommandList2_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 8726 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 8727 | |||
| 8728 | #define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 8729 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 8730 | |||
| 8731 | #define ID3D12GraphicsCommandList2_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 8732 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 8733 | |||
| 8734 | #define ID3D12GraphicsCommandList2_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 8735 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 8736 | |||
| 8737 | #define ID3D12GraphicsCommandList2_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 8738 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 8739 | |||
| 8740 | #define ID3D12GraphicsCommandList2_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 8741 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 8742 | |||
| 8743 | #define ID3D12GraphicsCommandList2_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 8744 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 8745 | |||
| 8746 | #define ID3D12GraphicsCommandList2_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 8747 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 8748 | |||
| 8749 | #define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 8750 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 8751 | |||
| 8752 | #define ID3D12GraphicsCommandList2_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 8753 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 8754 | |||
| 8755 | #define ID3D12GraphicsCommandList2_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 8756 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 8757 | |||
| 8758 | #define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,BlendFactor) \ | ||
| 8759 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 8760 | |||
| 8761 | #define ID3D12GraphicsCommandList2_OMSetStencilRef(This,StencilRef) \ | ||
| 8762 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 8763 | |||
| 8764 | #define ID3D12GraphicsCommandList2_SetPipelineState(This,pPipelineState) \ | ||
| 8765 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 8766 | |||
| 8767 | #define ID3D12GraphicsCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 8768 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 8769 | |||
| 8770 | #define ID3D12GraphicsCommandList2_ExecuteBundle(This,pCommandList) \ | ||
| 8771 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 8772 | |||
| 8773 | #define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 8774 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 8775 | |||
| 8776 | #define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,pRootSignature) \ | ||
| 8777 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 8778 | |||
| 8779 | #define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 8780 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 8781 | |||
| 8782 | #define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 8783 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 8784 | |||
| 8785 | #define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 8786 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 8787 | |||
| 8788 | #define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 8789 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 8790 | |||
| 8791 | #define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 8792 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 8793 | |||
| 8794 | #define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 8795 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 8796 | |||
| 8797 | #define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 8798 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 8799 | |||
| 8800 | #define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 8801 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 8802 | |||
| 8803 | #define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 8804 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 8805 | |||
| 8806 | #define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 8807 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 8808 | |||
| 8809 | #define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 8810 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 8811 | |||
| 8812 | #define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 8813 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 8814 | |||
| 8815 | #define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 8816 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 8817 | |||
| 8818 | #define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,pView) \ | ||
| 8819 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 8820 | |||
| 8821 | #define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 8822 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 8823 | |||
| 8824 | #define ID3D12GraphicsCommandList2_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 8825 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 8826 | |||
| 8827 | #define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 8828 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 8829 | |||
| 8830 | #define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 8831 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 8832 | |||
| 8833 | #define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 8834 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 8835 | |||
| 8836 | #define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 8837 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 8838 | |||
| 8839 | #define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 8840 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 8841 | |||
| 8842 | #define ID3D12GraphicsCommandList2_DiscardResource(This,pResource,pRegion) \ | ||
| 8843 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 8844 | |||
| 8845 | #define ID3D12GraphicsCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 8846 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 8847 | |||
| 8848 | #define ID3D12GraphicsCommandList2_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 8849 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 8850 | |||
| 8851 | #define ID3D12GraphicsCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 8852 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 8853 | |||
| 8854 | #define ID3D12GraphicsCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 8855 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 8856 | |||
| 8857 | #define ID3D12GraphicsCommandList2_SetMarker(This,Metadata,pData,Size) \ | ||
| 8858 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 8859 | |||
| 8860 | #define ID3D12GraphicsCommandList2_BeginEvent(This,Metadata,pData,Size) \ | ||
| 8861 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 8862 | |||
| 8863 | #define ID3D12GraphicsCommandList2_EndEvent(This) \ | ||
| 8864 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 8865 | |||
| 8866 | #define ID3D12GraphicsCommandList2_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 8867 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 8868 | |||
| 8869 | |||
| 8870 | #define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 8871 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 8872 | |||
| 8873 | #define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 8874 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 8875 | |||
| 8876 | #define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,Min,Max) \ | ||
| 8877 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 8878 | |||
| 8879 | #define ID3D12GraphicsCommandList2_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 8880 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 8881 | |||
| 8882 | #define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 8883 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 8884 | |||
| 8885 | #define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,Mask) \ | ||
| 8886 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 8887 | |||
| 8888 | |||
| 8889 | #define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 8890 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 8891 | |||
| 8892 | #endif /* COBJMACROS */ | ||
| 8893 | |||
| 8894 | |||
| 8895 | #endif /* C style interface */ | ||
| 8896 | |||
| 8897 | |||
| 8898 | |||
| 8899 | |||
| 8900 | #endif /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */ | ||
| 8901 | |||
| 8902 | |||
| 8903 | #ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__ | ||
| 8904 | #define __ID3D12CommandQueue_INTERFACE_DEFINED__ | ||
| 8905 | |||
| 8906 | /* interface ID3D12CommandQueue */ | ||
| 8907 | /* [unique][local][object][uuid] */ | ||
| 8908 | |||
| 8909 | |||
| 8910 | EXTERN_C const IID IID_ID3D12CommandQueue; | ||
| 8911 | |||
| 8912 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 8913 | |||
| 8914 | MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed") | ||
| 8915 | ID3D12CommandQueue : public ID3D12Pageable | ||
| 8916 | { | ||
| 8917 | public: | ||
| 8918 | virtual void STDMETHODCALLTYPE UpdateTileMappings( | ||
| 8919 | _In_ ID3D12Resource *pResource, | ||
| 8920 | UINT NumResourceRegions, | ||
| 8921 | _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, | ||
| 8922 | _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, | ||
| 8923 | _In_opt_ ID3D12Heap *pHeap, | ||
| 8924 | UINT NumRanges, | ||
| 8925 | _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, | ||
| 8926 | _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, | ||
| 8927 | _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, | ||
| 8928 | D3D12_TILE_MAPPING_FLAGS Flags) = 0; | ||
| 8929 | |||
| 8930 | virtual void STDMETHODCALLTYPE CopyTileMappings( | ||
| 8931 | _In_ ID3D12Resource *pDstResource, | ||
| 8932 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, | ||
| 8933 | _In_ ID3D12Resource *pSrcResource, | ||
| 8934 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, | ||
| 8935 | _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, | ||
| 8936 | D3D12_TILE_MAPPING_FLAGS Flags) = 0; | ||
| 8937 | |||
| 8938 | virtual void STDMETHODCALLTYPE ExecuteCommandLists( | ||
| 8939 | _In_ UINT NumCommandLists, | ||
| 8940 | _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists) = 0; | ||
| 8941 | |||
| 8942 | virtual void STDMETHODCALLTYPE SetMarker( | ||
| 8943 | UINT Metadata, | ||
| 8944 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 8945 | UINT Size) = 0; | ||
| 8946 | |||
| 8947 | virtual void STDMETHODCALLTYPE BeginEvent( | ||
| 8948 | UINT Metadata, | ||
| 8949 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 8950 | UINT Size) = 0; | ||
| 8951 | |||
| 8952 | virtual void STDMETHODCALLTYPE EndEvent( void) = 0; | ||
| 8953 | |||
| 8954 | virtual HRESULT STDMETHODCALLTYPE Signal( | ||
| 8955 | ID3D12Fence *pFence, | ||
| 8956 | UINT64 Value) = 0; | ||
| 8957 | |||
| 8958 | virtual HRESULT STDMETHODCALLTYPE Wait( | ||
| 8959 | ID3D12Fence *pFence, | ||
| 8960 | UINT64 Value) = 0; | ||
| 8961 | |||
| 8962 | virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency( | ||
| 8963 | _Out_ UINT64 *pFrequency) = 0; | ||
| 8964 | |||
| 8965 | virtual HRESULT STDMETHODCALLTYPE GetClockCalibration( | ||
| 8966 | _Out_ UINT64 *pGpuTimestamp, | ||
| 8967 | _Out_ UINT64 *pCpuTimestamp) = 0; | ||
| 8968 | |||
| 8969 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 8970 | virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 8971 | #else | ||
| 8972 | virtual D3D12_COMMAND_QUEUE_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 8973 | D3D12_COMMAND_QUEUE_DESC * RetVal) = 0; | ||
| 8974 | #endif | ||
| 8975 | |||
| 8976 | }; | ||
| 8977 | |||
| 8978 | |||
| 8979 | #else /* C style interface */ | ||
| 8980 | |||
| 8981 | typedef struct ID3D12CommandQueueVtbl | ||
| 8982 | { | ||
| 8983 | BEGIN_INTERFACE | ||
| 8984 | |||
| 8985 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 8986 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 8987 | ID3D12CommandQueue * This, | ||
| 8988 | REFIID riid, | ||
| 8989 | _COM_Outptr_ void **ppvObject); | ||
| 8990 | |||
| 8991 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 8992 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 8993 | ID3D12CommandQueue * This); | ||
| 8994 | |||
| 8995 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 8996 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 8997 | ID3D12CommandQueue * This); | ||
| 8998 | |||
| 8999 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 9000 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 9001 | ID3D12CommandQueue * This, | ||
| 9002 | _In_ REFGUID guid, | ||
| 9003 | _Inout_ UINT *pDataSize, | ||
| 9004 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 9005 | |||
| 9006 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 9007 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 9008 | ID3D12CommandQueue * This, | ||
| 9009 | _In_ REFGUID guid, | ||
| 9010 | _In_ UINT DataSize, | ||
| 9011 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 9012 | |||
| 9013 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 9014 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 9015 | ID3D12CommandQueue * This, | ||
| 9016 | _In_ REFGUID guid, | ||
| 9017 | _In_opt_ const IUnknown *pData); | ||
| 9018 | |||
| 9019 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 9020 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 9021 | ID3D12CommandQueue * This, | ||
| 9022 | _In_z_ LPCWSTR Name); | ||
| 9023 | |||
| 9024 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 9025 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 9026 | ID3D12CommandQueue * This, | ||
| 9027 | REFIID riid, | ||
| 9028 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 9029 | |||
| 9030 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings) | ||
| 9031 | void ( STDMETHODCALLTYPE *UpdateTileMappings )( | ||
| 9032 | ID3D12CommandQueue * This, | ||
| 9033 | _In_ ID3D12Resource *pResource, | ||
| 9034 | UINT NumResourceRegions, | ||
| 9035 | _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, | ||
| 9036 | _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, | ||
| 9037 | _In_opt_ ID3D12Heap *pHeap, | ||
| 9038 | UINT NumRanges, | ||
| 9039 | _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, | ||
| 9040 | _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, | ||
| 9041 | _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, | ||
| 9042 | D3D12_TILE_MAPPING_FLAGS Flags); | ||
| 9043 | |||
| 9044 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings) | ||
| 9045 | void ( STDMETHODCALLTYPE *CopyTileMappings )( | ||
| 9046 | ID3D12CommandQueue * This, | ||
| 9047 | _In_ ID3D12Resource *pDstResource, | ||
| 9048 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, | ||
| 9049 | _In_ ID3D12Resource *pSrcResource, | ||
| 9050 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, | ||
| 9051 | _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, | ||
| 9052 | D3D12_TILE_MAPPING_FLAGS Flags); | ||
| 9053 | |||
| 9054 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists) | ||
| 9055 | void ( STDMETHODCALLTYPE *ExecuteCommandLists )( | ||
| 9056 | ID3D12CommandQueue * This, | ||
| 9057 | _In_ UINT NumCommandLists, | ||
| 9058 | _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists); | ||
| 9059 | |||
| 9060 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker) | ||
| 9061 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 9062 | ID3D12CommandQueue * This, | ||
| 9063 | UINT Metadata, | ||
| 9064 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 9065 | UINT Size); | ||
| 9066 | |||
| 9067 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent) | ||
| 9068 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 9069 | ID3D12CommandQueue * This, | ||
| 9070 | UINT Metadata, | ||
| 9071 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 9072 | UINT Size); | ||
| 9073 | |||
| 9074 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent) | ||
| 9075 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 9076 | ID3D12CommandQueue * This); | ||
| 9077 | |||
| 9078 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal) | ||
| 9079 | HRESULT ( STDMETHODCALLTYPE *Signal )( | ||
| 9080 | ID3D12CommandQueue * This, | ||
| 9081 | ID3D12Fence *pFence, | ||
| 9082 | UINT64 Value); | ||
| 9083 | |||
| 9084 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait) | ||
| 9085 | HRESULT ( STDMETHODCALLTYPE *Wait )( | ||
| 9086 | ID3D12CommandQueue * This, | ||
| 9087 | ID3D12Fence *pFence, | ||
| 9088 | UINT64 Value); | ||
| 9089 | |||
| 9090 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency) | ||
| 9091 | HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )( | ||
| 9092 | ID3D12CommandQueue * This, | ||
| 9093 | _Out_ UINT64 *pFrequency); | ||
| 9094 | |||
| 9095 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration) | ||
| 9096 | HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )( | ||
| 9097 | ID3D12CommandQueue * This, | ||
| 9098 | _Out_ UINT64 *pGpuTimestamp, | ||
| 9099 | _Out_ UINT64 *pCpuTimestamp); | ||
| 9100 | |||
| 9101 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc) | ||
| 9102 | #if !defined(_WIN32) | ||
| 9103 | D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 9104 | ID3D12CommandQueue * This); | ||
| 9105 | |||
| 9106 | #else | ||
| 9107 | D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 9108 | ID3D12CommandQueue * This, | ||
| 9109 | D3D12_COMMAND_QUEUE_DESC * RetVal); | ||
| 9110 | |||
| 9111 | #endif | ||
| 9112 | |||
| 9113 | END_INTERFACE | ||
| 9114 | } ID3D12CommandQueueVtbl; | ||
| 9115 | |||
| 9116 | interface ID3D12CommandQueue | ||
| 9117 | { | ||
| 9118 | CONST_VTBL struct ID3D12CommandQueueVtbl *lpVtbl; | ||
| 9119 | }; | ||
| 9120 | |||
| 9121 | |||
| 9122 | |||
| 9123 | #ifdef COBJMACROS | ||
| 9124 | |||
| 9125 | |||
| 9126 | #define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) \ | ||
| 9127 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 9128 | |||
| 9129 | #define ID3D12CommandQueue_AddRef(This) \ | ||
| 9130 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 9131 | |||
| 9132 | #define ID3D12CommandQueue_Release(This) \ | ||
| 9133 | ( (This)->lpVtbl -> Release(This) ) | ||
| 9134 | |||
| 9135 | |||
| 9136 | #define ID3D12CommandQueue_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 9137 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 9138 | |||
| 9139 | #define ID3D12CommandQueue_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 9140 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 9141 | |||
| 9142 | #define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,pData) \ | ||
| 9143 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 9144 | |||
| 9145 | #define ID3D12CommandQueue_SetName(This,Name) \ | ||
| 9146 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 9147 | |||
| 9148 | |||
| 9149 | #define ID3D12CommandQueue_GetDevice(This,riid,ppvDevice) \ | ||
| 9150 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 9151 | |||
| 9152 | |||
| 9153 | |||
| 9154 | #define ID3D12CommandQueue_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \ | ||
| 9155 | ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) ) | ||
| 9156 | |||
| 9157 | #define ID3D12CommandQueue_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \ | ||
| 9158 | ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) ) | ||
| 9159 | |||
| 9160 | #define ID3D12CommandQueue_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \ | ||
| 9161 | ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) ) | ||
| 9162 | |||
| 9163 | #define ID3D12CommandQueue_SetMarker(This,Metadata,pData,Size) \ | ||
| 9164 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 9165 | |||
| 9166 | #define ID3D12CommandQueue_BeginEvent(This,Metadata,pData,Size) \ | ||
| 9167 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 9168 | |||
| 9169 | #define ID3D12CommandQueue_EndEvent(This) \ | ||
| 9170 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 9171 | |||
| 9172 | #define ID3D12CommandQueue_Signal(This,pFence,Value) \ | ||
| 9173 | ( (This)->lpVtbl -> Signal(This,pFence,Value) ) | ||
| 9174 | |||
| 9175 | #define ID3D12CommandQueue_Wait(This,pFence,Value) \ | ||
| 9176 | ( (This)->lpVtbl -> Wait(This,pFence,Value) ) | ||
| 9177 | |||
| 9178 | #define ID3D12CommandQueue_GetTimestampFrequency(This,pFrequency) \ | ||
| 9179 | ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) ) | ||
| 9180 | |||
| 9181 | #define ID3D12CommandQueue_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \ | ||
| 9182 | ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) ) | ||
| 9183 | #if !defined(_WIN32) | ||
| 9184 | |||
| 9185 | #define ID3D12CommandQueue_GetDesc(This) \ | ||
| 9186 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 9187 | #else | ||
| 9188 | #define ID3D12CommandQueue_GetDesc(This,RetVal) \ | ||
| 9189 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 9190 | #endif | ||
| 9191 | |||
| 9192 | #endif /* COBJMACROS */ | ||
| 9193 | |||
| 9194 | |||
| 9195 | #endif /* C style interface */ | ||
| 9196 | |||
| 9197 | |||
| 9198 | |||
| 9199 | |||
| 9200 | #endif /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */ | ||
| 9201 | |||
| 9202 | |||
| 9203 | /* interface __MIDL_itf_d3d12_0000_0021 */ | ||
| 9204 | /* [local] */ | ||
| 9205 | |||
| 9206 | typedef struct D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS | ||
| 9207 | { | ||
| 9208 | _Out_ UINT ComputeQueuesPer3DQueue; | ||
| 9209 | } D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS; | ||
| 9210 | |||
| 9211 | typedef | ||
| 9212 | enum D3D12_COMMAND_QUEUE_PROCESS_PRIORITY | ||
| 9213 | { | ||
| 9214 | D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_NORMAL = 0, | ||
| 9215 | D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_HIGH = 1 | ||
| 9216 | } D3D12_COMMAND_QUEUE_PROCESS_PRIORITY; | ||
| 9217 | |||
| 9218 | typedef | ||
| 9219 | enum D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY | ||
| 9220 | { | ||
| 9221 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_IDLE = 0, | ||
| 9222 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_DEFAULT = 1, | ||
| 9223 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_NORMAL_0 = 2, | ||
| 9224 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_0 = 18, | ||
| 9225 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_1 = 19, | ||
| 9226 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_2 = 20, | ||
| 9227 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_3 = 21, | ||
| 9228 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_4 = 22, | ||
| 9229 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_5 = 23, | ||
| 9230 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_6 = 24, | ||
| 9231 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_7 = 25, | ||
| 9232 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_8 = 26, | ||
| 9233 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_9 = 27, | ||
| 9234 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_10 = 28, | ||
| 9235 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_11 = 29, | ||
| 9236 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_12 = 30, | ||
| 9237 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_13 = 31, | ||
| 9238 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_HARD_REALTIME = 32 | ||
| 9239 | } D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY; | ||
| 9240 | |||
| 9241 | |||
| 9242 | |||
| 9243 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_c_ifspec; | ||
| 9244 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0021_v0_0_s_ifspec; | ||
| 9245 | |||
| 9246 | #ifndef __ID3D12CommandQueue1_INTERFACE_DEFINED__ | ||
| 9247 | #define __ID3D12CommandQueue1_INTERFACE_DEFINED__ | ||
| 9248 | |||
| 9249 | /* interface ID3D12CommandQueue1 */ | ||
| 9250 | /* [unique][local][object][uuid] */ | ||
| 9251 | |||
| 9252 | |||
| 9253 | EXTERN_C const IID IID_ID3D12CommandQueue1; | ||
| 9254 | |||
| 9255 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 9256 | |||
| 9257 | MIDL_INTERFACE("3a3c3165-0ee7-4b8e-a0af-6356b4c3bbb9") | ||
| 9258 | ID3D12CommandQueue1 : public ID3D12CommandQueue | ||
| 9259 | { | ||
| 9260 | public: | ||
| 9261 | virtual HRESULT STDMETHODCALLTYPE SetProcessPriority( | ||
| 9262 | D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority) = 0; | ||
| 9263 | |||
| 9264 | virtual HRESULT STDMETHODCALLTYPE GetProcessPriority( | ||
| 9265 | D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue) = 0; | ||
| 9266 | |||
| 9267 | virtual HRESULT STDMETHODCALLTYPE SetGlobalPriority( | ||
| 9268 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority) = 0; | ||
| 9269 | |||
| 9270 | virtual HRESULT STDMETHODCALLTYPE GetGlobalPriority( | ||
| 9271 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue) = 0; | ||
| 9272 | |||
| 9273 | }; | ||
| 9274 | |||
| 9275 | |||
| 9276 | #else /* C style interface */ | ||
| 9277 | |||
| 9278 | typedef struct ID3D12CommandQueue1Vtbl | ||
| 9279 | { | ||
| 9280 | BEGIN_INTERFACE | ||
| 9281 | |||
| 9282 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 9283 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 9284 | ID3D12CommandQueue1 * This, | ||
| 9285 | REFIID riid, | ||
| 9286 | _COM_Outptr_ void **ppvObject); | ||
| 9287 | |||
| 9288 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 9289 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 9290 | ID3D12CommandQueue1 * This); | ||
| 9291 | |||
| 9292 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 9293 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 9294 | ID3D12CommandQueue1 * This); | ||
| 9295 | |||
| 9296 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 9297 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 9298 | ID3D12CommandQueue1 * This, | ||
| 9299 | _In_ REFGUID guid, | ||
| 9300 | _Inout_ UINT *pDataSize, | ||
| 9301 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 9302 | |||
| 9303 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 9304 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 9305 | ID3D12CommandQueue1 * This, | ||
| 9306 | _In_ REFGUID guid, | ||
| 9307 | _In_ UINT DataSize, | ||
| 9308 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 9309 | |||
| 9310 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 9311 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 9312 | ID3D12CommandQueue1 * This, | ||
| 9313 | _In_ REFGUID guid, | ||
| 9314 | _In_opt_ const IUnknown *pData); | ||
| 9315 | |||
| 9316 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 9317 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 9318 | ID3D12CommandQueue1 * This, | ||
| 9319 | _In_z_ LPCWSTR Name); | ||
| 9320 | |||
| 9321 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 9322 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 9323 | ID3D12CommandQueue1 * This, | ||
| 9324 | REFIID riid, | ||
| 9325 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 9326 | |||
| 9327 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, UpdateTileMappings) | ||
| 9328 | void ( STDMETHODCALLTYPE *UpdateTileMappings )( | ||
| 9329 | ID3D12CommandQueue1 * This, | ||
| 9330 | _In_ ID3D12Resource *pResource, | ||
| 9331 | UINT NumResourceRegions, | ||
| 9332 | _In_reads_opt_(NumResourceRegions) const D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, | ||
| 9333 | _In_reads_opt_(NumResourceRegions) const D3D12_TILE_REGION_SIZE *pResourceRegionSizes, | ||
| 9334 | _In_opt_ ID3D12Heap *pHeap, | ||
| 9335 | UINT NumRanges, | ||
| 9336 | _In_reads_opt_(NumRanges) const D3D12_TILE_RANGE_FLAGS *pRangeFlags, | ||
| 9337 | _In_reads_opt_(NumRanges) const UINT *pHeapRangeStartOffsets, | ||
| 9338 | _In_reads_opt_(NumRanges) const UINT *pRangeTileCounts, | ||
| 9339 | D3D12_TILE_MAPPING_FLAGS Flags); | ||
| 9340 | |||
| 9341 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, CopyTileMappings) | ||
| 9342 | void ( STDMETHODCALLTYPE *CopyTileMappings )( | ||
| 9343 | ID3D12CommandQueue1 * This, | ||
| 9344 | _In_ ID3D12Resource *pDstResource, | ||
| 9345 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pDstRegionStartCoordinate, | ||
| 9346 | _In_ ID3D12Resource *pSrcResource, | ||
| 9347 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pSrcRegionStartCoordinate, | ||
| 9348 | _In_ const D3D12_TILE_REGION_SIZE *pRegionSize, | ||
| 9349 | D3D12_TILE_MAPPING_FLAGS Flags); | ||
| 9350 | |||
| 9351 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, ExecuteCommandLists) | ||
| 9352 | void ( STDMETHODCALLTYPE *ExecuteCommandLists )( | ||
| 9353 | ID3D12CommandQueue1 * This, | ||
| 9354 | _In_ UINT NumCommandLists, | ||
| 9355 | _In_reads_(NumCommandLists) ID3D12CommandList *const *ppCommandLists); | ||
| 9356 | |||
| 9357 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, SetMarker) | ||
| 9358 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 9359 | ID3D12CommandQueue1 * This, | ||
| 9360 | UINT Metadata, | ||
| 9361 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 9362 | UINT Size); | ||
| 9363 | |||
| 9364 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, BeginEvent) | ||
| 9365 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 9366 | ID3D12CommandQueue1 * This, | ||
| 9367 | UINT Metadata, | ||
| 9368 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 9369 | UINT Size); | ||
| 9370 | |||
| 9371 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, EndEvent) | ||
| 9372 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 9373 | ID3D12CommandQueue1 * This); | ||
| 9374 | |||
| 9375 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, Signal) | ||
| 9376 | HRESULT ( STDMETHODCALLTYPE *Signal )( | ||
| 9377 | ID3D12CommandQueue1 * This, | ||
| 9378 | ID3D12Fence *pFence, | ||
| 9379 | UINT64 Value); | ||
| 9380 | |||
| 9381 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, Wait) | ||
| 9382 | HRESULT ( STDMETHODCALLTYPE *Wait )( | ||
| 9383 | ID3D12CommandQueue1 * This, | ||
| 9384 | ID3D12Fence *pFence, | ||
| 9385 | UINT64 Value); | ||
| 9386 | |||
| 9387 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetTimestampFrequency) | ||
| 9388 | HRESULT ( STDMETHODCALLTYPE *GetTimestampFrequency )( | ||
| 9389 | ID3D12CommandQueue1 * This, | ||
| 9390 | _Out_ UINT64 *pFrequency); | ||
| 9391 | |||
| 9392 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetClockCalibration) | ||
| 9393 | HRESULT ( STDMETHODCALLTYPE *GetClockCalibration )( | ||
| 9394 | ID3D12CommandQueue1 * This, | ||
| 9395 | _Out_ UINT64 *pGpuTimestamp, | ||
| 9396 | _Out_ UINT64 *pCpuTimestamp); | ||
| 9397 | |||
| 9398 | DECLSPEC_XFGVIRT(ID3D12CommandQueue, GetDesc) | ||
| 9399 | #if !defined(_WIN32) | ||
| 9400 | D3D12_COMMAND_QUEUE_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 9401 | ID3D12CommandQueue1 * This); | ||
| 9402 | |||
| 9403 | #else | ||
| 9404 | D3D12_COMMAND_QUEUE_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 9405 | ID3D12CommandQueue1 * This, | ||
| 9406 | D3D12_COMMAND_QUEUE_DESC * RetVal); | ||
| 9407 | |||
| 9408 | #endif | ||
| 9409 | |||
| 9410 | DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetProcessPriority) | ||
| 9411 | HRESULT ( STDMETHODCALLTYPE *SetProcessPriority )( | ||
| 9412 | ID3D12CommandQueue1 * This, | ||
| 9413 | D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority); | ||
| 9414 | |||
| 9415 | DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetProcessPriority) | ||
| 9416 | HRESULT ( STDMETHODCALLTYPE *GetProcessPriority )( | ||
| 9417 | ID3D12CommandQueue1 * This, | ||
| 9418 | D3D12_COMMAND_QUEUE_PROCESS_PRIORITY *pOutValue); | ||
| 9419 | |||
| 9420 | DECLSPEC_XFGVIRT(ID3D12CommandQueue1, SetGlobalPriority) | ||
| 9421 | HRESULT ( STDMETHODCALLTYPE *SetGlobalPriority )( | ||
| 9422 | ID3D12CommandQueue1 * This, | ||
| 9423 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority); | ||
| 9424 | |||
| 9425 | DECLSPEC_XFGVIRT(ID3D12CommandQueue1, GetGlobalPriority) | ||
| 9426 | HRESULT ( STDMETHODCALLTYPE *GetGlobalPriority )( | ||
| 9427 | ID3D12CommandQueue1 * This, | ||
| 9428 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY *pOutValue); | ||
| 9429 | |||
| 9430 | END_INTERFACE | ||
| 9431 | } ID3D12CommandQueue1Vtbl; | ||
| 9432 | |||
| 9433 | interface ID3D12CommandQueue1 | ||
| 9434 | { | ||
| 9435 | CONST_VTBL struct ID3D12CommandQueue1Vtbl *lpVtbl; | ||
| 9436 | }; | ||
| 9437 | |||
| 9438 | |||
| 9439 | |||
| 9440 | #ifdef COBJMACROS | ||
| 9441 | |||
| 9442 | |||
| 9443 | #define ID3D12CommandQueue1_QueryInterface(This,riid,ppvObject) \ | ||
| 9444 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 9445 | |||
| 9446 | #define ID3D12CommandQueue1_AddRef(This) \ | ||
| 9447 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 9448 | |||
| 9449 | #define ID3D12CommandQueue1_Release(This) \ | ||
| 9450 | ( (This)->lpVtbl -> Release(This) ) | ||
| 9451 | |||
| 9452 | |||
| 9453 | #define ID3D12CommandQueue1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 9454 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 9455 | |||
| 9456 | #define ID3D12CommandQueue1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 9457 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 9458 | |||
| 9459 | #define ID3D12CommandQueue1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 9460 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 9461 | |||
| 9462 | #define ID3D12CommandQueue1_SetName(This,Name) \ | ||
| 9463 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 9464 | |||
| 9465 | |||
| 9466 | #define ID3D12CommandQueue1_GetDevice(This,riid,ppvDevice) \ | ||
| 9467 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 9468 | |||
| 9469 | |||
| 9470 | |||
| 9471 | #define ID3D12CommandQueue1_UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) \ | ||
| 9472 | ( (This)->lpVtbl -> UpdateTileMappings(This,pResource,NumResourceRegions,pResourceRegionStartCoordinates,pResourceRegionSizes,pHeap,NumRanges,pRangeFlags,pHeapRangeStartOffsets,pRangeTileCounts,Flags) ) | ||
| 9473 | |||
| 9474 | #define ID3D12CommandQueue1_CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) \ | ||
| 9475 | ( (This)->lpVtbl -> CopyTileMappings(This,pDstResource,pDstRegionStartCoordinate,pSrcResource,pSrcRegionStartCoordinate,pRegionSize,Flags) ) | ||
| 9476 | |||
| 9477 | #define ID3D12CommandQueue1_ExecuteCommandLists(This,NumCommandLists,ppCommandLists) \ | ||
| 9478 | ( (This)->lpVtbl -> ExecuteCommandLists(This,NumCommandLists,ppCommandLists) ) | ||
| 9479 | |||
| 9480 | #define ID3D12CommandQueue1_SetMarker(This,Metadata,pData,Size) \ | ||
| 9481 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 9482 | |||
| 9483 | #define ID3D12CommandQueue1_BeginEvent(This,Metadata,pData,Size) \ | ||
| 9484 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 9485 | |||
| 9486 | #define ID3D12CommandQueue1_EndEvent(This) \ | ||
| 9487 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 9488 | |||
| 9489 | #define ID3D12CommandQueue1_Signal(This,pFence,Value) \ | ||
| 9490 | ( (This)->lpVtbl -> Signal(This,pFence,Value) ) | ||
| 9491 | |||
| 9492 | #define ID3D12CommandQueue1_Wait(This,pFence,Value) \ | ||
| 9493 | ( (This)->lpVtbl -> Wait(This,pFence,Value) ) | ||
| 9494 | |||
| 9495 | #define ID3D12CommandQueue1_GetTimestampFrequency(This,pFrequency) \ | ||
| 9496 | ( (This)->lpVtbl -> GetTimestampFrequency(This,pFrequency) ) | ||
| 9497 | |||
| 9498 | #define ID3D12CommandQueue1_GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) \ | ||
| 9499 | ( (This)->lpVtbl -> GetClockCalibration(This,pGpuTimestamp,pCpuTimestamp) ) | ||
| 9500 | #if !defined(_WIN32) | ||
| 9501 | |||
| 9502 | #define ID3D12CommandQueue1_GetDesc(This) \ | ||
| 9503 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 9504 | #else | ||
| 9505 | #define ID3D12CommandQueue1_GetDesc(This,RetVal) \ | ||
| 9506 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 9507 | #endif | ||
| 9508 | |||
| 9509 | |||
| 9510 | #define ID3D12CommandQueue1_SetProcessPriority(This,Priority) \ | ||
| 9511 | ( (This)->lpVtbl -> SetProcessPriority(This,Priority) ) | ||
| 9512 | |||
| 9513 | #define ID3D12CommandQueue1_GetProcessPriority(This,pOutValue) \ | ||
| 9514 | ( (This)->lpVtbl -> GetProcessPriority(This,pOutValue) ) | ||
| 9515 | |||
| 9516 | #define ID3D12CommandQueue1_SetGlobalPriority(This,Priority) \ | ||
| 9517 | ( (This)->lpVtbl -> SetGlobalPriority(This,Priority) ) | ||
| 9518 | |||
| 9519 | #define ID3D12CommandQueue1_GetGlobalPriority(This,pOutValue) \ | ||
| 9520 | ( (This)->lpVtbl -> GetGlobalPriority(This,pOutValue) ) | ||
| 9521 | |||
| 9522 | #endif /* COBJMACROS */ | ||
| 9523 | |||
| 9524 | |||
| 9525 | #endif /* C style interface */ | ||
| 9526 | |||
| 9527 | |||
| 9528 | |||
| 9529 | |||
| 9530 | #endif /* __ID3D12CommandQueue1_INTERFACE_DEFINED__ */ | ||
| 9531 | |||
| 9532 | |||
| 9533 | #ifndef __ID3D12Device_INTERFACE_DEFINED__ | ||
| 9534 | #define __ID3D12Device_INTERFACE_DEFINED__ | ||
| 9535 | |||
| 9536 | /* interface ID3D12Device */ | ||
| 9537 | /* [unique][local][object][uuid] */ | ||
| 9538 | |||
| 9539 | |||
| 9540 | EXTERN_C const IID IID_ID3D12Device; | ||
| 9541 | |||
| 9542 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 9543 | |||
| 9544 | MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7") | ||
| 9545 | ID3D12Device : public ID3D12Object | ||
| 9546 | { | ||
| 9547 | public: | ||
| 9548 | virtual UINT STDMETHODCALLTYPE GetNodeCount( void) = 0; | ||
| 9549 | |||
| 9550 | virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue( | ||
| 9551 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 9552 | REFIID riid, | ||
| 9553 | _COM_Outptr_ void **ppCommandQueue) = 0; | ||
| 9554 | |||
| 9555 | virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator( | ||
| 9556 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 9557 | REFIID riid, | ||
| 9558 | _COM_Outptr_ void **ppCommandAllocator) = 0; | ||
| 9559 | |||
| 9560 | virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState( | ||
| 9561 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 9562 | REFIID riid, | ||
| 9563 | _COM_Outptr_ void **ppPipelineState) = 0; | ||
| 9564 | |||
| 9565 | virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState( | ||
| 9566 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 9567 | REFIID riid, | ||
| 9568 | _COM_Outptr_ void **ppPipelineState) = 0; | ||
| 9569 | |||
| 9570 | virtual HRESULT STDMETHODCALLTYPE CreateCommandList( | ||
| 9571 | _In_ UINT nodeMask, | ||
| 9572 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 9573 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 9574 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 9575 | REFIID riid, | ||
| 9576 | _COM_Outptr_ void **ppCommandList) = 0; | ||
| 9577 | |||
| 9578 | virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( | ||
| 9579 | D3D12_FEATURE Feature, | ||
| 9580 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 9581 | UINT FeatureSupportDataSize) = 0; | ||
| 9582 | |||
| 9583 | virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap( | ||
| 9584 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 9585 | REFIID riid, | ||
| 9586 | _COM_Outptr_ void **ppvHeap) = 0; | ||
| 9587 | |||
| 9588 | virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize( | ||
| 9589 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType) = 0; | ||
| 9590 | |||
| 9591 | virtual HRESULT STDMETHODCALLTYPE CreateRootSignature( | ||
| 9592 | _In_ UINT nodeMask, | ||
| 9593 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 9594 | _In_ SIZE_T blobLengthInBytes, | ||
| 9595 | REFIID riid, | ||
| 9596 | _COM_Outptr_ void **ppvRootSignature) = 0; | ||
| 9597 | |||
| 9598 | virtual void STDMETHODCALLTYPE CreateConstantBufferView( | ||
| 9599 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 9600 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; | ||
| 9601 | |||
| 9602 | virtual void STDMETHODCALLTYPE CreateShaderResourceView( | ||
| 9603 | _In_opt_ ID3D12Resource *pResource, | ||
| 9604 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 9605 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; | ||
| 9606 | |||
| 9607 | virtual void STDMETHODCALLTYPE CreateUnorderedAccessView( | ||
| 9608 | _In_opt_ ID3D12Resource *pResource, | ||
| 9609 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 9610 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 9611 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; | ||
| 9612 | |||
| 9613 | virtual void STDMETHODCALLTYPE CreateRenderTargetView( | ||
| 9614 | _In_opt_ ID3D12Resource *pResource, | ||
| 9615 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 9616 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; | ||
| 9617 | |||
| 9618 | virtual void STDMETHODCALLTYPE CreateDepthStencilView( | ||
| 9619 | _In_opt_ ID3D12Resource *pResource, | ||
| 9620 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 9621 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; | ||
| 9622 | |||
| 9623 | virtual void STDMETHODCALLTYPE CreateSampler( | ||
| 9624 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 9625 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; | ||
| 9626 | |||
| 9627 | virtual void STDMETHODCALLTYPE CopyDescriptors( | ||
| 9628 | _In_ UINT NumDestDescriptorRanges, | ||
| 9629 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 9630 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 9631 | _In_ UINT NumSrcDescriptorRanges, | ||
| 9632 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 9633 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 9634 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; | ||
| 9635 | |||
| 9636 | virtual void STDMETHODCALLTYPE CopyDescriptorsSimple( | ||
| 9637 | _In_ UINT NumDescriptors, | ||
| 9638 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 9639 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 9640 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType) = 0; | ||
| 9641 | |||
| 9642 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 9643 | virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo( | ||
| 9644 | _In_ UINT visibleMask, | ||
| 9645 | _In_ UINT numResourceDescs, | ||
| 9646 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0; | ||
| 9647 | #else | ||
| 9648 | virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo( | ||
| 9649 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 9650 | _In_ UINT visibleMask, | ||
| 9651 | _In_ UINT numResourceDescs, | ||
| 9652 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs) = 0; | ||
| 9653 | #endif | ||
| 9654 | |||
| 9655 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 9656 | virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties( | ||
| 9657 | _In_ UINT nodeMask, | ||
| 9658 | D3D12_HEAP_TYPE heapType) = 0; | ||
| 9659 | #else | ||
| 9660 | virtual D3D12_HEAP_PROPERTIES *STDMETHODCALLTYPE GetCustomHeapProperties( | ||
| 9661 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 9662 | _In_ UINT nodeMask, | ||
| 9663 | D3D12_HEAP_TYPE heapType) = 0; | ||
| 9664 | #endif | ||
| 9665 | |||
| 9666 | virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource( | ||
| 9667 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 9668 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 9669 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 9670 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 9671 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 9672 | REFIID riidResource, | ||
| 9673 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 9674 | |||
| 9675 | virtual HRESULT STDMETHODCALLTYPE CreateHeap( | ||
| 9676 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 9677 | REFIID riid, | ||
| 9678 | _COM_Outptr_opt_ void **ppvHeap) = 0; | ||
| 9679 | |||
| 9680 | virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource( | ||
| 9681 | _In_ ID3D12Heap *pHeap, | ||
| 9682 | UINT64 HeapOffset, | ||
| 9683 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 9684 | D3D12_RESOURCE_STATES InitialState, | ||
| 9685 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 9686 | REFIID riid, | ||
| 9687 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 9688 | |||
| 9689 | virtual HRESULT STDMETHODCALLTYPE CreateReservedResource( | ||
| 9690 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 9691 | D3D12_RESOURCE_STATES InitialState, | ||
| 9692 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 9693 | REFIID riid, | ||
| 9694 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 9695 | |||
| 9696 | virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle( | ||
| 9697 | _In_ ID3D12DeviceChild *pObject, | ||
| 9698 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 9699 | DWORD Access, | ||
| 9700 | _In_opt_ LPCWSTR Name, | ||
| 9701 | _Out_ HANDLE *pHandle) = 0; | ||
| 9702 | |||
| 9703 | virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle( | ||
| 9704 | _In_ HANDLE NTHandle, | ||
| 9705 | REFIID riid, | ||
| 9706 | _COM_Outptr_opt_ void **ppvObj) = 0; | ||
| 9707 | |||
| 9708 | virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName( | ||
| 9709 | _In_ LPCWSTR Name, | ||
| 9710 | DWORD Access, | ||
| 9711 | /* [annotation][out] */ | ||
| 9712 | _Out_ HANDLE *pNTHandle) = 0; | ||
| 9713 | |||
| 9714 | virtual HRESULT STDMETHODCALLTYPE MakeResident( | ||
| 9715 | UINT NumObjects, | ||
| 9716 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; | ||
| 9717 | |||
| 9718 | virtual HRESULT STDMETHODCALLTYPE Evict( | ||
| 9719 | UINT NumObjects, | ||
| 9720 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects) = 0; | ||
| 9721 | |||
| 9722 | virtual HRESULT STDMETHODCALLTYPE CreateFence( | ||
| 9723 | UINT64 InitialValue, | ||
| 9724 | D3D12_FENCE_FLAGS Flags, | ||
| 9725 | REFIID riid, | ||
| 9726 | _COM_Outptr_ void **ppFence) = 0; | ||
| 9727 | |||
| 9728 | virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason( void) = 0; | ||
| 9729 | |||
| 9730 | virtual void STDMETHODCALLTYPE GetCopyableFootprints( | ||
| 9731 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 9732 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 9733 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 9734 | UINT64 BaseOffset, | ||
| 9735 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 9736 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 9737 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 9738 | _Out_opt_ UINT64 *pTotalBytes) = 0; | ||
| 9739 | |||
| 9740 | virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap( | ||
| 9741 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 9742 | REFIID riid, | ||
| 9743 | _COM_Outptr_opt_ void **ppvHeap) = 0; | ||
| 9744 | |||
| 9745 | virtual HRESULT STDMETHODCALLTYPE SetStablePowerState( | ||
| 9746 | BOOL Enable) = 0; | ||
| 9747 | |||
| 9748 | virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature( | ||
| 9749 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 9750 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 9751 | REFIID riid, | ||
| 9752 | _COM_Outptr_opt_ void **ppvCommandSignature) = 0; | ||
| 9753 | |||
| 9754 | virtual void STDMETHODCALLTYPE GetResourceTiling( | ||
| 9755 | _In_ ID3D12Resource *pTiledResource, | ||
| 9756 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 9757 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 9758 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 9759 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 9760 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 9761 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips) = 0; | ||
| 9762 | |||
| 9763 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 9764 | virtual LUID STDMETHODCALLTYPE GetAdapterLuid( void) = 0; | ||
| 9765 | #else | ||
| 9766 | virtual LUID *STDMETHODCALLTYPE GetAdapterLuid( | ||
| 9767 | LUID * RetVal) = 0; | ||
| 9768 | #endif | ||
| 9769 | |||
| 9770 | }; | ||
| 9771 | |||
| 9772 | |||
| 9773 | #else /* C style interface */ | ||
| 9774 | |||
| 9775 | typedef struct ID3D12DeviceVtbl | ||
| 9776 | { | ||
| 9777 | BEGIN_INTERFACE | ||
| 9778 | |||
| 9779 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 9780 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 9781 | ID3D12Device * This, | ||
| 9782 | REFIID riid, | ||
| 9783 | _COM_Outptr_ void **ppvObject); | ||
| 9784 | |||
| 9785 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 9786 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 9787 | ID3D12Device * This); | ||
| 9788 | |||
| 9789 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 9790 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 9791 | ID3D12Device * This); | ||
| 9792 | |||
| 9793 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 9794 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 9795 | ID3D12Device * This, | ||
| 9796 | _In_ REFGUID guid, | ||
| 9797 | _Inout_ UINT *pDataSize, | ||
| 9798 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 9799 | |||
| 9800 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 9801 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 9802 | ID3D12Device * This, | ||
| 9803 | _In_ REFGUID guid, | ||
| 9804 | _In_ UINT DataSize, | ||
| 9805 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 9806 | |||
| 9807 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 9808 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 9809 | ID3D12Device * This, | ||
| 9810 | _In_ REFGUID guid, | ||
| 9811 | _In_opt_ const IUnknown *pData); | ||
| 9812 | |||
| 9813 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 9814 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 9815 | ID3D12Device * This, | ||
| 9816 | _In_z_ LPCWSTR Name); | ||
| 9817 | |||
| 9818 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 9819 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 9820 | ID3D12Device * This); | ||
| 9821 | |||
| 9822 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 9823 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 9824 | ID3D12Device * This, | ||
| 9825 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 9826 | REFIID riid, | ||
| 9827 | _COM_Outptr_ void **ppCommandQueue); | ||
| 9828 | |||
| 9829 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 9830 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 9831 | ID3D12Device * This, | ||
| 9832 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 9833 | REFIID riid, | ||
| 9834 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 9835 | |||
| 9836 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 9837 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 9838 | ID3D12Device * This, | ||
| 9839 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 9840 | REFIID riid, | ||
| 9841 | _COM_Outptr_ void **ppPipelineState); | ||
| 9842 | |||
| 9843 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 9844 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 9845 | ID3D12Device * This, | ||
| 9846 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 9847 | REFIID riid, | ||
| 9848 | _COM_Outptr_ void **ppPipelineState); | ||
| 9849 | |||
| 9850 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 9851 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 9852 | ID3D12Device * This, | ||
| 9853 | _In_ UINT nodeMask, | ||
| 9854 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 9855 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 9856 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 9857 | REFIID riid, | ||
| 9858 | _COM_Outptr_ void **ppCommandList); | ||
| 9859 | |||
| 9860 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 9861 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 9862 | ID3D12Device * This, | ||
| 9863 | D3D12_FEATURE Feature, | ||
| 9864 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 9865 | UINT FeatureSupportDataSize); | ||
| 9866 | |||
| 9867 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 9868 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 9869 | ID3D12Device * This, | ||
| 9870 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 9871 | REFIID riid, | ||
| 9872 | _COM_Outptr_ void **ppvHeap); | ||
| 9873 | |||
| 9874 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 9875 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 9876 | ID3D12Device * This, | ||
| 9877 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 9878 | |||
| 9879 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 9880 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 9881 | ID3D12Device * This, | ||
| 9882 | _In_ UINT nodeMask, | ||
| 9883 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 9884 | _In_ SIZE_T blobLengthInBytes, | ||
| 9885 | REFIID riid, | ||
| 9886 | _COM_Outptr_ void **ppvRootSignature); | ||
| 9887 | |||
| 9888 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 9889 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 9890 | ID3D12Device * This, | ||
| 9891 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 9892 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 9893 | |||
| 9894 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 9895 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 9896 | ID3D12Device * This, | ||
| 9897 | _In_opt_ ID3D12Resource *pResource, | ||
| 9898 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 9899 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 9900 | |||
| 9901 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 9902 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 9903 | ID3D12Device * This, | ||
| 9904 | _In_opt_ ID3D12Resource *pResource, | ||
| 9905 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 9906 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 9907 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 9908 | |||
| 9909 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 9910 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 9911 | ID3D12Device * This, | ||
| 9912 | _In_opt_ ID3D12Resource *pResource, | ||
| 9913 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 9914 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 9915 | |||
| 9916 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 9917 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 9918 | ID3D12Device * This, | ||
| 9919 | _In_opt_ ID3D12Resource *pResource, | ||
| 9920 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 9921 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 9922 | |||
| 9923 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 9924 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 9925 | ID3D12Device * This, | ||
| 9926 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 9927 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 9928 | |||
| 9929 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 9930 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 9931 | ID3D12Device * This, | ||
| 9932 | _In_ UINT NumDestDescriptorRanges, | ||
| 9933 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 9934 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 9935 | _In_ UINT NumSrcDescriptorRanges, | ||
| 9936 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 9937 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 9938 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 9939 | |||
| 9940 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 9941 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 9942 | ID3D12Device * This, | ||
| 9943 | _In_ UINT NumDescriptors, | ||
| 9944 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 9945 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 9946 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 9947 | |||
| 9948 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 9949 | #if !defined(_WIN32) | ||
| 9950 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 9951 | ID3D12Device * This, | ||
| 9952 | _In_ UINT visibleMask, | ||
| 9953 | _In_ UINT numResourceDescs, | ||
| 9954 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 9955 | |||
| 9956 | #else | ||
| 9957 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 9958 | ID3D12Device * This, | ||
| 9959 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 9960 | _In_ UINT visibleMask, | ||
| 9961 | _In_ UINT numResourceDescs, | ||
| 9962 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 9963 | |||
| 9964 | #endif | ||
| 9965 | |||
| 9966 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 9967 | #if !defined(_WIN32) | ||
| 9968 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 9969 | ID3D12Device * This, | ||
| 9970 | _In_ UINT nodeMask, | ||
| 9971 | D3D12_HEAP_TYPE heapType); | ||
| 9972 | |||
| 9973 | #else | ||
| 9974 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 9975 | ID3D12Device * This, | ||
| 9976 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 9977 | _In_ UINT nodeMask, | ||
| 9978 | D3D12_HEAP_TYPE heapType); | ||
| 9979 | |||
| 9980 | #endif | ||
| 9981 | |||
| 9982 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 9983 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 9984 | ID3D12Device * This, | ||
| 9985 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 9986 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 9987 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 9988 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 9989 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 9990 | REFIID riidResource, | ||
| 9991 | _COM_Outptr_opt_ void **ppvResource); | ||
| 9992 | |||
| 9993 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 9994 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 9995 | ID3D12Device * This, | ||
| 9996 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 9997 | REFIID riid, | ||
| 9998 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 9999 | |||
| 10000 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 10001 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 10002 | ID3D12Device * This, | ||
| 10003 | _In_ ID3D12Heap *pHeap, | ||
| 10004 | UINT64 HeapOffset, | ||
| 10005 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 10006 | D3D12_RESOURCE_STATES InitialState, | ||
| 10007 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 10008 | REFIID riid, | ||
| 10009 | _COM_Outptr_opt_ void **ppvResource); | ||
| 10010 | |||
| 10011 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 10012 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 10013 | ID3D12Device * This, | ||
| 10014 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 10015 | D3D12_RESOURCE_STATES InitialState, | ||
| 10016 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 10017 | REFIID riid, | ||
| 10018 | _COM_Outptr_opt_ void **ppvResource); | ||
| 10019 | |||
| 10020 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 10021 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 10022 | ID3D12Device * This, | ||
| 10023 | _In_ ID3D12DeviceChild *pObject, | ||
| 10024 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 10025 | DWORD Access, | ||
| 10026 | _In_opt_ LPCWSTR Name, | ||
| 10027 | _Out_ HANDLE *pHandle); | ||
| 10028 | |||
| 10029 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 10030 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 10031 | ID3D12Device * This, | ||
| 10032 | _In_ HANDLE NTHandle, | ||
| 10033 | REFIID riid, | ||
| 10034 | _COM_Outptr_opt_ void **ppvObj); | ||
| 10035 | |||
| 10036 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 10037 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 10038 | ID3D12Device * This, | ||
| 10039 | _In_ LPCWSTR Name, | ||
| 10040 | DWORD Access, | ||
| 10041 | /* [annotation][out] */ | ||
| 10042 | _Out_ HANDLE *pNTHandle); | ||
| 10043 | |||
| 10044 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 10045 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 10046 | ID3D12Device * This, | ||
| 10047 | UINT NumObjects, | ||
| 10048 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 10049 | |||
| 10050 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 10051 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 10052 | ID3D12Device * This, | ||
| 10053 | UINT NumObjects, | ||
| 10054 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 10055 | |||
| 10056 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 10057 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 10058 | ID3D12Device * This, | ||
| 10059 | UINT64 InitialValue, | ||
| 10060 | D3D12_FENCE_FLAGS Flags, | ||
| 10061 | REFIID riid, | ||
| 10062 | _COM_Outptr_ void **ppFence); | ||
| 10063 | |||
| 10064 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 10065 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 10066 | ID3D12Device * This); | ||
| 10067 | |||
| 10068 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 10069 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 10070 | ID3D12Device * This, | ||
| 10071 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 10072 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 10073 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 10074 | UINT64 BaseOffset, | ||
| 10075 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 10076 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 10077 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 10078 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 10079 | |||
| 10080 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 10081 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 10082 | ID3D12Device * This, | ||
| 10083 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 10084 | REFIID riid, | ||
| 10085 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 10086 | |||
| 10087 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 10088 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 10089 | ID3D12Device * This, | ||
| 10090 | BOOL Enable); | ||
| 10091 | |||
| 10092 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 10093 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 10094 | ID3D12Device * This, | ||
| 10095 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 10096 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 10097 | REFIID riid, | ||
| 10098 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 10099 | |||
| 10100 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 10101 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 10102 | ID3D12Device * This, | ||
| 10103 | _In_ ID3D12Resource *pTiledResource, | ||
| 10104 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 10105 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 10106 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 10107 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 10108 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 10109 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 10110 | |||
| 10111 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 10112 | #if !defined(_WIN32) | ||
| 10113 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 10114 | ID3D12Device * This); | ||
| 10115 | |||
| 10116 | #else | ||
| 10117 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 10118 | ID3D12Device * This, | ||
| 10119 | LUID * RetVal); | ||
| 10120 | |||
| 10121 | #endif | ||
| 10122 | |||
| 10123 | END_INTERFACE | ||
| 10124 | } ID3D12DeviceVtbl; | ||
| 10125 | |||
| 10126 | interface ID3D12Device | ||
| 10127 | { | ||
| 10128 | CONST_VTBL struct ID3D12DeviceVtbl *lpVtbl; | ||
| 10129 | }; | ||
| 10130 | |||
| 10131 | |||
| 10132 | |||
| 10133 | #ifdef COBJMACROS | ||
| 10134 | |||
| 10135 | |||
| 10136 | #define ID3D12Device_QueryInterface(This,riid,ppvObject) \ | ||
| 10137 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 10138 | |||
| 10139 | #define ID3D12Device_AddRef(This) \ | ||
| 10140 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 10141 | |||
| 10142 | #define ID3D12Device_Release(This) \ | ||
| 10143 | ( (This)->lpVtbl -> Release(This) ) | ||
| 10144 | |||
| 10145 | |||
| 10146 | #define ID3D12Device_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 10147 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 10148 | |||
| 10149 | #define ID3D12Device_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 10150 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 10151 | |||
| 10152 | #define ID3D12Device_SetPrivateDataInterface(This,guid,pData) \ | ||
| 10153 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 10154 | |||
| 10155 | #define ID3D12Device_SetName(This,Name) \ | ||
| 10156 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 10157 | |||
| 10158 | |||
| 10159 | #define ID3D12Device_GetNodeCount(This) \ | ||
| 10160 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 10161 | |||
| 10162 | #define ID3D12Device_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 10163 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 10164 | |||
| 10165 | #define ID3D12Device_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 10166 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 10167 | |||
| 10168 | #define ID3D12Device_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 10169 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 10170 | |||
| 10171 | #define ID3D12Device_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 10172 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 10173 | |||
| 10174 | #define ID3D12Device_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 10175 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 10176 | |||
| 10177 | #define ID3D12Device_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 10178 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 10179 | |||
| 10180 | #define ID3D12Device_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 10181 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 10182 | |||
| 10183 | #define ID3D12Device_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 10184 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 10185 | |||
| 10186 | #define ID3D12Device_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 10187 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 10188 | |||
| 10189 | #define ID3D12Device_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 10190 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 10191 | |||
| 10192 | #define ID3D12Device_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 10193 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 10194 | |||
| 10195 | #define ID3D12Device_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 10196 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 10197 | |||
| 10198 | #define ID3D12Device_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 10199 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 10200 | |||
| 10201 | #define ID3D12Device_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 10202 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 10203 | |||
| 10204 | #define ID3D12Device_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 10205 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 10206 | |||
| 10207 | #define ID3D12Device_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 10208 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 10209 | |||
| 10210 | #define ID3D12Device_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 10211 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 10212 | #if !defined(_WIN32) | ||
| 10213 | |||
| 10214 | #define ID3D12Device_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 10215 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 10216 | #else | ||
| 10217 | #define ID3D12Device_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 10218 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 10219 | #endif | ||
| 10220 | #if !defined(_WIN32) | ||
| 10221 | |||
| 10222 | #define ID3D12Device_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 10223 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 10224 | #else | ||
| 10225 | #define ID3D12Device_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 10226 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 10227 | #endif | ||
| 10228 | |||
| 10229 | #define ID3D12Device_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 10230 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 10231 | |||
| 10232 | #define ID3D12Device_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 10233 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 10234 | |||
| 10235 | #define ID3D12Device_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 10236 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 10237 | |||
| 10238 | #define ID3D12Device_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 10239 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 10240 | |||
| 10241 | #define ID3D12Device_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 10242 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 10243 | |||
| 10244 | #define ID3D12Device_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 10245 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 10246 | |||
| 10247 | #define ID3D12Device_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 10248 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 10249 | |||
| 10250 | #define ID3D12Device_MakeResident(This,NumObjects,ppObjects) \ | ||
| 10251 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 10252 | |||
| 10253 | #define ID3D12Device_Evict(This,NumObjects,ppObjects) \ | ||
| 10254 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 10255 | |||
| 10256 | #define ID3D12Device_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 10257 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 10258 | |||
| 10259 | #define ID3D12Device_GetDeviceRemovedReason(This) \ | ||
| 10260 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 10261 | |||
| 10262 | #define ID3D12Device_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 10263 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 10264 | |||
| 10265 | #define ID3D12Device_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 10266 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 10267 | |||
| 10268 | #define ID3D12Device_SetStablePowerState(This,Enable) \ | ||
| 10269 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 10270 | |||
| 10271 | #define ID3D12Device_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 10272 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 10273 | |||
| 10274 | #define ID3D12Device_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 10275 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 10276 | #if !defined(_WIN32) | ||
| 10277 | |||
| 10278 | #define ID3D12Device_GetAdapterLuid(This) \ | ||
| 10279 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 10280 | #else | ||
| 10281 | #define ID3D12Device_GetAdapterLuid(This,RetVal) \ | ||
| 10282 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 10283 | #endif | ||
| 10284 | |||
| 10285 | #endif /* COBJMACROS */ | ||
| 10286 | |||
| 10287 | |||
| 10288 | #endif /* C style interface */ | ||
| 10289 | |||
| 10290 | |||
| 10291 | |||
| 10292 | |||
| 10293 | #endif /* __ID3D12Device_INTERFACE_DEFINED__ */ | ||
| 10294 | |||
| 10295 | |||
| 10296 | #ifndef __ID3D12PipelineLibrary_INTERFACE_DEFINED__ | ||
| 10297 | #define __ID3D12PipelineLibrary_INTERFACE_DEFINED__ | ||
| 10298 | |||
| 10299 | /* interface ID3D12PipelineLibrary */ | ||
| 10300 | /* [unique][local][object][uuid] */ | ||
| 10301 | |||
| 10302 | |||
| 10303 | EXTERN_C const IID IID_ID3D12PipelineLibrary; | ||
| 10304 | |||
| 10305 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 10306 | |||
| 10307 | MIDL_INTERFACE("c64226a8-9201-46af-b4cc-53fb9ff7414f") | ||
| 10308 | ID3D12PipelineLibrary : public ID3D12DeviceChild | ||
| 10309 | { | ||
| 10310 | public: | ||
| 10311 | virtual HRESULT STDMETHODCALLTYPE StorePipeline( | ||
| 10312 | _In_opt_ LPCWSTR pName, | ||
| 10313 | _In_ ID3D12PipelineState *pPipeline) = 0; | ||
| 10314 | |||
| 10315 | virtual HRESULT STDMETHODCALLTYPE LoadGraphicsPipeline( | ||
| 10316 | _In_ LPCWSTR pName, | ||
| 10317 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 10318 | REFIID riid, | ||
| 10319 | _COM_Outptr_ void **ppPipelineState) = 0; | ||
| 10320 | |||
| 10321 | virtual HRESULT STDMETHODCALLTYPE LoadComputePipeline( | ||
| 10322 | _In_ LPCWSTR pName, | ||
| 10323 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 10324 | REFIID riid, | ||
| 10325 | _COM_Outptr_ void **ppPipelineState) = 0; | ||
| 10326 | |||
| 10327 | virtual SIZE_T STDMETHODCALLTYPE GetSerializedSize( void) = 0; | ||
| 10328 | |||
| 10329 | virtual HRESULT STDMETHODCALLTYPE Serialize( | ||
| 10330 | _Out_writes_(DataSizeInBytes) void *pData, | ||
| 10331 | SIZE_T DataSizeInBytes) = 0; | ||
| 10332 | |||
| 10333 | }; | ||
| 10334 | |||
| 10335 | |||
| 10336 | #else /* C style interface */ | ||
| 10337 | |||
| 10338 | typedef struct ID3D12PipelineLibraryVtbl | ||
| 10339 | { | ||
| 10340 | BEGIN_INTERFACE | ||
| 10341 | |||
| 10342 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 10343 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 10344 | ID3D12PipelineLibrary * This, | ||
| 10345 | REFIID riid, | ||
| 10346 | _COM_Outptr_ void **ppvObject); | ||
| 10347 | |||
| 10348 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 10349 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 10350 | ID3D12PipelineLibrary * This); | ||
| 10351 | |||
| 10352 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 10353 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 10354 | ID3D12PipelineLibrary * This); | ||
| 10355 | |||
| 10356 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 10357 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 10358 | ID3D12PipelineLibrary * This, | ||
| 10359 | _In_ REFGUID guid, | ||
| 10360 | _Inout_ UINT *pDataSize, | ||
| 10361 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 10362 | |||
| 10363 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 10364 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 10365 | ID3D12PipelineLibrary * This, | ||
| 10366 | _In_ REFGUID guid, | ||
| 10367 | _In_ UINT DataSize, | ||
| 10368 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 10369 | |||
| 10370 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 10371 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 10372 | ID3D12PipelineLibrary * This, | ||
| 10373 | _In_ REFGUID guid, | ||
| 10374 | _In_opt_ const IUnknown *pData); | ||
| 10375 | |||
| 10376 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 10377 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 10378 | ID3D12PipelineLibrary * This, | ||
| 10379 | _In_z_ LPCWSTR Name); | ||
| 10380 | |||
| 10381 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 10382 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 10383 | ID3D12PipelineLibrary * This, | ||
| 10384 | REFIID riid, | ||
| 10385 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 10386 | |||
| 10387 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline) | ||
| 10388 | HRESULT ( STDMETHODCALLTYPE *StorePipeline )( | ||
| 10389 | ID3D12PipelineLibrary * This, | ||
| 10390 | _In_opt_ LPCWSTR pName, | ||
| 10391 | _In_ ID3D12PipelineState *pPipeline); | ||
| 10392 | |||
| 10393 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline) | ||
| 10394 | HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )( | ||
| 10395 | ID3D12PipelineLibrary * This, | ||
| 10396 | _In_ LPCWSTR pName, | ||
| 10397 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 10398 | REFIID riid, | ||
| 10399 | _COM_Outptr_ void **ppPipelineState); | ||
| 10400 | |||
| 10401 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline) | ||
| 10402 | HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )( | ||
| 10403 | ID3D12PipelineLibrary * This, | ||
| 10404 | _In_ LPCWSTR pName, | ||
| 10405 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 10406 | REFIID riid, | ||
| 10407 | _COM_Outptr_ void **ppPipelineState); | ||
| 10408 | |||
| 10409 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize) | ||
| 10410 | SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )( | ||
| 10411 | ID3D12PipelineLibrary * This); | ||
| 10412 | |||
| 10413 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize) | ||
| 10414 | HRESULT ( STDMETHODCALLTYPE *Serialize )( | ||
| 10415 | ID3D12PipelineLibrary * This, | ||
| 10416 | _Out_writes_(DataSizeInBytes) void *pData, | ||
| 10417 | SIZE_T DataSizeInBytes); | ||
| 10418 | |||
| 10419 | END_INTERFACE | ||
| 10420 | } ID3D12PipelineLibraryVtbl; | ||
| 10421 | |||
| 10422 | interface ID3D12PipelineLibrary | ||
| 10423 | { | ||
| 10424 | CONST_VTBL struct ID3D12PipelineLibraryVtbl *lpVtbl; | ||
| 10425 | }; | ||
| 10426 | |||
| 10427 | |||
| 10428 | |||
| 10429 | #ifdef COBJMACROS | ||
| 10430 | |||
| 10431 | |||
| 10432 | #define ID3D12PipelineLibrary_QueryInterface(This,riid,ppvObject) \ | ||
| 10433 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 10434 | |||
| 10435 | #define ID3D12PipelineLibrary_AddRef(This) \ | ||
| 10436 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 10437 | |||
| 10438 | #define ID3D12PipelineLibrary_Release(This) \ | ||
| 10439 | ( (This)->lpVtbl -> Release(This) ) | ||
| 10440 | |||
| 10441 | |||
| 10442 | #define ID3D12PipelineLibrary_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 10443 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 10444 | |||
| 10445 | #define ID3D12PipelineLibrary_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 10446 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 10447 | |||
| 10448 | #define ID3D12PipelineLibrary_SetPrivateDataInterface(This,guid,pData) \ | ||
| 10449 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 10450 | |||
| 10451 | #define ID3D12PipelineLibrary_SetName(This,Name) \ | ||
| 10452 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 10453 | |||
| 10454 | |||
| 10455 | #define ID3D12PipelineLibrary_GetDevice(This,riid,ppvDevice) \ | ||
| 10456 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 10457 | |||
| 10458 | |||
| 10459 | #define ID3D12PipelineLibrary_StorePipeline(This,pName,pPipeline) \ | ||
| 10460 | ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) ) | ||
| 10461 | |||
| 10462 | #define ID3D12PipelineLibrary_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \ | ||
| 10463 | ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) ) | ||
| 10464 | |||
| 10465 | #define ID3D12PipelineLibrary_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \ | ||
| 10466 | ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) ) | ||
| 10467 | |||
| 10468 | #define ID3D12PipelineLibrary_GetSerializedSize(This) \ | ||
| 10469 | ( (This)->lpVtbl -> GetSerializedSize(This) ) | ||
| 10470 | |||
| 10471 | #define ID3D12PipelineLibrary_Serialize(This,pData,DataSizeInBytes) \ | ||
| 10472 | ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) ) | ||
| 10473 | |||
| 10474 | #endif /* COBJMACROS */ | ||
| 10475 | |||
| 10476 | |||
| 10477 | #endif /* C style interface */ | ||
| 10478 | |||
| 10479 | |||
| 10480 | |||
| 10481 | |||
| 10482 | #endif /* __ID3D12PipelineLibrary_INTERFACE_DEFINED__ */ | ||
| 10483 | |||
| 10484 | |||
| 10485 | #ifndef __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ | ||
| 10486 | #define __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ | ||
| 10487 | |||
| 10488 | /* interface ID3D12PipelineLibrary1 */ | ||
| 10489 | /* [unique][local][object][uuid] */ | ||
| 10490 | |||
| 10491 | |||
| 10492 | EXTERN_C const IID IID_ID3D12PipelineLibrary1; | ||
| 10493 | |||
| 10494 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 10495 | |||
| 10496 | MIDL_INTERFACE("80eabf42-2568-4e5e-bd82-c37f86961dc3") | ||
| 10497 | ID3D12PipelineLibrary1 : public ID3D12PipelineLibrary | ||
| 10498 | { | ||
| 10499 | public: | ||
| 10500 | virtual HRESULT STDMETHODCALLTYPE LoadPipeline( | ||
| 10501 | _In_ LPCWSTR pName, | ||
| 10502 | _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 10503 | REFIID riid, | ||
| 10504 | _COM_Outptr_ void **ppPipelineState) = 0; | ||
| 10505 | |||
| 10506 | }; | ||
| 10507 | |||
| 10508 | |||
| 10509 | #else /* C style interface */ | ||
| 10510 | |||
| 10511 | typedef struct ID3D12PipelineLibrary1Vtbl | ||
| 10512 | { | ||
| 10513 | BEGIN_INTERFACE | ||
| 10514 | |||
| 10515 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 10516 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 10517 | ID3D12PipelineLibrary1 * This, | ||
| 10518 | REFIID riid, | ||
| 10519 | _COM_Outptr_ void **ppvObject); | ||
| 10520 | |||
| 10521 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 10522 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 10523 | ID3D12PipelineLibrary1 * This); | ||
| 10524 | |||
| 10525 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 10526 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 10527 | ID3D12PipelineLibrary1 * This); | ||
| 10528 | |||
| 10529 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 10530 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 10531 | ID3D12PipelineLibrary1 * This, | ||
| 10532 | _In_ REFGUID guid, | ||
| 10533 | _Inout_ UINT *pDataSize, | ||
| 10534 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 10535 | |||
| 10536 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 10537 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 10538 | ID3D12PipelineLibrary1 * This, | ||
| 10539 | _In_ REFGUID guid, | ||
| 10540 | _In_ UINT DataSize, | ||
| 10541 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 10542 | |||
| 10543 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 10544 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 10545 | ID3D12PipelineLibrary1 * This, | ||
| 10546 | _In_ REFGUID guid, | ||
| 10547 | _In_opt_ const IUnknown *pData); | ||
| 10548 | |||
| 10549 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 10550 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 10551 | ID3D12PipelineLibrary1 * This, | ||
| 10552 | _In_z_ LPCWSTR Name); | ||
| 10553 | |||
| 10554 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 10555 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 10556 | ID3D12PipelineLibrary1 * This, | ||
| 10557 | REFIID riid, | ||
| 10558 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 10559 | |||
| 10560 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, StorePipeline) | ||
| 10561 | HRESULT ( STDMETHODCALLTYPE *StorePipeline )( | ||
| 10562 | ID3D12PipelineLibrary1 * This, | ||
| 10563 | _In_opt_ LPCWSTR pName, | ||
| 10564 | _In_ ID3D12PipelineState *pPipeline); | ||
| 10565 | |||
| 10566 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadGraphicsPipeline) | ||
| 10567 | HRESULT ( STDMETHODCALLTYPE *LoadGraphicsPipeline )( | ||
| 10568 | ID3D12PipelineLibrary1 * This, | ||
| 10569 | _In_ LPCWSTR pName, | ||
| 10570 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 10571 | REFIID riid, | ||
| 10572 | _COM_Outptr_ void **ppPipelineState); | ||
| 10573 | |||
| 10574 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, LoadComputePipeline) | ||
| 10575 | HRESULT ( STDMETHODCALLTYPE *LoadComputePipeline )( | ||
| 10576 | ID3D12PipelineLibrary1 * This, | ||
| 10577 | _In_ LPCWSTR pName, | ||
| 10578 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 10579 | REFIID riid, | ||
| 10580 | _COM_Outptr_ void **ppPipelineState); | ||
| 10581 | |||
| 10582 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, GetSerializedSize) | ||
| 10583 | SIZE_T ( STDMETHODCALLTYPE *GetSerializedSize )( | ||
| 10584 | ID3D12PipelineLibrary1 * This); | ||
| 10585 | |||
| 10586 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary, Serialize) | ||
| 10587 | HRESULT ( STDMETHODCALLTYPE *Serialize )( | ||
| 10588 | ID3D12PipelineLibrary1 * This, | ||
| 10589 | _Out_writes_(DataSizeInBytes) void *pData, | ||
| 10590 | SIZE_T DataSizeInBytes); | ||
| 10591 | |||
| 10592 | DECLSPEC_XFGVIRT(ID3D12PipelineLibrary1, LoadPipeline) | ||
| 10593 | HRESULT ( STDMETHODCALLTYPE *LoadPipeline )( | ||
| 10594 | ID3D12PipelineLibrary1 * This, | ||
| 10595 | _In_ LPCWSTR pName, | ||
| 10596 | _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 10597 | REFIID riid, | ||
| 10598 | _COM_Outptr_ void **ppPipelineState); | ||
| 10599 | |||
| 10600 | END_INTERFACE | ||
| 10601 | } ID3D12PipelineLibrary1Vtbl; | ||
| 10602 | |||
| 10603 | interface ID3D12PipelineLibrary1 | ||
| 10604 | { | ||
| 10605 | CONST_VTBL struct ID3D12PipelineLibrary1Vtbl *lpVtbl; | ||
| 10606 | }; | ||
| 10607 | |||
| 10608 | |||
| 10609 | |||
| 10610 | #ifdef COBJMACROS | ||
| 10611 | |||
| 10612 | |||
| 10613 | #define ID3D12PipelineLibrary1_QueryInterface(This,riid,ppvObject) \ | ||
| 10614 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 10615 | |||
| 10616 | #define ID3D12PipelineLibrary1_AddRef(This) \ | ||
| 10617 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 10618 | |||
| 10619 | #define ID3D12PipelineLibrary1_Release(This) \ | ||
| 10620 | ( (This)->lpVtbl -> Release(This) ) | ||
| 10621 | |||
| 10622 | |||
| 10623 | #define ID3D12PipelineLibrary1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 10624 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 10625 | |||
| 10626 | #define ID3D12PipelineLibrary1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 10627 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 10628 | |||
| 10629 | #define ID3D12PipelineLibrary1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 10630 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 10631 | |||
| 10632 | #define ID3D12PipelineLibrary1_SetName(This,Name) \ | ||
| 10633 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 10634 | |||
| 10635 | |||
| 10636 | #define ID3D12PipelineLibrary1_GetDevice(This,riid,ppvDevice) \ | ||
| 10637 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 10638 | |||
| 10639 | |||
| 10640 | #define ID3D12PipelineLibrary1_StorePipeline(This,pName,pPipeline) \ | ||
| 10641 | ( (This)->lpVtbl -> StorePipeline(This,pName,pPipeline) ) | ||
| 10642 | |||
| 10643 | #define ID3D12PipelineLibrary1_LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) \ | ||
| 10644 | ( (This)->lpVtbl -> LoadGraphicsPipeline(This,pName,pDesc,riid,ppPipelineState) ) | ||
| 10645 | |||
| 10646 | #define ID3D12PipelineLibrary1_LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) \ | ||
| 10647 | ( (This)->lpVtbl -> LoadComputePipeline(This,pName,pDesc,riid,ppPipelineState) ) | ||
| 10648 | |||
| 10649 | #define ID3D12PipelineLibrary1_GetSerializedSize(This) \ | ||
| 10650 | ( (This)->lpVtbl -> GetSerializedSize(This) ) | ||
| 10651 | |||
| 10652 | #define ID3D12PipelineLibrary1_Serialize(This,pData,DataSizeInBytes) \ | ||
| 10653 | ( (This)->lpVtbl -> Serialize(This,pData,DataSizeInBytes) ) | ||
| 10654 | |||
| 10655 | |||
| 10656 | #define ID3D12PipelineLibrary1_LoadPipeline(This,pName,pDesc,riid,ppPipelineState) \ | ||
| 10657 | ( (This)->lpVtbl -> LoadPipeline(This,pName,pDesc,riid,ppPipelineState) ) | ||
| 10658 | |||
| 10659 | #endif /* COBJMACROS */ | ||
| 10660 | |||
| 10661 | |||
| 10662 | #endif /* C style interface */ | ||
| 10663 | |||
| 10664 | |||
| 10665 | |||
| 10666 | |||
| 10667 | #endif /* __ID3D12PipelineLibrary1_INTERFACE_DEFINED__ */ | ||
| 10668 | |||
| 10669 | |||
| 10670 | /* interface __MIDL_itf_d3d12_0000_0025 */ | ||
| 10671 | /* [local] */ | ||
| 10672 | |||
| 10673 | typedef | ||
| 10674 | enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS | ||
| 10675 | { | ||
| 10676 | D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0, | ||
| 10677 | D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1, | ||
| 10678 | D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0 | ||
| 10679 | } D3D12_MULTIPLE_FENCE_WAIT_FLAGS; | ||
| 10680 | |||
| 10681 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS ) | ||
| 10682 | typedef | ||
| 10683 | enum D3D12_RESIDENCY_PRIORITY | ||
| 10684 | { | ||
| 10685 | D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000, | ||
| 10686 | D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000, | ||
| 10687 | D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000, | ||
| 10688 | D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000, | ||
| 10689 | D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000 | ||
| 10690 | } D3D12_RESIDENCY_PRIORITY; | ||
| 10691 | |||
| 10692 | |||
| 10693 | |||
| 10694 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_c_ifspec; | ||
| 10695 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0025_v0_0_s_ifspec; | ||
| 10696 | |||
| 10697 | #ifndef __ID3D12Device1_INTERFACE_DEFINED__ | ||
| 10698 | #define __ID3D12Device1_INTERFACE_DEFINED__ | ||
| 10699 | |||
| 10700 | /* interface ID3D12Device1 */ | ||
| 10701 | /* [unique][local][object][uuid] */ | ||
| 10702 | |||
| 10703 | |||
| 10704 | EXTERN_C const IID IID_ID3D12Device1; | ||
| 10705 | |||
| 10706 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 10707 | |||
| 10708 | MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e") | ||
| 10709 | ID3D12Device1 : public ID3D12Device | ||
| 10710 | { | ||
| 10711 | public: | ||
| 10712 | virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary( | ||
| 10713 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 10714 | SIZE_T BlobLength, | ||
| 10715 | REFIID riid, | ||
| 10716 | _COM_Outptr_ void **ppPipelineLibrary) = 0; | ||
| 10717 | |||
| 10718 | virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion( | ||
| 10719 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 10720 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 10721 | UINT NumFences, | ||
| 10722 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 10723 | HANDLE hEvent) = 0; | ||
| 10724 | |||
| 10725 | virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority( | ||
| 10726 | UINT NumObjects, | ||
| 10727 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 10728 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities) = 0; | ||
| 10729 | |||
| 10730 | }; | ||
| 10731 | |||
| 10732 | |||
| 10733 | #else /* C style interface */ | ||
| 10734 | |||
| 10735 | typedef struct ID3D12Device1Vtbl | ||
| 10736 | { | ||
| 10737 | BEGIN_INTERFACE | ||
| 10738 | |||
| 10739 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 10740 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 10741 | ID3D12Device1 * This, | ||
| 10742 | REFIID riid, | ||
| 10743 | _COM_Outptr_ void **ppvObject); | ||
| 10744 | |||
| 10745 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 10746 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 10747 | ID3D12Device1 * This); | ||
| 10748 | |||
| 10749 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 10750 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 10751 | ID3D12Device1 * This); | ||
| 10752 | |||
| 10753 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 10754 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 10755 | ID3D12Device1 * This, | ||
| 10756 | _In_ REFGUID guid, | ||
| 10757 | _Inout_ UINT *pDataSize, | ||
| 10758 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 10759 | |||
| 10760 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 10761 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 10762 | ID3D12Device1 * This, | ||
| 10763 | _In_ REFGUID guid, | ||
| 10764 | _In_ UINT DataSize, | ||
| 10765 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 10766 | |||
| 10767 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 10768 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 10769 | ID3D12Device1 * This, | ||
| 10770 | _In_ REFGUID guid, | ||
| 10771 | _In_opt_ const IUnknown *pData); | ||
| 10772 | |||
| 10773 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 10774 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 10775 | ID3D12Device1 * This, | ||
| 10776 | _In_z_ LPCWSTR Name); | ||
| 10777 | |||
| 10778 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 10779 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 10780 | ID3D12Device1 * This); | ||
| 10781 | |||
| 10782 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 10783 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 10784 | ID3D12Device1 * This, | ||
| 10785 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 10786 | REFIID riid, | ||
| 10787 | _COM_Outptr_ void **ppCommandQueue); | ||
| 10788 | |||
| 10789 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 10790 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 10791 | ID3D12Device1 * This, | ||
| 10792 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 10793 | REFIID riid, | ||
| 10794 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 10795 | |||
| 10796 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 10797 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 10798 | ID3D12Device1 * This, | ||
| 10799 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 10800 | REFIID riid, | ||
| 10801 | _COM_Outptr_ void **ppPipelineState); | ||
| 10802 | |||
| 10803 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 10804 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 10805 | ID3D12Device1 * This, | ||
| 10806 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 10807 | REFIID riid, | ||
| 10808 | _COM_Outptr_ void **ppPipelineState); | ||
| 10809 | |||
| 10810 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 10811 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 10812 | ID3D12Device1 * This, | ||
| 10813 | _In_ UINT nodeMask, | ||
| 10814 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 10815 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 10816 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 10817 | REFIID riid, | ||
| 10818 | _COM_Outptr_ void **ppCommandList); | ||
| 10819 | |||
| 10820 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 10821 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 10822 | ID3D12Device1 * This, | ||
| 10823 | D3D12_FEATURE Feature, | ||
| 10824 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 10825 | UINT FeatureSupportDataSize); | ||
| 10826 | |||
| 10827 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 10828 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 10829 | ID3D12Device1 * This, | ||
| 10830 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 10831 | REFIID riid, | ||
| 10832 | _COM_Outptr_ void **ppvHeap); | ||
| 10833 | |||
| 10834 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 10835 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 10836 | ID3D12Device1 * This, | ||
| 10837 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 10838 | |||
| 10839 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 10840 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 10841 | ID3D12Device1 * This, | ||
| 10842 | _In_ UINT nodeMask, | ||
| 10843 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 10844 | _In_ SIZE_T blobLengthInBytes, | ||
| 10845 | REFIID riid, | ||
| 10846 | _COM_Outptr_ void **ppvRootSignature); | ||
| 10847 | |||
| 10848 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 10849 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 10850 | ID3D12Device1 * This, | ||
| 10851 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 10852 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 10853 | |||
| 10854 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 10855 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 10856 | ID3D12Device1 * This, | ||
| 10857 | _In_opt_ ID3D12Resource *pResource, | ||
| 10858 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 10859 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 10860 | |||
| 10861 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 10862 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 10863 | ID3D12Device1 * This, | ||
| 10864 | _In_opt_ ID3D12Resource *pResource, | ||
| 10865 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 10866 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 10867 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 10868 | |||
| 10869 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 10870 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 10871 | ID3D12Device1 * This, | ||
| 10872 | _In_opt_ ID3D12Resource *pResource, | ||
| 10873 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 10874 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 10875 | |||
| 10876 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 10877 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 10878 | ID3D12Device1 * This, | ||
| 10879 | _In_opt_ ID3D12Resource *pResource, | ||
| 10880 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 10881 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 10882 | |||
| 10883 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 10884 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 10885 | ID3D12Device1 * This, | ||
| 10886 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 10887 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 10888 | |||
| 10889 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 10890 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 10891 | ID3D12Device1 * This, | ||
| 10892 | _In_ UINT NumDestDescriptorRanges, | ||
| 10893 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 10894 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 10895 | _In_ UINT NumSrcDescriptorRanges, | ||
| 10896 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 10897 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 10898 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 10899 | |||
| 10900 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 10901 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 10902 | ID3D12Device1 * This, | ||
| 10903 | _In_ UINT NumDescriptors, | ||
| 10904 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 10905 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 10906 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 10907 | |||
| 10908 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 10909 | #if !defined(_WIN32) | ||
| 10910 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 10911 | ID3D12Device1 * This, | ||
| 10912 | _In_ UINT visibleMask, | ||
| 10913 | _In_ UINT numResourceDescs, | ||
| 10914 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 10915 | |||
| 10916 | #else | ||
| 10917 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 10918 | ID3D12Device1 * This, | ||
| 10919 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 10920 | _In_ UINT visibleMask, | ||
| 10921 | _In_ UINT numResourceDescs, | ||
| 10922 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 10923 | |||
| 10924 | #endif | ||
| 10925 | |||
| 10926 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 10927 | #if !defined(_WIN32) | ||
| 10928 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 10929 | ID3D12Device1 * This, | ||
| 10930 | _In_ UINT nodeMask, | ||
| 10931 | D3D12_HEAP_TYPE heapType); | ||
| 10932 | |||
| 10933 | #else | ||
| 10934 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 10935 | ID3D12Device1 * This, | ||
| 10936 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 10937 | _In_ UINT nodeMask, | ||
| 10938 | D3D12_HEAP_TYPE heapType); | ||
| 10939 | |||
| 10940 | #endif | ||
| 10941 | |||
| 10942 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 10943 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 10944 | ID3D12Device1 * This, | ||
| 10945 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 10946 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 10947 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 10948 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 10949 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 10950 | REFIID riidResource, | ||
| 10951 | _COM_Outptr_opt_ void **ppvResource); | ||
| 10952 | |||
| 10953 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 10954 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 10955 | ID3D12Device1 * This, | ||
| 10956 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 10957 | REFIID riid, | ||
| 10958 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 10959 | |||
| 10960 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 10961 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 10962 | ID3D12Device1 * This, | ||
| 10963 | _In_ ID3D12Heap *pHeap, | ||
| 10964 | UINT64 HeapOffset, | ||
| 10965 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 10966 | D3D12_RESOURCE_STATES InitialState, | ||
| 10967 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 10968 | REFIID riid, | ||
| 10969 | _COM_Outptr_opt_ void **ppvResource); | ||
| 10970 | |||
| 10971 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 10972 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 10973 | ID3D12Device1 * This, | ||
| 10974 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 10975 | D3D12_RESOURCE_STATES InitialState, | ||
| 10976 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 10977 | REFIID riid, | ||
| 10978 | _COM_Outptr_opt_ void **ppvResource); | ||
| 10979 | |||
| 10980 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 10981 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 10982 | ID3D12Device1 * This, | ||
| 10983 | _In_ ID3D12DeviceChild *pObject, | ||
| 10984 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 10985 | DWORD Access, | ||
| 10986 | _In_opt_ LPCWSTR Name, | ||
| 10987 | _Out_ HANDLE *pHandle); | ||
| 10988 | |||
| 10989 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 10990 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 10991 | ID3D12Device1 * This, | ||
| 10992 | _In_ HANDLE NTHandle, | ||
| 10993 | REFIID riid, | ||
| 10994 | _COM_Outptr_opt_ void **ppvObj); | ||
| 10995 | |||
| 10996 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 10997 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 10998 | ID3D12Device1 * This, | ||
| 10999 | _In_ LPCWSTR Name, | ||
| 11000 | DWORD Access, | ||
| 11001 | /* [annotation][out] */ | ||
| 11002 | _Out_ HANDLE *pNTHandle); | ||
| 11003 | |||
| 11004 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 11005 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 11006 | ID3D12Device1 * This, | ||
| 11007 | UINT NumObjects, | ||
| 11008 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 11009 | |||
| 11010 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 11011 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 11012 | ID3D12Device1 * This, | ||
| 11013 | UINT NumObjects, | ||
| 11014 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 11015 | |||
| 11016 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 11017 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 11018 | ID3D12Device1 * This, | ||
| 11019 | UINT64 InitialValue, | ||
| 11020 | D3D12_FENCE_FLAGS Flags, | ||
| 11021 | REFIID riid, | ||
| 11022 | _COM_Outptr_ void **ppFence); | ||
| 11023 | |||
| 11024 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 11025 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 11026 | ID3D12Device1 * This); | ||
| 11027 | |||
| 11028 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 11029 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 11030 | ID3D12Device1 * This, | ||
| 11031 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 11032 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 11033 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 11034 | UINT64 BaseOffset, | ||
| 11035 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 11036 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 11037 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 11038 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 11039 | |||
| 11040 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 11041 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 11042 | ID3D12Device1 * This, | ||
| 11043 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 11044 | REFIID riid, | ||
| 11045 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 11046 | |||
| 11047 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 11048 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 11049 | ID3D12Device1 * This, | ||
| 11050 | BOOL Enable); | ||
| 11051 | |||
| 11052 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 11053 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 11054 | ID3D12Device1 * This, | ||
| 11055 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 11056 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 11057 | REFIID riid, | ||
| 11058 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 11059 | |||
| 11060 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 11061 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 11062 | ID3D12Device1 * This, | ||
| 11063 | _In_ ID3D12Resource *pTiledResource, | ||
| 11064 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 11065 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 11066 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 11067 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 11068 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 11069 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 11070 | |||
| 11071 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 11072 | #if !defined(_WIN32) | ||
| 11073 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 11074 | ID3D12Device1 * This); | ||
| 11075 | |||
| 11076 | #else | ||
| 11077 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 11078 | ID3D12Device1 * This, | ||
| 11079 | LUID * RetVal); | ||
| 11080 | |||
| 11081 | #endif | ||
| 11082 | |||
| 11083 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 11084 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 11085 | ID3D12Device1 * This, | ||
| 11086 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 11087 | SIZE_T BlobLength, | ||
| 11088 | REFIID riid, | ||
| 11089 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 11090 | |||
| 11091 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 11092 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 11093 | ID3D12Device1 * This, | ||
| 11094 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 11095 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 11096 | UINT NumFences, | ||
| 11097 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 11098 | HANDLE hEvent); | ||
| 11099 | |||
| 11100 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 11101 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 11102 | ID3D12Device1 * This, | ||
| 11103 | UINT NumObjects, | ||
| 11104 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 11105 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 11106 | |||
| 11107 | END_INTERFACE | ||
| 11108 | } ID3D12Device1Vtbl; | ||
| 11109 | |||
| 11110 | interface ID3D12Device1 | ||
| 11111 | { | ||
| 11112 | CONST_VTBL struct ID3D12Device1Vtbl *lpVtbl; | ||
| 11113 | }; | ||
| 11114 | |||
| 11115 | |||
| 11116 | |||
| 11117 | #ifdef COBJMACROS | ||
| 11118 | |||
| 11119 | |||
| 11120 | #define ID3D12Device1_QueryInterface(This,riid,ppvObject) \ | ||
| 11121 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 11122 | |||
| 11123 | #define ID3D12Device1_AddRef(This) \ | ||
| 11124 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 11125 | |||
| 11126 | #define ID3D12Device1_Release(This) \ | ||
| 11127 | ( (This)->lpVtbl -> Release(This) ) | ||
| 11128 | |||
| 11129 | |||
| 11130 | #define ID3D12Device1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 11131 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 11132 | |||
| 11133 | #define ID3D12Device1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 11134 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 11135 | |||
| 11136 | #define ID3D12Device1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 11137 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 11138 | |||
| 11139 | #define ID3D12Device1_SetName(This,Name) \ | ||
| 11140 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 11141 | |||
| 11142 | |||
| 11143 | #define ID3D12Device1_GetNodeCount(This) \ | ||
| 11144 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 11145 | |||
| 11146 | #define ID3D12Device1_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 11147 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 11148 | |||
| 11149 | #define ID3D12Device1_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 11150 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 11151 | |||
| 11152 | #define ID3D12Device1_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 11153 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 11154 | |||
| 11155 | #define ID3D12Device1_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 11156 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 11157 | |||
| 11158 | #define ID3D12Device1_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 11159 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 11160 | |||
| 11161 | #define ID3D12Device1_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 11162 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 11163 | |||
| 11164 | #define ID3D12Device1_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 11165 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 11166 | |||
| 11167 | #define ID3D12Device1_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 11168 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 11169 | |||
| 11170 | #define ID3D12Device1_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 11171 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 11172 | |||
| 11173 | #define ID3D12Device1_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 11174 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 11175 | |||
| 11176 | #define ID3D12Device1_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 11177 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 11178 | |||
| 11179 | #define ID3D12Device1_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 11180 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 11181 | |||
| 11182 | #define ID3D12Device1_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 11183 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 11184 | |||
| 11185 | #define ID3D12Device1_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 11186 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 11187 | |||
| 11188 | #define ID3D12Device1_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 11189 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 11190 | |||
| 11191 | #define ID3D12Device1_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 11192 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 11193 | |||
| 11194 | #define ID3D12Device1_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 11195 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 11196 | #if !defined(_WIN32) | ||
| 11197 | |||
| 11198 | #define ID3D12Device1_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 11199 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 11200 | #else | ||
| 11201 | #define ID3D12Device1_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 11202 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 11203 | #endif | ||
| 11204 | #if !defined(_WIN32) | ||
| 11205 | |||
| 11206 | #define ID3D12Device1_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 11207 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 11208 | #else | ||
| 11209 | #define ID3D12Device1_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 11210 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 11211 | #endif | ||
| 11212 | |||
| 11213 | #define ID3D12Device1_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 11214 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 11215 | |||
| 11216 | #define ID3D12Device1_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 11217 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 11218 | |||
| 11219 | #define ID3D12Device1_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 11220 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 11221 | |||
| 11222 | #define ID3D12Device1_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 11223 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 11224 | |||
| 11225 | #define ID3D12Device1_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 11226 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 11227 | |||
| 11228 | #define ID3D12Device1_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 11229 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 11230 | |||
| 11231 | #define ID3D12Device1_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 11232 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 11233 | |||
| 11234 | #define ID3D12Device1_MakeResident(This,NumObjects,ppObjects) \ | ||
| 11235 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 11236 | |||
| 11237 | #define ID3D12Device1_Evict(This,NumObjects,ppObjects) \ | ||
| 11238 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 11239 | |||
| 11240 | #define ID3D12Device1_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 11241 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 11242 | |||
| 11243 | #define ID3D12Device1_GetDeviceRemovedReason(This) \ | ||
| 11244 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 11245 | |||
| 11246 | #define ID3D12Device1_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 11247 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 11248 | |||
| 11249 | #define ID3D12Device1_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 11250 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 11251 | |||
| 11252 | #define ID3D12Device1_SetStablePowerState(This,Enable) \ | ||
| 11253 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 11254 | |||
| 11255 | #define ID3D12Device1_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 11256 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 11257 | |||
| 11258 | #define ID3D12Device1_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 11259 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 11260 | #if !defined(_WIN32) | ||
| 11261 | |||
| 11262 | #define ID3D12Device1_GetAdapterLuid(This) \ | ||
| 11263 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 11264 | #else | ||
| 11265 | #define ID3D12Device1_GetAdapterLuid(This,RetVal) \ | ||
| 11266 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 11267 | #endif | ||
| 11268 | |||
| 11269 | |||
| 11270 | #define ID3D12Device1_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 11271 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 11272 | |||
| 11273 | #define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 11274 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 11275 | |||
| 11276 | #define ID3D12Device1_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 11277 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 11278 | |||
| 11279 | #endif /* COBJMACROS */ | ||
| 11280 | |||
| 11281 | |||
| 11282 | #endif /* C style interface */ | ||
| 11283 | |||
| 11284 | |||
| 11285 | |||
| 11286 | |||
| 11287 | #endif /* __ID3D12Device1_INTERFACE_DEFINED__ */ | ||
| 11288 | |||
| 11289 | |||
| 11290 | #ifndef __ID3D12Device2_INTERFACE_DEFINED__ | ||
| 11291 | #define __ID3D12Device2_INTERFACE_DEFINED__ | ||
| 11292 | |||
| 11293 | /* interface ID3D12Device2 */ | ||
| 11294 | /* [unique][local][object][uuid] */ | ||
| 11295 | |||
| 11296 | |||
| 11297 | EXTERN_C const IID IID_ID3D12Device2; | ||
| 11298 | |||
| 11299 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 11300 | |||
| 11301 | MIDL_INTERFACE("30baa41e-b15b-475c-a0bb-1af5c5b64328") | ||
| 11302 | ID3D12Device2 : public ID3D12Device1 | ||
| 11303 | { | ||
| 11304 | public: | ||
| 11305 | virtual HRESULT STDMETHODCALLTYPE CreatePipelineState( | ||
| 11306 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 11307 | REFIID riid, | ||
| 11308 | _COM_Outptr_ void **ppPipelineState) = 0; | ||
| 11309 | |||
| 11310 | }; | ||
| 11311 | |||
| 11312 | |||
| 11313 | #else /* C style interface */ | ||
| 11314 | |||
| 11315 | typedef struct ID3D12Device2Vtbl | ||
| 11316 | { | ||
| 11317 | BEGIN_INTERFACE | ||
| 11318 | |||
| 11319 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 11320 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 11321 | ID3D12Device2 * This, | ||
| 11322 | REFIID riid, | ||
| 11323 | _COM_Outptr_ void **ppvObject); | ||
| 11324 | |||
| 11325 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 11326 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 11327 | ID3D12Device2 * This); | ||
| 11328 | |||
| 11329 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 11330 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 11331 | ID3D12Device2 * This); | ||
| 11332 | |||
| 11333 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 11334 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 11335 | ID3D12Device2 * This, | ||
| 11336 | _In_ REFGUID guid, | ||
| 11337 | _Inout_ UINT *pDataSize, | ||
| 11338 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 11339 | |||
| 11340 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 11341 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 11342 | ID3D12Device2 * This, | ||
| 11343 | _In_ REFGUID guid, | ||
| 11344 | _In_ UINT DataSize, | ||
| 11345 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 11346 | |||
| 11347 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 11348 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 11349 | ID3D12Device2 * This, | ||
| 11350 | _In_ REFGUID guid, | ||
| 11351 | _In_opt_ const IUnknown *pData); | ||
| 11352 | |||
| 11353 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 11354 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 11355 | ID3D12Device2 * This, | ||
| 11356 | _In_z_ LPCWSTR Name); | ||
| 11357 | |||
| 11358 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 11359 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 11360 | ID3D12Device2 * This); | ||
| 11361 | |||
| 11362 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 11363 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 11364 | ID3D12Device2 * This, | ||
| 11365 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 11366 | REFIID riid, | ||
| 11367 | _COM_Outptr_ void **ppCommandQueue); | ||
| 11368 | |||
| 11369 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 11370 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 11371 | ID3D12Device2 * This, | ||
| 11372 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 11373 | REFIID riid, | ||
| 11374 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 11375 | |||
| 11376 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 11377 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 11378 | ID3D12Device2 * This, | ||
| 11379 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 11380 | REFIID riid, | ||
| 11381 | _COM_Outptr_ void **ppPipelineState); | ||
| 11382 | |||
| 11383 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 11384 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 11385 | ID3D12Device2 * This, | ||
| 11386 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 11387 | REFIID riid, | ||
| 11388 | _COM_Outptr_ void **ppPipelineState); | ||
| 11389 | |||
| 11390 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 11391 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 11392 | ID3D12Device2 * This, | ||
| 11393 | _In_ UINT nodeMask, | ||
| 11394 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 11395 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 11396 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 11397 | REFIID riid, | ||
| 11398 | _COM_Outptr_ void **ppCommandList); | ||
| 11399 | |||
| 11400 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 11401 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 11402 | ID3D12Device2 * This, | ||
| 11403 | D3D12_FEATURE Feature, | ||
| 11404 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 11405 | UINT FeatureSupportDataSize); | ||
| 11406 | |||
| 11407 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 11408 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 11409 | ID3D12Device2 * This, | ||
| 11410 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 11411 | REFIID riid, | ||
| 11412 | _COM_Outptr_ void **ppvHeap); | ||
| 11413 | |||
| 11414 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 11415 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 11416 | ID3D12Device2 * This, | ||
| 11417 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 11418 | |||
| 11419 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 11420 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 11421 | ID3D12Device2 * This, | ||
| 11422 | _In_ UINT nodeMask, | ||
| 11423 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 11424 | _In_ SIZE_T blobLengthInBytes, | ||
| 11425 | REFIID riid, | ||
| 11426 | _COM_Outptr_ void **ppvRootSignature); | ||
| 11427 | |||
| 11428 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 11429 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 11430 | ID3D12Device2 * This, | ||
| 11431 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 11432 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 11433 | |||
| 11434 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 11435 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 11436 | ID3D12Device2 * This, | ||
| 11437 | _In_opt_ ID3D12Resource *pResource, | ||
| 11438 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 11439 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 11440 | |||
| 11441 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 11442 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 11443 | ID3D12Device2 * This, | ||
| 11444 | _In_opt_ ID3D12Resource *pResource, | ||
| 11445 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 11446 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 11447 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 11448 | |||
| 11449 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 11450 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 11451 | ID3D12Device2 * This, | ||
| 11452 | _In_opt_ ID3D12Resource *pResource, | ||
| 11453 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 11454 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 11455 | |||
| 11456 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 11457 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 11458 | ID3D12Device2 * This, | ||
| 11459 | _In_opt_ ID3D12Resource *pResource, | ||
| 11460 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 11461 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 11462 | |||
| 11463 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 11464 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 11465 | ID3D12Device2 * This, | ||
| 11466 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 11467 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 11468 | |||
| 11469 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 11470 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 11471 | ID3D12Device2 * This, | ||
| 11472 | _In_ UINT NumDestDescriptorRanges, | ||
| 11473 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 11474 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 11475 | _In_ UINT NumSrcDescriptorRanges, | ||
| 11476 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 11477 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 11478 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 11479 | |||
| 11480 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 11481 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 11482 | ID3D12Device2 * This, | ||
| 11483 | _In_ UINT NumDescriptors, | ||
| 11484 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 11485 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 11486 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 11487 | |||
| 11488 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 11489 | #if !defined(_WIN32) | ||
| 11490 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 11491 | ID3D12Device2 * This, | ||
| 11492 | _In_ UINT visibleMask, | ||
| 11493 | _In_ UINT numResourceDescs, | ||
| 11494 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 11495 | |||
| 11496 | #else | ||
| 11497 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 11498 | ID3D12Device2 * This, | ||
| 11499 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 11500 | _In_ UINT visibleMask, | ||
| 11501 | _In_ UINT numResourceDescs, | ||
| 11502 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 11503 | |||
| 11504 | #endif | ||
| 11505 | |||
| 11506 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 11507 | #if !defined(_WIN32) | ||
| 11508 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 11509 | ID3D12Device2 * This, | ||
| 11510 | _In_ UINT nodeMask, | ||
| 11511 | D3D12_HEAP_TYPE heapType); | ||
| 11512 | |||
| 11513 | #else | ||
| 11514 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 11515 | ID3D12Device2 * This, | ||
| 11516 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 11517 | _In_ UINT nodeMask, | ||
| 11518 | D3D12_HEAP_TYPE heapType); | ||
| 11519 | |||
| 11520 | #endif | ||
| 11521 | |||
| 11522 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 11523 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 11524 | ID3D12Device2 * This, | ||
| 11525 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 11526 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 11527 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 11528 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 11529 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 11530 | REFIID riidResource, | ||
| 11531 | _COM_Outptr_opt_ void **ppvResource); | ||
| 11532 | |||
| 11533 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 11534 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 11535 | ID3D12Device2 * This, | ||
| 11536 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 11537 | REFIID riid, | ||
| 11538 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 11539 | |||
| 11540 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 11541 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 11542 | ID3D12Device2 * This, | ||
| 11543 | _In_ ID3D12Heap *pHeap, | ||
| 11544 | UINT64 HeapOffset, | ||
| 11545 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 11546 | D3D12_RESOURCE_STATES InitialState, | ||
| 11547 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 11548 | REFIID riid, | ||
| 11549 | _COM_Outptr_opt_ void **ppvResource); | ||
| 11550 | |||
| 11551 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 11552 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 11553 | ID3D12Device2 * This, | ||
| 11554 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 11555 | D3D12_RESOURCE_STATES InitialState, | ||
| 11556 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 11557 | REFIID riid, | ||
| 11558 | _COM_Outptr_opt_ void **ppvResource); | ||
| 11559 | |||
| 11560 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 11561 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 11562 | ID3D12Device2 * This, | ||
| 11563 | _In_ ID3D12DeviceChild *pObject, | ||
| 11564 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 11565 | DWORD Access, | ||
| 11566 | _In_opt_ LPCWSTR Name, | ||
| 11567 | _Out_ HANDLE *pHandle); | ||
| 11568 | |||
| 11569 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 11570 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 11571 | ID3D12Device2 * This, | ||
| 11572 | _In_ HANDLE NTHandle, | ||
| 11573 | REFIID riid, | ||
| 11574 | _COM_Outptr_opt_ void **ppvObj); | ||
| 11575 | |||
| 11576 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 11577 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 11578 | ID3D12Device2 * This, | ||
| 11579 | _In_ LPCWSTR Name, | ||
| 11580 | DWORD Access, | ||
| 11581 | /* [annotation][out] */ | ||
| 11582 | _Out_ HANDLE *pNTHandle); | ||
| 11583 | |||
| 11584 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 11585 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 11586 | ID3D12Device2 * This, | ||
| 11587 | UINT NumObjects, | ||
| 11588 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 11589 | |||
| 11590 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 11591 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 11592 | ID3D12Device2 * This, | ||
| 11593 | UINT NumObjects, | ||
| 11594 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 11595 | |||
| 11596 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 11597 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 11598 | ID3D12Device2 * This, | ||
| 11599 | UINT64 InitialValue, | ||
| 11600 | D3D12_FENCE_FLAGS Flags, | ||
| 11601 | REFIID riid, | ||
| 11602 | _COM_Outptr_ void **ppFence); | ||
| 11603 | |||
| 11604 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 11605 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 11606 | ID3D12Device2 * This); | ||
| 11607 | |||
| 11608 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 11609 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 11610 | ID3D12Device2 * This, | ||
| 11611 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 11612 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 11613 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 11614 | UINT64 BaseOffset, | ||
| 11615 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 11616 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 11617 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 11618 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 11619 | |||
| 11620 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 11621 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 11622 | ID3D12Device2 * This, | ||
| 11623 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 11624 | REFIID riid, | ||
| 11625 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 11626 | |||
| 11627 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 11628 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 11629 | ID3D12Device2 * This, | ||
| 11630 | BOOL Enable); | ||
| 11631 | |||
| 11632 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 11633 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 11634 | ID3D12Device2 * This, | ||
| 11635 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 11636 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 11637 | REFIID riid, | ||
| 11638 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 11639 | |||
| 11640 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 11641 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 11642 | ID3D12Device2 * This, | ||
| 11643 | _In_ ID3D12Resource *pTiledResource, | ||
| 11644 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 11645 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 11646 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 11647 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 11648 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 11649 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 11650 | |||
| 11651 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 11652 | #if !defined(_WIN32) | ||
| 11653 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 11654 | ID3D12Device2 * This); | ||
| 11655 | |||
| 11656 | #else | ||
| 11657 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 11658 | ID3D12Device2 * This, | ||
| 11659 | LUID * RetVal); | ||
| 11660 | |||
| 11661 | #endif | ||
| 11662 | |||
| 11663 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 11664 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 11665 | ID3D12Device2 * This, | ||
| 11666 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 11667 | SIZE_T BlobLength, | ||
| 11668 | REFIID riid, | ||
| 11669 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 11670 | |||
| 11671 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 11672 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 11673 | ID3D12Device2 * This, | ||
| 11674 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 11675 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 11676 | UINT NumFences, | ||
| 11677 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 11678 | HANDLE hEvent); | ||
| 11679 | |||
| 11680 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 11681 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 11682 | ID3D12Device2 * This, | ||
| 11683 | UINT NumObjects, | ||
| 11684 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 11685 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 11686 | |||
| 11687 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 11688 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 11689 | ID3D12Device2 * This, | ||
| 11690 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 11691 | REFIID riid, | ||
| 11692 | _COM_Outptr_ void **ppPipelineState); | ||
| 11693 | |||
| 11694 | END_INTERFACE | ||
| 11695 | } ID3D12Device2Vtbl; | ||
| 11696 | |||
| 11697 | interface ID3D12Device2 | ||
| 11698 | { | ||
| 11699 | CONST_VTBL struct ID3D12Device2Vtbl *lpVtbl; | ||
| 11700 | }; | ||
| 11701 | |||
| 11702 | |||
| 11703 | |||
| 11704 | #ifdef COBJMACROS | ||
| 11705 | |||
| 11706 | |||
| 11707 | #define ID3D12Device2_QueryInterface(This,riid,ppvObject) \ | ||
| 11708 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 11709 | |||
| 11710 | #define ID3D12Device2_AddRef(This) \ | ||
| 11711 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 11712 | |||
| 11713 | #define ID3D12Device2_Release(This) \ | ||
| 11714 | ( (This)->lpVtbl -> Release(This) ) | ||
| 11715 | |||
| 11716 | |||
| 11717 | #define ID3D12Device2_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 11718 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 11719 | |||
| 11720 | #define ID3D12Device2_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 11721 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 11722 | |||
| 11723 | #define ID3D12Device2_SetPrivateDataInterface(This,guid,pData) \ | ||
| 11724 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 11725 | |||
| 11726 | #define ID3D12Device2_SetName(This,Name) \ | ||
| 11727 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 11728 | |||
| 11729 | |||
| 11730 | #define ID3D12Device2_GetNodeCount(This) \ | ||
| 11731 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 11732 | |||
| 11733 | #define ID3D12Device2_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 11734 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 11735 | |||
| 11736 | #define ID3D12Device2_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 11737 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 11738 | |||
| 11739 | #define ID3D12Device2_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 11740 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 11741 | |||
| 11742 | #define ID3D12Device2_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 11743 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 11744 | |||
| 11745 | #define ID3D12Device2_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 11746 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 11747 | |||
| 11748 | #define ID3D12Device2_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 11749 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 11750 | |||
| 11751 | #define ID3D12Device2_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 11752 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 11753 | |||
| 11754 | #define ID3D12Device2_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 11755 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 11756 | |||
| 11757 | #define ID3D12Device2_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 11758 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 11759 | |||
| 11760 | #define ID3D12Device2_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 11761 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 11762 | |||
| 11763 | #define ID3D12Device2_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 11764 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 11765 | |||
| 11766 | #define ID3D12Device2_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 11767 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 11768 | |||
| 11769 | #define ID3D12Device2_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 11770 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 11771 | |||
| 11772 | #define ID3D12Device2_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 11773 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 11774 | |||
| 11775 | #define ID3D12Device2_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 11776 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 11777 | |||
| 11778 | #define ID3D12Device2_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 11779 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 11780 | |||
| 11781 | #define ID3D12Device2_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 11782 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 11783 | #if !defined(_WIN32) | ||
| 11784 | |||
| 11785 | #define ID3D12Device2_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 11786 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 11787 | #else | ||
| 11788 | #define ID3D12Device2_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 11789 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 11790 | #endif | ||
| 11791 | #if !defined(_WIN32) | ||
| 11792 | |||
| 11793 | #define ID3D12Device2_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 11794 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 11795 | #else | ||
| 11796 | #define ID3D12Device2_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 11797 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 11798 | #endif | ||
| 11799 | |||
| 11800 | #define ID3D12Device2_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 11801 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 11802 | |||
| 11803 | #define ID3D12Device2_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 11804 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 11805 | |||
| 11806 | #define ID3D12Device2_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 11807 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 11808 | |||
| 11809 | #define ID3D12Device2_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 11810 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 11811 | |||
| 11812 | #define ID3D12Device2_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 11813 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 11814 | |||
| 11815 | #define ID3D12Device2_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 11816 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 11817 | |||
| 11818 | #define ID3D12Device2_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 11819 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 11820 | |||
| 11821 | #define ID3D12Device2_MakeResident(This,NumObjects,ppObjects) \ | ||
| 11822 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 11823 | |||
| 11824 | #define ID3D12Device2_Evict(This,NumObjects,ppObjects) \ | ||
| 11825 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 11826 | |||
| 11827 | #define ID3D12Device2_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 11828 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 11829 | |||
| 11830 | #define ID3D12Device2_GetDeviceRemovedReason(This) \ | ||
| 11831 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 11832 | |||
| 11833 | #define ID3D12Device2_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 11834 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 11835 | |||
| 11836 | #define ID3D12Device2_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 11837 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 11838 | |||
| 11839 | #define ID3D12Device2_SetStablePowerState(This,Enable) \ | ||
| 11840 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 11841 | |||
| 11842 | #define ID3D12Device2_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 11843 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 11844 | |||
| 11845 | #define ID3D12Device2_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 11846 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 11847 | #if !defined(_WIN32) | ||
| 11848 | |||
| 11849 | #define ID3D12Device2_GetAdapterLuid(This) \ | ||
| 11850 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 11851 | #else | ||
| 11852 | #define ID3D12Device2_GetAdapterLuid(This,RetVal) \ | ||
| 11853 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 11854 | #endif | ||
| 11855 | |||
| 11856 | |||
| 11857 | #define ID3D12Device2_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 11858 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 11859 | |||
| 11860 | #define ID3D12Device2_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 11861 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 11862 | |||
| 11863 | #define ID3D12Device2_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 11864 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 11865 | |||
| 11866 | |||
| 11867 | #define ID3D12Device2_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 11868 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 11869 | |||
| 11870 | #endif /* COBJMACROS */ | ||
| 11871 | |||
| 11872 | |||
| 11873 | #endif /* C style interface */ | ||
| 11874 | |||
| 11875 | |||
| 11876 | |||
| 11877 | |||
| 11878 | #endif /* __ID3D12Device2_INTERFACE_DEFINED__ */ | ||
| 11879 | |||
| 11880 | |||
| 11881 | /* interface __MIDL_itf_d3d12_0000_0027 */ | ||
| 11882 | /* [local] */ | ||
| 11883 | |||
| 11884 | typedef | ||
| 11885 | enum D3D12_RESIDENCY_FLAGS | ||
| 11886 | { | ||
| 11887 | D3D12_RESIDENCY_FLAG_NONE = 0, | ||
| 11888 | D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1 | ||
| 11889 | } D3D12_RESIDENCY_FLAGS; | ||
| 11890 | |||
| 11891 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS ) | ||
| 11892 | |||
| 11893 | |||
| 11894 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_c_ifspec; | ||
| 11895 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0027_v0_0_s_ifspec; | ||
| 11896 | |||
| 11897 | #ifndef __ID3D12Device3_INTERFACE_DEFINED__ | ||
| 11898 | #define __ID3D12Device3_INTERFACE_DEFINED__ | ||
| 11899 | |||
| 11900 | /* interface ID3D12Device3 */ | ||
| 11901 | /* [unique][local][object][uuid] */ | ||
| 11902 | |||
| 11903 | |||
| 11904 | EXTERN_C const IID IID_ID3D12Device3; | ||
| 11905 | |||
| 11906 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 11907 | |||
| 11908 | MIDL_INTERFACE("81dadc15-2bad-4392-93c5-101345c4aa98") | ||
| 11909 | ID3D12Device3 : public ID3D12Device2 | ||
| 11910 | { | ||
| 11911 | public: | ||
| 11912 | virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress( | ||
| 11913 | _In_ const void *pAddress, | ||
| 11914 | REFIID riid, | ||
| 11915 | _COM_Outptr_ void **ppvHeap) = 0; | ||
| 11916 | |||
| 11917 | virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromFileMapping( | ||
| 11918 | _In_ HANDLE hFileMapping, | ||
| 11919 | REFIID riid, | ||
| 11920 | _COM_Outptr_ void **ppvHeap) = 0; | ||
| 11921 | |||
| 11922 | virtual HRESULT STDMETHODCALLTYPE EnqueueMakeResident( | ||
| 11923 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 11924 | UINT NumObjects, | ||
| 11925 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 11926 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 11927 | UINT64 FenceValueToSignal) = 0; | ||
| 11928 | |||
| 11929 | }; | ||
| 11930 | |||
| 11931 | |||
| 11932 | #else /* C style interface */ | ||
| 11933 | |||
| 11934 | typedef struct ID3D12Device3Vtbl | ||
| 11935 | { | ||
| 11936 | BEGIN_INTERFACE | ||
| 11937 | |||
| 11938 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 11939 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 11940 | ID3D12Device3 * This, | ||
| 11941 | REFIID riid, | ||
| 11942 | _COM_Outptr_ void **ppvObject); | ||
| 11943 | |||
| 11944 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 11945 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 11946 | ID3D12Device3 * This); | ||
| 11947 | |||
| 11948 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 11949 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 11950 | ID3D12Device3 * This); | ||
| 11951 | |||
| 11952 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 11953 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 11954 | ID3D12Device3 * This, | ||
| 11955 | _In_ REFGUID guid, | ||
| 11956 | _Inout_ UINT *pDataSize, | ||
| 11957 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 11958 | |||
| 11959 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 11960 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 11961 | ID3D12Device3 * This, | ||
| 11962 | _In_ REFGUID guid, | ||
| 11963 | _In_ UINT DataSize, | ||
| 11964 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 11965 | |||
| 11966 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 11967 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 11968 | ID3D12Device3 * This, | ||
| 11969 | _In_ REFGUID guid, | ||
| 11970 | _In_opt_ const IUnknown *pData); | ||
| 11971 | |||
| 11972 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 11973 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 11974 | ID3D12Device3 * This, | ||
| 11975 | _In_z_ LPCWSTR Name); | ||
| 11976 | |||
| 11977 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 11978 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 11979 | ID3D12Device3 * This); | ||
| 11980 | |||
| 11981 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 11982 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 11983 | ID3D12Device3 * This, | ||
| 11984 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 11985 | REFIID riid, | ||
| 11986 | _COM_Outptr_ void **ppCommandQueue); | ||
| 11987 | |||
| 11988 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 11989 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 11990 | ID3D12Device3 * This, | ||
| 11991 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 11992 | REFIID riid, | ||
| 11993 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 11994 | |||
| 11995 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 11996 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 11997 | ID3D12Device3 * This, | ||
| 11998 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 11999 | REFIID riid, | ||
| 12000 | _COM_Outptr_ void **ppPipelineState); | ||
| 12001 | |||
| 12002 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 12003 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 12004 | ID3D12Device3 * This, | ||
| 12005 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 12006 | REFIID riid, | ||
| 12007 | _COM_Outptr_ void **ppPipelineState); | ||
| 12008 | |||
| 12009 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 12010 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 12011 | ID3D12Device3 * This, | ||
| 12012 | _In_ UINT nodeMask, | ||
| 12013 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 12014 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 12015 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 12016 | REFIID riid, | ||
| 12017 | _COM_Outptr_ void **ppCommandList); | ||
| 12018 | |||
| 12019 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 12020 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 12021 | ID3D12Device3 * This, | ||
| 12022 | D3D12_FEATURE Feature, | ||
| 12023 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 12024 | UINT FeatureSupportDataSize); | ||
| 12025 | |||
| 12026 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 12027 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 12028 | ID3D12Device3 * This, | ||
| 12029 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 12030 | REFIID riid, | ||
| 12031 | _COM_Outptr_ void **ppvHeap); | ||
| 12032 | |||
| 12033 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 12034 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 12035 | ID3D12Device3 * This, | ||
| 12036 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 12037 | |||
| 12038 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 12039 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 12040 | ID3D12Device3 * This, | ||
| 12041 | _In_ UINT nodeMask, | ||
| 12042 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 12043 | _In_ SIZE_T blobLengthInBytes, | ||
| 12044 | REFIID riid, | ||
| 12045 | _COM_Outptr_ void **ppvRootSignature); | ||
| 12046 | |||
| 12047 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 12048 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 12049 | ID3D12Device3 * This, | ||
| 12050 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 12051 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 12052 | |||
| 12053 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 12054 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 12055 | ID3D12Device3 * This, | ||
| 12056 | _In_opt_ ID3D12Resource *pResource, | ||
| 12057 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 12058 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 12059 | |||
| 12060 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 12061 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 12062 | ID3D12Device3 * This, | ||
| 12063 | _In_opt_ ID3D12Resource *pResource, | ||
| 12064 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 12065 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 12066 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 12067 | |||
| 12068 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 12069 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 12070 | ID3D12Device3 * This, | ||
| 12071 | _In_opt_ ID3D12Resource *pResource, | ||
| 12072 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 12073 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 12074 | |||
| 12075 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 12076 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 12077 | ID3D12Device3 * This, | ||
| 12078 | _In_opt_ ID3D12Resource *pResource, | ||
| 12079 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 12080 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 12081 | |||
| 12082 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 12083 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 12084 | ID3D12Device3 * This, | ||
| 12085 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 12086 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 12087 | |||
| 12088 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 12089 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 12090 | ID3D12Device3 * This, | ||
| 12091 | _In_ UINT NumDestDescriptorRanges, | ||
| 12092 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 12093 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 12094 | _In_ UINT NumSrcDescriptorRanges, | ||
| 12095 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 12096 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 12097 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 12098 | |||
| 12099 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 12100 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 12101 | ID3D12Device3 * This, | ||
| 12102 | _In_ UINT NumDescriptors, | ||
| 12103 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 12104 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 12105 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 12106 | |||
| 12107 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 12108 | #if !defined(_WIN32) | ||
| 12109 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 12110 | ID3D12Device3 * This, | ||
| 12111 | _In_ UINT visibleMask, | ||
| 12112 | _In_ UINT numResourceDescs, | ||
| 12113 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 12114 | |||
| 12115 | #else | ||
| 12116 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 12117 | ID3D12Device3 * This, | ||
| 12118 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 12119 | _In_ UINT visibleMask, | ||
| 12120 | _In_ UINT numResourceDescs, | ||
| 12121 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 12122 | |||
| 12123 | #endif | ||
| 12124 | |||
| 12125 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 12126 | #if !defined(_WIN32) | ||
| 12127 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 12128 | ID3D12Device3 * This, | ||
| 12129 | _In_ UINT nodeMask, | ||
| 12130 | D3D12_HEAP_TYPE heapType); | ||
| 12131 | |||
| 12132 | #else | ||
| 12133 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 12134 | ID3D12Device3 * This, | ||
| 12135 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 12136 | _In_ UINT nodeMask, | ||
| 12137 | D3D12_HEAP_TYPE heapType); | ||
| 12138 | |||
| 12139 | #endif | ||
| 12140 | |||
| 12141 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 12142 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 12143 | ID3D12Device3 * This, | ||
| 12144 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 12145 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 12146 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 12147 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 12148 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 12149 | REFIID riidResource, | ||
| 12150 | _COM_Outptr_opt_ void **ppvResource); | ||
| 12151 | |||
| 12152 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 12153 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 12154 | ID3D12Device3 * This, | ||
| 12155 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 12156 | REFIID riid, | ||
| 12157 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 12158 | |||
| 12159 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 12160 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 12161 | ID3D12Device3 * This, | ||
| 12162 | _In_ ID3D12Heap *pHeap, | ||
| 12163 | UINT64 HeapOffset, | ||
| 12164 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 12165 | D3D12_RESOURCE_STATES InitialState, | ||
| 12166 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 12167 | REFIID riid, | ||
| 12168 | _COM_Outptr_opt_ void **ppvResource); | ||
| 12169 | |||
| 12170 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 12171 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 12172 | ID3D12Device3 * This, | ||
| 12173 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 12174 | D3D12_RESOURCE_STATES InitialState, | ||
| 12175 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 12176 | REFIID riid, | ||
| 12177 | _COM_Outptr_opt_ void **ppvResource); | ||
| 12178 | |||
| 12179 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 12180 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 12181 | ID3D12Device3 * This, | ||
| 12182 | _In_ ID3D12DeviceChild *pObject, | ||
| 12183 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 12184 | DWORD Access, | ||
| 12185 | _In_opt_ LPCWSTR Name, | ||
| 12186 | _Out_ HANDLE *pHandle); | ||
| 12187 | |||
| 12188 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 12189 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 12190 | ID3D12Device3 * This, | ||
| 12191 | _In_ HANDLE NTHandle, | ||
| 12192 | REFIID riid, | ||
| 12193 | _COM_Outptr_opt_ void **ppvObj); | ||
| 12194 | |||
| 12195 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 12196 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 12197 | ID3D12Device3 * This, | ||
| 12198 | _In_ LPCWSTR Name, | ||
| 12199 | DWORD Access, | ||
| 12200 | /* [annotation][out] */ | ||
| 12201 | _Out_ HANDLE *pNTHandle); | ||
| 12202 | |||
| 12203 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 12204 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 12205 | ID3D12Device3 * This, | ||
| 12206 | UINT NumObjects, | ||
| 12207 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 12208 | |||
| 12209 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 12210 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 12211 | ID3D12Device3 * This, | ||
| 12212 | UINT NumObjects, | ||
| 12213 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 12214 | |||
| 12215 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 12216 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 12217 | ID3D12Device3 * This, | ||
| 12218 | UINT64 InitialValue, | ||
| 12219 | D3D12_FENCE_FLAGS Flags, | ||
| 12220 | REFIID riid, | ||
| 12221 | _COM_Outptr_ void **ppFence); | ||
| 12222 | |||
| 12223 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 12224 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 12225 | ID3D12Device3 * This); | ||
| 12226 | |||
| 12227 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 12228 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 12229 | ID3D12Device3 * This, | ||
| 12230 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 12231 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 12232 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 12233 | UINT64 BaseOffset, | ||
| 12234 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 12235 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 12236 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 12237 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 12238 | |||
| 12239 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 12240 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 12241 | ID3D12Device3 * This, | ||
| 12242 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 12243 | REFIID riid, | ||
| 12244 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 12245 | |||
| 12246 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 12247 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 12248 | ID3D12Device3 * This, | ||
| 12249 | BOOL Enable); | ||
| 12250 | |||
| 12251 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 12252 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 12253 | ID3D12Device3 * This, | ||
| 12254 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 12255 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 12256 | REFIID riid, | ||
| 12257 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 12258 | |||
| 12259 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 12260 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 12261 | ID3D12Device3 * This, | ||
| 12262 | _In_ ID3D12Resource *pTiledResource, | ||
| 12263 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 12264 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 12265 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 12266 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 12267 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 12268 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 12269 | |||
| 12270 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 12271 | #if !defined(_WIN32) | ||
| 12272 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 12273 | ID3D12Device3 * This); | ||
| 12274 | |||
| 12275 | #else | ||
| 12276 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 12277 | ID3D12Device3 * This, | ||
| 12278 | LUID * RetVal); | ||
| 12279 | |||
| 12280 | #endif | ||
| 12281 | |||
| 12282 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 12283 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 12284 | ID3D12Device3 * This, | ||
| 12285 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 12286 | SIZE_T BlobLength, | ||
| 12287 | REFIID riid, | ||
| 12288 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 12289 | |||
| 12290 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 12291 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 12292 | ID3D12Device3 * This, | ||
| 12293 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 12294 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 12295 | UINT NumFences, | ||
| 12296 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 12297 | HANDLE hEvent); | ||
| 12298 | |||
| 12299 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 12300 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 12301 | ID3D12Device3 * This, | ||
| 12302 | UINT NumObjects, | ||
| 12303 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 12304 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 12305 | |||
| 12306 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 12307 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 12308 | ID3D12Device3 * This, | ||
| 12309 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 12310 | REFIID riid, | ||
| 12311 | _COM_Outptr_ void **ppPipelineState); | ||
| 12312 | |||
| 12313 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 12314 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 12315 | ID3D12Device3 * This, | ||
| 12316 | _In_ const void *pAddress, | ||
| 12317 | REFIID riid, | ||
| 12318 | _COM_Outptr_ void **ppvHeap); | ||
| 12319 | |||
| 12320 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 12321 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 12322 | ID3D12Device3 * This, | ||
| 12323 | _In_ HANDLE hFileMapping, | ||
| 12324 | REFIID riid, | ||
| 12325 | _COM_Outptr_ void **ppvHeap); | ||
| 12326 | |||
| 12327 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 12328 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 12329 | ID3D12Device3 * This, | ||
| 12330 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 12331 | UINT NumObjects, | ||
| 12332 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 12333 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 12334 | UINT64 FenceValueToSignal); | ||
| 12335 | |||
| 12336 | END_INTERFACE | ||
| 12337 | } ID3D12Device3Vtbl; | ||
| 12338 | |||
| 12339 | interface ID3D12Device3 | ||
| 12340 | { | ||
| 12341 | CONST_VTBL struct ID3D12Device3Vtbl *lpVtbl; | ||
| 12342 | }; | ||
| 12343 | |||
| 12344 | |||
| 12345 | |||
| 12346 | #ifdef COBJMACROS | ||
| 12347 | |||
| 12348 | |||
| 12349 | #define ID3D12Device3_QueryInterface(This,riid,ppvObject) \ | ||
| 12350 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 12351 | |||
| 12352 | #define ID3D12Device3_AddRef(This) \ | ||
| 12353 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 12354 | |||
| 12355 | #define ID3D12Device3_Release(This) \ | ||
| 12356 | ( (This)->lpVtbl -> Release(This) ) | ||
| 12357 | |||
| 12358 | |||
| 12359 | #define ID3D12Device3_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 12360 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 12361 | |||
| 12362 | #define ID3D12Device3_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 12363 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 12364 | |||
| 12365 | #define ID3D12Device3_SetPrivateDataInterface(This,guid,pData) \ | ||
| 12366 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 12367 | |||
| 12368 | #define ID3D12Device3_SetName(This,Name) \ | ||
| 12369 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 12370 | |||
| 12371 | |||
| 12372 | #define ID3D12Device3_GetNodeCount(This) \ | ||
| 12373 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 12374 | |||
| 12375 | #define ID3D12Device3_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 12376 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 12377 | |||
| 12378 | #define ID3D12Device3_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 12379 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 12380 | |||
| 12381 | #define ID3D12Device3_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 12382 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 12383 | |||
| 12384 | #define ID3D12Device3_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 12385 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 12386 | |||
| 12387 | #define ID3D12Device3_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 12388 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 12389 | |||
| 12390 | #define ID3D12Device3_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 12391 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 12392 | |||
| 12393 | #define ID3D12Device3_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 12394 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 12395 | |||
| 12396 | #define ID3D12Device3_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 12397 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 12398 | |||
| 12399 | #define ID3D12Device3_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 12400 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 12401 | |||
| 12402 | #define ID3D12Device3_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 12403 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 12404 | |||
| 12405 | #define ID3D12Device3_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 12406 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 12407 | |||
| 12408 | #define ID3D12Device3_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 12409 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 12410 | |||
| 12411 | #define ID3D12Device3_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 12412 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 12413 | |||
| 12414 | #define ID3D12Device3_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 12415 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 12416 | |||
| 12417 | #define ID3D12Device3_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 12418 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 12419 | |||
| 12420 | #define ID3D12Device3_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 12421 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 12422 | |||
| 12423 | #define ID3D12Device3_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 12424 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 12425 | #if !defined(_WIN32) | ||
| 12426 | |||
| 12427 | #define ID3D12Device3_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 12428 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 12429 | #else | ||
| 12430 | #define ID3D12Device3_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 12431 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 12432 | #endif | ||
| 12433 | #if !defined(_WIN32) | ||
| 12434 | |||
| 12435 | #define ID3D12Device3_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 12436 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 12437 | #else | ||
| 12438 | #define ID3D12Device3_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 12439 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 12440 | #endif | ||
| 12441 | |||
| 12442 | #define ID3D12Device3_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 12443 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 12444 | |||
| 12445 | #define ID3D12Device3_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 12446 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 12447 | |||
| 12448 | #define ID3D12Device3_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 12449 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 12450 | |||
| 12451 | #define ID3D12Device3_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 12452 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 12453 | |||
| 12454 | #define ID3D12Device3_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 12455 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 12456 | |||
| 12457 | #define ID3D12Device3_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 12458 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 12459 | |||
| 12460 | #define ID3D12Device3_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 12461 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 12462 | |||
| 12463 | #define ID3D12Device3_MakeResident(This,NumObjects,ppObjects) \ | ||
| 12464 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 12465 | |||
| 12466 | #define ID3D12Device3_Evict(This,NumObjects,ppObjects) \ | ||
| 12467 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 12468 | |||
| 12469 | #define ID3D12Device3_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 12470 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 12471 | |||
| 12472 | #define ID3D12Device3_GetDeviceRemovedReason(This) \ | ||
| 12473 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 12474 | |||
| 12475 | #define ID3D12Device3_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 12476 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 12477 | |||
| 12478 | #define ID3D12Device3_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 12479 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 12480 | |||
| 12481 | #define ID3D12Device3_SetStablePowerState(This,Enable) \ | ||
| 12482 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 12483 | |||
| 12484 | #define ID3D12Device3_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 12485 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 12486 | |||
| 12487 | #define ID3D12Device3_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 12488 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 12489 | #if !defined(_WIN32) | ||
| 12490 | |||
| 12491 | #define ID3D12Device3_GetAdapterLuid(This) \ | ||
| 12492 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 12493 | #else | ||
| 12494 | #define ID3D12Device3_GetAdapterLuid(This,RetVal) \ | ||
| 12495 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 12496 | #endif | ||
| 12497 | |||
| 12498 | |||
| 12499 | #define ID3D12Device3_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 12500 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 12501 | |||
| 12502 | #define ID3D12Device3_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 12503 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 12504 | |||
| 12505 | #define ID3D12Device3_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 12506 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 12507 | |||
| 12508 | |||
| 12509 | #define ID3D12Device3_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 12510 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 12511 | |||
| 12512 | |||
| 12513 | #define ID3D12Device3_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 12514 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 12515 | |||
| 12516 | #define ID3D12Device3_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 12517 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 12518 | |||
| 12519 | #define ID3D12Device3_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 12520 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 12521 | |||
| 12522 | #endif /* COBJMACROS */ | ||
| 12523 | |||
| 12524 | |||
| 12525 | #endif /* C style interface */ | ||
| 12526 | |||
| 12527 | |||
| 12528 | |||
| 12529 | |||
| 12530 | #endif /* __ID3D12Device3_INTERFACE_DEFINED__ */ | ||
| 12531 | |||
| 12532 | |||
| 12533 | /* interface __MIDL_itf_d3d12_0000_0028 */ | ||
| 12534 | /* [local] */ | ||
| 12535 | |||
| 12536 | typedef | ||
| 12537 | enum D3D12_COMMAND_LIST_FLAGS | ||
| 12538 | { | ||
| 12539 | D3D12_COMMAND_LIST_FLAG_NONE = 0 | ||
| 12540 | } D3D12_COMMAND_LIST_FLAGS; | ||
| 12541 | |||
| 12542 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS ) | ||
| 12543 | typedef | ||
| 12544 | enum D3D12_COMMAND_POOL_FLAGS | ||
| 12545 | { | ||
| 12546 | D3D12_COMMAND_POOL_FLAG_NONE = 0 | ||
| 12547 | } D3D12_COMMAND_POOL_FLAGS; | ||
| 12548 | |||
| 12549 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS ) | ||
| 12550 | typedef | ||
| 12551 | enum D3D12_COMMAND_RECORDER_FLAGS | ||
| 12552 | { | ||
| 12553 | D3D12_COMMAND_RECORDER_FLAG_NONE = 0 | ||
| 12554 | } D3D12_COMMAND_RECORDER_FLAGS; | ||
| 12555 | |||
| 12556 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS ) | ||
| 12557 | typedef | ||
| 12558 | enum D3D12_PROTECTED_SESSION_STATUS | ||
| 12559 | { | ||
| 12560 | D3D12_PROTECTED_SESSION_STATUS_OK = 0, | ||
| 12561 | D3D12_PROTECTED_SESSION_STATUS_INVALID = 1 | ||
| 12562 | } D3D12_PROTECTED_SESSION_STATUS; | ||
| 12563 | |||
| 12564 | |||
| 12565 | |||
| 12566 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_c_ifspec; | ||
| 12567 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0028_v0_0_s_ifspec; | ||
| 12568 | |||
| 12569 | #ifndef __ID3D12ProtectedSession_INTERFACE_DEFINED__ | ||
| 12570 | #define __ID3D12ProtectedSession_INTERFACE_DEFINED__ | ||
| 12571 | |||
| 12572 | /* interface ID3D12ProtectedSession */ | ||
| 12573 | /* [unique][local][object][uuid] */ | ||
| 12574 | |||
| 12575 | |||
| 12576 | EXTERN_C const IID IID_ID3D12ProtectedSession; | ||
| 12577 | |||
| 12578 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 12579 | |||
| 12580 | MIDL_INTERFACE("A1533D18-0AC1-4084-85B9-89A96116806B") | ||
| 12581 | ID3D12ProtectedSession : public ID3D12DeviceChild | ||
| 12582 | { | ||
| 12583 | public: | ||
| 12584 | virtual HRESULT STDMETHODCALLTYPE GetStatusFence( | ||
| 12585 | REFIID riid, | ||
| 12586 | _COM_Outptr_opt_ void **ppFence) = 0; | ||
| 12587 | |||
| 12588 | virtual D3D12_PROTECTED_SESSION_STATUS STDMETHODCALLTYPE GetSessionStatus( void) = 0; | ||
| 12589 | |||
| 12590 | }; | ||
| 12591 | |||
| 12592 | |||
| 12593 | #else /* C style interface */ | ||
| 12594 | |||
| 12595 | typedef struct ID3D12ProtectedSessionVtbl | ||
| 12596 | { | ||
| 12597 | BEGIN_INTERFACE | ||
| 12598 | |||
| 12599 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 12600 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 12601 | ID3D12ProtectedSession * This, | ||
| 12602 | REFIID riid, | ||
| 12603 | _COM_Outptr_ void **ppvObject); | ||
| 12604 | |||
| 12605 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 12606 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 12607 | ID3D12ProtectedSession * This); | ||
| 12608 | |||
| 12609 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 12610 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 12611 | ID3D12ProtectedSession * This); | ||
| 12612 | |||
| 12613 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 12614 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 12615 | ID3D12ProtectedSession * This, | ||
| 12616 | _In_ REFGUID guid, | ||
| 12617 | _Inout_ UINT *pDataSize, | ||
| 12618 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 12619 | |||
| 12620 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 12621 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 12622 | ID3D12ProtectedSession * This, | ||
| 12623 | _In_ REFGUID guid, | ||
| 12624 | _In_ UINT DataSize, | ||
| 12625 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 12626 | |||
| 12627 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 12628 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 12629 | ID3D12ProtectedSession * This, | ||
| 12630 | _In_ REFGUID guid, | ||
| 12631 | _In_opt_ const IUnknown *pData); | ||
| 12632 | |||
| 12633 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 12634 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 12635 | ID3D12ProtectedSession * This, | ||
| 12636 | _In_z_ LPCWSTR Name); | ||
| 12637 | |||
| 12638 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 12639 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 12640 | ID3D12ProtectedSession * This, | ||
| 12641 | REFIID riid, | ||
| 12642 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 12643 | |||
| 12644 | DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence) | ||
| 12645 | HRESULT ( STDMETHODCALLTYPE *GetStatusFence )( | ||
| 12646 | ID3D12ProtectedSession * This, | ||
| 12647 | REFIID riid, | ||
| 12648 | _COM_Outptr_opt_ void **ppFence); | ||
| 12649 | |||
| 12650 | DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus) | ||
| 12651 | D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )( | ||
| 12652 | ID3D12ProtectedSession * This); | ||
| 12653 | |||
| 12654 | END_INTERFACE | ||
| 12655 | } ID3D12ProtectedSessionVtbl; | ||
| 12656 | |||
| 12657 | interface ID3D12ProtectedSession | ||
| 12658 | { | ||
| 12659 | CONST_VTBL struct ID3D12ProtectedSessionVtbl *lpVtbl; | ||
| 12660 | }; | ||
| 12661 | |||
| 12662 | |||
| 12663 | |||
| 12664 | #ifdef COBJMACROS | ||
| 12665 | |||
| 12666 | |||
| 12667 | #define ID3D12ProtectedSession_QueryInterface(This,riid,ppvObject) \ | ||
| 12668 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 12669 | |||
| 12670 | #define ID3D12ProtectedSession_AddRef(This) \ | ||
| 12671 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 12672 | |||
| 12673 | #define ID3D12ProtectedSession_Release(This) \ | ||
| 12674 | ( (This)->lpVtbl -> Release(This) ) | ||
| 12675 | |||
| 12676 | |||
| 12677 | #define ID3D12ProtectedSession_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 12678 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 12679 | |||
| 12680 | #define ID3D12ProtectedSession_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 12681 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 12682 | |||
| 12683 | #define ID3D12ProtectedSession_SetPrivateDataInterface(This,guid,pData) \ | ||
| 12684 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 12685 | |||
| 12686 | #define ID3D12ProtectedSession_SetName(This,Name) \ | ||
| 12687 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 12688 | |||
| 12689 | |||
| 12690 | #define ID3D12ProtectedSession_GetDevice(This,riid,ppvDevice) \ | ||
| 12691 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 12692 | |||
| 12693 | |||
| 12694 | #define ID3D12ProtectedSession_GetStatusFence(This,riid,ppFence) \ | ||
| 12695 | ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) ) | ||
| 12696 | |||
| 12697 | #define ID3D12ProtectedSession_GetSessionStatus(This) \ | ||
| 12698 | ( (This)->lpVtbl -> GetSessionStatus(This) ) | ||
| 12699 | |||
| 12700 | #endif /* COBJMACROS */ | ||
| 12701 | |||
| 12702 | |||
| 12703 | #endif /* C style interface */ | ||
| 12704 | |||
| 12705 | |||
| 12706 | |||
| 12707 | |||
| 12708 | #endif /* __ID3D12ProtectedSession_INTERFACE_DEFINED__ */ | ||
| 12709 | |||
| 12710 | |||
| 12711 | /* interface __MIDL_itf_d3d12_0000_0029 */ | ||
| 12712 | /* [local] */ | ||
| 12713 | |||
| 12714 | typedef | ||
| 12715 | enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS | ||
| 12716 | { | ||
| 12717 | D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0, | ||
| 12718 | D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1 | ||
| 12719 | } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS; | ||
| 12720 | |||
| 12721 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS ) | ||
| 12722 | typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT | ||
| 12723 | { | ||
| 12724 | UINT NodeIndex; | ||
| 12725 | D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support; | ||
| 12726 | } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT; | ||
| 12727 | |||
| 12728 | typedef | ||
| 12729 | enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS | ||
| 12730 | { | ||
| 12731 | D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0 | ||
| 12732 | } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS; | ||
| 12733 | |||
| 12734 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS ) | ||
| 12735 | typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC | ||
| 12736 | { | ||
| 12737 | UINT NodeMask; | ||
| 12738 | D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; | ||
| 12739 | } D3D12_PROTECTED_RESOURCE_SESSION_DESC; | ||
| 12740 | |||
| 12741 | |||
| 12742 | |||
| 12743 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_c_ifspec; | ||
| 12744 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0029_v0_0_s_ifspec; | ||
| 12745 | |||
| 12746 | #ifndef __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ | ||
| 12747 | #define __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ | ||
| 12748 | |||
| 12749 | /* interface ID3D12ProtectedResourceSession */ | ||
| 12750 | /* [unique][local][object][uuid] */ | ||
| 12751 | |||
| 12752 | |||
| 12753 | EXTERN_C const IID IID_ID3D12ProtectedResourceSession; | ||
| 12754 | |||
| 12755 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 12756 | |||
| 12757 | MIDL_INTERFACE("6CD696F4-F289-40CC-8091-5A6C0A099C3D") | ||
| 12758 | ID3D12ProtectedResourceSession : public ID3D12ProtectedSession | ||
| 12759 | { | ||
| 12760 | public: | ||
| 12761 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 12762 | virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 12763 | #else | ||
| 12764 | virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 12765 | D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal) = 0; | ||
| 12766 | #endif | ||
| 12767 | |||
| 12768 | }; | ||
| 12769 | |||
| 12770 | |||
| 12771 | #else /* C style interface */ | ||
| 12772 | |||
| 12773 | typedef struct ID3D12ProtectedResourceSessionVtbl | ||
| 12774 | { | ||
| 12775 | BEGIN_INTERFACE | ||
| 12776 | |||
| 12777 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 12778 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 12779 | ID3D12ProtectedResourceSession * This, | ||
| 12780 | REFIID riid, | ||
| 12781 | _COM_Outptr_ void **ppvObject); | ||
| 12782 | |||
| 12783 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 12784 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 12785 | ID3D12ProtectedResourceSession * This); | ||
| 12786 | |||
| 12787 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 12788 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 12789 | ID3D12ProtectedResourceSession * This); | ||
| 12790 | |||
| 12791 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 12792 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 12793 | ID3D12ProtectedResourceSession * This, | ||
| 12794 | _In_ REFGUID guid, | ||
| 12795 | _Inout_ UINT *pDataSize, | ||
| 12796 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 12797 | |||
| 12798 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 12799 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 12800 | ID3D12ProtectedResourceSession * This, | ||
| 12801 | _In_ REFGUID guid, | ||
| 12802 | _In_ UINT DataSize, | ||
| 12803 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 12804 | |||
| 12805 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 12806 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 12807 | ID3D12ProtectedResourceSession * This, | ||
| 12808 | _In_ REFGUID guid, | ||
| 12809 | _In_opt_ const IUnknown *pData); | ||
| 12810 | |||
| 12811 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 12812 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 12813 | ID3D12ProtectedResourceSession * This, | ||
| 12814 | _In_z_ LPCWSTR Name); | ||
| 12815 | |||
| 12816 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 12817 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 12818 | ID3D12ProtectedResourceSession * This, | ||
| 12819 | REFIID riid, | ||
| 12820 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 12821 | |||
| 12822 | DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence) | ||
| 12823 | HRESULT ( STDMETHODCALLTYPE *GetStatusFence )( | ||
| 12824 | ID3D12ProtectedResourceSession * This, | ||
| 12825 | REFIID riid, | ||
| 12826 | _COM_Outptr_opt_ void **ppFence); | ||
| 12827 | |||
| 12828 | DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus) | ||
| 12829 | D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )( | ||
| 12830 | ID3D12ProtectedResourceSession * This); | ||
| 12831 | |||
| 12832 | DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc) | ||
| 12833 | #if !defined(_WIN32) | ||
| 12834 | D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 12835 | ID3D12ProtectedResourceSession * This); | ||
| 12836 | |||
| 12837 | #else | ||
| 12838 | D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 12839 | ID3D12ProtectedResourceSession * This, | ||
| 12840 | D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal); | ||
| 12841 | |||
| 12842 | #endif | ||
| 12843 | |||
| 12844 | END_INTERFACE | ||
| 12845 | } ID3D12ProtectedResourceSessionVtbl; | ||
| 12846 | |||
| 12847 | interface ID3D12ProtectedResourceSession | ||
| 12848 | { | ||
| 12849 | CONST_VTBL struct ID3D12ProtectedResourceSessionVtbl *lpVtbl; | ||
| 12850 | }; | ||
| 12851 | |||
| 12852 | |||
| 12853 | |||
| 12854 | #ifdef COBJMACROS | ||
| 12855 | |||
| 12856 | |||
| 12857 | #define ID3D12ProtectedResourceSession_QueryInterface(This,riid,ppvObject) \ | ||
| 12858 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 12859 | |||
| 12860 | #define ID3D12ProtectedResourceSession_AddRef(This) \ | ||
| 12861 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 12862 | |||
| 12863 | #define ID3D12ProtectedResourceSession_Release(This) \ | ||
| 12864 | ( (This)->lpVtbl -> Release(This) ) | ||
| 12865 | |||
| 12866 | |||
| 12867 | #define ID3D12ProtectedResourceSession_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 12868 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 12869 | |||
| 12870 | #define ID3D12ProtectedResourceSession_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 12871 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 12872 | |||
| 12873 | #define ID3D12ProtectedResourceSession_SetPrivateDataInterface(This,guid,pData) \ | ||
| 12874 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 12875 | |||
| 12876 | #define ID3D12ProtectedResourceSession_SetName(This,Name) \ | ||
| 12877 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 12878 | |||
| 12879 | |||
| 12880 | #define ID3D12ProtectedResourceSession_GetDevice(This,riid,ppvDevice) \ | ||
| 12881 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 12882 | |||
| 12883 | |||
| 12884 | #define ID3D12ProtectedResourceSession_GetStatusFence(This,riid,ppFence) \ | ||
| 12885 | ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) ) | ||
| 12886 | |||
| 12887 | #define ID3D12ProtectedResourceSession_GetSessionStatus(This) \ | ||
| 12888 | ( (This)->lpVtbl -> GetSessionStatus(This) ) | ||
| 12889 | |||
| 12890 | #if !defined(_WIN32) | ||
| 12891 | |||
| 12892 | #define ID3D12ProtectedResourceSession_GetDesc(This) \ | ||
| 12893 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 12894 | #else | ||
| 12895 | #define ID3D12ProtectedResourceSession_GetDesc(This,RetVal) \ | ||
| 12896 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 12897 | #endif | ||
| 12898 | |||
| 12899 | #endif /* COBJMACROS */ | ||
| 12900 | |||
| 12901 | |||
| 12902 | #endif /* C style interface */ | ||
| 12903 | |||
| 12904 | |||
| 12905 | |||
| 12906 | |||
| 12907 | #endif /* __ID3D12ProtectedResourceSession_INTERFACE_DEFINED__ */ | ||
| 12908 | |||
| 12909 | |||
| 12910 | #ifndef __ID3D12Device4_INTERFACE_DEFINED__ | ||
| 12911 | #define __ID3D12Device4_INTERFACE_DEFINED__ | ||
| 12912 | |||
| 12913 | /* interface ID3D12Device4 */ | ||
| 12914 | /* [unique][local][object][uuid] */ | ||
| 12915 | |||
| 12916 | |||
| 12917 | EXTERN_C const IID IID_ID3D12Device4; | ||
| 12918 | |||
| 12919 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 12920 | |||
| 12921 | MIDL_INTERFACE("e865df17-a9ee-46f9-a463-3098315aa2e5") | ||
| 12922 | ID3D12Device4 : public ID3D12Device3 | ||
| 12923 | { | ||
| 12924 | public: | ||
| 12925 | virtual HRESULT STDMETHODCALLTYPE CreateCommandList1( | ||
| 12926 | _In_ UINT nodeMask, | ||
| 12927 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 12928 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 12929 | REFIID riid, | ||
| 12930 | _COM_Outptr_ void **ppCommandList) = 0; | ||
| 12931 | |||
| 12932 | virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession( | ||
| 12933 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 12934 | _In_ REFIID riid, | ||
| 12935 | _COM_Outptr_ void **ppSession) = 0; | ||
| 12936 | |||
| 12937 | virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource1( | ||
| 12938 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 12939 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 12940 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 12941 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 12942 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 12943 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 12944 | REFIID riidResource, | ||
| 12945 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 12946 | |||
| 12947 | virtual HRESULT STDMETHODCALLTYPE CreateHeap1( | ||
| 12948 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 12949 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 12950 | REFIID riid, | ||
| 12951 | _COM_Outptr_opt_ void **ppvHeap) = 0; | ||
| 12952 | |||
| 12953 | virtual HRESULT STDMETHODCALLTYPE CreateReservedResource1( | ||
| 12954 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 12955 | D3D12_RESOURCE_STATES InitialState, | ||
| 12956 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 12957 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 12958 | REFIID riid, | ||
| 12959 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 12960 | |||
| 12961 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 12962 | virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo1( | ||
| 12963 | UINT visibleMask, | ||
| 12964 | UINT numResourceDescs, | ||
| 12965 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 12966 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; | ||
| 12967 | #else | ||
| 12968 | virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo1( | ||
| 12969 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 12970 | UINT visibleMask, | ||
| 12971 | UINT numResourceDescs, | ||
| 12972 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 12973 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; | ||
| 12974 | #endif | ||
| 12975 | |||
| 12976 | }; | ||
| 12977 | |||
| 12978 | |||
| 12979 | #else /* C style interface */ | ||
| 12980 | |||
| 12981 | typedef struct ID3D12Device4Vtbl | ||
| 12982 | { | ||
| 12983 | BEGIN_INTERFACE | ||
| 12984 | |||
| 12985 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 12986 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 12987 | ID3D12Device4 * This, | ||
| 12988 | REFIID riid, | ||
| 12989 | _COM_Outptr_ void **ppvObject); | ||
| 12990 | |||
| 12991 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 12992 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 12993 | ID3D12Device4 * This); | ||
| 12994 | |||
| 12995 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 12996 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 12997 | ID3D12Device4 * This); | ||
| 12998 | |||
| 12999 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 13000 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 13001 | ID3D12Device4 * This, | ||
| 13002 | _In_ REFGUID guid, | ||
| 13003 | _Inout_ UINT *pDataSize, | ||
| 13004 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 13005 | |||
| 13006 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 13007 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 13008 | ID3D12Device4 * This, | ||
| 13009 | _In_ REFGUID guid, | ||
| 13010 | _In_ UINT DataSize, | ||
| 13011 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 13012 | |||
| 13013 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 13014 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 13015 | ID3D12Device4 * This, | ||
| 13016 | _In_ REFGUID guid, | ||
| 13017 | _In_opt_ const IUnknown *pData); | ||
| 13018 | |||
| 13019 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 13020 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 13021 | ID3D12Device4 * This, | ||
| 13022 | _In_z_ LPCWSTR Name); | ||
| 13023 | |||
| 13024 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 13025 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 13026 | ID3D12Device4 * This); | ||
| 13027 | |||
| 13028 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 13029 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 13030 | ID3D12Device4 * This, | ||
| 13031 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 13032 | REFIID riid, | ||
| 13033 | _COM_Outptr_ void **ppCommandQueue); | ||
| 13034 | |||
| 13035 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 13036 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 13037 | ID3D12Device4 * This, | ||
| 13038 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 13039 | REFIID riid, | ||
| 13040 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 13041 | |||
| 13042 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 13043 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 13044 | ID3D12Device4 * This, | ||
| 13045 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 13046 | REFIID riid, | ||
| 13047 | _COM_Outptr_ void **ppPipelineState); | ||
| 13048 | |||
| 13049 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 13050 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 13051 | ID3D12Device4 * This, | ||
| 13052 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 13053 | REFIID riid, | ||
| 13054 | _COM_Outptr_ void **ppPipelineState); | ||
| 13055 | |||
| 13056 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 13057 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 13058 | ID3D12Device4 * This, | ||
| 13059 | _In_ UINT nodeMask, | ||
| 13060 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 13061 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 13062 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 13063 | REFIID riid, | ||
| 13064 | _COM_Outptr_ void **ppCommandList); | ||
| 13065 | |||
| 13066 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 13067 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 13068 | ID3D12Device4 * This, | ||
| 13069 | D3D12_FEATURE Feature, | ||
| 13070 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 13071 | UINT FeatureSupportDataSize); | ||
| 13072 | |||
| 13073 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 13074 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 13075 | ID3D12Device4 * This, | ||
| 13076 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 13077 | REFIID riid, | ||
| 13078 | _COM_Outptr_ void **ppvHeap); | ||
| 13079 | |||
| 13080 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 13081 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 13082 | ID3D12Device4 * This, | ||
| 13083 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 13084 | |||
| 13085 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 13086 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 13087 | ID3D12Device4 * This, | ||
| 13088 | _In_ UINT nodeMask, | ||
| 13089 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 13090 | _In_ SIZE_T blobLengthInBytes, | ||
| 13091 | REFIID riid, | ||
| 13092 | _COM_Outptr_ void **ppvRootSignature); | ||
| 13093 | |||
| 13094 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 13095 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 13096 | ID3D12Device4 * This, | ||
| 13097 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 13098 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 13099 | |||
| 13100 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 13101 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 13102 | ID3D12Device4 * This, | ||
| 13103 | _In_opt_ ID3D12Resource *pResource, | ||
| 13104 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 13105 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 13106 | |||
| 13107 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 13108 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 13109 | ID3D12Device4 * This, | ||
| 13110 | _In_opt_ ID3D12Resource *pResource, | ||
| 13111 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 13112 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 13113 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 13114 | |||
| 13115 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 13116 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 13117 | ID3D12Device4 * This, | ||
| 13118 | _In_opt_ ID3D12Resource *pResource, | ||
| 13119 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 13120 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 13121 | |||
| 13122 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 13123 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 13124 | ID3D12Device4 * This, | ||
| 13125 | _In_opt_ ID3D12Resource *pResource, | ||
| 13126 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 13127 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 13128 | |||
| 13129 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 13130 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 13131 | ID3D12Device4 * This, | ||
| 13132 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 13133 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 13134 | |||
| 13135 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 13136 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 13137 | ID3D12Device4 * This, | ||
| 13138 | _In_ UINT NumDestDescriptorRanges, | ||
| 13139 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 13140 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 13141 | _In_ UINT NumSrcDescriptorRanges, | ||
| 13142 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 13143 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 13144 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 13145 | |||
| 13146 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 13147 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 13148 | ID3D12Device4 * This, | ||
| 13149 | _In_ UINT NumDescriptors, | ||
| 13150 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 13151 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 13152 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 13153 | |||
| 13154 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 13155 | #if !defined(_WIN32) | ||
| 13156 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 13157 | ID3D12Device4 * This, | ||
| 13158 | _In_ UINT visibleMask, | ||
| 13159 | _In_ UINT numResourceDescs, | ||
| 13160 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 13161 | |||
| 13162 | #else | ||
| 13163 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 13164 | ID3D12Device4 * This, | ||
| 13165 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 13166 | _In_ UINT visibleMask, | ||
| 13167 | _In_ UINT numResourceDescs, | ||
| 13168 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 13169 | |||
| 13170 | #endif | ||
| 13171 | |||
| 13172 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 13173 | #if !defined(_WIN32) | ||
| 13174 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 13175 | ID3D12Device4 * This, | ||
| 13176 | _In_ UINT nodeMask, | ||
| 13177 | D3D12_HEAP_TYPE heapType); | ||
| 13178 | |||
| 13179 | #else | ||
| 13180 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 13181 | ID3D12Device4 * This, | ||
| 13182 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 13183 | _In_ UINT nodeMask, | ||
| 13184 | D3D12_HEAP_TYPE heapType); | ||
| 13185 | |||
| 13186 | #endif | ||
| 13187 | |||
| 13188 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 13189 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 13190 | ID3D12Device4 * This, | ||
| 13191 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 13192 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 13193 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 13194 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 13195 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 13196 | REFIID riidResource, | ||
| 13197 | _COM_Outptr_opt_ void **ppvResource); | ||
| 13198 | |||
| 13199 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 13200 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 13201 | ID3D12Device4 * This, | ||
| 13202 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 13203 | REFIID riid, | ||
| 13204 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 13205 | |||
| 13206 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 13207 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 13208 | ID3D12Device4 * This, | ||
| 13209 | _In_ ID3D12Heap *pHeap, | ||
| 13210 | UINT64 HeapOffset, | ||
| 13211 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 13212 | D3D12_RESOURCE_STATES InitialState, | ||
| 13213 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 13214 | REFIID riid, | ||
| 13215 | _COM_Outptr_opt_ void **ppvResource); | ||
| 13216 | |||
| 13217 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 13218 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 13219 | ID3D12Device4 * This, | ||
| 13220 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 13221 | D3D12_RESOURCE_STATES InitialState, | ||
| 13222 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 13223 | REFIID riid, | ||
| 13224 | _COM_Outptr_opt_ void **ppvResource); | ||
| 13225 | |||
| 13226 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 13227 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 13228 | ID3D12Device4 * This, | ||
| 13229 | _In_ ID3D12DeviceChild *pObject, | ||
| 13230 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 13231 | DWORD Access, | ||
| 13232 | _In_opt_ LPCWSTR Name, | ||
| 13233 | _Out_ HANDLE *pHandle); | ||
| 13234 | |||
| 13235 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 13236 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 13237 | ID3D12Device4 * This, | ||
| 13238 | _In_ HANDLE NTHandle, | ||
| 13239 | REFIID riid, | ||
| 13240 | _COM_Outptr_opt_ void **ppvObj); | ||
| 13241 | |||
| 13242 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 13243 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 13244 | ID3D12Device4 * This, | ||
| 13245 | _In_ LPCWSTR Name, | ||
| 13246 | DWORD Access, | ||
| 13247 | /* [annotation][out] */ | ||
| 13248 | _Out_ HANDLE *pNTHandle); | ||
| 13249 | |||
| 13250 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 13251 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 13252 | ID3D12Device4 * This, | ||
| 13253 | UINT NumObjects, | ||
| 13254 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 13255 | |||
| 13256 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 13257 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 13258 | ID3D12Device4 * This, | ||
| 13259 | UINT NumObjects, | ||
| 13260 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 13261 | |||
| 13262 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 13263 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 13264 | ID3D12Device4 * This, | ||
| 13265 | UINT64 InitialValue, | ||
| 13266 | D3D12_FENCE_FLAGS Flags, | ||
| 13267 | REFIID riid, | ||
| 13268 | _COM_Outptr_ void **ppFence); | ||
| 13269 | |||
| 13270 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 13271 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 13272 | ID3D12Device4 * This); | ||
| 13273 | |||
| 13274 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 13275 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 13276 | ID3D12Device4 * This, | ||
| 13277 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 13278 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 13279 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 13280 | UINT64 BaseOffset, | ||
| 13281 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 13282 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 13283 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 13284 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 13285 | |||
| 13286 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 13287 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 13288 | ID3D12Device4 * This, | ||
| 13289 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 13290 | REFIID riid, | ||
| 13291 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 13292 | |||
| 13293 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 13294 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 13295 | ID3D12Device4 * This, | ||
| 13296 | BOOL Enable); | ||
| 13297 | |||
| 13298 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 13299 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 13300 | ID3D12Device4 * This, | ||
| 13301 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 13302 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 13303 | REFIID riid, | ||
| 13304 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 13305 | |||
| 13306 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 13307 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 13308 | ID3D12Device4 * This, | ||
| 13309 | _In_ ID3D12Resource *pTiledResource, | ||
| 13310 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 13311 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 13312 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 13313 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 13314 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 13315 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 13316 | |||
| 13317 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 13318 | #if !defined(_WIN32) | ||
| 13319 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 13320 | ID3D12Device4 * This); | ||
| 13321 | |||
| 13322 | #else | ||
| 13323 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 13324 | ID3D12Device4 * This, | ||
| 13325 | LUID * RetVal); | ||
| 13326 | |||
| 13327 | #endif | ||
| 13328 | |||
| 13329 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 13330 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 13331 | ID3D12Device4 * This, | ||
| 13332 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 13333 | SIZE_T BlobLength, | ||
| 13334 | REFIID riid, | ||
| 13335 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 13336 | |||
| 13337 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 13338 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 13339 | ID3D12Device4 * This, | ||
| 13340 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 13341 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 13342 | UINT NumFences, | ||
| 13343 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 13344 | HANDLE hEvent); | ||
| 13345 | |||
| 13346 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 13347 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 13348 | ID3D12Device4 * This, | ||
| 13349 | UINT NumObjects, | ||
| 13350 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 13351 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 13352 | |||
| 13353 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 13354 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 13355 | ID3D12Device4 * This, | ||
| 13356 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 13357 | REFIID riid, | ||
| 13358 | _COM_Outptr_ void **ppPipelineState); | ||
| 13359 | |||
| 13360 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 13361 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 13362 | ID3D12Device4 * This, | ||
| 13363 | _In_ const void *pAddress, | ||
| 13364 | REFIID riid, | ||
| 13365 | _COM_Outptr_ void **ppvHeap); | ||
| 13366 | |||
| 13367 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 13368 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 13369 | ID3D12Device4 * This, | ||
| 13370 | _In_ HANDLE hFileMapping, | ||
| 13371 | REFIID riid, | ||
| 13372 | _COM_Outptr_ void **ppvHeap); | ||
| 13373 | |||
| 13374 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 13375 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 13376 | ID3D12Device4 * This, | ||
| 13377 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 13378 | UINT NumObjects, | ||
| 13379 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 13380 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 13381 | UINT64 FenceValueToSignal); | ||
| 13382 | |||
| 13383 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 13384 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 13385 | ID3D12Device4 * This, | ||
| 13386 | _In_ UINT nodeMask, | ||
| 13387 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 13388 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 13389 | REFIID riid, | ||
| 13390 | _COM_Outptr_ void **ppCommandList); | ||
| 13391 | |||
| 13392 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 13393 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 13394 | ID3D12Device4 * This, | ||
| 13395 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 13396 | _In_ REFIID riid, | ||
| 13397 | _COM_Outptr_ void **ppSession); | ||
| 13398 | |||
| 13399 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 13400 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 13401 | ID3D12Device4 * This, | ||
| 13402 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 13403 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 13404 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 13405 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 13406 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 13407 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 13408 | REFIID riidResource, | ||
| 13409 | _COM_Outptr_opt_ void **ppvResource); | ||
| 13410 | |||
| 13411 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 13412 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 13413 | ID3D12Device4 * This, | ||
| 13414 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 13415 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 13416 | REFIID riid, | ||
| 13417 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 13418 | |||
| 13419 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 13420 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 13421 | ID3D12Device4 * This, | ||
| 13422 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 13423 | D3D12_RESOURCE_STATES InitialState, | ||
| 13424 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 13425 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 13426 | REFIID riid, | ||
| 13427 | _COM_Outptr_opt_ void **ppvResource); | ||
| 13428 | |||
| 13429 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 13430 | #if !defined(_WIN32) | ||
| 13431 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 13432 | ID3D12Device4 * This, | ||
| 13433 | UINT visibleMask, | ||
| 13434 | UINT numResourceDescs, | ||
| 13435 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 13436 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 13437 | |||
| 13438 | #else | ||
| 13439 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 13440 | ID3D12Device4 * This, | ||
| 13441 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 13442 | UINT visibleMask, | ||
| 13443 | UINT numResourceDescs, | ||
| 13444 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 13445 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 13446 | |||
| 13447 | #endif | ||
| 13448 | |||
| 13449 | END_INTERFACE | ||
| 13450 | } ID3D12Device4Vtbl; | ||
| 13451 | |||
| 13452 | interface ID3D12Device4 | ||
| 13453 | { | ||
| 13454 | CONST_VTBL struct ID3D12Device4Vtbl *lpVtbl; | ||
| 13455 | }; | ||
| 13456 | |||
| 13457 | |||
| 13458 | |||
| 13459 | #ifdef COBJMACROS | ||
| 13460 | |||
| 13461 | |||
| 13462 | #define ID3D12Device4_QueryInterface(This,riid,ppvObject) \ | ||
| 13463 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 13464 | |||
| 13465 | #define ID3D12Device4_AddRef(This) \ | ||
| 13466 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 13467 | |||
| 13468 | #define ID3D12Device4_Release(This) \ | ||
| 13469 | ( (This)->lpVtbl -> Release(This) ) | ||
| 13470 | |||
| 13471 | |||
| 13472 | #define ID3D12Device4_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 13473 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 13474 | |||
| 13475 | #define ID3D12Device4_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 13476 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 13477 | |||
| 13478 | #define ID3D12Device4_SetPrivateDataInterface(This,guid,pData) \ | ||
| 13479 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 13480 | |||
| 13481 | #define ID3D12Device4_SetName(This,Name) \ | ||
| 13482 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 13483 | |||
| 13484 | |||
| 13485 | #define ID3D12Device4_GetNodeCount(This) \ | ||
| 13486 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 13487 | |||
| 13488 | #define ID3D12Device4_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 13489 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 13490 | |||
| 13491 | #define ID3D12Device4_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 13492 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 13493 | |||
| 13494 | #define ID3D12Device4_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 13495 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 13496 | |||
| 13497 | #define ID3D12Device4_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 13498 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 13499 | |||
| 13500 | #define ID3D12Device4_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 13501 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 13502 | |||
| 13503 | #define ID3D12Device4_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 13504 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 13505 | |||
| 13506 | #define ID3D12Device4_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 13507 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 13508 | |||
| 13509 | #define ID3D12Device4_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 13510 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 13511 | |||
| 13512 | #define ID3D12Device4_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 13513 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 13514 | |||
| 13515 | #define ID3D12Device4_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 13516 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 13517 | |||
| 13518 | #define ID3D12Device4_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 13519 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 13520 | |||
| 13521 | #define ID3D12Device4_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 13522 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 13523 | |||
| 13524 | #define ID3D12Device4_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 13525 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 13526 | |||
| 13527 | #define ID3D12Device4_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 13528 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 13529 | |||
| 13530 | #define ID3D12Device4_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 13531 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 13532 | |||
| 13533 | #define ID3D12Device4_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 13534 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 13535 | |||
| 13536 | #define ID3D12Device4_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 13537 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 13538 | #if !defined(_WIN32) | ||
| 13539 | |||
| 13540 | #define ID3D12Device4_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 13541 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 13542 | #else | ||
| 13543 | #define ID3D12Device4_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 13544 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 13545 | #endif | ||
| 13546 | #if !defined(_WIN32) | ||
| 13547 | |||
| 13548 | #define ID3D12Device4_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 13549 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 13550 | #else | ||
| 13551 | #define ID3D12Device4_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 13552 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 13553 | #endif | ||
| 13554 | |||
| 13555 | #define ID3D12Device4_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 13556 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 13557 | |||
| 13558 | #define ID3D12Device4_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 13559 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 13560 | |||
| 13561 | #define ID3D12Device4_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 13562 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 13563 | |||
| 13564 | #define ID3D12Device4_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 13565 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 13566 | |||
| 13567 | #define ID3D12Device4_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 13568 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 13569 | |||
| 13570 | #define ID3D12Device4_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 13571 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 13572 | |||
| 13573 | #define ID3D12Device4_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 13574 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 13575 | |||
| 13576 | #define ID3D12Device4_MakeResident(This,NumObjects,ppObjects) \ | ||
| 13577 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 13578 | |||
| 13579 | #define ID3D12Device4_Evict(This,NumObjects,ppObjects) \ | ||
| 13580 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 13581 | |||
| 13582 | #define ID3D12Device4_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 13583 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 13584 | |||
| 13585 | #define ID3D12Device4_GetDeviceRemovedReason(This) \ | ||
| 13586 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 13587 | |||
| 13588 | #define ID3D12Device4_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 13589 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 13590 | |||
| 13591 | #define ID3D12Device4_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 13592 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 13593 | |||
| 13594 | #define ID3D12Device4_SetStablePowerState(This,Enable) \ | ||
| 13595 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 13596 | |||
| 13597 | #define ID3D12Device4_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 13598 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 13599 | |||
| 13600 | #define ID3D12Device4_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 13601 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 13602 | #if !defined(_WIN32) | ||
| 13603 | |||
| 13604 | #define ID3D12Device4_GetAdapterLuid(This) \ | ||
| 13605 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 13606 | #else | ||
| 13607 | #define ID3D12Device4_GetAdapterLuid(This,RetVal) \ | ||
| 13608 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 13609 | #endif | ||
| 13610 | |||
| 13611 | |||
| 13612 | #define ID3D12Device4_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 13613 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 13614 | |||
| 13615 | #define ID3D12Device4_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 13616 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 13617 | |||
| 13618 | #define ID3D12Device4_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 13619 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 13620 | |||
| 13621 | |||
| 13622 | #define ID3D12Device4_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 13623 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 13624 | |||
| 13625 | |||
| 13626 | #define ID3D12Device4_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 13627 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 13628 | |||
| 13629 | #define ID3D12Device4_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 13630 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 13631 | |||
| 13632 | #define ID3D12Device4_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 13633 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 13634 | |||
| 13635 | |||
| 13636 | #define ID3D12Device4_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 13637 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 13638 | |||
| 13639 | #define ID3D12Device4_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 13640 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 13641 | |||
| 13642 | #define ID3D12Device4_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 13643 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 13644 | |||
| 13645 | #define ID3D12Device4_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 13646 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 13647 | |||
| 13648 | #define ID3D12Device4_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 13649 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 13650 | #if !defined(_WIN32) | ||
| 13651 | |||
| 13652 | #define ID3D12Device4_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 13653 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 13654 | #else | ||
| 13655 | #define ID3D12Device4_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 13656 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 13657 | #endif | ||
| 13658 | |||
| 13659 | #endif /* COBJMACROS */ | ||
| 13660 | |||
| 13661 | |||
| 13662 | #endif /* C style interface */ | ||
| 13663 | |||
| 13664 | |||
| 13665 | |||
| 13666 | |||
| 13667 | #endif /* __ID3D12Device4_INTERFACE_DEFINED__ */ | ||
| 13668 | |||
| 13669 | |||
| 13670 | /* interface __MIDL_itf_d3d12_0000_0031 */ | ||
| 13671 | /* [local] */ | ||
| 13672 | |||
| 13673 | typedef | ||
| 13674 | enum D3D12_LIFETIME_STATE | ||
| 13675 | { | ||
| 13676 | D3D12_LIFETIME_STATE_IN_USE = 0, | ||
| 13677 | D3D12_LIFETIME_STATE_NOT_IN_USE = ( D3D12_LIFETIME_STATE_IN_USE + 1 ) | ||
| 13678 | } D3D12_LIFETIME_STATE; | ||
| 13679 | |||
| 13680 | |||
| 13681 | |||
| 13682 | |||
| 13683 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_c_ifspec; | ||
| 13684 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0031_v0_0_s_ifspec; | ||
| 13685 | |||
| 13686 | #ifndef __ID3D12LifetimeOwner_INTERFACE_DEFINED__ | ||
| 13687 | #define __ID3D12LifetimeOwner_INTERFACE_DEFINED__ | ||
| 13688 | |||
| 13689 | /* interface ID3D12LifetimeOwner */ | ||
| 13690 | /* [unique][local][object][uuid] */ | ||
| 13691 | |||
| 13692 | |||
| 13693 | EXTERN_C const IID IID_ID3D12LifetimeOwner; | ||
| 13694 | |||
| 13695 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 13696 | |||
| 13697 | MIDL_INTERFACE("e667af9f-cd56-4f46-83ce-032e595d70a8") | ||
| 13698 | ID3D12LifetimeOwner : public IUnknown | ||
| 13699 | { | ||
| 13700 | public: | ||
| 13701 | virtual void STDMETHODCALLTYPE LifetimeStateUpdated( | ||
| 13702 | D3D12_LIFETIME_STATE NewState) = 0; | ||
| 13703 | |||
| 13704 | }; | ||
| 13705 | |||
| 13706 | |||
| 13707 | #else /* C style interface */ | ||
| 13708 | |||
| 13709 | typedef struct ID3D12LifetimeOwnerVtbl | ||
| 13710 | { | ||
| 13711 | BEGIN_INTERFACE | ||
| 13712 | |||
| 13713 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 13714 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 13715 | ID3D12LifetimeOwner * This, | ||
| 13716 | REFIID riid, | ||
| 13717 | _COM_Outptr_ void **ppvObject); | ||
| 13718 | |||
| 13719 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 13720 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 13721 | ID3D12LifetimeOwner * This); | ||
| 13722 | |||
| 13723 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 13724 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 13725 | ID3D12LifetimeOwner * This); | ||
| 13726 | |||
| 13727 | DECLSPEC_XFGVIRT(ID3D12LifetimeOwner, LifetimeStateUpdated) | ||
| 13728 | void ( STDMETHODCALLTYPE *LifetimeStateUpdated )( | ||
| 13729 | ID3D12LifetimeOwner * This, | ||
| 13730 | D3D12_LIFETIME_STATE NewState); | ||
| 13731 | |||
| 13732 | END_INTERFACE | ||
| 13733 | } ID3D12LifetimeOwnerVtbl; | ||
| 13734 | |||
| 13735 | interface ID3D12LifetimeOwner | ||
| 13736 | { | ||
| 13737 | CONST_VTBL struct ID3D12LifetimeOwnerVtbl *lpVtbl; | ||
| 13738 | }; | ||
| 13739 | |||
| 13740 | |||
| 13741 | |||
| 13742 | #ifdef COBJMACROS | ||
| 13743 | |||
| 13744 | |||
| 13745 | #define ID3D12LifetimeOwner_QueryInterface(This,riid,ppvObject) \ | ||
| 13746 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 13747 | |||
| 13748 | #define ID3D12LifetimeOwner_AddRef(This) \ | ||
| 13749 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 13750 | |||
| 13751 | #define ID3D12LifetimeOwner_Release(This) \ | ||
| 13752 | ( (This)->lpVtbl -> Release(This) ) | ||
| 13753 | |||
| 13754 | |||
| 13755 | #define ID3D12LifetimeOwner_LifetimeStateUpdated(This,NewState) \ | ||
| 13756 | ( (This)->lpVtbl -> LifetimeStateUpdated(This,NewState) ) | ||
| 13757 | |||
| 13758 | #endif /* COBJMACROS */ | ||
| 13759 | |||
| 13760 | |||
| 13761 | #endif /* C style interface */ | ||
| 13762 | |||
| 13763 | |||
| 13764 | |||
| 13765 | |||
| 13766 | #endif /* __ID3D12LifetimeOwner_INTERFACE_DEFINED__ */ | ||
| 13767 | |||
| 13768 | |||
| 13769 | #ifndef __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ | ||
| 13770 | #define __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ | ||
| 13771 | |||
| 13772 | /* interface ID3D12SwapChainAssistant */ | ||
| 13773 | /* [unique][local][object][uuid] */ | ||
| 13774 | |||
| 13775 | |||
| 13776 | EXTERN_C const IID IID_ID3D12SwapChainAssistant; | ||
| 13777 | |||
| 13778 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 13779 | |||
| 13780 | MIDL_INTERFACE("f1df64b6-57fd-49cd-8807-c0eb88b45c8f") | ||
| 13781 | ID3D12SwapChainAssistant : public IUnknown | ||
| 13782 | { | ||
| 13783 | public: | ||
| 13784 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 13785 | virtual LUID STDMETHODCALLTYPE GetLUID( void) = 0; | ||
| 13786 | #else | ||
| 13787 | virtual LUID *STDMETHODCALLTYPE GetLUID( | ||
| 13788 | LUID * RetVal) = 0; | ||
| 13789 | #endif | ||
| 13790 | |||
| 13791 | virtual HRESULT STDMETHODCALLTYPE GetSwapChainObject( | ||
| 13792 | REFIID riid, | ||
| 13793 | _COM_Outptr_ void **ppv) = 0; | ||
| 13794 | |||
| 13795 | virtual HRESULT STDMETHODCALLTYPE GetCurrentResourceAndCommandQueue( | ||
| 13796 | REFIID riidResource, | ||
| 13797 | _COM_Outptr_ void **ppvResource, | ||
| 13798 | REFIID riidQueue, | ||
| 13799 | _COM_Outptr_ void **ppvQueue) = 0; | ||
| 13800 | |||
| 13801 | virtual HRESULT STDMETHODCALLTYPE InsertImplicitSync( void) = 0; | ||
| 13802 | |||
| 13803 | }; | ||
| 13804 | |||
| 13805 | |||
| 13806 | #else /* C style interface */ | ||
| 13807 | |||
| 13808 | typedef struct ID3D12SwapChainAssistantVtbl | ||
| 13809 | { | ||
| 13810 | BEGIN_INTERFACE | ||
| 13811 | |||
| 13812 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 13813 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 13814 | ID3D12SwapChainAssistant * This, | ||
| 13815 | REFIID riid, | ||
| 13816 | _COM_Outptr_ void **ppvObject); | ||
| 13817 | |||
| 13818 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 13819 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 13820 | ID3D12SwapChainAssistant * This); | ||
| 13821 | |||
| 13822 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 13823 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 13824 | ID3D12SwapChainAssistant * This); | ||
| 13825 | |||
| 13826 | DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetLUID) | ||
| 13827 | #if !defined(_WIN32) | ||
| 13828 | LUID ( STDMETHODCALLTYPE *GetLUID )( | ||
| 13829 | ID3D12SwapChainAssistant * This); | ||
| 13830 | |||
| 13831 | #else | ||
| 13832 | LUID *( STDMETHODCALLTYPE *GetLUID )( | ||
| 13833 | ID3D12SwapChainAssistant * This, | ||
| 13834 | LUID * RetVal); | ||
| 13835 | |||
| 13836 | #endif | ||
| 13837 | |||
| 13838 | DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetSwapChainObject) | ||
| 13839 | HRESULT ( STDMETHODCALLTYPE *GetSwapChainObject )( | ||
| 13840 | ID3D12SwapChainAssistant * This, | ||
| 13841 | REFIID riid, | ||
| 13842 | _COM_Outptr_ void **ppv); | ||
| 13843 | |||
| 13844 | DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, GetCurrentResourceAndCommandQueue) | ||
| 13845 | HRESULT ( STDMETHODCALLTYPE *GetCurrentResourceAndCommandQueue )( | ||
| 13846 | ID3D12SwapChainAssistant * This, | ||
| 13847 | REFIID riidResource, | ||
| 13848 | _COM_Outptr_ void **ppvResource, | ||
| 13849 | REFIID riidQueue, | ||
| 13850 | _COM_Outptr_ void **ppvQueue); | ||
| 13851 | |||
| 13852 | DECLSPEC_XFGVIRT(ID3D12SwapChainAssistant, InsertImplicitSync) | ||
| 13853 | HRESULT ( STDMETHODCALLTYPE *InsertImplicitSync )( | ||
| 13854 | ID3D12SwapChainAssistant * This); | ||
| 13855 | |||
| 13856 | END_INTERFACE | ||
| 13857 | } ID3D12SwapChainAssistantVtbl; | ||
| 13858 | |||
| 13859 | interface ID3D12SwapChainAssistant | ||
| 13860 | { | ||
| 13861 | CONST_VTBL struct ID3D12SwapChainAssistantVtbl *lpVtbl; | ||
| 13862 | }; | ||
| 13863 | |||
| 13864 | |||
| 13865 | |||
| 13866 | #ifdef COBJMACROS | ||
| 13867 | |||
| 13868 | |||
| 13869 | #define ID3D12SwapChainAssistant_QueryInterface(This,riid,ppvObject) \ | ||
| 13870 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 13871 | |||
| 13872 | #define ID3D12SwapChainAssistant_AddRef(This) \ | ||
| 13873 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 13874 | |||
| 13875 | #define ID3D12SwapChainAssistant_Release(This) \ | ||
| 13876 | ( (This)->lpVtbl -> Release(This) ) | ||
| 13877 | |||
| 13878 | #if !defined(_WIN32) | ||
| 13879 | |||
| 13880 | #define ID3D12SwapChainAssistant_GetLUID(This) \ | ||
| 13881 | ( (This)->lpVtbl -> GetLUID(This) ) | ||
| 13882 | #else | ||
| 13883 | #define ID3D12SwapChainAssistant_GetLUID(This,RetVal) \ | ||
| 13884 | ( (This)->lpVtbl -> GetLUID(This,RetVal) ) | ||
| 13885 | #endif | ||
| 13886 | |||
| 13887 | #define ID3D12SwapChainAssistant_GetSwapChainObject(This,riid,ppv) \ | ||
| 13888 | ( (This)->lpVtbl -> GetSwapChainObject(This,riid,ppv) ) | ||
| 13889 | |||
| 13890 | #define ID3D12SwapChainAssistant_GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) \ | ||
| 13891 | ( (This)->lpVtbl -> GetCurrentResourceAndCommandQueue(This,riidResource,ppvResource,riidQueue,ppvQueue) ) | ||
| 13892 | |||
| 13893 | #define ID3D12SwapChainAssistant_InsertImplicitSync(This) \ | ||
| 13894 | ( (This)->lpVtbl -> InsertImplicitSync(This) ) | ||
| 13895 | |||
| 13896 | #endif /* COBJMACROS */ | ||
| 13897 | |||
| 13898 | |||
| 13899 | #endif /* C style interface */ | ||
| 13900 | |||
| 13901 | |||
| 13902 | |||
| 13903 | |||
| 13904 | #endif /* __ID3D12SwapChainAssistant_INTERFACE_DEFINED__ */ | ||
| 13905 | |||
| 13906 | |||
| 13907 | #ifndef __ID3D12LifetimeTracker_INTERFACE_DEFINED__ | ||
| 13908 | #define __ID3D12LifetimeTracker_INTERFACE_DEFINED__ | ||
| 13909 | |||
| 13910 | /* interface ID3D12LifetimeTracker */ | ||
| 13911 | /* [unique][local][object][uuid] */ | ||
| 13912 | |||
| 13913 | |||
| 13914 | EXTERN_C const IID IID_ID3D12LifetimeTracker; | ||
| 13915 | |||
| 13916 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 13917 | |||
| 13918 | MIDL_INTERFACE("3fd03d36-4eb1-424a-a582-494ecb8ba813") | ||
| 13919 | ID3D12LifetimeTracker : public ID3D12DeviceChild | ||
| 13920 | { | ||
| 13921 | public: | ||
| 13922 | virtual HRESULT STDMETHODCALLTYPE DestroyOwnedObject( | ||
| 13923 | _In_ ID3D12DeviceChild *pObject) = 0; | ||
| 13924 | |||
| 13925 | }; | ||
| 13926 | |||
| 13927 | |||
| 13928 | #else /* C style interface */ | ||
| 13929 | |||
| 13930 | typedef struct ID3D12LifetimeTrackerVtbl | ||
| 13931 | { | ||
| 13932 | BEGIN_INTERFACE | ||
| 13933 | |||
| 13934 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 13935 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 13936 | ID3D12LifetimeTracker * This, | ||
| 13937 | REFIID riid, | ||
| 13938 | _COM_Outptr_ void **ppvObject); | ||
| 13939 | |||
| 13940 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 13941 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 13942 | ID3D12LifetimeTracker * This); | ||
| 13943 | |||
| 13944 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 13945 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 13946 | ID3D12LifetimeTracker * This); | ||
| 13947 | |||
| 13948 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 13949 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 13950 | ID3D12LifetimeTracker * This, | ||
| 13951 | _In_ REFGUID guid, | ||
| 13952 | _Inout_ UINT *pDataSize, | ||
| 13953 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 13954 | |||
| 13955 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 13956 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 13957 | ID3D12LifetimeTracker * This, | ||
| 13958 | _In_ REFGUID guid, | ||
| 13959 | _In_ UINT DataSize, | ||
| 13960 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 13961 | |||
| 13962 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 13963 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 13964 | ID3D12LifetimeTracker * This, | ||
| 13965 | _In_ REFGUID guid, | ||
| 13966 | _In_opt_ const IUnknown *pData); | ||
| 13967 | |||
| 13968 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 13969 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 13970 | ID3D12LifetimeTracker * This, | ||
| 13971 | _In_z_ LPCWSTR Name); | ||
| 13972 | |||
| 13973 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 13974 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 13975 | ID3D12LifetimeTracker * This, | ||
| 13976 | REFIID riid, | ||
| 13977 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 13978 | |||
| 13979 | DECLSPEC_XFGVIRT(ID3D12LifetimeTracker, DestroyOwnedObject) | ||
| 13980 | HRESULT ( STDMETHODCALLTYPE *DestroyOwnedObject )( | ||
| 13981 | ID3D12LifetimeTracker * This, | ||
| 13982 | _In_ ID3D12DeviceChild *pObject); | ||
| 13983 | |||
| 13984 | END_INTERFACE | ||
| 13985 | } ID3D12LifetimeTrackerVtbl; | ||
| 13986 | |||
| 13987 | interface ID3D12LifetimeTracker | ||
| 13988 | { | ||
| 13989 | CONST_VTBL struct ID3D12LifetimeTrackerVtbl *lpVtbl; | ||
| 13990 | }; | ||
| 13991 | |||
| 13992 | |||
| 13993 | |||
| 13994 | #ifdef COBJMACROS | ||
| 13995 | |||
| 13996 | |||
| 13997 | #define ID3D12LifetimeTracker_QueryInterface(This,riid,ppvObject) \ | ||
| 13998 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 13999 | |||
| 14000 | #define ID3D12LifetimeTracker_AddRef(This) \ | ||
| 14001 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 14002 | |||
| 14003 | #define ID3D12LifetimeTracker_Release(This) \ | ||
| 14004 | ( (This)->lpVtbl -> Release(This) ) | ||
| 14005 | |||
| 14006 | |||
| 14007 | #define ID3D12LifetimeTracker_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 14008 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 14009 | |||
| 14010 | #define ID3D12LifetimeTracker_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 14011 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 14012 | |||
| 14013 | #define ID3D12LifetimeTracker_SetPrivateDataInterface(This,guid,pData) \ | ||
| 14014 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 14015 | |||
| 14016 | #define ID3D12LifetimeTracker_SetName(This,Name) \ | ||
| 14017 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 14018 | |||
| 14019 | |||
| 14020 | #define ID3D12LifetimeTracker_GetDevice(This,riid,ppvDevice) \ | ||
| 14021 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 14022 | |||
| 14023 | |||
| 14024 | #define ID3D12LifetimeTracker_DestroyOwnedObject(This,pObject) \ | ||
| 14025 | ( (This)->lpVtbl -> DestroyOwnedObject(This,pObject) ) | ||
| 14026 | |||
| 14027 | #endif /* COBJMACROS */ | ||
| 14028 | |||
| 14029 | |||
| 14030 | #endif /* C style interface */ | ||
| 14031 | |||
| 14032 | |||
| 14033 | |||
| 14034 | |||
| 14035 | #endif /* __ID3D12LifetimeTracker_INTERFACE_DEFINED__ */ | ||
| 14036 | |||
| 14037 | |||
| 14038 | /* interface __MIDL_itf_d3d12_0000_0034 */ | ||
| 14039 | /* [local] */ | ||
| 14040 | |||
| 14041 | typedef | ||
| 14042 | enum D3D12_META_COMMAND_PARAMETER_TYPE | ||
| 14043 | { | ||
| 14044 | D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0, | ||
| 14045 | D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1, | ||
| 14046 | D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2, | ||
| 14047 | D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3, | ||
| 14048 | D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4 | ||
| 14049 | } D3D12_META_COMMAND_PARAMETER_TYPE; | ||
| 14050 | |||
| 14051 | typedef | ||
| 14052 | enum D3D12_META_COMMAND_PARAMETER_FLAGS | ||
| 14053 | { | ||
| 14054 | D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x1, | ||
| 14055 | D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x2 | ||
| 14056 | } D3D12_META_COMMAND_PARAMETER_FLAGS; | ||
| 14057 | |||
| 14058 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS ) | ||
| 14059 | typedef | ||
| 14060 | enum D3D12_META_COMMAND_PARAMETER_STAGE | ||
| 14061 | { | ||
| 14062 | D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0, | ||
| 14063 | D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, | ||
| 14064 | D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2 | ||
| 14065 | } D3D12_META_COMMAND_PARAMETER_STAGE; | ||
| 14066 | |||
| 14067 | typedef struct D3D12_META_COMMAND_PARAMETER_DESC | ||
| 14068 | { | ||
| 14069 | LPCWSTR Name; | ||
| 14070 | D3D12_META_COMMAND_PARAMETER_TYPE Type; | ||
| 14071 | D3D12_META_COMMAND_PARAMETER_FLAGS Flags; | ||
| 14072 | D3D12_RESOURCE_STATES RequiredResourceState; | ||
| 14073 | UINT StructureOffset; | ||
| 14074 | } D3D12_META_COMMAND_PARAMETER_DESC; | ||
| 14075 | |||
| 14076 | typedef | ||
| 14077 | enum D3D12_GRAPHICS_STATES | ||
| 14078 | { | ||
| 14079 | D3D12_GRAPHICS_STATE_NONE = 0, | ||
| 14080 | D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = ( 1 << 0 ) , | ||
| 14081 | D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = ( 1 << 1 ) , | ||
| 14082 | D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = ( 1 << 2 ) , | ||
| 14083 | D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = ( 1 << 3 ) , | ||
| 14084 | D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = ( 1 << 4 ) , | ||
| 14085 | D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = ( 1 << 5 ) , | ||
| 14086 | D3D12_GRAPHICS_STATE_RS_VIEWPORTS = ( 1 << 6 ) , | ||
| 14087 | D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = ( 1 << 7 ) , | ||
| 14088 | D3D12_GRAPHICS_STATE_PREDICATION = ( 1 << 8 ) , | ||
| 14089 | D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = ( 1 << 9 ) , | ||
| 14090 | D3D12_GRAPHICS_STATE_OM_STENCIL_REF = ( 1 << 10 ) , | ||
| 14091 | D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = ( 1 << 11 ) , | ||
| 14092 | D3D12_GRAPHICS_STATE_PIPELINE_STATE = ( 1 << 12 ) , | ||
| 14093 | D3D12_GRAPHICS_STATE_SO_TARGETS = ( 1 << 13 ) , | ||
| 14094 | D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = ( 1 << 14 ) , | ||
| 14095 | D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = ( 1 << 15 ) , | ||
| 14096 | D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = ( 1 << 16 ) | ||
| 14097 | } D3D12_GRAPHICS_STATES; | ||
| 14098 | |||
| 14099 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES ) | ||
| 14100 | typedef struct D3D12_META_COMMAND_DESC | ||
| 14101 | { | ||
| 14102 | GUID Id; | ||
| 14103 | LPCWSTR Name; | ||
| 14104 | D3D12_GRAPHICS_STATES InitializationDirtyState; | ||
| 14105 | D3D12_GRAPHICS_STATES ExecutionDirtyState; | ||
| 14106 | } D3D12_META_COMMAND_DESC; | ||
| 14107 | |||
| 14108 | |||
| 14109 | |||
| 14110 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_c_ifspec; | ||
| 14111 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0034_v0_0_s_ifspec; | ||
| 14112 | |||
| 14113 | #ifndef __ID3D12StateObject_INTERFACE_DEFINED__ | ||
| 14114 | #define __ID3D12StateObject_INTERFACE_DEFINED__ | ||
| 14115 | |||
| 14116 | /* interface ID3D12StateObject */ | ||
| 14117 | /* [unique][local][object][uuid] */ | ||
| 14118 | |||
| 14119 | |||
| 14120 | EXTERN_C const IID IID_ID3D12StateObject; | ||
| 14121 | |||
| 14122 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 14123 | |||
| 14124 | MIDL_INTERFACE("47016943-fca8-4594-93ea-af258b55346d") | ||
| 14125 | ID3D12StateObject : public ID3D12Pageable | ||
| 14126 | { | ||
| 14127 | public: | ||
| 14128 | }; | ||
| 14129 | |||
| 14130 | |||
| 14131 | #else /* C style interface */ | ||
| 14132 | |||
| 14133 | typedef struct ID3D12StateObjectVtbl | ||
| 14134 | { | ||
| 14135 | BEGIN_INTERFACE | ||
| 14136 | |||
| 14137 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 14138 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 14139 | ID3D12StateObject * This, | ||
| 14140 | REFIID riid, | ||
| 14141 | _COM_Outptr_ void **ppvObject); | ||
| 14142 | |||
| 14143 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 14144 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 14145 | ID3D12StateObject * This); | ||
| 14146 | |||
| 14147 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 14148 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 14149 | ID3D12StateObject * This); | ||
| 14150 | |||
| 14151 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 14152 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 14153 | ID3D12StateObject * This, | ||
| 14154 | _In_ REFGUID guid, | ||
| 14155 | _Inout_ UINT *pDataSize, | ||
| 14156 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 14157 | |||
| 14158 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 14159 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 14160 | ID3D12StateObject * This, | ||
| 14161 | _In_ REFGUID guid, | ||
| 14162 | _In_ UINT DataSize, | ||
| 14163 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 14164 | |||
| 14165 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 14166 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 14167 | ID3D12StateObject * This, | ||
| 14168 | _In_ REFGUID guid, | ||
| 14169 | _In_opt_ const IUnknown *pData); | ||
| 14170 | |||
| 14171 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 14172 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 14173 | ID3D12StateObject * This, | ||
| 14174 | _In_z_ LPCWSTR Name); | ||
| 14175 | |||
| 14176 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 14177 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 14178 | ID3D12StateObject * This, | ||
| 14179 | REFIID riid, | ||
| 14180 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 14181 | |||
| 14182 | END_INTERFACE | ||
| 14183 | } ID3D12StateObjectVtbl; | ||
| 14184 | |||
| 14185 | interface ID3D12StateObject | ||
| 14186 | { | ||
| 14187 | CONST_VTBL struct ID3D12StateObjectVtbl *lpVtbl; | ||
| 14188 | }; | ||
| 14189 | |||
| 14190 | |||
| 14191 | |||
| 14192 | #ifdef COBJMACROS | ||
| 14193 | |||
| 14194 | |||
| 14195 | #define ID3D12StateObject_QueryInterface(This,riid,ppvObject) \ | ||
| 14196 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 14197 | |||
| 14198 | #define ID3D12StateObject_AddRef(This) \ | ||
| 14199 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 14200 | |||
| 14201 | #define ID3D12StateObject_Release(This) \ | ||
| 14202 | ( (This)->lpVtbl -> Release(This) ) | ||
| 14203 | |||
| 14204 | |||
| 14205 | #define ID3D12StateObject_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 14206 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 14207 | |||
| 14208 | #define ID3D12StateObject_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 14209 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 14210 | |||
| 14211 | #define ID3D12StateObject_SetPrivateDataInterface(This,guid,pData) \ | ||
| 14212 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 14213 | |||
| 14214 | #define ID3D12StateObject_SetName(This,Name) \ | ||
| 14215 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 14216 | |||
| 14217 | |||
| 14218 | #define ID3D12StateObject_GetDevice(This,riid,ppvDevice) \ | ||
| 14219 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 14220 | |||
| 14221 | |||
| 14222 | |||
| 14223 | #endif /* COBJMACROS */ | ||
| 14224 | |||
| 14225 | |||
| 14226 | #endif /* C style interface */ | ||
| 14227 | |||
| 14228 | |||
| 14229 | |||
| 14230 | |||
| 14231 | #endif /* __ID3D12StateObject_INTERFACE_DEFINED__ */ | ||
| 14232 | |||
| 14233 | |||
| 14234 | #ifndef __ID3D12StateObjectProperties_INTERFACE_DEFINED__ | ||
| 14235 | #define __ID3D12StateObjectProperties_INTERFACE_DEFINED__ | ||
| 14236 | |||
| 14237 | /* interface ID3D12StateObjectProperties */ | ||
| 14238 | /* [unique][local][object][uuid] */ | ||
| 14239 | |||
| 14240 | |||
| 14241 | EXTERN_C const IID IID_ID3D12StateObjectProperties; | ||
| 14242 | |||
| 14243 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 14244 | |||
| 14245 | MIDL_INTERFACE("de5fa827-9bf9-4f26-89ff-d7f56fde3860") | ||
| 14246 | ID3D12StateObjectProperties : public IUnknown | ||
| 14247 | { | ||
| 14248 | public: | ||
| 14249 | virtual void *STDMETHODCALLTYPE GetShaderIdentifier( | ||
| 14250 | _In_ LPCWSTR pExportName) = 0; | ||
| 14251 | |||
| 14252 | virtual UINT64 STDMETHODCALLTYPE GetShaderStackSize( | ||
| 14253 | _In_ LPCWSTR pExportName) = 0; | ||
| 14254 | |||
| 14255 | virtual UINT64 STDMETHODCALLTYPE GetPipelineStackSize( void) = 0; | ||
| 14256 | |||
| 14257 | virtual void STDMETHODCALLTYPE SetPipelineStackSize( | ||
| 14258 | UINT64 PipelineStackSizeInBytes) = 0; | ||
| 14259 | |||
| 14260 | }; | ||
| 14261 | |||
| 14262 | |||
| 14263 | #else /* C style interface */ | ||
| 14264 | |||
| 14265 | typedef struct ID3D12StateObjectPropertiesVtbl | ||
| 14266 | { | ||
| 14267 | BEGIN_INTERFACE | ||
| 14268 | |||
| 14269 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 14270 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 14271 | ID3D12StateObjectProperties * This, | ||
| 14272 | REFIID riid, | ||
| 14273 | _COM_Outptr_ void **ppvObject); | ||
| 14274 | |||
| 14275 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 14276 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 14277 | ID3D12StateObjectProperties * This); | ||
| 14278 | |||
| 14279 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 14280 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 14281 | ID3D12StateObjectProperties * This); | ||
| 14282 | |||
| 14283 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier) | ||
| 14284 | void *( STDMETHODCALLTYPE *GetShaderIdentifier )( | ||
| 14285 | ID3D12StateObjectProperties * This, | ||
| 14286 | _In_ LPCWSTR pExportName); | ||
| 14287 | |||
| 14288 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize) | ||
| 14289 | UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )( | ||
| 14290 | ID3D12StateObjectProperties * This, | ||
| 14291 | _In_ LPCWSTR pExportName); | ||
| 14292 | |||
| 14293 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize) | ||
| 14294 | UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )( | ||
| 14295 | ID3D12StateObjectProperties * This); | ||
| 14296 | |||
| 14297 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize) | ||
| 14298 | void ( STDMETHODCALLTYPE *SetPipelineStackSize )( | ||
| 14299 | ID3D12StateObjectProperties * This, | ||
| 14300 | UINT64 PipelineStackSizeInBytes); | ||
| 14301 | |||
| 14302 | END_INTERFACE | ||
| 14303 | } ID3D12StateObjectPropertiesVtbl; | ||
| 14304 | |||
| 14305 | interface ID3D12StateObjectProperties | ||
| 14306 | { | ||
| 14307 | CONST_VTBL struct ID3D12StateObjectPropertiesVtbl *lpVtbl; | ||
| 14308 | }; | ||
| 14309 | |||
| 14310 | |||
| 14311 | |||
| 14312 | #ifdef COBJMACROS | ||
| 14313 | |||
| 14314 | |||
| 14315 | #define ID3D12StateObjectProperties_QueryInterface(This,riid,ppvObject) \ | ||
| 14316 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 14317 | |||
| 14318 | #define ID3D12StateObjectProperties_AddRef(This) \ | ||
| 14319 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 14320 | |||
| 14321 | #define ID3D12StateObjectProperties_Release(This) \ | ||
| 14322 | ( (This)->lpVtbl -> Release(This) ) | ||
| 14323 | |||
| 14324 | |||
| 14325 | #define ID3D12StateObjectProperties_GetShaderIdentifier(This,pExportName) \ | ||
| 14326 | ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) ) | ||
| 14327 | |||
| 14328 | #define ID3D12StateObjectProperties_GetShaderStackSize(This,pExportName) \ | ||
| 14329 | ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) ) | ||
| 14330 | |||
| 14331 | #define ID3D12StateObjectProperties_GetPipelineStackSize(This) \ | ||
| 14332 | ( (This)->lpVtbl -> GetPipelineStackSize(This) ) | ||
| 14333 | |||
| 14334 | #define ID3D12StateObjectProperties_SetPipelineStackSize(This,PipelineStackSizeInBytes) \ | ||
| 14335 | ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) ) | ||
| 14336 | |||
| 14337 | #endif /* COBJMACROS */ | ||
| 14338 | |||
| 14339 | |||
| 14340 | #endif /* C style interface */ | ||
| 14341 | |||
| 14342 | |||
| 14343 | |||
| 14344 | |||
| 14345 | #endif /* __ID3D12StateObjectProperties_INTERFACE_DEFINED__ */ | ||
| 14346 | |||
| 14347 | |||
| 14348 | /* interface __MIDL_itf_d3d12_0000_0036 */ | ||
| 14349 | /* [local] */ | ||
| 14350 | |||
| 14351 | typedef struct D3D12_PROGRAM_IDENTIFIER | ||
| 14352 | { | ||
| 14353 | UINT64 OpaqueData[ 4 ]; | ||
| 14354 | } D3D12_PROGRAM_IDENTIFIER; | ||
| 14355 | |||
| 14356 | |||
| 14357 | |||
| 14358 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_c_ifspec; | ||
| 14359 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0036_v0_0_s_ifspec; | ||
| 14360 | |||
| 14361 | #ifndef __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ | ||
| 14362 | #define __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ | ||
| 14363 | |||
| 14364 | /* interface ID3D12StateObjectProperties1 */ | ||
| 14365 | /* [unique][local][object][uuid] */ | ||
| 14366 | |||
| 14367 | |||
| 14368 | EXTERN_C const IID IID_ID3D12StateObjectProperties1; | ||
| 14369 | |||
| 14370 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 14371 | |||
| 14372 | MIDL_INTERFACE("460caac7-1d24-446a-a184-ca67db494138") | ||
| 14373 | ID3D12StateObjectProperties1 : public ID3D12StateObjectProperties | ||
| 14374 | { | ||
| 14375 | public: | ||
| 14376 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 14377 | virtual D3D12_PROGRAM_IDENTIFIER STDMETHODCALLTYPE GetProgramIdentifier( | ||
| 14378 | LPCWSTR pProgramName) = 0; | ||
| 14379 | #else | ||
| 14380 | virtual D3D12_PROGRAM_IDENTIFIER *STDMETHODCALLTYPE GetProgramIdentifier( | ||
| 14381 | D3D12_PROGRAM_IDENTIFIER * RetVal, | ||
| 14382 | LPCWSTR pProgramName) = 0; | ||
| 14383 | #endif | ||
| 14384 | |||
| 14385 | }; | ||
| 14386 | |||
| 14387 | |||
| 14388 | #else /* C style interface */ | ||
| 14389 | |||
| 14390 | typedef struct ID3D12StateObjectProperties1Vtbl | ||
| 14391 | { | ||
| 14392 | BEGIN_INTERFACE | ||
| 14393 | |||
| 14394 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 14395 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 14396 | ID3D12StateObjectProperties1 * This, | ||
| 14397 | REFIID riid, | ||
| 14398 | _COM_Outptr_ void **ppvObject); | ||
| 14399 | |||
| 14400 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 14401 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 14402 | ID3D12StateObjectProperties1 * This); | ||
| 14403 | |||
| 14404 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 14405 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 14406 | ID3D12StateObjectProperties1 * This); | ||
| 14407 | |||
| 14408 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier) | ||
| 14409 | void *( STDMETHODCALLTYPE *GetShaderIdentifier )( | ||
| 14410 | ID3D12StateObjectProperties1 * This, | ||
| 14411 | _In_ LPCWSTR pExportName); | ||
| 14412 | |||
| 14413 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize) | ||
| 14414 | UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )( | ||
| 14415 | ID3D12StateObjectProperties1 * This, | ||
| 14416 | _In_ LPCWSTR pExportName); | ||
| 14417 | |||
| 14418 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize) | ||
| 14419 | UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )( | ||
| 14420 | ID3D12StateObjectProperties1 * This); | ||
| 14421 | |||
| 14422 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize) | ||
| 14423 | void ( STDMETHODCALLTYPE *SetPipelineStackSize )( | ||
| 14424 | ID3D12StateObjectProperties1 * This, | ||
| 14425 | UINT64 PipelineStackSizeInBytes); | ||
| 14426 | |||
| 14427 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier) | ||
| 14428 | #if !defined(_WIN32) | ||
| 14429 | D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )( | ||
| 14430 | ID3D12StateObjectProperties1 * This, | ||
| 14431 | LPCWSTR pProgramName); | ||
| 14432 | |||
| 14433 | #else | ||
| 14434 | D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )( | ||
| 14435 | ID3D12StateObjectProperties1 * This, | ||
| 14436 | D3D12_PROGRAM_IDENTIFIER * RetVal, | ||
| 14437 | LPCWSTR pProgramName); | ||
| 14438 | |||
| 14439 | #endif | ||
| 14440 | |||
| 14441 | END_INTERFACE | ||
| 14442 | } ID3D12StateObjectProperties1Vtbl; | ||
| 14443 | |||
| 14444 | interface ID3D12StateObjectProperties1 | ||
| 14445 | { | ||
| 14446 | CONST_VTBL struct ID3D12StateObjectProperties1Vtbl *lpVtbl; | ||
| 14447 | }; | ||
| 14448 | |||
| 14449 | |||
| 14450 | |||
| 14451 | #ifdef COBJMACROS | ||
| 14452 | |||
| 14453 | |||
| 14454 | #define ID3D12StateObjectProperties1_QueryInterface(This,riid,ppvObject) \ | ||
| 14455 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 14456 | |||
| 14457 | #define ID3D12StateObjectProperties1_AddRef(This) \ | ||
| 14458 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 14459 | |||
| 14460 | #define ID3D12StateObjectProperties1_Release(This) \ | ||
| 14461 | ( (This)->lpVtbl -> Release(This) ) | ||
| 14462 | |||
| 14463 | |||
| 14464 | #define ID3D12StateObjectProperties1_GetShaderIdentifier(This,pExportName) \ | ||
| 14465 | ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) ) | ||
| 14466 | |||
| 14467 | #define ID3D12StateObjectProperties1_GetShaderStackSize(This,pExportName) \ | ||
| 14468 | ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) ) | ||
| 14469 | |||
| 14470 | #define ID3D12StateObjectProperties1_GetPipelineStackSize(This) \ | ||
| 14471 | ( (This)->lpVtbl -> GetPipelineStackSize(This) ) | ||
| 14472 | |||
| 14473 | #define ID3D12StateObjectProperties1_SetPipelineStackSize(This,PipelineStackSizeInBytes) \ | ||
| 14474 | ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) ) | ||
| 14475 | |||
| 14476 | #if !defined(_WIN32) | ||
| 14477 | |||
| 14478 | #define ID3D12StateObjectProperties1_GetProgramIdentifier(This,pProgramName) \ | ||
| 14479 | ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) ) | ||
| 14480 | #else | ||
| 14481 | #define ID3D12StateObjectProperties1_GetProgramIdentifier(This,RetVal,pProgramName) \ | ||
| 14482 | ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) ) | ||
| 14483 | #endif | ||
| 14484 | |||
| 14485 | #endif /* COBJMACROS */ | ||
| 14486 | |||
| 14487 | |||
| 14488 | #endif /* C style interface */ | ||
| 14489 | |||
| 14490 | |||
| 14491 | |||
| 14492 | |||
| 14493 | #endif /* __ID3D12StateObjectProperties1_INTERFACE_DEFINED__ */ | ||
| 14494 | |||
| 14495 | |||
| 14496 | #ifndef __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ | ||
| 14497 | #define __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ | ||
| 14498 | |||
| 14499 | /* interface ID3D12StateObjectProperties2 */ | ||
| 14500 | /* [unique][local][object][uuid] */ | ||
| 14501 | |||
| 14502 | |||
| 14503 | EXTERN_C const IID IID_ID3D12StateObjectProperties2; | ||
| 14504 | |||
| 14505 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 14506 | |||
| 14507 | MIDL_INTERFACE("d5e82917-f0f1-44cf-ae5e-ce222dd0b884") | ||
| 14508 | ID3D12StateObjectProperties2 : public ID3D12StateObjectProperties1 | ||
| 14509 | { | ||
| 14510 | public: | ||
| 14511 | virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForProgram( | ||
| 14512 | LPCWSTR pProgramName, | ||
| 14513 | REFIID riid, | ||
| 14514 | _COM_Outptr_ void **ppvRootSignature) = 0; | ||
| 14515 | |||
| 14516 | virtual HRESULT STDMETHODCALLTYPE GetGlobalRootSignatureForShader( | ||
| 14517 | LPCWSTR pExportName, | ||
| 14518 | REFIID riid, | ||
| 14519 | _COM_Outptr_ void **ppvRootSignature) = 0; | ||
| 14520 | |||
| 14521 | }; | ||
| 14522 | |||
| 14523 | |||
| 14524 | #else /* C style interface */ | ||
| 14525 | |||
| 14526 | typedef struct ID3D12StateObjectProperties2Vtbl | ||
| 14527 | { | ||
| 14528 | BEGIN_INTERFACE | ||
| 14529 | |||
| 14530 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 14531 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 14532 | ID3D12StateObjectProperties2 * This, | ||
| 14533 | REFIID riid, | ||
| 14534 | _COM_Outptr_ void **ppvObject); | ||
| 14535 | |||
| 14536 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 14537 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 14538 | ID3D12StateObjectProperties2 * This); | ||
| 14539 | |||
| 14540 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 14541 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 14542 | ID3D12StateObjectProperties2 * This); | ||
| 14543 | |||
| 14544 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderIdentifier) | ||
| 14545 | void *( STDMETHODCALLTYPE *GetShaderIdentifier )( | ||
| 14546 | ID3D12StateObjectProperties2 * This, | ||
| 14547 | _In_ LPCWSTR pExportName); | ||
| 14548 | |||
| 14549 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetShaderStackSize) | ||
| 14550 | UINT64 ( STDMETHODCALLTYPE *GetShaderStackSize )( | ||
| 14551 | ID3D12StateObjectProperties2 * This, | ||
| 14552 | _In_ LPCWSTR pExportName); | ||
| 14553 | |||
| 14554 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, GetPipelineStackSize) | ||
| 14555 | UINT64 ( STDMETHODCALLTYPE *GetPipelineStackSize )( | ||
| 14556 | ID3D12StateObjectProperties2 * This); | ||
| 14557 | |||
| 14558 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties, SetPipelineStackSize) | ||
| 14559 | void ( STDMETHODCALLTYPE *SetPipelineStackSize )( | ||
| 14560 | ID3D12StateObjectProperties2 * This, | ||
| 14561 | UINT64 PipelineStackSizeInBytes); | ||
| 14562 | |||
| 14563 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties1, GetProgramIdentifier) | ||
| 14564 | #if !defined(_WIN32) | ||
| 14565 | D3D12_PROGRAM_IDENTIFIER ( STDMETHODCALLTYPE *GetProgramIdentifier )( | ||
| 14566 | ID3D12StateObjectProperties2 * This, | ||
| 14567 | LPCWSTR pProgramName); | ||
| 14568 | |||
| 14569 | #else | ||
| 14570 | D3D12_PROGRAM_IDENTIFIER *( STDMETHODCALLTYPE *GetProgramIdentifier )( | ||
| 14571 | ID3D12StateObjectProperties2 * This, | ||
| 14572 | D3D12_PROGRAM_IDENTIFIER * RetVal, | ||
| 14573 | LPCWSTR pProgramName); | ||
| 14574 | |||
| 14575 | #endif | ||
| 14576 | |||
| 14577 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForProgram) | ||
| 14578 | HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForProgram )( | ||
| 14579 | ID3D12StateObjectProperties2 * This, | ||
| 14580 | LPCWSTR pProgramName, | ||
| 14581 | REFIID riid, | ||
| 14582 | _COM_Outptr_ void **ppvRootSignature); | ||
| 14583 | |||
| 14584 | DECLSPEC_XFGVIRT(ID3D12StateObjectProperties2, GetGlobalRootSignatureForShader) | ||
| 14585 | HRESULT ( STDMETHODCALLTYPE *GetGlobalRootSignatureForShader )( | ||
| 14586 | ID3D12StateObjectProperties2 * This, | ||
| 14587 | LPCWSTR pExportName, | ||
| 14588 | REFIID riid, | ||
| 14589 | _COM_Outptr_ void **ppvRootSignature); | ||
| 14590 | |||
| 14591 | END_INTERFACE | ||
| 14592 | } ID3D12StateObjectProperties2Vtbl; | ||
| 14593 | |||
| 14594 | interface ID3D12StateObjectProperties2 | ||
| 14595 | { | ||
| 14596 | CONST_VTBL struct ID3D12StateObjectProperties2Vtbl *lpVtbl; | ||
| 14597 | }; | ||
| 14598 | |||
| 14599 | |||
| 14600 | |||
| 14601 | #ifdef COBJMACROS | ||
| 14602 | |||
| 14603 | |||
| 14604 | #define ID3D12StateObjectProperties2_QueryInterface(This,riid,ppvObject) \ | ||
| 14605 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 14606 | |||
| 14607 | #define ID3D12StateObjectProperties2_AddRef(This) \ | ||
| 14608 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 14609 | |||
| 14610 | #define ID3D12StateObjectProperties2_Release(This) \ | ||
| 14611 | ( (This)->lpVtbl -> Release(This) ) | ||
| 14612 | |||
| 14613 | |||
| 14614 | #define ID3D12StateObjectProperties2_GetShaderIdentifier(This,pExportName) \ | ||
| 14615 | ( (This)->lpVtbl -> GetShaderIdentifier(This,pExportName) ) | ||
| 14616 | |||
| 14617 | #define ID3D12StateObjectProperties2_GetShaderStackSize(This,pExportName) \ | ||
| 14618 | ( (This)->lpVtbl -> GetShaderStackSize(This,pExportName) ) | ||
| 14619 | |||
| 14620 | #define ID3D12StateObjectProperties2_GetPipelineStackSize(This) \ | ||
| 14621 | ( (This)->lpVtbl -> GetPipelineStackSize(This) ) | ||
| 14622 | |||
| 14623 | #define ID3D12StateObjectProperties2_SetPipelineStackSize(This,PipelineStackSizeInBytes) \ | ||
| 14624 | ( (This)->lpVtbl -> SetPipelineStackSize(This,PipelineStackSizeInBytes) ) | ||
| 14625 | |||
| 14626 | #if !defined(_WIN32) | ||
| 14627 | |||
| 14628 | #define ID3D12StateObjectProperties2_GetProgramIdentifier(This,pProgramName) \ | ||
| 14629 | ( (This)->lpVtbl -> GetProgramIdentifier(This,pProgramName) ) | ||
| 14630 | #else | ||
| 14631 | #define ID3D12StateObjectProperties2_GetProgramIdentifier(This,RetVal,pProgramName) \ | ||
| 14632 | ( (This)->lpVtbl -> GetProgramIdentifier(This,RetVal,pProgramName) ) | ||
| 14633 | #endif | ||
| 14634 | |||
| 14635 | |||
| 14636 | #define ID3D12StateObjectProperties2_GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) \ | ||
| 14637 | ( (This)->lpVtbl -> GetGlobalRootSignatureForProgram(This,pProgramName,riid,ppvRootSignature) ) | ||
| 14638 | |||
| 14639 | #define ID3D12StateObjectProperties2_GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) \ | ||
| 14640 | ( (This)->lpVtbl -> GetGlobalRootSignatureForShader(This,pExportName,riid,ppvRootSignature) ) | ||
| 14641 | |||
| 14642 | #endif /* COBJMACROS */ | ||
| 14643 | |||
| 14644 | |||
| 14645 | #endif /* C style interface */ | ||
| 14646 | |||
| 14647 | |||
| 14648 | |||
| 14649 | |||
| 14650 | #endif /* __ID3D12StateObjectProperties2_INTERFACE_DEFINED__ */ | ||
| 14651 | |||
| 14652 | |||
| 14653 | /* interface __MIDL_itf_d3d12_0000_0038 */ | ||
| 14654 | /* [local] */ | ||
| 14655 | |||
| 14656 | typedef struct D3D12_NODE_ID | ||
| 14657 | { | ||
| 14658 | LPCWSTR Name; | ||
| 14659 | UINT ArrayIndex; | ||
| 14660 | } D3D12_NODE_ID; | ||
| 14661 | |||
| 14662 | typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS | ||
| 14663 | { | ||
| 14664 | UINT64 MinSizeInBytes; | ||
| 14665 | UINT64 MaxSizeInBytes; | ||
| 14666 | UINT SizeGranularityInBytes; | ||
| 14667 | } D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS; | ||
| 14668 | |||
| 14669 | |||
| 14670 | |||
| 14671 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_c_ifspec; | ||
| 14672 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0038_v0_0_s_ifspec; | ||
| 14673 | |||
| 14674 | #ifndef __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ | ||
| 14675 | #define __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ | ||
| 14676 | |||
| 14677 | /* interface ID3D12WorkGraphProperties */ | ||
| 14678 | /* [unique][local][object][uuid] */ | ||
| 14679 | |||
| 14680 | |||
| 14681 | EXTERN_C const IID IID_ID3D12WorkGraphProperties; | ||
| 14682 | |||
| 14683 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 14684 | |||
| 14685 | MIDL_INTERFACE("065acf71-f863-4b89-82f4-02e4d5886757") | ||
| 14686 | ID3D12WorkGraphProperties : public IUnknown | ||
| 14687 | { | ||
| 14688 | public: | ||
| 14689 | virtual UINT STDMETHODCALLTYPE GetNumWorkGraphs( void) = 0; | ||
| 14690 | |||
| 14691 | virtual LPCWSTR STDMETHODCALLTYPE GetProgramName( | ||
| 14692 | UINT WorkGraphIndex) = 0; | ||
| 14693 | |||
| 14694 | virtual UINT STDMETHODCALLTYPE GetWorkGraphIndex( | ||
| 14695 | LPCWSTR pProgramName) = 0; | ||
| 14696 | |||
| 14697 | virtual UINT STDMETHODCALLTYPE GetNumNodes( | ||
| 14698 | UINT WorkGraphIndex) = 0; | ||
| 14699 | |||
| 14700 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 14701 | virtual D3D12_NODE_ID STDMETHODCALLTYPE GetNodeID( | ||
| 14702 | UINT WorkGraphIndex, | ||
| 14703 | UINT NodeIndex) = 0; | ||
| 14704 | #else | ||
| 14705 | virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetNodeID( | ||
| 14706 | D3D12_NODE_ID * RetVal, | ||
| 14707 | UINT WorkGraphIndex, | ||
| 14708 | UINT NodeIndex) = 0; | ||
| 14709 | #endif | ||
| 14710 | |||
| 14711 | virtual UINT STDMETHODCALLTYPE GetNodeIndex( | ||
| 14712 | UINT WorkGraphIndex, | ||
| 14713 | D3D12_NODE_ID NodeID) = 0; | ||
| 14714 | |||
| 14715 | virtual UINT STDMETHODCALLTYPE GetNodeLocalRootArgumentsTableIndex( | ||
| 14716 | UINT WorkGraphIndex, | ||
| 14717 | UINT NodeIndex) = 0; | ||
| 14718 | |||
| 14719 | virtual UINT STDMETHODCALLTYPE GetNumEntrypoints( | ||
| 14720 | UINT WorkGraphIndex) = 0; | ||
| 14721 | |||
| 14722 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 14723 | virtual D3D12_NODE_ID STDMETHODCALLTYPE GetEntrypointID( | ||
| 14724 | UINT WorkGraphIndex, | ||
| 14725 | UINT EntrypointIndex) = 0; | ||
| 14726 | #else | ||
| 14727 | virtual D3D12_NODE_ID *STDMETHODCALLTYPE GetEntrypointID( | ||
| 14728 | D3D12_NODE_ID * RetVal, | ||
| 14729 | UINT WorkGraphIndex, | ||
| 14730 | UINT EntrypointIndex) = 0; | ||
| 14731 | #endif | ||
| 14732 | |||
| 14733 | virtual UINT STDMETHODCALLTYPE GetEntrypointIndex( | ||
| 14734 | UINT WorkGraphIndex, | ||
| 14735 | D3D12_NODE_ID NodeID) = 0; | ||
| 14736 | |||
| 14737 | virtual UINT STDMETHODCALLTYPE GetEntrypointRecordSizeInBytes( | ||
| 14738 | UINT WorkGraphIndex, | ||
| 14739 | UINT EntrypointIndex) = 0; | ||
| 14740 | |||
| 14741 | virtual void STDMETHODCALLTYPE GetWorkGraphMemoryRequirements( | ||
| 14742 | UINT WorkGraphIndex, | ||
| 14743 | _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements) = 0; | ||
| 14744 | |||
| 14745 | virtual UINT STDMETHODCALLTYPE GetEntrypointRecordAlignmentInBytes( | ||
| 14746 | UINT WorkGraphIndex, | ||
| 14747 | UINT EntrypointIndex) = 0; | ||
| 14748 | |||
| 14749 | }; | ||
| 14750 | |||
| 14751 | |||
| 14752 | #else /* C style interface */ | ||
| 14753 | |||
| 14754 | typedef struct ID3D12WorkGraphPropertiesVtbl | ||
| 14755 | { | ||
| 14756 | BEGIN_INTERFACE | ||
| 14757 | |||
| 14758 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 14759 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 14760 | ID3D12WorkGraphProperties * This, | ||
| 14761 | REFIID riid, | ||
| 14762 | _COM_Outptr_ void **ppvObject); | ||
| 14763 | |||
| 14764 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 14765 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 14766 | ID3D12WorkGraphProperties * This); | ||
| 14767 | |||
| 14768 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 14769 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 14770 | ID3D12WorkGraphProperties * This); | ||
| 14771 | |||
| 14772 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumWorkGraphs) | ||
| 14773 | UINT ( STDMETHODCALLTYPE *GetNumWorkGraphs )( | ||
| 14774 | ID3D12WorkGraphProperties * This); | ||
| 14775 | |||
| 14776 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetProgramName) | ||
| 14777 | LPCWSTR ( STDMETHODCALLTYPE *GetProgramName )( | ||
| 14778 | ID3D12WorkGraphProperties * This, | ||
| 14779 | UINT WorkGraphIndex); | ||
| 14780 | |||
| 14781 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphIndex) | ||
| 14782 | UINT ( STDMETHODCALLTYPE *GetWorkGraphIndex )( | ||
| 14783 | ID3D12WorkGraphProperties * This, | ||
| 14784 | LPCWSTR pProgramName); | ||
| 14785 | |||
| 14786 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumNodes) | ||
| 14787 | UINT ( STDMETHODCALLTYPE *GetNumNodes )( | ||
| 14788 | ID3D12WorkGraphProperties * This, | ||
| 14789 | UINT WorkGraphIndex); | ||
| 14790 | |||
| 14791 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeID) | ||
| 14792 | #if !defined(_WIN32) | ||
| 14793 | D3D12_NODE_ID ( STDMETHODCALLTYPE *GetNodeID )( | ||
| 14794 | ID3D12WorkGraphProperties * This, | ||
| 14795 | UINT WorkGraphIndex, | ||
| 14796 | UINT NodeIndex); | ||
| 14797 | |||
| 14798 | #else | ||
| 14799 | D3D12_NODE_ID *( STDMETHODCALLTYPE *GetNodeID )( | ||
| 14800 | ID3D12WorkGraphProperties * This, | ||
| 14801 | D3D12_NODE_ID * RetVal, | ||
| 14802 | UINT WorkGraphIndex, | ||
| 14803 | UINT NodeIndex); | ||
| 14804 | |||
| 14805 | #endif | ||
| 14806 | |||
| 14807 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeIndex) | ||
| 14808 | UINT ( STDMETHODCALLTYPE *GetNodeIndex )( | ||
| 14809 | ID3D12WorkGraphProperties * This, | ||
| 14810 | UINT WorkGraphIndex, | ||
| 14811 | D3D12_NODE_ID NodeID); | ||
| 14812 | |||
| 14813 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNodeLocalRootArgumentsTableIndex) | ||
| 14814 | UINT ( STDMETHODCALLTYPE *GetNodeLocalRootArgumentsTableIndex )( | ||
| 14815 | ID3D12WorkGraphProperties * This, | ||
| 14816 | UINT WorkGraphIndex, | ||
| 14817 | UINT NodeIndex); | ||
| 14818 | |||
| 14819 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetNumEntrypoints) | ||
| 14820 | UINT ( STDMETHODCALLTYPE *GetNumEntrypoints )( | ||
| 14821 | ID3D12WorkGraphProperties * This, | ||
| 14822 | UINT WorkGraphIndex); | ||
| 14823 | |||
| 14824 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointID) | ||
| 14825 | #if !defined(_WIN32) | ||
| 14826 | D3D12_NODE_ID ( STDMETHODCALLTYPE *GetEntrypointID )( | ||
| 14827 | ID3D12WorkGraphProperties * This, | ||
| 14828 | UINT WorkGraphIndex, | ||
| 14829 | UINT EntrypointIndex); | ||
| 14830 | |||
| 14831 | #else | ||
| 14832 | D3D12_NODE_ID *( STDMETHODCALLTYPE *GetEntrypointID )( | ||
| 14833 | ID3D12WorkGraphProperties * This, | ||
| 14834 | D3D12_NODE_ID * RetVal, | ||
| 14835 | UINT WorkGraphIndex, | ||
| 14836 | UINT EntrypointIndex); | ||
| 14837 | |||
| 14838 | #endif | ||
| 14839 | |||
| 14840 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointIndex) | ||
| 14841 | UINT ( STDMETHODCALLTYPE *GetEntrypointIndex )( | ||
| 14842 | ID3D12WorkGraphProperties * This, | ||
| 14843 | UINT WorkGraphIndex, | ||
| 14844 | D3D12_NODE_ID NodeID); | ||
| 14845 | |||
| 14846 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordSizeInBytes) | ||
| 14847 | UINT ( STDMETHODCALLTYPE *GetEntrypointRecordSizeInBytes )( | ||
| 14848 | ID3D12WorkGraphProperties * This, | ||
| 14849 | UINT WorkGraphIndex, | ||
| 14850 | UINT EntrypointIndex); | ||
| 14851 | |||
| 14852 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetWorkGraphMemoryRequirements) | ||
| 14853 | void ( STDMETHODCALLTYPE *GetWorkGraphMemoryRequirements )( | ||
| 14854 | ID3D12WorkGraphProperties * This, | ||
| 14855 | UINT WorkGraphIndex, | ||
| 14856 | _Out_ D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS *pWorkGraphMemoryRequirements); | ||
| 14857 | |||
| 14858 | DECLSPEC_XFGVIRT(ID3D12WorkGraphProperties, GetEntrypointRecordAlignmentInBytes) | ||
| 14859 | UINT ( STDMETHODCALLTYPE *GetEntrypointRecordAlignmentInBytes )( | ||
| 14860 | ID3D12WorkGraphProperties * This, | ||
| 14861 | UINT WorkGraphIndex, | ||
| 14862 | UINT EntrypointIndex); | ||
| 14863 | |||
| 14864 | END_INTERFACE | ||
| 14865 | } ID3D12WorkGraphPropertiesVtbl; | ||
| 14866 | |||
| 14867 | interface ID3D12WorkGraphProperties | ||
| 14868 | { | ||
| 14869 | CONST_VTBL struct ID3D12WorkGraphPropertiesVtbl *lpVtbl; | ||
| 14870 | }; | ||
| 14871 | |||
| 14872 | |||
| 14873 | |||
| 14874 | #ifdef COBJMACROS | ||
| 14875 | |||
| 14876 | |||
| 14877 | #define ID3D12WorkGraphProperties_QueryInterface(This,riid,ppvObject) \ | ||
| 14878 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 14879 | |||
| 14880 | #define ID3D12WorkGraphProperties_AddRef(This) \ | ||
| 14881 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 14882 | |||
| 14883 | #define ID3D12WorkGraphProperties_Release(This) \ | ||
| 14884 | ( (This)->lpVtbl -> Release(This) ) | ||
| 14885 | |||
| 14886 | |||
| 14887 | #define ID3D12WorkGraphProperties_GetNumWorkGraphs(This) \ | ||
| 14888 | ( (This)->lpVtbl -> GetNumWorkGraphs(This) ) | ||
| 14889 | |||
| 14890 | #define ID3D12WorkGraphProperties_GetProgramName(This,WorkGraphIndex) \ | ||
| 14891 | ( (This)->lpVtbl -> GetProgramName(This,WorkGraphIndex) ) | ||
| 14892 | |||
| 14893 | #define ID3D12WorkGraphProperties_GetWorkGraphIndex(This,pProgramName) \ | ||
| 14894 | ( (This)->lpVtbl -> GetWorkGraphIndex(This,pProgramName) ) | ||
| 14895 | |||
| 14896 | #define ID3D12WorkGraphProperties_GetNumNodes(This,WorkGraphIndex) \ | ||
| 14897 | ( (This)->lpVtbl -> GetNumNodes(This,WorkGraphIndex) ) | ||
| 14898 | #if !defined(_WIN32) | ||
| 14899 | |||
| 14900 | #define ID3D12WorkGraphProperties_GetNodeID(This,WorkGraphIndex,NodeIndex) \ | ||
| 14901 | ( (This)->lpVtbl -> GetNodeID(This,WorkGraphIndex,NodeIndex) ) | ||
| 14902 | #else | ||
| 14903 | #define ID3D12WorkGraphProperties_GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) \ | ||
| 14904 | ( (This)->lpVtbl -> GetNodeID(This,RetVal,WorkGraphIndex,NodeIndex) ) | ||
| 14905 | #endif | ||
| 14906 | |||
| 14907 | #define ID3D12WorkGraphProperties_GetNodeIndex(This,WorkGraphIndex,NodeID) \ | ||
| 14908 | ( (This)->lpVtbl -> GetNodeIndex(This,WorkGraphIndex,NodeID) ) | ||
| 14909 | |||
| 14910 | #define ID3D12WorkGraphProperties_GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) \ | ||
| 14911 | ( (This)->lpVtbl -> GetNodeLocalRootArgumentsTableIndex(This,WorkGraphIndex,NodeIndex) ) | ||
| 14912 | |||
| 14913 | #define ID3D12WorkGraphProperties_GetNumEntrypoints(This,WorkGraphIndex) \ | ||
| 14914 | ( (This)->lpVtbl -> GetNumEntrypoints(This,WorkGraphIndex) ) | ||
| 14915 | #if !defined(_WIN32) | ||
| 14916 | |||
| 14917 | #define ID3D12WorkGraphProperties_GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) \ | ||
| 14918 | ( (This)->lpVtbl -> GetEntrypointID(This,WorkGraphIndex,EntrypointIndex) ) | ||
| 14919 | #else | ||
| 14920 | #define ID3D12WorkGraphProperties_GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) \ | ||
| 14921 | ( (This)->lpVtbl -> GetEntrypointID(This,RetVal,WorkGraphIndex,EntrypointIndex) ) | ||
| 14922 | #endif | ||
| 14923 | |||
| 14924 | #define ID3D12WorkGraphProperties_GetEntrypointIndex(This,WorkGraphIndex,NodeID) \ | ||
| 14925 | ( (This)->lpVtbl -> GetEntrypointIndex(This,WorkGraphIndex,NodeID) ) | ||
| 14926 | |||
| 14927 | #define ID3D12WorkGraphProperties_GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) \ | ||
| 14928 | ( (This)->lpVtbl -> GetEntrypointRecordSizeInBytes(This,WorkGraphIndex,EntrypointIndex) ) | ||
| 14929 | |||
| 14930 | #define ID3D12WorkGraphProperties_GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) \ | ||
| 14931 | ( (This)->lpVtbl -> GetWorkGraphMemoryRequirements(This,WorkGraphIndex,pWorkGraphMemoryRequirements) ) | ||
| 14932 | |||
| 14933 | #define ID3D12WorkGraphProperties_GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) \ | ||
| 14934 | ( (This)->lpVtbl -> GetEntrypointRecordAlignmentInBytes(This,WorkGraphIndex,EntrypointIndex) ) | ||
| 14935 | |||
| 14936 | #endif /* COBJMACROS */ | ||
| 14937 | |||
| 14938 | |||
| 14939 | #endif /* C style interface */ | ||
| 14940 | |||
| 14941 | |||
| 14942 | |||
| 14943 | |||
| 14944 | #endif /* __ID3D12WorkGraphProperties_INTERFACE_DEFINED__ */ | ||
| 14945 | |||
| 14946 | |||
| 14947 | /* interface __MIDL_itf_d3d12_0000_0039 */ | ||
| 14948 | /* [local] */ | ||
| 14949 | |||
| 14950 | typedef | ||
| 14951 | enum D3D12_STATE_SUBOBJECT_TYPE | ||
| 14952 | { | ||
| 14953 | D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0, | ||
| 14954 | D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1, | ||
| 14955 | D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2, | ||
| 14956 | D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3, | ||
| 14957 | D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5, | ||
| 14958 | D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6, | ||
| 14959 | D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7, | ||
| 14960 | D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8, | ||
| 14961 | D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9, | ||
| 14962 | D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10, | ||
| 14963 | D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11, | ||
| 14964 | D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12, | ||
| 14965 | D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH = 13, | ||
| 14966 | D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 14, | ||
| 14967 | D3D12_STATE_SUBOBJECT_TYPE_BLEND = 15, | ||
| 14968 | D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 16, | ||
| 14969 | D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER = 17, | ||
| 14970 | D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 18, | ||
| 14971 | D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 19, | ||
| 14972 | D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 20, | ||
| 14973 | D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 21, | ||
| 14974 | D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 22, | ||
| 14975 | D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 23, | ||
| 14976 | D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 24, | ||
| 14977 | D3D12_STATE_SUBOBJECT_TYPE_FLAGS = 26, | ||
| 14978 | D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 27, | ||
| 14979 | D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28, | ||
| 14980 | D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29, | ||
| 14981 | D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30, | ||
| 14982 | D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE = 31, | ||
| 14983 | D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE = 32, | ||
| 14984 | D3D12_STATE_SUBOBJECT_TYPE_COMPILER_EXISITING_COLLECTION = 33, | ||
| 14985 | D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY = 36, | ||
| 14986 | D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID = ( D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY + 1 ) | ||
| 14987 | } D3D12_STATE_SUBOBJECT_TYPE; | ||
| 14988 | |||
| 14989 | typedef struct D3D12_STATE_SUBOBJECT | ||
| 14990 | { | ||
| 14991 | D3D12_STATE_SUBOBJECT_TYPE Type; | ||
| 14992 | const void *pDesc; | ||
| 14993 | } D3D12_STATE_SUBOBJECT; | ||
| 14994 | |||
| 14995 | typedef | ||
| 14996 | enum D3D12_STATE_OBJECT_FLAGS | ||
| 14997 | { | ||
| 14998 | D3D12_STATE_OBJECT_FLAG_NONE = 0, | ||
| 14999 | D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1, | ||
| 15000 | D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2, | ||
| 15001 | D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4 | ||
| 15002 | } D3D12_STATE_OBJECT_FLAGS; | ||
| 15003 | |||
| 15004 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS ) | ||
| 15005 | typedef struct D3D12_STATE_OBJECT_CONFIG | ||
| 15006 | { | ||
| 15007 | D3D12_STATE_OBJECT_FLAGS Flags; | ||
| 15008 | } D3D12_STATE_OBJECT_CONFIG; | ||
| 15009 | |||
| 15010 | typedef struct D3D12_GLOBAL_ROOT_SIGNATURE | ||
| 15011 | { | ||
| 15012 | ID3D12RootSignature *pGlobalRootSignature; | ||
| 15013 | } D3D12_GLOBAL_ROOT_SIGNATURE; | ||
| 15014 | |||
| 15015 | typedef struct D3D12_LOCAL_ROOT_SIGNATURE | ||
| 15016 | { | ||
| 15017 | ID3D12RootSignature *pLocalRootSignature; | ||
| 15018 | } D3D12_LOCAL_ROOT_SIGNATURE; | ||
| 15019 | |||
| 15020 | typedef struct D3D12_NODE_MASK | ||
| 15021 | { | ||
| 15022 | UINT NodeMask; | ||
| 15023 | } D3D12_NODE_MASK; | ||
| 15024 | |||
| 15025 | typedef struct D3D12_SAMPLE_MASK | ||
| 15026 | { | ||
| 15027 | UINT SampleMask; | ||
| 15028 | } D3D12_SAMPLE_MASK; | ||
| 15029 | |||
| 15030 | typedef struct D3D12_IB_STRIP_CUT_VALUE | ||
| 15031 | { | ||
| 15032 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IndexBufferStripCutValue; | ||
| 15033 | } D3D12_IB_STRIP_CUT_VALUE; | ||
| 15034 | |||
| 15035 | typedef struct D3D12_PRIMITIVE_TOPOLOGY_DESC | ||
| 15036 | { | ||
| 15037 | D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopology; | ||
| 15038 | } D3D12_PRIMITIVE_TOPOLOGY_DESC; | ||
| 15039 | |||
| 15040 | typedef struct D3D12_DEPTH_STENCIL_FORMAT | ||
| 15041 | { | ||
| 15042 | DXGI_FORMAT DepthStencilFormat; | ||
| 15043 | } D3D12_DEPTH_STENCIL_FORMAT; | ||
| 15044 | |||
| 15045 | typedef | ||
| 15046 | enum D3D12_EXPORT_FLAGS | ||
| 15047 | { | ||
| 15048 | D3D12_EXPORT_FLAG_NONE = 0 | ||
| 15049 | } D3D12_EXPORT_FLAGS; | ||
| 15050 | |||
| 15051 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS ) | ||
| 15052 | typedef struct D3D12_EXPORT_DESC | ||
| 15053 | { | ||
| 15054 | LPCWSTR Name; | ||
| 15055 | _In_opt_ LPCWSTR ExportToRename; | ||
| 15056 | D3D12_EXPORT_FLAGS Flags; | ||
| 15057 | } D3D12_EXPORT_DESC; | ||
| 15058 | |||
| 15059 | typedef struct D3D12_DXIL_LIBRARY_DESC | ||
| 15060 | { | ||
| 15061 | D3D12_SHADER_BYTECODE DXILLibrary; | ||
| 15062 | UINT NumExports; | ||
| 15063 | _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; | ||
| 15064 | } D3D12_DXIL_LIBRARY_DESC; | ||
| 15065 | |||
| 15066 | typedef struct D3D12_EXISTING_COLLECTION_DESC | ||
| 15067 | { | ||
| 15068 | ID3D12StateObject *pExistingCollection; | ||
| 15069 | UINT NumExports; | ||
| 15070 | _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; | ||
| 15071 | } D3D12_EXISTING_COLLECTION_DESC; | ||
| 15072 | |||
| 15073 | typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION | ||
| 15074 | { | ||
| 15075 | const D3D12_STATE_SUBOBJECT *pSubobjectToAssociate; | ||
| 15076 | UINT NumExports; | ||
| 15077 | _In_reads_(NumExports) LPCWSTR *pExports; | ||
| 15078 | } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION; | ||
| 15079 | |||
| 15080 | typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION | ||
| 15081 | { | ||
| 15082 | LPCWSTR SubobjectToAssociate; | ||
| 15083 | UINT NumExports; | ||
| 15084 | _In_reads_(NumExports) LPCWSTR *pExports; | ||
| 15085 | } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; | ||
| 15086 | |||
| 15087 | typedef | ||
| 15088 | enum D3D12_HIT_GROUP_TYPE | ||
| 15089 | { | ||
| 15090 | D3D12_HIT_GROUP_TYPE_TRIANGLES = 0, | ||
| 15091 | D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1 | ||
| 15092 | } D3D12_HIT_GROUP_TYPE; | ||
| 15093 | |||
| 15094 | typedef struct D3D12_HIT_GROUP_DESC | ||
| 15095 | { | ||
| 15096 | LPCWSTR HitGroupExport; | ||
| 15097 | D3D12_HIT_GROUP_TYPE Type; | ||
| 15098 | _In_opt_ LPCWSTR AnyHitShaderImport; | ||
| 15099 | _In_opt_ LPCWSTR ClosestHitShaderImport; | ||
| 15100 | _In_opt_ LPCWSTR IntersectionShaderImport; | ||
| 15101 | } D3D12_HIT_GROUP_DESC; | ||
| 15102 | |||
| 15103 | typedef struct D3D12_RAYTRACING_SHADER_CONFIG | ||
| 15104 | { | ||
| 15105 | UINT MaxPayloadSizeInBytes; | ||
| 15106 | UINT MaxAttributeSizeInBytes; | ||
| 15107 | } D3D12_RAYTRACING_SHADER_CONFIG; | ||
| 15108 | |||
| 15109 | typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG | ||
| 15110 | { | ||
| 15111 | UINT MaxTraceRecursionDepth; | ||
| 15112 | } D3D12_RAYTRACING_PIPELINE_CONFIG; | ||
| 15113 | |||
| 15114 | typedef | ||
| 15115 | enum D3D12_RAYTRACING_PIPELINE_FLAGS | ||
| 15116 | { | ||
| 15117 | D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0, | ||
| 15118 | D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100, | ||
| 15119 | D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200, | ||
| 15120 | D3D12_RAYTRACING_PIPELINE_FLAG_ALLOW_OPACITY_MICROMAPS = 0x400 | ||
| 15121 | } D3D12_RAYTRACING_PIPELINE_FLAGS; | ||
| 15122 | |||
| 15123 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS ) | ||
| 15124 | typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1 | ||
| 15125 | { | ||
| 15126 | UINT MaxTraceRecursionDepth; | ||
| 15127 | D3D12_RAYTRACING_PIPELINE_FLAGS Flags; | ||
| 15128 | } D3D12_RAYTRACING_PIPELINE_CONFIG1; | ||
| 15129 | |||
| 15130 | typedef struct D3D12_NODE_OUTPUT_OVERRIDES | ||
| 15131 | { | ||
| 15132 | UINT OutputIndex; | ||
| 15133 | _In_opt_ const D3D12_NODE_ID *pNewName; | ||
| 15134 | _In_opt_ const BOOL *pAllowSparseNodes; | ||
| 15135 | _In_opt_ const UINT *pMaxRecords; | ||
| 15136 | _In_opt_ const UINT *pMaxRecordsSharedWithOutputIndex; | ||
| 15137 | } D3D12_NODE_OUTPUT_OVERRIDES; | ||
| 15138 | |||
| 15139 | typedef struct D3D12_BROADCASTING_LAUNCH_OVERRIDES | ||
| 15140 | { | ||
| 15141 | _In_opt_ const UINT *pLocalRootArgumentsTableIndex; | ||
| 15142 | _In_opt_ const BOOL *pProgramEntry; | ||
| 15143 | _In_opt_ const D3D12_NODE_ID *pNewName; | ||
| 15144 | _In_opt_ const D3D12_NODE_ID *pShareInputOf; | ||
| 15145 | _In_reads_opt_(3) const UINT *pDispatchGrid; | ||
| 15146 | _In_reads_opt_(3) const UINT *pMaxDispatchGrid; | ||
| 15147 | UINT NumOutputOverrides; | ||
| 15148 | _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; | ||
| 15149 | } D3D12_BROADCASTING_LAUNCH_OVERRIDES; | ||
| 15150 | |||
| 15151 | typedef struct D3D12_COALESCING_LAUNCH_OVERRIDES | ||
| 15152 | { | ||
| 15153 | _In_opt_ const UINT *pLocalRootArgumentsTableIndex; | ||
| 15154 | _In_opt_ const BOOL *pProgramEntry; | ||
| 15155 | _In_opt_ const D3D12_NODE_ID *pNewName; | ||
| 15156 | _In_opt_ const D3D12_NODE_ID *pShareInputOf; | ||
| 15157 | UINT NumOutputOverrides; | ||
| 15158 | _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; | ||
| 15159 | } D3D12_COALESCING_LAUNCH_OVERRIDES; | ||
| 15160 | |||
| 15161 | typedef struct D3D12_THREAD_LAUNCH_OVERRIDES | ||
| 15162 | { | ||
| 15163 | _In_opt_ const UINT *pLocalRootArgumentsTableIndex; | ||
| 15164 | _In_opt_ const BOOL *pProgramEntry; | ||
| 15165 | _In_opt_ const D3D12_NODE_ID *pNewName; | ||
| 15166 | _In_opt_ const D3D12_NODE_ID *pShareInputOf; | ||
| 15167 | UINT NumOutputOverrides; | ||
| 15168 | _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; | ||
| 15169 | } D3D12_THREAD_LAUNCH_OVERRIDES; | ||
| 15170 | |||
| 15171 | typedef struct D3D12_COMMON_COMPUTE_NODE_OVERRIDES | ||
| 15172 | { | ||
| 15173 | _In_opt_ const UINT *pLocalRootArgumentsTableIndex; | ||
| 15174 | _In_opt_ const BOOL *pProgramEntry; | ||
| 15175 | _In_opt_ const D3D12_NODE_ID *pNewName; | ||
| 15176 | _In_opt_ const D3D12_NODE_ID *pShareInputOf; | ||
| 15177 | UINT NumOutputOverrides; | ||
| 15178 | _In_reads_opt_(NumOutputOverrides) const D3D12_NODE_OUTPUT_OVERRIDES *pOutputOverrides; | ||
| 15179 | } D3D12_COMMON_COMPUTE_NODE_OVERRIDES; | ||
| 15180 | |||
| 15181 | typedef | ||
| 15182 | enum D3D12_NODE_OVERRIDES_TYPE | ||
| 15183 | { | ||
| 15184 | D3D12_NODE_OVERRIDES_TYPE_NONE = 0, | ||
| 15185 | D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH = 1, | ||
| 15186 | D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH = 2, | ||
| 15187 | D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH = 3, | ||
| 15188 | D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE = 4 | ||
| 15189 | } D3D12_NODE_OVERRIDES_TYPE; | ||
| 15190 | |||
| 15191 | typedef struct D3D12_SHADER_NODE | ||
| 15192 | { | ||
| 15193 | LPCWSTR Shader; | ||
| 15194 | D3D12_NODE_OVERRIDES_TYPE OverridesType; | ||
| 15195 | union | ||
| 15196 | { | ||
| 15197 | const D3D12_BROADCASTING_LAUNCH_OVERRIDES *pBroadcastingLaunchOverrides; | ||
| 15198 | const D3D12_COALESCING_LAUNCH_OVERRIDES *pCoalescingLaunchOverrides; | ||
| 15199 | const D3D12_THREAD_LAUNCH_OVERRIDES *pThreadLaunchOverrides; | ||
| 15200 | const D3D12_COMMON_COMPUTE_NODE_OVERRIDES *pCommonComputeNodeOverrides; | ||
| 15201 | } ; | ||
| 15202 | } D3D12_SHADER_NODE; | ||
| 15203 | |||
| 15204 | typedef | ||
| 15205 | enum D3D12_NODE_TYPE | ||
| 15206 | { | ||
| 15207 | D3D12_NODE_TYPE_SHADER = 0 | ||
| 15208 | } D3D12_NODE_TYPE; | ||
| 15209 | |||
| 15210 | typedef struct D3D12_NODE | ||
| 15211 | { | ||
| 15212 | D3D12_NODE_TYPE NodeType; | ||
| 15213 | union | ||
| 15214 | { | ||
| 15215 | D3D12_SHADER_NODE Shader; | ||
| 15216 | } ; | ||
| 15217 | } D3D12_NODE; | ||
| 15218 | |||
| 15219 | typedef | ||
| 15220 | enum D3D12_WORK_GRAPH_FLAGS | ||
| 15221 | { | ||
| 15222 | D3D12_WORK_GRAPH_FLAG_NONE = 0, | ||
| 15223 | D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES = 0x1 | ||
| 15224 | } D3D12_WORK_GRAPH_FLAGS; | ||
| 15225 | |||
| 15226 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_WORK_GRAPH_FLAGS ) | ||
| 15227 | typedef struct D3D12_WORK_GRAPH_DESC | ||
| 15228 | { | ||
| 15229 | LPCWSTR ProgramName; | ||
| 15230 | D3D12_WORK_GRAPH_FLAGS Flags; | ||
| 15231 | UINT NumEntrypoints; | ||
| 15232 | _In_reads_opt_(NumEntrypoints) const D3D12_NODE_ID *pEntrypoints; | ||
| 15233 | UINT NumExplicitlyDefinedNodes; | ||
| 15234 | _In_reads_opt_(NumExplicitlyDefinedNodes) const D3D12_NODE *pExplicitlyDefinedNodes; | ||
| 15235 | } D3D12_WORK_GRAPH_DESC; | ||
| 15236 | |||
| 15237 | typedef struct D3D12_GENERIC_PROGRAM_DESC | ||
| 15238 | { | ||
| 15239 | LPCWSTR ProgramName; | ||
| 15240 | UINT NumExports; | ||
| 15241 | _In_reads_(NumExports) LPCWSTR *pExports; | ||
| 15242 | UINT NumSubobjects; | ||
| 15243 | _In_reads_opt_(NumSubobjects) const D3D12_STATE_SUBOBJECT *const *ppSubobjects; | ||
| 15244 | } D3D12_GENERIC_PROGRAM_DESC; | ||
| 15245 | |||
| 15246 | typedef | ||
| 15247 | enum D3D12_STATE_OBJECT_TYPE | ||
| 15248 | { | ||
| 15249 | D3D12_STATE_OBJECT_TYPE_COLLECTION = 0, | ||
| 15250 | D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3, | ||
| 15251 | D3D12_STATE_OBJECT_TYPE_EXECUTABLE = 4 | ||
| 15252 | } D3D12_STATE_OBJECT_TYPE; | ||
| 15253 | |||
| 15254 | typedef struct D3D12_STATE_OBJECT_DESC | ||
| 15255 | { | ||
| 15256 | D3D12_STATE_OBJECT_TYPE Type; | ||
| 15257 | UINT NumSubobjects; | ||
| 15258 | _In_reads_(NumSubobjects) const D3D12_STATE_SUBOBJECT *pSubobjects; | ||
| 15259 | } D3D12_STATE_OBJECT_DESC; | ||
| 15260 | |||
| 15261 | typedef | ||
| 15262 | enum D3D12_RAYTRACING_GEOMETRY_FLAGS | ||
| 15263 | { | ||
| 15264 | D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0, | ||
| 15265 | D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1, | ||
| 15266 | D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2 | ||
| 15267 | } D3D12_RAYTRACING_GEOMETRY_FLAGS; | ||
| 15268 | |||
| 15269 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS ) | ||
| 15270 | typedef | ||
| 15271 | enum D3D12_RAYTRACING_GEOMETRY_TYPE | ||
| 15272 | { | ||
| 15273 | D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES = 0, | ||
| 15274 | D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS = ( D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES + 1 ) , | ||
| 15275 | D3D12_RAYTRACING_GEOMETRY_TYPE_OMM_TRIANGLES = ( D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS + 1 ) | ||
| 15276 | } D3D12_RAYTRACING_GEOMETRY_TYPE; | ||
| 15277 | |||
| 15278 | typedef | ||
| 15279 | enum D3D12_RAYTRACING_INSTANCE_FLAGS | ||
| 15280 | { | ||
| 15281 | D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0, | ||
| 15282 | D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1, | ||
| 15283 | D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2, | ||
| 15284 | D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4, | ||
| 15285 | D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8, | ||
| 15286 | D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 0x10, | ||
| 15287 | D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 0x20 | ||
| 15288 | } D3D12_RAYTRACING_INSTANCE_FLAGS; | ||
| 15289 | |||
| 15290 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS ) | ||
| 15291 | typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE | ||
| 15292 | { | ||
| 15293 | D3D12_GPU_VIRTUAL_ADDRESS StartAddress; | ||
| 15294 | UINT64 StrideInBytes; | ||
| 15295 | } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE; | ||
| 15296 | |||
| 15297 | typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE | ||
| 15298 | { | ||
| 15299 | D3D12_GPU_VIRTUAL_ADDRESS StartAddress; | ||
| 15300 | UINT64 SizeInBytes; | ||
| 15301 | } D3D12_GPU_VIRTUAL_ADDRESS_RANGE; | ||
| 15302 | |||
| 15303 | typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE | ||
| 15304 | { | ||
| 15305 | D3D12_GPU_VIRTUAL_ADDRESS StartAddress; | ||
| 15306 | UINT64 SizeInBytes; | ||
| 15307 | UINT64 StrideInBytes; | ||
| 15308 | } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE; | ||
| 15309 | |||
| 15310 | typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC | ||
| 15311 | { | ||
| 15312 | D3D12_GPU_VIRTUAL_ADDRESS Transform3x4; | ||
| 15313 | DXGI_FORMAT IndexFormat; | ||
| 15314 | DXGI_FORMAT VertexFormat; | ||
| 15315 | UINT IndexCount; | ||
| 15316 | UINT VertexCount; | ||
| 15317 | D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer; | ||
| 15318 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer; | ||
| 15319 | } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC; | ||
| 15320 | |||
| 15321 | typedef struct D3D12_RAYTRACING_AABB | ||
| 15322 | { | ||
| 15323 | FLOAT MinX; | ||
| 15324 | FLOAT MinY; | ||
| 15325 | FLOAT MinZ; | ||
| 15326 | FLOAT MaxX; | ||
| 15327 | FLOAT MaxY; | ||
| 15328 | FLOAT MaxZ; | ||
| 15329 | } D3D12_RAYTRACING_AABB; | ||
| 15330 | |||
| 15331 | typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC | ||
| 15332 | { | ||
| 15333 | UINT64 AABBCount; | ||
| 15334 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs; | ||
| 15335 | } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC; | ||
| 15336 | |||
| 15337 | typedef | ||
| 15338 | enum D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX | ||
| 15339 | { | ||
| 15340 | D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT = -1, | ||
| 15341 | D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE = -2, | ||
| 15342 | D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT = -3, | ||
| 15343 | D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE = -4 | ||
| 15344 | } D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX; | ||
| 15345 | |||
| 15346 | typedef | ||
| 15347 | enum D3D12_RAYTRACING_OPACITY_MICROMAP_STATE | ||
| 15348 | { | ||
| 15349 | D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_TRANSPARENT = 0, | ||
| 15350 | D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_OPAQUE = 1, | ||
| 15351 | D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT = 2, | ||
| 15352 | D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE = 3 | ||
| 15353 | } D3D12_RAYTRACING_OPACITY_MICROMAP_STATE; | ||
| 15354 | |||
| 15355 | typedef | ||
| 15356 | enum D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT | ||
| 15357 | { | ||
| 15358 | D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_2_STATE = 0x1, | ||
| 15359 | D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_4_STATE = 0x2 | ||
| 15360 | } D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT; | ||
| 15361 | |||
| 15362 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_DESC | ||
| 15363 | { | ||
| 15364 | UINT ByteOffset; | ||
| 15365 | UINT SubdivisionLevel : 16; | ||
| 15366 | D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format : 16; | ||
| 15367 | } D3D12_RAYTRACING_OPACITY_MICROMAP_DESC; | ||
| 15368 | typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC | ||
| 15369 | { | ||
| 15370 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE OpacityMicromapIndexBuffer; | ||
| 15371 | DXGI_FORMAT OpacityMicromapIndexFormat; | ||
| 15372 | UINT OpacityMicromapBaseLocation; | ||
| 15373 | D3D12_GPU_VIRTUAL_ADDRESS OpacityMicromapArray; | ||
| 15374 | } D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC; | ||
| 15375 | |||
| 15376 | typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC | ||
| 15377 | { | ||
| 15378 | const D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC *pTriangles; | ||
| 15379 | const D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC *pOmmLinkage; | ||
| 15380 | } D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC; | ||
| 15381 | |||
| 15382 | typedef | ||
| 15383 | enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS | ||
| 15384 | { | ||
| 15385 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0, | ||
| 15386 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x1, | ||
| 15387 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x2, | ||
| 15388 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x4, | ||
| 15389 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x8, | ||
| 15390 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10, | ||
| 15391 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20, | ||
| 15392 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE = 0x40, | ||
| 15393 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS = 0x80 | ||
| 15394 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS; | ||
| 15395 | |||
| 15396 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS ) | ||
| 15397 | typedef | ||
| 15398 | enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE | ||
| 15399 | { | ||
| 15400 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0, | ||
| 15401 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1, | ||
| 15402 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2, | ||
| 15403 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3, | ||
| 15404 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4 | ||
| 15405 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE; | ||
| 15406 | |||
| 15407 | typedef | ||
| 15408 | enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE | ||
| 15409 | { | ||
| 15410 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0, | ||
| 15411 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1, | ||
| 15412 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_OPACITY_MICROMAP_ARRAY = 0x2 | ||
| 15413 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE; | ||
| 15414 | |||
| 15415 | typedef | ||
| 15416 | enum D3D12_ELEMENTS_LAYOUT | ||
| 15417 | { | ||
| 15418 | D3D12_ELEMENTS_LAYOUT_ARRAY = 0, | ||
| 15419 | D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1 | ||
| 15420 | } D3D12_ELEMENTS_LAYOUT; | ||
| 15421 | |||
| 15422 | typedef | ||
| 15423 | enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE | ||
| 15424 | { | ||
| 15425 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0, | ||
| 15426 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1, | ||
| 15427 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2, | ||
| 15428 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3 | ||
| 15429 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE; | ||
| 15430 | |||
| 15431 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC | ||
| 15432 | { | ||
| 15433 | D3D12_GPU_VIRTUAL_ADDRESS DestBuffer; | ||
| 15434 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType; | ||
| 15435 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC; | ||
| 15436 | |||
| 15437 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC | ||
| 15438 | { | ||
| 15439 | UINT64 CompactedSizeInBytes; | ||
| 15440 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC; | ||
| 15441 | |||
| 15442 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC | ||
| 15443 | { | ||
| 15444 | UINT64 DecodedSizeInBytes; | ||
| 15445 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC; | ||
| 15446 | |||
| 15447 | typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER | ||
| 15448 | { | ||
| 15449 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; | ||
| 15450 | UINT NumDescs; | ||
| 15451 | } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER; | ||
| 15452 | |||
| 15453 | // Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above, | ||
| 15454 | // depending on Type field, NumDescs above is followed by either: | ||
| 15455 | // D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs] | ||
| 15456 | // or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs]. | ||
| 15457 | // or D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC (NumDescs == 1 in this case). | ||
| 15458 | // | ||
| 15459 | // For D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC, the pOmmHistogram pointer becomes a GPUVA instead of CPU pointer | ||
| 15460 | // | ||
| 15461 | // There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU. | ||
| 15462 | |||
| 15463 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC | ||
| 15464 | { | ||
| 15465 | UINT64 SerializedSizeInBytes; | ||
| 15466 | union | ||
| 15467 | { | ||
| 15468 | UINT64 NumBottomLevelAccelerationStructurePointers; | ||
| 15469 | UINT64 NumBottomLevelAccelerationStructureHeaderAndPointerListPairs; | ||
| 15470 | } ; | ||
| 15471 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC; | ||
| 15472 | |||
| 15473 | typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER | ||
| 15474 | { | ||
| 15475 | GUID DriverOpaqueGUID; | ||
| 15476 | BYTE DriverOpaqueVersioningData[ 16 ]; | ||
| 15477 | } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER; | ||
| 15478 | |||
| 15479 | typedef | ||
| 15480 | enum D3D12_SERIALIZED_DATA_TYPE | ||
| 15481 | { | ||
| 15482 | D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0, | ||
| 15483 | D3D12_SERIALIZED_DATA_APPLICATION_SPECIFIC_DRIVER_STATE = 0x1 | ||
| 15484 | } D3D12_SERIALIZED_DATA_TYPE; | ||
| 15485 | |||
| 15486 | typedef | ||
| 15487 | enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS | ||
| 15488 | { | ||
| 15489 | D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0, | ||
| 15490 | D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1, | ||
| 15491 | D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2, | ||
| 15492 | D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3, | ||
| 15493 | D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4 | ||
| 15494 | } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS; | ||
| 15495 | |||
| 15496 | typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER | ||
| 15497 | { | ||
| 15498 | D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier; | ||
| 15499 | UINT64 SerializedSizeInBytesIncludingHeader; | ||
| 15500 | UINT64 DeserializedSizeInBytes; | ||
| 15501 | UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader; | ||
| 15502 | } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER; | ||
| 15503 | |||
| 15504 | typedef | ||
| 15505 | enum D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE | ||
| 15506 | { | ||
| 15507 | D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_NONE = 0, | ||
| 15508 | D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BOTTOM_LEVEL_POINTERS = 0, | ||
| 15509 | D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BLOCKS = 0xffffffff | ||
| 15510 | } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE; | ||
| 15511 | |||
| 15512 | typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1 | ||
| 15513 | { | ||
| 15514 | D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier; | ||
| 15515 | UINT64 SerializedSizeInBytesIncludingHeader; | ||
| 15516 | UINT64 DeserializedSizeInBytes; | ||
| 15517 | union | ||
| 15518 | { | ||
| 15519 | UINT NumBottomLevelAccelerationStructurePointersAfterHeader; | ||
| 15520 | UINT NumBlocks; | ||
| 15521 | } ; | ||
| 15522 | D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE HeaderPostambleType; | ||
| 15523 | } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1; | ||
| 15524 | |||
| 15525 | typedef | ||
| 15526 | enum D3D12_SERIALIZED_BLOCK_TYPE | ||
| 15527 | { | ||
| 15528 | D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE_OPACITY_MICROMAPS = 0 | ||
| 15529 | } D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE; | ||
| 15530 | |||
| 15531 | typedef struct D3D12_RAYTRACING_SERIALIZED_BLOCK | ||
| 15532 | { | ||
| 15533 | D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE Type; | ||
| 15534 | UINT64 NumBlockPointersAfterHeader; | ||
| 15535 | } D3D12_RAYTRACING_SERIALIZED_BLOCK; | ||
| 15536 | |||
| 15537 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC | ||
| 15538 | { | ||
| 15539 | UINT64 CurrentSizeInBytes; | ||
| 15540 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC; | ||
| 15541 | |||
| 15542 | typedef struct D3D12_RAYTRACING_INSTANCE_DESC | ||
| 15543 | { | ||
| 15544 | FLOAT Transform[ 3 ][ 4 ]; | ||
| 15545 | UINT InstanceID : 24; | ||
| 15546 | UINT InstanceMask : 8; | ||
| 15547 | UINT InstanceContributionToHitGroupIndex : 24; | ||
| 15548 | UINT Flags : 8; | ||
| 15549 | D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure; | ||
| 15550 | } D3D12_RAYTRACING_INSTANCE_DESC; | ||
| 15551 | |||
| 15552 | typedef struct D3D12_RAYTRACING_GEOMETRY_DESC | ||
| 15553 | { | ||
| 15554 | D3D12_RAYTRACING_GEOMETRY_TYPE Type; | ||
| 15555 | D3D12_RAYTRACING_GEOMETRY_FLAGS Flags; | ||
| 15556 | union | ||
| 15557 | { | ||
| 15558 | D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles; | ||
| 15559 | D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs; | ||
| 15560 | D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC OmmTriangles; | ||
| 15561 | } ; | ||
| 15562 | } D3D12_RAYTRACING_GEOMETRY_DESC; | ||
| 15563 | |||
| 15564 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY | ||
| 15565 | { | ||
| 15566 | UINT Count; | ||
| 15567 | UINT SubdivisionLevel; | ||
| 15568 | D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format; | ||
| 15569 | } D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY; | ||
| 15570 | |||
| 15571 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC | ||
| 15572 | { | ||
| 15573 | UINT NumOmmHistogramEntries; | ||
| 15574 | const D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY *pOmmHistogram; | ||
| 15575 | D3D12_GPU_VIRTUAL_ADDRESS InputBuffer; | ||
| 15576 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE PerOmmDescs; | ||
| 15577 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC; | ||
| 15578 | |||
| 15579 | typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS | ||
| 15580 | { | ||
| 15581 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; | ||
| 15582 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags; | ||
| 15583 | UINT NumDescs; | ||
| 15584 | D3D12_ELEMENTS_LAYOUT DescsLayout; | ||
| 15585 | union | ||
| 15586 | { | ||
| 15587 | D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs; | ||
| 15588 | const D3D12_RAYTRACING_GEOMETRY_DESC *pGeometryDescs; | ||
| 15589 | const D3D12_RAYTRACING_GEOMETRY_DESC *const *ppGeometryDescs; | ||
| 15590 | const D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC *pOpacityMicromapArrayDesc; | ||
| 15591 | } ; | ||
| 15592 | } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS; | ||
| 15593 | |||
| 15594 | typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC | ||
| 15595 | { | ||
| 15596 | D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData; | ||
| 15597 | D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs; | ||
| 15598 | _In_opt_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData; | ||
| 15599 | D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData; | ||
| 15600 | } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC; | ||
| 15601 | |||
| 15602 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO | ||
| 15603 | { | ||
| 15604 | UINT64 ResultDataMaxSizeInBytes; | ||
| 15605 | UINT64 ScratchDataSizeInBytes; | ||
| 15606 | UINT64 UpdateScratchDataSizeInBytes; | ||
| 15607 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO; | ||
| 15608 | |||
| 15609 | typedef | ||
| 15610 | enum D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE | ||
| 15611 | { | ||
| 15612 | D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE = 0, | ||
| 15613 | D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1 | ||
| 15614 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE; | ||
| 15615 | |||
| 15616 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC | ||
| 15617 | { | ||
| 15618 | D3D12_GPU_VIRTUAL_ADDRESS DestBuffer; | ||
| 15619 | D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE InfoType; | ||
| 15620 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC; | ||
| 15621 | |||
| 15622 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC | ||
| 15623 | { | ||
| 15624 | UINT64 CurrentSizeInBytes; | ||
| 15625 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC; | ||
| 15626 | |||
| 15627 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC | ||
| 15628 | { | ||
| 15629 | UINT64 DecodedSizeInBytes; | ||
| 15630 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC; | ||
| 15631 | |||
| 15632 | typedef | ||
| 15633 | enum D3D12_RAY_FLAGS | ||
| 15634 | { | ||
| 15635 | D3D12_RAY_FLAG_NONE = 0, | ||
| 15636 | D3D12_RAY_FLAG_FORCE_OPAQUE = 0x1, | ||
| 15637 | D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x2, | ||
| 15638 | D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x4, | ||
| 15639 | D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x8, | ||
| 15640 | D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10, | ||
| 15641 | D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20, | ||
| 15642 | D3D12_RAY_FLAG_CULL_OPAQUE = 0x40, | ||
| 15643 | D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80, | ||
| 15644 | D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100, | ||
| 15645 | D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200, | ||
| 15646 | D3D12_RAY_FLAG_FORCE_OMM_2_STATE = 0x400 | ||
| 15647 | } D3D12_RAY_FLAGS; | ||
| 15648 | |||
| 15649 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS ) | ||
| 15650 | typedef | ||
| 15651 | enum D3D12_HIT_KIND | ||
| 15652 | { | ||
| 15653 | D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe, | ||
| 15654 | D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff | ||
| 15655 | } D3D12_HIT_KIND; | ||
| 15656 | |||
| 15657 | |||
| 15658 | |||
| 15659 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_c_ifspec; | ||
| 15660 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0039_v0_0_s_ifspec; | ||
| 15661 | |||
| 15662 | #ifndef __ID3D12Device5_INTERFACE_DEFINED__ | ||
| 15663 | #define __ID3D12Device5_INTERFACE_DEFINED__ | ||
| 15664 | |||
| 15665 | /* interface ID3D12Device5 */ | ||
| 15666 | /* [unique][local][object][uuid] */ | ||
| 15667 | |||
| 15668 | |||
| 15669 | EXTERN_C const IID IID_ID3D12Device5; | ||
| 15670 | |||
| 15671 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 15672 | |||
| 15673 | MIDL_INTERFACE("8b4f173b-2fea-4b80-8f58-4307191ab95d") | ||
| 15674 | ID3D12Device5 : public ID3D12Device4 | ||
| 15675 | { | ||
| 15676 | public: | ||
| 15677 | virtual HRESULT STDMETHODCALLTYPE CreateLifetimeTracker( | ||
| 15678 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 15679 | REFIID riid, | ||
| 15680 | _COM_Outptr_ void **ppvTracker) = 0; | ||
| 15681 | |||
| 15682 | virtual void STDMETHODCALLTYPE RemoveDevice( void) = 0; | ||
| 15683 | |||
| 15684 | virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommands( | ||
| 15685 | _Inout_ UINT *pNumMetaCommands, | ||
| 15686 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs) = 0; | ||
| 15687 | |||
| 15688 | virtual HRESULT STDMETHODCALLTYPE EnumerateMetaCommandParameters( | ||
| 15689 | _In_ REFGUID CommandId, | ||
| 15690 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 15691 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 15692 | _Inout_ UINT *pParameterCount, | ||
| 15693 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs) = 0; | ||
| 15694 | |||
| 15695 | virtual HRESULT STDMETHODCALLTYPE CreateMetaCommand( | ||
| 15696 | _In_ REFGUID CommandId, | ||
| 15697 | _In_ UINT NodeMask, | ||
| 15698 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 15699 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 15700 | REFIID riid, | ||
| 15701 | _COM_Outptr_ void **ppMetaCommand) = 0; | ||
| 15702 | |||
| 15703 | virtual HRESULT STDMETHODCALLTYPE CreateStateObject( | ||
| 15704 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 15705 | REFIID riid, | ||
| 15706 | _COM_Outptr_ void **ppStateObject) = 0; | ||
| 15707 | |||
| 15708 | virtual void STDMETHODCALLTYPE GetRaytracingAccelerationStructurePrebuildInfo( | ||
| 15709 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 15710 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo) = 0; | ||
| 15711 | |||
| 15712 | virtual D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS STDMETHODCALLTYPE CheckDriverMatchingIdentifier( | ||
| 15713 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 15714 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck) = 0; | ||
| 15715 | |||
| 15716 | }; | ||
| 15717 | |||
| 15718 | |||
| 15719 | #else /* C style interface */ | ||
| 15720 | |||
| 15721 | typedef struct ID3D12Device5Vtbl | ||
| 15722 | { | ||
| 15723 | BEGIN_INTERFACE | ||
| 15724 | |||
| 15725 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 15726 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 15727 | ID3D12Device5 * This, | ||
| 15728 | REFIID riid, | ||
| 15729 | _COM_Outptr_ void **ppvObject); | ||
| 15730 | |||
| 15731 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 15732 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 15733 | ID3D12Device5 * This); | ||
| 15734 | |||
| 15735 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 15736 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 15737 | ID3D12Device5 * This); | ||
| 15738 | |||
| 15739 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 15740 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 15741 | ID3D12Device5 * This, | ||
| 15742 | _In_ REFGUID guid, | ||
| 15743 | _Inout_ UINT *pDataSize, | ||
| 15744 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 15745 | |||
| 15746 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 15747 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 15748 | ID3D12Device5 * This, | ||
| 15749 | _In_ REFGUID guid, | ||
| 15750 | _In_ UINT DataSize, | ||
| 15751 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 15752 | |||
| 15753 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 15754 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 15755 | ID3D12Device5 * This, | ||
| 15756 | _In_ REFGUID guid, | ||
| 15757 | _In_opt_ const IUnknown *pData); | ||
| 15758 | |||
| 15759 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 15760 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 15761 | ID3D12Device5 * This, | ||
| 15762 | _In_z_ LPCWSTR Name); | ||
| 15763 | |||
| 15764 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 15765 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 15766 | ID3D12Device5 * This); | ||
| 15767 | |||
| 15768 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 15769 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 15770 | ID3D12Device5 * This, | ||
| 15771 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 15772 | REFIID riid, | ||
| 15773 | _COM_Outptr_ void **ppCommandQueue); | ||
| 15774 | |||
| 15775 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 15776 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 15777 | ID3D12Device5 * This, | ||
| 15778 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 15779 | REFIID riid, | ||
| 15780 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 15781 | |||
| 15782 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 15783 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 15784 | ID3D12Device5 * This, | ||
| 15785 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 15786 | REFIID riid, | ||
| 15787 | _COM_Outptr_ void **ppPipelineState); | ||
| 15788 | |||
| 15789 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 15790 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 15791 | ID3D12Device5 * This, | ||
| 15792 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 15793 | REFIID riid, | ||
| 15794 | _COM_Outptr_ void **ppPipelineState); | ||
| 15795 | |||
| 15796 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 15797 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 15798 | ID3D12Device5 * This, | ||
| 15799 | _In_ UINT nodeMask, | ||
| 15800 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 15801 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 15802 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 15803 | REFIID riid, | ||
| 15804 | _COM_Outptr_ void **ppCommandList); | ||
| 15805 | |||
| 15806 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 15807 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 15808 | ID3D12Device5 * This, | ||
| 15809 | D3D12_FEATURE Feature, | ||
| 15810 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 15811 | UINT FeatureSupportDataSize); | ||
| 15812 | |||
| 15813 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 15814 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 15815 | ID3D12Device5 * This, | ||
| 15816 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 15817 | REFIID riid, | ||
| 15818 | _COM_Outptr_ void **ppvHeap); | ||
| 15819 | |||
| 15820 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 15821 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 15822 | ID3D12Device5 * This, | ||
| 15823 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 15824 | |||
| 15825 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 15826 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 15827 | ID3D12Device5 * This, | ||
| 15828 | _In_ UINT nodeMask, | ||
| 15829 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 15830 | _In_ SIZE_T blobLengthInBytes, | ||
| 15831 | REFIID riid, | ||
| 15832 | _COM_Outptr_ void **ppvRootSignature); | ||
| 15833 | |||
| 15834 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 15835 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 15836 | ID3D12Device5 * This, | ||
| 15837 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 15838 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 15839 | |||
| 15840 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 15841 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 15842 | ID3D12Device5 * This, | ||
| 15843 | _In_opt_ ID3D12Resource *pResource, | ||
| 15844 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 15845 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 15846 | |||
| 15847 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 15848 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 15849 | ID3D12Device5 * This, | ||
| 15850 | _In_opt_ ID3D12Resource *pResource, | ||
| 15851 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 15852 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 15853 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 15854 | |||
| 15855 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 15856 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 15857 | ID3D12Device5 * This, | ||
| 15858 | _In_opt_ ID3D12Resource *pResource, | ||
| 15859 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 15860 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 15861 | |||
| 15862 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 15863 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 15864 | ID3D12Device5 * This, | ||
| 15865 | _In_opt_ ID3D12Resource *pResource, | ||
| 15866 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 15867 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 15868 | |||
| 15869 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 15870 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 15871 | ID3D12Device5 * This, | ||
| 15872 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 15873 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 15874 | |||
| 15875 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 15876 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 15877 | ID3D12Device5 * This, | ||
| 15878 | _In_ UINT NumDestDescriptorRanges, | ||
| 15879 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 15880 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 15881 | _In_ UINT NumSrcDescriptorRanges, | ||
| 15882 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 15883 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 15884 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 15885 | |||
| 15886 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 15887 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 15888 | ID3D12Device5 * This, | ||
| 15889 | _In_ UINT NumDescriptors, | ||
| 15890 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 15891 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 15892 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 15893 | |||
| 15894 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 15895 | #if !defined(_WIN32) | ||
| 15896 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 15897 | ID3D12Device5 * This, | ||
| 15898 | _In_ UINT visibleMask, | ||
| 15899 | _In_ UINT numResourceDescs, | ||
| 15900 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 15901 | |||
| 15902 | #else | ||
| 15903 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 15904 | ID3D12Device5 * This, | ||
| 15905 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 15906 | _In_ UINT visibleMask, | ||
| 15907 | _In_ UINT numResourceDescs, | ||
| 15908 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 15909 | |||
| 15910 | #endif | ||
| 15911 | |||
| 15912 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 15913 | #if !defined(_WIN32) | ||
| 15914 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 15915 | ID3D12Device5 * This, | ||
| 15916 | _In_ UINT nodeMask, | ||
| 15917 | D3D12_HEAP_TYPE heapType); | ||
| 15918 | |||
| 15919 | #else | ||
| 15920 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 15921 | ID3D12Device5 * This, | ||
| 15922 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 15923 | _In_ UINT nodeMask, | ||
| 15924 | D3D12_HEAP_TYPE heapType); | ||
| 15925 | |||
| 15926 | #endif | ||
| 15927 | |||
| 15928 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 15929 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 15930 | ID3D12Device5 * This, | ||
| 15931 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 15932 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 15933 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 15934 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 15935 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 15936 | REFIID riidResource, | ||
| 15937 | _COM_Outptr_opt_ void **ppvResource); | ||
| 15938 | |||
| 15939 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 15940 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 15941 | ID3D12Device5 * This, | ||
| 15942 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 15943 | REFIID riid, | ||
| 15944 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 15945 | |||
| 15946 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 15947 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 15948 | ID3D12Device5 * This, | ||
| 15949 | _In_ ID3D12Heap *pHeap, | ||
| 15950 | UINT64 HeapOffset, | ||
| 15951 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 15952 | D3D12_RESOURCE_STATES InitialState, | ||
| 15953 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 15954 | REFIID riid, | ||
| 15955 | _COM_Outptr_opt_ void **ppvResource); | ||
| 15956 | |||
| 15957 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 15958 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 15959 | ID3D12Device5 * This, | ||
| 15960 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 15961 | D3D12_RESOURCE_STATES InitialState, | ||
| 15962 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 15963 | REFIID riid, | ||
| 15964 | _COM_Outptr_opt_ void **ppvResource); | ||
| 15965 | |||
| 15966 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 15967 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 15968 | ID3D12Device5 * This, | ||
| 15969 | _In_ ID3D12DeviceChild *pObject, | ||
| 15970 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 15971 | DWORD Access, | ||
| 15972 | _In_opt_ LPCWSTR Name, | ||
| 15973 | _Out_ HANDLE *pHandle); | ||
| 15974 | |||
| 15975 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 15976 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 15977 | ID3D12Device5 * This, | ||
| 15978 | _In_ HANDLE NTHandle, | ||
| 15979 | REFIID riid, | ||
| 15980 | _COM_Outptr_opt_ void **ppvObj); | ||
| 15981 | |||
| 15982 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 15983 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 15984 | ID3D12Device5 * This, | ||
| 15985 | _In_ LPCWSTR Name, | ||
| 15986 | DWORD Access, | ||
| 15987 | /* [annotation][out] */ | ||
| 15988 | _Out_ HANDLE *pNTHandle); | ||
| 15989 | |||
| 15990 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 15991 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 15992 | ID3D12Device5 * This, | ||
| 15993 | UINT NumObjects, | ||
| 15994 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 15995 | |||
| 15996 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 15997 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 15998 | ID3D12Device5 * This, | ||
| 15999 | UINT NumObjects, | ||
| 16000 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 16001 | |||
| 16002 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 16003 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 16004 | ID3D12Device5 * This, | ||
| 16005 | UINT64 InitialValue, | ||
| 16006 | D3D12_FENCE_FLAGS Flags, | ||
| 16007 | REFIID riid, | ||
| 16008 | _COM_Outptr_ void **ppFence); | ||
| 16009 | |||
| 16010 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 16011 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 16012 | ID3D12Device5 * This); | ||
| 16013 | |||
| 16014 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 16015 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 16016 | ID3D12Device5 * This, | ||
| 16017 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 16018 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 16019 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 16020 | UINT64 BaseOffset, | ||
| 16021 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 16022 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 16023 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 16024 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 16025 | |||
| 16026 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 16027 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 16028 | ID3D12Device5 * This, | ||
| 16029 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 16030 | REFIID riid, | ||
| 16031 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 16032 | |||
| 16033 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 16034 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 16035 | ID3D12Device5 * This, | ||
| 16036 | BOOL Enable); | ||
| 16037 | |||
| 16038 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 16039 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 16040 | ID3D12Device5 * This, | ||
| 16041 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 16042 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 16043 | REFIID riid, | ||
| 16044 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 16045 | |||
| 16046 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 16047 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 16048 | ID3D12Device5 * This, | ||
| 16049 | _In_ ID3D12Resource *pTiledResource, | ||
| 16050 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 16051 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 16052 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 16053 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 16054 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 16055 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 16056 | |||
| 16057 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 16058 | #if !defined(_WIN32) | ||
| 16059 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 16060 | ID3D12Device5 * This); | ||
| 16061 | |||
| 16062 | #else | ||
| 16063 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 16064 | ID3D12Device5 * This, | ||
| 16065 | LUID * RetVal); | ||
| 16066 | |||
| 16067 | #endif | ||
| 16068 | |||
| 16069 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 16070 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 16071 | ID3D12Device5 * This, | ||
| 16072 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 16073 | SIZE_T BlobLength, | ||
| 16074 | REFIID riid, | ||
| 16075 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 16076 | |||
| 16077 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 16078 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 16079 | ID3D12Device5 * This, | ||
| 16080 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 16081 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 16082 | UINT NumFences, | ||
| 16083 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 16084 | HANDLE hEvent); | ||
| 16085 | |||
| 16086 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 16087 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 16088 | ID3D12Device5 * This, | ||
| 16089 | UINT NumObjects, | ||
| 16090 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 16091 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 16092 | |||
| 16093 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 16094 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 16095 | ID3D12Device5 * This, | ||
| 16096 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 16097 | REFIID riid, | ||
| 16098 | _COM_Outptr_ void **ppPipelineState); | ||
| 16099 | |||
| 16100 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 16101 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 16102 | ID3D12Device5 * This, | ||
| 16103 | _In_ const void *pAddress, | ||
| 16104 | REFIID riid, | ||
| 16105 | _COM_Outptr_ void **ppvHeap); | ||
| 16106 | |||
| 16107 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 16108 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 16109 | ID3D12Device5 * This, | ||
| 16110 | _In_ HANDLE hFileMapping, | ||
| 16111 | REFIID riid, | ||
| 16112 | _COM_Outptr_ void **ppvHeap); | ||
| 16113 | |||
| 16114 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 16115 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 16116 | ID3D12Device5 * This, | ||
| 16117 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 16118 | UINT NumObjects, | ||
| 16119 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 16120 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 16121 | UINT64 FenceValueToSignal); | ||
| 16122 | |||
| 16123 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 16124 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 16125 | ID3D12Device5 * This, | ||
| 16126 | _In_ UINT nodeMask, | ||
| 16127 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 16128 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 16129 | REFIID riid, | ||
| 16130 | _COM_Outptr_ void **ppCommandList); | ||
| 16131 | |||
| 16132 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 16133 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 16134 | ID3D12Device5 * This, | ||
| 16135 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 16136 | _In_ REFIID riid, | ||
| 16137 | _COM_Outptr_ void **ppSession); | ||
| 16138 | |||
| 16139 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 16140 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 16141 | ID3D12Device5 * This, | ||
| 16142 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 16143 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 16144 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 16145 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 16146 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 16147 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 16148 | REFIID riidResource, | ||
| 16149 | _COM_Outptr_opt_ void **ppvResource); | ||
| 16150 | |||
| 16151 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 16152 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 16153 | ID3D12Device5 * This, | ||
| 16154 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 16155 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 16156 | REFIID riid, | ||
| 16157 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 16158 | |||
| 16159 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 16160 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 16161 | ID3D12Device5 * This, | ||
| 16162 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 16163 | D3D12_RESOURCE_STATES InitialState, | ||
| 16164 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 16165 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 16166 | REFIID riid, | ||
| 16167 | _COM_Outptr_opt_ void **ppvResource); | ||
| 16168 | |||
| 16169 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 16170 | #if !defined(_WIN32) | ||
| 16171 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 16172 | ID3D12Device5 * This, | ||
| 16173 | UINT visibleMask, | ||
| 16174 | UINT numResourceDescs, | ||
| 16175 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 16176 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 16177 | |||
| 16178 | #else | ||
| 16179 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 16180 | ID3D12Device5 * This, | ||
| 16181 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 16182 | UINT visibleMask, | ||
| 16183 | UINT numResourceDescs, | ||
| 16184 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 16185 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 16186 | |||
| 16187 | #endif | ||
| 16188 | |||
| 16189 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 16190 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 16191 | ID3D12Device5 * This, | ||
| 16192 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 16193 | REFIID riid, | ||
| 16194 | _COM_Outptr_ void **ppvTracker); | ||
| 16195 | |||
| 16196 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 16197 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 16198 | ID3D12Device5 * This); | ||
| 16199 | |||
| 16200 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 16201 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 16202 | ID3D12Device5 * This, | ||
| 16203 | _Inout_ UINT *pNumMetaCommands, | ||
| 16204 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 16205 | |||
| 16206 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 16207 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 16208 | ID3D12Device5 * This, | ||
| 16209 | _In_ REFGUID CommandId, | ||
| 16210 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 16211 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 16212 | _Inout_ UINT *pParameterCount, | ||
| 16213 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 16214 | |||
| 16215 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 16216 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 16217 | ID3D12Device5 * This, | ||
| 16218 | _In_ REFGUID CommandId, | ||
| 16219 | _In_ UINT NodeMask, | ||
| 16220 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 16221 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 16222 | REFIID riid, | ||
| 16223 | _COM_Outptr_ void **ppMetaCommand); | ||
| 16224 | |||
| 16225 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 16226 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 16227 | ID3D12Device5 * This, | ||
| 16228 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 16229 | REFIID riid, | ||
| 16230 | _COM_Outptr_ void **ppStateObject); | ||
| 16231 | |||
| 16232 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 16233 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 16234 | ID3D12Device5 * This, | ||
| 16235 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 16236 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 16237 | |||
| 16238 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 16239 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 16240 | ID3D12Device5 * This, | ||
| 16241 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 16242 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 16243 | |||
| 16244 | END_INTERFACE | ||
| 16245 | } ID3D12Device5Vtbl; | ||
| 16246 | |||
| 16247 | interface ID3D12Device5 | ||
| 16248 | { | ||
| 16249 | CONST_VTBL struct ID3D12Device5Vtbl *lpVtbl; | ||
| 16250 | }; | ||
| 16251 | |||
| 16252 | |||
| 16253 | |||
| 16254 | #ifdef COBJMACROS | ||
| 16255 | |||
| 16256 | |||
| 16257 | #define ID3D12Device5_QueryInterface(This,riid,ppvObject) \ | ||
| 16258 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 16259 | |||
| 16260 | #define ID3D12Device5_AddRef(This) \ | ||
| 16261 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 16262 | |||
| 16263 | #define ID3D12Device5_Release(This) \ | ||
| 16264 | ( (This)->lpVtbl -> Release(This) ) | ||
| 16265 | |||
| 16266 | |||
| 16267 | #define ID3D12Device5_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 16268 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 16269 | |||
| 16270 | #define ID3D12Device5_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 16271 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 16272 | |||
| 16273 | #define ID3D12Device5_SetPrivateDataInterface(This,guid,pData) \ | ||
| 16274 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 16275 | |||
| 16276 | #define ID3D12Device5_SetName(This,Name) \ | ||
| 16277 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 16278 | |||
| 16279 | |||
| 16280 | #define ID3D12Device5_GetNodeCount(This) \ | ||
| 16281 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 16282 | |||
| 16283 | #define ID3D12Device5_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 16284 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 16285 | |||
| 16286 | #define ID3D12Device5_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 16287 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 16288 | |||
| 16289 | #define ID3D12Device5_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 16290 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 16291 | |||
| 16292 | #define ID3D12Device5_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 16293 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 16294 | |||
| 16295 | #define ID3D12Device5_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 16296 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 16297 | |||
| 16298 | #define ID3D12Device5_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 16299 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 16300 | |||
| 16301 | #define ID3D12Device5_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 16302 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 16303 | |||
| 16304 | #define ID3D12Device5_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 16305 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 16306 | |||
| 16307 | #define ID3D12Device5_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 16308 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 16309 | |||
| 16310 | #define ID3D12Device5_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 16311 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 16312 | |||
| 16313 | #define ID3D12Device5_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 16314 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 16315 | |||
| 16316 | #define ID3D12Device5_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 16317 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 16318 | |||
| 16319 | #define ID3D12Device5_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 16320 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 16321 | |||
| 16322 | #define ID3D12Device5_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 16323 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 16324 | |||
| 16325 | #define ID3D12Device5_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 16326 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 16327 | |||
| 16328 | #define ID3D12Device5_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 16329 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 16330 | |||
| 16331 | #define ID3D12Device5_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 16332 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 16333 | #if !defined(_WIN32) | ||
| 16334 | |||
| 16335 | #define ID3D12Device5_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 16336 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 16337 | #else | ||
| 16338 | #define ID3D12Device5_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 16339 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 16340 | #endif | ||
| 16341 | #if !defined(_WIN32) | ||
| 16342 | |||
| 16343 | #define ID3D12Device5_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 16344 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 16345 | #else | ||
| 16346 | #define ID3D12Device5_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 16347 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 16348 | #endif | ||
| 16349 | |||
| 16350 | #define ID3D12Device5_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 16351 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 16352 | |||
| 16353 | #define ID3D12Device5_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 16354 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 16355 | |||
| 16356 | #define ID3D12Device5_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 16357 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 16358 | |||
| 16359 | #define ID3D12Device5_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 16360 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 16361 | |||
| 16362 | #define ID3D12Device5_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 16363 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 16364 | |||
| 16365 | #define ID3D12Device5_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 16366 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 16367 | |||
| 16368 | #define ID3D12Device5_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 16369 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 16370 | |||
| 16371 | #define ID3D12Device5_MakeResident(This,NumObjects,ppObjects) \ | ||
| 16372 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 16373 | |||
| 16374 | #define ID3D12Device5_Evict(This,NumObjects,ppObjects) \ | ||
| 16375 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 16376 | |||
| 16377 | #define ID3D12Device5_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 16378 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 16379 | |||
| 16380 | #define ID3D12Device5_GetDeviceRemovedReason(This) \ | ||
| 16381 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 16382 | |||
| 16383 | #define ID3D12Device5_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 16384 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 16385 | |||
| 16386 | #define ID3D12Device5_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 16387 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 16388 | |||
| 16389 | #define ID3D12Device5_SetStablePowerState(This,Enable) \ | ||
| 16390 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 16391 | |||
| 16392 | #define ID3D12Device5_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 16393 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 16394 | |||
| 16395 | #define ID3D12Device5_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 16396 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 16397 | #if !defined(_WIN32) | ||
| 16398 | |||
| 16399 | #define ID3D12Device5_GetAdapterLuid(This) \ | ||
| 16400 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 16401 | #else | ||
| 16402 | #define ID3D12Device5_GetAdapterLuid(This,RetVal) \ | ||
| 16403 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 16404 | #endif | ||
| 16405 | |||
| 16406 | |||
| 16407 | #define ID3D12Device5_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 16408 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 16409 | |||
| 16410 | #define ID3D12Device5_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 16411 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 16412 | |||
| 16413 | #define ID3D12Device5_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 16414 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 16415 | |||
| 16416 | |||
| 16417 | #define ID3D12Device5_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 16418 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 16419 | |||
| 16420 | |||
| 16421 | #define ID3D12Device5_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 16422 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 16423 | |||
| 16424 | #define ID3D12Device5_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 16425 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 16426 | |||
| 16427 | #define ID3D12Device5_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 16428 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 16429 | |||
| 16430 | |||
| 16431 | #define ID3D12Device5_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 16432 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 16433 | |||
| 16434 | #define ID3D12Device5_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 16435 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 16436 | |||
| 16437 | #define ID3D12Device5_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 16438 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 16439 | |||
| 16440 | #define ID3D12Device5_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 16441 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 16442 | |||
| 16443 | #define ID3D12Device5_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 16444 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 16445 | #if !defined(_WIN32) | ||
| 16446 | |||
| 16447 | #define ID3D12Device5_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 16448 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 16449 | #else | ||
| 16450 | #define ID3D12Device5_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 16451 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 16452 | #endif | ||
| 16453 | |||
| 16454 | |||
| 16455 | #define ID3D12Device5_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 16456 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 16457 | |||
| 16458 | #define ID3D12Device5_RemoveDevice(This) \ | ||
| 16459 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 16460 | |||
| 16461 | #define ID3D12Device5_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 16462 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 16463 | |||
| 16464 | #define ID3D12Device5_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 16465 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 16466 | |||
| 16467 | #define ID3D12Device5_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 16468 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 16469 | |||
| 16470 | #define ID3D12Device5_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 16471 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 16472 | |||
| 16473 | #define ID3D12Device5_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 16474 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 16475 | |||
| 16476 | #define ID3D12Device5_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 16477 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 16478 | |||
| 16479 | #endif /* COBJMACROS */ | ||
| 16480 | |||
| 16481 | |||
| 16482 | #endif /* C style interface */ | ||
| 16483 | |||
| 16484 | |||
| 16485 | |||
| 16486 | |||
| 16487 | #endif /* __ID3D12Device5_INTERFACE_DEFINED__ */ | ||
| 16488 | |||
| 16489 | |||
| 16490 | /* interface __MIDL_itf_d3d12_0000_0040 */ | ||
| 16491 | /* [local] */ | ||
| 16492 | |||
| 16493 | typedef | ||
| 16494 | enum D3D12_MARKER_API | ||
| 16495 | { | ||
| 16496 | D3D12_MARKER_API_SETMARKER = 0, | ||
| 16497 | D3D12_MARKER_API_BEGINEVENT = 1, | ||
| 16498 | D3D12_MARKER_API_ENDEVENT = 2, | ||
| 16499 | D3D12_MARKER_API_DRAWINSTANCED = 3, | ||
| 16500 | D3D12_MARKER_API_DRAWINDEXEDINSTANCED = 4, | ||
| 16501 | D3D12_MARKER_API_EXECUTEINDIRECT = 5, | ||
| 16502 | D3D12_MARKER_API_DISPATCH = 6, | ||
| 16503 | D3D12_MARKER_API_COPYBUFFERREGION = 7, | ||
| 16504 | D3D12_MARKER_API_COPYTEXTUREREGION = 8, | ||
| 16505 | D3D12_MARKER_API_COPYRESOURCE = 9, | ||
| 16506 | D3D12_MARKER_API_COPYTILES = 10, | ||
| 16507 | D3D12_MARKER_API_RESOLVESUBRESOURCE = 11, | ||
| 16508 | D3D12_MARKER_API_CLEARRENDERTARGETVIEW = 12, | ||
| 16509 | D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW = 13, | ||
| 16510 | D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW = 14, | ||
| 16511 | D3D12_MARKER_API_RESOURCEBARRIER = 15, | ||
| 16512 | D3D12_MARKER_API_EXECUTEBUNDLE = 16, | ||
| 16513 | D3D12_MARKER_API_PRESENT = 17, | ||
| 16514 | D3D12_MARKER_API_RESOLVEQUERYDATA = 18, | ||
| 16515 | D3D12_MARKER_API_BEGINSUBMISSION = 19, | ||
| 16516 | D3D12_MARKER_API_ENDSUBMISSION = 20, | ||
| 16517 | D3D12_MARKER_API_DECODEFRAME = 21, | ||
| 16518 | D3D12_MARKER_API_PROCESSFRAMES = 22, | ||
| 16519 | D3D12_MARKER_API_ATOMICCOPYBUFFERUINT = 23, | ||
| 16520 | D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64 = 24, | ||
| 16521 | D3D12_MARKER_API_RESOLVESUBRESOURCEREGION = 25, | ||
| 16522 | D3D12_MARKER_API_WRITEBUFFERIMMEDIATE = 26, | ||
| 16523 | D3D12_MARKER_API_DECODEFRAME1 = 27, | ||
| 16524 | D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION = 28, | ||
| 16525 | D3D12_MARKER_API_DECODEFRAME2 = 29, | ||
| 16526 | D3D12_MARKER_API_PROCESSFRAMES1 = 30, | ||
| 16527 | D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE = 31, | ||
| 16528 | D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = 32, | ||
| 16529 | D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE = 33, | ||
| 16530 | D3D12_MARKER_API_DISPATCHRAYS = 34, | ||
| 16531 | D3D12_MARKER_API_INITIALIZEMETACOMMAND = 35, | ||
| 16532 | D3D12_MARKER_API_EXECUTEMETACOMMAND = 36, | ||
| 16533 | D3D12_MARKER_API_ESTIMATEMOTION = 37, | ||
| 16534 | D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP = 38, | ||
| 16535 | D3D12_MARKER_API_SETPIPELINESTATE1 = 39, | ||
| 16536 | D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND = 40, | ||
| 16537 | D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND = 41, | ||
| 16538 | D3D12_MARKER_API_DISPATCHMESH = 42, | ||
| 16539 | D3D12_MARKER_API_ENCODEFRAME = 43, | ||
| 16540 | D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA = 44, | ||
| 16541 | D3D12_MARKER_API_BARRIER = 45, | ||
| 16542 | D3D12_MARKER_API_BEGIN_COMMAND_LIST = 46, | ||
| 16543 | D3D12_MARKER_API_DISPATCHGRAPH = 47, | ||
| 16544 | D3D12_MARKER_API_SETPROGRAM = 48, | ||
| 16545 | D3D12_MARKER_API_ENCODEFRAME1 = 49, | ||
| 16546 | D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1 = 50, | ||
| 16547 | D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT = 51, | ||
| 16548 | D3D12_MARKER_API_PROCESSFRAMES2 = 52, | ||
| 16549 | D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = 53 | ||
| 16550 | } D3D12_MARKER_API; | ||
| 16551 | |||
| 16552 | typedef | ||
| 16553 | enum D3D12_AUTO_BREADCRUMB_OP | ||
| 16554 | { | ||
| 16555 | D3D12_AUTO_BREADCRUMB_OP_SETMARKER = D3D12_MARKER_API_SETMARKER, | ||
| 16556 | D3D12_AUTO_BREADCRUMB_OP_BEGINEVENT = D3D12_MARKER_API_BEGINEVENT, | ||
| 16557 | D3D12_AUTO_BREADCRUMB_OP_ENDEVENT = D3D12_MARKER_API_ENDEVENT, | ||
| 16558 | D3D12_AUTO_BREADCRUMB_OP_DRAWINSTANCED = D3D12_MARKER_API_DRAWINSTANCED, | ||
| 16559 | D3D12_AUTO_BREADCRUMB_OP_DRAWINDEXEDINSTANCED = D3D12_MARKER_API_DRAWINDEXEDINSTANCED, | ||
| 16560 | D3D12_AUTO_BREADCRUMB_OP_EXECUTEINDIRECT = D3D12_MARKER_API_EXECUTEINDIRECT, | ||
| 16561 | D3D12_AUTO_BREADCRUMB_OP_DISPATCH = D3D12_MARKER_API_DISPATCH, | ||
| 16562 | D3D12_AUTO_BREADCRUMB_OP_COPYBUFFERREGION = D3D12_MARKER_API_COPYBUFFERREGION, | ||
| 16563 | D3D12_AUTO_BREADCRUMB_OP_COPYTEXTUREREGION = D3D12_MARKER_API_COPYTEXTUREREGION, | ||
| 16564 | D3D12_AUTO_BREADCRUMB_OP_COPYRESOURCE = D3D12_MARKER_API_COPYRESOURCE, | ||
| 16565 | D3D12_AUTO_BREADCRUMB_OP_COPYTILES = D3D12_MARKER_API_COPYTILES, | ||
| 16566 | D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCE = D3D12_MARKER_API_RESOLVESUBRESOURCE, | ||
| 16567 | D3D12_AUTO_BREADCRUMB_OP_CLEARRENDERTARGETVIEW = D3D12_MARKER_API_CLEARRENDERTARGETVIEW, | ||
| 16568 | D3D12_AUTO_BREADCRUMB_OP_CLEARUNORDEREDACCESSVIEW = D3D12_MARKER_API_CLEARUNORDEREDACCESSVIEW, | ||
| 16569 | D3D12_AUTO_BREADCRUMB_OP_CLEARDEPTHSTENCILVIEW = D3D12_MARKER_API_CLEARDEPTHSTENCILVIEW, | ||
| 16570 | D3D12_AUTO_BREADCRUMB_OP_RESOURCEBARRIER = D3D12_MARKER_API_RESOURCEBARRIER, | ||
| 16571 | D3D12_AUTO_BREADCRUMB_OP_EXECUTEBUNDLE = D3D12_MARKER_API_EXECUTEBUNDLE, | ||
| 16572 | D3D12_AUTO_BREADCRUMB_OP_PRESENT = D3D12_MARKER_API_PRESENT, | ||
| 16573 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEQUERYDATA = D3D12_MARKER_API_RESOLVEQUERYDATA, | ||
| 16574 | D3D12_AUTO_BREADCRUMB_OP_BEGINSUBMISSION = D3D12_MARKER_API_BEGINSUBMISSION, | ||
| 16575 | D3D12_AUTO_BREADCRUMB_OP_ENDSUBMISSION = D3D12_MARKER_API_ENDSUBMISSION, | ||
| 16576 | D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME = D3D12_MARKER_API_DECODEFRAME, | ||
| 16577 | D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES = D3D12_MARKER_API_PROCESSFRAMES, | ||
| 16578 | D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT, | ||
| 16579 | D3D12_AUTO_BREADCRUMB_OP_ATOMICCOPYBUFFERUINT64 = D3D12_MARKER_API_ATOMICCOPYBUFFERUINT64, | ||
| 16580 | D3D12_AUTO_BREADCRUMB_OP_RESOLVESUBRESOURCEREGION = D3D12_MARKER_API_RESOLVESUBRESOURCEREGION, | ||
| 16581 | D3D12_AUTO_BREADCRUMB_OP_WRITEBUFFERIMMEDIATE = D3D12_MARKER_API_WRITEBUFFERIMMEDIATE, | ||
| 16582 | D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME1 = D3D12_MARKER_API_DECODEFRAME1, | ||
| 16583 | D3D12_AUTO_BREADCRUMB_OP_SETPROTECTEDRESOURCESESSION = D3D12_MARKER_API_SETPROTECTEDRESOURCESESSION, | ||
| 16584 | D3D12_AUTO_BREADCRUMB_OP_DECODEFRAME2 = D3D12_MARKER_API_DECODEFRAME2, | ||
| 16585 | D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES1 = D3D12_MARKER_API_PROCESSFRAMES1, | ||
| 16586 | D3D12_AUTO_BREADCRUMB_OP_BUILDRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_BUILDRAYTRACINGACCELERATIONSTRUCTURE, | ||
| 16587 | D3D12_AUTO_BREADCRUMB_OP_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO = D3D12_MARKER_API_EMITRAYTRACINGACCELERATIONSTRUCTUREPOSTBUILDINFO, | ||
| 16588 | D3D12_AUTO_BREADCRUMB_OP_COPYRAYTRACINGACCELERATIONSTRUCTURE = D3D12_MARKER_API_COPYRAYTRACINGACCELERATIONSTRUCTURE, | ||
| 16589 | D3D12_AUTO_BREADCRUMB_OP_DISPATCHRAYS = D3D12_MARKER_API_DISPATCHRAYS, | ||
| 16590 | D3D12_AUTO_BREADCRUMB_OP_INITIALIZEMETACOMMAND = D3D12_MARKER_API_INITIALIZEMETACOMMAND, | ||
| 16591 | D3D12_AUTO_BREADCRUMB_OP_EXECUTEMETACOMMAND = D3D12_MARKER_API_EXECUTEMETACOMMAND, | ||
| 16592 | D3D12_AUTO_BREADCRUMB_OP_ESTIMATEMOTION = D3D12_MARKER_API_ESTIMATEMOTION, | ||
| 16593 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEMOTIONVECTORHEAP = D3D12_MARKER_API_RESOLVEMOTIONVECTORHEAP, | ||
| 16594 | D3D12_AUTO_BREADCRUMB_OP_SETPIPELINESTATE1 = D3D12_MARKER_API_SETPIPELINESTATE1, | ||
| 16595 | D3D12_AUTO_BREADCRUMB_OP_INITIALIZEEXTENSIONCOMMAND = D3D12_MARKER_API_INITIALIZEEXTENSIONCOMMAND, | ||
| 16596 | D3D12_AUTO_BREADCRUMB_OP_EXECUTEEXTENSIONCOMMAND = D3D12_MARKER_API_EXECUTEEXTENSIONCOMMAND, | ||
| 16597 | D3D12_AUTO_BREADCRUMB_OP_DISPATCHMESH = D3D12_MARKER_API_DISPATCHMESH, | ||
| 16598 | D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME = D3D12_MARKER_API_ENCODEFRAME, | ||
| 16599 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA, | ||
| 16600 | D3D12_AUTO_BREADCRUMB_OP_BARRIER = D3D12_MARKER_API_BARRIER, | ||
| 16601 | D3D12_AUTO_BREADCRUMB_OP_BEGIN_COMMAND_LIST = D3D12_MARKER_API_BEGIN_COMMAND_LIST, | ||
| 16602 | D3D12_AUTO_BREADCRUMB_OP_DISPATCHGRAPH = D3D12_MARKER_API_DISPATCHGRAPH, | ||
| 16603 | D3D12_AUTO_BREADCRUMB_OP_SETPROGRAM = D3D12_MARKER_API_SETPROGRAM, | ||
| 16604 | D3D12_AUTO_BREADCRUMB_OP_ENCODEFRAME1 = D3D12_MARKER_API_ENCODEFRAME1, | ||
| 16605 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEENCODEROUTPUTMETADATA1 = D3D12_MARKER_API_RESOLVEENCODEROUTPUTMETADATA1, | ||
| 16606 | D3D12_AUTO_BREADCRUMB_OP_RESOLVEINPUTPARAMLAYOUT = D3D12_MARKER_API_RESOLVEINPUTPARAMLAYOUT, | ||
| 16607 | D3D12_AUTO_BREADCRUMB_OP_PROCESSFRAMES2 = D3D12_MARKER_API_PROCESSFRAMES2, | ||
| 16608 | D3D12_AUTO_BREADCRUMB_OP_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS = D3D12_MARKER_API_SET_WORK_GRAPH_MAXIMUM_GPU_INPUT_RECORDS | ||
| 16609 | } D3D12_AUTO_BREADCRUMB_OP; | ||
| 16610 | |||
| 16611 | typedef struct D3D12_AUTO_BREADCRUMB_NODE | ||
| 16612 | { | ||
| 16613 | const char *pCommandListDebugNameA; | ||
| 16614 | const wchar_t *pCommandListDebugNameW; | ||
| 16615 | const char *pCommandQueueDebugNameA; | ||
| 16616 | const wchar_t *pCommandQueueDebugNameW; | ||
| 16617 | ID3D12GraphicsCommandList *pCommandList; | ||
| 16618 | ID3D12CommandQueue *pCommandQueue; | ||
| 16619 | UINT32 BreadcrumbCount; | ||
| 16620 | const UINT32 *pLastBreadcrumbValue; | ||
| 16621 | const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; | ||
| 16622 | const struct D3D12_AUTO_BREADCRUMB_NODE *pNext; | ||
| 16623 | } D3D12_AUTO_BREADCRUMB_NODE; | ||
| 16624 | |||
| 16625 | typedef struct D3D12_DRED_BREADCRUMB_CONTEXT | ||
| 16626 | { | ||
| 16627 | UINT BreadcrumbIndex; | ||
| 16628 | const wchar_t *pContextString; | ||
| 16629 | } D3D12_DRED_BREADCRUMB_CONTEXT; | ||
| 16630 | |||
| 16631 | typedef struct D3D12_AUTO_BREADCRUMB_NODE1 | ||
| 16632 | { | ||
| 16633 | const char *pCommandListDebugNameA; | ||
| 16634 | const wchar_t *pCommandListDebugNameW; | ||
| 16635 | const char *pCommandQueueDebugNameA; | ||
| 16636 | const wchar_t *pCommandQueueDebugNameW; | ||
| 16637 | ID3D12GraphicsCommandList *pCommandList; | ||
| 16638 | ID3D12CommandQueue *pCommandQueue; | ||
| 16639 | UINT BreadcrumbCount; | ||
| 16640 | const UINT *pLastBreadcrumbValue; | ||
| 16641 | const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; | ||
| 16642 | const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext; | ||
| 16643 | UINT BreadcrumbContextsCount; | ||
| 16644 | D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts; | ||
| 16645 | } D3D12_AUTO_BREADCRUMB_NODE1; | ||
| 16646 | |||
| 16647 | typedef | ||
| 16648 | enum D3D12_DRED_VERSION | ||
| 16649 | { | ||
| 16650 | D3D12_DRED_VERSION_1_0 = 0x1, | ||
| 16651 | D3D12_DRED_VERSION_1_1 = 0x2, | ||
| 16652 | D3D12_DRED_VERSION_1_2 = 0x3, | ||
| 16653 | D3D12_DRED_VERSION_1_3 = 0x4 | ||
| 16654 | } D3D12_DRED_VERSION; | ||
| 16655 | |||
| 16656 | typedef | ||
| 16657 | enum D3D12_DRED_FLAGS | ||
| 16658 | { | ||
| 16659 | D3D12_DRED_FLAG_NONE = 0, | ||
| 16660 | D3D12_DRED_FLAG_FORCE_ENABLE = 1, | ||
| 16661 | D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2 | ||
| 16662 | } D3D12_DRED_FLAGS; | ||
| 16663 | |||
| 16664 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS ) | ||
| 16665 | typedef | ||
| 16666 | enum D3D12_DRED_ENABLEMENT | ||
| 16667 | { | ||
| 16668 | D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0, | ||
| 16669 | D3D12_DRED_ENABLEMENT_FORCED_OFF = 1, | ||
| 16670 | D3D12_DRED_ENABLEMENT_FORCED_ON = 2 | ||
| 16671 | } D3D12_DRED_ENABLEMENT; | ||
| 16672 | |||
| 16673 | typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA | ||
| 16674 | { | ||
| 16675 | _In_ D3D12_DRED_FLAGS Flags; | ||
| 16676 | _Out_ D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; | ||
| 16677 | } D3D12_DEVICE_REMOVED_EXTENDED_DATA; | ||
| 16678 | |||
| 16679 | typedef | ||
| 16680 | enum D3D12_DRED_ALLOCATION_TYPE | ||
| 16681 | { | ||
| 16682 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19, | ||
| 16683 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20, | ||
| 16684 | D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21, | ||
| 16685 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22, | ||
| 16686 | D3D12_DRED_ALLOCATION_TYPE_FENCE = 23, | ||
| 16687 | D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24, | ||
| 16688 | D3D12_DRED_ALLOCATION_TYPE_HEAP = 25, | ||
| 16689 | D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27, | ||
| 16690 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28, | ||
| 16691 | D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29, | ||
| 16692 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30, | ||
| 16693 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32, | ||
| 16694 | D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34, | ||
| 16695 | D3D12_DRED_ALLOCATION_TYPE_PASS = 35, | ||
| 16696 | D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36, | ||
| 16697 | D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37, | ||
| 16698 | D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38, | ||
| 16699 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39, | ||
| 16700 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40, | ||
| 16701 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41, | ||
| 16702 | D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42, | ||
| 16703 | D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43, | ||
| 16704 | D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44, | ||
| 16705 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45, | ||
| 16706 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46, | ||
| 16707 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47, | ||
| 16708 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48, | ||
| 16709 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49, | ||
| 16710 | D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xffffffff | ||
| 16711 | } D3D12_DRED_ALLOCATION_TYPE; | ||
| 16712 | |||
| 16713 | typedef struct D3D12_DRED_ALLOCATION_NODE | ||
| 16714 | { | ||
| 16715 | const char *ObjectNameA; | ||
| 16716 | const wchar_t *ObjectNameW; | ||
| 16717 | D3D12_DRED_ALLOCATION_TYPE AllocationType; | ||
| 16718 | const struct D3D12_DRED_ALLOCATION_NODE *pNext; | ||
| 16719 | } D3D12_DRED_ALLOCATION_NODE; | ||
| 16720 | |||
| 16721 | typedef struct D3D12_DRED_ALLOCATION_NODE1 | ||
| 16722 | { | ||
| 16723 | const char *ObjectNameA; | ||
| 16724 | const wchar_t *ObjectNameW; | ||
| 16725 | D3D12_DRED_ALLOCATION_TYPE AllocationType; | ||
| 16726 | const struct D3D12_DRED_ALLOCATION_NODE1 *pNext; | ||
| 16727 | const IUnknown *pObject; | ||
| 16728 | } D3D12_DRED_ALLOCATION_NODE1; | ||
| 16729 | |||
| 16730 | typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT | ||
| 16731 | { | ||
| 16732 | _Out_ const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; | ||
| 16733 | } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT; | ||
| 16734 | |||
| 16735 | typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 | ||
| 16736 | { | ||
| 16737 | _Out_ const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode; | ||
| 16738 | } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1; | ||
| 16739 | |||
| 16740 | typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT | ||
| 16741 | { | ||
| 16742 | D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; | ||
| 16743 | _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode; | ||
| 16744 | _Out_ const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode; | ||
| 16745 | } D3D12_DRED_PAGE_FAULT_OUTPUT; | ||
| 16746 | |||
| 16747 | typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1 | ||
| 16748 | { | ||
| 16749 | D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; | ||
| 16750 | _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; | ||
| 16751 | _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; | ||
| 16752 | } D3D12_DRED_PAGE_FAULT_OUTPUT1; | ||
| 16753 | |||
| 16754 | typedef | ||
| 16755 | enum D3D12_DRED_PAGE_FAULT_FLAGS | ||
| 16756 | { | ||
| 16757 | D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0 | ||
| 16758 | } D3D12_DRED_PAGE_FAULT_FLAGS; | ||
| 16759 | |||
| 16760 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS ) | ||
| 16761 | typedef | ||
| 16762 | enum D3D12_DRED_DEVICE_STATE | ||
| 16763 | { | ||
| 16764 | D3D12_DRED_DEVICE_STATE_UNKNOWN = 0, | ||
| 16765 | D3D12_DRED_DEVICE_STATE_HUNG = 3, | ||
| 16766 | D3D12_DRED_DEVICE_STATE_FAULT = 6, | ||
| 16767 | D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7 | ||
| 16768 | } D3D12_DRED_DEVICE_STATE; | ||
| 16769 | |||
| 16770 | typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2 | ||
| 16771 | { | ||
| 16772 | D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; | ||
| 16773 | _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; | ||
| 16774 | _Out_ const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; | ||
| 16775 | D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags; | ||
| 16776 | } D3D12_DRED_PAGE_FAULT_OUTPUT2; | ||
| 16777 | |||
| 16778 | typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 | ||
| 16779 | { | ||
| 16780 | HRESULT DeviceRemovedReason; | ||
| 16781 | D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput; | ||
| 16782 | D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput; | ||
| 16783 | } D3D12_DEVICE_REMOVED_EXTENDED_DATA1; | ||
| 16784 | |||
| 16785 | typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 | ||
| 16786 | { | ||
| 16787 | HRESULT DeviceRemovedReason; | ||
| 16788 | D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; | ||
| 16789 | D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput; | ||
| 16790 | } D3D12_DEVICE_REMOVED_EXTENDED_DATA2; | ||
| 16791 | |||
| 16792 | typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 | ||
| 16793 | { | ||
| 16794 | HRESULT DeviceRemovedReason; | ||
| 16795 | D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; | ||
| 16796 | D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput; | ||
| 16797 | D3D12_DRED_DEVICE_STATE DeviceState; | ||
| 16798 | } D3D12_DEVICE_REMOVED_EXTENDED_DATA3; | ||
| 16799 | |||
| 16800 | typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA | ||
| 16801 | { | ||
| 16802 | D3D12_DRED_VERSION Version; | ||
| 16803 | union | ||
| 16804 | { | ||
| 16805 | D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0; | ||
| 16806 | D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1; | ||
| 16807 | D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2; | ||
| 16808 | D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3; | ||
| 16809 | } ; | ||
| 16810 | } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA; | ||
| 16811 | |||
| 16812 | |||
| 16813 | |||
| 16814 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_c_ifspec; | ||
| 16815 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0040_v0_0_s_ifspec; | ||
| 16816 | |||
| 16817 | #ifndef __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ | ||
| 16818 | #define __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ | ||
| 16819 | |||
| 16820 | /* interface ID3D12DeviceRemovedExtendedDataSettings */ | ||
| 16821 | /* [unique][local][object][uuid] */ | ||
| 16822 | |||
| 16823 | |||
| 16824 | EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings; | ||
| 16825 | |||
| 16826 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 16827 | |||
| 16828 | MIDL_INTERFACE("82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63") | ||
| 16829 | ID3D12DeviceRemovedExtendedDataSettings : public IUnknown | ||
| 16830 | { | ||
| 16831 | public: | ||
| 16832 | virtual void STDMETHODCALLTYPE SetAutoBreadcrumbsEnablement( | ||
| 16833 | D3D12_DRED_ENABLEMENT Enablement) = 0; | ||
| 16834 | |||
| 16835 | virtual void STDMETHODCALLTYPE SetPageFaultEnablement( | ||
| 16836 | D3D12_DRED_ENABLEMENT Enablement) = 0; | ||
| 16837 | |||
| 16838 | virtual void STDMETHODCALLTYPE SetWatsonDumpEnablement( | ||
| 16839 | D3D12_DRED_ENABLEMENT Enablement) = 0; | ||
| 16840 | |||
| 16841 | }; | ||
| 16842 | |||
| 16843 | |||
| 16844 | #else /* C style interface */ | ||
| 16845 | |||
| 16846 | typedef struct ID3D12DeviceRemovedExtendedDataSettingsVtbl | ||
| 16847 | { | ||
| 16848 | BEGIN_INTERFACE | ||
| 16849 | |||
| 16850 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 16851 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 16852 | ID3D12DeviceRemovedExtendedDataSettings * This, | ||
| 16853 | REFIID riid, | ||
| 16854 | _COM_Outptr_ void **ppvObject); | ||
| 16855 | |||
| 16856 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 16857 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 16858 | ID3D12DeviceRemovedExtendedDataSettings * This); | ||
| 16859 | |||
| 16860 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 16861 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 16862 | ID3D12DeviceRemovedExtendedDataSettings * This); | ||
| 16863 | |||
| 16864 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement) | ||
| 16865 | void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )( | ||
| 16866 | ID3D12DeviceRemovedExtendedDataSettings * This, | ||
| 16867 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 16868 | |||
| 16869 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement) | ||
| 16870 | void ( STDMETHODCALLTYPE *SetPageFaultEnablement )( | ||
| 16871 | ID3D12DeviceRemovedExtendedDataSettings * This, | ||
| 16872 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 16873 | |||
| 16874 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement) | ||
| 16875 | void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )( | ||
| 16876 | ID3D12DeviceRemovedExtendedDataSettings * This, | ||
| 16877 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 16878 | |||
| 16879 | END_INTERFACE | ||
| 16880 | } ID3D12DeviceRemovedExtendedDataSettingsVtbl; | ||
| 16881 | |||
| 16882 | interface ID3D12DeviceRemovedExtendedDataSettings | ||
| 16883 | { | ||
| 16884 | CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettingsVtbl *lpVtbl; | ||
| 16885 | }; | ||
| 16886 | |||
| 16887 | |||
| 16888 | |||
| 16889 | #ifdef COBJMACROS | ||
| 16890 | |||
| 16891 | |||
| 16892 | #define ID3D12DeviceRemovedExtendedDataSettings_QueryInterface(This,riid,ppvObject) \ | ||
| 16893 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 16894 | |||
| 16895 | #define ID3D12DeviceRemovedExtendedDataSettings_AddRef(This) \ | ||
| 16896 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 16897 | |||
| 16898 | #define ID3D12DeviceRemovedExtendedDataSettings_Release(This) \ | ||
| 16899 | ( (This)->lpVtbl -> Release(This) ) | ||
| 16900 | |||
| 16901 | |||
| 16902 | #define ID3D12DeviceRemovedExtendedDataSettings_SetAutoBreadcrumbsEnablement(This,Enablement) \ | ||
| 16903 | ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) ) | ||
| 16904 | |||
| 16905 | #define ID3D12DeviceRemovedExtendedDataSettings_SetPageFaultEnablement(This,Enablement) \ | ||
| 16906 | ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) ) | ||
| 16907 | |||
| 16908 | #define ID3D12DeviceRemovedExtendedDataSettings_SetWatsonDumpEnablement(This,Enablement) \ | ||
| 16909 | ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) ) | ||
| 16910 | |||
| 16911 | #endif /* COBJMACROS */ | ||
| 16912 | |||
| 16913 | |||
| 16914 | #endif /* C style interface */ | ||
| 16915 | |||
| 16916 | |||
| 16917 | |||
| 16918 | |||
| 16919 | #endif /* __ID3D12DeviceRemovedExtendedDataSettings_INTERFACE_DEFINED__ */ | ||
| 16920 | |||
| 16921 | |||
| 16922 | #ifndef __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ | ||
| 16923 | #define __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ | ||
| 16924 | |||
| 16925 | /* interface ID3D12DeviceRemovedExtendedDataSettings1 */ | ||
| 16926 | /* [unique][local][object][uuid] */ | ||
| 16927 | |||
| 16928 | |||
| 16929 | EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings1; | ||
| 16930 | |||
| 16931 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 16932 | |||
| 16933 | MIDL_INTERFACE("DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B") | ||
| 16934 | ID3D12DeviceRemovedExtendedDataSettings1 : public ID3D12DeviceRemovedExtendedDataSettings | ||
| 16935 | { | ||
| 16936 | public: | ||
| 16937 | virtual void STDMETHODCALLTYPE SetBreadcrumbContextEnablement( | ||
| 16938 | D3D12_DRED_ENABLEMENT Enablement) = 0; | ||
| 16939 | |||
| 16940 | }; | ||
| 16941 | |||
| 16942 | |||
| 16943 | #else /* C style interface */ | ||
| 16944 | |||
| 16945 | typedef struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl | ||
| 16946 | { | ||
| 16947 | BEGIN_INTERFACE | ||
| 16948 | |||
| 16949 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 16950 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 16951 | ID3D12DeviceRemovedExtendedDataSettings1 * This, | ||
| 16952 | REFIID riid, | ||
| 16953 | _COM_Outptr_ void **ppvObject); | ||
| 16954 | |||
| 16955 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 16956 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 16957 | ID3D12DeviceRemovedExtendedDataSettings1 * This); | ||
| 16958 | |||
| 16959 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 16960 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 16961 | ID3D12DeviceRemovedExtendedDataSettings1 * This); | ||
| 16962 | |||
| 16963 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement) | ||
| 16964 | void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )( | ||
| 16965 | ID3D12DeviceRemovedExtendedDataSettings1 * This, | ||
| 16966 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 16967 | |||
| 16968 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement) | ||
| 16969 | void ( STDMETHODCALLTYPE *SetPageFaultEnablement )( | ||
| 16970 | ID3D12DeviceRemovedExtendedDataSettings1 * This, | ||
| 16971 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 16972 | |||
| 16973 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement) | ||
| 16974 | void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )( | ||
| 16975 | ID3D12DeviceRemovedExtendedDataSettings1 * This, | ||
| 16976 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 16977 | |||
| 16978 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement) | ||
| 16979 | void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )( | ||
| 16980 | ID3D12DeviceRemovedExtendedDataSettings1 * This, | ||
| 16981 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 16982 | |||
| 16983 | END_INTERFACE | ||
| 16984 | } ID3D12DeviceRemovedExtendedDataSettings1Vtbl; | ||
| 16985 | |||
| 16986 | interface ID3D12DeviceRemovedExtendedDataSettings1 | ||
| 16987 | { | ||
| 16988 | CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings1Vtbl *lpVtbl; | ||
| 16989 | }; | ||
| 16990 | |||
| 16991 | |||
| 16992 | |||
| 16993 | #ifdef COBJMACROS | ||
| 16994 | |||
| 16995 | |||
| 16996 | #define ID3D12DeviceRemovedExtendedDataSettings1_QueryInterface(This,riid,ppvObject) \ | ||
| 16997 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 16998 | |||
| 16999 | #define ID3D12DeviceRemovedExtendedDataSettings1_AddRef(This) \ | ||
| 17000 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 17001 | |||
| 17002 | #define ID3D12DeviceRemovedExtendedDataSettings1_Release(This) \ | ||
| 17003 | ( (This)->lpVtbl -> Release(This) ) | ||
| 17004 | |||
| 17005 | |||
| 17006 | #define ID3D12DeviceRemovedExtendedDataSettings1_SetAutoBreadcrumbsEnablement(This,Enablement) \ | ||
| 17007 | ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) ) | ||
| 17008 | |||
| 17009 | #define ID3D12DeviceRemovedExtendedDataSettings1_SetPageFaultEnablement(This,Enablement) \ | ||
| 17010 | ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) ) | ||
| 17011 | |||
| 17012 | #define ID3D12DeviceRemovedExtendedDataSettings1_SetWatsonDumpEnablement(This,Enablement) \ | ||
| 17013 | ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) ) | ||
| 17014 | |||
| 17015 | |||
| 17016 | #define ID3D12DeviceRemovedExtendedDataSettings1_SetBreadcrumbContextEnablement(This,Enablement) \ | ||
| 17017 | ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) ) | ||
| 17018 | |||
| 17019 | #endif /* COBJMACROS */ | ||
| 17020 | |||
| 17021 | |||
| 17022 | #endif /* C style interface */ | ||
| 17023 | |||
| 17024 | |||
| 17025 | |||
| 17026 | |||
| 17027 | #endif /* __ID3D12DeviceRemovedExtendedDataSettings1_INTERFACE_DEFINED__ */ | ||
| 17028 | |||
| 17029 | |||
| 17030 | #ifndef __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ | ||
| 17031 | #define __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ | ||
| 17032 | |||
| 17033 | /* interface ID3D12DeviceRemovedExtendedDataSettings2 */ | ||
| 17034 | /* [unique][local][object][uuid] */ | ||
| 17035 | |||
| 17036 | |||
| 17037 | EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedDataSettings2; | ||
| 17038 | |||
| 17039 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 17040 | |||
| 17041 | MIDL_INTERFACE("61552388-01ab-4008-a436-83db189566ea") | ||
| 17042 | ID3D12DeviceRemovedExtendedDataSettings2 : public ID3D12DeviceRemovedExtendedDataSettings1 | ||
| 17043 | { | ||
| 17044 | public: | ||
| 17045 | virtual void STDMETHODCALLTYPE UseMarkersOnlyAutoBreadcrumbs( | ||
| 17046 | BOOL MarkersOnly) = 0; | ||
| 17047 | |||
| 17048 | }; | ||
| 17049 | |||
| 17050 | |||
| 17051 | #else /* C style interface */ | ||
| 17052 | |||
| 17053 | typedef struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl | ||
| 17054 | { | ||
| 17055 | BEGIN_INTERFACE | ||
| 17056 | |||
| 17057 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 17058 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 17059 | ID3D12DeviceRemovedExtendedDataSettings2 * This, | ||
| 17060 | REFIID riid, | ||
| 17061 | _COM_Outptr_ void **ppvObject); | ||
| 17062 | |||
| 17063 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 17064 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 17065 | ID3D12DeviceRemovedExtendedDataSettings2 * This); | ||
| 17066 | |||
| 17067 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 17068 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 17069 | ID3D12DeviceRemovedExtendedDataSettings2 * This); | ||
| 17070 | |||
| 17071 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetAutoBreadcrumbsEnablement) | ||
| 17072 | void ( STDMETHODCALLTYPE *SetAutoBreadcrumbsEnablement )( | ||
| 17073 | ID3D12DeviceRemovedExtendedDataSettings2 * This, | ||
| 17074 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 17075 | |||
| 17076 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetPageFaultEnablement) | ||
| 17077 | void ( STDMETHODCALLTYPE *SetPageFaultEnablement )( | ||
| 17078 | ID3D12DeviceRemovedExtendedDataSettings2 * This, | ||
| 17079 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 17080 | |||
| 17081 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings, SetWatsonDumpEnablement) | ||
| 17082 | void ( STDMETHODCALLTYPE *SetWatsonDumpEnablement )( | ||
| 17083 | ID3D12DeviceRemovedExtendedDataSettings2 * This, | ||
| 17084 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 17085 | |||
| 17086 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings1, SetBreadcrumbContextEnablement) | ||
| 17087 | void ( STDMETHODCALLTYPE *SetBreadcrumbContextEnablement )( | ||
| 17088 | ID3D12DeviceRemovedExtendedDataSettings2 * This, | ||
| 17089 | D3D12_DRED_ENABLEMENT Enablement); | ||
| 17090 | |||
| 17091 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedDataSettings2, UseMarkersOnlyAutoBreadcrumbs) | ||
| 17092 | void ( STDMETHODCALLTYPE *UseMarkersOnlyAutoBreadcrumbs )( | ||
| 17093 | ID3D12DeviceRemovedExtendedDataSettings2 * This, | ||
| 17094 | BOOL MarkersOnly); | ||
| 17095 | |||
| 17096 | END_INTERFACE | ||
| 17097 | } ID3D12DeviceRemovedExtendedDataSettings2Vtbl; | ||
| 17098 | |||
| 17099 | interface ID3D12DeviceRemovedExtendedDataSettings2 | ||
| 17100 | { | ||
| 17101 | CONST_VTBL struct ID3D12DeviceRemovedExtendedDataSettings2Vtbl *lpVtbl; | ||
| 17102 | }; | ||
| 17103 | |||
| 17104 | |||
| 17105 | |||
| 17106 | #ifdef COBJMACROS | ||
| 17107 | |||
| 17108 | |||
| 17109 | #define ID3D12DeviceRemovedExtendedDataSettings2_QueryInterface(This,riid,ppvObject) \ | ||
| 17110 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 17111 | |||
| 17112 | #define ID3D12DeviceRemovedExtendedDataSettings2_AddRef(This) \ | ||
| 17113 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 17114 | |||
| 17115 | #define ID3D12DeviceRemovedExtendedDataSettings2_Release(This) \ | ||
| 17116 | ( (This)->lpVtbl -> Release(This) ) | ||
| 17117 | |||
| 17118 | |||
| 17119 | #define ID3D12DeviceRemovedExtendedDataSettings2_SetAutoBreadcrumbsEnablement(This,Enablement) \ | ||
| 17120 | ( (This)->lpVtbl -> SetAutoBreadcrumbsEnablement(This,Enablement) ) | ||
| 17121 | |||
| 17122 | #define ID3D12DeviceRemovedExtendedDataSettings2_SetPageFaultEnablement(This,Enablement) \ | ||
| 17123 | ( (This)->lpVtbl -> SetPageFaultEnablement(This,Enablement) ) | ||
| 17124 | |||
| 17125 | #define ID3D12DeviceRemovedExtendedDataSettings2_SetWatsonDumpEnablement(This,Enablement) \ | ||
| 17126 | ( (This)->lpVtbl -> SetWatsonDumpEnablement(This,Enablement) ) | ||
| 17127 | |||
| 17128 | |||
| 17129 | #define ID3D12DeviceRemovedExtendedDataSettings2_SetBreadcrumbContextEnablement(This,Enablement) \ | ||
| 17130 | ( (This)->lpVtbl -> SetBreadcrumbContextEnablement(This,Enablement) ) | ||
| 17131 | |||
| 17132 | |||
| 17133 | #define ID3D12DeviceRemovedExtendedDataSettings2_UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) \ | ||
| 17134 | ( (This)->lpVtbl -> UseMarkersOnlyAutoBreadcrumbs(This,MarkersOnly) ) | ||
| 17135 | |||
| 17136 | #endif /* COBJMACROS */ | ||
| 17137 | |||
| 17138 | |||
| 17139 | #endif /* C style interface */ | ||
| 17140 | |||
| 17141 | |||
| 17142 | |||
| 17143 | |||
| 17144 | #endif /* __ID3D12DeviceRemovedExtendedDataSettings2_INTERFACE_DEFINED__ */ | ||
| 17145 | |||
| 17146 | |||
| 17147 | #ifndef __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ | ||
| 17148 | #define __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ | ||
| 17149 | |||
| 17150 | /* interface ID3D12DeviceRemovedExtendedData */ | ||
| 17151 | /* [unique][local][object][uuid] */ | ||
| 17152 | |||
| 17153 | |||
| 17154 | EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData; | ||
| 17155 | |||
| 17156 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 17157 | |||
| 17158 | MIDL_INTERFACE("98931D33-5AE8-4791-AA3C-1A73A2934E71") | ||
| 17159 | ID3D12DeviceRemovedExtendedData : public IUnknown | ||
| 17160 | { | ||
| 17161 | public: | ||
| 17162 | virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput( | ||
| 17163 | _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput) = 0; | ||
| 17164 | |||
| 17165 | virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput( | ||
| 17166 | _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput) = 0; | ||
| 17167 | |||
| 17168 | }; | ||
| 17169 | |||
| 17170 | |||
| 17171 | #else /* C style interface */ | ||
| 17172 | |||
| 17173 | typedef struct ID3D12DeviceRemovedExtendedDataVtbl | ||
| 17174 | { | ||
| 17175 | BEGIN_INTERFACE | ||
| 17176 | |||
| 17177 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 17178 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 17179 | ID3D12DeviceRemovedExtendedData * This, | ||
| 17180 | REFIID riid, | ||
| 17181 | _COM_Outptr_ void **ppvObject); | ||
| 17182 | |||
| 17183 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 17184 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 17185 | ID3D12DeviceRemovedExtendedData * This); | ||
| 17186 | |||
| 17187 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 17188 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 17189 | ID3D12DeviceRemovedExtendedData * This); | ||
| 17190 | |||
| 17191 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput) | ||
| 17192 | HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )( | ||
| 17193 | ID3D12DeviceRemovedExtendedData * This, | ||
| 17194 | _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); | ||
| 17195 | |||
| 17196 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput) | ||
| 17197 | HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )( | ||
| 17198 | ID3D12DeviceRemovedExtendedData * This, | ||
| 17199 | _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); | ||
| 17200 | |||
| 17201 | END_INTERFACE | ||
| 17202 | } ID3D12DeviceRemovedExtendedDataVtbl; | ||
| 17203 | |||
| 17204 | interface ID3D12DeviceRemovedExtendedData | ||
| 17205 | { | ||
| 17206 | CONST_VTBL struct ID3D12DeviceRemovedExtendedDataVtbl *lpVtbl; | ||
| 17207 | }; | ||
| 17208 | |||
| 17209 | |||
| 17210 | |||
| 17211 | #ifdef COBJMACROS | ||
| 17212 | |||
| 17213 | |||
| 17214 | #define ID3D12DeviceRemovedExtendedData_QueryInterface(This,riid,ppvObject) \ | ||
| 17215 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 17216 | |||
| 17217 | #define ID3D12DeviceRemovedExtendedData_AddRef(This) \ | ||
| 17218 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 17219 | |||
| 17220 | #define ID3D12DeviceRemovedExtendedData_Release(This) \ | ||
| 17221 | ( (This)->lpVtbl -> Release(This) ) | ||
| 17222 | |||
| 17223 | |||
| 17224 | #define ID3D12DeviceRemovedExtendedData_GetAutoBreadcrumbsOutput(This,pOutput) \ | ||
| 17225 | ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) ) | ||
| 17226 | |||
| 17227 | #define ID3D12DeviceRemovedExtendedData_GetPageFaultAllocationOutput(This,pOutput) \ | ||
| 17228 | ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) ) | ||
| 17229 | |||
| 17230 | #endif /* COBJMACROS */ | ||
| 17231 | |||
| 17232 | |||
| 17233 | #endif /* C style interface */ | ||
| 17234 | |||
| 17235 | |||
| 17236 | |||
| 17237 | |||
| 17238 | #endif /* __ID3D12DeviceRemovedExtendedData_INTERFACE_DEFINED__ */ | ||
| 17239 | |||
| 17240 | |||
| 17241 | #ifndef __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ | ||
| 17242 | #define __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ | ||
| 17243 | |||
| 17244 | /* interface ID3D12DeviceRemovedExtendedData1 */ | ||
| 17245 | /* [unique][local][object][uuid] */ | ||
| 17246 | |||
| 17247 | |||
| 17248 | EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData1; | ||
| 17249 | |||
| 17250 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 17251 | |||
| 17252 | MIDL_INTERFACE("9727A022-CF1D-4DDA-9EBA-EFFA653FC506") | ||
| 17253 | ID3D12DeviceRemovedExtendedData1 : public ID3D12DeviceRemovedExtendedData | ||
| 17254 | { | ||
| 17255 | public: | ||
| 17256 | virtual HRESULT STDMETHODCALLTYPE GetAutoBreadcrumbsOutput1( | ||
| 17257 | _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput) = 0; | ||
| 17258 | |||
| 17259 | virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput1( | ||
| 17260 | _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput) = 0; | ||
| 17261 | |||
| 17262 | }; | ||
| 17263 | |||
| 17264 | |||
| 17265 | #else /* C style interface */ | ||
| 17266 | |||
| 17267 | typedef struct ID3D12DeviceRemovedExtendedData1Vtbl | ||
| 17268 | { | ||
| 17269 | BEGIN_INTERFACE | ||
| 17270 | |||
| 17271 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 17272 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 17273 | ID3D12DeviceRemovedExtendedData1 * This, | ||
| 17274 | REFIID riid, | ||
| 17275 | _COM_Outptr_ void **ppvObject); | ||
| 17276 | |||
| 17277 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 17278 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 17279 | ID3D12DeviceRemovedExtendedData1 * This); | ||
| 17280 | |||
| 17281 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 17282 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 17283 | ID3D12DeviceRemovedExtendedData1 * This); | ||
| 17284 | |||
| 17285 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput) | ||
| 17286 | HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )( | ||
| 17287 | ID3D12DeviceRemovedExtendedData1 * This, | ||
| 17288 | _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); | ||
| 17289 | |||
| 17290 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput) | ||
| 17291 | HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )( | ||
| 17292 | ID3D12DeviceRemovedExtendedData1 * This, | ||
| 17293 | _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); | ||
| 17294 | |||
| 17295 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1) | ||
| 17296 | HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )( | ||
| 17297 | ID3D12DeviceRemovedExtendedData1 * This, | ||
| 17298 | _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput); | ||
| 17299 | |||
| 17300 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1) | ||
| 17301 | HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )( | ||
| 17302 | ID3D12DeviceRemovedExtendedData1 * This, | ||
| 17303 | _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput); | ||
| 17304 | |||
| 17305 | END_INTERFACE | ||
| 17306 | } ID3D12DeviceRemovedExtendedData1Vtbl; | ||
| 17307 | |||
| 17308 | interface ID3D12DeviceRemovedExtendedData1 | ||
| 17309 | { | ||
| 17310 | CONST_VTBL struct ID3D12DeviceRemovedExtendedData1Vtbl *lpVtbl; | ||
| 17311 | }; | ||
| 17312 | |||
| 17313 | |||
| 17314 | |||
| 17315 | #ifdef COBJMACROS | ||
| 17316 | |||
| 17317 | |||
| 17318 | #define ID3D12DeviceRemovedExtendedData1_QueryInterface(This,riid,ppvObject) \ | ||
| 17319 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 17320 | |||
| 17321 | #define ID3D12DeviceRemovedExtendedData1_AddRef(This) \ | ||
| 17322 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 17323 | |||
| 17324 | #define ID3D12DeviceRemovedExtendedData1_Release(This) \ | ||
| 17325 | ( (This)->lpVtbl -> Release(This) ) | ||
| 17326 | |||
| 17327 | |||
| 17328 | #define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput(This,pOutput) \ | ||
| 17329 | ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) ) | ||
| 17330 | |||
| 17331 | #define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput(This,pOutput) \ | ||
| 17332 | ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) ) | ||
| 17333 | |||
| 17334 | |||
| 17335 | #define ID3D12DeviceRemovedExtendedData1_GetAutoBreadcrumbsOutput1(This,pOutput) \ | ||
| 17336 | ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) ) | ||
| 17337 | |||
| 17338 | #define ID3D12DeviceRemovedExtendedData1_GetPageFaultAllocationOutput1(This,pOutput) \ | ||
| 17339 | ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) ) | ||
| 17340 | |||
| 17341 | #endif /* COBJMACROS */ | ||
| 17342 | |||
| 17343 | |||
| 17344 | #endif /* C style interface */ | ||
| 17345 | |||
| 17346 | |||
| 17347 | |||
| 17348 | |||
| 17349 | #endif /* __ID3D12DeviceRemovedExtendedData1_INTERFACE_DEFINED__ */ | ||
| 17350 | |||
| 17351 | |||
| 17352 | #ifndef __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ | ||
| 17353 | #define __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ | ||
| 17354 | |||
| 17355 | /* interface ID3D12DeviceRemovedExtendedData2 */ | ||
| 17356 | /* [unique][local][object][uuid] */ | ||
| 17357 | |||
| 17358 | |||
| 17359 | EXTERN_C const IID IID_ID3D12DeviceRemovedExtendedData2; | ||
| 17360 | |||
| 17361 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 17362 | |||
| 17363 | MIDL_INTERFACE("67FC5816-E4CA-4915-BF18-42541272DA54") | ||
| 17364 | ID3D12DeviceRemovedExtendedData2 : public ID3D12DeviceRemovedExtendedData1 | ||
| 17365 | { | ||
| 17366 | public: | ||
| 17367 | virtual HRESULT STDMETHODCALLTYPE GetPageFaultAllocationOutput2( | ||
| 17368 | _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput) = 0; | ||
| 17369 | |||
| 17370 | virtual D3D12_DRED_DEVICE_STATE STDMETHODCALLTYPE GetDeviceState( void) = 0; | ||
| 17371 | |||
| 17372 | }; | ||
| 17373 | |||
| 17374 | |||
| 17375 | #else /* C style interface */ | ||
| 17376 | |||
| 17377 | typedef struct ID3D12DeviceRemovedExtendedData2Vtbl | ||
| 17378 | { | ||
| 17379 | BEGIN_INTERFACE | ||
| 17380 | |||
| 17381 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 17382 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 17383 | ID3D12DeviceRemovedExtendedData2 * This, | ||
| 17384 | REFIID riid, | ||
| 17385 | _COM_Outptr_ void **ppvObject); | ||
| 17386 | |||
| 17387 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 17388 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 17389 | ID3D12DeviceRemovedExtendedData2 * This); | ||
| 17390 | |||
| 17391 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 17392 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 17393 | ID3D12DeviceRemovedExtendedData2 * This); | ||
| 17394 | |||
| 17395 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetAutoBreadcrumbsOutput) | ||
| 17396 | HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput )( | ||
| 17397 | ID3D12DeviceRemovedExtendedData2 * This, | ||
| 17398 | _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); | ||
| 17399 | |||
| 17400 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData, GetPageFaultAllocationOutput) | ||
| 17401 | HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput )( | ||
| 17402 | ID3D12DeviceRemovedExtendedData2 * This, | ||
| 17403 | _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); | ||
| 17404 | |||
| 17405 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetAutoBreadcrumbsOutput1) | ||
| 17406 | HRESULT ( STDMETHODCALLTYPE *GetAutoBreadcrumbsOutput1 )( | ||
| 17407 | ID3D12DeviceRemovedExtendedData2 * This, | ||
| 17408 | _Out_ D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput); | ||
| 17409 | |||
| 17410 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData1, GetPageFaultAllocationOutput1) | ||
| 17411 | HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput1 )( | ||
| 17412 | ID3D12DeviceRemovedExtendedData2 * This, | ||
| 17413 | _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput); | ||
| 17414 | |||
| 17415 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetPageFaultAllocationOutput2) | ||
| 17416 | HRESULT ( STDMETHODCALLTYPE *GetPageFaultAllocationOutput2 )( | ||
| 17417 | ID3D12DeviceRemovedExtendedData2 * This, | ||
| 17418 | _Out_ D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput); | ||
| 17419 | |||
| 17420 | DECLSPEC_XFGVIRT(ID3D12DeviceRemovedExtendedData2, GetDeviceState) | ||
| 17421 | D3D12_DRED_DEVICE_STATE ( STDMETHODCALLTYPE *GetDeviceState )( | ||
| 17422 | ID3D12DeviceRemovedExtendedData2 * This); | ||
| 17423 | |||
| 17424 | END_INTERFACE | ||
| 17425 | } ID3D12DeviceRemovedExtendedData2Vtbl; | ||
| 17426 | |||
| 17427 | interface ID3D12DeviceRemovedExtendedData2 | ||
| 17428 | { | ||
| 17429 | CONST_VTBL struct ID3D12DeviceRemovedExtendedData2Vtbl *lpVtbl; | ||
| 17430 | }; | ||
| 17431 | |||
| 17432 | |||
| 17433 | |||
| 17434 | #ifdef COBJMACROS | ||
| 17435 | |||
| 17436 | |||
| 17437 | #define ID3D12DeviceRemovedExtendedData2_QueryInterface(This,riid,ppvObject) \ | ||
| 17438 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 17439 | |||
| 17440 | #define ID3D12DeviceRemovedExtendedData2_AddRef(This) \ | ||
| 17441 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 17442 | |||
| 17443 | #define ID3D12DeviceRemovedExtendedData2_Release(This) \ | ||
| 17444 | ( (This)->lpVtbl -> Release(This) ) | ||
| 17445 | |||
| 17446 | |||
| 17447 | #define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput(This,pOutput) \ | ||
| 17448 | ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput(This,pOutput) ) | ||
| 17449 | |||
| 17450 | #define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput(This,pOutput) \ | ||
| 17451 | ( (This)->lpVtbl -> GetPageFaultAllocationOutput(This,pOutput) ) | ||
| 17452 | |||
| 17453 | |||
| 17454 | #define ID3D12DeviceRemovedExtendedData2_GetAutoBreadcrumbsOutput1(This,pOutput) \ | ||
| 17455 | ( (This)->lpVtbl -> GetAutoBreadcrumbsOutput1(This,pOutput) ) | ||
| 17456 | |||
| 17457 | #define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput1(This,pOutput) \ | ||
| 17458 | ( (This)->lpVtbl -> GetPageFaultAllocationOutput1(This,pOutput) ) | ||
| 17459 | |||
| 17460 | |||
| 17461 | #define ID3D12DeviceRemovedExtendedData2_GetPageFaultAllocationOutput2(This,pOutput) \ | ||
| 17462 | ( (This)->lpVtbl -> GetPageFaultAllocationOutput2(This,pOutput) ) | ||
| 17463 | |||
| 17464 | #define ID3D12DeviceRemovedExtendedData2_GetDeviceState(This) \ | ||
| 17465 | ( (This)->lpVtbl -> GetDeviceState(This) ) | ||
| 17466 | |||
| 17467 | #endif /* COBJMACROS */ | ||
| 17468 | |||
| 17469 | |||
| 17470 | #endif /* C style interface */ | ||
| 17471 | |||
| 17472 | |||
| 17473 | |||
| 17474 | |||
| 17475 | #endif /* __ID3D12DeviceRemovedExtendedData2_INTERFACE_DEFINED__ */ | ||
| 17476 | |||
| 17477 | |||
| 17478 | /* interface __MIDL_itf_d3d12_0000_0046 */ | ||
| 17479 | /* [local] */ | ||
| 17480 | |||
| 17481 | typedef | ||
| 17482 | enum D3D12_BACKGROUND_PROCESSING_MODE | ||
| 17483 | { | ||
| 17484 | D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED = 0, | ||
| 17485 | D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED + 1 ) , | ||
| 17486 | D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK = ( D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS + 1 ) , | ||
| 17487 | D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM = ( D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK + 1 ) | ||
| 17488 | } D3D12_BACKGROUND_PROCESSING_MODE; | ||
| 17489 | |||
| 17490 | typedef | ||
| 17491 | enum D3D12_MEASUREMENTS_ACTION | ||
| 17492 | { | ||
| 17493 | D3D12_MEASUREMENTS_ACTION_KEEP_ALL = 0, | ||
| 17494 | D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS = ( D3D12_MEASUREMENTS_ACTION_KEEP_ALL + 1 ) , | ||
| 17495 | D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS + 1 ) , | ||
| 17496 | D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS = ( D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY + 1 ) | ||
| 17497 | } D3D12_MEASUREMENTS_ACTION; | ||
| 17498 | |||
| 17499 | |||
| 17500 | |||
| 17501 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_c_ifspec; | ||
| 17502 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0046_v0_0_s_ifspec; | ||
| 17503 | |||
| 17504 | #ifndef __ID3D12Device6_INTERFACE_DEFINED__ | ||
| 17505 | #define __ID3D12Device6_INTERFACE_DEFINED__ | ||
| 17506 | |||
| 17507 | /* interface ID3D12Device6 */ | ||
| 17508 | /* [unique][local][object][uuid] */ | ||
| 17509 | |||
| 17510 | |||
| 17511 | EXTERN_C const IID IID_ID3D12Device6; | ||
| 17512 | |||
| 17513 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 17514 | |||
| 17515 | MIDL_INTERFACE("c70b221b-40e4-4a17-89af-025a0727a6dc") | ||
| 17516 | ID3D12Device6 : public ID3D12Device5 | ||
| 17517 | { | ||
| 17518 | public: | ||
| 17519 | virtual HRESULT STDMETHODCALLTYPE SetBackgroundProcessingMode( | ||
| 17520 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 17521 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 17522 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 17523 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired) = 0; | ||
| 17524 | |||
| 17525 | }; | ||
| 17526 | |||
| 17527 | |||
| 17528 | #else /* C style interface */ | ||
| 17529 | |||
| 17530 | typedef struct ID3D12Device6Vtbl | ||
| 17531 | { | ||
| 17532 | BEGIN_INTERFACE | ||
| 17533 | |||
| 17534 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 17535 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 17536 | ID3D12Device6 * This, | ||
| 17537 | REFIID riid, | ||
| 17538 | _COM_Outptr_ void **ppvObject); | ||
| 17539 | |||
| 17540 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 17541 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 17542 | ID3D12Device6 * This); | ||
| 17543 | |||
| 17544 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 17545 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 17546 | ID3D12Device6 * This); | ||
| 17547 | |||
| 17548 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 17549 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 17550 | ID3D12Device6 * This, | ||
| 17551 | _In_ REFGUID guid, | ||
| 17552 | _Inout_ UINT *pDataSize, | ||
| 17553 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 17554 | |||
| 17555 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 17556 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 17557 | ID3D12Device6 * This, | ||
| 17558 | _In_ REFGUID guid, | ||
| 17559 | _In_ UINT DataSize, | ||
| 17560 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 17561 | |||
| 17562 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 17563 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 17564 | ID3D12Device6 * This, | ||
| 17565 | _In_ REFGUID guid, | ||
| 17566 | _In_opt_ const IUnknown *pData); | ||
| 17567 | |||
| 17568 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 17569 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 17570 | ID3D12Device6 * This, | ||
| 17571 | _In_z_ LPCWSTR Name); | ||
| 17572 | |||
| 17573 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 17574 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 17575 | ID3D12Device6 * This); | ||
| 17576 | |||
| 17577 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 17578 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 17579 | ID3D12Device6 * This, | ||
| 17580 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 17581 | REFIID riid, | ||
| 17582 | _COM_Outptr_ void **ppCommandQueue); | ||
| 17583 | |||
| 17584 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 17585 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 17586 | ID3D12Device6 * This, | ||
| 17587 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 17588 | REFIID riid, | ||
| 17589 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 17590 | |||
| 17591 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 17592 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 17593 | ID3D12Device6 * This, | ||
| 17594 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 17595 | REFIID riid, | ||
| 17596 | _COM_Outptr_ void **ppPipelineState); | ||
| 17597 | |||
| 17598 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 17599 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 17600 | ID3D12Device6 * This, | ||
| 17601 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 17602 | REFIID riid, | ||
| 17603 | _COM_Outptr_ void **ppPipelineState); | ||
| 17604 | |||
| 17605 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 17606 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 17607 | ID3D12Device6 * This, | ||
| 17608 | _In_ UINT nodeMask, | ||
| 17609 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 17610 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 17611 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 17612 | REFIID riid, | ||
| 17613 | _COM_Outptr_ void **ppCommandList); | ||
| 17614 | |||
| 17615 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 17616 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 17617 | ID3D12Device6 * This, | ||
| 17618 | D3D12_FEATURE Feature, | ||
| 17619 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 17620 | UINT FeatureSupportDataSize); | ||
| 17621 | |||
| 17622 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 17623 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 17624 | ID3D12Device6 * This, | ||
| 17625 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 17626 | REFIID riid, | ||
| 17627 | _COM_Outptr_ void **ppvHeap); | ||
| 17628 | |||
| 17629 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 17630 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 17631 | ID3D12Device6 * This, | ||
| 17632 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 17633 | |||
| 17634 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 17635 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 17636 | ID3D12Device6 * This, | ||
| 17637 | _In_ UINT nodeMask, | ||
| 17638 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 17639 | _In_ SIZE_T blobLengthInBytes, | ||
| 17640 | REFIID riid, | ||
| 17641 | _COM_Outptr_ void **ppvRootSignature); | ||
| 17642 | |||
| 17643 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 17644 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 17645 | ID3D12Device6 * This, | ||
| 17646 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 17647 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 17648 | |||
| 17649 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 17650 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 17651 | ID3D12Device6 * This, | ||
| 17652 | _In_opt_ ID3D12Resource *pResource, | ||
| 17653 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 17654 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 17655 | |||
| 17656 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 17657 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 17658 | ID3D12Device6 * This, | ||
| 17659 | _In_opt_ ID3D12Resource *pResource, | ||
| 17660 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 17661 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 17662 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 17663 | |||
| 17664 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 17665 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 17666 | ID3D12Device6 * This, | ||
| 17667 | _In_opt_ ID3D12Resource *pResource, | ||
| 17668 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 17669 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 17670 | |||
| 17671 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 17672 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 17673 | ID3D12Device6 * This, | ||
| 17674 | _In_opt_ ID3D12Resource *pResource, | ||
| 17675 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 17676 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 17677 | |||
| 17678 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 17679 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 17680 | ID3D12Device6 * This, | ||
| 17681 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 17682 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 17683 | |||
| 17684 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 17685 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 17686 | ID3D12Device6 * This, | ||
| 17687 | _In_ UINT NumDestDescriptorRanges, | ||
| 17688 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 17689 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 17690 | _In_ UINT NumSrcDescriptorRanges, | ||
| 17691 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 17692 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 17693 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 17694 | |||
| 17695 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 17696 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 17697 | ID3D12Device6 * This, | ||
| 17698 | _In_ UINT NumDescriptors, | ||
| 17699 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 17700 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 17701 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 17702 | |||
| 17703 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 17704 | #if !defined(_WIN32) | ||
| 17705 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 17706 | ID3D12Device6 * This, | ||
| 17707 | _In_ UINT visibleMask, | ||
| 17708 | _In_ UINT numResourceDescs, | ||
| 17709 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 17710 | |||
| 17711 | #else | ||
| 17712 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 17713 | ID3D12Device6 * This, | ||
| 17714 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 17715 | _In_ UINT visibleMask, | ||
| 17716 | _In_ UINT numResourceDescs, | ||
| 17717 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 17718 | |||
| 17719 | #endif | ||
| 17720 | |||
| 17721 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 17722 | #if !defined(_WIN32) | ||
| 17723 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 17724 | ID3D12Device6 * This, | ||
| 17725 | _In_ UINT nodeMask, | ||
| 17726 | D3D12_HEAP_TYPE heapType); | ||
| 17727 | |||
| 17728 | #else | ||
| 17729 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 17730 | ID3D12Device6 * This, | ||
| 17731 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 17732 | _In_ UINT nodeMask, | ||
| 17733 | D3D12_HEAP_TYPE heapType); | ||
| 17734 | |||
| 17735 | #endif | ||
| 17736 | |||
| 17737 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 17738 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 17739 | ID3D12Device6 * This, | ||
| 17740 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 17741 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 17742 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 17743 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 17744 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 17745 | REFIID riidResource, | ||
| 17746 | _COM_Outptr_opt_ void **ppvResource); | ||
| 17747 | |||
| 17748 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 17749 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 17750 | ID3D12Device6 * This, | ||
| 17751 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 17752 | REFIID riid, | ||
| 17753 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 17754 | |||
| 17755 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 17756 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 17757 | ID3D12Device6 * This, | ||
| 17758 | _In_ ID3D12Heap *pHeap, | ||
| 17759 | UINT64 HeapOffset, | ||
| 17760 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 17761 | D3D12_RESOURCE_STATES InitialState, | ||
| 17762 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 17763 | REFIID riid, | ||
| 17764 | _COM_Outptr_opt_ void **ppvResource); | ||
| 17765 | |||
| 17766 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 17767 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 17768 | ID3D12Device6 * This, | ||
| 17769 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 17770 | D3D12_RESOURCE_STATES InitialState, | ||
| 17771 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 17772 | REFIID riid, | ||
| 17773 | _COM_Outptr_opt_ void **ppvResource); | ||
| 17774 | |||
| 17775 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 17776 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 17777 | ID3D12Device6 * This, | ||
| 17778 | _In_ ID3D12DeviceChild *pObject, | ||
| 17779 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 17780 | DWORD Access, | ||
| 17781 | _In_opt_ LPCWSTR Name, | ||
| 17782 | _Out_ HANDLE *pHandle); | ||
| 17783 | |||
| 17784 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 17785 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 17786 | ID3D12Device6 * This, | ||
| 17787 | _In_ HANDLE NTHandle, | ||
| 17788 | REFIID riid, | ||
| 17789 | _COM_Outptr_opt_ void **ppvObj); | ||
| 17790 | |||
| 17791 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 17792 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 17793 | ID3D12Device6 * This, | ||
| 17794 | _In_ LPCWSTR Name, | ||
| 17795 | DWORD Access, | ||
| 17796 | /* [annotation][out] */ | ||
| 17797 | _Out_ HANDLE *pNTHandle); | ||
| 17798 | |||
| 17799 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 17800 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 17801 | ID3D12Device6 * This, | ||
| 17802 | UINT NumObjects, | ||
| 17803 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 17804 | |||
| 17805 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 17806 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 17807 | ID3D12Device6 * This, | ||
| 17808 | UINT NumObjects, | ||
| 17809 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 17810 | |||
| 17811 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 17812 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 17813 | ID3D12Device6 * This, | ||
| 17814 | UINT64 InitialValue, | ||
| 17815 | D3D12_FENCE_FLAGS Flags, | ||
| 17816 | REFIID riid, | ||
| 17817 | _COM_Outptr_ void **ppFence); | ||
| 17818 | |||
| 17819 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 17820 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 17821 | ID3D12Device6 * This); | ||
| 17822 | |||
| 17823 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 17824 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 17825 | ID3D12Device6 * This, | ||
| 17826 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 17827 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 17828 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 17829 | UINT64 BaseOffset, | ||
| 17830 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 17831 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 17832 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 17833 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 17834 | |||
| 17835 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 17836 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 17837 | ID3D12Device6 * This, | ||
| 17838 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 17839 | REFIID riid, | ||
| 17840 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 17841 | |||
| 17842 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 17843 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 17844 | ID3D12Device6 * This, | ||
| 17845 | BOOL Enable); | ||
| 17846 | |||
| 17847 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 17848 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 17849 | ID3D12Device6 * This, | ||
| 17850 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 17851 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 17852 | REFIID riid, | ||
| 17853 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 17854 | |||
| 17855 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 17856 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 17857 | ID3D12Device6 * This, | ||
| 17858 | _In_ ID3D12Resource *pTiledResource, | ||
| 17859 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 17860 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 17861 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 17862 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 17863 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 17864 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 17865 | |||
| 17866 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 17867 | #if !defined(_WIN32) | ||
| 17868 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 17869 | ID3D12Device6 * This); | ||
| 17870 | |||
| 17871 | #else | ||
| 17872 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 17873 | ID3D12Device6 * This, | ||
| 17874 | LUID * RetVal); | ||
| 17875 | |||
| 17876 | #endif | ||
| 17877 | |||
| 17878 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 17879 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 17880 | ID3D12Device6 * This, | ||
| 17881 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 17882 | SIZE_T BlobLength, | ||
| 17883 | REFIID riid, | ||
| 17884 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 17885 | |||
| 17886 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 17887 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 17888 | ID3D12Device6 * This, | ||
| 17889 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 17890 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 17891 | UINT NumFences, | ||
| 17892 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 17893 | HANDLE hEvent); | ||
| 17894 | |||
| 17895 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 17896 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 17897 | ID3D12Device6 * This, | ||
| 17898 | UINT NumObjects, | ||
| 17899 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 17900 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 17901 | |||
| 17902 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 17903 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 17904 | ID3D12Device6 * This, | ||
| 17905 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 17906 | REFIID riid, | ||
| 17907 | _COM_Outptr_ void **ppPipelineState); | ||
| 17908 | |||
| 17909 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 17910 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 17911 | ID3D12Device6 * This, | ||
| 17912 | _In_ const void *pAddress, | ||
| 17913 | REFIID riid, | ||
| 17914 | _COM_Outptr_ void **ppvHeap); | ||
| 17915 | |||
| 17916 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 17917 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 17918 | ID3D12Device6 * This, | ||
| 17919 | _In_ HANDLE hFileMapping, | ||
| 17920 | REFIID riid, | ||
| 17921 | _COM_Outptr_ void **ppvHeap); | ||
| 17922 | |||
| 17923 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 17924 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 17925 | ID3D12Device6 * This, | ||
| 17926 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 17927 | UINT NumObjects, | ||
| 17928 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 17929 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 17930 | UINT64 FenceValueToSignal); | ||
| 17931 | |||
| 17932 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 17933 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 17934 | ID3D12Device6 * This, | ||
| 17935 | _In_ UINT nodeMask, | ||
| 17936 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 17937 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 17938 | REFIID riid, | ||
| 17939 | _COM_Outptr_ void **ppCommandList); | ||
| 17940 | |||
| 17941 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 17942 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 17943 | ID3D12Device6 * This, | ||
| 17944 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 17945 | _In_ REFIID riid, | ||
| 17946 | _COM_Outptr_ void **ppSession); | ||
| 17947 | |||
| 17948 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 17949 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 17950 | ID3D12Device6 * This, | ||
| 17951 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 17952 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 17953 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 17954 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 17955 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 17956 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 17957 | REFIID riidResource, | ||
| 17958 | _COM_Outptr_opt_ void **ppvResource); | ||
| 17959 | |||
| 17960 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 17961 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 17962 | ID3D12Device6 * This, | ||
| 17963 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 17964 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 17965 | REFIID riid, | ||
| 17966 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 17967 | |||
| 17968 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 17969 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 17970 | ID3D12Device6 * This, | ||
| 17971 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 17972 | D3D12_RESOURCE_STATES InitialState, | ||
| 17973 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 17974 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 17975 | REFIID riid, | ||
| 17976 | _COM_Outptr_opt_ void **ppvResource); | ||
| 17977 | |||
| 17978 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 17979 | #if !defined(_WIN32) | ||
| 17980 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 17981 | ID3D12Device6 * This, | ||
| 17982 | UINT visibleMask, | ||
| 17983 | UINT numResourceDescs, | ||
| 17984 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 17985 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 17986 | |||
| 17987 | #else | ||
| 17988 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 17989 | ID3D12Device6 * This, | ||
| 17990 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 17991 | UINT visibleMask, | ||
| 17992 | UINT numResourceDescs, | ||
| 17993 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 17994 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 17995 | |||
| 17996 | #endif | ||
| 17997 | |||
| 17998 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 17999 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 18000 | ID3D12Device6 * This, | ||
| 18001 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 18002 | REFIID riid, | ||
| 18003 | _COM_Outptr_ void **ppvTracker); | ||
| 18004 | |||
| 18005 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 18006 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 18007 | ID3D12Device6 * This); | ||
| 18008 | |||
| 18009 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 18010 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 18011 | ID3D12Device6 * This, | ||
| 18012 | _Inout_ UINT *pNumMetaCommands, | ||
| 18013 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 18014 | |||
| 18015 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 18016 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 18017 | ID3D12Device6 * This, | ||
| 18018 | _In_ REFGUID CommandId, | ||
| 18019 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 18020 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 18021 | _Inout_ UINT *pParameterCount, | ||
| 18022 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 18023 | |||
| 18024 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 18025 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 18026 | ID3D12Device6 * This, | ||
| 18027 | _In_ REFGUID CommandId, | ||
| 18028 | _In_ UINT NodeMask, | ||
| 18029 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 18030 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 18031 | REFIID riid, | ||
| 18032 | _COM_Outptr_ void **ppMetaCommand); | ||
| 18033 | |||
| 18034 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 18035 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 18036 | ID3D12Device6 * This, | ||
| 18037 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 18038 | REFIID riid, | ||
| 18039 | _COM_Outptr_ void **ppStateObject); | ||
| 18040 | |||
| 18041 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 18042 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 18043 | ID3D12Device6 * This, | ||
| 18044 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 18045 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 18046 | |||
| 18047 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 18048 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 18049 | ID3D12Device6 * This, | ||
| 18050 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 18051 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 18052 | |||
| 18053 | DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) | ||
| 18054 | HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( | ||
| 18055 | ID3D12Device6 * This, | ||
| 18056 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 18057 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 18058 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 18059 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired); | ||
| 18060 | |||
| 18061 | END_INTERFACE | ||
| 18062 | } ID3D12Device6Vtbl; | ||
| 18063 | |||
| 18064 | interface ID3D12Device6 | ||
| 18065 | { | ||
| 18066 | CONST_VTBL struct ID3D12Device6Vtbl *lpVtbl; | ||
| 18067 | }; | ||
| 18068 | |||
| 18069 | |||
| 18070 | |||
| 18071 | #ifdef COBJMACROS | ||
| 18072 | |||
| 18073 | |||
| 18074 | #define ID3D12Device6_QueryInterface(This,riid,ppvObject) \ | ||
| 18075 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 18076 | |||
| 18077 | #define ID3D12Device6_AddRef(This) \ | ||
| 18078 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 18079 | |||
| 18080 | #define ID3D12Device6_Release(This) \ | ||
| 18081 | ( (This)->lpVtbl -> Release(This) ) | ||
| 18082 | |||
| 18083 | |||
| 18084 | #define ID3D12Device6_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 18085 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 18086 | |||
| 18087 | #define ID3D12Device6_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 18088 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 18089 | |||
| 18090 | #define ID3D12Device6_SetPrivateDataInterface(This,guid,pData) \ | ||
| 18091 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 18092 | |||
| 18093 | #define ID3D12Device6_SetName(This,Name) \ | ||
| 18094 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 18095 | |||
| 18096 | |||
| 18097 | #define ID3D12Device6_GetNodeCount(This) \ | ||
| 18098 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 18099 | |||
| 18100 | #define ID3D12Device6_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 18101 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 18102 | |||
| 18103 | #define ID3D12Device6_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 18104 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 18105 | |||
| 18106 | #define ID3D12Device6_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 18107 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 18108 | |||
| 18109 | #define ID3D12Device6_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 18110 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 18111 | |||
| 18112 | #define ID3D12Device6_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 18113 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 18114 | |||
| 18115 | #define ID3D12Device6_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 18116 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 18117 | |||
| 18118 | #define ID3D12Device6_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 18119 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 18120 | |||
| 18121 | #define ID3D12Device6_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 18122 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 18123 | |||
| 18124 | #define ID3D12Device6_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 18125 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 18126 | |||
| 18127 | #define ID3D12Device6_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 18128 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 18129 | |||
| 18130 | #define ID3D12Device6_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 18131 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 18132 | |||
| 18133 | #define ID3D12Device6_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 18134 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 18135 | |||
| 18136 | #define ID3D12Device6_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 18137 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 18138 | |||
| 18139 | #define ID3D12Device6_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 18140 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 18141 | |||
| 18142 | #define ID3D12Device6_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 18143 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 18144 | |||
| 18145 | #define ID3D12Device6_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 18146 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 18147 | |||
| 18148 | #define ID3D12Device6_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 18149 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 18150 | #if !defined(_WIN32) | ||
| 18151 | |||
| 18152 | #define ID3D12Device6_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 18153 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 18154 | #else | ||
| 18155 | #define ID3D12Device6_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 18156 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 18157 | #endif | ||
| 18158 | #if !defined(_WIN32) | ||
| 18159 | |||
| 18160 | #define ID3D12Device6_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 18161 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 18162 | #else | ||
| 18163 | #define ID3D12Device6_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 18164 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 18165 | #endif | ||
| 18166 | |||
| 18167 | #define ID3D12Device6_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 18168 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 18169 | |||
| 18170 | #define ID3D12Device6_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 18171 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 18172 | |||
| 18173 | #define ID3D12Device6_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 18174 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 18175 | |||
| 18176 | #define ID3D12Device6_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 18177 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 18178 | |||
| 18179 | #define ID3D12Device6_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 18180 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 18181 | |||
| 18182 | #define ID3D12Device6_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 18183 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 18184 | |||
| 18185 | #define ID3D12Device6_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 18186 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 18187 | |||
| 18188 | #define ID3D12Device6_MakeResident(This,NumObjects,ppObjects) \ | ||
| 18189 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 18190 | |||
| 18191 | #define ID3D12Device6_Evict(This,NumObjects,ppObjects) \ | ||
| 18192 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 18193 | |||
| 18194 | #define ID3D12Device6_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 18195 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 18196 | |||
| 18197 | #define ID3D12Device6_GetDeviceRemovedReason(This) \ | ||
| 18198 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 18199 | |||
| 18200 | #define ID3D12Device6_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 18201 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 18202 | |||
| 18203 | #define ID3D12Device6_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 18204 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 18205 | |||
| 18206 | #define ID3D12Device6_SetStablePowerState(This,Enable) \ | ||
| 18207 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 18208 | |||
| 18209 | #define ID3D12Device6_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 18210 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 18211 | |||
| 18212 | #define ID3D12Device6_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 18213 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 18214 | #if !defined(_WIN32) | ||
| 18215 | |||
| 18216 | #define ID3D12Device6_GetAdapterLuid(This) \ | ||
| 18217 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 18218 | #else | ||
| 18219 | #define ID3D12Device6_GetAdapterLuid(This,RetVal) \ | ||
| 18220 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 18221 | #endif | ||
| 18222 | |||
| 18223 | |||
| 18224 | #define ID3D12Device6_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 18225 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 18226 | |||
| 18227 | #define ID3D12Device6_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 18228 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 18229 | |||
| 18230 | #define ID3D12Device6_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 18231 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 18232 | |||
| 18233 | |||
| 18234 | #define ID3D12Device6_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 18235 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 18236 | |||
| 18237 | |||
| 18238 | #define ID3D12Device6_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 18239 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 18240 | |||
| 18241 | #define ID3D12Device6_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 18242 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 18243 | |||
| 18244 | #define ID3D12Device6_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 18245 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 18246 | |||
| 18247 | |||
| 18248 | #define ID3D12Device6_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 18249 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 18250 | |||
| 18251 | #define ID3D12Device6_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 18252 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 18253 | |||
| 18254 | #define ID3D12Device6_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 18255 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 18256 | |||
| 18257 | #define ID3D12Device6_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 18258 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 18259 | |||
| 18260 | #define ID3D12Device6_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 18261 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 18262 | #if !defined(_WIN32) | ||
| 18263 | |||
| 18264 | #define ID3D12Device6_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 18265 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 18266 | #else | ||
| 18267 | #define ID3D12Device6_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 18268 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 18269 | #endif | ||
| 18270 | |||
| 18271 | |||
| 18272 | #define ID3D12Device6_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 18273 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 18274 | |||
| 18275 | #define ID3D12Device6_RemoveDevice(This) \ | ||
| 18276 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 18277 | |||
| 18278 | #define ID3D12Device6_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 18279 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 18280 | |||
| 18281 | #define ID3D12Device6_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 18282 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 18283 | |||
| 18284 | #define ID3D12Device6_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 18285 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 18286 | |||
| 18287 | #define ID3D12Device6_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 18288 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 18289 | |||
| 18290 | #define ID3D12Device6_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 18291 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 18292 | |||
| 18293 | #define ID3D12Device6_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 18294 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 18295 | |||
| 18296 | |||
| 18297 | #define ID3D12Device6_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ | ||
| 18298 | ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) | ||
| 18299 | |||
| 18300 | #endif /* COBJMACROS */ | ||
| 18301 | |||
| 18302 | |||
| 18303 | #endif /* C style interface */ | ||
| 18304 | |||
| 18305 | |||
| 18306 | |||
| 18307 | |||
| 18308 | #endif /* __ID3D12Device6_INTERFACE_DEFINED__ */ | ||
| 18309 | |||
| 18310 | |||
| 18311 | /* interface __MIDL_itf_d3d12_0000_0047 */ | ||
| 18312 | /* [local] */ | ||
| 18313 | |||
| 18314 | DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82); | ||
| 18315 | typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT | ||
| 18316 | { | ||
| 18317 | UINT NodeIndex; | ||
| 18318 | UINT Count; | ||
| 18319 | } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT; | ||
| 18320 | |||
| 18321 | typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES | ||
| 18322 | { | ||
| 18323 | UINT NodeIndex; | ||
| 18324 | UINT Count; | ||
| 18325 | GUID *pTypes; | ||
| 18326 | } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES; | ||
| 18327 | |||
| 18328 | typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 | ||
| 18329 | { | ||
| 18330 | UINT NodeMask; | ||
| 18331 | D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; | ||
| 18332 | GUID ProtectionType; | ||
| 18333 | } D3D12_PROTECTED_RESOURCE_SESSION_DESC1; | ||
| 18334 | |||
| 18335 | |||
| 18336 | |||
| 18337 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_c_ifspec; | ||
| 18338 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0047_v0_0_s_ifspec; | ||
| 18339 | |||
| 18340 | #ifndef __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ | ||
| 18341 | #define __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ | ||
| 18342 | |||
| 18343 | /* interface ID3D12ProtectedResourceSession1 */ | ||
| 18344 | /* [unique][local][object][uuid] */ | ||
| 18345 | |||
| 18346 | |||
| 18347 | EXTERN_C const IID IID_ID3D12ProtectedResourceSession1; | ||
| 18348 | |||
| 18349 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 18350 | |||
| 18351 | MIDL_INTERFACE("D6F12DD6-76FB-406E-8961-4296EEFC0409") | ||
| 18352 | ID3D12ProtectedResourceSession1 : public ID3D12ProtectedResourceSession | ||
| 18353 | { | ||
| 18354 | public: | ||
| 18355 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 18356 | virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0; | ||
| 18357 | #else | ||
| 18358 | virtual D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *STDMETHODCALLTYPE GetDesc1( | ||
| 18359 | D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal) = 0; | ||
| 18360 | #endif | ||
| 18361 | |||
| 18362 | }; | ||
| 18363 | |||
| 18364 | |||
| 18365 | #else /* C style interface */ | ||
| 18366 | |||
| 18367 | typedef struct ID3D12ProtectedResourceSession1Vtbl | ||
| 18368 | { | ||
| 18369 | BEGIN_INTERFACE | ||
| 18370 | |||
| 18371 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 18372 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 18373 | ID3D12ProtectedResourceSession1 * This, | ||
| 18374 | REFIID riid, | ||
| 18375 | _COM_Outptr_ void **ppvObject); | ||
| 18376 | |||
| 18377 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 18378 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 18379 | ID3D12ProtectedResourceSession1 * This); | ||
| 18380 | |||
| 18381 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 18382 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 18383 | ID3D12ProtectedResourceSession1 * This); | ||
| 18384 | |||
| 18385 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 18386 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 18387 | ID3D12ProtectedResourceSession1 * This, | ||
| 18388 | _In_ REFGUID guid, | ||
| 18389 | _Inout_ UINT *pDataSize, | ||
| 18390 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 18391 | |||
| 18392 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 18393 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 18394 | ID3D12ProtectedResourceSession1 * This, | ||
| 18395 | _In_ REFGUID guid, | ||
| 18396 | _In_ UINT DataSize, | ||
| 18397 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 18398 | |||
| 18399 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 18400 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 18401 | ID3D12ProtectedResourceSession1 * This, | ||
| 18402 | _In_ REFGUID guid, | ||
| 18403 | _In_opt_ const IUnknown *pData); | ||
| 18404 | |||
| 18405 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 18406 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 18407 | ID3D12ProtectedResourceSession1 * This, | ||
| 18408 | _In_z_ LPCWSTR Name); | ||
| 18409 | |||
| 18410 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 18411 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 18412 | ID3D12ProtectedResourceSession1 * This, | ||
| 18413 | REFIID riid, | ||
| 18414 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 18415 | |||
| 18416 | DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetStatusFence) | ||
| 18417 | HRESULT ( STDMETHODCALLTYPE *GetStatusFence )( | ||
| 18418 | ID3D12ProtectedResourceSession1 * This, | ||
| 18419 | REFIID riid, | ||
| 18420 | _COM_Outptr_opt_ void **ppFence); | ||
| 18421 | |||
| 18422 | DECLSPEC_XFGVIRT(ID3D12ProtectedSession, GetSessionStatus) | ||
| 18423 | D3D12_PROTECTED_SESSION_STATUS ( STDMETHODCALLTYPE *GetSessionStatus )( | ||
| 18424 | ID3D12ProtectedResourceSession1 * This); | ||
| 18425 | |||
| 18426 | DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession, GetDesc) | ||
| 18427 | #if !defined(_WIN32) | ||
| 18428 | D3D12_PROTECTED_RESOURCE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 18429 | ID3D12ProtectedResourceSession1 * This); | ||
| 18430 | |||
| 18431 | #else | ||
| 18432 | D3D12_PROTECTED_RESOURCE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 18433 | ID3D12ProtectedResourceSession1 * This, | ||
| 18434 | D3D12_PROTECTED_RESOURCE_SESSION_DESC * RetVal); | ||
| 18435 | |||
| 18436 | #endif | ||
| 18437 | |||
| 18438 | DECLSPEC_XFGVIRT(ID3D12ProtectedResourceSession1, GetDesc1) | ||
| 18439 | #if !defined(_WIN32) | ||
| 18440 | D3D12_PROTECTED_RESOURCE_SESSION_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )( | ||
| 18441 | ID3D12ProtectedResourceSession1 * This); | ||
| 18442 | |||
| 18443 | #else | ||
| 18444 | D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )( | ||
| 18445 | ID3D12ProtectedResourceSession1 * This, | ||
| 18446 | D3D12_PROTECTED_RESOURCE_SESSION_DESC1 * RetVal); | ||
| 18447 | |||
| 18448 | #endif | ||
| 18449 | |||
| 18450 | END_INTERFACE | ||
| 18451 | } ID3D12ProtectedResourceSession1Vtbl; | ||
| 18452 | |||
| 18453 | interface ID3D12ProtectedResourceSession1 | ||
| 18454 | { | ||
| 18455 | CONST_VTBL struct ID3D12ProtectedResourceSession1Vtbl *lpVtbl; | ||
| 18456 | }; | ||
| 18457 | |||
| 18458 | |||
| 18459 | |||
| 18460 | #ifdef COBJMACROS | ||
| 18461 | |||
| 18462 | |||
| 18463 | #define ID3D12ProtectedResourceSession1_QueryInterface(This,riid,ppvObject) \ | ||
| 18464 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 18465 | |||
| 18466 | #define ID3D12ProtectedResourceSession1_AddRef(This) \ | ||
| 18467 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 18468 | |||
| 18469 | #define ID3D12ProtectedResourceSession1_Release(This) \ | ||
| 18470 | ( (This)->lpVtbl -> Release(This) ) | ||
| 18471 | |||
| 18472 | |||
| 18473 | #define ID3D12ProtectedResourceSession1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 18474 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 18475 | |||
| 18476 | #define ID3D12ProtectedResourceSession1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 18477 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 18478 | |||
| 18479 | #define ID3D12ProtectedResourceSession1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 18480 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 18481 | |||
| 18482 | #define ID3D12ProtectedResourceSession1_SetName(This,Name) \ | ||
| 18483 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 18484 | |||
| 18485 | |||
| 18486 | #define ID3D12ProtectedResourceSession1_GetDevice(This,riid,ppvDevice) \ | ||
| 18487 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 18488 | |||
| 18489 | |||
| 18490 | #define ID3D12ProtectedResourceSession1_GetStatusFence(This,riid,ppFence) \ | ||
| 18491 | ( (This)->lpVtbl -> GetStatusFence(This,riid,ppFence) ) | ||
| 18492 | |||
| 18493 | #define ID3D12ProtectedResourceSession1_GetSessionStatus(This) \ | ||
| 18494 | ( (This)->lpVtbl -> GetSessionStatus(This) ) | ||
| 18495 | |||
| 18496 | #if !defined(_WIN32) | ||
| 18497 | |||
| 18498 | #define ID3D12ProtectedResourceSession1_GetDesc(This) \ | ||
| 18499 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 18500 | #else | ||
| 18501 | #define ID3D12ProtectedResourceSession1_GetDesc(This,RetVal) \ | ||
| 18502 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 18503 | #endif | ||
| 18504 | |||
| 18505 | #if !defined(_WIN32) | ||
| 18506 | |||
| 18507 | #define ID3D12ProtectedResourceSession1_GetDesc1(This) \ | ||
| 18508 | ( (This)->lpVtbl -> GetDesc1(This) ) | ||
| 18509 | #else | ||
| 18510 | #define ID3D12ProtectedResourceSession1_GetDesc1(This,RetVal) \ | ||
| 18511 | ( (This)->lpVtbl -> GetDesc1(This,RetVal) ) | ||
| 18512 | #endif | ||
| 18513 | |||
| 18514 | #endif /* COBJMACROS */ | ||
| 18515 | |||
| 18516 | |||
| 18517 | #endif /* C style interface */ | ||
| 18518 | |||
| 18519 | |||
| 18520 | |||
| 18521 | |||
| 18522 | #endif /* __ID3D12ProtectedResourceSession1_INTERFACE_DEFINED__ */ | ||
| 18523 | |||
| 18524 | |||
| 18525 | #ifndef __ID3D12Device7_INTERFACE_DEFINED__ | ||
| 18526 | #define __ID3D12Device7_INTERFACE_DEFINED__ | ||
| 18527 | |||
| 18528 | /* interface ID3D12Device7 */ | ||
| 18529 | /* [unique][local][object][uuid] */ | ||
| 18530 | |||
| 18531 | |||
| 18532 | EXTERN_C const IID IID_ID3D12Device7; | ||
| 18533 | |||
| 18534 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 18535 | |||
| 18536 | MIDL_INTERFACE("5c014b53-68a1-4b9b-8bd1-dd6046b9358b") | ||
| 18537 | ID3D12Device7 : public ID3D12Device6 | ||
| 18538 | { | ||
| 18539 | public: | ||
| 18540 | virtual HRESULT STDMETHODCALLTYPE AddToStateObject( | ||
| 18541 | const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 18542 | ID3D12StateObject *pStateObjectToGrowFrom, | ||
| 18543 | REFIID riid, | ||
| 18544 | _COM_Outptr_ void **ppNewStateObject) = 0; | ||
| 18545 | |||
| 18546 | virtual HRESULT STDMETHODCALLTYPE CreateProtectedResourceSession1( | ||
| 18547 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, | ||
| 18548 | _In_ REFIID riid, | ||
| 18549 | _COM_Outptr_ void **ppSession) = 0; | ||
| 18550 | |||
| 18551 | }; | ||
| 18552 | |||
| 18553 | |||
| 18554 | #else /* C style interface */ | ||
| 18555 | |||
| 18556 | typedef struct ID3D12Device7Vtbl | ||
| 18557 | { | ||
| 18558 | BEGIN_INTERFACE | ||
| 18559 | |||
| 18560 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 18561 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 18562 | ID3D12Device7 * This, | ||
| 18563 | REFIID riid, | ||
| 18564 | _COM_Outptr_ void **ppvObject); | ||
| 18565 | |||
| 18566 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 18567 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 18568 | ID3D12Device7 * This); | ||
| 18569 | |||
| 18570 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 18571 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 18572 | ID3D12Device7 * This); | ||
| 18573 | |||
| 18574 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 18575 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 18576 | ID3D12Device7 * This, | ||
| 18577 | _In_ REFGUID guid, | ||
| 18578 | _Inout_ UINT *pDataSize, | ||
| 18579 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 18580 | |||
| 18581 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 18582 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 18583 | ID3D12Device7 * This, | ||
| 18584 | _In_ REFGUID guid, | ||
| 18585 | _In_ UINT DataSize, | ||
| 18586 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 18587 | |||
| 18588 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 18589 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 18590 | ID3D12Device7 * This, | ||
| 18591 | _In_ REFGUID guid, | ||
| 18592 | _In_opt_ const IUnknown *pData); | ||
| 18593 | |||
| 18594 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 18595 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 18596 | ID3D12Device7 * This, | ||
| 18597 | _In_z_ LPCWSTR Name); | ||
| 18598 | |||
| 18599 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 18600 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 18601 | ID3D12Device7 * This); | ||
| 18602 | |||
| 18603 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 18604 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 18605 | ID3D12Device7 * This, | ||
| 18606 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 18607 | REFIID riid, | ||
| 18608 | _COM_Outptr_ void **ppCommandQueue); | ||
| 18609 | |||
| 18610 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 18611 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 18612 | ID3D12Device7 * This, | ||
| 18613 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 18614 | REFIID riid, | ||
| 18615 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 18616 | |||
| 18617 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 18618 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 18619 | ID3D12Device7 * This, | ||
| 18620 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 18621 | REFIID riid, | ||
| 18622 | _COM_Outptr_ void **ppPipelineState); | ||
| 18623 | |||
| 18624 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 18625 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 18626 | ID3D12Device7 * This, | ||
| 18627 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 18628 | REFIID riid, | ||
| 18629 | _COM_Outptr_ void **ppPipelineState); | ||
| 18630 | |||
| 18631 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 18632 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 18633 | ID3D12Device7 * This, | ||
| 18634 | _In_ UINT nodeMask, | ||
| 18635 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 18636 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 18637 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 18638 | REFIID riid, | ||
| 18639 | _COM_Outptr_ void **ppCommandList); | ||
| 18640 | |||
| 18641 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 18642 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 18643 | ID3D12Device7 * This, | ||
| 18644 | D3D12_FEATURE Feature, | ||
| 18645 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 18646 | UINT FeatureSupportDataSize); | ||
| 18647 | |||
| 18648 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 18649 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 18650 | ID3D12Device7 * This, | ||
| 18651 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 18652 | REFIID riid, | ||
| 18653 | _COM_Outptr_ void **ppvHeap); | ||
| 18654 | |||
| 18655 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 18656 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 18657 | ID3D12Device7 * This, | ||
| 18658 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 18659 | |||
| 18660 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 18661 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 18662 | ID3D12Device7 * This, | ||
| 18663 | _In_ UINT nodeMask, | ||
| 18664 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 18665 | _In_ SIZE_T blobLengthInBytes, | ||
| 18666 | REFIID riid, | ||
| 18667 | _COM_Outptr_ void **ppvRootSignature); | ||
| 18668 | |||
| 18669 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 18670 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 18671 | ID3D12Device7 * This, | ||
| 18672 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 18673 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 18674 | |||
| 18675 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 18676 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 18677 | ID3D12Device7 * This, | ||
| 18678 | _In_opt_ ID3D12Resource *pResource, | ||
| 18679 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 18680 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 18681 | |||
| 18682 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 18683 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 18684 | ID3D12Device7 * This, | ||
| 18685 | _In_opt_ ID3D12Resource *pResource, | ||
| 18686 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 18687 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 18688 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 18689 | |||
| 18690 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 18691 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 18692 | ID3D12Device7 * This, | ||
| 18693 | _In_opt_ ID3D12Resource *pResource, | ||
| 18694 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 18695 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 18696 | |||
| 18697 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 18698 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 18699 | ID3D12Device7 * This, | ||
| 18700 | _In_opt_ ID3D12Resource *pResource, | ||
| 18701 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 18702 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 18703 | |||
| 18704 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 18705 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 18706 | ID3D12Device7 * This, | ||
| 18707 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 18708 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 18709 | |||
| 18710 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 18711 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 18712 | ID3D12Device7 * This, | ||
| 18713 | _In_ UINT NumDestDescriptorRanges, | ||
| 18714 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 18715 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 18716 | _In_ UINT NumSrcDescriptorRanges, | ||
| 18717 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 18718 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 18719 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 18720 | |||
| 18721 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 18722 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 18723 | ID3D12Device7 * This, | ||
| 18724 | _In_ UINT NumDescriptors, | ||
| 18725 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 18726 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 18727 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 18728 | |||
| 18729 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 18730 | #if !defined(_WIN32) | ||
| 18731 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 18732 | ID3D12Device7 * This, | ||
| 18733 | _In_ UINT visibleMask, | ||
| 18734 | _In_ UINT numResourceDescs, | ||
| 18735 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 18736 | |||
| 18737 | #else | ||
| 18738 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 18739 | ID3D12Device7 * This, | ||
| 18740 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 18741 | _In_ UINT visibleMask, | ||
| 18742 | _In_ UINT numResourceDescs, | ||
| 18743 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 18744 | |||
| 18745 | #endif | ||
| 18746 | |||
| 18747 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 18748 | #if !defined(_WIN32) | ||
| 18749 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 18750 | ID3D12Device7 * This, | ||
| 18751 | _In_ UINT nodeMask, | ||
| 18752 | D3D12_HEAP_TYPE heapType); | ||
| 18753 | |||
| 18754 | #else | ||
| 18755 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 18756 | ID3D12Device7 * This, | ||
| 18757 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 18758 | _In_ UINT nodeMask, | ||
| 18759 | D3D12_HEAP_TYPE heapType); | ||
| 18760 | |||
| 18761 | #endif | ||
| 18762 | |||
| 18763 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 18764 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 18765 | ID3D12Device7 * This, | ||
| 18766 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 18767 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 18768 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 18769 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 18770 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 18771 | REFIID riidResource, | ||
| 18772 | _COM_Outptr_opt_ void **ppvResource); | ||
| 18773 | |||
| 18774 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 18775 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 18776 | ID3D12Device7 * This, | ||
| 18777 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 18778 | REFIID riid, | ||
| 18779 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 18780 | |||
| 18781 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 18782 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 18783 | ID3D12Device7 * This, | ||
| 18784 | _In_ ID3D12Heap *pHeap, | ||
| 18785 | UINT64 HeapOffset, | ||
| 18786 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 18787 | D3D12_RESOURCE_STATES InitialState, | ||
| 18788 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 18789 | REFIID riid, | ||
| 18790 | _COM_Outptr_opt_ void **ppvResource); | ||
| 18791 | |||
| 18792 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 18793 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 18794 | ID3D12Device7 * This, | ||
| 18795 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 18796 | D3D12_RESOURCE_STATES InitialState, | ||
| 18797 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 18798 | REFIID riid, | ||
| 18799 | _COM_Outptr_opt_ void **ppvResource); | ||
| 18800 | |||
| 18801 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 18802 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 18803 | ID3D12Device7 * This, | ||
| 18804 | _In_ ID3D12DeviceChild *pObject, | ||
| 18805 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 18806 | DWORD Access, | ||
| 18807 | _In_opt_ LPCWSTR Name, | ||
| 18808 | _Out_ HANDLE *pHandle); | ||
| 18809 | |||
| 18810 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 18811 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 18812 | ID3D12Device7 * This, | ||
| 18813 | _In_ HANDLE NTHandle, | ||
| 18814 | REFIID riid, | ||
| 18815 | _COM_Outptr_opt_ void **ppvObj); | ||
| 18816 | |||
| 18817 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 18818 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 18819 | ID3D12Device7 * This, | ||
| 18820 | _In_ LPCWSTR Name, | ||
| 18821 | DWORD Access, | ||
| 18822 | /* [annotation][out] */ | ||
| 18823 | _Out_ HANDLE *pNTHandle); | ||
| 18824 | |||
| 18825 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 18826 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 18827 | ID3D12Device7 * This, | ||
| 18828 | UINT NumObjects, | ||
| 18829 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 18830 | |||
| 18831 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 18832 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 18833 | ID3D12Device7 * This, | ||
| 18834 | UINT NumObjects, | ||
| 18835 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 18836 | |||
| 18837 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 18838 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 18839 | ID3D12Device7 * This, | ||
| 18840 | UINT64 InitialValue, | ||
| 18841 | D3D12_FENCE_FLAGS Flags, | ||
| 18842 | REFIID riid, | ||
| 18843 | _COM_Outptr_ void **ppFence); | ||
| 18844 | |||
| 18845 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 18846 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 18847 | ID3D12Device7 * This); | ||
| 18848 | |||
| 18849 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 18850 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 18851 | ID3D12Device7 * This, | ||
| 18852 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 18853 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 18854 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 18855 | UINT64 BaseOffset, | ||
| 18856 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 18857 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 18858 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 18859 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 18860 | |||
| 18861 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 18862 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 18863 | ID3D12Device7 * This, | ||
| 18864 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 18865 | REFIID riid, | ||
| 18866 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 18867 | |||
| 18868 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 18869 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 18870 | ID3D12Device7 * This, | ||
| 18871 | BOOL Enable); | ||
| 18872 | |||
| 18873 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 18874 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 18875 | ID3D12Device7 * This, | ||
| 18876 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 18877 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 18878 | REFIID riid, | ||
| 18879 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 18880 | |||
| 18881 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 18882 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 18883 | ID3D12Device7 * This, | ||
| 18884 | _In_ ID3D12Resource *pTiledResource, | ||
| 18885 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 18886 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 18887 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 18888 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 18889 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 18890 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 18891 | |||
| 18892 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 18893 | #if !defined(_WIN32) | ||
| 18894 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 18895 | ID3D12Device7 * This); | ||
| 18896 | |||
| 18897 | #else | ||
| 18898 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 18899 | ID3D12Device7 * This, | ||
| 18900 | LUID * RetVal); | ||
| 18901 | |||
| 18902 | #endif | ||
| 18903 | |||
| 18904 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 18905 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 18906 | ID3D12Device7 * This, | ||
| 18907 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 18908 | SIZE_T BlobLength, | ||
| 18909 | REFIID riid, | ||
| 18910 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 18911 | |||
| 18912 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 18913 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 18914 | ID3D12Device7 * This, | ||
| 18915 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 18916 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 18917 | UINT NumFences, | ||
| 18918 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 18919 | HANDLE hEvent); | ||
| 18920 | |||
| 18921 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 18922 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 18923 | ID3D12Device7 * This, | ||
| 18924 | UINT NumObjects, | ||
| 18925 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 18926 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 18927 | |||
| 18928 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 18929 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 18930 | ID3D12Device7 * This, | ||
| 18931 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 18932 | REFIID riid, | ||
| 18933 | _COM_Outptr_ void **ppPipelineState); | ||
| 18934 | |||
| 18935 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 18936 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 18937 | ID3D12Device7 * This, | ||
| 18938 | _In_ const void *pAddress, | ||
| 18939 | REFIID riid, | ||
| 18940 | _COM_Outptr_ void **ppvHeap); | ||
| 18941 | |||
| 18942 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 18943 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 18944 | ID3D12Device7 * This, | ||
| 18945 | _In_ HANDLE hFileMapping, | ||
| 18946 | REFIID riid, | ||
| 18947 | _COM_Outptr_ void **ppvHeap); | ||
| 18948 | |||
| 18949 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 18950 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 18951 | ID3D12Device7 * This, | ||
| 18952 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 18953 | UINT NumObjects, | ||
| 18954 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 18955 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 18956 | UINT64 FenceValueToSignal); | ||
| 18957 | |||
| 18958 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 18959 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 18960 | ID3D12Device7 * This, | ||
| 18961 | _In_ UINT nodeMask, | ||
| 18962 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 18963 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 18964 | REFIID riid, | ||
| 18965 | _COM_Outptr_ void **ppCommandList); | ||
| 18966 | |||
| 18967 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 18968 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 18969 | ID3D12Device7 * This, | ||
| 18970 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 18971 | _In_ REFIID riid, | ||
| 18972 | _COM_Outptr_ void **ppSession); | ||
| 18973 | |||
| 18974 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 18975 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 18976 | ID3D12Device7 * This, | ||
| 18977 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 18978 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 18979 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 18980 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 18981 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 18982 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 18983 | REFIID riidResource, | ||
| 18984 | _COM_Outptr_opt_ void **ppvResource); | ||
| 18985 | |||
| 18986 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 18987 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 18988 | ID3D12Device7 * This, | ||
| 18989 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 18990 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 18991 | REFIID riid, | ||
| 18992 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 18993 | |||
| 18994 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 18995 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 18996 | ID3D12Device7 * This, | ||
| 18997 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 18998 | D3D12_RESOURCE_STATES InitialState, | ||
| 18999 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 19000 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 19001 | REFIID riid, | ||
| 19002 | _COM_Outptr_opt_ void **ppvResource); | ||
| 19003 | |||
| 19004 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 19005 | #if !defined(_WIN32) | ||
| 19006 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 19007 | ID3D12Device7 * This, | ||
| 19008 | UINT visibleMask, | ||
| 19009 | UINT numResourceDescs, | ||
| 19010 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 19011 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 19012 | |||
| 19013 | #else | ||
| 19014 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 19015 | ID3D12Device7 * This, | ||
| 19016 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 19017 | UINT visibleMask, | ||
| 19018 | UINT numResourceDescs, | ||
| 19019 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 19020 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 19021 | |||
| 19022 | #endif | ||
| 19023 | |||
| 19024 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 19025 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 19026 | ID3D12Device7 * This, | ||
| 19027 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 19028 | REFIID riid, | ||
| 19029 | _COM_Outptr_ void **ppvTracker); | ||
| 19030 | |||
| 19031 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 19032 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 19033 | ID3D12Device7 * This); | ||
| 19034 | |||
| 19035 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 19036 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 19037 | ID3D12Device7 * This, | ||
| 19038 | _Inout_ UINT *pNumMetaCommands, | ||
| 19039 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 19040 | |||
| 19041 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 19042 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 19043 | ID3D12Device7 * This, | ||
| 19044 | _In_ REFGUID CommandId, | ||
| 19045 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 19046 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 19047 | _Inout_ UINT *pParameterCount, | ||
| 19048 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 19049 | |||
| 19050 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 19051 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 19052 | ID3D12Device7 * This, | ||
| 19053 | _In_ REFGUID CommandId, | ||
| 19054 | _In_ UINT NodeMask, | ||
| 19055 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 19056 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 19057 | REFIID riid, | ||
| 19058 | _COM_Outptr_ void **ppMetaCommand); | ||
| 19059 | |||
| 19060 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 19061 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 19062 | ID3D12Device7 * This, | ||
| 19063 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 19064 | REFIID riid, | ||
| 19065 | _COM_Outptr_ void **ppStateObject); | ||
| 19066 | |||
| 19067 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 19068 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 19069 | ID3D12Device7 * This, | ||
| 19070 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 19071 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 19072 | |||
| 19073 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 19074 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 19075 | ID3D12Device7 * This, | ||
| 19076 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 19077 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 19078 | |||
| 19079 | DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) | ||
| 19080 | HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( | ||
| 19081 | ID3D12Device7 * This, | ||
| 19082 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 19083 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 19084 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 19085 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired); | ||
| 19086 | |||
| 19087 | DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) | ||
| 19088 | HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( | ||
| 19089 | ID3D12Device7 * This, | ||
| 19090 | const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 19091 | ID3D12StateObject *pStateObjectToGrowFrom, | ||
| 19092 | REFIID riid, | ||
| 19093 | _COM_Outptr_ void **ppNewStateObject); | ||
| 19094 | |||
| 19095 | DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) | ||
| 19096 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( | ||
| 19097 | ID3D12Device7 * This, | ||
| 19098 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, | ||
| 19099 | _In_ REFIID riid, | ||
| 19100 | _COM_Outptr_ void **ppSession); | ||
| 19101 | |||
| 19102 | END_INTERFACE | ||
| 19103 | } ID3D12Device7Vtbl; | ||
| 19104 | |||
| 19105 | interface ID3D12Device7 | ||
| 19106 | { | ||
| 19107 | CONST_VTBL struct ID3D12Device7Vtbl *lpVtbl; | ||
| 19108 | }; | ||
| 19109 | |||
| 19110 | |||
| 19111 | |||
| 19112 | #ifdef COBJMACROS | ||
| 19113 | |||
| 19114 | |||
| 19115 | #define ID3D12Device7_QueryInterface(This,riid,ppvObject) \ | ||
| 19116 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 19117 | |||
| 19118 | #define ID3D12Device7_AddRef(This) \ | ||
| 19119 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 19120 | |||
| 19121 | #define ID3D12Device7_Release(This) \ | ||
| 19122 | ( (This)->lpVtbl -> Release(This) ) | ||
| 19123 | |||
| 19124 | |||
| 19125 | #define ID3D12Device7_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 19126 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 19127 | |||
| 19128 | #define ID3D12Device7_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 19129 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 19130 | |||
| 19131 | #define ID3D12Device7_SetPrivateDataInterface(This,guid,pData) \ | ||
| 19132 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 19133 | |||
| 19134 | #define ID3D12Device7_SetName(This,Name) \ | ||
| 19135 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 19136 | |||
| 19137 | |||
| 19138 | #define ID3D12Device7_GetNodeCount(This) \ | ||
| 19139 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 19140 | |||
| 19141 | #define ID3D12Device7_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 19142 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 19143 | |||
| 19144 | #define ID3D12Device7_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 19145 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 19146 | |||
| 19147 | #define ID3D12Device7_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 19148 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 19149 | |||
| 19150 | #define ID3D12Device7_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 19151 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 19152 | |||
| 19153 | #define ID3D12Device7_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 19154 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 19155 | |||
| 19156 | #define ID3D12Device7_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 19157 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 19158 | |||
| 19159 | #define ID3D12Device7_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 19160 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 19161 | |||
| 19162 | #define ID3D12Device7_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 19163 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 19164 | |||
| 19165 | #define ID3D12Device7_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 19166 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 19167 | |||
| 19168 | #define ID3D12Device7_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 19169 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 19170 | |||
| 19171 | #define ID3D12Device7_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 19172 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 19173 | |||
| 19174 | #define ID3D12Device7_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 19175 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 19176 | |||
| 19177 | #define ID3D12Device7_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 19178 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 19179 | |||
| 19180 | #define ID3D12Device7_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 19181 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 19182 | |||
| 19183 | #define ID3D12Device7_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 19184 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 19185 | |||
| 19186 | #define ID3D12Device7_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 19187 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 19188 | |||
| 19189 | #define ID3D12Device7_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 19190 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 19191 | #if !defined(_WIN32) | ||
| 19192 | |||
| 19193 | #define ID3D12Device7_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 19194 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 19195 | #else | ||
| 19196 | #define ID3D12Device7_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 19197 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 19198 | #endif | ||
| 19199 | #if !defined(_WIN32) | ||
| 19200 | |||
| 19201 | #define ID3D12Device7_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 19202 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 19203 | #else | ||
| 19204 | #define ID3D12Device7_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 19205 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 19206 | #endif | ||
| 19207 | |||
| 19208 | #define ID3D12Device7_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 19209 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 19210 | |||
| 19211 | #define ID3D12Device7_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 19212 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 19213 | |||
| 19214 | #define ID3D12Device7_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 19215 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 19216 | |||
| 19217 | #define ID3D12Device7_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 19218 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 19219 | |||
| 19220 | #define ID3D12Device7_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 19221 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 19222 | |||
| 19223 | #define ID3D12Device7_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 19224 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 19225 | |||
| 19226 | #define ID3D12Device7_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 19227 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 19228 | |||
| 19229 | #define ID3D12Device7_MakeResident(This,NumObjects,ppObjects) \ | ||
| 19230 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 19231 | |||
| 19232 | #define ID3D12Device7_Evict(This,NumObjects,ppObjects) \ | ||
| 19233 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 19234 | |||
| 19235 | #define ID3D12Device7_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 19236 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 19237 | |||
| 19238 | #define ID3D12Device7_GetDeviceRemovedReason(This) \ | ||
| 19239 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 19240 | |||
| 19241 | #define ID3D12Device7_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 19242 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 19243 | |||
| 19244 | #define ID3D12Device7_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 19245 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 19246 | |||
| 19247 | #define ID3D12Device7_SetStablePowerState(This,Enable) \ | ||
| 19248 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 19249 | |||
| 19250 | #define ID3D12Device7_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 19251 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 19252 | |||
| 19253 | #define ID3D12Device7_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 19254 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 19255 | #if !defined(_WIN32) | ||
| 19256 | |||
| 19257 | #define ID3D12Device7_GetAdapterLuid(This) \ | ||
| 19258 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 19259 | #else | ||
| 19260 | #define ID3D12Device7_GetAdapterLuid(This,RetVal) \ | ||
| 19261 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 19262 | #endif | ||
| 19263 | |||
| 19264 | |||
| 19265 | #define ID3D12Device7_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 19266 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 19267 | |||
| 19268 | #define ID3D12Device7_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 19269 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 19270 | |||
| 19271 | #define ID3D12Device7_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 19272 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 19273 | |||
| 19274 | |||
| 19275 | #define ID3D12Device7_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 19276 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 19277 | |||
| 19278 | |||
| 19279 | #define ID3D12Device7_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 19280 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 19281 | |||
| 19282 | #define ID3D12Device7_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 19283 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 19284 | |||
| 19285 | #define ID3D12Device7_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 19286 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 19287 | |||
| 19288 | |||
| 19289 | #define ID3D12Device7_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 19290 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 19291 | |||
| 19292 | #define ID3D12Device7_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 19293 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 19294 | |||
| 19295 | #define ID3D12Device7_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 19296 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 19297 | |||
| 19298 | #define ID3D12Device7_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 19299 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 19300 | |||
| 19301 | #define ID3D12Device7_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 19302 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 19303 | #if !defined(_WIN32) | ||
| 19304 | |||
| 19305 | #define ID3D12Device7_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 19306 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 19307 | #else | ||
| 19308 | #define ID3D12Device7_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 19309 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 19310 | #endif | ||
| 19311 | |||
| 19312 | |||
| 19313 | #define ID3D12Device7_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 19314 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 19315 | |||
| 19316 | #define ID3D12Device7_RemoveDevice(This) \ | ||
| 19317 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 19318 | |||
| 19319 | #define ID3D12Device7_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 19320 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 19321 | |||
| 19322 | #define ID3D12Device7_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 19323 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 19324 | |||
| 19325 | #define ID3D12Device7_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 19326 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 19327 | |||
| 19328 | #define ID3D12Device7_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 19329 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 19330 | |||
| 19331 | #define ID3D12Device7_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 19332 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 19333 | |||
| 19334 | #define ID3D12Device7_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 19335 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 19336 | |||
| 19337 | |||
| 19338 | #define ID3D12Device7_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ | ||
| 19339 | ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) | ||
| 19340 | |||
| 19341 | |||
| 19342 | #define ID3D12Device7_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ | ||
| 19343 | ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) | ||
| 19344 | |||
| 19345 | #define ID3D12Device7_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ | ||
| 19346 | ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) | ||
| 19347 | |||
| 19348 | #endif /* COBJMACROS */ | ||
| 19349 | |||
| 19350 | |||
| 19351 | #endif /* C style interface */ | ||
| 19352 | |||
| 19353 | |||
| 19354 | |||
| 19355 | |||
| 19356 | #endif /* __ID3D12Device7_INTERFACE_DEFINED__ */ | ||
| 19357 | |||
| 19358 | |||
| 19359 | #ifndef __ID3D12Device8_INTERFACE_DEFINED__ | ||
| 19360 | #define __ID3D12Device8_INTERFACE_DEFINED__ | ||
| 19361 | |||
| 19362 | /* interface ID3D12Device8 */ | ||
| 19363 | /* [unique][local][object][uuid] */ | ||
| 19364 | |||
| 19365 | |||
| 19366 | EXTERN_C const IID IID_ID3D12Device8; | ||
| 19367 | |||
| 19368 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 19369 | |||
| 19370 | MIDL_INTERFACE("9218E6BB-F944-4F7E-A75C-B1B2C7B701F3") | ||
| 19371 | ID3D12Device8 : public ID3D12Device7 | ||
| 19372 | { | ||
| 19373 | public: | ||
| 19374 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 19375 | virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo2( | ||
| 19376 | UINT visibleMask, | ||
| 19377 | UINT numResourceDescs, | ||
| 19378 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 19379 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; | ||
| 19380 | #else | ||
| 19381 | virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo2( | ||
| 19382 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 19383 | UINT visibleMask, | ||
| 19384 | UINT numResourceDescs, | ||
| 19385 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 19386 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; | ||
| 19387 | #endif | ||
| 19388 | |||
| 19389 | virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource2( | ||
| 19390 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 19391 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 19392 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 19393 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 19394 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 19395 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 19396 | REFIID riidResource, | ||
| 19397 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 19398 | |||
| 19399 | virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource1( | ||
| 19400 | _In_ ID3D12Heap *pHeap, | ||
| 19401 | UINT64 HeapOffset, | ||
| 19402 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 19403 | D3D12_RESOURCE_STATES InitialState, | ||
| 19404 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 19405 | REFIID riid, | ||
| 19406 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 19407 | |||
| 19408 | virtual void STDMETHODCALLTYPE CreateSamplerFeedbackUnorderedAccessView( | ||
| 19409 | _In_opt_ ID3D12Resource *pTargetedResource, | ||
| 19410 | _In_opt_ ID3D12Resource *pFeedbackResource, | ||
| 19411 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; | ||
| 19412 | |||
| 19413 | virtual void STDMETHODCALLTYPE GetCopyableFootprints1( | ||
| 19414 | _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, | ||
| 19415 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 19416 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 19417 | UINT64 BaseOffset, | ||
| 19418 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 19419 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 19420 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 19421 | _Out_opt_ UINT64 *pTotalBytes) = 0; | ||
| 19422 | |||
| 19423 | }; | ||
| 19424 | |||
| 19425 | |||
| 19426 | #else /* C style interface */ | ||
| 19427 | |||
| 19428 | typedef struct ID3D12Device8Vtbl | ||
| 19429 | { | ||
| 19430 | BEGIN_INTERFACE | ||
| 19431 | |||
| 19432 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 19433 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 19434 | ID3D12Device8 * This, | ||
| 19435 | REFIID riid, | ||
| 19436 | _COM_Outptr_ void **ppvObject); | ||
| 19437 | |||
| 19438 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 19439 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 19440 | ID3D12Device8 * This); | ||
| 19441 | |||
| 19442 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 19443 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 19444 | ID3D12Device8 * This); | ||
| 19445 | |||
| 19446 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 19447 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 19448 | ID3D12Device8 * This, | ||
| 19449 | _In_ REFGUID guid, | ||
| 19450 | _Inout_ UINT *pDataSize, | ||
| 19451 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 19452 | |||
| 19453 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 19454 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 19455 | ID3D12Device8 * This, | ||
| 19456 | _In_ REFGUID guid, | ||
| 19457 | _In_ UINT DataSize, | ||
| 19458 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 19459 | |||
| 19460 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 19461 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 19462 | ID3D12Device8 * This, | ||
| 19463 | _In_ REFGUID guid, | ||
| 19464 | _In_opt_ const IUnknown *pData); | ||
| 19465 | |||
| 19466 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 19467 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 19468 | ID3D12Device8 * This, | ||
| 19469 | _In_z_ LPCWSTR Name); | ||
| 19470 | |||
| 19471 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 19472 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 19473 | ID3D12Device8 * This); | ||
| 19474 | |||
| 19475 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 19476 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 19477 | ID3D12Device8 * This, | ||
| 19478 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 19479 | REFIID riid, | ||
| 19480 | _COM_Outptr_ void **ppCommandQueue); | ||
| 19481 | |||
| 19482 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 19483 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 19484 | ID3D12Device8 * This, | ||
| 19485 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 19486 | REFIID riid, | ||
| 19487 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 19488 | |||
| 19489 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 19490 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 19491 | ID3D12Device8 * This, | ||
| 19492 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 19493 | REFIID riid, | ||
| 19494 | _COM_Outptr_ void **ppPipelineState); | ||
| 19495 | |||
| 19496 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 19497 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 19498 | ID3D12Device8 * This, | ||
| 19499 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 19500 | REFIID riid, | ||
| 19501 | _COM_Outptr_ void **ppPipelineState); | ||
| 19502 | |||
| 19503 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 19504 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 19505 | ID3D12Device8 * This, | ||
| 19506 | _In_ UINT nodeMask, | ||
| 19507 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 19508 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 19509 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 19510 | REFIID riid, | ||
| 19511 | _COM_Outptr_ void **ppCommandList); | ||
| 19512 | |||
| 19513 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 19514 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 19515 | ID3D12Device8 * This, | ||
| 19516 | D3D12_FEATURE Feature, | ||
| 19517 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 19518 | UINT FeatureSupportDataSize); | ||
| 19519 | |||
| 19520 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 19521 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 19522 | ID3D12Device8 * This, | ||
| 19523 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 19524 | REFIID riid, | ||
| 19525 | _COM_Outptr_ void **ppvHeap); | ||
| 19526 | |||
| 19527 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 19528 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 19529 | ID3D12Device8 * This, | ||
| 19530 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 19531 | |||
| 19532 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 19533 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 19534 | ID3D12Device8 * This, | ||
| 19535 | _In_ UINT nodeMask, | ||
| 19536 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 19537 | _In_ SIZE_T blobLengthInBytes, | ||
| 19538 | REFIID riid, | ||
| 19539 | _COM_Outptr_ void **ppvRootSignature); | ||
| 19540 | |||
| 19541 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 19542 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 19543 | ID3D12Device8 * This, | ||
| 19544 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 19545 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 19546 | |||
| 19547 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 19548 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 19549 | ID3D12Device8 * This, | ||
| 19550 | _In_opt_ ID3D12Resource *pResource, | ||
| 19551 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 19552 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 19553 | |||
| 19554 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 19555 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 19556 | ID3D12Device8 * This, | ||
| 19557 | _In_opt_ ID3D12Resource *pResource, | ||
| 19558 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 19559 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 19560 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 19561 | |||
| 19562 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 19563 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 19564 | ID3D12Device8 * This, | ||
| 19565 | _In_opt_ ID3D12Resource *pResource, | ||
| 19566 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 19567 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 19568 | |||
| 19569 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 19570 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 19571 | ID3D12Device8 * This, | ||
| 19572 | _In_opt_ ID3D12Resource *pResource, | ||
| 19573 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 19574 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 19575 | |||
| 19576 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 19577 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 19578 | ID3D12Device8 * This, | ||
| 19579 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 19580 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 19581 | |||
| 19582 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 19583 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 19584 | ID3D12Device8 * This, | ||
| 19585 | _In_ UINT NumDestDescriptorRanges, | ||
| 19586 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 19587 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 19588 | _In_ UINT NumSrcDescriptorRanges, | ||
| 19589 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 19590 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 19591 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 19592 | |||
| 19593 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 19594 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 19595 | ID3D12Device8 * This, | ||
| 19596 | _In_ UINT NumDescriptors, | ||
| 19597 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 19598 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 19599 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 19600 | |||
| 19601 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 19602 | #if !defined(_WIN32) | ||
| 19603 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 19604 | ID3D12Device8 * This, | ||
| 19605 | _In_ UINT visibleMask, | ||
| 19606 | _In_ UINT numResourceDescs, | ||
| 19607 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 19608 | |||
| 19609 | #else | ||
| 19610 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 19611 | ID3D12Device8 * This, | ||
| 19612 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 19613 | _In_ UINT visibleMask, | ||
| 19614 | _In_ UINT numResourceDescs, | ||
| 19615 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 19616 | |||
| 19617 | #endif | ||
| 19618 | |||
| 19619 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 19620 | #if !defined(_WIN32) | ||
| 19621 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 19622 | ID3D12Device8 * This, | ||
| 19623 | _In_ UINT nodeMask, | ||
| 19624 | D3D12_HEAP_TYPE heapType); | ||
| 19625 | |||
| 19626 | #else | ||
| 19627 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 19628 | ID3D12Device8 * This, | ||
| 19629 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 19630 | _In_ UINT nodeMask, | ||
| 19631 | D3D12_HEAP_TYPE heapType); | ||
| 19632 | |||
| 19633 | #endif | ||
| 19634 | |||
| 19635 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 19636 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 19637 | ID3D12Device8 * This, | ||
| 19638 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 19639 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 19640 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 19641 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 19642 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 19643 | REFIID riidResource, | ||
| 19644 | _COM_Outptr_opt_ void **ppvResource); | ||
| 19645 | |||
| 19646 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 19647 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 19648 | ID3D12Device8 * This, | ||
| 19649 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 19650 | REFIID riid, | ||
| 19651 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 19652 | |||
| 19653 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 19654 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 19655 | ID3D12Device8 * This, | ||
| 19656 | _In_ ID3D12Heap *pHeap, | ||
| 19657 | UINT64 HeapOffset, | ||
| 19658 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 19659 | D3D12_RESOURCE_STATES InitialState, | ||
| 19660 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 19661 | REFIID riid, | ||
| 19662 | _COM_Outptr_opt_ void **ppvResource); | ||
| 19663 | |||
| 19664 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 19665 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 19666 | ID3D12Device8 * This, | ||
| 19667 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 19668 | D3D12_RESOURCE_STATES InitialState, | ||
| 19669 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 19670 | REFIID riid, | ||
| 19671 | _COM_Outptr_opt_ void **ppvResource); | ||
| 19672 | |||
| 19673 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 19674 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 19675 | ID3D12Device8 * This, | ||
| 19676 | _In_ ID3D12DeviceChild *pObject, | ||
| 19677 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 19678 | DWORD Access, | ||
| 19679 | _In_opt_ LPCWSTR Name, | ||
| 19680 | _Out_ HANDLE *pHandle); | ||
| 19681 | |||
| 19682 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 19683 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 19684 | ID3D12Device8 * This, | ||
| 19685 | _In_ HANDLE NTHandle, | ||
| 19686 | REFIID riid, | ||
| 19687 | _COM_Outptr_opt_ void **ppvObj); | ||
| 19688 | |||
| 19689 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 19690 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 19691 | ID3D12Device8 * This, | ||
| 19692 | _In_ LPCWSTR Name, | ||
| 19693 | DWORD Access, | ||
| 19694 | /* [annotation][out] */ | ||
| 19695 | _Out_ HANDLE *pNTHandle); | ||
| 19696 | |||
| 19697 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 19698 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 19699 | ID3D12Device8 * This, | ||
| 19700 | UINT NumObjects, | ||
| 19701 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 19702 | |||
| 19703 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 19704 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 19705 | ID3D12Device8 * This, | ||
| 19706 | UINT NumObjects, | ||
| 19707 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 19708 | |||
| 19709 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 19710 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 19711 | ID3D12Device8 * This, | ||
| 19712 | UINT64 InitialValue, | ||
| 19713 | D3D12_FENCE_FLAGS Flags, | ||
| 19714 | REFIID riid, | ||
| 19715 | _COM_Outptr_ void **ppFence); | ||
| 19716 | |||
| 19717 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 19718 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 19719 | ID3D12Device8 * This); | ||
| 19720 | |||
| 19721 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 19722 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 19723 | ID3D12Device8 * This, | ||
| 19724 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 19725 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 19726 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 19727 | UINT64 BaseOffset, | ||
| 19728 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 19729 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 19730 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 19731 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 19732 | |||
| 19733 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 19734 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 19735 | ID3D12Device8 * This, | ||
| 19736 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 19737 | REFIID riid, | ||
| 19738 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 19739 | |||
| 19740 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 19741 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 19742 | ID3D12Device8 * This, | ||
| 19743 | BOOL Enable); | ||
| 19744 | |||
| 19745 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 19746 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 19747 | ID3D12Device8 * This, | ||
| 19748 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 19749 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 19750 | REFIID riid, | ||
| 19751 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 19752 | |||
| 19753 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 19754 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 19755 | ID3D12Device8 * This, | ||
| 19756 | _In_ ID3D12Resource *pTiledResource, | ||
| 19757 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 19758 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 19759 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 19760 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 19761 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 19762 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 19763 | |||
| 19764 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 19765 | #if !defined(_WIN32) | ||
| 19766 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 19767 | ID3D12Device8 * This); | ||
| 19768 | |||
| 19769 | #else | ||
| 19770 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 19771 | ID3D12Device8 * This, | ||
| 19772 | LUID * RetVal); | ||
| 19773 | |||
| 19774 | #endif | ||
| 19775 | |||
| 19776 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 19777 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 19778 | ID3D12Device8 * This, | ||
| 19779 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 19780 | SIZE_T BlobLength, | ||
| 19781 | REFIID riid, | ||
| 19782 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 19783 | |||
| 19784 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 19785 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 19786 | ID3D12Device8 * This, | ||
| 19787 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 19788 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 19789 | UINT NumFences, | ||
| 19790 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 19791 | HANDLE hEvent); | ||
| 19792 | |||
| 19793 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 19794 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 19795 | ID3D12Device8 * This, | ||
| 19796 | UINT NumObjects, | ||
| 19797 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 19798 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 19799 | |||
| 19800 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 19801 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 19802 | ID3D12Device8 * This, | ||
| 19803 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 19804 | REFIID riid, | ||
| 19805 | _COM_Outptr_ void **ppPipelineState); | ||
| 19806 | |||
| 19807 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 19808 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 19809 | ID3D12Device8 * This, | ||
| 19810 | _In_ const void *pAddress, | ||
| 19811 | REFIID riid, | ||
| 19812 | _COM_Outptr_ void **ppvHeap); | ||
| 19813 | |||
| 19814 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 19815 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 19816 | ID3D12Device8 * This, | ||
| 19817 | _In_ HANDLE hFileMapping, | ||
| 19818 | REFIID riid, | ||
| 19819 | _COM_Outptr_ void **ppvHeap); | ||
| 19820 | |||
| 19821 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 19822 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 19823 | ID3D12Device8 * This, | ||
| 19824 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 19825 | UINT NumObjects, | ||
| 19826 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 19827 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 19828 | UINT64 FenceValueToSignal); | ||
| 19829 | |||
| 19830 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 19831 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 19832 | ID3D12Device8 * This, | ||
| 19833 | _In_ UINT nodeMask, | ||
| 19834 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 19835 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 19836 | REFIID riid, | ||
| 19837 | _COM_Outptr_ void **ppCommandList); | ||
| 19838 | |||
| 19839 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 19840 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 19841 | ID3D12Device8 * This, | ||
| 19842 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 19843 | _In_ REFIID riid, | ||
| 19844 | _COM_Outptr_ void **ppSession); | ||
| 19845 | |||
| 19846 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 19847 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 19848 | ID3D12Device8 * This, | ||
| 19849 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 19850 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 19851 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 19852 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 19853 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 19854 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 19855 | REFIID riidResource, | ||
| 19856 | _COM_Outptr_opt_ void **ppvResource); | ||
| 19857 | |||
| 19858 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 19859 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 19860 | ID3D12Device8 * This, | ||
| 19861 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 19862 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 19863 | REFIID riid, | ||
| 19864 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 19865 | |||
| 19866 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 19867 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 19868 | ID3D12Device8 * This, | ||
| 19869 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 19870 | D3D12_RESOURCE_STATES InitialState, | ||
| 19871 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 19872 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 19873 | REFIID riid, | ||
| 19874 | _COM_Outptr_opt_ void **ppvResource); | ||
| 19875 | |||
| 19876 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 19877 | #if !defined(_WIN32) | ||
| 19878 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 19879 | ID3D12Device8 * This, | ||
| 19880 | UINT visibleMask, | ||
| 19881 | UINT numResourceDescs, | ||
| 19882 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 19883 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 19884 | |||
| 19885 | #else | ||
| 19886 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 19887 | ID3D12Device8 * This, | ||
| 19888 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 19889 | UINT visibleMask, | ||
| 19890 | UINT numResourceDescs, | ||
| 19891 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 19892 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 19893 | |||
| 19894 | #endif | ||
| 19895 | |||
| 19896 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 19897 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 19898 | ID3D12Device8 * This, | ||
| 19899 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 19900 | REFIID riid, | ||
| 19901 | _COM_Outptr_ void **ppvTracker); | ||
| 19902 | |||
| 19903 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 19904 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 19905 | ID3D12Device8 * This); | ||
| 19906 | |||
| 19907 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 19908 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 19909 | ID3D12Device8 * This, | ||
| 19910 | _Inout_ UINT *pNumMetaCommands, | ||
| 19911 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 19912 | |||
| 19913 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 19914 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 19915 | ID3D12Device8 * This, | ||
| 19916 | _In_ REFGUID CommandId, | ||
| 19917 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 19918 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 19919 | _Inout_ UINT *pParameterCount, | ||
| 19920 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 19921 | |||
| 19922 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 19923 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 19924 | ID3D12Device8 * This, | ||
| 19925 | _In_ REFGUID CommandId, | ||
| 19926 | _In_ UINT NodeMask, | ||
| 19927 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 19928 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 19929 | REFIID riid, | ||
| 19930 | _COM_Outptr_ void **ppMetaCommand); | ||
| 19931 | |||
| 19932 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 19933 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 19934 | ID3D12Device8 * This, | ||
| 19935 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 19936 | REFIID riid, | ||
| 19937 | _COM_Outptr_ void **ppStateObject); | ||
| 19938 | |||
| 19939 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 19940 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 19941 | ID3D12Device8 * This, | ||
| 19942 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 19943 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 19944 | |||
| 19945 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 19946 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 19947 | ID3D12Device8 * This, | ||
| 19948 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 19949 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 19950 | |||
| 19951 | DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) | ||
| 19952 | HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( | ||
| 19953 | ID3D12Device8 * This, | ||
| 19954 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 19955 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 19956 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 19957 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired); | ||
| 19958 | |||
| 19959 | DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) | ||
| 19960 | HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( | ||
| 19961 | ID3D12Device8 * This, | ||
| 19962 | const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 19963 | ID3D12StateObject *pStateObjectToGrowFrom, | ||
| 19964 | REFIID riid, | ||
| 19965 | _COM_Outptr_ void **ppNewStateObject); | ||
| 19966 | |||
| 19967 | DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) | ||
| 19968 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( | ||
| 19969 | ID3D12Device8 * This, | ||
| 19970 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, | ||
| 19971 | _In_ REFIID riid, | ||
| 19972 | _COM_Outptr_ void **ppSession); | ||
| 19973 | |||
| 19974 | DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) | ||
| 19975 | #if !defined(_WIN32) | ||
| 19976 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 19977 | ID3D12Device8 * This, | ||
| 19978 | UINT visibleMask, | ||
| 19979 | UINT numResourceDescs, | ||
| 19980 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 19981 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 19982 | |||
| 19983 | #else | ||
| 19984 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 19985 | ID3D12Device8 * This, | ||
| 19986 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 19987 | UINT visibleMask, | ||
| 19988 | UINT numResourceDescs, | ||
| 19989 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 19990 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 19991 | |||
| 19992 | #endif | ||
| 19993 | |||
| 19994 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) | ||
| 19995 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( | ||
| 19996 | ID3D12Device8 * This, | ||
| 19997 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 19998 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 19999 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 20000 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 20001 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 20002 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 20003 | REFIID riidResource, | ||
| 20004 | _COM_Outptr_opt_ void **ppvResource); | ||
| 20005 | |||
| 20006 | DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) | ||
| 20007 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( | ||
| 20008 | ID3D12Device8 * This, | ||
| 20009 | _In_ ID3D12Heap *pHeap, | ||
| 20010 | UINT64 HeapOffset, | ||
| 20011 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 20012 | D3D12_RESOURCE_STATES InitialState, | ||
| 20013 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 20014 | REFIID riid, | ||
| 20015 | _COM_Outptr_opt_ void **ppvResource); | ||
| 20016 | |||
| 20017 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) | ||
| 20018 | void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( | ||
| 20019 | ID3D12Device8 * This, | ||
| 20020 | _In_opt_ ID3D12Resource *pTargetedResource, | ||
| 20021 | _In_opt_ ID3D12Resource *pFeedbackResource, | ||
| 20022 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 20023 | |||
| 20024 | DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) | ||
| 20025 | void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( | ||
| 20026 | ID3D12Device8 * This, | ||
| 20027 | _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, | ||
| 20028 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 20029 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 20030 | UINT64 BaseOffset, | ||
| 20031 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 20032 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 20033 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 20034 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 20035 | |||
| 20036 | END_INTERFACE | ||
| 20037 | } ID3D12Device8Vtbl; | ||
| 20038 | |||
| 20039 | interface ID3D12Device8 | ||
| 20040 | { | ||
| 20041 | CONST_VTBL struct ID3D12Device8Vtbl *lpVtbl; | ||
| 20042 | }; | ||
| 20043 | |||
| 20044 | |||
| 20045 | |||
| 20046 | #ifdef COBJMACROS | ||
| 20047 | |||
| 20048 | |||
| 20049 | #define ID3D12Device8_QueryInterface(This,riid,ppvObject) \ | ||
| 20050 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 20051 | |||
| 20052 | #define ID3D12Device8_AddRef(This) \ | ||
| 20053 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 20054 | |||
| 20055 | #define ID3D12Device8_Release(This) \ | ||
| 20056 | ( (This)->lpVtbl -> Release(This) ) | ||
| 20057 | |||
| 20058 | |||
| 20059 | #define ID3D12Device8_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 20060 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 20061 | |||
| 20062 | #define ID3D12Device8_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 20063 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 20064 | |||
| 20065 | #define ID3D12Device8_SetPrivateDataInterface(This,guid,pData) \ | ||
| 20066 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 20067 | |||
| 20068 | #define ID3D12Device8_SetName(This,Name) \ | ||
| 20069 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 20070 | |||
| 20071 | |||
| 20072 | #define ID3D12Device8_GetNodeCount(This) \ | ||
| 20073 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 20074 | |||
| 20075 | #define ID3D12Device8_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 20076 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 20077 | |||
| 20078 | #define ID3D12Device8_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 20079 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 20080 | |||
| 20081 | #define ID3D12Device8_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 20082 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 20083 | |||
| 20084 | #define ID3D12Device8_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 20085 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 20086 | |||
| 20087 | #define ID3D12Device8_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 20088 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 20089 | |||
| 20090 | #define ID3D12Device8_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 20091 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 20092 | |||
| 20093 | #define ID3D12Device8_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 20094 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 20095 | |||
| 20096 | #define ID3D12Device8_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 20097 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 20098 | |||
| 20099 | #define ID3D12Device8_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 20100 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 20101 | |||
| 20102 | #define ID3D12Device8_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 20103 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 20104 | |||
| 20105 | #define ID3D12Device8_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 20106 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 20107 | |||
| 20108 | #define ID3D12Device8_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 20109 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 20110 | |||
| 20111 | #define ID3D12Device8_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 20112 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 20113 | |||
| 20114 | #define ID3D12Device8_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 20115 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 20116 | |||
| 20117 | #define ID3D12Device8_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 20118 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 20119 | |||
| 20120 | #define ID3D12Device8_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 20121 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 20122 | |||
| 20123 | #define ID3D12Device8_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 20124 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 20125 | #if !defined(_WIN32) | ||
| 20126 | |||
| 20127 | #define ID3D12Device8_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 20128 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 20129 | #else | ||
| 20130 | #define ID3D12Device8_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 20131 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 20132 | #endif | ||
| 20133 | #if !defined(_WIN32) | ||
| 20134 | |||
| 20135 | #define ID3D12Device8_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 20136 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 20137 | #else | ||
| 20138 | #define ID3D12Device8_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 20139 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 20140 | #endif | ||
| 20141 | |||
| 20142 | #define ID3D12Device8_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 20143 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 20144 | |||
| 20145 | #define ID3D12Device8_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 20146 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 20147 | |||
| 20148 | #define ID3D12Device8_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 20149 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 20150 | |||
| 20151 | #define ID3D12Device8_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 20152 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 20153 | |||
| 20154 | #define ID3D12Device8_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 20155 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 20156 | |||
| 20157 | #define ID3D12Device8_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 20158 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 20159 | |||
| 20160 | #define ID3D12Device8_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 20161 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 20162 | |||
| 20163 | #define ID3D12Device8_MakeResident(This,NumObjects,ppObjects) \ | ||
| 20164 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 20165 | |||
| 20166 | #define ID3D12Device8_Evict(This,NumObjects,ppObjects) \ | ||
| 20167 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 20168 | |||
| 20169 | #define ID3D12Device8_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 20170 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 20171 | |||
| 20172 | #define ID3D12Device8_GetDeviceRemovedReason(This) \ | ||
| 20173 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 20174 | |||
| 20175 | #define ID3D12Device8_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 20176 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 20177 | |||
| 20178 | #define ID3D12Device8_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 20179 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 20180 | |||
| 20181 | #define ID3D12Device8_SetStablePowerState(This,Enable) \ | ||
| 20182 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 20183 | |||
| 20184 | #define ID3D12Device8_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 20185 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 20186 | |||
| 20187 | #define ID3D12Device8_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 20188 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 20189 | #if !defined(_WIN32) | ||
| 20190 | |||
| 20191 | #define ID3D12Device8_GetAdapterLuid(This) \ | ||
| 20192 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 20193 | #else | ||
| 20194 | #define ID3D12Device8_GetAdapterLuid(This,RetVal) \ | ||
| 20195 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 20196 | #endif | ||
| 20197 | |||
| 20198 | |||
| 20199 | #define ID3D12Device8_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 20200 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 20201 | |||
| 20202 | #define ID3D12Device8_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 20203 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 20204 | |||
| 20205 | #define ID3D12Device8_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 20206 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 20207 | |||
| 20208 | |||
| 20209 | #define ID3D12Device8_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 20210 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 20211 | |||
| 20212 | |||
| 20213 | #define ID3D12Device8_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 20214 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 20215 | |||
| 20216 | #define ID3D12Device8_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 20217 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 20218 | |||
| 20219 | #define ID3D12Device8_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 20220 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 20221 | |||
| 20222 | |||
| 20223 | #define ID3D12Device8_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 20224 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 20225 | |||
| 20226 | #define ID3D12Device8_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 20227 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 20228 | |||
| 20229 | #define ID3D12Device8_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 20230 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 20231 | |||
| 20232 | #define ID3D12Device8_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 20233 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 20234 | |||
| 20235 | #define ID3D12Device8_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 20236 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 20237 | #if !defined(_WIN32) | ||
| 20238 | |||
| 20239 | #define ID3D12Device8_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 20240 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 20241 | #else | ||
| 20242 | #define ID3D12Device8_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 20243 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 20244 | #endif | ||
| 20245 | |||
| 20246 | |||
| 20247 | #define ID3D12Device8_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 20248 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 20249 | |||
| 20250 | #define ID3D12Device8_RemoveDevice(This) \ | ||
| 20251 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 20252 | |||
| 20253 | #define ID3D12Device8_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 20254 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 20255 | |||
| 20256 | #define ID3D12Device8_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 20257 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 20258 | |||
| 20259 | #define ID3D12Device8_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 20260 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 20261 | |||
| 20262 | #define ID3D12Device8_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 20263 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 20264 | |||
| 20265 | #define ID3D12Device8_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 20266 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 20267 | |||
| 20268 | #define ID3D12Device8_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 20269 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 20270 | |||
| 20271 | |||
| 20272 | #define ID3D12Device8_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ | ||
| 20273 | ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) | ||
| 20274 | |||
| 20275 | |||
| 20276 | #define ID3D12Device8_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ | ||
| 20277 | ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) | ||
| 20278 | |||
| 20279 | #define ID3D12Device8_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ | ||
| 20280 | ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) | ||
| 20281 | |||
| 20282 | #if !defined(_WIN32) | ||
| 20283 | |||
| 20284 | #define ID3D12Device8_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 20285 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 20286 | #else | ||
| 20287 | #define ID3D12Device8_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 20288 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 20289 | #endif | ||
| 20290 | |||
| 20291 | #define ID3D12Device8_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 20292 | ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 20293 | |||
| 20294 | #define ID3D12Device8_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 20295 | ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 20296 | |||
| 20297 | #define ID3D12Device8_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ | ||
| 20298 | ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) | ||
| 20299 | |||
| 20300 | #define ID3D12Device8_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 20301 | ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 20302 | |||
| 20303 | #endif /* COBJMACROS */ | ||
| 20304 | |||
| 20305 | |||
| 20306 | #endif /* C style interface */ | ||
| 20307 | |||
| 20308 | |||
| 20309 | |||
| 20310 | |||
| 20311 | #endif /* __ID3D12Device8_INTERFACE_DEFINED__ */ | ||
| 20312 | |||
| 20313 | |||
| 20314 | #ifndef __ID3D12Resource1_INTERFACE_DEFINED__ | ||
| 20315 | #define __ID3D12Resource1_INTERFACE_DEFINED__ | ||
| 20316 | |||
| 20317 | /* interface ID3D12Resource1 */ | ||
| 20318 | /* [unique][local][object][uuid] */ | ||
| 20319 | |||
| 20320 | |||
| 20321 | EXTERN_C const IID IID_ID3D12Resource1; | ||
| 20322 | |||
| 20323 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 20324 | |||
| 20325 | MIDL_INTERFACE("9D5E227A-4430-4161-88B3-3ECA6BB16E19") | ||
| 20326 | ID3D12Resource1 : public ID3D12Resource | ||
| 20327 | { | ||
| 20328 | public: | ||
| 20329 | virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( | ||
| 20330 | REFIID riid, | ||
| 20331 | _COM_Outptr_opt_ void **ppProtectedSession) = 0; | ||
| 20332 | |||
| 20333 | }; | ||
| 20334 | |||
| 20335 | |||
| 20336 | #else /* C style interface */ | ||
| 20337 | |||
| 20338 | typedef struct ID3D12Resource1Vtbl | ||
| 20339 | { | ||
| 20340 | BEGIN_INTERFACE | ||
| 20341 | |||
| 20342 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 20343 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 20344 | ID3D12Resource1 * This, | ||
| 20345 | REFIID riid, | ||
| 20346 | _COM_Outptr_ void **ppvObject); | ||
| 20347 | |||
| 20348 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 20349 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 20350 | ID3D12Resource1 * This); | ||
| 20351 | |||
| 20352 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 20353 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 20354 | ID3D12Resource1 * This); | ||
| 20355 | |||
| 20356 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 20357 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 20358 | ID3D12Resource1 * This, | ||
| 20359 | _In_ REFGUID guid, | ||
| 20360 | _Inout_ UINT *pDataSize, | ||
| 20361 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 20362 | |||
| 20363 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 20364 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 20365 | ID3D12Resource1 * This, | ||
| 20366 | _In_ REFGUID guid, | ||
| 20367 | _In_ UINT DataSize, | ||
| 20368 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 20369 | |||
| 20370 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 20371 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 20372 | ID3D12Resource1 * This, | ||
| 20373 | _In_ REFGUID guid, | ||
| 20374 | _In_opt_ const IUnknown *pData); | ||
| 20375 | |||
| 20376 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 20377 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 20378 | ID3D12Resource1 * This, | ||
| 20379 | _In_z_ LPCWSTR Name); | ||
| 20380 | |||
| 20381 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 20382 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 20383 | ID3D12Resource1 * This, | ||
| 20384 | REFIID riid, | ||
| 20385 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 20386 | |||
| 20387 | DECLSPEC_XFGVIRT(ID3D12Resource, Map) | ||
| 20388 | HRESULT ( STDMETHODCALLTYPE *Map )( | ||
| 20389 | ID3D12Resource1 * This, | ||
| 20390 | UINT Subresource, | ||
| 20391 | _In_opt_ const D3D12_RANGE *pReadRange, | ||
| 20392 | _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); | ||
| 20393 | |||
| 20394 | DECLSPEC_XFGVIRT(ID3D12Resource, Unmap) | ||
| 20395 | void ( STDMETHODCALLTYPE *Unmap )( | ||
| 20396 | ID3D12Resource1 * This, | ||
| 20397 | UINT Subresource, | ||
| 20398 | _In_opt_ const D3D12_RANGE *pWrittenRange); | ||
| 20399 | |||
| 20400 | DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc) | ||
| 20401 | #if !defined(_WIN32) | ||
| 20402 | D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 20403 | ID3D12Resource1 * This); | ||
| 20404 | |||
| 20405 | #else | ||
| 20406 | D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 20407 | ID3D12Resource1 * This, | ||
| 20408 | D3D12_RESOURCE_DESC * RetVal); | ||
| 20409 | |||
| 20410 | #endif | ||
| 20411 | |||
| 20412 | DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress) | ||
| 20413 | D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( | ||
| 20414 | ID3D12Resource1 * This); | ||
| 20415 | |||
| 20416 | DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource) | ||
| 20417 | HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( | ||
| 20418 | ID3D12Resource1 * This, | ||
| 20419 | UINT DstSubresource, | ||
| 20420 | _In_opt_ const D3D12_BOX *pDstBox, | ||
| 20421 | _In_ const void *pSrcData, | ||
| 20422 | UINT SrcRowPitch, | ||
| 20423 | UINT SrcDepthPitch); | ||
| 20424 | |||
| 20425 | DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource) | ||
| 20426 | HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( | ||
| 20427 | ID3D12Resource1 * This, | ||
| 20428 | _Out_ void *pDstData, | ||
| 20429 | UINT DstRowPitch, | ||
| 20430 | UINT DstDepthPitch, | ||
| 20431 | UINT SrcSubresource, | ||
| 20432 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 20433 | |||
| 20434 | DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties) | ||
| 20435 | HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( | ||
| 20436 | ID3D12Resource1 * This, | ||
| 20437 | _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 20438 | _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); | ||
| 20439 | |||
| 20440 | DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession) | ||
| 20441 | HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( | ||
| 20442 | ID3D12Resource1 * This, | ||
| 20443 | REFIID riid, | ||
| 20444 | _COM_Outptr_opt_ void **ppProtectedSession); | ||
| 20445 | |||
| 20446 | END_INTERFACE | ||
| 20447 | } ID3D12Resource1Vtbl; | ||
| 20448 | |||
| 20449 | interface ID3D12Resource1 | ||
| 20450 | { | ||
| 20451 | CONST_VTBL struct ID3D12Resource1Vtbl *lpVtbl; | ||
| 20452 | }; | ||
| 20453 | |||
| 20454 | |||
| 20455 | |||
| 20456 | #ifdef COBJMACROS | ||
| 20457 | |||
| 20458 | |||
| 20459 | #define ID3D12Resource1_QueryInterface(This,riid,ppvObject) \ | ||
| 20460 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 20461 | |||
| 20462 | #define ID3D12Resource1_AddRef(This) \ | ||
| 20463 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 20464 | |||
| 20465 | #define ID3D12Resource1_Release(This) \ | ||
| 20466 | ( (This)->lpVtbl -> Release(This) ) | ||
| 20467 | |||
| 20468 | |||
| 20469 | #define ID3D12Resource1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 20470 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 20471 | |||
| 20472 | #define ID3D12Resource1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 20473 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 20474 | |||
| 20475 | #define ID3D12Resource1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 20476 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 20477 | |||
| 20478 | #define ID3D12Resource1_SetName(This,Name) \ | ||
| 20479 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 20480 | |||
| 20481 | |||
| 20482 | #define ID3D12Resource1_GetDevice(This,riid,ppvDevice) \ | ||
| 20483 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 20484 | |||
| 20485 | |||
| 20486 | |||
| 20487 | #define ID3D12Resource1_Map(This,Subresource,pReadRange,ppData) \ | ||
| 20488 | ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) | ||
| 20489 | |||
| 20490 | #define ID3D12Resource1_Unmap(This,Subresource,pWrittenRange) \ | ||
| 20491 | ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) | ||
| 20492 | #if !defined(_WIN32) | ||
| 20493 | |||
| 20494 | #define ID3D12Resource1_GetDesc(This) \ | ||
| 20495 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 20496 | #else | ||
| 20497 | #define ID3D12Resource1_GetDesc(This,RetVal) \ | ||
| 20498 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 20499 | #endif | ||
| 20500 | |||
| 20501 | #define ID3D12Resource1_GetGPUVirtualAddress(This) \ | ||
| 20502 | ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) | ||
| 20503 | |||
| 20504 | #define ID3D12Resource1_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ | ||
| 20505 | ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) | ||
| 20506 | |||
| 20507 | #define ID3D12Resource1_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ | ||
| 20508 | ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) | ||
| 20509 | |||
| 20510 | #define ID3D12Resource1_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ | ||
| 20511 | ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) | ||
| 20512 | |||
| 20513 | |||
| 20514 | #define ID3D12Resource1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ | ||
| 20515 | ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) | ||
| 20516 | |||
| 20517 | #endif /* COBJMACROS */ | ||
| 20518 | |||
| 20519 | |||
| 20520 | #endif /* C style interface */ | ||
| 20521 | |||
| 20522 | |||
| 20523 | |||
| 20524 | |||
| 20525 | #endif /* __ID3D12Resource1_INTERFACE_DEFINED__ */ | ||
| 20526 | |||
| 20527 | |||
| 20528 | #ifndef __ID3D12Resource2_INTERFACE_DEFINED__ | ||
| 20529 | #define __ID3D12Resource2_INTERFACE_DEFINED__ | ||
| 20530 | |||
| 20531 | /* interface ID3D12Resource2 */ | ||
| 20532 | /* [unique][local][object][uuid] */ | ||
| 20533 | |||
| 20534 | |||
| 20535 | EXTERN_C const IID IID_ID3D12Resource2; | ||
| 20536 | |||
| 20537 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 20538 | |||
| 20539 | MIDL_INTERFACE("BE36EC3B-EA85-4AEB-A45A-E9D76404A495") | ||
| 20540 | ID3D12Resource2 : public ID3D12Resource1 | ||
| 20541 | { | ||
| 20542 | public: | ||
| 20543 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 20544 | virtual D3D12_RESOURCE_DESC1 STDMETHODCALLTYPE GetDesc1( void) = 0; | ||
| 20545 | #else | ||
| 20546 | virtual D3D12_RESOURCE_DESC1 *STDMETHODCALLTYPE GetDesc1( | ||
| 20547 | D3D12_RESOURCE_DESC1 * RetVal) = 0; | ||
| 20548 | #endif | ||
| 20549 | |||
| 20550 | }; | ||
| 20551 | |||
| 20552 | |||
| 20553 | #else /* C style interface */ | ||
| 20554 | |||
| 20555 | typedef struct ID3D12Resource2Vtbl | ||
| 20556 | { | ||
| 20557 | BEGIN_INTERFACE | ||
| 20558 | |||
| 20559 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 20560 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 20561 | ID3D12Resource2 * This, | ||
| 20562 | REFIID riid, | ||
| 20563 | _COM_Outptr_ void **ppvObject); | ||
| 20564 | |||
| 20565 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 20566 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 20567 | ID3D12Resource2 * This); | ||
| 20568 | |||
| 20569 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 20570 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 20571 | ID3D12Resource2 * This); | ||
| 20572 | |||
| 20573 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 20574 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 20575 | ID3D12Resource2 * This, | ||
| 20576 | _In_ REFGUID guid, | ||
| 20577 | _Inout_ UINT *pDataSize, | ||
| 20578 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 20579 | |||
| 20580 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 20581 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 20582 | ID3D12Resource2 * This, | ||
| 20583 | _In_ REFGUID guid, | ||
| 20584 | _In_ UINT DataSize, | ||
| 20585 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 20586 | |||
| 20587 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 20588 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 20589 | ID3D12Resource2 * This, | ||
| 20590 | _In_ REFGUID guid, | ||
| 20591 | _In_opt_ const IUnknown *pData); | ||
| 20592 | |||
| 20593 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 20594 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 20595 | ID3D12Resource2 * This, | ||
| 20596 | _In_z_ LPCWSTR Name); | ||
| 20597 | |||
| 20598 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 20599 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 20600 | ID3D12Resource2 * This, | ||
| 20601 | REFIID riid, | ||
| 20602 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 20603 | |||
| 20604 | DECLSPEC_XFGVIRT(ID3D12Resource, Map) | ||
| 20605 | HRESULT ( STDMETHODCALLTYPE *Map )( | ||
| 20606 | ID3D12Resource2 * This, | ||
| 20607 | UINT Subresource, | ||
| 20608 | _In_opt_ const D3D12_RANGE *pReadRange, | ||
| 20609 | _Outptr_opt_result_bytebuffer_(_Inexpressible_("Dependent on resource")) void **ppData); | ||
| 20610 | |||
| 20611 | DECLSPEC_XFGVIRT(ID3D12Resource, Unmap) | ||
| 20612 | void ( STDMETHODCALLTYPE *Unmap )( | ||
| 20613 | ID3D12Resource2 * This, | ||
| 20614 | UINT Subresource, | ||
| 20615 | _In_opt_ const D3D12_RANGE *pWrittenRange); | ||
| 20616 | |||
| 20617 | DECLSPEC_XFGVIRT(ID3D12Resource, GetDesc) | ||
| 20618 | #if !defined(_WIN32) | ||
| 20619 | D3D12_RESOURCE_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 20620 | ID3D12Resource2 * This); | ||
| 20621 | |||
| 20622 | #else | ||
| 20623 | D3D12_RESOURCE_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 20624 | ID3D12Resource2 * This, | ||
| 20625 | D3D12_RESOURCE_DESC * RetVal); | ||
| 20626 | |||
| 20627 | #endif | ||
| 20628 | |||
| 20629 | DECLSPEC_XFGVIRT(ID3D12Resource, GetGPUVirtualAddress) | ||
| 20630 | D3D12_GPU_VIRTUAL_ADDRESS ( STDMETHODCALLTYPE *GetGPUVirtualAddress )( | ||
| 20631 | ID3D12Resource2 * This); | ||
| 20632 | |||
| 20633 | DECLSPEC_XFGVIRT(ID3D12Resource, WriteToSubresource) | ||
| 20634 | HRESULT ( STDMETHODCALLTYPE *WriteToSubresource )( | ||
| 20635 | ID3D12Resource2 * This, | ||
| 20636 | UINT DstSubresource, | ||
| 20637 | _In_opt_ const D3D12_BOX *pDstBox, | ||
| 20638 | _In_ const void *pSrcData, | ||
| 20639 | UINT SrcRowPitch, | ||
| 20640 | UINT SrcDepthPitch); | ||
| 20641 | |||
| 20642 | DECLSPEC_XFGVIRT(ID3D12Resource, ReadFromSubresource) | ||
| 20643 | HRESULT ( STDMETHODCALLTYPE *ReadFromSubresource )( | ||
| 20644 | ID3D12Resource2 * This, | ||
| 20645 | _Out_ void *pDstData, | ||
| 20646 | UINT DstRowPitch, | ||
| 20647 | UINT DstDepthPitch, | ||
| 20648 | UINT SrcSubresource, | ||
| 20649 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 20650 | |||
| 20651 | DECLSPEC_XFGVIRT(ID3D12Resource, GetHeapProperties) | ||
| 20652 | HRESULT ( STDMETHODCALLTYPE *GetHeapProperties )( | ||
| 20653 | ID3D12Resource2 * This, | ||
| 20654 | _Out_opt_ D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 20655 | _Out_opt_ D3D12_HEAP_FLAGS *pHeapFlags); | ||
| 20656 | |||
| 20657 | DECLSPEC_XFGVIRT(ID3D12Resource1, GetProtectedResourceSession) | ||
| 20658 | HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( | ||
| 20659 | ID3D12Resource2 * This, | ||
| 20660 | REFIID riid, | ||
| 20661 | _COM_Outptr_opt_ void **ppProtectedSession); | ||
| 20662 | |||
| 20663 | DECLSPEC_XFGVIRT(ID3D12Resource2, GetDesc1) | ||
| 20664 | #if !defined(_WIN32) | ||
| 20665 | D3D12_RESOURCE_DESC1 ( STDMETHODCALLTYPE *GetDesc1 )( | ||
| 20666 | ID3D12Resource2 * This); | ||
| 20667 | |||
| 20668 | #else | ||
| 20669 | D3D12_RESOURCE_DESC1 *( STDMETHODCALLTYPE *GetDesc1 )( | ||
| 20670 | ID3D12Resource2 * This, | ||
| 20671 | D3D12_RESOURCE_DESC1 * RetVal); | ||
| 20672 | |||
| 20673 | #endif | ||
| 20674 | |||
| 20675 | END_INTERFACE | ||
| 20676 | } ID3D12Resource2Vtbl; | ||
| 20677 | |||
| 20678 | interface ID3D12Resource2 | ||
| 20679 | { | ||
| 20680 | CONST_VTBL struct ID3D12Resource2Vtbl *lpVtbl; | ||
| 20681 | }; | ||
| 20682 | |||
| 20683 | |||
| 20684 | |||
| 20685 | #ifdef COBJMACROS | ||
| 20686 | |||
| 20687 | |||
| 20688 | #define ID3D12Resource2_QueryInterface(This,riid,ppvObject) \ | ||
| 20689 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 20690 | |||
| 20691 | #define ID3D12Resource2_AddRef(This) \ | ||
| 20692 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 20693 | |||
| 20694 | #define ID3D12Resource2_Release(This) \ | ||
| 20695 | ( (This)->lpVtbl -> Release(This) ) | ||
| 20696 | |||
| 20697 | |||
| 20698 | #define ID3D12Resource2_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 20699 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 20700 | |||
| 20701 | #define ID3D12Resource2_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 20702 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 20703 | |||
| 20704 | #define ID3D12Resource2_SetPrivateDataInterface(This,guid,pData) \ | ||
| 20705 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 20706 | |||
| 20707 | #define ID3D12Resource2_SetName(This,Name) \ | ||
| 20708 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 20709 | |||
| 20710 | |||
| 20711 | #define ID3D12Resource2_GetDevice(This,riid,ppvDevice) \ | ||
| 20712 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 20713 | |||
| 20714 | |||
| 20715 | |||
| 20716 | #define ID3D12Resource2_Map(This,Subresource,pReadRange,ppData) \ | ||
| 20717 | ( (This)->lpVtbl -> Map(This,Subresource,pReadRange,ppData) ) | ||
| 20718 | |||
| 20719 | #define ID3D12Resource2_Unmap(This,Subresource,pWrittenRange) \ | ||
| 20720 | ( (This)->lpVtbl -> Unmap(This,Subresource,pWrittenRange) ) | ||
| 20721 | #if !defined(_WIN32) | ||
| 20722 | |||
| 20723 | #define ID3D12Resource2_GetDesc(This) \ | ||
| 20724 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 20725 | #else | ||
| 20726 | #define ID3D12Resource2_GetDesc(This,RetVal) \ | ||
| 20727 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 20728 | #endif | ||
| 20729 | |||
| 20730 | #define ID3D12Resource2_GetGPUVirtualAddress(This) \ | ||
| 20731 | ( (This)->lpVtbl -> GetGPUVirtualAddress(This) ) | ||
| 20732 | |||
| 20733 | #define ID3D12Resource2_WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) \ | ||
| 20734 | ( (This)->lpVtbl -> WriteToSubresource(This,DstSubresource,pDstBox,pSrcData,SrcRowPitch,SrcDepthPitch) ) | ||
| 20735 | |||
| 20736 | #define ID3D12Resource2_ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) \ | ||
| 20737 | ( (This)->lpVtbl -> ReadFromSubresource(This,pDstData,DstRowPitch,DstDepthPitch,SrcSubresource,pSrcBox) ) | ||
| 20738 | |||
| 20739 | #define ID3D12Resource2_GetHeapProperties(This,pHeapProperties,pHeapFlags) \ | ||
| 20740 | ( (This)->lpVtbl -> GetHeapProperties(This,pHeapProperties,pHeapFlags) ) | ||
| 20741 | |||
| 20742 | |||
| 20743 | #define ID3D12Resource2_GetProtectedResourceSession(This,riid,ppProtectedSession) \ | ||
| 20744 | ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) | ||
| 20745 | |||
| 20746 | #if !defined(_WIN32) | ||
| 20747 | |||
| 20748 | #define ID3D12Resource2_GetDesc1(This) \ | ||
| 20749 | ( (This)->lpVtbl -> GetDesc1(This) ) | ||
| 20750 | #else | ||
| 20751 | #define ID3D12Resource2_GetDesc1(This,RetVal) \ | ||
| 20752 | ( (This)->lpVtbl -> GetDesc1(This,RetVal) ) | ||
| 20753 | #endif | ||
| 20754 | |||
| 20755 | #endif /* COBJMACROS */ | ||
| 20756 | |||
| 20757 | |||
| 20758 | #endif /* C style interface */ | ||
| 20759 | |||
| 20760 | |||
| 20761 | |||
| 20762 | |||
| 20763 | #endif /* __ID3D12Resource2_INTERFACE_DEFINED__ */ | ||
| 20764 | |||
| 20765 | |||
| 20766 | #ifndef __ID3D12Heap1_INTERFACE_DEFINED__ | ||
| 20767 | #define __ID3D12Heap1_INTERFACE_DEFINED__ | ||
| 20768 | |||
| 20769 | /* interface ID3D12Heap1 */ | ||
| 20770 | /* [unique][local][object][uuid] */ | ||
| 20771 | |||
| 20772 | |||
| 20773 | EXTERN_C const IID IID_ID3D12Heap1; | ||
| 20774 | |||
| 20775 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 20776 | |||
| 20777 | MIDL_INTERFACE("572F7389-2168-49E3-9693-D6DF5871BF6D") | ||
| 20778 | ID3D12Heap1 : public ID3D12Heap | ||
| 20779 | { | ||
| 20780 | public: | ||
| 20781 | virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( | ||
| 20782 | REFIID riid, | ||
| 20783 | _COM_Outptr_opt_ void **ppProtectedSession) = 0; | ||
| 20784 | |||
| 20785 | }; | ||
| 20786 | |||
| 20787 | |||
| 20788 | #else /* C style interface */ | ||
| 20789 | |||
| 20790 | typedef struct ID3D12Heap1Vtbl | ||
| 20791 | { | ||
| 20792 | BEGIN_INTERFACE | ||
| 20793 | |||
| 20794 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 20795 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 20796 | ID3D12Heap1 * This, | ||
| 20797 | REFIID riid, | ||
| 20798 | _COM_Outptr_ void **ppvObject); | ||
| 20799 | |||
| 20800 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 20801 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 20802 | ID3D12Heap1 * This); | ||
| 20803 | |||
| 20804 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 20805 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 20806 | ID3D12Heap1 * This); | ||
| 20807 | |||
| 20808 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 20809 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 20810 | ID3D12Heap1 * This, | ||
| 20811 | _In_ REFGUID guid, | ||
| 20812 | _Inout_ UINT *pDataSize, | ||
| 20813 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 20814 | |||
| 20815 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 20816 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 20817 | ID3D12Heap1 * This, | ||
| 20818 | _In_ REFGUID guid, | ||
| 20819 | _In_ UINT DataSize, | ||
| 20820 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 20821 | |||
| 20822 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 20823 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 20824 | ID3D12Heap1 * This, | ||
| 20825 | _In_ REFGUID guid, | ||
| 20826 | _In_opt_ const IUnknown *pData); | ||
| 20827 | |||
| 20828 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 20829 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 20830 | ID3D12Heap1 * This, | ||
| 20831 | _In_z_ LPCWSTR Name); | ||
| 20832 | |||
| 20833 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 20834 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 20835 | ID3D12Heap1 * This, | ||
| 20836 | REFIID riid, | ||
| 20837 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 20838 | |||
| 20839 | DECLSPEC_XFGVIRT(ID3D12Heap, GetDesc) | ||
| 20840 | #if !defined(_WIN32) | ||
| 20841 | D3D12_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 20842 | ID3D12Heap1 * This); | ||
| 20843 | |||
| 20844 | #else | ||
| 20845 | D3D12_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 20846 | ID3D12Heap1 * This, | ||
| 20847 | D3D12_HEAP_DESC * RetVal); | ||
| 20848 | |||
| 20849 | #endif | ||
| 20850 | |||
| 20851 | DECLSPEC_XFGVIRT(ID3D12Heap1, GetProtectedResourceSession) | ||
| 20852 | HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( | ||
| 20853 | ID3D12Heap1 * This, | ||
| 20854 | REFIID riid, | ||
| 20855 | _COM_Outptr_opt_ void **ppProtectedSession); | ||
| 20856 | |||
| 20857 | END_INTERFACE | ||
| 20858 | } ID3D12Heap1Vtbl; | ||
| 20859 | |||
| 20860 | interface ID3D12Heap1 | ||
| 20861 | { | ||
| 20862 | CONST_VTBL struct ID3D12Heap1Vtbl *lpVtbl; | ||
| 20863 | }; | ||
| 20864 | |||
| 20865 | |||
| 20866 | |||
| 20867 | #ifdef COBJMACROS | ||
| 20868 | |||
| 20869 | |||
| 20870 | #define ID3D12Heap1_QueryInterface(This,riid,ppvObject) \ | ||
| 20871 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 20872 | |||
| 20873 | #define ID3D12Heap1_AddRef(This) \ | ||
| 20874 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 20875 | |||
| 20876 | #define ID3D12Heap1_Release(This) \ | ||
| 20877 | ( (This)->lpVtbl -> Release(This) ) | ||
| 20878 | |||
| 20879 | |||
| 20880 | #define ID3D12Heap1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 20881 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 20882 | |||
| 20883 | #define ID3D12Heap1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 20884 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 20885 | |||
| 20886 | #define ID3D12Heap1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 20887 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 20888 | |||
| 20889 | #define ID3D12Heap1_SetName(This,Name) \ | ||
| 20890 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 20891 | |||
| 20892 | |||
| 20893 | #define ID3D12Heap1_GetDevice(This,riid,ppvDevice) \ | ||
| 20894 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 20895 | |||
| 20896 | |||
| 20897 | #if !defined(_WIN32) | ||
| 20898 | |||
| 20899 | #define ID3D12Heap1_GetDesc(This) \ | ||
| 20900 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 20901 | #else | ||
| 20902 | #define ID3D12Heap1_GetDesc(This,RetVal) \ | ||
| 20903 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 20904 | #endif | ||
| 20905 | |||
| 20906 | |||
| 20907 | #define ID3D12Heap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ | ||
| 20908 | ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) | ||
| 20909 | |||
| 20910 | #endif /* COBJMACROS */ | ||
| 20911 | |||
| 20912 | |||
| 20913 | #endif /* C style interface */ | ||
| 20914 | |||
| 20915 | |||
| 20916 | |||
| 20917 | |||
| 20918 | #endif /* __ID3D12Heap1_INTERFACE_DEFINED__ */ | ||
| 20919 | |||
| 20920 | |||
| 20921 | #ifndef __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ | ||
| 20922 | #define __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ | ||
| 20923 | |||
| 20924 | /* interface ID3D12GraphicsCommandList3 */ | ||
| 20925 | /* [unique][local][object][uuid] */ | ||
| 20926 | |||
| 20927 | |||
| 20928 | EXTERN_C const IID IID_ID3D12GraphicsCommandList3; | ||
| 20929 | |||
| 20930 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 20931 | |||
| 20932 | MIDL_INTERFACE("6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D") | ||
| 20933 | ID3D12GraphicsCommandList3 : public ID3D12GraphicsCommandList2 | ||
| 20934 | { | ||
| 20935 | public: | ||
| 20936 | virtual void STDMETHODCALLTYPE SetProtectedResourceSession( | ||
| 20937 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0; | ||
| 20938 | |||
| 20939 | }; | ||
| 20940 | |||
| 20941 | |||
| 20942 | #else /* C style interface */ | ||
| 20943 | |||
| 20944 | typedef struct ID3D12GraphicsCommandList3Vtbl | ||
| 20945 | { | ||
| 20946 | BEGIN_INTERFACE | ||
| 20947 | |||
| 20948 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 20949 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 20950 | ID3D12GraphicsCommandList3 * This, | ||
| 20951 | REFIID riid, | ||
| 20952 | _COM_Outptr_ void **ppvObject); | ||
| 20953 | |||
| 20954 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 20955 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 20956 | ID3D12GraphicsCommandList3 * This); | ||
| 20957 | |||
| 20958 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 20959 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 20960 | ID3D12GraphicsCommandList3 * This); | ||
| 20961 | |||
| 20962 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 20963 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 20964 | ID3D12GraphicsCommandList3 * This, | ||
| 20965 | _In_ REFGUID guid, | ||
| 20966 | _Inout_ UINT *pDataSize, | ||
| 20967 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 20968 | |||
| 20969 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 20970 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 20971 | ID3D12GraphicsCommandList3 * This, | ||
| 20972 | _In_ REFGUID guid, | ||
| 20973 | _In_ UINT DataSize, | ||
| 20974 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 20975 | |||
| 20976 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 20977 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 20978 | ID3D12GraphicsCommandList3 * This, | ||
| 20979 | _In_ REFGUID guid, | ||
| 20980 | _In_opt_ const IUnknown *pData); | ||
| 20981 | |||
| 20982 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 20983 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 20984 | ID3D12GraphicsCommandList3 * This, | ||
| 20985 | _In_z_ LPCWSTR Name); | ||
| 20986 | |||
| 20987 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 20988 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 20989 | ID3D12GraphicsCommandList3 * This, | ||
| 20990 | REFIID riid, | ||
| 20991 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 20992 | |||
| 20993 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 20994 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 20995 | ID3D12GraphicsCommandList3 * This); | ||
| 20996 | |||
| 20997 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 20998 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 20999 | ID3D12GraphicsCommandList3 * This); | ||
| 21000 | |||
| 21001 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 21002 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 21003 | ID3D12GraphicsCommandList3 * This, | ||
| 21004 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 21005 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 21006 | |||
| 21007 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 21008 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 21009 | ID3D12GraphicsCommandList3 * This, | ||
| 21010 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 21011 | |||
| 21012 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 21013 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 21014 | ID3D12GraphicsCommandList3 * This, | ||
| 21015 | _In_ UINT VertexCountPerInstance, | ||
| 21016 | _In_ UINT InstanceCount, | ||
| 21017 | _In_ UINT StartVertexLocation, | ||
| 21018 | _In_ UINT StartInstanceLocation); | ||
| 21019 | |||
| 21020 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 21021 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 21022 | ID3D12GraphicsCommandList3 * This, | ||
| 21023 | _In_ UINT IndexCountPerInstance, | ||
| 21024 | _In_ UINT InstanceCount, | ||
| 21025 | _In_ UINT StartIndexLocation, | ||
| 21026 | _In_ INT BaseVertexLocation, | ||
| 21027 | _In_ UINT StartInstanceLocation); | ||
| 21028 | |||
| 21029 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 21030 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 21031 | ID3D12GraphicsCommandList3 * This, | ||
| 21032 | _In_ UINT ThreadGroupCountX, | ||
| 21033 | _In_ UINT ThreadGroupCountY, | ||
| 21034 | _In_ UINT ThreadGroupCountZ); | ||
| 21035 | |||
| 21036 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 21037 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 21038 | ID3D12GraphicsCommandList3 * This, | ||
| 21039 | _In_ ID3D12Resource *pDstBuffer, | ||
| 21040 | UINT64 DstOffset, | ||
| 21041 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 21042 | UINT64 SrcOffset, | ||
| 21043 | UINT64 NumBytes); | ||
| 21044 | |||
| 21045 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 21046 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 21047 | ID3D12GraphicsCommandList3 * This, | ||
| 21048 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 21049 | UINT DstX, | ||
| 21050 | UINT DstY, | ||
| 21051 | UINT DstZ, | ||
| 21052 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 21053 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 21054 | |||
| 21055 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 21056 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 21057 | ID3D12GraphicsCommandList3 * This, | ||
| 21058 | _In_ ID3D12Resource *pDstResource, | ||
| 21059 | _In_ ID3D12Resource *pSrcResource); | ||
| 21060 | |||
| 21061 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 21062 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 21063 | ID3D12GraphicsCommandList3 * This, | ||
| 21064 | _In_ ID3D12Resource *pTiledResource, | ||
| 21065 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 21066 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 21067 | _In_ ID3D12Resource *pBuffer, | ||
| 21068 | UINT64 BufferStartOffsetInBytes, | ||
| 21069 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 21070 | |||
| 21071 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 21072 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 21073 | ID3D12GraphicsCommandList3 * This, | ||
| 21074 | _In_ ID3D12Resource *pDstResource, | ||
| 21075 | _In_ UINT DstSubresource, | ||
| 21076 | _In_ ID3D12Resource *pSrcResource, | ||
| 21077 | _In_ UINT SrcSubresource, | ||
| 21078 | _In_ DXGI_FORMAT Format); | ||
| 21079 | |||
| 21080 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 21081 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 21082 | ID3D12GraphicsCommandList3 * This, | ||
| 21083 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 21084 | |||
| 21085 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 21086 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 21087 | ID3D12GraphicsCommandList3 * This, | ||
| 21088 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 21089 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 21090 | |||
| 21091 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 21092 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 21093 | ID3D12GraphicsCommandList3 * This, | ||
| 21094 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 21095 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 21096 | |||
| 21097 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 21098 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 21099 | ID3D12GraphicsCommandList3 * This, | ||
| 21100 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 21101 | |||
| 21102 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 21103 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 21104 | ID3D12GraphicsCommandList3 * This, | ||
| 21105 | _In_ UINT StencilRef); | ||
| 21106 | |||
| 21107 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 21108 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 21109 | ID3D12GraphicsCommandList3 * This, | ||
| 21110 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 21111 | |||
| 21112 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 21113 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 21114 | ID3D12GraphicsCommandList3 * This, | ||
| 21115 | _In_ UINT NumBarriers, | ||
| 21116 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 21117 | |||
| 21118 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 21119 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 21120 | ID3D12GraphicsCommandList3 * This, | ||
| 21121 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 21122 | |||
| 21123 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 21124 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 21125 | ID3D12GraphicsCommandList3 * This, | ||
| 21126 | _In_ UINT NumDescriptorHeaps, | ||
| 21127 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 21128 | |||
| 21129 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 21130 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 21131 | ID3D12GraphicsCommandList3 * This, | ||
| 21132 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 21133 | |||
| 21134 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 21135 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 21136 | ID3D12GraphicsCommandList3 * This, | ||
| 21137 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 21138 | |||
| 21139 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 21140 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 21141 | ID3D12GraphicsCommandList3 * This, | ||
| 21142 | _In_ UINT RootParameterIndex, | ||
| 21143 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 21144 | |||
| 21145 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 21146 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 21147 | ID3D12GraphicsCommandList3 * This, | ||
| 21148 | _In_ UINT RootParameterIndex, | ||
| 21149 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 21150 | |||
| 21151 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 21152 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 21153 | ID3D12GraphicsCommandList3 * This, | ||
| 21154 | _In_ UINT RootParameterIndex, | ||
| 21155 | _In_ UINT SrcData, | ||
| 21156 | _In_ UINT DestOffsetIn32BitValues); | ||
| 21157 | |||
| 21158 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 21159 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 21160 | ID3D12GraphicsCommandList3 * This, | ||
| 21161 | _In_ UINT RootParameterIndex, | ||
| 21162 | _In_ UINT SrcData, | ||
| 21163 | _In_ UINT DestOffsetIn32BitValues); | ||
| 21164 | |||
| 21165 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 21166 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 21167 | ID3D12GraphicsCommandList3 * This, | ||
| 21168 | _In_ UINT RootParameterIndex, | ||
| 21169 | _In_ UINT Num32BitValuesToSet, | ||
| 21170 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 21171 | _In_ UINT DestOffsetIn32BitValues); | ||
| 21172 | |||
| 21173 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 21174 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 21175 | ID3D12GraphicsCommandList3 * This, | ||
| 21176 | _In_ UINT RootParameterIndex, | ||
| 21177 | _In_ UINT Num32BitValuesToSet, | ||
| 21178 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 21179 | _In_ UINT DestOffsetIn32BitValues); | ||
| 21180 | |||
| 21181 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 21182 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 21183 | ID3D12GraphicsCommandList3 * This, | ||
| 21184 | _In_ UINT RootParameterIndex, | ||
| 21185 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 21186 | |||
| 21187 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 21188 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 21189 | ID3D12GraphicsCommandList3 * This, | ||
| 21190 | _In_ UINT RootParameterIndex, | ||
| 21191 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 21192 | |||
| 21193 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 21194 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 21195 | ID3D12GraphicsCommandList3 * This, | ||
| 21196 | _In_ UINT RootParameterIndex, | ||
| 21197 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 21198 | |||
| 21199 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 21200 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 21201 | ID3D12GraphicsCommandList3 * This, | ||
| 21202 | _In_ UINT RootParameterIndex, | ||
| 21203 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 21204 | |||
| 21205 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 21206 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 21207 | ID3D12GraphicsCommandList3 * This, | ||
| 21208 | _In_ UINT RootParameterIndex, | ||
| 21209 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 21210 | |||
| 21211 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 21212 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 21213 | ID3D12GraphicsCommandList3 * This, | ||
| 21214 | _In_ UINT RootParameterIndex, | ||
| 21215 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 21216 | |||
| 21217 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 21218 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 21219 | ID3D12GraphicsCommandList3 * This, | ||
| 21220 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 21221 | |||
| 21222 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 21223 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 21224 | ID3D12GraphicsCommandList3 * This, | ||
| 21225 | _In_ UINT StartSlot, | ||
| 21226 | _In_ UINT NumViews, | ||
| 21227 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 21228 | |||
| 21229 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 21230 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 21231 | ID3D12GraphicsCommandList3 * This, | ||
| 21232 | _In_ UINT StartSlot, | ||
| 21233 | _In_ UINT NumViews, | ||
| 21234 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 21235 | |||
| 21236 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 21237 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 21238 | ID3D12GraphicsCommandList3 * This, | ||
| 21239 | _In_ UINT NumRenderTargetDescriptors, | ||
| 21240 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 21241 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 21242 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 21243 | |||
| 21244 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 21245 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 21246 | ID3D12GraphicsCommandList3 * This, | ||
| 21247 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 21248 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 21249 | _In_ FLOAT Depth, | ||
| 21250 | _In_ UINT8 Stencil, | ||
| 21251 | _In_ UINT NumRects, | ||
| 21252 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 21253 | |||
| 21254 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 21255 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 21256 | ID3D12GraphicsCommandList3 * This, | ||
| 21257 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 21258 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 21259 | _In_ UINT NumRects, | ||
| 21260 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 21261 | |||
| 21262 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 21263 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 21264 | ID3D12GraphicsCommandList3 * This, | ||
| 21265 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 21266 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 21267 | _In_ ID3D12Resource *pResource, | ||
| 21268 | _In_ const UINT Values[ 4 ], | ||
| 21269 | _In_ UINT NumRects, | ||
| 21270 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 21271 | |||
| 21272 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 21273 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 21274 | ID3D12GraphicsCommandList3 * This, | ||
| 21275 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 21276 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 21277 | _In_ ID3D12Resource *pResource, | ||
| 21278 | _In_ const FLOAT Values[ 4 ], | ||
| 21279 | _In_ UINT NumRects, | ||
| 21280 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 21281 | |||
| 21282 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 21283 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 21284 | ID3D12GraphicsCommandList3 * This, | ||
| 21285 | _In_ ID3D12Resource *pResource, | ||
| 21286 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 21287 | |||
| 21288 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 21289 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 21290 | ID3D12GraphicsCommandList3 * This, | ||
| 21291 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 21292 | _In_ D3D12_QUERY_TYPE Type, | ||
| 21293 | _In_ UINT Index); | ||
| 21294 | |||
| 21295 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 21296 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 21297 | ID3D12GraphicsCommandList3 * This, | ||
| 21298 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 21299 | _In_ D3D12_QUERY_TYPE Type, | ||
| 21300 | _In_ UINT Index); | ||
| 21301 | |||
| 21302 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 21303 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 21304 | ID3D12GraphicsCommandList3 * This, | ||
| 21305 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 21306 | _In_ D3D12_QUERY_TYPE Type, | ||
| 21307 | _In_ UINT StartIndex, | ||
| 21308 | _In_ UINT NumQueries, | ||
| 21309 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 21310 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 21311 | |||
| 21312 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 21313 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 21314 | ID3D12GraphicsCommandList3 * This, | ||
| 21315 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 21316 | _In_ UINT64 AlignedBufferOffset, | ||
| 21317 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 21318 | |||
| 21319 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 21320 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 21321 | ID3D12GraphicsCommandList3 * This, | ||
| 21322 | UINT Metadata, | ||
| 21323 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 21324 | UINT Size); | ||
| 21325 | |||
| 21326 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 21327 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 21328 | ID3D12GraphicsCommandList3 * This, | ||
| 21329 | UINT Metadata, | ||
| 21330 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 21331 | UINT Size); | ||
| 21332 | |||
| 21333 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 21334 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 21335 | ID3D12GraphicsCommandList3 * This); | ||
| 21336 | |||
| 21337 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 21338 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 21339 | ID3D12GraphicsCommandList3 * This, | ||
| 21340 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 21341 | _In_ UINT MaxCommandCount, | ||
| 21342 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 21343 | _In_ UINT64 ArgumentBufferOffset, | ||
| 21344 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 21345 | _In_ UINT64 CountBufferOffset); | ||
| 21346 | |||
| 21347 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 21348 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 21349 | ID3D12GraphicsCommandList3 * This, | ||
| 21350 | _In_ ID3D12Resource *pDstBuffer, | ||
| 21351 | UINT64 DstOffset, | ||
| 21352 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 21353 | UINT64 SrcOffset, | ||
| 21354 | UINT Dependencies, | ||
| 21355 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 21356 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 21357 | |||
| 21358 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 21359 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 21360 | ID3D12GraphicsCommandList3 * This, | ||
| 21361 | _In_ ID3D12Resource *pDstBuffer, | ||
| 21362 | UINT64 DstOffset, | ||
| 21363 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 21364 | UINT64 SrcOffset, | ||
| 21365 | UINT Dependencies, | ||
| 21366 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 21367 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 21368 | |||
| 21369 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 21370 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 21371 | ID3D12GraphicsCommandList3 * This, | ||
| 21372 | _In_ FLOAT Min, | ||
| 21373 | _In_ FLOAT Max); | ||
| 21374 | |||
| 21375 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 21376 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 21377 | ID3D12GraphicsCommandList3 * This, | ||
| 21378 | _In_ UINT NumSamplesPerPixel, | ||
| 21379 | _In_ UINT NumPixels, | ||
| 21380 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 21381 | |||
| 21382 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 21383 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 21384 | ID3D12GraphicsCommandList3 * This, | ||
| 21385 | _In_ ID3D12Resource *pDstResource, | ||
| 21386 | _In_ UINT DstSubresource, | ||
| 21387 | _In_ UINT DstX, | ||
| 21388 | _In_ UINT DstY, | ||
| 21389 | _In_ ID3D12Resource *pSrcResource, | ||
| 21390 | _In_ UINT SrcSubresource, | ||
| 21391 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 21392 | _In_ DXGI_FORMAT Format, | ||
| 21393 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 21394 | |||
| 21395 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 21396 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 21397 | ID3D12GraphicsCommandList3 * This, | ||
| 21398 | _In_ UINT Mask); | ||
| 21399 | |||
| 21400 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) | ||
| 21401 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 21402 | ID3D12GraphicsCommandList3 * This, | ||
| 21403 | UINT Count, | ||
| 21404 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 21405 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 21406 | |||
| 21407 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) | ||
| 21408 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 21409 | ID3D12GraphicsCommandList3 * This, | ||
| 21410 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 21411 | |||
| 21412 | END_INTERFACE | ||
| 21413 | } ID3D12GraphicsCommandList3Vtbl; | ||
| 21414 | |||
| 21415 | interface ID3D12GraphicsCommandList3 | ||
| 21416 | { | ||
| 21417 | CONST_VTBL struct ID3D12GraphicsCommandList3Vtbl *lpVtbl; | ||
| 21418 | }; | ||
| 21419 | |||
| 21420 | |||
| 21421 | |||
| 21422 | #ifdef COBJMACROS | ||
| 21423 | |||
| 21424 | |||
| 21425 | #define ID3D12GraphicsCommandList3_QueryInterface(This,riid,ppvObject) \ | ||
| 21426 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 21427 | |||
| 21428 | #define ID3D12GraphicsCommandList3_AddRef(This) \ | ||
| 21429 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 21430 | |||
| 21431 | #define ID3D12GraphicsCommandList3_Release(This) \ | ||
| 21432 | ( (This)->lpVtbl -> Release(This) ) | ||
| 21433 | |||
| 21434 | |||
| 21435 | #define ID3D12GraphicsCommandList3_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 21436 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 21437 | |||
| 21438 | #define ID3D12GraphicsCommandList3_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 21439 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 21440 | |||
| 21441 | #define ID3D12GraphicsCommandList3_SetPrivateDataInterface(This,guid,pData) \ | ||
| 21442 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 21443 | |||
| 21444 | #define ID3D12GraphicsCommandList3_SetName(This,Name) \ | ||
| 21445 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 21446 | |||
| 21447 | |||
| 21448 | #define ID3D12GraphicsCommandList3_GetDevice(This,riid,ppvDevice) \ | ||
| 21449 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 21450 | |||
| 21451 | |||
| 21452 | #define ID3D12GraphicsCommandList3_GetType(This) \ | ||
| 21453 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 21454 | |||
| 21455 | |||
| 21456 | #define ID3D12GraphicsCommandList3_Close(This) \ | ||
| 21457 | ( (This)->lpVtbl -> Close(This) ) | ||
| 21458 | |||
| 21459 | #define ID3D12GraphicsCommandList3_Reset(This,pAllocator,pInitialState) \ | ||
| 21460 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 21461 | |||
| 21462 | #define ID3D12GraphicsCommandList3_ClearState(This,pPipelineState) \ | ||
| 21463 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 21464 | |||
| 21465 | #define ID3D12GraphicsCommandList3_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 21466 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 21467 | |||
| 21468 | #define ID3D12GraphicsCommandList3_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 21469 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 21470 | |||
| 21471 | #define ID3D12GraphicsCommandList3_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 21472 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 21473 | |||
| 21474 | #define ID3D12GraphicsCommandList3_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 21475 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 21476 | |||
| 21477 | #define ID3D12GraphicsCommandList3_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 21478 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 21479 | |||
| 21480 | #define ID3D12GraphicsCommandList3_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 21481 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 21482 | |||
| 21483 | #define ID3D12GraphicsCommandList3_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 21484 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 21485 | |||
| 21486 | #define ID3D12GraphicsCommandList3_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 21487 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 21488 | |||
| 21489 | #define ID3D12GraphicsCommandList3_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 21490 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 21491 | |||
| 21492 | #define ID3D12GraphicsCommandList3_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 21493 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 21494 | |||
| 21495 | #define ID3D12GraphicsCommandList3_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 21496 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 21497 | |||
| 21498 | #define ID3D12GraphicsCommandList3_OMSetBlendFactor(This,BlendFactor) \ | ||
| 21499 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 21500 | |||
| 21501 | #define ID3D12GraphicsCommandList3_OMSetStencilRef(This,StencilRef) \ | ||
| 21502 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 21503 | |||
| 21504 | #define ID3D12GraphicsCommandList3_SetPipelineState(This,pPipelineState) \ | ||
| 21505 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 21506 | |||
| 21507 | #define ID3D12GraphicsCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 21508 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 21509 | |||
| 21510 | #define ID3D12GraphicsCommandList3_ExecuteBundle(This,pCommandList) \ | ||
| 21511 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 21512 | |||
| 21513 | #define ID3D12GraphicsCommandList3_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 21514 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 21515 | |||
| 21516 | #define ID3D12GraphicsCommandList3_SetComputeRootSignature(This,pRootSignature) \ | ||
| 21517 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 21518 | |||
| 21519 | #define ID3D12GraphicsCommandList3_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 21520 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 21521 | |||
| 21522 | #define ID3D12GraphicsCommandList3_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 21523 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 21524 | |||
| 21525 | #define ID3D12GraphicsCommandList3_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 21526 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 21527 | |||
| 21528 | #define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 21529 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 21530 | |||
| 21531 | #define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 21532 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 21533 | |||
| 21534 | #define ID3D12GraphicsCommandList3_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 21535 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 21536 | |||
| 21537 | #define ID3D12GraphicsCommandList3_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 21538 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 21539 | |||
| 21540 | #define ID3D12GraphicsCommandList3_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 21541 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 21542 | |||
| 21543 | #define ID3D12GraphicsCommandList3_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 21544 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 21545 | |||
| 21546 | #define ID3D12GraphicsCommandList3_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 21547 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 21548 | |||
| 21549 | #define ID3D12GraphicsCommandList3_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 21550 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 21551 | |||
| 21552 | #define ID3D12GraphicsCommandList3_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 21553 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 21554 | |||
| 21555 | #define ID3D12GraphicsCommandList3_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 21556 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 21557 | |||
| 21558 | #define ID3D12GraphicsCommandList3_IASetIndexBuffer(This,pView) \ | ||
| 21559 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 21560 | |||
| 21561 | #define ID3D12GraphicsCommandList3_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 21562 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 21563 | |||
| 21564 | #define ID3D12GraphicsCommandList3_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 21565 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 21566 | |||
| 21567 | #define ID3D12GraphicsCommandList3_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 21568 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 21569 | |||
| 21570 | #define ID3D12GraphicsCommandList3_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 21571 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 21572 | |||
| 21573 | #define ID3D12GraphicsCommandList3_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 21574 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 21575 | |||
| 21576 | #define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 21577 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 21578 | |||
| 21579 | #define ID3D12GraphicsCommandList3_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 21580 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 21581 | |||
| 21582 | #define ID3D12GraphicsCommandList3_DiscardResource(This,pResource,pRegion) \ | ||
| 21583 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 21584 | |||
| 21585 | #define ID3D12GraphicsCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 21586 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 21587 | |||
| 21588 | #define ID3D12GraphicsCommandList3_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 21589 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 21590 | |||
| 21591 | #define ID3D12GraphicsCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 21592 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 21593 | |||
| 21594 | #define ID3D12GraphicsCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 21595 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 21596 | |||
| 21597 | #define ID3D12GraphicsCommandList3_SetMarker(This,Metadata,pData,Size) \ | ||
| 21598 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 21599 | |||
| 21600 | #define ID3D12GraphicsCommandList3_BeginEvent(This,Metadata,pData,Size) \ | ||
| 21601 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 21602 | |||
| 21603 | #define ID3D12GraphicsCommandList3_EndEvent(This) \ | ||
| 21604 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 21605 | |||
| 21606 | #define ID3D12GraphicsCommandList3_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 21607 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 21608 | |||
| 21609 | |||
| 21610 | #define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 21611 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 21612 | |||
| 21613 | #define ID3D12GraphicsCommandList3_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 21614 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 21615 | |||
| 21616 | #define ID3D12GraphicsCommandList3_OMSetDepthBounds(This,Min,Max) \ | ||
| 21617 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 21618 | |||
| 21619 | #define ID3D12GraphicsCommandList3_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 21620 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 21621 | |||
| 21622 | #define ID3D12GraphicsCommandList3_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 21623 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 21624 | |||
| 21625 | #define ID3D12GraphicsCommandList3_SetViewInstanceMask(This,Mask) \ | ||
| 21626 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 21627 | |||
| 21628 | |||
| 21629 | #define ID3D12GraphicsCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 21630 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 21631 | |||
| 21632 | |||
| 21633 | #define ID3D12GraphicsCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 21634 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 21635 | |||
| 21636 | #endif /* COBJMACROS */ | ||
| 21637 | |||
| 21638 | |||
| 21639 | #endif /* C style interface */ | ||
| 21640 | |||
| 21641 | |||
| 21642 | |||
| 21643 | |||
| 21644 | #endif /* __ID3D12GraphicsCommandList3_INTERFACE_DEFINED__ */ | ||
| 21645 | |||
| 21646 | |||
| 21647 | /* interface __MIDL_itf_d3d12_0000_0054 */ | ||
| 21648 | /* [local] */ | ||
| 21649 | |||
| 21650 | typedef | ||
| 21651 | enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE | ||
| 21652 | { | ||
| 21653 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD = 0, | ||
| 21654 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD + 1 ) , | ||
| 21655 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE + 1 ) , | ||
| 21656 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR + 1 ) , | ||
| 21657 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS + 1 ) , | ||
| 21658 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) , | ||
| 21659 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 ) | ||
| 21660 | } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE; | ||
| 21661 | |||
| 21662 | typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS | ||
| 21663 | { | ||
| 21664 | D3D12_CLEAR_VALUE ClearValue; | ||
| 21665 | } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS; | ||
| 21666 | |||
| 21667 | typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS | ||
| 21668 | { | ||
| 21669 | UINT AdditionalWidth; | ||
| 21670 | UINT AdditionalHeight; | ||
| 21671 | } D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS; | ||
| 21672 | |||
| 21673 | typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS | ||
| 21674 | { | ||
| 21675 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type; | ||
| 21676 | union | ||
| 21677 | { | ||
| 21678 | D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear; | ||
| 21679 | D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; | ||
| 21680 | } ; | ||
| 21681 | } D3D12_RENDER_PASS_BEGINNING_ACCESS; | ||
| 21682 | |||
| 21683 | typedef | ||
| 21684 | enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE | ||
| 21685 | { | ||
| 21686 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD = 0, | ||
| 21687 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD + 1 ) , | ||
| 21688 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE + 1 ) , | ||
| 21689 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE + 1 ) , | ||
| 21690 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS + 1 ) , | ||
| 21691 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER + 1 ) , | ||
| 21692 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV = ( D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV + 1 ) | ||
| 21693 | } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE; | ||
| 21694 | |||
| 21695 | typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS | ||
| 21696 | { | ||
| 21697 | UINT SrcSubresource; | ||
| 21698 | UINT DstSubresource; | ||
| 21699 | UINT DstX; | ||
| 21700 | UINT DstY; | ||
| 21701 | D3D12_RECT SrcRect; | ||
| 21702 | } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS; | ||
| 21703 | |||
| 21704 | typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS | ||
| 21705 | { | ||
| 21706 | ID3D12Resource *pSrcResource; | ||
| 21707 | ID3D12Resource *pDstResource; | ||
| 21708 | UINT SubresourceCount; | ||
| 21709 | _Field_size_full_(SubresourceCount) const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters; | ||
| 21710 | DXGI_FORMAT Format; | ||
| 21711 | D3D12_RESOLVE_MODE ResolveMode; | ||
| 21712 | BOOL PreserveResolveSource; | ||
| 21713 | } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS; | ||
| 21714 | |||
| 21715 | typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS | ||
| 21716 | { | ||
| 21717 | UINT AdditionalWidth; | ||
| 21718 | UINT AdditionalHeight; | ||
| 21719 | } D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS; | ||
| 21720 | |||
| 21721 | typedef struct D3D12_RENDER_PASS_ENDING_ACCESS | ||
| 21722 | { | ||
| 21723 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type; | ||
| 21724 | union | ||
| 21725 | { | ||
| 21726 | D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve; | ||
| 21727 | D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; | ||
| 21728 | } ; | ||
| 21729 | } D3D12_RENDER_PASS_ENDING_ACCESS; | ||
| 21730 | |||
| 21731 | typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC | ||
| 21732 | { | ||
| 21733 | D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; | ||
| 21734 | D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess; | ||
| 21735 | D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess; | ||
| 21736 | } D3D12_RENDER_PASS_RENDER_TARGET_DESC; | ||
| 21737 | |||
| 21738 | typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC | ||
| 21739 | { | ||
| 21740 | D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; | ||
| 21741 | D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess; | ||
| 21742 | D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess; | ||
| 21743 | D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess; | ||
| 21744 | D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess; | ||
| 21745 | } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC; | ||
| 21746 | |||
| 21747 | typedef | ||
| 21748 | enum D3D12_RENDER_PASS_FLAGS | ||
| 21749 | { | ||
| 21750 | D3D12_RENDER_PASS_FLAG_NONE = 0, | ||
| 21751 | D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1, | ||
| 21752 | D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2, | ||
| 21753 | D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4, | ||
| 21754 | D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8, | ||
| 21755 | D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10 | ||
| 21756 | } D3D12_RENDER_PASS_FLAGS; | ||
| 21757 | |||
| 21758 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS ) | ||
| 21759 | |||
| 21760 | |||
| 21761 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_c_ifspec; | ||
| 21762 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0054_v0_0_s_ifspec; | ||
| 21763 | |||
| 21764 | #ifndef __ID3D12MetaCommand_INTERFACE_DEFINED__ | ||
| 21765 | #define __ID3D12MetaCommand_INTERFACE_DEFINED__ | ||
| 21766 | |||
| 21767 | /* interface ID3D12MetaCommand */ | ||
| 21768 | /* [unique][local][object][uuid] */ | ||
| 21769 | |||
| 21770 | |||
| 21771 | EXTERN_C const IID IID_ID3D12MetaCommand; | ||
| 21772 | |||
| 21773 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 21774 | |||
| 21775 | MIDL_INTERFACE("DBB84C27-36CE-4FC9-B801-F048C46AC570") | ||
| 21776 | ID3D12MetaCommand : public ID3D12Pageable | ||
| 21777 | { | ||
| 21778 | public: | ||
| 21779 | virtual UINT64 STDMETHODCALLTYPE GetRequiredParameterResourceSize( | ||
| 21780 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 21781 | _In_ UINT ParameterIndex) = 0; | ||
| 21782 | |||
| 21783 | }; | ||
| 21784 | |||
| 21785 | |||
| 21786 | #else /* C style interface */ | ||
| 21787 | |||
| 21788 | typedef struct ID3D12MetaCommandVtbl | ||
| 21789 | { | ||
| 21790 | BEGIN_INTERFACE | ||
| 21791 | |||
| 21792 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 21793 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 21794 | ID3D12MetaCommand * This, | ||
| 21795 | REFIID riid, | ||
| 21796 | _COM_Outptr_ void **ppvObject); | ||
| 21797 | |||
| 21798 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 21799 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 21800 | ID3D12MetaCommand * This); | ||
| 21801 | |||
| 21802 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 21803 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 21804 | ID3D12MetaCommand * This); | ||
| 21805 | |||
| 21806 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 21807 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 21808 | ID3D12MetaCommand * This, | ||
| 21809 | _In_ REFGUID guid, | ||
| 21810 | _Inout_ UINT *pDataSize, | ||
| 21811 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 21812 | |||
| 21813 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 21814 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 21815 | ID3D12MetaCommand * This, | ||
| 21816 | _In_ REFGUID guid, | ||
| 21817 | _In_ UINT DataSize, | ||
| 21818 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 21819 | |||
| 21820 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 21821 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 21822 | ID3D12MetaCommand * This, | ||
| 21823 | _In_ REFGUID guid, | ||
| 21824 | _In_opt_ const IUnknown *pData); | ||
| 21825 | |||
| 21826 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 21827 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 21828 | ID3D12MetaCommand * This, | ||
| 21829 | _In_z_ LPCWSTR Name); | ||
| 21830 | |||
| 21831 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 21832 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 21833 | ID3D12MetaCommand * This, | ||
| 21834 | REFIID riid, | ||
| 21835 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 21836 | |||
| 21837 | DECLSPEC_XFGVIRT(ID3D12MetaCommand, GetRequiredParameterResourceSize) | ||
| 21838 | UINT64 ( STDMETHODCALLTYPE *GetRequiredParameterResourceSize )( | ||
| 21839 | ID3D12MetaCommand * This, | ||
| 21840 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 21841 | _In_ UINT ParameterIndex); | ||
| 21842 | |||
| 21843 | END_INTERFACE | ||
| 21844 | } ID3D12MetaCommandVtbl; | ||
| 21845 | |||
| 21846 | interface ID3D12MetaCommand | ||
| 21847 | { | ||
| 21848 | CONST_VTBL struct ID3D12MetaCommandVtbl *lpVtbl; | ||
| 21849 | }; | ||
| 21850 | |||
| 21851 | |||
| 21852 | |||
| 21853 | #ifdef COBJMACROS | ||
| 21854 | |||
| 21855 | |||
| 21856 | #define ID3D12MetaCommand_QueryInterface(This,riid,ppvObject) \ | ||
| 21857 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 21858 | |||
| 21859 | #define ID3D12MetaCommand_AddRef(This) \ | ||
| 21860 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 21861 | |||
| 21862 | #define ID3D12MetaCommand_Release(This) \ | ||
| 21863 | ( (This)->lpVtbl -> Release(This) ) | ||
| 21864 | |||
| 21865 | |||
| 21866 | #define ID3D12MetaCommand_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 21867 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 21868 | |||
| 21869 | #define ID3D12MetaCommand_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 21870 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 21871 | |||
| 21872 | #define ID3D12MetaCommand_SetPrivateDataInterface(This,guid,pData) \ | ||
| 21873 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 21874 | |||
| 21875 | #define ID3D12MetaCommand_SetName(This,Name) \ | ||
| 21876 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 21877 | |||
| 21878 | |||
| 21879 | #define ID3D12MetaCommand_GetDevice(This,riid,ppvDevice) \ | ||
| 21880 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 21881 | |||
| 21882 | |||
| 21883 | |||
| 21884 | #define ID3D12MetaCommand_GetRequiredParameterResourceSize(This,Stage,ParameterIndex) \ | ||
| 21885 | ( (This)->lpVtbl -> GetRequiredParameterResourceSize(This,Stage,ParameterIndex) ) | ||
| 21886 | |||
| 21887 | #endif /* COBJMACROS */ | ||
| 21888 | |||
| 21889 | |||
| 21890 | #endif /* C style interface */ | ||
| 21891 | |||
| 21892 | |||
| 21893 | |||
| 21894 | |||
| 21895 | #endif /* __ID3D12MetaCommand_INTERFACE_DEFINED__ */ | ||
| 21896 | |||
| 21897 | |||
| 21898 | /* interface __MIDL_itf_d3d12_0000_0055 */ | ||
| 21899 | /* [local] */ | ||
| 21900 | |||
| 21901 | typedef struct D3D12_DISPATCH_RAYS_DESC | ||
| 21902 | { | ||
| 21903 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord; | ||
| 21904 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable; | ||
| 21905 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable; | ||
| 21906 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable; | ||
| 21907 | UINT Width; | ||
| 21908 | UINT Height; | ||
| 21909 | UINT Depth; | ||
| 21910 | } D3D12_DISPATCH_RAYS_DESC; | ||
| 21911 | |||
| 21912 | typedef | ||
| 21913 | enum D3D12_SET_WORK_GRAPH_FLAGS | ||
| 21914 | { | ||
| 21915 | D3D12_SET_WORK_GRAPH_FLAG_NONE = 0, | ||
| 21916 | D3D12_SET_WORK_GRAPH_FLAG_INITIALIZE = 0x1 | ||
| 21917 | } D3D12_SET_WORK_GRAPH_FLAGS; | ||
| 21918 | |||
| 21919 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_SET_WORK_GRAPH_FLAGS ) | ||
| 21920 | typedef struct D3D12_SET_WORK_GRAPH_DESC | ||
| 21921 | { | ||
| 21922 | D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; | ||
| 21923 | D3D12_SET_WORK_GRAPH_FLAGS Flags; | ||
| 21924 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemory; | ||
| 21925 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE NodeLocalRootArgumentsTable; | ||
| 21926 | } D3D12_SET_WORK_GRAPH_DESC; | ||
| 21927 | |||
| 21928 | typedef struct D3D12_SET_RAYTRACING_PIPELINE_DESC | ||
| 21929 | { | ||
| 21930 | D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; | ||
| 21931 | } D3D12_SET_RAYTRACING_PIPELINE_DESC; | ||
| 21932 | |||
| 21933 | typedef struct D3D12_SET_GENERIC_PIPELINE_DESC | ||
| 21934 | { | ||
| 21935 | D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; | ||
| 21936 | } D3D12_SET_GENERIC_PIPELINE_DESC; | ||
| 21937 | |||
| 21938 | typedef | ||
| 21939 | enum D3D12_PROGRAM_TYPE | ||
| 21940 | { | ||
| 21941 | D3D12_PROGRAM_TYPE_GENERIC_PIPELINE = 1, | ||
| 21942 | D3D12_PROGRAM_TYPE_RAYTRACING_PIPELINE = 4, | ||
| 21943 | D3D12_PROGRAM_TYPE_WORK_GRAPH = 5 | ||
| 21944 | } D3D12_PROGRAM_TYPE; | ||
| 21945 | |||
| 21946 | typedef struct D3D12_SET_PROGRAM_DESC | ||
| 21947 | { | ||
| 21948 | D3D12_PROGRAM_TYPE Type; | ||
| 21949 | union | ||
| 21950 | { | ||
| 21951 | D3D12_SET_GENERIC_PIPELINE_DESC GenericPipeline; | ||
| 21952 | D3D12_SET_RAYTRACING_PIPELINE_DESC RaytracingPipeline; | ||
| 21953 | D3D12_SET_WORK_GRAPH_DESC WorkGraph; | ||
| 21954 | } ; | ||
| 21955 | } D3D12_SET_PROGRAM_DESC; | ||
| 21956 | |||
| 21957 | typedef | ||
| 21958 | enum D3D12_DISPATCH_MODE | ||
| 21959 | { | ||
| 21960 | D3D12_DISPATCH_MODE_NODE_CPU_INPUT = 0, | ||
| 21961 | D3D12_DISPATCH_MODE_NODE_GPU_INPUT = 1, | ||
| 21962 | D3D12_DISPATCH_MODE_MULTI_NODE_CPU_INPUT = 2, | ||
| 21963 | D3D12_DISPATCH_MODE_MULTI_NODE_GPU_INPUT = 3 | ||
| 21964 | } D3D12_DISPATCH_MODE; | ||
| 21965 | |||
| 21966 | typedef struct D3D12_NODE_CPU_INPUT | ||
| 21967 | { | ||
| 21968 | UINT EntrypointIndex; | ||
| 21969 | UINT NumRecords; | ||
| 21970 | const void *pRecords; | ||
| 21971 | UINT64 RecordStrideInBytes; | ||
| 21972 | } D3D12_NODE_CPU_INPUT; | ||
| 21973 | |||
| 21974 | typedef struct D3D12_NODE_GPU_INPUT | ||
| 21975 | { | ||
| 21976 | UINT EntrypointIndex; | ||
| 21977 | UINT NumRecords; | ||
| 21978 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE Records; | ||
| 21979 | } D3D12_NODE_GPU_INPUT; | ||
| 21980 | |||
| 21981 | typedef struct D3D12_MULTI_NODE_CPU_INPUT | ||
| 21982 | { | ||
| 21983 | UINT NumNodeInputs; | ||
| 21984 | const D3D12_NODE_CPU_INPUT *pNodeInputs; | ||
| 21985 | UINT64 NodeInputStrideInBytes; | ||
| 21986 | } D3D12_MULTI_NODE_CPU_INPUT; | ||
| 21987 | |||
| 21988 | typedef struct D3D12_MULTI_NODE_GPU_INPUT | ||
| 21989 | { | ||
| 21990 | UINT NumNodeInputs; | ||
| 21991 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE NodeInputs; | ||
| 21992 | } D3D12_MULTI_NODE_GPU_INPUT; | ||
| 21993 | |||
| 21994 | typedef struct D3D12_DISPATCH_GRAPH_DESC | ||
| 21995 | { | ||
| 21996 | D3D12_DISPATCH_MODE Mode; | ||
| 21997 | union | ||
| 21998 | { | ||
| 21999 | D3D12_NODE_CPU_INPUT NodeCPUInput; | ||
| 22000 | D3D12_GPU_VIRTUAL_ADDRESS NodeGPUInput; | ||
| 22001 | D3D12_MULTI_NODE_CPU_INPUT MultiNodeCPUInput; | ||
| 22002 | D3D12_GPU_VIRTUAL_ADDRESS MultiNodeGPUInput; | ||
| 22003 | } ; | ||
| 22004 | } D3D12_DISPATCH_GRAPH_DESC; | ||
| 22005 | |||
| 22006 | |||
| 22007 | |||
| 22008 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_c_ifspec; | ||
| 22009 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0055_v0_0_s_ifspec; | ||
| 22010 | |||
| 22011 | #ifndef __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ | ||
| 22012 | #define __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ | ||
| 22013 | |||
| 22014 | /* interface ID3D12GraphicsCommandList4 */ | ||
| 22015 | /* [unique][local][object][uuid] */ | ||
| 22016 | |||
| 22017 | |||
| 22018 | EXTERN_C const IID IID_ID3D12GraphicsCommandList4; | ||
| 22019 | |||
| 22020 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 22021 | |||
| 22022 | MIDL_INTERFACE("8754318e-d3a9-4541-98cf-645b50dc4874") | ||
| 22023 | ID3D12GraphicsCommandList4 : public ID3D12GraphicsCommandList3 | ||
| 22024 | { | ||
| 22025 | public: | ||
| 22026 | virtual void STDMETHODCALLTYPE BeginRenderPass( | ||
| 22027 | _In_ UINT NumRenderTargets, | ||
| 22028 | _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, | ||
| 22029 | _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, | ||
| 22030 | D3D12_RENDER_PASS_FLAGS Flags) = 0; | ||
| 22031 | |||
| 22032 | virtual void STDMETHODCALLTYPE EndRenderPass( void) = 0; | ||
| 22033 | |||
| 22034 | virtual void STDMETHODCALLTYPE InitializeMetaCommand( | ||
| 22035 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 22036 | _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, | ||
| 22037 | _In_ SIZE_T InitializationParametersDataSizeInBytes) = 0; | ||
| 22038 | |||
| 22039 | virtual void STDMETHODCALLTYPE ExecuteMetaCommand( | ||
| 22040 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 22041 | _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, | ||
| 22042 | _In_ SIZE_T ExecutionParametersDataSizeInBytes) = 0; | ||
| 22043 | |||
| 22044 | virtual void STDMETHODCALLTYPE BuildRaytracingAccelerationStructure( | ||
| 22045 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, | ||
| 22046 | _In_ UINT NumPostbuildInfoDescs, | ||
| 22047 | _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs) = 0; | ||
| 22048 | |||
| 22049 | virtual void STDMETHODCALLTYPE EmitRaytracingAccelerationStructurePostbuildInfo( | ||
| 22050 | _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, | ||
| 22051 | _In_ UINT NumSourceAccelerationStructures, | ||
| 22052 | _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData) = 0; | ||
| 22053 | |||
| 22054 | virtual void STDMETHODCALLTYPE CopyRaytracingAccelerationStructure( | ||
| 22055 | _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, | ||
| 22056 | _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, | ||
| 22057 | _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode) = 0; | ||
| 22058 | |||
| 22059 | virtual void STDMETHODCALLTYPE SetPipelineState1( | ||
| 22060 | _In_ ID3D12StateObject *pStateObject) = 0; | ||
| 22061 | |||
| 22062 | virtual void STDMETHODCALLTYPE DispatchRays( | ||
| 22063 | _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc) = 0; | ||
| 22064 | |||
| 22065 | }; | ||
| 22066 | |||
| 22067 | |||
| 22068 | #else /* C style interface */ | ||
| 22069 | |||
| 22070 | typedef struct ID3D12GraphicsCommandList4Vtbl | ||
| 22071 | { | ||
| 22072 | BEGIN_INTERFACE | ||
| 22073 | |||
| 22074 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 22075 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 22076 | ID3D12GraphicsCommandList4 * This, | ||
| 22077 | REFIID riid, | ||
| 22078 | _COM_Outptr_ void **ppvObject); | ||
| 22079 | |||
| 22080 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 22081 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 22082 | ID3D12GraphicsCommandList4 * This); | ||
| 22083 | |||
| 22084 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 22085 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 22086 | ID3D12GraphicsCommandList4 * This); | ||
| 22087 | |||
| 22088 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 22089 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 22090 | ID3D12GraphicsCommandList4 * This, | ||
| 22091 | _In_ REFGUID guid, | ||
| 22092 | _Inout_ UINT *pDataSize, | ||
| 22093 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 22094 | |||
| 22095 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 22096 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 22097 | ID3D12GraphicsCommandList4 * This, | ||
| 22098 | _In_ REFGUID guid, | ||
| 22099 | _In_ UINT DataSize, | ||
| 22100 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 22101 | |||
| 22102 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 22103 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 22104 | ID3D12GraphicsCommandList4 * This, | ||
| 22105 | _In_ REFGUID guid, | ||
| 22106 | _In_opt_ const IUnknown *pData); | ||
| 22107 | |||
| 22108 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 22109 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 22110 | ID3D12GraphicsCommandList4 * This, | ||
| 22111 | _In_z_ LPCWSTR Name); | ||
| 22112 | |||
| 22113 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 22114 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 22115 | ID3D12GraphicsCommandList4 * This, | ||
| 22116 | REFIID riid, | ||
| 22117 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 22118 | |||
| 22119 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 22120 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 22121 | ID3D12GraphicsCommandList4 * This); | ||
| 22122 | |||
| 22123 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 22124 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 22125 | ID3D12GraphicsCommandList4 * This); | ||
| 22126 | |||
| 22127 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 22128 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 22129 | ID3D12GraphicsCommandList4 * This, | ||
| 22130 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 22131 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 22132 | |||
| 22133 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 22134 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 22135 | ID3D12GraphicsCommandList4 * This, | ||
| 22136 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 22137 | |||
| 22138 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 22139 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 22140 | ID3D12GraphicsCommandList4 * This, | ||
| 22141 | _In_ UINT VertexCountPerInstance, | ||
| 22142 | _In_ UINT InstanceCount, | ||
| 22143 | _In_ UINT StartVertexLocation, | ||
| 22144 | _In_ UINT StartInstanceLocation); | ||
| 22145 | |||
| 22146 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 22147 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 22148 | ID3D12GraphicsCommandList4 * This, | ||
| 22149 | _In_ UINT IndexCountPerInstance, | ||
| 22150 | _In_ UINT InstanceCount, | ||
| 22151 | _In_ UINT StartIndexLocation, | ||
| 22152 | _In_ INT BaseVertexLocation, | ||
| 22153 | _In_ UINT StartInstanceLocation); | ||
| 22154 | |||
| 22155 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 22156 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 22157 | ID3D12GraphicsCommandList4 * This, | ||
| 22158 | _In_ UINT ThreadGroupCountX, | ||
| 22159 | _In_ UINT ThreadGroupCountY, | ||
| 22160 | _In_ UINT ThreadGroupCountZ); | ||
| 22161 | |||
| 22162 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 22163 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 22164 | ID3D12GraphicsCommandList4 * This, | ||
| 22165 | _In_ ID3D12Resource *pDstBuffer, | ||
| 22166 | UINT64 DstOffset, | ||
| 22167 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 22168 | UINT64 SrcOffset, | ||
| 22169 | UINT64 NumBytes); | ||
| 22170 | |||
| 22171 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 22172 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 22173 | ID3D12GraphicsCommandList4 * This, | ||
| 22174 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 22175 | UINT DstX, | ||
| 22176 | UINT DstY, | ||
| 22177 | UINT DstZ, | ||
| 22178 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 22179 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 22180 | |||
| 22181 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 22182 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 22183 | ID3D12GraphicsCommandList4 * This, | ||
| 22184 | _In_ ID3D12Resource *pDstResource, | ||
| 22185 | _In_ ID3D12Resource *pSrcResource); | ||
| 22186 | |||
| 22187 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 22188 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 22189 | ID3D12GraphicsCommandList4 * This, | ||
| 22190 | _In_ ID3D12Resource *pTiledResource, | ||
| 22191 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 22192 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 22193 | _In_ ID3D12Resource *pBuffer, | ||
| 22194 | UINT64 BufferStartOffsetInBytes, | ||
| 22195 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 22196 | |||
| 22197 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 22198 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 22199 | ID3D12GraphicsCommandList4 * This, | ||
| 22200 | _In_ ID3D12Resource *pDstResource, | ||
| 22201 | _In_ UINT DstSubresource, | ||
| 22202 | _In_ ID3D12Resource *pSrcResource, | ||
| 22203 | _In_ UINT SrcSubresource, | ||
| 22204 | _In_ DXGI_FORMAT Format); | ||
| 22205 | |||
| 22206 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 22207 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 22208 | ID3D12GraphicsCommandList4 * This, | ||
| 22209 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 22210 | |||
| 22211 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 22212 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 22213 | ID3D12GraphicsCommandList4 * This, | ||
| 22214 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 22215 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 22216 | |||
| 22217 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 22218 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 22219 | ID3D12GraphicsCommandList4 * This, | ||
| 22220 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 22221 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 22222 | |||
| 22223 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 22224 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 22225 | ID3D12GraphicsCommandList4 * This, | ||
| 22226 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 22227 | |||
| 22228 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 22229 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 22230 | ID3D12GraphicsCommandList4 * This, | ||
| 22231 | _In_ UINT StencilRef); | ||
| 22232 | |||
| 22233 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 22234 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 22235 | ID3D12GraphicsCommandList4 * This, | ||
| 22236 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 22237 | |||
| 22238 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 22239 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 22240 | ID3D12GraphicsCommandList4 * This, | ||
| 22241 | _In_ UINT NumBarriers, | ||
| 22242 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 22243 | |||
| 22244 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 22245 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 22246 | ID3D12GraphicsCommandList4 * This, | ||
| 22247 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 22248 | |||
| 22249 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 22250 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 22251 | ID3D12GraphicsCommandList4 * This, | ||
| 22252 | _In_ UINT NumDescriptorHeaps, | ||
| 22253 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 22254 | |||
| 22255 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 22256 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 22257 | ID3D12GraphicsCommandList4 * This, | ||
| 22258 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 22259 | |||
| 22260 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 22261 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 22262 | ID3D12GraphicsCommandList4 * This, | ||
| 22263 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 22264 | |||
| 22265 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 22266 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 22267 | ID3D12GraphicsCommandList4 * This, | ||
| 22268 | _In_ UINT RootParameterIndex, | ||
| 22269 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 22270 | |||
| 22271 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 22272 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 22273 | ID3D12GraphicsCommandList4 * This, | ||
| 22274 | _In_ UINT RootParameterIndex, | ||
| 22275 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 22276 | |||
| 22277 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 22278 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 22279 | ID3D12GraphicsCommandList4 * This, | ||
| 22280 | _In_ UINT RootParameterIndex, | ||
| 22281 | _In_ UINT SrcData, | ||
| 22282 | _In_ UINT DestOffsetIn32BitValues); | ||
| 22283 | |||
| 22284 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 22285 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 22286 | ID3D12GraphicsCommandList4 * This, | ||
| 22287 | _In_ UINT RootParameterIndex, | ||
| 22288 | _In_ UINT SrcData, | ||
| 22289 | _In_ UINT DestOffsetIn32BitValues); | ||
| 22290 | |||
| 22291 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 22292 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 22293 | ID3D12GraphicsCommandList4 * This, | ||
| 22294 | _In_ UINT RootParameterIndex, | ||
| 22295 | _In_ UINT Num32BitValuesToSet, | ||
| 22296 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 22297 | _In_ UINT DestOffsetIn32BitValues); | ||
| 22298 | |||
| 22299 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 22300 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 22301 | ID3D12GraphicsCommandList4 * This, | ||
| 22302 | _In_ UINT RootParameterIndex, | ||
| 22303 | _In_ UINT Num32BitValuesToSet, | ||
| 22304 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 22305 | _In_ UINT DestOffsetIn32BitValues); | ||
| 22306 | |||
| 22307 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 22308 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 22309 | ID3D12GraphicsCommandList4 * This, | ||
| 22310 | _In_ UINT RootParameterIndex, | ||
| 22311 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 22312 | |||
| 22313 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 22314 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 22315 | ID3D12GraphicsCommandList4 * This, | ||
| 22316 | _In_ UINT RootParameterIndex, | ||
| 22317 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 22318 | |||
| 22319 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 22320 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 22321 | ID3D12GraphicsCommandList4 * This, | ||
| 22322 | _In_ UINT RootParameterIndex, | ||
| 22323 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 22324 | |||
| 22325 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 22326 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 22327 | ID3D12GraphicsCommandList4 * This, | ||
| 22328 | _In_ UINT RootParameterIndex, | ||
| 22329 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 22330 | |||
| 22331 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 22332 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 22333 | ID3D12GraphicsCommandList4 * This, | ||
| 22334 | _In_ UINT RootParameterIndex, | ||
| 22335 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 22336 | |||
| 22337 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 22338 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 22339 | ID3D12GraphicsCommandList4 * This, | ||
| 22340 | _In_ UINT RootParameterIndex, | ||
| 22341 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 22342 | |||
| 22343 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 22344 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 22345 | ID3D12GraphicsCommandList4 * This, | ||
| 22346 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 22347 | |||
| 22348 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 22349 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 22350 | ID3D12GraphicsCommandList4 * This, | ||
| 22351 | _In_ UINT StartSlot, | ||
| 22352 | _In_ UINT NumViews, | ||
| 22353 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 22354 | |||
| 22355 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 22356 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 22357 | ID3D12GraphicsCommandList4 * This, | ||
| 22358 | _In_ UINT StartSlot, | ||
| 22359 | _In_ UINT NumViews, | ||
| 22360 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 22361 | |||
| 22362 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 22363 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 22364 | ID3D12GraphicsCommandList4 * This, | ||
| 22365 | _In_ UINT NumRenderTargetDescriptors, | ||
| 22366 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 22367 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 22368 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 22369 | |||
| 22370 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 22371 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 22372 | ID3D12GraphicsCommandList4 * This, | ||
| 22373 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 22374 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 22375 | _In_ FLOAT Depth, | ||
| 22376 | _In_ UINT8 Stencil, | ||
| 22377 | _In_ UINT NumRects, | ||
| 22378 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 22379 | |||
| 22380 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 22381 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 22382 | ID3D12GraphicsCommandList4 * This, | ||
| 22383 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 22384 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 22385 | _In_ UINT NumRects, | ||
| 22386 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 22387 | |||
| 22388 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 22389 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 22390 | ID3D12GraphicsCommandList4 * This, | ||
| 22391 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 22392 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 22393 | _In_ ID3D12Resource *pResource, | ||
| 22394 | _In_ const UINT Values[ 4 ], | ||
| 22395 | _In_ UINT NumRects, | ||
| 22396 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 22397 | |||
| 22398 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 22399 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 22400 | ID3D12GraphicsCommandList4 * This, | ||
| 22401 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 22402 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 22403 | _In_ ID3D12Resource *pResource, | ||
| 22404 | _In_ const FLOAT Values[ 4 ], | ||
| 22405 | _In_ UINT NumRects, | ||
| 22406 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 22407 | |||
| 22408 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 22409 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 22410 | ID3D12GraphicsCommandList4 * This, | ||
| 22411 | _In_ ID3D12Resource *pResource, | ||
| 22412 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 22413 | |||
| 22414 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 22415 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 22416 | ID3D12GraphicsCommandList4 * This, | ||
| 22417 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 22418 | _In_ D3D12_QUERY_TYPE Type, | ||
| 22419 | _In_ UINT Index); | ||
| 22420 | |||
| 22421 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 22422 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 22423 | ID3D12GraphicsCommandList4 * This, | ||
| 22424 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 22425 | _In_ D3D12_QUERY_TYPE Type, | ||
| 22426 | _In_ UINT Index); | ||
| 22427 | |||
| 22428 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 22429 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 22430 | ID3D12GraphicsCommandList4 * This, | ||
| 22431 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 22432 | _In_ D3D12_QUERY_TYPE Type, | ||
| 22433 | _In_ UINT StartIndex, | ||
| 22434 | _In_ UINT NumQueries, | ||
| 22435 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 22436 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 22437 | |||
| 22438 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 22439 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 22440 | ID3D12GraphicsCommandList4 * This, | ||
| 22441 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 22442 | _In_ UINT64 AlignedBufferOffset, | ||
| 22443 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 22444 | |||
| 22445 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 22446 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 22447 | ID3D12GraphicsCommandList4 * This, | ||
| 22448 | UINT Metadata, | ||
| 22449 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 22450 | UINT Size); | ||
| 22451 | |||
| 22452 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 22453 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 22454 | ID3D12GraphicsCommandList4 * This, | ||
| 22455 | UINT Metadata, | ||
| 22456 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 22457 | UINT Size); | ||
| 22458 | |||
| 22459 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 22460 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 22461 | ID3D12GraphicsCommandList4 * This); | ||
| 22462 | |||
| 22463 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 22464 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 22465 | ID3D12GraphicsCommandList4 * This, | ||
| 22466 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 22467 | _In_ UINT MaxCommandCount, | ||
| 22468 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 22469 | _In_ UINT64 ArgumentBufferOffset, | ||
| 22470 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 22471 | _In_ UINT64 CountBufferOffset); | ||
| 22472 | |||
| 22473 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 22474 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 22475 | ID3D12GraphicsCommandList4 * This, | ||
| 22476 | _In_ ID3D12Resource *pDstBuffer, | ||
| 22477 | UINT64 DstOffset, | ||
| 22478 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 22479 | UINT64 SrcOffset, | ||
| 22480 | UINT Dependencies, | ||
| 22481 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 22482 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 22483 | |||
| 22484 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 22485 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 22486 | ID3D12GraphicsCommandList4 * This, | ||
| 22487 | _In_ ID3D12Resource *pDstBuffer, | ||
| 22488 | UINT64 DstOffset, | ||
| 22489 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 22490 | UINT64 SrcOffset, | ||
| 22491 | UINT Dependencies, | ||
| 22492 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 22493 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 22494 | |||
| 22495 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 22496 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 22497 | ID3D12GraphicsCommandList4 * This, | ||
| 22498 | _In_ FLOAT Min, | ||
| 22499 | _In_ FLOAT Max); | ||
| 22500 | |||
| 22501 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 22502 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 22503 | ID3D12GraphicsCommandList4 * This, | ||
| 22504 | _In_ UINT NumSamplesPerPixel, | ||
| 22505 | _In_ UINT NumPixels, | ||
| 22506 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 22507 | |||
| 22508 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 22509 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 22510 | ID3D12GraphicsCommandList4 * This, | ||
| 22511 | _In_ ID3D12Resource *pDstResource, | ||
| 22512 | _In_ UINT DstSubresource, | ||
| 22513 | _In_ UINT DstX, | ||
| 22514 | _In_ UINT DstY, | ||
| 22515 | _In_ ID3D12Resource *pSrcResource, | ||
| 22516 | _In_ UINT SrcSubresource, | ||
| 22517 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 22518 | _In_ DXGI_FORMAT Format, | ||
| 22519 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 22520 | |||
| 22521 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 22522 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 22523 | ID3D12GraphicsCommandList4 * This, | ||
| 22524 | _In_ UINT Mask); | ||
| 22525 | |||
| 22526 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) | ||
| 22527 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 22528 | ID3D12GraphicsCommandList4 * This, | ||
| 22529 | UINT Count, | ||
| 22530 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 22531 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 22532 | |||
| 22533 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) | ||
| 22534 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 22535 | ID3D12GraphicsCommandList4 * This, | ||
| 22536 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 22537 | |||
| 22538 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) | ||
| 22539 | void ( STDMETHODCALLTYPE *BeginRenderPass )( | ||
| 22540 | ID3D12GraphicsCommandList4 * This, | ||
| 22541 | _In_ UINT NumRenderTargets, | ||
| 22542 | _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, | ||
| 22543 | _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, | ||
| 22544 | D3D12_RENDER_PASS_FLAGS Flags); | ||
| 22545 | |||
| 22546 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) | ||
| 22547 | void ( STDMETHODCALLTYPE *EndRenderPass )( | ||
| 22548 | ID3D12GraphicsCommandList4 * This); | ||
| 22549 | |||
| 22550 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) | ||
| 22551 | void ( STDMETHODCALLTYPE *InitializeMetaCommand )( | ||
| 22552 | ID3D12GraphicsCommandList4 * This, | ||
| 22553 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 22554 | _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, | ||
| 22555 | _In_ SIZE_T InitializationParametersDataSizeInBytes); | ||
| 22556 | |||
| 22557 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) | ||
| 22558 | void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( | ||
| 22559 | ID3D12GraphicsCommandList4 * This, | ||
| 22560 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 22561 | _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, | ||
| 22562 | _In_ SIZE_T ExecutionParametersDataSizeInBytes); | ||
| 22563 | |||
| 22564 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) | ||
| 22565 | void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( | ||
| 22566 | ID3D12GraphicsCommandList4 * This, | ||
| 22567 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, | ||
| 22568 | _In_ UINT NumPostbuildInfoDescs, | ||
| 22569 | _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); | ||
| 22570 | |||
| 22571 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) | ||
| 22572 | void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( | ||
| 22573 | ID3D12GraphicsCommandList4 * This, | ||
| 22574 | _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, | ||
| 22575 | _In_ UINT NumSourceAccelerationStructures, | ||
| 22576 | _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); | ||
| 22577 | |||
| 22578 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) | ||
| 22579 | void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( | ||
| 22580 | ID3D12GraphicsCommandList4 * This, | ||
| 22581 | _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, | ||
| 22582 | _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, | ||
| 22583 | _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); | ||
| 22584 | |||
| 22585 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) | ||
| 22586 | void ( STDMETHODCALLTYPE *SetPipelineState1 )( | ||
| 22587 | ID3D12GraphicsCommandList4 * This, | ||
| 22588 | _In_ ID3D12StateObject *pStateObject); | ||
| 22589 | |||
| 22590 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) | ||
| 22591 | void ( STDMETHODCALLTYPE *DispatchRays )( | ||
| 22592 | ID3D12GraphicsCommandList4 * This, | ||
| 22593 | _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); | ||
| 22594 | |||
| 22595 | END_INTERFACE | ||
| 22596 | } ID3D12GraphicsCommandList4Vtbl; | ||
| 22597 | |||
| 22598 | interface ID3D12GraphicsCommandList4 | ||
| 22599 | { | ||
| 22600 | CONST_VTBL struct ID3D12GraphicsCommandList4Vtbl *lpVtbl; | ||
| 22601 | }; | ||
| 22602 | |||
| 22603 | |||
| 22604 | |||
| 22605 | #ifdef COBJMACROS | ||
| 22606 | |||
| 22607 | |||
| 22608 | #define ID3D12GraphicsCommandList4_QueryInterface(This,riid,ppvObject) \ | ||
| 22609 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 22610 | |||
| 22611 | #define ID3D12GraphicsCommandList4_AddRef(This) \ | ||
| 22612 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 22613 | |||
| 22614 | #define ID3D12GraphicsCommandList4_Release(This) \ | ||
| 22615 | ( (This)->lpVtbl -> Release(This) ) | ||
| 22616 | |||
| 22617 | |||
| 22618 | #define ID3D12GraphicsCommandList4_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 22619 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 22620 | |||
| 22621 | #define ID3D12GraphicsCommandList4_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 22622 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 22623 | |||
| 22624 | #define ID3D12GraphicsCommandList4_SetPrivateDataInterface(This,guid,pData) \ | ||
| 22625 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 22626 | |||
| 22627 | #define ID3D12GraphicsCommandList4_SetName(This,Name) \ | ||
| 22628 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 22629 | |||
| 22630 | |||
| 22631 | #define ID3D12GraphicsCommandList4_GetDevice(This,riid,ppvDevice) \ | ||
| 22632 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 22633 | |||
| 22634 | |||
| 22635 | #define ID3D12GraphicsCommandList4_GetType(This) \ | ||
| 22636 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 22637 | |||
| 22638 | |||
| 22639 | #define ID3D12GraphicsCommandList4_Close(This) \ | ||
| 22640 | ( (This)->lpVtbl -> Close(This) ) | ||
| 22641 | |||
| 22642 | #define ID3D12GraphicsCommandList4_Reset(This,pAllocator,pInitialState) \ | ||
| 22643 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 22644 | |||
| 22645 | #define ID3D12GraphicsCommandList4_ClearState(This,pPipelineState) \ | ||
| 22646 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 22647 | |||
| 22648 | #define ID3D12GraphicsCommandList4_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 22649 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 22650 | |||
| 22651 | #define ID3D12GraphicsCommandList4_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 22652 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 22653 | |||
| 22654 | #define ID3D12GraphicsCommandList4_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 22655 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 22656 | |||
| 22657 | #define ID3D12GraphicsCommandList4_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 22658 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 22659 | |||
| 22660 | #define ID3D12GraphicsCommandList4_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 22661 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 22662 | |||
| 22663 | #define ID3D12GraphicsCommandList4_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 22664 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 22665 | |||
| 22666 | #define ID3D12GraphicsCommandList4_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 22667 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 22668 | |||
| 22669 | #define ID3D12GraphicsCommandList4_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 22670 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 22671 | |||
| 22672 | #define ID3D12GraphicsCommandList4_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 22673 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 22674 | |||
| 22675 | #define ID3D12GraphicsCommandList4_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 22676 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 22677 | |||
| 22678 | #define ID3D12GraphicsCommandList4_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 22679 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 22680 | |||
| 22681 | #define ID3D12GraphicsCommandList4_OMSetBlendFactor(This,BlendFactor) \ | ||
| 22682 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 22683 | |||
| 22684 | #define ID3D12GraphicsCommandList4_OMSetStencilRef(This,StencilRef) \ | ||
| 22685 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 22686 | |||
| 22687 | #define ID3D12GraphicsCommandList4_SetPipelineState(This,pPipelineState) \ | ||
| 22688 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 22689 | |||
| 22690 | #define ID3D12GraphicsCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 22691 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 22692 | |||
| 22693 | #define ID3D12GraphicsCommandList4_ExecuteBundle(This,pCommandList) \ | ||
| 22694 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 22695 | |||
| 22696 | #define ID3D12GraphicsCommandList4_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 22697 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 22698 | |||
| 22699 | #define ID3D12GraphicsCommandList4_SetComputeRootSignature(This,pRootSignature) \ | ||
| 22700 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 22701 | |||
| 22702 | #define ID3D12GraphicsCommandList4_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 22703 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 22704 | |||
| 22705 | #define ID3D12GraphicsCommandList4_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 22706 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 22707 | |||
| 22708 | #define ID3D12GraphicsCommandList4_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 22709 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 22710 | |||
| 22711 | #define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 22712 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 22713 | |||
| 22714 | #define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 22715 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 22716 | |||
| 22717 | #define ID3D12GraphicsCommandList4_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 22718 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 22719 | |||
| 22720 | #define ID3D12GraphicsCommandList4_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 22721 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 22722 | |||
| 22723 | #define ID3D12GraphicsCommandList4_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 22724 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 22725 | |||
| 22726 | #define ID3D12GraphicsCommandList4_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 22727 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 22728 | |||
| 22729 | #define ID3D12GraphicsCommandList4_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 22730 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 22731 | |||
| 22732 | #define ID3D12GraphicsCommandList4_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 22733 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 22734 | |||
| 22735 | #define ID3D12GraphicsCommandList4_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 22736 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 22737 | |||
| 22738 | #define ID3D12GraphicsCommandList4_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 22739 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 22740 | |||
| 22741 | #define ID3D12GraphicsCommandList4_IASetIndexBuffer(This,pView) \ | ||
| 22742 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 22743 | |||
| 22744 | #define ID3D12GraphicsCommandList4_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 22745 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 22746 | |||
| 22747 | #define ID3D12GraphicsCommandList4_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 22748 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 22749 | |||
| 22750 | #define ID3D12GraphicsCommandList4_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 22751 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 22752 | |||
| 22753 | #define ID3D12GraphicsCommandList4_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 22754 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 22755 | |||
| 22756 | #define ID3D12GraphicsCommandList4_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 22757 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 22758 | |||
| 22759 | #define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 22760 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 22761 | |||
| 22762 | #define ID3D12GraphicsCommandList4_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 22763 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 22764 | |||
| 22765 | #define ID3D12GraphicsCommandList4_DiscardResource(This,pResource,pRegion) \ | ||
| 22766 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 22767 | |||
| 22768 | #define ID3D12GraphicsCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 22769 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 22770 | |||
| 22771 | #define ID3D12GraphicsCommandList4_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 22772 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 22773 | |||
| 22774 | #define ID3D12GraphicsCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 22775 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 22776 | |||
| 22777 | #define ID3D12GraphicsCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 22778 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 22779 | |||
| 22780 | #define ID3D12GraphicsCommandList4_SetMarker(This,Metadata,pData,Size) \ | ||
| 22781 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 22782 | |||
| 22783 | #define ID3D12GraphicsCommandList4_BeginEvent(This,Metadata,pData,Size) \ | ||
| 22784 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 22785 | |||
| 22786 | #define ID3D12GraphicsCommandList4_EndEvent(This) \ | ||
| 22787 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 22788 | |||
| 22789 | #define ID3D12GraphicsCommandList4_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 22790 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 22791 | |||
| 22792 | |||
| 22793 | #define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 22794 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 22795 | |||
| 22796 | #define ID3D12GraphicsCommandList4_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 22797 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 22798 | |||
| 22799 | #define ID3D12GraphicsCommandList4_OMSetDepthBounds(This,Min,Max) \ | ||
| 22800 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 22801 | |||
| 22802 | #define ID3D12GraphicsCommandList4_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 22803 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 22804 | |||
| 22805 | #define ID3D12GraphicsCommandList4_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 22806 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 22807 | |||
| 22808 | #define ID3D12GraphicsCommandList4_SetViewInstanceMask(This,Mask) \ | ||
| 22809 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 22810 | |||
| 22811 | |||
| 22812 | #define ID3D12GraphicsCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 22813 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 22814 | |||
| 22815 | |||
| 22816 | #define ID3D12GraphicsCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 22817 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 22818 | |||
| 22819 | |||
| 22820 | #define ID3D12GraphicsCommandList4_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ | ||
| 22821 | ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) | ||
| 22822 | |||
| 22823 | #define ID3D12GraphicsCommandList4_EndRenderPass(This) \ | ||
| 22824 | ( (This)->lpVtbl -> EndRenderPass(This) ) | ||
| 22825 | |||
| 22826 | #define ID3D12GraphicsCommandList4_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ | ||
| 22827 | ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) | ||
| 22828 | |||
| 22829 | #define ID3D12GraphicsCommandList4_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ | ||
| 22830 | ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) | ||
| 22831 | |||
| 22832 | #define ID3D12GraphicsCommandList4_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ | ||
| 22833 | ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) | ||
| 22834 | |||
| 22835 | #define ID3D12GraphicsCommandList4_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ | ||
| 22836 | ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) | ||
| 22837 | |||
| 22838 | #define ID3D12GraphicsCommandList4_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ | ||
| 22839 | ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) | ||
| 22840 | |||
| 22841 | #define ID3D12GraphicsCommandList4_SetPipelineState1(This,pStateObject) \ | ||
| 22842 | ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) | ||
| 22843 | |||
| 22844 | #define ID3D12GraphicsCommandList4_DispatchRays(This,pDesc) \ | ||
| 22845 | ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) | ||
| 22846 | |||
| 22847 | #endif /* COBJMACROS */ | ||
| 22848 | |||
| 22849 | |||
| 22850 | #endif /* C style interface */ | ||
| 22851 | |||
| 22852 | |||
| 22853 | |||
| 22854 | |||
| 22855 | #endif /* __ID3D12GraphicsCommandList4_INTERFACE_DEFINED__ */ | ||
| 22856 | |||
| 22857 | |||
| 22858 | /* interface __MIDL_itf_d3d12_0000_0056 */ | ||
| 22859 | /* [local] */ | ||
| 22860 | |||
| 22861 | typedef | ||
| 22862 | enum D3D12_SHADER_CACHE_MODE | ||
| 22863 | { | ||
| 22864 | D3D12_SHADER_CACHE_MODE_MEMORY = 0, | ||
| 22865 | D3D12_SHADER_CACHE_MODE_DISK = ( D3D12_SHADER_CACHE_MODE_MEMORY + 1 ) | ||
| 22866 | } D3D12_SHADER_CACHE_MODE; | ||
| 22867 | |||
| 22868 | typedef | ||
| 22869 | enum D3D12_SHADER_CACHE_FLAGS | ||
| 22870 | { | ||
| 22871 | D3D12_SHADER_CACHE_FLAG_NONE = 0, | ||
| 22872 | D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1, | ||
| 22873 | D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2 | ||
| 22874 | } D3D12_SHADER_CACHE_FLAGS; | ||
| 22875 | |||
| 22876 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS ) | ||
| 22877 | typedef struct D3D12_SHADER_CACHE_SESSION_DESC | ||
| 22878 | { | ||
| 22879 | GUID Identifier; | ||
| 22880 | D3D12_SHADER_CACHE_MODE Mode; | ||
| 22881 | D3D12_SHADER_CACHE_FLAGS Flags; | ||
| 22882 | UINT MaximumInMemoryCacheSizeBytes; | ||
| 22883 | UINT MaximumInMemoryCacheEntries; | ||
| 22884 | UINT MaximumValueFileSizeBytes; | ||
| 22885 | UINT64 Version; | ||
| 22886 | } D3D12_SHADER_CACHE_SESSION_DESC; | ||
| 22887 | |||
| 22888 | typedef | ||
| 22889 | enum D3D12_BARRIER_LAYOUT | ||
| 22890 | { | ||
| 22891 | D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff, | ||
| 22892 | D3D12_BARRIER_LAYOUT_COMMON = 0, | ||
| 22893 | D3D12_BARRIER_LAYOUT_PRESENT = 0, | ||
| 22894 | D3D12_BARRIER_LAYOUT_GENERIC_READ = 1, | ||
| 22895 | D3D12_BARRIER_LAYOUT_RENDER_TARGET = 2, | ||
| 22896 | D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 3, | ||
| 22897 | D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 4, | ||
| 22898 | D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 5, | ||
| 22899 | D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 6, | ||
| 22900 | D3D12_BARRIER_LAYOUT_COPY_SOURCE = 7, | ||
| 22901 | D3D12_BARRIER_LAYOUT_COPY_DEST = 8, | ||
| 22902 | D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 9, | ||
| 22903 | D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 10, | ||
| 22904 | D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 11, | ||
| 22905 | D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 12, | ||
| 22906 | D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 13, | ||
| 22907 | D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 14, | ||
| 22908 | D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 15, | ||
| 22909 | D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 16, | ||
| 22910 | D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 17, | ||
| 22911 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 18, | ||
| 22912 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 19, | ||
| 22913 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 20, | ||
| 22914 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 21, | ||
| 22915 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 22, | ||
| 22916 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 23, | ||
| 22917 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 24, | ||
| 22918 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 25, | ||
| 22919 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 26, | ||
| 22920 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 27, | ||
| 22921 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 28, | ||
| 22922 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 29, | ||
| 22923 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE = 31 | ||
| 22924 | } D3D12_BARRIER_LAYOUT; | ||
| 22925 | |||
| 22926 | typedef | ||
| 22927 | enum D3D12_BARRIER_SYNC | ||
| 22928 | { | ||
| 22929 | D3D12_BARRIER_SYNC_NONE = 0, | ||
| 22930 | D3D12_BARRIER_SYNC_ALL = 0x1, | ||
| 22931 | D3D12_BARRIER_SYNC_DRAW = 0x2, | ||
| 22932 | D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4, | ||
| 22933 | D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8, | ||
| 22934 | D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10, | ||
| 22935 | D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20, | ||
| 22936 | D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40, | ||
| 22937 | D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80, | ||
| 22938 | D3D12_BARRIER_SYNC_RAYTRACING = 0x100, | ||
| 22939 | D3D12_BARRIER_SYNC_COPY = 0x200, | ||
| 22940 | D3D12_BARRIER_SYNC_RESOLVE = 0x400, | ||
| 22941 | D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800, | ||
| 22942 | D3D12_BARRIER_SYNC_PREDICATION = 0x800, | ||
| 22943 | D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000, | ||
| 22944 | D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000, | ||
| 22945 | D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000, | ||
| 22946 | D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000, | ||
| 22947 | D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000, | ||
| 22948 | D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000, | ||
| 22949 | D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000, | ||
| 22950 | D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000, | ||
| 22951 | D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000, | ||
| 22952 | D3D12_BARRIER_SYNC_SPLIT = 0x80000000 | ||
| 22953 | } D3D12_BARRIER_SYNC; | ||
| 22954 | |||
| 22955 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_SYNC ) | ||
| 22956 | typedef | ||
| 22957 | enum D3D12_BARRIER_ACCESS | ||
| 22958 | { | ||
| 22959 | D3D12_BARRIER_ACCESS_COMMON = 0, | ||
| 22960 | D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1, | ||
| 22961 | D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2, | ||
| 22962 | D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4, | ||
| 22963 | D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8, | ||
| 22964 | D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10, | ||
| 22965 | D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20, | ||
| 22966 | D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40, | ||
| 22967 | D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80, | ||
| 22968 | D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100, | ||
| 22969 | D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200, | ||
| 22970 | D3D12_BARRIER_ACCESS_PREDICATION = 0x200, | ||
| 22971 | D3D12_BARRIER_ACCESS_COPY_DEST = 0x400, | ||
| 22972 | D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800, | ||
| 22973 | D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000, | ||
| 22974 | D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000, | ||
| 22975 | D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000, | ||
| 22976 | D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000, | ||
| 22977 | D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000, | ||
| 22978 | D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000, | ||
| 22979 | D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000, | ||
| 22980 | D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000, | ||
| 22981 | D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000, | ||
| 22982 | D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000, | ||
| 22983 | D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000, | ||
| 22984 | D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000 | ||
| 22985 | } D3D12_BARRIER_ACCESS; | ||
| 22986 | |||
| 22987 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_ACCESS ) | ||
| 22988 | typedef | ||
| 22989 | enum D3D12_BARRIER_TYPE | ||
| 22990 | { | ||
| 22991 | D3D12_BARRIER_TYPE_GLOBAL = 0, | ||
| 22992 | D3D12_BARRIER_TYPE_TEXTURE = ( D3D12_BARRIER_TYPE_GLOBAL + 1 ) , | ||
| 22993 | D3D12_BARRIER_TYPE_BUFFER = ( D3D12_BARRIER_TYPE_TEXTURE + 1 ) | ||
| 22994 | } D3D12_BARRIER_TYPE; | ||
| 22995 | |||
| 22996 | typedef | ||
| 22997 | enum D3D12_TEXTURE_BARRIER_FLAGS | ||
| 22998 | { | ||
| 22999 | D3D12_TEXTURE_BARRIER_FLAG_NONE = 0, | ||
| 23000 | D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1 | ||
| 23001 | } D3D12_TEXTURE_BARRIER_FLAGS; | ||
| 23002 | |||
| 23003 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_TEXTURE_BARRIER_FLAGS ) | ||
| 23004 | typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE | ||
| 23005 | { | ||
| 23006 | UINT IndexOrFirstMipLevel; | ||
| 23007 | UINT NumMipLevels; | ||
| 23008 | UINT FirstArraySlice; | ||
| 23009 | UINT NumArraySlices; | ||
| 23010 | UINT FirstPlane; | ||
| 23011 | UINT NumPlanes; | ||
| 23012 | } D3D12_BARRIER_SUBRESOURCE_RANGE; | ||
| 23013 | |||
| 23014 | typedef struct D3D12_GLOBAL_BARRIER | ||
| 23015 | { | ||
| 23016 | D3D12_BARRIER_SYNC SyncBefore; | ||
| 23017 | D3D12_BARRIER_SYNC SyncAfter; | ||
| 23018 | D3D12_BARRIER_ACCESS AccessBefore; | ||
| 23019 | D3D12_BARRIER_ACCESS AccessAfter; | ||
| 23020 | } D3D12_GLOBAL_BARRIER; | ||
| 23021 | |||
| 23022 | typedef struct D3D12_TEXTURE_BARRIER | ||
| 23023 | { | ||
| 23024 | D3D12_BARRIER_SYNC SyncBefore; | ||
| 23025 | D3D12_BARRIER_SYNC SyncAfter; | ||
| 23026 | D3D12_BARRIER_ACCESS AccessBefore; | ||
| 23027 | D3D12_BARRIER_ACCESS AccessAfter; | ||
| 23028 | D3D12_BARRIER_LAYOUT LayoutBefore; | ||
| 23029 | D3D12_BARRIER_LAYOUT LayoutAfter; | ||
| 23030 | _In_ ID3D12Resource *pResource; | ||
| 23031 | D3D12_BARRIER_SUBRESOURCE_RANGE Subresources; | ||
| 23032 | D3D12_TEXTURE_BARRIER_FLAGS Flags; | ||
| 23033 | } D3D12_TEXTURE_BARRIER; | ||
| 23034 | |||
| 23035 | typedef struct D3D12_BUFFER_BARRIER | ||
| 23036 | { | ||
| 23037 | D3D12_BARRIER_SYNC SyncBefore; | ||
| 23038 | D3D12_BARRIER_SYNC SyncAfter; | ||
| 23039 | D3D12_BARRIER_ACCESS AccessBefore; | ||
| 23040 | D3D12_BARRIER_ACCESS AccessAfter; | ||
| 23041 | _In_ ID3D12Resource *pResource; | ||
| 23042 | UINT64 Offset; | ||
| 23043 | UINT64 Size; | ||
| 23044 | } D3D12_BUFFER_BARRIER; | ||
| 23045 | |||
| 23046 | typedef struct D3D12_BARRIER_GROUP | ||
| 23047 | { | ||
| 23048 | D3D12_BARRIER_TYPE Type; | ||
| 23049 | UINT32 NumBarriers; | ||
| 23050 | union | ||
| 23051 | { | ||
| 23052 | _In_reads_(NumBarriers) const D3D12_GLOBAL_BARRIER *pGlobalBarriers; | ||
| 23053 | _In_reads_(NumBarriers) const D3D12_TEXTURE_BARRIER *pTextureBarriers; | ||
| 23054 | _In_reads_(NumBarriers) const D3D12_BUFFER_BARRIER *pBufferBarriers; | ||
| 23055 | } ; | ||
| 23056 | } D3D12_BARRIER_GROUP; | ||
| 23057 | |||
| 23058 | |||
| 23059 | |||
| 23060 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_c_ifspec; | ||
| 23061 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0056_v0_0_s_ifspec; | ||
| 23062 | |||
| 23063 | #ifndef __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ | ||
| 23064 | #define __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ | ||
| 23065 | |||
| 23066 | /* interface ID3D12ShaderCacheSession */ | ||
| 23067 | /* [unique][local][object][uuid] */ | ||
| 23068 | |||
| 23069 | |||
| 23070 | EXTERN_C const IID IID_ID3D12ShaderCacheSession; | ||
| 23071 | |||
| 23072 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 23073 | |||
| 23074 | MIDL_INTERFACE("28e2495d-0f64-4ae4-a6ec-129255dc49a8") | ||
| 23075 | ID3D12ShaderCacheSession : public ID3D12DeviceChild | ||
| 23076 | { | ||
| 23077 | public: | ||
| 23078 | virtual HRESULT STDMETHODCALLTYPE FindValue( | ||
| 23079 | /* [annotation][in] */ | ||
| 23080 | _In_reads_bytes_(KeySize) const void *pKey, | ||
| 23081 | UINT KeySize, | ||
| 23082 | /* [annotation][out] */ | ||
| 23083 | _Out_writes_bytes_(*pValueSize) void *pValue, | ||
| 23084 | _Inout_ UINT *pValueSize) = 0; | ||
| 23085 | |||
| 23086 | virtual HRESULT STDMETHODCALLTYPE StoreValue( | ||
| 23087 | /* [annotation][in] */ | ||
| 23088 | _In_reads_bytes_(KeySize) const void *pKey, | ||
| 23089 | UINT KeySize, | ||
| 23090 | /* [annotation][in] */ | ||
| 23091 | _In_reads_bytes_(ValueSize) const void *pValue, | ||
| 23092 | UINT ValueSize) = 0; | ||
| 23093 | |||
| 23094 | virtual void STDMETHODCALLTYPE SetDeleteOnDestroy( void) = 0; | ||
| 23095 | |||
| 23096 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 23097 | virtual D3D12_SHADER_CACHE_SESSION_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 23098 | #else | ||
| 23099 | virtual D3D12_SHADER_CACHE_SESSION_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 23100 | D3D12_SHADER_CACHE_SESSION_DESC * RetVal) = 0; | ||
| 23101 | #endif | ||
| 23102 | |||
| 23103 | }; | ||
| 23104 | |||
| 23105 | |||
| 23106 | #else /* C style interface */ | ||
| 23107 | |||
| 23108 | typedef struct ID3D12ShaderCacheSessionVtbl | ||
| 23109 | { | ||
| 23110 | BEGIN_INTERFACE | ||
| 23111 | |||
| 23112 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 23113 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 23114 | ID3D12ShaderCacheSession * This, | ||
| 23115 | REFIID riid, | ||
| 23116 | _COM_Outptr_ void **ppvObject); | ||
| 23117 | |||
| 23118 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 23119 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 23120 | ID3D12ShaderCacheSession * This); | ||
| 23121 | |||
| 23122 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 23123 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 23124 | ID3D12ShaderCacheSession * This); | ||
| 23125 | |||
| 23126 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 23127 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 23128 | ID3D12ShaderCacheSession * This, | ||
| 23129 | _In_ REFGUID guid, | ||
| 23130 | _Inout_ UINT *pDataSize, | ||
| 23131 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 23132 | |||
| 23133 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 23134 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 23135 | ID3D12ShaderCacheSession * This, | ||
| 23136 | _In_ REFGUID guid, | ||
| 23137 | _In_ UINT DataSize, | ||
| 23138 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 23139 | |||
| 23140 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 23141 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 23142 | ID3D12ShaderCacheSession * This, | ||
| 23143 | _In_ REFGUID guid, | ||
| 23144 | _In_opt_ const IUnknown *pData); | ||
| 23145 | |||
| 23146 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 23147 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 23148 | ID3D12ShaderCacheSession * This, | ||
| 23149 | _In_z_ LPCWSTR Name); | ||
| 23150 | |||
| 23151 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 23152 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 23153 | ID3D12ShaderCacheSession * This, | ||
| 23154 | REFIID riid, | ||
| 23155 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 23156 | |||
| 23157 | DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, FindValue) | ||
| 23158 | HRESULT ( STDMETHODCALLTYPE *FindValue )( | ||
| 23159 | ID3D12ShaderCacheSession * This, | ||
| 23160 | /* [annotation][in] */ | ||
| 23161 | _In_reads_bytes_(KeySize) const void *pKey, | ||
| 23162 | UINT KeySize, | ||
| 23163 | /* [annotation][out] */ | ||
| 23164 | _Out_writes_bytes_(*pValueSize) void *pValue, | ||
| 23165 | _Inout_ UINT *pValueSize); | ||
| 23166 | |||
| 23167 | DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, StoreValue) | ||
| 23168 | HRESULT ( STDMETHODCALLTYPE *StoreValue )( | ||
| 23169 | ID3D12ShaderCacheSession * This, | ||
| 23170 | /* [annotation][in] */ | ||
| 23171 | _In_reads_bytes_(KeySize) const void *pKey, | ||
| 23172 | UINT KeySize, | ||
| 23173 | /* [annotation][in] */ | ||
| 23174 | _In_reads_bytes_(ValueSize) const void *pValue, | ||
| 23175 | UINT ValueSize); | ||
| 23176 | |||
| 23177 | DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, SetDeleteOnDestroy) | ||
| 23178 | void ( STDMETHODCALLTYPE *SetDeleteOnDestroy )( | ||
| 23179 | ID3D12ShaderCacheSession * This); | ||
| 23180 | |||
| 23181 | DECLSPEC_XFGVIRT(ID3D12ShaderCacheSession, GetDesc) | ||
| 23182 | #if !defined(_WIN32) | ||
| 23183 | D3D12_SHADER_CACHE_SESSION_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 23184 | ID3D12ShaderCacheSession * This); | ||
| 23185 | |||
| 23186 | #else | ||
| 23187 | D3D12_SHADER_CACHE_SESSION_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 23188 | ID3D12ShaderCacheSession * This, | ||
| 23189 | D3D12_SHADER_CACHE_SESSION_DESC * RetVal); | ||
| 23190 | |||
| 23191 | #endif | ||
| 23192 | |||
| 23193 | END_INTERFACE | ||
| 23194 | } ID3D12ShaderCacheSessionVtbl; | ||
| 23195 | |||
| 23196 | interface ID3D12ShaderCacheSession | ||
| 23197 | { | ||
| 23198 | CONST_VTBL struct ID3D12ShaderCacheSessionVtbl *lpVtbl; | ||
| 23199 | }; | ||
| 23200 | |||
| 23201 | |||
| 23202 | |||
| 23203 | #ifdef COBJMACROS | ||
| 23204 | |||
| 23205 | |||
| 23206 | #define ID3D12ShaderCacheSession_QueryInterface(This,riid,ppvObject) \ | ||
| 23207 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 23208 | |||
| 23209 | #define ID3D12ShaderCacheSession_AddRef(This) \ | ||
| 23210 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 23211 | |||
| 23212 | #define ID3D12ShaderCacheSession_Release(This) \ | ||
| 23213 | ( (This)->lpVtbl -> Release(This) ) | ||
| 23214 | |||
| 23215 | |||
| 23216 | #define ID3D12ShaderCacheSession_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 23217 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 23218 | |||
| 23219 | #define ID3D12ShaderCacheSession_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 23220 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 23221 | |||
| 23222 | #define ID3D12ShaderCacheSession_SetPrivateDataInterface(This,guid,pData) \ | ||
| 23223 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 23224 | |||
| 23225 | #define ID3D12ShaderCacheSession_SetName(This,Name) \ | ||
| 23226 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 23227 | |||
| 23228 | |||
| 23229 | #define ID3D12ShaderCacheSession_GetDevice(This,riid,ppvDevice) \ | ||
| 23230 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 23231 | |||
| 23232 | |||
| 23233 | #define ID3D12ShaderCacheSession_FindValue(This,pKey,KeySize,pValue,pValueSize) \ | ||
| 23234 | ( (This)->lpVtbl -> FindValue(This,pKey,KeySize,pValue,pValueSize) ) | ||
| 23235 | |||
| 23236 | #define ID3D12ShaderCacheSession_StoreValue(This,pKey,KeySize,pValue,ValueSize) \ | ||
| 23237 | ( (This)->lpVtbl -> StoreValue(This,pKey,KeySize,pValue,ValueSize) ) | ||
| 23238 | |||
| 23239 | #define ID3D12ShaderCacheSession_SetDeleteOnDestroy(This) \ | ||
| 23240 | ( (This)->lpVtbl -> SetDeleteOnDestroy(This) ) | ||
| 23241 | #if !defined(_WIN32) | ||
| 23242 | |||
| 23243 | #define ID3D12ShaderCacheSession_GetDesc(This) \ | ||
| 23244 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 23245 | #else | ||
| 23246 | #define ID3D12ShaderCacheSession_GetDesc(This,RetVal) \ | ||
| 23247 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 23248 | #endif | ||
| 23249 | |||
| 23250 | #endif /* COBJMACROS */ | ||
| 23251 | |||
| 23252 | |||
| 23253 | #endif /* C style interface */ | ||
| 23254 | |||
| 23255 | |||
| 23256 | |||
| 23257 | |||
| 23258 | #endif /* __ID3D12ShaderCacheSession_INTERFACE_DEFINED__ */ | ||
| 23259 | |||
| 23260 | |||
| 23261 | /* interface __MIDL_itf_d3d12_0000_0057 */ | ||
| 23262 | /* [local] */ | ||
| 23263 | |||
| 23264 | typedef | ||
| 23265 | enum D3D12_SHADER_CACHE_KIND_FLAGS | ||
| 23266 | { | ||
| 23267 | D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1, | ||
| 23268 | D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2, | ||
| 23269 | D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4, | ||
| 23270 | D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8 | ||
| 23271 | } D3D12_SHADER_CACHE_KIND_FLAGS; | ||
| 23272 | |||
| 23273 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS ) | ||
| 23274 | typedef | ||
| 23275 | enum D3D12_SHADER_CACHE_CONTROL_FLAGS | ||
| 23276 | { | ||
| 23277 | D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1, | ||
| 23278 | D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2, | ||
| 23279 | D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4 | ||
| 23280 | } D3D12_SHADER_CACHE_CONTROL_FLAGS; | ||
| 23281 | |||
| 23282 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS ) | ||
| 23283 | |||
| 23284 | |||
| 23285 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_c_ifspec; | ||
| 23286 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0057_v0_0_s_ifspec; | ||
| 23287 | |||
| 23288 | #ifndef __ID3D12Device9_INTERFACE_DEFINED__ | ||
| 23289 | #define __ID3D12Device9_INTERFACE_DEFINED__ | ||
| 23290 | |||
| 23291 | /* interface ID3D12Device9 */ | ||
| 23292 | /* [unique][local][object][uuid] */ | ||
| 23293 | |||
| 23294 | |||
| 23295 | EXTERN_C const IID IID_ID3D12Device9; | ||
| 23296 | |||
| 23297 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 23298 | |||
| 23299 | MIDL_INTERFACE("4c80e962-f032-4f60-bc9e-ebc2cfa1d83c") | ||
| 23300 | ID3D12Device9 : public ID3D12Device8 | ||
| 23301 | { | ||
| 23302 | public: | ||
| 23303 | virtual HRESULT STDMETHODCALLTYPE CreateShaderCacheSession( | ||
| 23304 | _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, | ||
| 23305 | REFIID riid, | ||
| 23306 | _COM_Outptr_opt_ void **ppvSession) = 0; | ||
| 23307 | |||
| 23308 | virtual HRESULT STDMETHODCALLTYPE ShaderCacheControl( | ||
| 23309 | D3D12_SHADER_CACHE_KIND_FLAGS Kinds, | ||
| 23310 | D3D12_SHADER_CACHE_CONTROL_FLAGS Control) = 0; | ||
| 23311 | |||
| 23312 | virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue1( | ||
| 23313 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 23314 | REFIID CreatorID, | ||
| 23315 | REFIID riid, | ||
| 23316 | _COM_Outptr_ void **ppCommandQueue) = 0; | ||
| 23317 | |||
| 23318 | }; | ||
| 23319 | |||
| 23320 | |||
| 23321 | #else /* C style interface */ | ||
| 23322 | |||
| 23323 | typedef struct ID3D12Device9Vtbl | ||
| 23324 | { | ||
| 23325 | BEGIN_INTERFACE | ||
| 23326 | |||
| 23327 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 23328 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 23329 | ID3D12Device9 * This, | ||
| 23330 | REFIID riid, | ||
| 23331 | _COM_Outptr_ void **ppvObject); | ||
| 23332 | |||
| 23333 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 23334 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 23335 | ID3D12Device9 * This); | ||
| 23336 | |||
| 23337 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 23338 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 23339 | ID3D12Device9 * This); | ||
| 23340 | |||
| 23341 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 23342 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 23343 | ID3D12Device9 * This, | ||
| 23344 | _In_ REFGUID guid, | ||
| 23345 | _Inout_ UINT *pDataSize, | ||
| 23346 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 23347 | |||
| 23348 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 23349 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 23350 | ID3D12Device9 * This, | ||
| 23351 | _In_ REFGUID guid, | ||
| 23352 | _In_ UINT DataSize, | ||
| 23353 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 23354 | |||
| 23355 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 23356 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 23357 | ID3D12Device9 * This, | ||
| 23358 | _In_ REFGUID guid, | ||
| 23359 | _In_opt_ const IUnknown *pData); | ||
| 23360 | |||
| 23361 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 23362 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 23363 | ID3D12Device9 * This, | ||
| 23364 | _In_z_ LPCWSTR Name); | ||
| 23365 | |||
| 23366 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 23367 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 23368 | ID3D12Device9 * This); | ||
| 23369 | |||
| 23370 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 23371 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 23372 | ID3D12Device9 * This, | ||
| 23373 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 23374 | REFIID riid, | ||
| 23375 | _COM_Outptr_ void **ppCommandQueue); | ||
| 23376 | |||
| 23377 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 23378 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 23379 | ID3D12Device9 * This, | ||
| 23380 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 23381 | REFIID riid, | ||
| 23382 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 23383 | |||
| 23384 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 23385 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 23386 | ID3D12Device9 * This, | ||
| 23387 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 23388 | REFIID riid, | ||
| 23389 | _COM_Outptr_ void **ppPipelineState); | ||
| 23390 | |||
| 23391 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 23392 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 23393 | ID3D12Device9 * This, | ||
| 23394 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 23395 | REFIID riid, | ||
| 23396 | _COM_Outptr_ void **ppPipelineState); | ||
| 23397 | |||
| 23398 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 23399 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 23400 | ID3D12Device9 * This, | ||
| 23401 | _In_ UINT nodeMask, | ||
| 23402 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 23403 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 23404 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 23405 | REFIID riid, | ||
| 23406 | _COM_Outptr_ void **ppCommandList); | ||
| 23407 | |||
| 23408 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 23409 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 23410 | ID3D12Device9 * This, | ||
| 23411 | D3D12_FEATURE Feature, | ||
| 23412 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 23413 | UINT FeatureSupportDataSize); | ||
| 23414 | |||
| 23415 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 23416 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 23417 | ID3D12Device9 * This, | ||
| 23418 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 23419 | REFIID riid, | ||
| 23420 | _COM_Outptr_ void **ppvHeap); | ||
| 23421 | |||
| 23422 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 23423 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 23424 | ID3D12Device9 * This, | ||
| 23425 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 23426 | |||
| 23427 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 23428 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 23429 | ID3D12Device9 * This, | ||
| 23430 | _In_ UINT nodeMask, | ||
| 23431 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 23432 | _In_ SIZE_T blobLengthInBytes, | ||
| 23433 | REFIID riid, | ||
| 23434 | _COM_Outptr_ void **ppvRootSignature); | ||
| 23435 | |||
| 23436 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 23437 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 23438 | ID3D12Device9 * This, | ||
| 23439 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 23440 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 23441 | |||
| 23442 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 23443 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 23444 | ID3D12Device9 * This, | ||
| 23445 | _In_opt_ ID3D12Resource *pResource, | ||
| 23446 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 23447 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 23448 | |||
| 23449 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 23450 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 23451 | ID3D12Device9 * This, | ||
| 23452 | _In_opt_ ID3D12Resource *pResource, | ||
| 23453 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 23454 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 23455 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 23456 | |||
| 23457 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 23458 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 23459 | ID3D12Device9 * This, | ||
| 23460 | _In_opt_ ID3D12Resource *pResource, | ||
| 23461 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 23462 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 23463 | |||
| 23464 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 23465 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 23466 | ID3D12Device9 * This, | ||
| 23467 | _In_opt_ ID3D12Resource *pResource, | ||
| 23468 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 23469 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 23470 | |||
| 23471 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 23472 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 23473 | ID3D12Device9 * This, | ||
| 23474 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 23475 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 23476 | |||
| 23477 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 23478 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 23479 | ID3D12Device9 * This, | ||
| 23480 | _In_ UINT NumDestDescriptorRanges, | ||
| 23481 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 23482 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 23483 | _In_ UINT NumSrcDescriptorRanges, | ||
| 23484 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 23485 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 23486 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 23487 | |||
| 23488 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 23489 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 23490 | ID3D12Device9 * This, | ||
| 23491 | _In_ UINT NumDescriptors, | ||
| 23492 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 23493 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 23494 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 23495 | |||
| 23496 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 23497 | #if !defined(_WIN32) | ||
| 23498 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 23499 | ID3D12Device9 * This, | ||
| 23500 | _In_ UINT visibleMask, | ||
| 23501 | _In_ UINT numResourceDescs, | ||
| 23502 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 23503 | |||
| 23504 | #else | ||
| 23505 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 23506 | ID3D12Device9 * This, | ||
| 23507 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 23508 | _In_ UINT visibleMask, | ||
| 23509 | _In_ UINT numResourceDescs, | ||
| 23510 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 23511 | |||
| 23512 | #endif | ||
| 23513 | |||
| 23514 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 23515 | #if !defined(_WIN32) | ||
| 23516 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 23517 | ID3D12Device9 * This, | ||
| 23518 | _In_ UINT nodeMask, | ||
| 23519 | D3D12_HEAP_TYPE heapType); | ||
| 23520 | |||
| 23521 | #else | ||
| 23522 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 23523 | ID3D12Device9 * This, | ||
| 23524 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 23525 | _In_ UINT nodeMask, | ||
| 23526 | D3D12_HEAP_TYPE heapType); | ||
| 23527 | |||
| 23528 | #endif | ||
| 23529 | |||
| 23530 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 23531 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 23532 | ID3D12Device9 * This, | ||
| 23533 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 23534 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 23535 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 23536 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 23537 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 23538 | REFIID riidResource, | ||
| 23539 | _COM_Outptr_opt_ void **ppvResource); | ||
| 23540 | |||
| 23541 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 23542 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 23543 | ID3D12Device9 * This, | ||
| 23544 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 23545 | REFIID riid, | ||
| 23546 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 23547 | |||
| 23548 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 23549 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 23550 | ID3D12Device9 * This, | ||
| 23551 | _In_ ID3D12Heap *pHeap, | ||
| 23552 | UINT64 HeapOffset, | ||
| 23553 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 23554 | D3D12_RESOURCE_STATES InitialState, | ||
| 23555 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 23556 | REFIID riid, | ||
| 23557 | _COM_Outptr_opt_ void **ppvResource); | ||
| 23558 | |||
| 23559 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 23560 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 23561 | ID3D12Device9 * This, | ||
| 23562 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 23563 | D3D12_RESOURCE_STATES InitialState, | ||
| 23564 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 23565 | REFIID riid, | ||
| 23566 | _COM_Outptr_opt_ void **ppvResource); | ||
| 23567 | |||
| 23568 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 23569 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 23570 | ID3D12Device9 * This, | ||
| 23571 | _In_ ID3D12DeviceChild *pObject, | ||
| 23572 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 23573 | DWORD Access, | ||
| 23574 | _In_opt_ LPCWSTR Name, | ||
| 23575 | _Out_ HANDLE *pHandle); | ||
| 23576 | |||
| 23577 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 23578 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 23579 | ID3D12Device9 * This, | ||
| 23580 | _In_ HANDLE NTHandle, | ||
| 23581 | REFIID riid, | ||
| 23582 | _COM_Outptr_opt_ void **ppvObj); | ||
| 23583 | |||
| 23584 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 23585 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 23586 | ID3D12Device9 * This, | ||
| 23587 | _In_ LPCWSTR Name, | ||
| 23588 | DWORD Access, | ||
| 23589 | /* [annotation][out] */ | ||
| 23590 | _Out_ HANDLE *pNTHandle); | ||
| 23591 | |||
| 23592 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 23593 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 23594 | ID3D12Device9 * This, | ||
| 23595 | UINT NumObjects, | ||
| 23596 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 23597 | |||
| 23598 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 23599 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 23600 | ID3D12Device9 * This, | ||
| 23601 | UINT NumObjects, | ||
| 23602 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 23603 | |||
| 23604 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 23605 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 23606 | ID3D12Device9 * This, | ||
| 23607 | UINT64 InitialValue, | ||
| 23608 | D3D12_FENCE_FLAGS Flags, | ||
| 23609 | REFIID riid, | ||
| 23610 | _COM_Outptr_ void **ppFence); | ||
| 23611 | |||
| 23612 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 23613 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 23614 | ID3D12Device9 * This); | ||
| 23615 | |||
| 23616 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 23617 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 23618 | ID3D12Device9 * This, | ||
| 23619 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 23620 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 23621 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 23622 | UINT64 BaseOffset, | ||
| 23623 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 23624 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 23625 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 23626 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 23627 | |||
| 23628 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 23629 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 23630 | ID3D12Device9 * This, | ||
| 23631 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 23632 | REFIID riid, | ||
| 23633 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 23634 | |||
| 23635 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 23636 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 23637 | ID3D12Device9 * This, | ||
| 23638 | BOOL Enable); | ||
| 23639 | |||
| 23640 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 23641 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 23642 | ID3D12Device9 * This, | ||
| 23643 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 23644 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 23645 | REFIID riid, | ||
| 23646 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 23647 | |||
| 23648 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 23649 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 23650 | ID3D12Device9 * This, | ||
| 23651 | _In_ ID3D12Resource *pTiledResource, | ||
| 23652 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 23653 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 23654 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 23655 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 23656 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 23657 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 23658 | |||
| 23659 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 23660 | #if !defined(_WIN32) | ||
| 23661 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 23662 | ID3D12Device9 * This); | ||
| 23663 | |||
| 23664 | #else | ||
| 23665 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 23666 | ID3D12Device9 * This, | ||
| 23667 | LUID * RetVal); | ||
| 23668 | |||
| 23669 | #endif | ||
| 23670 | |||
| 23671 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 23672 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 23673 | ID3D12Device9 * This, | ||
| 23674 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 23675 | SIZE_T BlobLength, | ||
| 23676 | REFIID riid, | ||
| 23677 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 23678 | |||
| 23679 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 23680 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 23681 | ID3D12Device9 * This, | ||
| 23682 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 23683 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 23684 | UINT NumFences, | ||
| 23685 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 23686 | HANDLE hEvent); | ||
| 23687 | |||
| 23688 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 23689 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 23690 | ID3D12Device9 * This, | ||
| 23691 | UINT NumObjects, | ||
| 23692 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 23693 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 23694 | |||
| 23695 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 23696 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 23697 | ID3D12Device9 * This, | ||
| 23698 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 23699 | REFIID riid, | ||
| 23700 | _COM_Outptr_ void **ppPipelineState); | ||
| 23701 | |||
| 23702 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 23703 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 23704 | ID3D12Device9 * This, | ||
| 23705 | _In_ const void *pAddress, | ||
| 23706 | REFIID riid, | ||
| 23707 | _COM_Outptr_ void **ppvHeap); | ||
| 23708 | |||
| 23709 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 23710 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 23711 | ID3D12Device9 * This, | ||
| 23712 | _In_ HANDLE hFileMapping, | ||
| 23713 | REFIID riid, | ||
| 23714 | _COM_Outptr_ void **ppvHeap); | ||
| 23715 | |||
| 23716 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 23717 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 23718 | ID3D12Device9 * This, | ||
| 23719 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 23720 | UINT NumObjects, | ||
| 23721 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 23722 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 23723 | UINT64 FenceValueToSignal); | ||
| 23724 | |||
| 23725 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 23726 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 23727 | ID3D12Device9 * This, | ||
| 23728 | _In_ UINT nodeMask, | ||
| 23729 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 23730 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 23731 | REFIID riid, | ||
| 23732 | _COM_Outptr_ void **ppCommandList); | ||
| 23733 | |||
| 23734 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 23735 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 23736 | ID3D12Device9 * This, | ||
| 23737 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 23738 | _In_ REFIID riid, | ||
| 23739 | _COM_Outptr_ void **ppSession); | ||
| 23740 | |||
| 23741 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 23742 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 23743 | ID3D12Device9 * This, | ||
| 23744 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 23745 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 23746 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 23747 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 23748 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 23749 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 23750 | REFIID riidResource, | ||
| 23751 | _COM_Outptr_opt_ void **ppvResource); | ||
| 23752 | |||
| 23753 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 23754 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 23755 | ID3D12Device9 * This, | ||
| 23756 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 23757 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 23758 | REFIID riid, | ||
| 23759 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 23760 | |||
| 23761 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 23762 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 23763 | ID3D12Device9 * This, | ||
| 23764 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 23765 | D3D12_RESOURCE_STATES InitialState, | ||
| 23766 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 23767 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 23768 | REFIID riid, | ||
| 23769 | _COM_Outptr_opt_ void **ppvResource); | ||
| 23770 | |||
| 23771 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 23772 | #if !defined(_WIN32) | ||
| 23773 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 23774 | ID3D12Device9 * This, | ||
| 23775 | UINT visibleMask, | ||
| 23776 | UINT numResourceDescs, | ||
| 23777 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 23778 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 23779 | |||
| 23780 | #else | ||
| 23781 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 23782 | ID3D12Device9 * This, | ||
| 23783 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 23784 | UINT visibleMask, | ||
| 23785 | UINT numResourceDescs, | ||
| 23786 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 23787 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 23788 | |||
| 23789 | #endif | ||
| 23790 | |||
| 23791 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 23792 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 23793 | ID3D12Device9 * This, | ||
| 23794 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 23795 | REFIID riid, | ||
| 23796 | _COM_Outptr_ void **ppvTracker); | ||
| 23797 | |||
| 23798 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 23799 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 23800 | ID3D12Device9 * This); | ||
| 23801 | |||
| 23802 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 23803 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 23804 | ID3D12Device9 * This, | ||
| 23805 | _Inout_ UINT *pNumMetaCommands, | ||
| 23806 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 23807 | |||
| 23808 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 23809 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 23810 | ID3D12Device9 * This, | ||
| 23811 | _In_ REFGUID CommandId, | ||
| 23812 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 23813 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 23814 | _Inout_ UINT *pParameterCount, | ||
| 23815 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 23816 | |||
| 23817 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 23818 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 23819 | ID3D12Device9 * This, | ||
| 23820 | _In_ REFGUID CommandId, | ||
| 23821 | _In_ UINT NodeMask, | ||
| 23822 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 23823 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 23824 | REFIID riid, | ||
| 23825 | _COM_Outptr_ void **ppMetaCommand); | ||
| 23826 | |||
| 23827 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 23828 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 23829 | ID3D12Device9 * This, | ||
| 23830 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 23831 | REFIID riid, | ||
| 23832 | _COM_Outptr_ void **ppStateObject); | ||
| 23833 | |||
| 23834 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 23835 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 23836 | ID3D12Device9 * This, | ||
| 23837 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 23838 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 23839 | |||
| 23840 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 23841 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 23842 | ID3D12Device9 * This, | ||
| 23843 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 23844 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 23845 | |||
| 23846 | DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) | ||
| 23847 | HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( | ||
| 23848 | ID3D12Device9 * This, | ||
| 23849 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 23850 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 23851 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 23852 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired); | ||
| 23853 | |||
| 23854 | DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) | ||
| 23855 | HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( | ||
| 23856 | ID3D12Device9 * This, | ||
| 23857 | const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 23858 | ID3D12StateObject *pStateObjectToGrowFrom, | ||
| 23859 | REFIID riid, | ||
| 23860 | _COM_Outptr_ void **ppNewStateObject); | ||
| 23861 | |||
| 23862 | DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) | ||
| 23863 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( | ||
| 23864 | ID3D12Device9 * This, | ||
| 23865 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, | ||
| 23866 | _In_ REFIID riid, | ||
| 23867 | _COM_Outptr_ void **ppSession); | ||
| 23868 | |||
| 23869 | DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) | ||
| 23870 | #if !defined(_WIN32) | ||
| 23871 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 23872 | ID3D12Device9 * This, | ||
| 23873 | UINT visibleMask, | ||
| 23874 | UINT numResourceDescs, | ||
| 23875 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 23876 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 23877 | |||
| 23878 | #else | ||
| 23879 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 23880 | ID3D12Device9 * This, | ||
| 23881 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 23882 | UINT visibleMask, | ||
| 23883 | UINT numResourceDescs, | ||
| 23884 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 23885 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 23886 | |||
| 23887 | #endif | ||
| 23888 | |||
| 23889 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) | ||
| 23890 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( | ||
| 23891 | ID3D12Device9 * This, | ||
| 23892 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 23893 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 23894 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 23895 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 23896 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 23897 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 23898 | REFIID riidResource, | ||
| 23899 | _COM_Outptr_opt_ void **ppvResource); | ||
| 23900 | |||
| 23901 | DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) | ||
| 23902 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( | ||
| 23903 | ID3D12Device9 * This, | ||
| 23904 | _In_ ID3D12Heap *pHeap, | ||
| 23905 | UINT64 HeapOffset, | ||
| 23906 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 23907 | D3D12_RESOURCE_STATES InitialState, | ||
| 23908 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 23909 | REFIID riid, | ||
| 23910 | _COM_Outptr_opt_ void **ppvResource); | ||
| 23911 | |||
| 23912 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) | ||
| 23913 | void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( | ||
| 23914 | ID3D12Device9 * This, | ||
| 23915 | _In_opt_ ID3D12Resource *pTargetedResource, | ||
| 23916 | _In_opt_ ID3D12Resource *pFeedbackResource, | ||
| 23917 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 23918 | |||
| 23919 | DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) | ||
| 23920 | void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( | ||
| 23921 | ID3D12Device9 * This, | ||
| 23922 | _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, | ||
| 23923 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 23924 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 23925 | UINT64 BaseOffset, | ||
| 23926 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 23927 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 23928 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 23929 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 23930 | |||
| 23931 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) | ||
| 23932 | HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( | ||
| 23933 | ID3D12Device9 * This, | ||
| 23934 | _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, | ||
| 23935 | REFIID riid, | ||
| 23936 | _COM_Outptr_opt_ void **ppvSession); | ||
| 23937 | |||
| 23938 | DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) | ||
| 23939 | HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( | ||
| 23940 | ID3D12Device9 * This, | ||
| 23941 | D3D12_SHADER_CACHE_KIND_FLAGS Kinds, | ||
| 23942 | D3D12_SHADER_CACHE_CONTROL_FLAGS Control); | ||
| 23943 | |||
| 23944 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) | ||
| 23945 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( | ||
| 23946 | ID3D12Device9 * This, | ||
| 23947 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 23948 | REFIID CreatorID, | ||
| 23949 | REFIID riid, | ||
| 23950 | _COM_Outptr_ void **ppCommandQueue); | ||
| 23951 | |||
| 23952 | END_INTERFACE | ||
| 23953 | } ID3D12Device9Vtbl; | ||
| 23954 | |||
| 23955 | interface ID3D12Device9 | ||
| 23956 | { | ||
| 23957 | CONST_VTBL struct ID3D12Device9Vtbl *lpVtbl; | ||
| 23958 | }; | ||
| 23959 | |||
| 23960 | |||
| 23961 | |||
| 23962 | #ifdef COBJMACROS | ||
| 23963 | |||
| 23964 | |||
| 23965 | #define ID3D12Device9_QueryInterface(This,riid,ppvObject) \ | ||
| 23966 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 23967 | |||
| 23968 | #define ID3D12Device9_AddRef(This) \ | ||
| 23969 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 23970 | |||
| 23971 | #define ID3D12Device9_Release(This) \ | ||
| 23972 | ( (This)->lpVtbl -> Release(This) ) | ||
| 23973 | |||
| 23974 | |||
| 23975 | #define ID3D12Device9_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 23976 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 23977 | |||
| 23978 | #define ID3D12Device9_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 23979 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 23980 | |||
| 23981 | #define ID3D12Device9_SetPrivateDataInterface(This,guid,pData) \ | ||
| 23982 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 23983 | |||
| 23984 | #define ID3D12Device9_SetName(This,Name) \ | ||
| 23985 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 23986 | |||
| 23987 | |||
| 23988 | #define ID3D12Device9_GetNodeCount(This) \ | ||
| 23989 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 23990 | |||
| 23991 | #define ID3D12Device9_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 23992 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 23993 | |||
| 23994 | #define ID3D12Device9_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 23995 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 23996 | |||
| 23997 | #define ID3D12Device9_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 23998 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 23999 | |||
| 24000 | #define ID3D12Device9_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 24001 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 24002 | |||
| 24003 | #define ID3D12Device9_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 24004 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 24005 | |||
| 24006 | #define ID3D12Device9_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 24007 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 24008 | |||
| 24009 | #define ID3D12Device9_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 24010 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 24011 | |||
| 24012 | #define ID3D12Device9_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 24013 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 24014 | |||
| 24015 | #define ID3D12Device9_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 24016 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 24017 | |||
| 24018 | #define ID3D12Device9_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 24019 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 24020 | |||
| 24021 | #define ID3D12Device9_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 24022 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 24023 | |||
| 24024 | #define ID3D12Device9_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 24025 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 24026 | |||
| 24027 | #define ID3D12Device9_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 24028 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 24029 | |||
| 24030 | #define ID3D12Device9_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 24031 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 24032 | |||
| 24033 | #define ID3D12Device9_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 24034 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 24035 | |||
| 24036 | #define ID3D12Device9_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 24037 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 24038 | |||
| 24039 | #define ID3D12Device9_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 24040 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 24041 | #if !defined(_WIN32) | ||
| 24042 | |||
| 24043 | #define ID3D12Device9_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 24044 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 24045 | #else | ||
| 24046 | #define ID3D12Device9_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 24047 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 24048 | #endif | ||
| 24049 | #if !defined(_WIN32) | ||
| 24050 | |||
| 24051 | #define ID3D12Device9_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 24052 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 24053 | #else | ||
| 24054 | #define ID3D12Device9_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 24055 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 24056 | #endif | ||
| 24057 | |||
| 24058 | #define ID3D12Device9_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 24059 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 24060 | |||
| 24061 | #define ID3D12Device9_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 24062 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 24063 | |||
| 24064 | #define ID3D12Device9_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 24065 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 24066 | |||
| 24067 | #define ID3D12Device9_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 24068 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 24069 | |||
| 24070 | #define ID3D12Device9_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 24071 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 24072 | |||
| 24073 | #define ID3D12Device9_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 24074 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 24075 | |||
| 24076 | #define ID3D12Device9_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 24077 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 24078 | |||
| 24079 | #define ID3D12Device9_MakeResident(This,NumObjects,ppObjects) \ | ||
| 24080 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 24081 | |||
| 24082 | #define ID3D12Device9_Evict(This,NumObjects,ppObjects) \ | ||
| 24083 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 24084 | |||
| 24085 | #define ID3D12Device9_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 24086 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 24087 | |||
| 24088 | #define ID3D12Device9_GetDeviceRemovedReason(This) \ | ||
| 24089 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 24090 | |||
| 24091 | #define ID3D12Device9_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 24092 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 24093 | |||
| 24094 | #define ID3D12Device9_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 24095 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 24096 | |||
| 24097 | #define ID3D12Device9_SetStablePowerState(This,Enable) \ | ||
| 24098 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 24099 | |||
| 24100 | #define ID3D12Device9_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 24101 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 24102 | |||
| 24103 | #define ID3D12Device9_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 24104 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 24105 | #if !defined(_WIN32) | ||
| 24106 | |||
| 24107 | #define ID3D12Device9_GetAdapterLuid(This) \ | ||
| 24108 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 24109 | #else | ||
| 24110 | #define ID3D12Device9_GetAdapterLuid(This,RetVal) \ | ||
| 24111 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 24112 | #endif | ||
| 24113 | |||
| 24114 | |||
| 24115 | #define ID3D12Device9_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 24116 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 24117 | |||
| 24118 | #define ID3D12Device9_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 24119 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 24120 | |||
| 24121 | #define ID3D12Device9_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 24122 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 24123 | |||
| 24124 | |||
| 24125 | #define ID3D12Device9_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 24126 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 24127 | |||
| 24128 | |||
| 24129 | #define ID3D12Device9_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 24130 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 24131 | |||
| 24132 | #define ID3D12Device9_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 24133 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 24134 | |||
| 24135 | #define ID3D12Device9_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 24136 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 24137 | |||
| 24138 | |||
| 24139 | #define ID3D12Device9_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 24140 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 24141 | |||
| 24142 | #define ID3D12Device9_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 24143 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 24144 | |||
| 24145 | #define ID3D12Device9_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 24146 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 24147 | |||
| 24148 | #define ID3D12Device9_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 24149 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 24150 | |||
| 24151 | #define ID3D12Device9_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 24152 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 24153 | #if !defined(_WIN32) | ||
| 24154 | |||
| 24155 | #define ID3D12Device9_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 24156 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 24157 | #else | ||
| 24158 | #define ID3D12Device9_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 24159 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 24160 | #endif | ||
| 24161 | |||
| 24162 | |||
| 24163 | #define ID3D12Device9_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 24164 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 24165 | |||
| 24166 | #define ID3D12Device9_RemoveDevice(This) \ | ||
| 24167 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 24168 | |||
| 24169 | #define ID3D12Device9_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 24170 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 24171 | |||
| 24172 | #define ID3D12Device9_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 24173 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 24174 | |||
| 24175 | #define ID3D12Device9_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 24176 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 24177 | |||
| 24178 | #define ID3D12Device9_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 24179 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 24180 | |||
| 24181 | #define ID3D12Device9_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 24182 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 24183 | |||
| 24184 | #define ID3D12Device9_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 24185 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 24186 | |||
| 24187 | |||
| 24188 | #define ID3D12Device9_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ | ||
| 24189 | ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) | ||
| 24190 | |||
| 24191 | |||
| 24192 | #define ID3D12Device9_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ | ||
| 24193 | ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) | ||
| 24194 | |||
| 24195 | #define ID3D12Device9_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ | ||
| 24196 | ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) | ||
| 24197 | |||
| 24198 | #if !defined(_WIN32) | ||
| 24199 | |||
| 24200 | #define ID3D12Device9_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 24201 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 24202 | #else | ||
| 24203 | #define ID3D12Device9_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 24204 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 24205 | #endif | ||
| 24206 | |||
| 24207 | #define ID3D12Device9_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 24208 | ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 24209 | |||
| 24210 | #define ID3D12Device9_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 24211 | ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 24212 | |||
| 24213 | #define ID3D12Device9_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ | ||
| 24214 | ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) | ||
| 24215 | |||
| 24216 | #define ID3D12Device9_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 24217 | ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 24218 | |||
| 24219 | |||
| 24220 | #define ID3D12Device9_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ | ||
| 24221 | ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) | ||
| 24222 | |||
| 24223 | #define ID3D12Device9_ShaderCacheControl(This,Kinds,Control) \ | ||
| 24224 | ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) | ||
| 24225 | |||
| 24226 | #define ID3D12Device9_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ | ||
| 24227 | ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) | ||
| 24228 | |||
| 24229 | #endif /* COBJMACROS */ | ||
| 24230 | |||
| 24231 | |||
| 24232 | #endif /* C style interface */ | ||
| 24233 | |||
| 24234 | |||
| 24235 | |||
| 24236 | |||
| 24237 | #endif /* __ID3D12Device9_INTERFACE_DEFINED__ */ | ||
| 24238 | |||
| 24239 | |||
| 24240 | #ifndef __ID3D12Device10_INTERFACE_DEFINED__ | ||
| 24241 | #define __ID3D12Device10_INTERFACE_DEFINED__ | ||
| 24242 | |||
| 24243 | /* interface ID3D12Device10 */ | ||
| 24244 | /* [unique][local][object][uuid] */ | ||
| 24245 | |||
| 24246 | |||
| 24247 | EXTERN_C const IID IID_ID3D12Device10; | ||
| 24248 | |||
| 24249 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 24250 | |||
| 24251 | MIDL_INTERFACE("517f8718-aa66-49f9-b02b-a7ab89c06031") | ||
| 24252 | ID3D12Device10 : public ID3D12Device9 | ||
| 24253 | { | ||
| 24254 | public: | ||
| 24255 | virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource3( | ||
| 24256 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 24257 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 24258 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 24259 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 24260 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24261 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 24262 | UINT32 NumCastableFormats, | ||
| 24263 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 24264 | REFIID riidResource, | ||
| 24265 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 24266 | |||
| 24267 | virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource2( | ||
| 24268 | _In_ ID3D12Heap *pHeap, | ||
| 24269 | UINT64 HeapOffset, | ||
| 24270 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 24271 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 24272 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24273 | UINT32 NumCastableFormats, | ||
| 24274 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 24275 | REFIID riid, | ||
| 24276 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 24277 | |||
| 24278 | virtual HRESULT STDMETHODCALLTYPE CreateReservedResource2( | ||
| 24279 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 24280 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 24281 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24282 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 24283 | UINT32 NumCastableFormats, | ||
| 24284 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 24285 | REFIID riid, | ||
| 24286 | _COM_Outptr_opt_ void **ppvResource) = 0; | ||
| 24287 | |||
| 24288 | }; | ||
| 24289 | |||
| 24290 | |||
| 24291 | #else /* C style interface */ | ||
| 24292 | |||
| 24293 | typedef struct ID3D12Device10Vtbl | ||
| 24294 | { | ||
| 24295 | BEGIN_INTERFACE | ||
| 24296 | |||
| 24297 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 24298 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 24299 | ID3D12Device10 * This, | ||
| 24300 | REFIID riid, | ||
| 24301 | _COM_Outptr_ void **ppvObject); | ||
| 24302 | |||
| 24303 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 24304 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 24305 | ID3D12Device10 * This); | ||
| 24306 | |||
| 24307 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 24308 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 24309 | ID3D12Device10 * This); | ||
| 24310 | |||
| 24311 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 24312 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 24313 | ID3D12Device10 * This, | ||
| 24314 | _In_ REFGUID guid, | ||
| 24315 | _Inout_ UINT *pDataSize, | ||
| 24316 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 24317 | |||
| 24318 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 24319 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 24320 | ID3D12Device10 * This, | ||
| 24321 | _In_ REFGUID guid, | ||
| 24322 | _In_ UINT DataSize, | ||
| 24323 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 24324 | |||
| 24325 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 24326 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 24327 | ID3D12Device10 * This, | ||
| 24328 | _In_ REFGUID guid, | ||
| 24329 | _In_opt_ const IUnknown *pData); | ||
| 24330 | |||
| 24331 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 24332 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 24333 | ID3D12Device10 * This, | ||
| 24334 | _In_z_ LPCWSTR Name); | ||
| 24335 | |||
| 24336 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 24337 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 24338 | ID3D12Device10 * This); | ||
| 24339 | |||
| 24340 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 24341 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 24342 | ID3D12Device10 * This, | ||
| 24343 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 24344 | REFIID riid, | ||
| 24345 | _COM_Outptr_ void **ppCommandQueue); | ||
| 24346 | |||
| 24347 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 24348 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 24349 | ID3D12Device10 * This, | ||
| 24350 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 24351 | REFIID riid, | ||
| 24352 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 24353 | |||
| 24354 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 24355 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 24356 | ID3D12Device10 * This, | ||
| 24357 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 24358 | REFIID riid, | ||
| 24359 | _COM_Outptr_ void **ppPipelineState); | ||
| 24360 | |||
| 24361 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 24362 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 24363 | ID3D12Device10 * This, | ||
| 24364 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 24365 | REFIID riid, | ||
| 24366 | _COM_Outptr_ void **ppPipelineState); | ||
| 24367 | |||
| 24368 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 24369 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 24370 | ID3D12Device10 * This, | ||
| 24371 | _In_ UINT nodeMask, | ||
| 24372 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 24373 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 24374 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 24375 | REFIID riid, | ||
| 24376 | _COM_Outptr_ void **ppCommandList); | ||
| 24377 | |||
| 24378 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 24379 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 24380 | ID3D12Device10 * This, | ||
| 24381 | D3D12_FEATURE Feature, | ||
| 24382 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 24383 | UINT FeatureSupportDataSize); | ||
| 24384 | |||
| 24385 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 24386 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 24387 | ID3D12Device10 * This, | ||
| 24388 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 24389 | REFIID riid, | ||
| 24390 | _COM_Outptr_ void **ppvHeap); | ||
| 24391 | |||
| 24392 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 24393 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 24394 | ID3D12Device10 * This, | ||
| 24395 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 24396 | |||
| 24397 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 24398 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 24399 | ID3D12Device10 * This, | ||
| 24400 | _In_ UINT nodeMask, | ||
| 24401 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 24402 | _In_ SIZE_T blobLengthInBytes, | ||
| 24403 | REFIID riid, | ||
| 24404 | _COM_Outptr_ void **ppvRootSignature); | ||
| 24405 | |||
| 24406 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 24407 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 24408 | ID3D12Device10 * This, | ||
| 24409 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 24410 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 24411 | |||
| 24412 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 24413 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 24414 | ID3D12Device10 * This, | ||
| 24415 | _In_opt_ ID3D12Resource *pResource, | ||
| 24416 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 24417 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 24418 | |||
| 24419 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 24420 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 24421 | ID3D12Device10 * This, | ||
| 24422 | _In_opt_ ID3D12Resource *pResource, | ||
| 24423 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 24424 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 24425 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 24426 | |||
| 24427 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 24428 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 24429 | ID3D12Device10 * This, | ||
| 24430 | _In_opt_ ID3D12Resource *pResource, | ||
| 24431 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 24432 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 24433 | |||
| 24434 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 24435 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 24436 | ID3D12Device10 * This, | ||
| 24437 | _In_opt_ ID3D12Resource *pResource, | ||
| 24438 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 24439 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 24440 | |||
| 24441 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 24442 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 24443 | ID3D12Device10 * This, | ||
| 24444 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 24445 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 24446 | |||
| 24447 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 24448 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 24449 | ID3D12Device10 * This, | ||
| 24450 | _In_ UINT NumDestDescriptorRanges, | ||
| 24451 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 24452 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 24453 | _In_ UINT NumSrcDescriptorRanges, | ||
| 24454 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 24455 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 24456 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 24457 | |||
| 24458 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 24459 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 24460 | ID3D12Device10 * This, | ||
| 24461 | _In_ UINT NumDescriptors, | ||
| 24462 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 24463 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 24464 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 24465 | |||
| 24466 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 24467 | #if !defined(_WIN32) | ||
| 24468 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 24469 | ID3D12Device10 * This, | ||
| 24470 | _In_ UINT visibleMask, | ||
| 24471 | _In_ UINT numResourceDescs, | ||
| 24472 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 24473 | |||
| 24474 | #else | ||
| 24475 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 24476 | ID3D12Device10 * This, | ||
| 24477 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 24478 | _In_ UINT visibleMask, | ||
| 24479 | _In_ UINT numResourceDescs, | ||
| 24480 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 24481 | |||
| 24482 | #endif | ||
| 24483 | |||
| 24484 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 24485 | #if !defined(_WIN32) | ||
| 24486 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 24487 | ID3D12Device10 * This, | ||
| 24488 | _In_ UINT nodeMask, | ||
| 24489 | D3D12_HEAP_TYPE heapType); | ||
| 24490 | |||
| 24491 | #else | ||
| 24492 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 24493 | ID3D12Device10 * This, | ||
| 24494 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 24495 | _In_ UINT nodeMask, | ||
| 24496 | D3D12_HEAP_TYPE heapType); | ||
| 24497 | |||
| 24498 | #endif | ||
| 24499 | |||
| 24500 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 24501 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 24502 | ID3D12Device10 * This, | ||
| 24503 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 24504 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 24505 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 24506 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 24507 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24508 | REFIID riidResource, | ||
| 24509 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24510 | |||
| 24511 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 24512 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 24513 | ID3D12Device10 * This, | ||
| 24514 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 24515 | REFIID riid, | ||
| 24516 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 24517 | |||
| 24518 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 24519 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 24520 | ID3D12Device10 * This, | ||
| 24521 | _In_ ID3D12Heap *pHeap, | ||
| 24522 | UINT64 HeapOffset, | ||
| 24523 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 24524 | D3D12_RESOURCE_STATES InitialState, | ||
| 24525 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24526 | REFIID riid, | ||
| 24527 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24528 | |||
| 24529 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 24530 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 24531 | ID3D12Device10 * This, | ||
| 24532 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 24533 | D3D12_RESOURCE_STATES InitialState, | ||
| 24534 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24535 | REFIID riid, | ||
| 24536 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24537 | |||
| 24538 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 24539 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 24540 | ID3D12Device10 * This, | ||
| 24541 | _In_ ID3D12DeviceChild *pObject, | ||
| 24542 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 24543 | DWORD Access, | ||
| 24544 | _In_opt_ LPCWSTR Name, | ||
| 24545 | _Out_ HANDLE *pHandle); | ||
| 24546 | |||
| 24547 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 24548 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 24549 | ID3D12Device10 * This, | ||
| 24550 | _In_ HANDLE NTHandle, | ||
| 24551 | REFIID riid, | ||
| 24552 | _COM_Outptr_opt_ void **ppvObj); | ||
| 24553 | |||
| 24554 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 24555 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 24556 | ID3D12Device10 * This, | ||
| 24557 | _In_ LPCWSTR Name, | ||
| 24558 | DWORD Access, | ||
| 24559 | /* [annotation][out] */ | ||
| 24560 | _Out_ HANDLE *pNTHandle); | ||
| 24561 | |||
| 24562 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 24563 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 24564 | ID3D12Device10 * This, | ||
| 24565 | UINT NumObjects, | ||
| 24566 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 24567 | |||
| 24568 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 24569 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 24570 | ID3D12Device10 * This, | ||
| 24571 | UINT NumObjects, | ||
| 24572 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 24573 | |||
| 24574 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 24575 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 24576 | ID3D12Device10 * This, | ||
| 24577 | UINT64 InitialValue, | ||
| 24578 | D3D12_FENCE_FLAGS Flags, | ||
| 24579 | REFIID riid, | ||
| 24580 | _COM_Outptr_ void **ppFence); | ||
| 24581 | |||
| 24582 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 24583 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 24584 | ID3D12Device10 * This); | ||
| 24585 | |||
| 24586 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 24587 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 24588 | ID3D12Device10 * This, | ||
| 24589 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 24590 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 24591 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 24592 | UINT64 BaseOffset, | ||
| 24593 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 24594 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 24595 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 24596 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 24597 | |||
| 24598 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 24599 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 24600 | ID3D12Device10 * This, | ||
| 24601 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 24602 | REFIID riid, | ||
| 24603 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 24604 | |||
| 24605 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 24606 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 24607 | ID3D12Device10 * This, | ||
| 24608 | BOOL Enable); | ||
| 24609 | |||
| 24610 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 24611 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 24612 | ID3D12Device10 * This, | ||
| 24613 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 24614 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 24615 | REFIID riid, | ||
| 24616 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 24617 | |||
| 24618 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 24619 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 24620 | ID3D12Device10 * This, | ||
| 24621 | _In_ ID3D12Resource *pTiledResource, | ||
| 24622 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 24623 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 24624 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 24625 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 24626 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 24627 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 24628 | |||
| 24629 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 24630 | #if !defined(_WIN32) | ||
| 24631 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 24632 | ID3D12Device10 * This); | ||
| 24633 | |||
| 24634 | #else | ||
| 24635 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 24636 | ID3D12Device10 * This, | ||
| 24637 | LUID * RetVal); | ||
| 24638 | |||
| 24639 | #endif | ||
| 24640 | |||
| 24641 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 24642 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 24643 | ID3D12Device10 * This, | ||
| 24644 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 24645 | SIZE_T BlobLength, | ||
| 24646 | REFIID riid, | ||
| 24647 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 24648 | |||
| 24649 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 24650 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 24651 | ID3D12Device10 * This, | ||
| 24652 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 24653 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 24654 | UINT NumFences, | ||
| 24655 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 24656 | HANDLE hEvent); | ||
| 24657 | |||
| 24658 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 24659 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 24660 | ID3D12Device10 * This, | ||
| 24661 | UINT NumObjects, | ||
| 24662 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 24663 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 24664 | |||
| 24665 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 24666 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 24667 | ID3D12Device10 * This, | ||
| 24668 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 24669 | REFIID riid, | ||
| 24670 | _COM_Outptr_ void **ppPipelineState); | ||
| 24671 | |||
| 24672 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 24673 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 24674 | ID3D12Device10 * This, | ||
| 24675 | _In_ const void *pAddress, | ||
| 24676 | REFIID riid, | ||
| 24677 | _COM_Outptr_ void **ppvHeap); | ||
| 24678 | |||
| 24679 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 24680 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 24681 | ID3D12Device10 * This, | ||
| 24682 | _In_ HANDLE hFileMapping, | ||
| 24683 | REFIID riid, | ||
| 24684 | _COM_Outptr_ void **ppvHeap); | ||
| 24685 | |||
| 24686 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 24687 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 24688 | ID3D12Device10 * This, | ||
| 24689 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 24690 | UINT NumObjects, | ||
| 24691 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 24692 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 24693 | UINT64 FenceValueToSignal); | ||
| 24694 | |||
| 24695 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 24696 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 24697 | ID3D12Device10 * This, | ||
| 24698 | _In_ UINT nodeMask, | ||
| 24699 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 24700 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 24701 | REFIID riid, | ||
| 24702 | _COM_Outptr_ void **ppCommandList); | ||
| 24703 | |||
| 24704 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 24705 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 24706 | ID3D12Device10 * This, | ||
| 24707 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 24708 | _In_ REFIID riid, | ||
| 24709 | _COM_Outptr_ void **ppSession); | ||
| 24710 | |||
| 24711 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 24712 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 24713 | ID3D12Device10 * This, | ||
| 24714 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 24715 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 24716 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 24717 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 24718 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24719 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 24720 | REFIID riidResource, | ||
| 24721 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24722 | |||
| 24723 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 24724 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 24725 | ID3D12Device10 * This, | ||
| 24726 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 24727 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 24728 | REFIID riid, | ||
| 24729 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 24730 | |||
| 24731 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 24732 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 24733 | ID3D12Device10 * This, | ||
| 24734 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 24735 | D3D12_RESOURCE_STATES InitialState, | ||
| 24736 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24737 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 24738 | REFIID riid, | ||
| 24739 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24740 | |||
| 24741 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 24742 | #if !defined(_WIN32) | ||
| 24743 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 24744 | ID3D12Device10 * This, | ||
| 24745 | UINT visibleMask, | ||
| 24746 | UINT numResourceDescs, | ||
| 24747 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 24748 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 24749 | |||
| 24750 | #else | ||
| 24751 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 24752 | ID3D12Device10 * This, | ||
| 24753 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 24754 | UINT visibleMask, | ||
| 24755 | UINT numResourceDescs, | ||
| 24756 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 24757 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 24758 | |||
| 24759 | #endif | ||
| 24760 | |||
| 24761 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 24762 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 24763 | ID3D12Device10 * This, | ||
| 24764 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 24765 | REFIID riid, | ||
| 24766 | _COM_Outptr_ void **ppvTracker); | ||
| 24767 | |||
| 24768 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 24769 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 24770 | ID3D12Device10 * This); | ||
| 24771 | |||
| 24772 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 24773 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 24774 | ID3D12Device10 * This, | ||
| 24775 | _Inout_ UINT *pNumMetaCommands, | ||
| 24776 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 24777 | |||
| 24778 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 24779 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 24780 | ID3D12Device10 * This, | ||
| 24781 | _In_ REFGUID CommandId, | ||
| 24782 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 24783 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 24784 | _Inout_ UINT *pParameterCount, | ||
| 24785 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 24786 | |||
| 24787 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 24788 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 24789 | ID3D12Device10 * This, | ||
| 24790 | _In_ REFGUID CommandId, | ||
| 24791 | _In_ UINT NodeMask, | ||
| 24792 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 24793 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 24794 | REFIID riid, | ||
| 24795 | _COM_Outptr_ void **ppMetaCommand); | ||
| 24796 | |||
| 24797 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 24798 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 24799 | ID3D12Device10 * This, | ||
| 24800 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 24801 | REFIID riid, | ||
| 24802 | _COM_Outptr_ void **ppStateObject); | ||
| 24803 | |||
| 24804 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 24805 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 24806 | ID3D12Device10 * This, | ||
| 24807 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 24808 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 24809 | |||
| 24810 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 24811 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 24812 | ID3D12Device10 * This, | ||
| 24813 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 24814 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 24815 | |||
| 24816 | DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) | ||
| 24817 | HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( | ||
| 24818 | ID3D12Device10 * This, | ||
| 24819 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 24820 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 24821 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 24822 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired); | ||
| 24823 | |||
| 24824 | DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) | ||
| 24825 | HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( | ||
| 24826 | ID3D12Device10 * This, | ||
| 24827 | const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 24828 | ID3D12StateObject *pStateObjectToGrowFrom, | ||
| 24829 | REFIID riid, | ||
| 24830 | _COM_Outptr_ void **ppNewStateObject); | ||
| 24831 | |||
| 24832 | DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) | ||
| 24833 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( | ||
| 24834 | ID3D12Device10 * This, | ||
| 24835 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, | ||
| 24836 | _In_ REFIID riid, | ||
| 24837 | _COM_Outptr_ void **ppSession); | ||
| 24838 | |||
| 24839 | DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) | ||
| 24840 | #if !defined(_WIN32) | ||
| 24841 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 24842 | ID3D12Device10 * This, | ||
| 24843 | UINT visibleMask, | ||
| 24844 | UINT numResourceDescs, | ||
| 24845 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 24846 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 24847 | |||
| 24848 | #else | ||
| 24849 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 24850 | ID3D12Device10 * This, | ||
| 24851 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 24852 | UINT visibleMask, | ||
| 24853 | UINT numResourceDescs, | ||
| 24854 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 24855 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 24856 | |||
| 24857 | #endif | ||
| 24858 | |||
| 24859 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) | ||
| 24860 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( | ||
| 24861 | ID3D12Device10 * This, | ||
| 24862 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 24863 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 24864 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 24865 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 24866 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24867 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 24868 | REFIID riidResource, | ||
| 24869 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24870 | |||
| 24871 | DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) | ||
| 24872 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( | ||
| 24873 | ID3D12Device10 * This, | ||
| 24874 | _In_ ID3D12Heap *pHeap, | ||
| 24875 | UINT64 HeapOffset, | ||
| 24876 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 24877 | D3D12_RESOURCE_STATES InitialState, | ||
| 24878 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24879 | REFIID riid, | ||
| 24880 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24881 | |||
| 24882 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) | ||
| 24883 | void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( | ||
| 24884 | ID3D12Device10 * This, | ||
| 24885 | _In_opt_ ID3D12Resource *pTargetedResource, | ||
| 24886 | _In_opt_ ID3D12Resource *pFeedbackResource, | ||
| 24887 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 24888 | |||
| 24889 | DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) | ||
| 24890 | void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( | ||
| 24891 | ID3D12Device10 * This, | ||
| 24892 | _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, | ||
| 24893 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 24894 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 24895 | UINT64 BaseOffset, | ||
| 24896 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 24897 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 24898 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 24899 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 24900 | |||
| 24901 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) | ||
| 24902 | HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( | ||
| 24903 | ID3D12Device10 * This, | ||
| 24904 | _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, | ||
| 24905 | REFIID riid, | ||
| 24906 | _COM_Outptr_opt_ void **ppvSession); | ||
| 24907 | |||
| 24908 | DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) | ||
| 24909 | HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( | ||
| 24910 | ID3D12Device10 * This, | ||
| 24911 | D3D12_SHADER_CACHE_KIND_FLAGS Kinds, | ||
| 24912 | D3D12_SHADER_CACHE_CONTROL_FLAGS Control); | ||
| 24913 | |||
| 24914 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) | ||
| 24915 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( | ||
| 24916 | ID3D12Device10 * This, | ||
| 24917 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 24918 | REFIID CreatorID, | ||
| 24919 | REFIID riid, | ||
| 24920 | _COM_Outptr_ void **ppCommandQueue); | ||
| 24921 | |||
| 24922 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) | ||
| 24923 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( | ||
| 24924 | ID3D12Device10 * This, | ||
| 24925 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 24926 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 24927 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 24928 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 24929 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24930 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 24931 | UINT32 NumCastableFormats, | ||
| 24932 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 24933 | REFIID riidResource, | ||
| 24934 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24935 | |||
| 24936 | DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) | ||
| 24937 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( | ||
| 24938 | ID3D12Device10 * This, | ||
| 24939 | _In_ ID3D12Heap *pHeap, | ||
| 24940 | UINT64 HeapOffset, | ||
| 24941 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 24942 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 24943 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24944 | UINT32 NumCastableFormats, | ||
| 24945 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 24946 | REFIID riid, | ||
| 24947 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24948 | |||
| 24949 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) | ||
| 24950 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( | ||
| 24951 | ID3D12Device10 * This, | ||
| 24952 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 24953 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 24954 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 24955 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 24956 | UINT32 NumCastableFormats, | ||
| 24957 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 24958 | REFIID riid, | ||
| 24959 | _COM_Outptr_opt_ void **ppvResource); | ||
| 24960 | |||
| 24961 | END_INTERFACE | ||
| 24962 | } ID3D12Device10Vtbl; | ||
| 24963 | |||
| 24964 | interface ID3D12Device10 | ||
| 24965 | { | ||
| 24966 | CONST_VTBL struct ID3D12Device10Vtbl *lpVtbl; | ||
| 24967 | }; | ||
| 24968 | |||
| 24969 | |||
| 24970 | |||
| 24971 | #ifdef COBJMACROS | ||
| 24972 | |||
| 24973 | |||
| 24974 | #define ID3D12Device10_QueryInterface(This,riid,ppvObject) \ | ||
| 24975 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 24976 | |||
| 24977 | #define ID3D12Device10_AddRef(This) \ | ||
| 24978 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 24979 | |||
| 24980 | #define ID3D12Device10_Release(This) \ | ||
| 24981 | ( (This)->lpVtbl -> Release(This) ) | ||
| 24982 | |||
| 24983 | |||
| 24984 | #define ID3D12Device10_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 24985 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 24986 | |||
| 24987 | #define ID3D12Device10_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 24988 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 24989 | |||
| 24990 | #define ID3D12Device10_SetPrivateDataInterface(This,guid,pData) \ | ||
| 24991 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 24992 | |||
| 24993 | #define ID3D12Device10_SetName(This,Name) \ | ||
| 24994 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 24995 | |||
| 24996 | |||
| 24997 | #define ID3D12Device10_GetNodeCount(This) \ | ||
| 24998 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 24999 | |||
| 25000 | #define ID3D12Device10_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 25001 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 25002 | |||
| 25003 | #define ID3D12Device10_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 25004 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 25005 | |||
| 25006 | #define ID3D12Device10_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 25007 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 25008 | |||
| 25009 | #define ID3D12Device10_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 25010 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 25011 | |||
| 25012 | #define ID3D12Device10_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 25013 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 25014 | |||
| 25015 | #define ID3D12Device10_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 25016 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 25017 | |||
| 25018 | #define ID3D12Device10_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 25019 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 25020 | |||
| 25021 | #define ID3D12Device10_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 25022 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 25023 | |||
| 25024 | #define ID3D12Device10_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 25025 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 25026 | |||
| 25027 | #define ID3D12Device10_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 25028 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 25029 | |||
| 25030 | #define ID3D12Device10_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 25031 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 25032 | |||
| 25033 | #define ID3D12Device10_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 25034 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 25035 | |||
| 25036 | #define ID3D12Device10_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 25037 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 25038 | |||
| 25039 | #define ID3D12Device10_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 25040 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 25041 | |||
| 25042 | #define ID3D12Device10_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 25043 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 25044 | |||
| 25045 | #define ID3D12Device10_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 25046 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 25047 | |||
| 25048 | #define ID3D12Device10_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 25049 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 25050 | #if !defined(_WIN32) | ||
| 25051 | |||
| 25052 | #define ID3D12Device10_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 25053 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 25054 | #else | ||
| 25055 | #define ID3D12Device10_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 25056 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 25057 | #endif | ||
| 25058 | #if !defined(_WIN32) | ||
| 25059 | |||
| 25060 | #define ID3D12Device10_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 25061 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 25062 | #else | ||
| 25063 | #define ID3D12Device10_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 25064 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 25065 | #endif | ||
| 25066 | |||
| 25067 | #define ID3D12Device10_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 25068 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 25069 | |||
| 25070 | #define ID3D12Device10_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 25071 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 25072 | |||
| 25073 | #define ID3D12Device10_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 25074 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 25075 | |||
| 25076 | #define ID3D12Device10_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 25077 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 25078 | |||
| 25079 | #define ID3D12Device10_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 25080 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 25081 | |||
| 25082 | #define ID3D12Device10_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 25083 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 25084 | |||
| 25085 | #define ID3D12Device10_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 25086 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 25087 | |||
| 25088 | #define ID3D12Device10_MakeResident(This,NumObjects,ppObjects) \ | ||
| 25089 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 25090 | |||
| 25091 | #define ID3D12Device10_Evict(This,NumObjects,ppObjects) \ | ||
| 25092 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 25093 | |||
| 25094 | #define ID3D12Device10_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 25095 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 25096 | |||
| 25097 | #define ID3D12Device10_GetDeviceRemovedReason(This) \ | ||
| 25098 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 25099 | |||
| 25100 | #define ID3D12Device10_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 25101 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 25102 | |||
| 25103 | #define ID3D12Device10_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 25104 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 25105 | |||
| 25106 | #define ID3D12Device10_SetStablePowerState(This,Enable) \ | ||
| 25107 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 25108 | |||
| 25109 | #define ID3D12Device10_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 25110 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 25111 | |||
| 25112 | #define ID3D12Device10_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 25113 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 25114 | #if !defined(_WIN32) | ||
| 25115 | |||
| 25116 | #define ID3D12Device10_GetAdapterLuid(This) \ | ||
| 25117 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 25118 | #else | ||
| 25119 | #define ID3D12Device10_GetAdapterLuid(This,RetVal) \ | ||
| 25120 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 25121 | #endif | ||
| 25122 | |||
| 25123 | |||
| 25124 | #define ID3D12Device10_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 25125 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 25126 | |||
| 25127 | #define ID3D12Device10_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 25128 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 25129 | |||
| 25130 | #define ID3D12Device10_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 25131 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 25132 | |||
| 25133 | |||
| 25134 | #define ID3D12Device10_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 25135 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 25136 | |||
| 25137 | |||
| 25138 | #define ID3D12Device10_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 25139 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 25140 | |||
| 25141 | #define ID3D12Device10_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 25142 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 25143 | |||
| 25144 | #define ID3D12Device10_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 25145 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 25146 | |||
| 25147 | |||
| 25148 | #define ID3D12Device10_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 25149 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 25150 | |||
| 25151 | #define ID3D12Device10_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 25152 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 25153 | |||
| 25154 | #define ID3D12Device10_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 25155 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 25156 | |||
| 25157 | #define ID3D12Device10_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 25158 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 25159 | |||
| 25160 | #define ID3D12Device10_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 25161 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 25162 | #if !defined(_WIN32) | ||
| 25163 | |||
| 25164 | #define ID3D12Device10_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 25165 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 25166 | #else | ||
| 25167 | #define ID3D12Device10_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 25168 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 25169 | #endif | ||
| 25170 | |||
| 25171 | |||
| 25172 | #define ID3D12Device10_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 25173 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 25174 | |||
| 25175 | #define ID3D12Device10_RemoveDevice(This) \ | ||
| 25176 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 25177 | |||
| 25178 | #define ID3D12Device10_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 25179 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 25180 | |||
| 25181 | #define ID3D12Device10_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 25182 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 25183 | |||
| 25184 | #define ID3D12Device10_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 25185 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 25186 | |||
| 25187 | #define ID3D12Device10_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 25188 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 25189 | |||
| 25190 | #define ID3D12Device10_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 25191 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 25192 | |||
| 25193 | #define ID3D12Device10_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 25194 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 25195 | |||
| 25196 | |||
| 25197 | #define ID3D12Device10_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ | ||
| 25198 | ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) | ||
| 25199 | |||
| 25200 | |||
| 25201 | #define ID3D12Device10_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ | ||
| 25202 | ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) | ||
| 25203 | |||
| 25204 | #define ID3D12Device10_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ | ||
| 25205 | ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) | ||
| 25206 | |||
| 25207 | #if !defined(_WIN32) | ||
| 25208 | |||
| 25209 | #define ID3D12Device10_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 25210 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 25211 | #else | ||
| 25212 | #define ID3D12Device10_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 25213 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 25214 | #endif | ||
| 25215 | |||
| 25216 | #define ID3D12Device10_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 25217 | ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 25218 | |||
| 25219 | #define ID3D12Device10_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 25220 | ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 25221 | |||
| 25222 | #define ID3D12Device10_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ | ||
| 25223 | ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) | ||
| 25224 | |||
| 25225 | #define ID3D12Device10_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 25226 | ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 25227 | |||
| 25228 | |||
| 25229 | #define ID3D12Device10_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ | ||
| 25230 | ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) | ||
| 25231 | |||
| 25232 | #define ID3D12Device10_ShaderCacheControl(This,Kinds,Control) \ | ||
| 25233 | ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) | ||
| 25234 | |||
| 25235 | #define ID3D12Device10_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ | ||
| 25236 | ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) | ||
| 25237 | |||
| 25238 | |||
| 25239 | #define ID3D12Device10_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ | ||
| 25240 | ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) | ||
| 25241 | |||
| 25242 | #define ID3D12Device10_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 25243 | ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 25244 | |||
| 25245 | #define ID3D12Device10_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 25246 | ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 25247 | |||
| 25248 | #endif /* COBJMACROS */ | ||
| 25249 | |||
| 25250 | |||
| 25251 | #endif /* C style interface */ | ||
| 25252 | |||
| 25253 | |||
| 25254 | |||
| 25255 | |||
| 25256 | #endif /* __ID3D12Device10_INTERFACE_DEFINED__ */ | ||
| 25257 | |||
| 25258 | |||
| 25259 | #ifndef __ID3D12Device11_INTERFACE_DEFINED__ | ||
| 25260 | #define __ID3D12Device11_INTERFACE_DEFINED__ | ||
| 25261 | |||
| 25262 | /* interface ID3D12Device11 */ | ||
| 25263 | /* [unique][local][object][uuid] */ | ||
| 25264 | |||
| 25265 | |||
| 25266 | EXTERN_C const IID IID_ID3D12Device11; | ||
| 25267 | |||
| 25268 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 25269 | |||
| 25270 | MIDL_INTERFACE("5405c344-d457-444e-b4dd-2366e45aee39") | ||
| 25271 | ID3D12Device11 : public ID3D12Device10 | ||
| 25272 | { | ||
| 25273 | public: | ||
| 25274 | virtual void STDMETHODCALLTYPE CreateSampler2( | ||
| 25275 | _In_ const D3D12_SAMPLER_DESC2 *pDesc, | ||
| 25276 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor) = 0; | ||
| 25277 | |||
| 25278 | }; | ||
| 25279 | |||
| 25280 | |||
| 25281 | #else /* C style interface */ | ||
| 25282 | |||
| 25283 | typedef struct ID3D12Device11Vtbl | ||
| 25284 | { | ||
| 25285 | BEGIN_INTERFACE | ||
| 25286 | |||
| 25287 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 25288 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 25289 | ID3D12Device11 * This, | ||
| 25290 | REFIID riid, | ||
| 25291 | _COM_Outptr_ void **ppvObject); | ||
| 25292 | |||
| 25293 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 25294 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 25295 | ID3D12Device11 * This); | ||
| 25296 | |||
| 25297 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 25298 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 25299 | ID3D12Device11 * This); | ||
| 25300 | |||
| 25301 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 25302 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 25303 | ID3D12Device11 * This, | ||
| 25304 | _In_ REFGUID guid, | ||
| 25305 | _Inout_ UINT *pDataSize, | ||
| 25306 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 25307 | |||
| 25308 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 25309 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 25310 | ID3D12Device11 * This, | ||
| 25311 | _In_ REFGUID guid, | ||
| 25312 | _In_ UINT DataSize, | ||
| 25313 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 25314 | |||
| 25315 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 25316 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 25317 | ID3D12Device11 * This, | ||
| 25318 | _In_ REFGUID guid, | ||
| 25319 | _In_opt_ const IUnknown *pData); | ||
| 25320 | |||
| 25321 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 25322 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 25323 | ID3D12Device11 * This, | ||
| 25324 | _In_z_ LPCWSTR Name); | ||
| 25325 | |||
| 25326 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 25327 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 25328 | ID3D12Device11 * This); | ||
| 25329 | |||
| 25330 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 25331 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 25332 | ID3D12Device11 * This, | ||
| 25333 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 25334 | REFIID riid, | ||
| 25335 | _COM_Outptr_ void **ppCommandQueue); | ||
| 25336 | |||
| 25337 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 25338 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 25339 | ID3D12Device11 * This, | ||
| 25340 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 25341 | REFIID riid, | ||
| 25342 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 25343 | |||
| 25344 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 25345 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 25346 | ID3D12Device11 * This, | ||
| 25347 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 25348 | REFIID riid, | ||
| 25349 | _COM_Outptr_ void **ppPipelineState); | ||
| 25350 | |||
| 25351 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 25352 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 25353 | ID3D12Device11 * This, | ||
| 25354 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 25355 | REFIID riid, | ||
| 25356 | _COM_Outptr_ void **ppPipelineState); | ||
| 25357 | |||
| 25358 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 25359 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 25360 | ID3D12Device11 * This, | ||
| 25361 | _In_ UINT nodeMask, | ||
| 25362 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 25363 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 25364 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 25365 | REFIID riid, | ||
| 25366 | _COM_Outptr_ void **ppCommandList); | ||
| 25367 | |||
| 25368 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 25369 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 25370 | ID3D12Device11 * This, | ||
| 25371 | D3D12_FEATURE Feature, | ||
| 25372 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 25373 | UINT FeatureSupportDataSize); | ||
| 25374 | |||
| 25375 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 25376 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 25377 | ID3D12Device11 * This, | ||
| 25378 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 25379 | REFIID riid, | ||
| 25380 | _COM_Outptr_ void **ppvHeap); | ||
| 25381 | |||
| 25382 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 25383 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 25384 | ID3D12Device11 * This, | ||
| 25385 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 25386 | |||
| 25387 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 25388 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 25389 | ID3D12Device11 * This, | ||
| 25390 | _In_ UINT nodeMask, | ||
| 25391 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 25392 | _In_ SIZE_T blobLengthInBytes, | ||
| 25393 | REFIID riid, | ||
| 25394 | _COM_Outptr_ void **ppvRootSignature); | ||
| 25395 | |||
| 25396 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 25397 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 25398 | ID3D12Device11 * This, | ||
| 25399 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 25400 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 25401 | |||
| 25402 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 25403 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 25404 | ID3D12Device11 * This, | ||
| 25405 | _In_opt_ ID3D12Resource *pResource, | ||
| 25406 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 25407 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 25408 | |||
| 25409 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 25410 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 25411 | ID3D12Device11 * This, | ||
| 25412 | _In_opt_ ID3D12Resource *pResource, | ||
| 25413 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 25414 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 25415 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 25416 | |||
| 25417 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 25418 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 25419 | ID3D12Device11 * This, | ||
| 25420 | _In_opt_ ID3D12Resource *pResource, | ||
| 25421 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 25422 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 25423 | |||
| 25424 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 25425 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 25426 | ID3D12Device11 * This, | ||
| 25427 | _In_opt_ ID3D12Resource *pResource, | ||
| 25428 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 25429 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 25430 | |||
| 25431 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 25432 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 25433 | ID3D12Device11 * This, | ||
| 25434 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 25435 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 25436 | |||
| 25437 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 25438 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 25439 | ID3D12Device11 * This, | ||
| 25440 | _In_ UINT NumDestDescriptorRanges, | ||
| 25441 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 25442 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 25443 | _In_ UINT NumSrcDescriptorRanges, | ||
| 25444 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 25445 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 25446 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 25447 | |||
| 25448 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 25449 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 25450 | ID3D12Device11 * This, | ||
| 25451 | _In_ UINT NumDescriptors, | ||
| 25452 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 25453 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 25454 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 25455 | |||
| 25456 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 25457 | #if !defined(_WIN32) | ||
| 25458 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 25459 | ID3D12Device11 * This, | ||
| 25460 | _In_ UINT visibleMask, | ||
| 25461 | _In_ UINT numResourceDescs, | ||
| 25462 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 25463 | |||
| 25464 | #else | ||
| 25465 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 25466 | ID3D12Device11 * This, | ||
| 25467 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 25468 | _In_ UINT visibleMask, | ||
| 25469 | _In_ UINT numResourceDescs, | ||
| 25470 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 25471 | |||
| 25472 | #endif | ||
| 25473 | |||
| 25474 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 25475 | #if !defined(_WIN32) | ||
| 25476 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 25477 | ID3D12Device11 * This, | ||
| 25478 | _In_ UINT nodeMask, | ||
| 25479 | D3D12_HEAP_TYPE heapType); | ||
| 25480 | |||
| 25481 | #else | ||
| 25482 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 25483 | ID3D12Device11 * This, | ||
| 25484 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 25485 | _In_ UINT nodeMask, | ||
| 25486 | D3D12_HEAP_TYPE heapType); | ||
| 25487 | |||
| 25488 | #endif | ||
| 25489 | |||
| 25490 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 25491 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 25492 | ID3D12Device11 * This, | ||
| 25493 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 25494 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 25495 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 25496 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 25497 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25498 | REFIID riidResource, | ||
| 25499 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25500 | |||
| 25501 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 25502 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 25503 | ID3D12Device11 * This, | ||
| 25504 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 25505 | REFIID riid, | ||
| 25506 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 25507 | |||
| 25508 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 25509 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 25510 | ID3D12Device11 * This, | ||
| 25511 | _In_ ID3D12Heap *pHeap, | ||
| 25512 | UINT64 HeapOffset, | ||
| 25513 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 25514 | D3D12_RESOURCE_STATES InitialState, | ||
| 25515 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25516 | REFIID riid, | ||
| 25517 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25518 | |||
| 25519 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 25520 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 25521 | ID3D12Device11 * This, | ||
| 25522 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 25523 | D3D12_RESOURCE_STATES InitialState, | ||
| 25524 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25525 | REFIID riid, | ||
| 25526 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25527 | |||
| 25528 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 25529 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 25530 | ID3D12Device11 * This, | ||
| 25531 | _In_ ID3D12DeviceChild *pObject, | ||
| 25532 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 25533 | DWORD Access, | ||
| 25534 | _In_opt_ LPCWSTR Name, | ||
| 25535 | _Out_ HANDLE *pHandle); | ||
| 25536 | |||
| 25537 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 25538 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 25539 | ID3D12Device11 * This, | ||
| 25540 | _In_ HANDLE NTHandle, | ||
| 25541 | REFIID riid, | ||
| 25542 | _COM_Outptr_opt_ void **ppvObj); | ||
| 25543 | |||
| 25544 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 25545 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 25546 | ID3D12Device11 * This, | ||
| 25547 | _In_ LPCWSTR Name, | ||
| 25548 | DWORD Access, | ||
| 25549 | /* [annotation][out] */ | ||
| 25550 | _Out_ HANDLE *pNTHandle); | ||
| 25551 | |||
| 25552 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 25553 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 25554 | ID3D12Device11 * This, | ||
| 25555 | UINT NumObjects, | ||
| 25556 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 25557 | |||
| 25558 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 25559 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 25560 | ID3D12Device11 * This, | ||
| 25561 | UINT NumObjects, | ||
| 25562 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 25563 | |||
| 25564 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 25565 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 25566 | ID3D12Device11 * This, | ||
| 25567 | UINT64 InitialValue, | ||
| 25568 | D3D12_FENCE_FLAGS Flags, | ||
| 25569 | REFIID riid, | ||
| 25570 | _COM_Outptr_ void **ppFence); | ||
| 25571 | |||
| 25572 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 25573 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 25574 | ID3D12Device11 * This); | ||
| 25575 | |||
| 25576 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 25577 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 25578 | ID3D12Device11 * This, | ||
| 25579 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 25580 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 25581 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 25582 | UINT64 BaseOffset, | ||
| 25583 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 25584 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 25585 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 25586 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 25587 | |||
| 25588 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 25589 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 25590 | ID3D12Device11 * This, | ||
| 25591 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 25592 | REFIID riid, | ||
| 25593 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 25594 | |||
| 25595 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 25596 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 25597 | ID3D12Device11 * This, | ||
| 25598 | BOOL Enable); | ||
| 25599 | |||
| 25600 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 25601 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 25602 | ID3D12Device11 * This, | ||
| 25603 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 25604 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 25605 | REFIID riid, | ||
| 25606 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 25607 | |||
| 25608 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 25609 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 25610 | ID3D12Device11 * This, | ||
| 25611 | _In_ ID3D12Resource *pTiledResource, | ||
| 25612 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 25613 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 25614 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 25615 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 25616 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 25617 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 25618 | |||
| 25619 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 25620 | #if !defined(_WIN32) | ||
| 25621 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 25622 | ID3D12Device11 * This); | ||
| 25623 | |||
| 25624 | #else | ||
| 25625 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 25626 | ID3D12Device11 * This, | ||
| 25627 | LUID * RetVal); | ||
| 25628 | |||
| 25629 | #endif | ||
| 25630 | |||
| 25631 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 25632 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 25633 | ID3D12Device11 * This, | ||
| 25634 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 25635 | SIZE_T BlobLength, | ||
| 25636 | REFIID riid, | ||
| 25637 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 25638 | |||
| 25639 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 25640 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 25641 | ID3D12Device11 * This, | ||
| 25642 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 25643 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 25644 | UINT NumFences, | ||
| 25645 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 25646 | HANDLE hEvent); | ||
| 25647 | |||
| 25648 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 25649 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 25650 | ID3D12Device11 * This, | ||
| 25651 | UINT NumObjects, | ||
| 25652 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 25653 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 25654 | |||
| 25655 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 25656 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 25657 | ID3D12Device11 * This, | ||
| 25658 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 25659 | REFIID riid, | ||
| 25660 | _COM_Outptr_ void **ppPipelineState); | ||
| 25661 | |||
| 25662 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 25663 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 25664 | ID3D12Device11 * This, | ||
| 25665 | _In_ const void *pAddress, | ||
| 25666 | REFIID riid, | ||
| 25667 | _COM_Outptr_ void **ppvHeap); | ||
| 25668 | |||
| 25669 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 25670 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 25671 | ID3D12Device11 * This, | ||
| 25672 | _In_ HANDLE hFileMapping, | ||
| 25673 | REFIID riid, | ||
| 25674 | _COM_Outptr_ void **ppvHeap); | ||
| 25675 | |||
| 25676 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 25677 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 25678 | ID3D12Device11 * This, | ||
| 25679 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 25680 | UINT NumObjects, | ||
| 25681 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 25682 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 25683 | UINT64 FenceValueToSignal); | ||
| 25684 | |||
| 25685 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 25686 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 25687 | ID3D12Device11 * This, | ||
| 25688 | _In_ UINT nodeMask, | ||
| 25689 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 25690 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 25691 | REFIID riid, | ||
| 25692 | _COM_Outptr_ void **ppCommandList); | ||
| 25693 | |||
| 25694 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 25695 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 25696 | ID3D12Device11 * This, | ||
| 25697 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 25698 | _In_ REFIID riid, | ||
| 25699 | _COM_Outptr_ void **ppSession); | ||
| 25700 | |||
| 25701 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 25702 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 25703 | ID3D12Device11 * This, | ||
| 25704 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 25705 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 25706 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 25707 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 25708 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25709 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 25710 | REFIID riidResource, | ||
| 25711 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25712 | |||
| 25713 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 25714 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 25715 | ID3D12Device11 * This, | ||
| 25716 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 25717 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 25718 | REFIID riid, | ||
| 25719 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 25720 | |||
| 25721 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 25722 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 25723 | ID3D12Device11 * This, | ||
| 25724 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 25725 | D3D12_RESOURCE_STATES InitialState, | ||
| 25726 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25727 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 25728 | REFIID riid, | ||
| 25729 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25730 | |||
| 25731 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 25732 | #if !defined(_WIN32) | ||
| 25733 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 25734 | ID3D12Device11 * This, | ||
| 25735 | UINT visibleMask, | ||
| 25736 | UINT numResourceDescs, | ||
| 25737 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 25738 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 25739 | |||
| 25740 | #else | ||
| 25741 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 25742 | ID3D12Device11 * This, | ||
| 25743 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 25744 | UINT visibleMask, | ||
| 25745 | UINT numResourceDescs, | ||
| 25746 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 25747 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 25748 | |||
| 25749 | #endif | ||
| 25750 | |||
| 25751 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 25752 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 25753 | ID3D12Device11 * This, | ||
| 25754 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 25755 | REFIID riid, | ||
| 25756 | _COM_Outptr_ void **ppvTracker); | ||
| 25757 | |||
| 25758 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 25759 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 25760 | ID3D12Device11 * This); | ||
| 25761 | |||
| 25762 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 25763 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 25764 | ID3D12Device11 * This, | ||
| 25765 | _Inout_ UINT *pNumMetaCommands, | ||
| 25766 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 25767 | |||
| 25768 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 25769 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 25770 | ID3D12Device11 * This, | ||
| 25771 | _In_ REFGUID CommandId, | ||
| 25772 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 25773 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 25774 | _Inout_ UINT *pParameterCount, | ||
| 25775 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 25776 | |||
| 25777 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 25778 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 25779 | ID3D12Device11 * This, | ||
| 25780 | _In_ REFGUID CommandId, | ||
| 25781 | _In_ UINT NodeMask, | ||
| 25782 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 25783 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 25784 | REFIID riid, | ||
| 25785 | _COM_Outptr_ void **ppMetaCommand); | ||
| 25786 | |||
| 25787 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 25788 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 25789 | ID3D12Device11 * This, | ||
| 25790 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 25791 | REFIID riid, | ||
| 25792 | _COM_Outptr_ void **ppStateObject); | ||
| 25793 | |||
| 25794 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 25795 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 25796 | ID3D12Device11 * This, | ||
| 25797 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 25798 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 25799 | |||
| 25800 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 25801 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 25802 | ID3D12Device11 * This, | ||
| 25803 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 25804 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 25805 | |||
| 25806 | DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) | ||
| 25807 | HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( | ||
| 25808 | ID3D12Device11 * This, | ||
| 25809 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 25810 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 25811 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 25812 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired); | ||
| 25813 | |||
| 25814 | DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) | ||
| 25815 | HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( | ||
| 25816 | ID3D12Device11 * This, | ||
| 25817 | const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 25818 | ID3D12StateObject *pStateObjectToGrowFrom, | ||
| 25819 | REFIID riid, | ||
| 25820 | _COM_Outptr_ void **ppNewStateObject); | ||
| 25821 | |||
| 25822 | DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) | ||
| 25823 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( | ||
| 25824 | ID3D12Device11 * This, | ||
| 25825 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, | ||
| 25826 | _In_ REFIID riid, | ||
| 25827 | _COM_Outptr_ void **ppSession); | ||
| 25828 | |||
| 25829 | DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) | ||
| 25830 | #if !defined(_WIN32) | ||
| 25831 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 25832 | ID3D12Device11 * This, | ||
| 25833 | UINT visibleMask, | ||
| 25834 | UINT numResourceDescs, | ||
| 25835 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 25836 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 25837 | |||
| 25838 | #else | ||
| 25839 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 25840 | ID3D12Device11 * This, | ||
| 25841 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 25842 | UINT visibleMask, | ||
| 25843 | UINT numResourceDescs, | ||
| 25844 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 25845 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 25846 | |||
| 25847 | #endif | ||
| 25848 | |||
| 25849 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) | ||
| 25850 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( | ||
| 25851 | ID3D12Device11 * This, | ||
| 25852 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 25853 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 25854 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 25855 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 25856 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25857 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 25858 | REFIID riidResource, | ||
| 25859 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25860 | |||
| 25861 | DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) | ||
| 25862 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( | ||
| 25863 | ID3D12Device11 * This, | ||
| 25864 | _In_ ID3D12Heap *pHeap, | ||
| 25865 | UINT64 HeapOffset, | ||
| 25866 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 25867 | D3D12_RESOURCE_STATES InitialState, | ||
| 25868 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25869 | REFIID riid, | ||
| 25870 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25871 | |||
| 25872 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) | ||
| 25873 | void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( | ||
| 25874 | ID3D12Device11 * This, | ||
| 25875 | _In_opt_ ID3D12Resource *pTargetedResource, | ||
| 25876 | _In_opt_ ID3D12Resource *pFeedbackResource, | ||
| 25877 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 25878 | |||
| 25879 | DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) | ||
| 25880 | void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( | ||
| 25881 | ID3D12Device11 * This, | ||
| 25882 | _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, | ||
| 25883 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 25884 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 25885 | UINT64 BaseOffset, | ||
| 25886 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 25887 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 25888 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 25889 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 25890 | |||
| 25891 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) | ||
| 25892 | HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( | ||
| 25893 | ID3D12Device11 * This, | ||
| 25894 | _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, | ||
| 25895 | REFIID riid, | ||
| 25896 | _COM_Outptr_opt_ void **ppvSession); | ||
| 25897 | |||
| 25898 | DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) | ||
| 25899 | HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( | ||
| 25900 | ID3D12Device11 * This, | ||
| 25901 | D3D12_SHADER_CACHE_KIND_FLAGS Kinds, | ||
| 25902 | D3D12_SHADER_CACHE_CONTROL_FLAGS Control); | ||
| 25903 | |||
| 25904 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) | ||
| 25905 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( | ||
| 25906 | ID3D12Device11 * This, | ||
| 25907 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 25908 | REFIID CreatorID, | ||
| 25909 | REFIID riid, | ||
| 25910 | _COM_Outptr_ void **ppCommandQueue); | ||
| 25911 | |||
| 25912 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) | ||
| 25913 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( | ||
| 25914 | ID3D12Device11 * This, | ||
| 25915 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 25916 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 25917 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 25918 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 25919 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25920 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 25921 | UINT32 NumCastableFormats, | ||
| 25922 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 25923 | REFIID riidResource, | ||
| 25924 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25925 | |||
| 25926 | DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) | ||
| 25927 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( | ||
| 25928 | ID3D12Device11 * This, | ||
| 25929 | _In_ ID3D12Heap *pHeap, | ||
| 25930 | UINT64 HeapOffset, | ||
| 25931 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 25932 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 25933 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25934 | UINT32 NumCastableFormats, | ||
| 25935 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 25936 | REFIID riid, | ||
| 25937 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25938 | |||
| 25939 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) | ||
| 25940 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( | ||
| 25941 | ID3D12Device11 * This, | ||
| 25942 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 25943 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 25944 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 25945 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 25946 | UINT32 NumCastableFormats, | ||
| 25947 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 25948 | REFIID riid, | ||
| 25949 | _COM_Outptr_opt_ void **ppvResource); | ||
| 25950 | |||
| 25951 | DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) | ||
| 25952 | void ( STDMETHODCALLTYPE *CreateSampler2 )( | ||
| 25953 | ID3D12Device11 * This, | ||
| 25954 | _In_ const D3D12_SAMPLER_DESC2 *pDesc, | ||
| 25955 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 25956 | |||
| 25957 | END_INTERFACE | ||
| 25958 | } ID3D12Device11Vtbl; | ||
| 25959 | |||
| 25960 | interface ID3D12Device11 | ||
| 25961 | { | ||
| 25962 | CONST_VTBL struct ID3D12Device11Vtbl *lpVtbl; | ||
| 25963 | }; | ||
| 25964 | |||
| 25965 | |||
| 25966 | |||
| 25967 | #ifdef COBJMACROS | ||
| 25968 | |||
| 25969 | |||
| 25970 | #define ID3D12Device11_QueryInterface(This,riid,ppvObject) \ | ||
| 25971 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 25972 | |||
| 25973 | #define ID3D12Device11_AddRef(This) \ | ||
| 25974 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 25975 | |||
| 25976 | #define ID3D12Device11_Release(This) \ | ||
| 25977 | ( (This)->lpVtbl -> Release(This) ) | ||
| 25978 | |||
| 25979 | |||
| 25980 | #define ID3D12Device11_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 25981 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 25982 | |||
| 25983 | #define ID3D12Device11_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 25984 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 25985 | |||
| 25986 | #define ID3D12Device11_SetPrivateDataInterface(This,guid,pData) \ | ||
| 25987 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 25988 | |||
| 25989 | #define ID3D12Device11_SetName(This,Name) \ | ||
| 25990 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 25991 | |||
| 25992 | |||
| 25993 | #define ID3D12Device11_GetNodeCount(This) \ | ||
| 25994 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 25995 | |||
| 25996 | #define ID3D12Device11_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 25997 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 25998 | |||
| 25999 | #define ID3D12Device11_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 26000 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 26001 | |||
| 26002 | #define ID3D12Device11_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 26003 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 26004 | |||
| 26005 | #define ID3D12Device11_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 26006 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 26007 | |||
| 26008 | #define ID3D12Device11_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 26009 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 26010 | |||
| 26011 | #define ID3D12Device11_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 26012 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 26013 | |||
| 26014 | #define ID3D12Device11_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 26015 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 26016 | |||
| 26017 | #define ID3D12Device11_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 26018 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 26019 | |||
| 26020 | #define ID3D12Device11_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 26021 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 26022 | |||
| 26023 | #define ID3D12Device11_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 26024 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 26025 | |||
| 26026 | #define ID3D12Device11_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 26027 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 26028 | |||
| 26029 | #define ID3D12Device11_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 26030 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 26031 | |||
| 26032 | #define ID3D12Device11_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 26033 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 26034 | |||
| 26035 | #define ID3D12Device11_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 26036 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 26037 | |||
| 26038 | #define ID3D12Device11_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 26039 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 26040 | |||
| 26041 | #define ID3D12Device11_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 26042 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 26043 | |||
| 26044 | #define ID3D12Device11_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 26045 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 26046 | #if !defined(_WIN32) | ||
| 26047 | |||
| 26048 | #define ID3D12Device11_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 26049 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 26050 | #else | ||
| 26051 | #define ID3D12Device11_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 26052 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 26053 | #endif | ||
| 26054 | #if !defined(_WIN32) | ||
| 26055 | |||
| 26056 | #define ID3D12Device11_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 26057 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 26058 | #else | ||
| 26059 | #define ID3D12Device11_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 26060 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 26061 | #endif | ||
| 26062 | |||
| 26063 | #define ID3D12Device11_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 26064 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 26065 | |||
| 26066 | #define ID3D12Device11_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 26067 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 26068 | |||
| 26069 | #define ID3D12Device11_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 26070 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 26071 | |||
| 26072 | #define ID3D12Device11_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 26073 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 26074 | |||
| 26075 | #define ID3D12Device11_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 26076 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 26077 | |||
| 26078 | #define ID3D12Device11_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 26079 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 26080 | |||
| 26081 | #define ID3D12Device11_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 26082 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 26083 | |||
| 26084 | #define ID3D12Device11_MakeResident(This,NumObjects,ppObjects) \ | ||
| 26085 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 26086 | |||
| 26087 | #define ID3D12Device11_Evict(This,NumObjects,ppObjects) \ | ||
| 26088 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 26089 | |||
| 26090 | #define ID3D12Device11_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 26091 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 26092 | |||
| 26093 | #define ID3D12Device11_GetDeviceRemovedReason(This) \ | ||
| 26094 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 26095 | |||
| 26096 | #define ID3D12Device11_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 26097 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 26098 | |||
| 26099 | #define ID3D12Device11_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 26100 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 26101 | |||
| 26102 | #define ID3D12Device11_SetStablePowerState(This,Enable) \ | ||
| 26103 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 26104 | |||
| 26105 | #define ID3D12Device11_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 26106 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 26107 | |||
| 26108 | #define ID3D12Device11_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 26109 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 26110 | #if !defined(_WIN32) | ||
| 26111 | |||
| 26112 | #define ID3D12Device11_GetAdapterLuid(This) \ | ||
| 26113 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 26114 | #else | ||
| 26115 | #define ID3D12Device11_GetAdapterLuid(This,RetVal) \ | ||
| 26116 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 26117 | #endif | ||
| 26118 | |||
| 26119 | |||
| 26120 | #define ID3D12Device11_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 26121 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 26122 | |||
| 26123 | #define ID3D12Device11_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 26124 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 26125 | |||
| 26126 | #define ID3D12Device11_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 26127 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 26128 | |||
| 26129 | |||
| 26130 | #define ID3D12Device11_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 26131 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 26132 | |||
| 26133 | |||
| 26134 | #define ID3D12Device11_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 26135 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 26136 | |||
| 26137 | #define ID3D12Device11_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 26138 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 26139 | |||
| 26140 | #define ID3D12Device11_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 26141 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 26142 | |||
| 26143 | |||
| 26144 | #define ID3D12Device11_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 26145 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 26146 | |||
| 26147 | #define ID3D12Device11_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 26148 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 26149 | |||
| 26150 | #define ID3D12Device11_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 26151 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 26152 | |||
| 26153 | #define ID3D12Device11_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 26154 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 26155 | |||
| 26156 | #define ID3D12Device11_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 26157 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 26158 | #if !defined(_WIN32) | ||
| 26159 | |||
| 26160 | #define ID3D12Device11_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 26161 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 26162 | #else | ||
| 26163 | #define ID3D12Device11_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 26164 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 26165 | #endif | ||
| 26166 | |||
| 26167 | |||
| 26168 | #define ID3D12Device11_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 26169 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 26170 | |||
| 26171 | #define ID3D12Device11_RemoveDevice(This) \ | ||
| 26172 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 26173 | |||
| 26174 | #define ID3D12Device11_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 26175 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 26176 | |||
| 26177 | #define ID3D12Device11_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 26178 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 26179 | |||
| 26180 | #define ID3D12Device11_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 26181 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 26182 | |||
| 26183 | #define ID3D12Device11_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 26184 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 26185 | |||
| 26186 | #define ID3D12Device11_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 26187 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 26188 | |||
| 26189 | #define ID3D12Device11_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 26190 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 26191 | |||
| 26192 | |||
| 26193 | #define ID3D12Device11_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ | ||
| 26194 | ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) | ||
| 26195 | |||
| 26196 | |||
| 26197 | #define ID3D12Device11_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ | ||
| 26198 | ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) | ||
| 26199 | |||
| 26200 | #define ID3D12Device11_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ | ||
| 26201 | ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) | ||
| 26202 | |||
| 26203 | #if !defined(_WIN32) | ||
| 26204 | |||
| 26205 | #define ID3D12Device11_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 26206 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 26207 | #else | ||
| 26208 | #define ID3D12Device11_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 26209 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 26210 | #endif | ||
| 26211 | |||
| 26212 | #define ID3D12Device11_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 26213 | ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 26214 | |||
| 26215 | #define ID3D12Device11_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 26216 | ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 26217 | |||
| 26218 | #define ID3D12Device11_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ | ||
| 26219 | ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) | ||
| 26220 | |||
| 26221 | #define ID3D12Device11_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 26222 | ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 26223 | |||
| 26224 | |||
| 26225 | #define ID3D12Device11_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ | ||
| 26226 | ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) | ||
| 26227 | |||
| 26228 | #define ID3D12Device11_ShaderCacheControl(This,Kinds,Control) \ | ||
| 26229 | ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) | ||
| 26230 | |||
| 26231 | #define ID3D12Device11_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ | ||
| 26232 | ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) | ||
| 26233 | |||
| 26234 | |||
| 26235 | #define ID3D12Device11_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ | ||
| 26236 | ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) | ||
| 26237 | |||
| 26238 | #define ID3D12Device11_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 26239 | ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 26240 | |||
| 26241 | #define ID3D12Device11_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 26242 | ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 26243 | |||
| 26244 | |||
| 26245 | #define ID3D12Device11_CreateSampler2(This,pDesc,DestDescriptor) \ | ||
| 26246 | ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) | ||
| 26247 | |||
| 26248 | #endif /* COBJMACROS */ | ||
| 26249 | |||
| 26250 | |||
| 26251 | #endif /* C style interface */ | ||
| 26252 | |||
| 26253 | |||
| 26254 | |||
| 26255 | |||
| 26256 | #endif /* __ID3D12Device11_INTERFACE_DEFINED__ */ | ||
| 26257 | |||
| 26258 | |||
| 26259 | #ifndef __ID3D12Device12_INTERFACE_DEFINED__ | ||
| 26260 | #define __ID3D12Device12_INTERFACE_DEFINED__ | ||
| 26261 | |||
| 26262 | /* interface ID3D12Device12 */ | ||
| 26263 | /* [unique][local][object][uuid] */ | ||
| 26264 | |||
| 26265 | |||
| 26266 | EXTERN_C const IID IID_ID3D12Device12; | ||
| 26267 | |||
| 26268 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 26269 | |||
| 26270 | MIDL_INTERFACE("5af5c532-4c91-4cd0-b541-15a405395fc5") | ||
| 26271 | ID3D12Device12 : public ID3D12Device11 | ||
| 26272 | { | ||
| 26273 | public: | ||
| 26274 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 26275 | virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo3( | ||
| 26276 | UINT visibleMask, | ||
| 26277 | UINT numResourceDescs, | ||
| 26278 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 26279 | _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, | ||
| 26280 | _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, | ||
| 26281 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; | ||
| 26282 | #else | ||
| 26283 | virtual D3D12_RESOURCE_ALLOCATION_INFO *STDMETHODCALLTYPE GetResourceAllocationInfo3( | ||
| 26284 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 26285 | UINT visibleMask, | ||
| 26286 | UINT numResourceDescs, | ||
| 26287 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 26288 | _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, | ||
| 26289 | _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, | ||
| 26290 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1) = 0; | ||
| 26291 | #endif | ||
| 26292 | |||
| 26293 | }; | ||
| 26294 | |||
| 26295 | |||
| 26296 | #else /* C style interface */ | ||
| 26297 | |||
| 26298 | typedef struct ID3D12Device12Vtbl | ||
| 26299 | { | ||
| 26300 | BEGIN_INTERFACE | ||
| 26301 | |||
| 26302 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 26303 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 26304 | ID3D12Device12 * This, | ||
| 26305 | REFIID riid, | ||
| 26306 | _COM_Outptr_ void **ppvObject); | ||
| 26307 | |||
| 26308 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 26309 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 26310 | ID3D12Device12 * This); | ||
| 26311 | |||
| 26312 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 26313 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 26314 | ID3D12Device12 * This); | ||
| 26315 | |||
| 26316 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 26317 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 26318 | ID3D12Device12 * This, | ||
| 26319 | _In_ REFGUID guid, | ||
| 26320 | _Inout_ UINT *pDataSize, | ||
| 26321 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 26322 | |||
| 26323 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 26324 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 26325 | ID3D12Device12 * This, | ||
| 26326 | _In_ REFGUID guid, | ||
| 26327 | _In_ UINT DataSize, | ||
| 26328 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 26329 | |||
| 26330 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 26331 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 26332 | ID3D12Device12 * This, | ||
| 26333 | _In_ REFGUID guid, | ||
| 26334 | _In_opt_ const IUnknown *pData); | ||
| 26335 | |||
| 26336 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 26337 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 26338 | ID3D12Device12 * This, | ||
| 26339 | _In_z_ LPCWSTR Name); | ||
| 26340 | |||
| 26341 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 26342 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 26343 | ID3D12Device12 * This); | ||
| 26344 | |||
| 26345 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 26346 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 26347 | ID3D12Device12 * This, | ||
| 26348 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 26349 | REFIID riid, | ||
| 26350 | _COM_Outptr_ void **ppCommandQueue); | ||
| 26351 | |||
| 26352 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 26353 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 26354 | ID3D12Device12 * This, | ||
| 26355 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 26356 | REFIID riid, | ||
| 26357 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 26358 | |||
| 26359 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 26360 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 26361 | ID3D12Device12 * This, | ||
| 26362 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 26363 | REFIID riid, | ||
| 26364 | _COM_Outptr_ void **ppPipelineState); | ||
| 26365 | |||
| 26366 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 26367 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 26368 | ID3D12Device12 * This, | ||
| 26369 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 26370 | REFIID riid, | ||
| 26371 | _COM_Outptr_ void **ppPipelineState); | ||
| 26372 | |||
| 26373 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 26374 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 26375 | ID3D12Device12 * This, | ||
| 26376 | _In_ UINT nodeMask, | ||
| 26377 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 26378 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 26379 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 26380 | REFIID riid, | ||
| 26381 | _COM_Outptr_ void **ppCommandList); | ||
| 26382 | |||
| 26383 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 26384 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 26385 | ID3D12Device12 * This, | ||
| 26386 | D3D12_FEATURE Feature, | ||
| 26387 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 26388 | UINT FeatureSupportDataSize); | ||
| 26389 | |||
| 26390 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 26391 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 26392 | ID3D12Device12 * This, | ||
| 26393 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 26394 | REFIID riid, | ||
| 26395 | _COM_Outptr_ void **ppvHeap); | ||
| 26396 | |||
| 26397 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 26398 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 26399 | ID3D12Device12 * This, | ||
| 26400 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 26401 | |||
| 26402 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 26403 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 26404 | ID3D12Device12 * This, | ||
| 26405 | _In_ UINT nodeMask, | ||
| 26406 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 26407 | _In_ SIZE_T blobLengthInBytes, | ||
| 26408 | REFIID riid, | ||
| 26409 | _COM_Outptr_ void **ppvRootSignature); | ||
| 26410 | |||
| 26411 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 26412 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 26413 | ID3D12Device12 * This, | ||
| 26414 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 26415 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 26416 | |||
| 26417 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 26418 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 26419 | ID3D12Device12 * This, | ||
| 26420 | _In_opt_ ID3D12Resource *pResource, | ||
| 26421 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 26422 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 26423 | |||
| 26424 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 26425 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 26426 | ID3D12Device12 * This, | ||
| 26427 | _In_opt_ ID3D12Resource *pResource, | ||
| 26428 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 26429 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 26430 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 26431 | |||
| 26432 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 26433 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 26434 | ID3D12Device12 * This, | ||
| 26435 | _In_opt_ ID3D12Resource *pResource, | ||
| 26436 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 26437 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 26438 | |||
| 26439 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 26440 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 26441 | ID3D12Device12 * This, | ||
| 26442 | _In_opt_ ID3D12Resource *pResource, | ||
| 26443 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 26444 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 26445 | |||
| 26446 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 26447 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 26448 | ID3D12Device12 * This, | ||
| 26449 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 26450 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 26451 | |||
| 26452 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 26453 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 26454 | ID3D12Device12 * This, | ||
| 26455 | _In_ UINT NumDestDescriptorRanges, | ||
| 26456 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 26457 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 26458 | _In_ UINT NumSrcDescriptorRanges, | ||
| 26459 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 26460 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 26461 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 26462 | |||
| 26463 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 26464 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 26465 | ID3D12Device12 * This, | ||
| 26466 | _In_ UINT NumDescriptors, | ||
| 26467 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 26468 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 26469 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 26470 | |||
| 26471 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 26472 | #if !defined(_WIN32) | ||
| 26473 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 26474 | ID3D12Device12 * This, | ||
| 26475 | _In_ UINT visibleMask, | ||
| 26476 | _In_ UINT numResourceDescs, | ||
| 26477 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 26478 | |||
| 26479 | #else | ||
| 26480 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 26481 | ID3D12Device12 * This, | ||
| 26482 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 26483 | _In_ UINT visibleMask, | ||
| 26484 | _In_ UINT numResourceDescs, | ||
| 26485 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 26486 | |||
| 26487 | #endif | ||
| 26488 | |||
| 26489 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 26490 | #if !defined(_WIN32) | ||
| 26491 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 26492 | ID3D12Device12 * This, | ||
| 26493 | _In_ UINT nodeMask, | ||
| 26494 | D3D12_HEAP_TYPE heapType); | ||
| 26495 | |||
| 26496 | #else | ||
| 26497 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 26498 | ID3D12Device12 * This, | ||
| 26499 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 26500 | _In_ UINT nodeMask, | ||
| 26501 | D3D12_HEAP_TYPE heapType); | ||
| 26502 | |||
| 26503 | #endif | ||
| 26504 | |||
| 26505 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 26506 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 26507 | ID3D12Device12 * This, | ||
| 26508 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 26509 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 26510 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 26511 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 26512 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26513 | REFIID riidResource, | ||
| 26514 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26515 | |||
| 26516 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 26517 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 26518 | ID3D12Device12 * This, | ||
| 26519 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 26520 | REFIID riid, | ||
| 26521 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 26522 | |||
| 26523 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 26524 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 26525 | ID3D12Device12 * This, | ||
| 26526 | _In_ ID3D12Heap *pHeap, | ||
| 26527 | UINT64 HeapOffset, | ||
| 26528 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 26529 | D3D12_RESOURCE_STATES InitialState, | ||
| 26530 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26531 | REFIID riid, | ||
| 26532 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26533 | |||
| 26534 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 26535 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 26536 | ID3D12Device12 * This, | ||
| 26537 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 26538 | D3D12_RESOURCE_STATES InitialState, | ||
| 26539 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26540 | REFIID riid, | ||
| 26541 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26542 | |||
| 26543 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 26544 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 26545 | ID3D12Device12 * This, | ||
| 26546 | _In_ ID3D12DeviceChild *pObject, | ||
| 26547 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 26548 | DWORD Access, | ||
| 26549 | _In_opt_ LPCWSTR Name, | ||
| 26550 | _Out_ HANDLE *pHandle); | ||
| 26551 | |||
| 26552 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 26553 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 26554 | ID3D12Device12 * This, | ||
| 26555 | _In_ HANDLE NTHandle, | ||
| 26556 | REFIID riid, | ||
| 26557 | _COM_Outptr_opt_ void **ppvObj); | ||
| 26558 | |||
| 26559 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 26560 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 26561 | ID3D12Device12 * This, | ||
| 26562 | _In_ LPCWSTR Name, | ||
| 26563 | DWORD Access, | ||
| 26564 | /* [annotation][out] */ | ||
| 26565 | _Out_ HANDLE *pNTHandle); | ||
| 26566 | |||
| 26567 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 26568 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 26569 | ID3D12Device12 * This, | ||
| 26570 | UINT NumObjects, | ||
| 26571 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 26572 | |||
| 26573 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 26574 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 26575 | ID3D12Device12 * This, | ||
| 26576 | UINT NumObjects, | ||
| 26577 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 26578 | |||
| 26579 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 26580 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 26581 | ID3D12Device12 * This, | ||
| 26582 | UINT64 InitialValue, | ||
| 26583 | D3D12_FENCE_FLAGS Flags, | ||
| 26584 | REFIID riid, | ||
| 26585 | _COM_Outptr_ void **ppFence); | ||
| 26586 | |||
| 26587 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 26588 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 26589 | ID3D12Device12 * This); | ||
| 26590 | |||
| 26591 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 26592 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 26593 | ID3D12Device12 * This, | ||
| 26594 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 26595 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 26596 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 26597 | UINT64 BaseOffset, | ||
| 26598 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 26599 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 26600 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 26601 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 26602 | |||
| 26603 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 26604 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 26605 | ID3D12Device12 * This, | ||
| 26606 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 26607 | REFIID riid, | ||
| 26608 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 26609 | |||
| 26610 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 26611 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 26612 | ID3D12Device12 * This, | ||
| 26613 | BOOL Enable); | ||
| 26614 | |||
| 26615 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 26616 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 26617 | ID3D12Device12 * This, | ||
| 26618 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 26619 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 26620 | REFIID riid, | ||
| 26621 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 26622 | |||
| 26623 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 26624 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 26625 | ID3D12Device12 * This, | ||
| 26626 | _In_ ID3D12Resource *pTiledResource, | ||
| 26627 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 26628 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 26629 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 26630 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 26631 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 26632 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 26633 | |||
| 26634 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 26635 | #if !defined(_WIN32) | ||
| 26636 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 26637 | ID3D12Device12 * This); | ||
| 26638 | |||
| 26639 | #else | ||
| 26640 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 26641 | ID3D12Device12 * This, | ||
| 26642 | LUID * RetVal); | ||
| 26643 | |||
| 26644 | #endif | ||
| 26645 | |||
| 26646 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 26647 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 26648 | ID3D12Device12 * This, | ||
| 26649 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 26650 | SIZE_T BlobLength, | ||
| 26651 | REFIID riid, | ||
| 26652 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 26653 | |||
| 26654 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 26655 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 26656 | ID3D12Device12 * This, | ||
| 26657 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 26658 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 26659 | UINT NumFences, | ||
| 26660 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 26661 | HANDLE hEvent); | ||
| 26662 | |||
| 26663 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 26664 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 26665 | ID3D12Device12 * This, | ||
| 26666 | UINT NumObjects, | ||
| 26667 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 26668 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 26669 | |||
| 26670 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 26671 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 26672 | ID3D12Device12 * This, | ||
| 26673 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 26674 | REFIID riid, | ||
| 26675 | _COM_Outptr_ void **ppPipelineState); | ||
| 26676 | |||
| 26677 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 26678 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 26679 | ID3D12Device12 * This, | ||
| 26680 | _In_ const void *pAddress, | ||
| 26681 | REFIID riid, | ||
| 26682 | _COM_Outptr_ void **ppvHeap); | ||
| 26683 | |||
| 26684 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 26685 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 26686 | ID3D12Device12 * This, | ||
| 26687 | _In_ HANDLE hFileMapping, | ||
| 26688 | REFIID riid, | ||
| 26689 | _COM_Outptr_ void **ppvHeap); | ||
| 26690 | |||
| 26691 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 26692 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 26693 | ID3D12Device12 * This, | ||
| 26694 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 26695 | UINT NumObjects, | ||
| 26696 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 26697 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 26698 | UINT64 FenceValueToSignal); | ||
| 26699 | |||
| 26700 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 26701 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 26702 | ID3D12Device12 * This, | ||
| 26703 | _In_ UINT nodeMask, | ||
| 26704 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 26705 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 26706 | REFIID riid, | ||
| 26707 | _COM_Outptr_ void **ppCommandList); | ||
| 26708 | |||
| 26709 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 26710 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 26711 | ID3D12Device12 * This, | ||
| 26712 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 26713 | _In_ REFIID riid, | ||
| 26714 | _COM_Outptr_ void **ppSession); | ||
| 26715 | |||
| 26716 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 26717 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 26718 | ID3D12Device12 * This, | ||
| 26719 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 26720 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 26721 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 26722 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 26723 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26724 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 26725 | REFIID riidResource, | ||
| 26726 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26727 | |||
| 26728 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 26729 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 26730 | ID3D12Device12 * This, | ||
| 26731 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 26732 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 26733 | REFIID riid, | ||
| 26734 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 26735 | |||
| 26736 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 26737 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 26738 | ID3D12Device12 * This, | ||
| 26739 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 26740 | D3D12_RESOURCE_STATES InitialState, | ||
| 26741 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26742 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 26743 | REFIID riid, | ||
| 26744 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26745 | |||
| 26746 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 26747 | #if !defined(_WIN32) | ||
| 26748 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 26749 | ID3D12Device12 * This, | ||
| 26750 | UINT visibleMask, | ||
| 26751 | UINT numResourceDescs, | ||
| 26752 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 26753 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 26754 | |||
| 26755 | #else | ||
| 26756 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 26757 | ID3D12Device12 * This, | ||
| 26758 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 26759 | UINT visibleMask, | ||
| 26760 | UINT numResourceDescs, | ||
| 26761 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 26762 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 26763 | |||
| 26764 | #endif | ||
| 26765 | |||
| 26766 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 26767 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 26768 | ID3D12Device12 * This, | ||
| 26769 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 26770 | REFIID riid, | ||
| 26771 | _COM_Outptr_ void **ppvTracker); | ||
| 26772 | |||
| 26773 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 26774 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 26775 | ID3D12Device12 * This); | ||
| 26776 | |||
| 26777 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 26778 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 26779 | ID3D12Device12 * This, | ||
| 26780 | _Inout_ UINT *pNumMetaCommands, | ||
| 26781 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 26782 | |||
| 26783 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 26784 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 26785 | ID3D12Device12 * This, | ||
| 26786 | _In_ REFGUID CommandId, | ||
| 26787 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 26788 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 26789 | _Inout_ UINT *pParameterCount, | ||
| 26790 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 26791 | |||
| 26792 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 26793 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 26794 | ID3D12Device12 * This, | ||
| 26795 | _In_ REFGUID CommandId, | ||
| 26796 | _In_ UINT NodeMask, | ||
| 26797 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 26798 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 26799 | REFIID riid, | ||
| 26800 | _COM_Outptr_ void **ppMetaCommand); | ||
| 26801 | |||
| 26802 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 26803 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 26804 | ID3D12Device12 * This, | ||
| 26805 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 26806 | REFIID riid, | ||
| 26807 | _COM_Outptr_ void **ppStateObject); | ||
| 26808 | |||
| 26809 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 26810 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 26811 | ID3D12Device12 * This, | ||
| 26812 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 26813 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 26814 | |||
| 26815 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 26816 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 26817 | ID3D12Device12 * This, | ||
| 26818 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 26819 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 26820 | |||
| 26821 | DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) | ||
| 26822 | HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( | ||
| 26823 | ID3D12Device12 * This, | ||
| 26824 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 26825 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 26826 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 26827 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired); | ||
| 26828 | |||
| 26829 | DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) | ||
| 26830 | HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( | ||
| 26831 | ID3D12Device12 * This, | ||
| 26832 | const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 26833 | ID3D12StateObject *pStateObjectToGrowFrom, | ||
| 26834 | REFIID riid, | ||
| 26835 | _COM_Outptr_ void **ppNewStateObject); | ||
| 26836 | |||
| 26837 | DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) | ||
| 26838 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( | ||
| 26839 | ID3D12Device12 * This, | ||
| 26840 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, | ||
| 26841 | _In_ REFIID riid, | ||
| 26842 | _COM_Outptr_ void **ppSession); | ||
| 26843 | |||
| 26844 | DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) | ||
| 26845 | #if !defined(_WIN32) | ||
| 26846 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 26847 | ID3D12Device12 * This, | ||
| 26848 | UINT visibleMask, | ||
| 26849 | UINT numResourceDescs, | ||
| 26850 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 26851 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 26852 | |||
| 26853 | #else | ||
| 26854 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 26855 | ID3D12Device12 * This, | ||
| 26856 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 26857 | UINT visibleMask, | ||
| 26858 | UINT numResourceDescs, | ||
| 26859 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 26860 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 26861 | |||
| 26862 | #endif | ||
| 26863 | |||
| 26864 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) | ||
| 26865 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( | ||
| 26866 | ID3D12Device12 * This, | ||
| 26867 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 26868 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 26869 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 26870 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 26871 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26872 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 26873 | REFIID riidResource, | ||
| 26874 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26875 | |||
| 26876 | DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) | ||
| 26877 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( | ||
| 26878 | ID3D12Device12 * This, | ||
| 26879 | _In_ ID3D12Heap *pHeap, | ||
| 26880 | UINT64 HeapOffset, | ||
| 26881 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 26882 | D3D12_RESOURCE_STATES InitialState, | ||
| 26883 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26884 | REFIID riid, | ||
| 26885 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26886 | |||
| 26887 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) | ||
| 26888 | void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( | ||
| 26889 | ID3D12Device12 * This, | ||
| 26890 | _In_opt_ ID3D12Resource *pTargetedResource, | ||
| 26891 | _In_opt_ ID3D12Resource *pFeedbackResource, | ||
| 26892 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 26893 | |||
| 26894 | DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) | ||
| 26895 | void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( | ||
| 26896 | ID3D12Device12 * This, | ||
| 26897 | _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, | ||
| 26898 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 26899 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 26900 | UINT64 BaseOffset, | ||
| 26901 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 26902 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 26903 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 26904 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 26905 | |||
| 26906 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) | ||
| 26907 | HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( | ||
| 26908 | ID3D12Device12 * This, | ||
| 26909 | _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, | ||
| 26910 | REFIID riid, | ||
| 26911 | _COM_Outptr_opt_ void **ppvSession); | ||
| 26912 | |||
| 26913 | DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) | ||
| 26914 | HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( | ||
| 26915 | ID3D12Device12 * This, | ||
| 26916 | D3D12_SHADER_CACHE_KIND_FLAGS Kinds, | ||
| 26917 | D3D12_SHADER_CACHE_CONTROL_FLAGS Control); | ||
| 26918 | |||
| 26919 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) | ||
| 26920 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( | ||
| 26921 | ID3D12Device12 * This, | ||
| 26922 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 26923 | REFIID CreatorID, | ||
| 26924 | REFIID riid, | ||
| 26925 | _COM_Outptr_ void **ppCommandQueue); | ||
| 26926 | |||
| 26927 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) | ||
| 26928 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( | ||
| 26929 | ID3D12Device12 * This, | ||
| 26930 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 26931 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 26932 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 26933 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 26934 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26935 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 26936 | UINT32 NumCastableFormats, | ||
| 26937 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 26938 | REFIID riidResource, | ||
| 26939 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26940 | |||
| 26941 | DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) | ||
| 26942 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( | ||
| 26943 | ID3D12Device12 * This, | ||
| 26944 | _In_ ID3D12Heap *pHeap, | ||
| 26945 | UINT64 HeapOffset, | ||
| 26946 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 26947 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 26948 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26949 | UINT32 NumCastableFormats, | ||
| 26950 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 26951 | REFIID riid, | ||
| 26952 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26953 | |||
| 26954 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) | ||
| 26955 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( | ||
| 26956 | ID3D12Device12 * This, | ||
| 26957 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 26958 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 26959 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 26960 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 26961 | UINT32 NumCastableFormats, | ||
| 26962 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 26963 | REFIID riid, | ||
| 26964 | _COM_Outptr_opt_ void **ppvResource); | ||
| 26965 | |||
| 26966 | DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) | ||
| 26967 | void ( STDMETHODCALLTYPE *CreateSampler2 )( | ||
| 26968 | ID3D12Device12 * This, | ||
| 26969 | _In_ const D3D12_SAMPLER_DESC2 *pDesc, | ||
| 26970 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 26971 | |||
| 26972 | DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3) | ||
| 26973 | #if !defined(_WIN32) | ||
| 26974 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( | ||
| 26975 | ID3D12Device12 * This, | ||
| 26976 | UINT visibleMask, | ||
| 26977 | UINT numResourceDescs, | ||
| 26978 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 26979 | _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, | ||
| 26980 | _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, | ||
| 26981 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 26982 | |||
| 26983 | #else | ||
| 26984 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( | ||
| 26985 | ID3D12Device12 * This, | ||
| 26986 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 26987 | UINT visibleMask, | ||
| 26988 | UINT numResourceDescs, | ||
| 26989 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 26990 | _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, | ||
| 26991 | _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, | ||
| 26992 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 26993 | |||
| 26994 | #endif | ||
| 26995 | |||
| 26996 | END_INTERFACE | ||
| 26997 | } ID3D12Device12Vtbl; | ||
| 26998 | |||
| 26999 | interface ID3D12Device12 | ||
| 27000 | { | ||
| 27001 | CONST_VTBL struct ID3D12Device12Vtbl *lpVtbl; | ||
| 27002 | }; | ||
| 27003 | |||
| 27004 | |||
| 27005 | |||
| 27006 | #ifdef COBJMACROS | ||
| 27007 | |||
| 27008 | |||
| 27009 | #define ID3D12Device12_QueryInterface(This,riid,ppvObject) \ | ||
| 27010 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 27011 | |||
| 27012 | #define ID3D12Device12_AddRef(This) \ | ||
| 27013 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 27014 | |||
| 27015 | #define ID3D12Device12_Release(This) \ | ||
| 27016 | ( (This)->lpVtbl -> Release(This) ) | ||
| 27017 | |||
| 27018 | |||
| 27019 | #define ID3D12Device12_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 27020 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 27021 | |||
| 27022 | #define ID3D12Device12_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 27023 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 27024 | |||
| 27025 | #define ID3D12Device12_SetPrivateDataInterface(This,guid,pData) \ | ||
| 27026 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 27027 | |||
| 27028 | #define ID3D12Device12_SetName(This,Name) \ | ||
| 27029 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 27030 | |||
| 27031 | |||
| 27032 | #define ID3D12Device12_GetNodeCount(This) \ | ||
| 27033 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 27034 | |||
| 27035 | #define ID3D12Device12_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 27036 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 27037 | |||
| 27038 | #define ID3D12Device12_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 27039 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 27040 | |||
| 27041 | #define ID3D12Device12_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 27042 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 27043 | |||
| 27044 | #define ID3D12Device12_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 27045 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 27046 | |||
| 27047 | #define ID3D12Device12_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 27048 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 27049 | |||
| 27050 | #define ID3D12Device12_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 27051 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 27052 | |||
| 27053 | #define ID3D12Device12_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 27054 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 27055 | |||
| 27056 | #define ID3D12Device12_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 27057 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 27058 | |||
| 27059 | #define ID3D12Device12_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 27060 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 27061 | |||
| 27062 | #define ID3D12Device12_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 27063 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 27064 | |||
| 27065 | #define ID3D12Device12_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 27066 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 27067 | |||
| 27068 | #define ID3D12Device12_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 27069 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 27070 | |||
| 27071 | #define ID3D12Device12_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 27072 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 27073 | |||
| 27074 | #define ID3D12Device12_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 27075 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 27076 | |||
| 27077 | #define ID3D12Device12_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 27078 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 27079 | |||
| 27080 | #define ID3D12Device12_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 27081 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 27082 | |||
| 27083 | #define ID3D12Device12_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 27084 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 27085 | #if !defined(_WIN32) | ||
| 27086 | |||
| 27087 | #define ID3D12Device12_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 27088 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 27089 | #else | ||
| 27090 | #define ID3D12Device12_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 27091 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 27092 | #endif | ||
| 27093 | #if !defined(_WIN32) | ||
| 27094 | |||
| 27095 | #define ID3D12Device12_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 27096 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 27097 | #else | ||
| 27098 | #define ID3D12Device12_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 27099 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 27100 | #endif | ||
| 27101 | |||
| 27102 | #define ID3D12Device12_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 27103 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 27104 | |||
| 27105 | #define ID3D12Device12_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 27106 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 27107 | |||
| 27108 | #define ID3D12Device12_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 27109 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 27110 | |||
| 27111 | #define ID3D12Device12_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 27112 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 27113 | |||
| 27114 | #define ID3D12Device12_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 27115 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 27116 | |||
| 27117 | #define ID3D12Device12_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 27118 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 27119 | |||
| 27120 | #define ID3D12Device12_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 27121 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 27122 | |||
| 27123 | #define ID3D12Device12_MakeResident(This,NumObjects,ppObjects) \ | ||
| 27124 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 27125 | |||
| 27126 | #define ID3D12Device12_Evict(This,NumObjects,ppObjects) \ | ||
| 27127 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 27128 | |||
| 27129 | #define ID3D12Device12_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 27130 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 27131 | |||
| 27132 | #define ID3D12Device12_GetDeviceRemovedReason(This) \ | ||
| 27133 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 27134 | |||
| 27135 | #define ID3D12Device12_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 27136 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 27137 | |||
| 27138 | #define ID3D12Device12_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 27139 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 27140 | |||
| 27141 | #define ID3D12Device12_SetStablePowerState(This,Enable) \ | ||
| 27142 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 27143 | |||
| 27144 | #define ID3D12Device12_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 27145 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 27146 | |||
| 27147 | #define ID3D12Device12_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 27148 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 27149 | #if !defined(_WIN32) | ||
| 27150 | |||
| 27151 | #define ID3D12Device12_GetAdapterLuid(This) \ | ||
| 27152 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 27153 | #else | ||
| 27154 | #define ID3D12Device12_GetAdapterLuid(This,RetVal) \ | ||
| 27155 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 27156 | #endif | ||
| 27157 | |||
| 27158 | |||
| 27159 | #define ID3D12Device12_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 27160 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 27161 | |||
| 27162 | #define ID3D12Device12_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 27163 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 27164 | |||
| 27165 | #define ID3D12Device12_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 27166 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 27167 | |||
| 27168 | |||
| 27169 | #define ID3D12Device12_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 27170 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 27171 | |||
| 27172 | |||
| 27173 | #define ID3D12Device12_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 27174 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 27175 | |||
| 27176 | #define ID3D12Device12_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 27177 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 27178 | |||
| 27179 | #define ID3D12Device12_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 27180 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 27181 | |||
| 27182 | |||
| 27183 | #define ID3D12Device12_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 27184 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 27185 | |||
| 27186 | #define ID3D12Device12_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 27187 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 27188 | |||
| 27189 | #define ID3D12Device12_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 27190 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 27191 | |||
| 27192 | #define ID3D12Device12_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 27193 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 27194 | |||
| 27195 | #define ID3D12Device12_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 27196 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 27197 | #if !defined(_WIN32) | ||
| 27198 | |||
| 27199 | #define ID3D12Device12_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 27200 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 27201 | #else | ||
| 27202 | #define ID3D12Device12_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 27203 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 27204 | #endif | ||
| 27205 | |||
| 27206 | |||
| 27207 | #define ID3D12Device12_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 27208 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 27209 | |||
| 27210 | #define ID3D12Device12_RemoveDevice(This) \ | ||
| 27211 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 27212 | |||
| 27213 | #define ID3D12Device12_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 27214 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 27215 | |||
| 27216 | #define ID3D12Device12_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 27217 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 27218 | |||
| 27219 | #define ID3D12Device12_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 27220 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 27221 | |||
| 27222 | #define ID3D12Device12_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 27223 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 27224 | |||
| 27225 | #define ID3D12Device12_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 27226 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 27227 | |||
| 27228 | #define ID3D12Device12_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 27229 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 27230 | |||
| 27231 | |||
| 27232 | #define ID3D12Device12_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ | ||
| 27233 | ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) | ||
| 27234 | |||
| 27235 | |||
| 27236 | #define ID3D12Device12_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ | ||
| 27237 | ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) | ||
| 27238 | |||
| 27239 | #define ID3D12Device12_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ | ||
| 27240 | ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) | ||
| 27241 | |||
| 27242 | #if !defined(_WIN32) | ||
| 27243 | |||
| 27244 | #define ID3D12Device12_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 27245 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 27246 | #else | ||
| 27247 | #define ID3D12Device12_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 27248 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 27249 | #endif | ||
| 27250 | |||
| 27251 | #define ID3D12Device12_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 27252 | ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 27253 | |||
| 27254 | #define ID3D12Device12_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 27255 | ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 27256 | |||
| 27257 | #define ID3D12Device12_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ | ||
| 27258 | ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) | ||
| 27259 | |||
| 27260 | #define ID3D12Device12_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 27261 | ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 27262 | |||
| 27263 | |||
| 27264 | #define ID3D12Device12_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ | ||
| 27265 | ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) | ||
| 27266 | |||
| 27267 | #define ID3D12Device12_ShaderCacheControl(This,Kinds,Control) \ | ||
| 27268 | ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) | ||
| 27269 | |||
| 27270 | #define ID3D12Device12_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ | ||
| 27271 | ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) | ||
| 27272 | |||
| 27273 | |||
| 27274 | #define ID3D12Device12_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ | ||
| 27275 | ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) | ||
| 27276 | |||
| 27277 | #define ID3D12Device12_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 27278 | ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 27279 | |||
| 27280 | #define ID3D12Device12_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 27281 | ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 27282 | |||
| 27283 | |||
| 27284 | #define ID3D12Device12_CreateSampler2(This,pDesc,DestDescriptor) \ | ||
| 27285 | ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) | ||
| 27286 | |||
| 27287 | #if !defined(_WIN32) | ||
| 27288 | |||
| 27289 | #define ID3D12Device12_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ | ||
| 27290 | ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) | ||
| 27291 | #else | ||
| 27292 | #define ID3D12Device12_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ | ||
| 27293 | ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) | ||
| 27294 | #endif | ||
| 27295 | |||
| 27296 | #endif /* COBJMACROS */ | ||
| 27297 | |||
| 27298 | |||
| 27299 | #endif /* C style interface */ | ||
| 27300 | |||
| 27301 | |||
| 27302 | |||
| 27303 | |||
| 27304 | #endif /* __ID3D12Device12_INTERFACE_DEFINED__ */ | ||
| 27305 | |||
| 27306 | |||
| 27307 | #ifndef __ID3D12Device13_INTERFACE_DEFINED__ | ||
| 27308 | #define __ID3D12Device13_INTERFACE_DEFINED__ | ||
| 27309 | |||
| 27310 | /* interface ID3D12Device13 */ | ||
| 27311 | /* [unique][local][object][uuid] */ | ||
| 27312 | |||
| 27313 | |||
| 27314 | EXTERN_C const IID IID_ID3D12Device13; | ||
| 27315 | |||
| 27316 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 27317 | |||
| 27318 | MIDL_INTERFACE("14eecffc-4df8-40f7-a118-5c816f45695e") | ||
| 27319 | ID3D12Device13 : public ID3D12Device12 | ||
| 27320 | { | ||
| 27321 | public: | ||
| 27322 | virtual HRESULT STDMETHODCALLTYPE OpenExistingHeapFromAddress1( | ||
| 27323 | _In_ const void *pAddress, | ||
| 27324 | SIZE_T size, | ||
| 27325 | REFIID riid, | ||
| 27326 | _COM_Outptr_ void **ppvHeap) = 0; | ||
| 27327 | |||
| 27328 | }; | ||
| 27329 | |||
| 27330 | |||
| 27331 | #else /* C style interface */ | ||
| 27332 | |||
| 27333 | typedef struct ID3D12Device13Vtbl | ||
| 27334 | { | ||
| 27335 | BEGIN_INTERFACE | ||
| 27336 | |||
| 27337 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 27338 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 27339 | ID3D12Device13 * This, | ||
| 27340 | REFIID riid, | ||
| 27341 | _COM_Outptr_ void **ppvObject); | ||
| 27342 | |||
| 27343 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 27344 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 27345 | ID3D12Device13 * This); | ||
| 27346 | |||
| 27347 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 27348 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 27349 | ID3D12Device13 * This); | ||
| 27350 | |||
| 27351 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 27352 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 27353 | ID3D12Device13 * This, | ||
| 27354 | _In_ REFGUID guid, | ||
| 27355 | _Inout_ UINT *pDataSize, | ||
| 27356 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 27357 | |||
| 27358 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 27359 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 27360 | ID3D12Device13 * This, | ||
| 27361 | _In_ REFGUID guid, | ||
| 27362 | _In_ UINT DataSize, | ||
| 27363 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 27364 | |||
| 27365 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 27366 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 27367 | ID3D12Device13 * This, | ||
| 27368 | _In_ REFGUID guid, | ||
| 27369 | _In_opt_ const IUnknown *pData); | ||
| 27370 | |||
| 27371 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 27372 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 27373 | ID3D12Device13 * This, | ||
| 27374 | _In_z_ LPCWSTR Name); | ||
| 27375 | |||
| 27376 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 27377 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 27378 | ID3D12Device13 * This); | ||
| 27379 | |||
| 27380 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 27381 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 27382 | ID3D12Device13 * This, | ||
| 27383 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 27384 | REFIID riid, | ||
| 27385 | _COM_Outptr_ void **ppCommandQueue); | ||
| 27386 | |||
| 27387 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 27388 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 27389 | ID3D12Device13 * This, | ||
| 27390 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 27391 | REFIID riid, | ||
| 27392 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 27393 | |||
| 27394 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 27395 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 27396 | ID3D12Device13 * This, | ||
| 27397 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 27398 | REFIID riid, | ||
| 27399 | _COM_Outptr_ void **ppPipelineState); | ||
| 27400 | |||
| 27401 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 27402 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 27403 | ID3D12Device13 * This, | ||
| 27404 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 27405 | REFIID riid, | ||
| 27406 | _COM_Outptr_ void **ppPipelineState); | ||
| 27407 | |||
| 27408 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 27409 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 27410 | ID3D12Device13 * This, | ||
| 27411 | _In_ UINT nodeMask, | ||
| 27412 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 27413 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 27414 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 27415 | REFIID riid, | ||
| 27416 | _COM_Outptr_ void **ppCommandList); | ||
| 27417 | |||
| 27418 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 27419 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 27420 | ID3D12Device13 * This, | ||
| 27421 | D3D12_FEATURE Feature, | ||
| 27422 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 27423 | UINT FeatureSupportDataSize); | ||
| 27424 | |||
| 27425 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 27426 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 27427 | ID3D12Device13 * This, | ||
| 27428 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 27429 | REFIID riid, | ||
| 27430 | _COM_Outptr_ void **ppvHeap); | ||
| 27431 | |||
| 27432 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 27433 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 27434 | ID3D12Device13 * This, | ||
| 27435 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 27436 | |||
| 27437 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 27438 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 27439 | ID3D12Device13 * This, | ||
| 27440 | _In_ UINT nodeMask, | ||
| 27441 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 27442 | _In_ SIZE_T blobLengthInBytes, | ||
| 27443 | REFIID riid, | ||
| 27444 | _COM_Outptr_ void **ppvRootSignature); | ||
| 27445 | |||
| 27446 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 27447 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 27448 | ID3D12Device13 * This, | ||
| 27449 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 27450 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 27451 | |||
| 27452 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 27453 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 27454 | ID3D12Device13 * This, | ||
| 27455 | _In_opt_ ID3D12Resource *pResource, | ||
| 27456 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 27457 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 27458 | |||
| 27459 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 27460 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 27461 | ID3D12Device13 * This, | ||
| 27462 | _In_opt_ ID3D12Resource *pResource, | ||
| 27463 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 27464 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 27465 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 27466 | |||
| 27467 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 27468 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 27469 | ID3D12Device13 * This, | ||
| 27470 | _In_opt_ ID3D12Resource *pResource, | ||
| 27471 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 27472 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 27473 | |||
| 27474 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 27475 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 27476 | ID3D12Device13 * This, | ||
| 27477 | _In_opt_ ID3D12Resource *pResource, | ||
| 27478 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 27479 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 27480 | |||
| 27481 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 27482 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 27483 | ID3D12Device13 * This, | ||
| 27484 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 27485 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 27486 | |||
| 27487 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 27488 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 27489 | ID3D12Device13 * This, | ||
| 27490 | _In_ UINT NumDestDescriptorRanges, | ||
| 27491 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 27492 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 27493 | _In_ UINT NumSrcDescriptorRanges, | ||
| 27494 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 27495 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 27496 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 27497 | |||
| 27498 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 27499 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 27500 | ID3D12Device13 * This, | ||
| 27501 | _In_ UINT NumDescriptors, | ||
| 27502 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 27503 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 27504 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 27505 | |||
| 27506 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 27507 | #if !defined(_WIN32) | ||
| 27508 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 27509 | ID3D12Device13 * This, | ||
| 27510 | _In_ UINT visibleMask, | ||
| 27511 | _In_ UINT numResourceDescs, | ||
| 27512 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 27513 | |||
| 27514 | #else | ||
| 27515 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 27516 | ID3D12Device13 * This, | ||
| 27517 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 27518 | _In_ UINT visibleMask, | ||
| 27519 | _In_ UINT numResourceDescs, | ||
| 27520 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 27521 | |||
| 27522 | #endif | ||
| 27523 | |||
| 27524 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 27525 | #if !defined(_WIN32) | ||
| 27526 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 27527 | ID3D12Device13 * This, | ||
| 27528 | _In_ UINT nodeMask, | ||
| 27529 | D3D12_HEAP_TYPE heapType); | ||
| 27530 | |||
| 27531 | #else | ||
| 27532 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 27533 | ID3D12Device13 * This, | ||
| 27534 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 27535 | _In_ UINT nodeMask, | ||
| 27536 | D3D12_HEAP_TYPE heapType); | ||
| 27537 | |||
| 27538 | #endif | ||
| 27539 | |||
| 27540 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 27541 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 27542 | ID3D12Device13 * This, | ||
| 27543 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 27544 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 27545 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 27546 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 27547 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27548 | REFIID riidResource, | ||
| 27549 | _COM_Outptr_opt_ void **ppvResource); | ||
| 27550 | |||
| 27551 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 27552 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 27553 | ID3D12Device13 * This, | ||
| 27554 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 27555 | REFIID riid, | ||
| 27556 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 27557 | |||
| 27558 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 27559 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 27560 | ID3D12Device13 * This, | ||
| 27561 | _In_ ID3D12Heap *pHeap, | ||
| 27562 | UINT64 HeapOffset, | ||
| 27563 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 27564 | D3D12_RESOURCE_STATES InitialState, | ||
| 27565 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27566 | REFIID riid, | ||
| 27567 | _COM_Outptr_opt_ void **ppvResource); | ||
| 27568 | |||
| 27569 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 27570 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 27571 | ID3D12Device13 * This, | ||
| 27572 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 27573 | D3D12_RESOURCE_STATES InitialState, | ||
| 27574 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27575 | REFIID riid, | ||
| 27576 | _COM_Outptr_opt_ void **ppvResource); | ||
| 27577 | |||
| 27578 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 27579 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 27580 | ID3D12Device13 * This, | ||
| 27581 | _In_ ID3D12DeviceChild *pObject, | ||
| 27582 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 27583 | DWORD Access, | ||
| 27584 | _In_opt_ LPCWSTR Name, | ||
| 27585 | _Out_ HANDLE *pHandle); | ||
| 27586 | |||
| 27587 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 27588 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 27589 | ID3D12Device13 * This, | ||
| 27590 | _In_ HANDLE NTHandle, | ||
| 27591 | REFIID riid, | ||
| 27592 | _COM_Outptr_opt_ void **ppvObj); | ||
| 27593 | |||
| 27594 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 27595 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 27596 | ID3D12Device13 * This, | ||
| 27597 | _In_ LPCWSTR Name, | ||
| 27598 | DWORD Access, | ||
| 27599 | /* [annotation][out] */ | ||
| 27600 | _Out_ HANDLE *pNTHandle); | ||
| 27601 | |||
| 27602 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 27603 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 27604 | ID3D12Device13 * This, | ||
| 27605 | UINT NumObjects, | ||
| 27606 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 27607 | |||
| 27608 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 27609 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 27610 | ID3D12Device13 * This, | ||
| 27611 | UINT NumObjects, | ||
| 27612 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 27613 | |||
| 27614 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 27615 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 27616 | ID3D12Device13 * This, | ||
| 27617 | UINT64 InitialValue, | ||
| 27618 | D3D12_FENCE_FLAGS Flags, | ||
| 27619 | REFIID riid, | ||
| 27620 | _COM_Outptr_ void **ppFence); | ||
| 27621 | |||
| 27622 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 27623 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 27624 | ID3D12Device13 * This); | ||
| 27625 | |||
| 27626 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 27627 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 27628 | ID3D12Device13 * This, | ||
| 27629 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 27630 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 27631 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 27632 | UINT64 BaseOffset, | ||
| 27633 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 27634 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 27635 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 27636 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 27637 | |||
| 27638 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 27639 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 27640 | ID3D12Device13 * This, | ||
| 27641 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 27642 | REFIID riid, | ||
| 27643 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 27644 | |||
| 27645 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 27646 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 27647 | ID3D12Device13 * This, | ||
| 27648 | BOOL Enable); | ||
| 27649 | |||
| 27650 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 27651 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 27652 | ID3D12Device13 * This, | ||
| 27653 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 27654 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 27655 | REFIID riid, | ||
| 27656 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 27657 | |||
| 27658 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 27659 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 27660 | ID3D12Device13 * This, | ||
| 27661 | _In_ ID3D12Resource *pTiledResource, | ||
| 27662 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 27663 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 27664 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 27665 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 27666 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 27667 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 27668 | |||
| 27669 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 27670 | #if !defined(_WIN32) | ||
| 27671 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 27672 | ID3D12Device13 * This); | ||
| 27673 | |||
| 27674 | #else | ||
| 27675 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 27676 | ID3D12Device13 * This, | ||
| 27677 | LUID * RetVal); | ||
| 27678 | |||
| 27679 | #endif | ||
| 27680 | |||
| 27681 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 27682 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 27683 | ID3D12Device13 * This, | ||
| 27684 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 27685 | SIZE_T BlobLength, | ||
| 27686 | REFIID riid, | ||
| 27687 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 27688 | |||
| 27689 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 27690 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 27691 | ID3D12Device13 * This, | ||
| 27692 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 27693 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 27694 | UINT NumFences, | ||
| 27695 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 27696 | HANDLE hEvent); | ||
| 27697 | |||
| 27698 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 27699 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 27700 | ID3D12Device13 * This, | ||
| 27701 | UINT NumObjects, | ||
| 27702 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 27703 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 27704 | |||
| 27705 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 27706 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 27707 | ID3D12Device13 * This, | ||
| 27708 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 27709 | REFIID riid, | ||
| 27710 | _COM_Outptr_ void **ppPipelineState); | ||
| 27711 | |||
| 27712 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 27713 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 27714 | ID3D12Device13 * This, | ||
| 27715 | _In_ const void *pAddress, | ||
| 27716 | REFIID riid, | ||
| 27717 | _COM_Outptr_ void **ppvHeap); | ||
| 27718 | |||
| 27719 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 27720 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 27721 | ID3D12Device13 * This, | ||
| 27722 | _In_ HANDLE hFileMapping, | ||
| 27723 | REFIID riid, | ||
| 27724 | _COM_Outptr_ void **ppvHeap); | ||
| 27725 | |||
| 27726 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 27727 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 27728 | ID3D12Device13 * This, | ||
| 27729 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 27730 | UINT NumObjects, | ||
| 27731 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 27732 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 27733 | UINT64 FenceValueToSignal); | ||
| 27734 | |||
| 27735 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 27736 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 27737 | ID3D12Device13 * This, | ||
| 27738 | _In_ UINT nodeMask, | ||
| 27739 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 27740 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 27741 | REFIID riid, | ||
| 27742 | _COM_Outptr_ void **ppCommandList); | ||
| 27743 | |||
| 27744 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 27745 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 27746 | ID3D12Device13 * This, | ||
| 27747 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 27748 | _In_ REFIID riid, | ||
| 27749 | _COM_Outptr_ void **ppSession); | ||
| 27750 | |||
| 27751 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 27752 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 27753 | ID3D12Device13 * This, | ||
| 27754 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 27755 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 27756 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 27757 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 27758 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27759 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 27760 | REFIID riidResource, | ||
| 27761 | _COM_Outptr_opt_ void **ppvResource); | ||
| 27762 | |||
| 27763 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 27764 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 27765 | ID3D12Device13 * This, | ||
| 27766 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 27767 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 27768 | REFIID riid, | ||
| 27769 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 27770 | |||
| 27771 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 27772 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 27773 | ID3D12Device13 * This, | ||
| 27774 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 27775 | D3D12_RESOURCE_STATES InitialState, | ||
| 27776 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27777 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 27778 | REFIID riid, | ||
| 27779 | _COM_Outptr_opt_ void **ppvResource); | ||
| 27780 | |||
| 27781 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 27782 | #if !defined(_WIN32) | ||
| 27783 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 27784 | ID3D12Device13 * This, | ||
| 27785 | UINT visibleMask, | ||
| 27786 | UINT numResourceDescs, | ||
| 27787 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 27788 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 27789 | |||
| 27790 | #else | ||
| 27791 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 27792 | ID3D12Device13 * This, | ||
| 27793 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 27794 | UINT visibleMask, | ||
| 27795 | UINT numResourceDescs, | ||
| 27796 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 27797 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 27798 | |||
| 27799 | #endif | ||
| 27800 | |||
| 27801 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 27802 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 27803 | ID3D12Device13 * This, | ||
| 27804 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 27805 | REFIID riid, | ||
| 27806 | _COM_Outptr_ void **ppvTracker); | ||
| 27807 | |||
| 27808 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 27809 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 27810 | ID3D12Device13 * This); | ||
| 27811 | |||
| 27812 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 27813 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 27814 | ID3D12Device13 * This, | ||
| 27815 | _Inout_ UINT *pNumMetaCommands, | ||
| 27816 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 27817 | |||
| 27818 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 27819 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 27820 | ID3D12Device13 * This, | ||
| 27821 | _In_ REFGUID CommandId, | ||
| 27822 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 27823 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 27824 | _Inout_ UINT *pParameterCount, | ||
| 27825 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 27826 | |||
| 27827 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 27828 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 27829 | ID3D12Device13 * This, | ||
| 27830 | _In_ REFGUID CommandId, | ||
| 27831 | _In_ UINT NodeMask, | ||
| 27832 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 27833 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 27834 | REFIID riid, | ||
| 27835 | _COM_Outptr_ void **ppMetaCommand); | ||
| 27836 | |||
| 27837 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 27838 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 27839 | ID3D12Device13 * This, | ||
| 27840 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 27841 | REFIID riid, | ||
| 27842 | _COM_Outptr_ void **ppStateObject); | ||
| 27843 | |||
| 27844 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 27845 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 27846 | ID3D12Device13 * This, | ||
| 27847 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 27848 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 27849 | |||
| 27850 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 27851 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 27852 | ID3D12Device13 * This, | ||
| 27853 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 27854 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 27855 | |||
| 27856 | DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) | ||
| 27857 | HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( | ||
| 27858 | ID3D12Device13 * This, | ||
| 27859 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 27860 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 27861 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 27862 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired); | ||
| 27863 | |||
| 27864 | DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) | ||
| 27865 | HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( | ||
| 27866 | ID3D12Device13 * This, | ||
| 27867 | const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 27868 | ID3D12StateObject *pStateObjectToGrowFrom, | ||
| 27869 | REFIID riid, | ||
| 27870 | _COM_Outptr_ void **ppNewStateObject); | ||
| 27871 | |||
| 27872 | DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) | ||
| 27873 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( | ||
| 27874 | ID3D12Device13 * This, | ||
| 27875 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, | ||
| 27876 | _In_ REFIID riid, | ||
| 27877 | _COM_Outptr_ void **ppSession); | ||
| 27878 | |||
| 27879 | DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) | ||
| 27880 | #if !defined(_WIN32) | ||
| 27881 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 27882 | ID3D12Device13 * This, | ||
| 27883 | UINT visibleMask, | ||
| 27884 | UINT numResourceDescs, | ||
| 27885 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 27886 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 27887 | |||
| 27888 | #else | ||
| 27889 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 27890 | ID3D12Device13 * This, | ||
| 27891 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 27892 | UINT visibleMask, | ||
| 27893 | UINT numResourceDescs, | ||
| 27894 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 27895 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 27896 | |||
| 27897 | #endif | ||
| 27898 | |||
| 27899 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) | ||
| 27900 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( | ||
| 27901 | ID3D12Device13 * This, | ||
| 27902 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 27903 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 27904 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 27905 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 27906 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27907 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 27908 | REFIID riidResource, | ||
| 27909 | _COM_Outptr_opt_ void **ppvResource); | ||
| 27910 | |||
| 27911 | DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) | ||
| 27912 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( | ||
| 27913 | ID3D12Device13 * This, | ||
| 27914 | _In_ ID3D12Heap *pHeap, | ||
| 27915 | UINT64 HeapOffset, | ||
| 27916 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 27917 | D3D12_RESOURCE_STATES InitialState, | ||
| 27918 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27919 | REFIID riid, | ||
| 27920 | _COM_Outptr_opt_ void **ppvResource); | ||
| 27921 | |||
| 27922 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) | ||
| 27923 | void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( | ||
| 27924 | ID3D12Device13 * This, | ||
| 27925 | _In_opt_ ID3D12Resource *pTargetedResource, | ||
| 27926 | _In_opt_ ID3D12Resource *pFeedbackResource, | ||
| 27927 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 27928 | |||
| 27929 | DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) | ||
| 27930 | void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( | ||
| 27931 | ID3D12Device13 * This, | ||
| 27932 | _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, | ||
| 27933 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 27934 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 27935 | UINT64 BaseOffset, | ||
| 27936 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 27937 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 27938 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 27939 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 27940 | |||
| 27941 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) | ||
| 27942 | HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( | ||
| 27943 | ID3D12Device13 * This, | ||
| 27944 | _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, | ||
| 27945 | REFIID riid, | ||
| 27946 | _COM_Outptr_opt_ void **ppvSession); | ||
| 27947 | |||
| 27948 | DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) | ||
| 27949 | HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( | ||
| 27950 | ID3D12Device13 * This, | ||
| 27951 | D3D12_SHADER_CACHE_KIND_FLAGS Kinds, | ||
| 27952 | D3D12_SHADER_CACHE_CONTROL_FLAGS Control); | ||
| 27953 | |||
| 27954 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) | ||
| 27955 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( | ||
| 27956 | ID3D12Device13 * This, | ||
| 27957 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 27958 | REFIID CreatorID, | ||
| 27959 | REFIID riid, | ||
| 27960 | _COM_Outptr_ void **ppCommandQueue); | ||
| 27961 | |||
| 27962 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) | ||
| 27963 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( | ||
| 27964 | ID3D12Device13 * This, | ||
| 27965 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 27966 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 27967 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 27968 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 27969 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27970 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 27971 | UINT32 NumCastableFormats, | ||
| 27972 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 27973 | REFIID riidResource, | ||
| 27974 | _COM_Outptr_opt_ void **ppvResource); | ||
| 27975 | |||
| 27976 | DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) | ||
| 27977 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( | ||
| 27978 | ID3D12Device13 * This, | ||
| 27979 | _In_ ID3D12Heap *pHeap, | ||
| 27980 | UINT64 HeapOffset, | ||
| 27981 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 27982 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 27983 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27984 | UINT32 NumCastableFormats, | ||
| 27985 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 27986 | REFIID riid, | ||
| 27987 | _COM_Outptr_opt_ void **ppvResource); | ||
| 27988 | |||
| 27989 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) | ||
| 27990 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( | ||
| 27991 | ID3D12Device13 * This, | ||
| 27992 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 27993 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 27994 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 27995 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 27996 | UINT32 NumCastableFormats, | ||
| 27997 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 27998 | REFIID riid, | ||
| 27999 | _COM_Outptr_opt_ void **ppvResource); | ||
| 28000 | |||
| 28001 | DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) | ||
| 28002 | void ( STDMETHODCALLTYPE *CreateSampler2 )( | ||
| 28003 | ID3D12Device13 * This, | ||
| 28004 | _In_ const D3D12_SAMPLER_DESC2 *pDesc, | ||
| 28005 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 28006 | |||
| 28007 | DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3) | ||
| 28008 | #if !defined(_WIN32) | ||
| 28009 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( | ||
| 28010 | ID3D12Device13 * This, | ||
| 28011 | UINT visibleMask, | ||
| 28012 | UINT numResourceDescs, | ||
| 28013 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 28014 | _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, | ||
| 28015 | _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, | ||
| 28016 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 28017 | |||
| 28018 | #else | ||
| 28019 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( | ||
| 28020 | ID3D12Device13 * This, | ||
| 28021 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 28022 | UINT visibleMask, | ||
| 28023 | UINT numResourceDescs, | ||
| 28024 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 28025 | _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, | ||
| 28026 | _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, | ||
| 28027 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 28028 | |||
| 28029 | #endif | ||
| 28030 | |||
| 28031 | DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1) | ||
| 28032 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )( | ||
| 28033 | ID3D12Device13 * This, | ||
| 28034 | _In_ const void *pAddress, | ||
| 28035 | SIZE_T size, | ||
| 28036 | REFIID riid, | ||
| 28037 | _COM_Outptr_ void **ppvHeap); | ||
| 28038 | |||
| 28039 | END_INTERFACE | ||
| 28040 | } ID3D12Device13Vtbl; | ||
| 28041 | |||
| 28042 | interface ID3D12Device13 | ||
| 28043 | { | ||
| 28044 | CONST_VTBL struct ID3D12Device13Vtbl *lpVtbl; | ||
| 28045 | }; | ||
| 28046 | |||
| 28047 | |||
| 28048 | |||
| 28049 | #ifdef COBJMACROS | ||
| 28050 | |||
| 28051 | |||
| 28052 | #define ID3D12Device13_QueryInterface(This,riid,ppvObject) \ | ||
| 28053 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 28054 | |||
| 28055 | #define ID3D12Device13_AddRef(This) \ | ||
| 28056 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 28057 | |||
| 28058 | #define ID3D12Device13_Release(This) \ | ||
| 28059 | ( (This)->lpVtbl -> Release(This) ) | ||
| 28060 | |||
| 28061 | |||
| 28062 | #define ID3D12Device13_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 28063 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 28064 | |||
| 28065 | #define ID3D12Device13_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 28066 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 28067 | |||
| 28068 | #define ID3D12Device13_SetPrivateDataInterface(This,guid,pData) \ | ||
| 28069 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 28070 | |||
| 28071 | #define ID3D12Device13_SetName(This,Name) \ | ||
| 28072 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 28073 | |||
| 28074 | |||
| 28075 | #define ID3D12Device13_GetNodeCount(This) \ | ||
| 28076 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 28077 | |||
| 28078 | #define ID3D12Device13_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 28079 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 28080 | |||
| 28081 | #define ID3D12Device13_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 28082 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 28083 | |||
| 28084 | #define ID3D12Device13_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 28085 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 28086 | |||
| 28087 | #define ID3D12Device13_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 28088 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 28089 | |||
| 28090 | #define ID3D12Device13_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 28091 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 28092 | |||
| 28093 | #define ID3D12Device13_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 28094 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 28095 | |||
| 28096 | #define ID3D12Device13_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 28097 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 28098 | |||
| 28099 | #define ID3D12Device13_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 28100 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 28101 | |||
| 28102 | #define ID3D12Device13_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 28103 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 28104 | |||
| 28105 | #define ID3D12Device13_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 28106 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 28107 | |||
| 28108 | #define ID3D12Device13_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 28109 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 28110 | |||
| 28111 | #define ID3D12Device13_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 28112 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 28113 | |||
| 28114 | #define ID3D12Device13_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 28115 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 28116 | |||
| 28117 | #define ID3D12Device13_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 28118 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 28119 | |||
| 28120 | #define ID3D12Device13_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 28121 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 28122 | |||
| 28123 | #define ID3D12Device13_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 28124 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 28125 | |||
| 28126 | #define ID3D12Device13_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 28127 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 28128 | #if !defined(_WIN32) | ||
| 28129 | |||
| 28130 | #define ID3D12Device13_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 28131 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 28132 | #else | ||
| 28133 | #define ID3D12Device13_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 28134 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 28135 | #endif | ||
| 28136 | #if !defined(_WIN32) | ||
| 28137 | |||
| 28138 | #define ID3D12Device13_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 28139 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 28140 | #else | ||
| 28141 | #define ID3D12Device13_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 28142 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 28143 | #endif | ||
| 28144 | |||
| 28145 | #define ID3D12Device13_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 28146 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 28147 | |||
| 28148 | #define ID3D12Device13_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 28149 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 28150 | |||
| 28151 | #define ID3D12Device13_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 28152 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 28153 | |||
| 28154 | #define ID3D12Device13_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 28155 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 28156 | |||
| 28157 | #define ID3D12Device13_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 28158 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 28159 | |||
| 28160 | #define ID3D12Device13_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 28161 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 28162 | |||
| 28163 | #define ID3D12Device13_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 28164 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 28165 | |||
| 28166 | #define ID3D12Device13_MakeResident(This,NumObjects,ppObjects) \ | ||
| 28167 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 28168 | |||
| 28169 | #define ID3D12Device13_Evict(This,NumObjects,ppObjects) \ | ||
| 28170 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 28171 | |||
| 28172 | #define ID3D12Device13_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 28173 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 28174 | |||
| 28175 | #define ID3D12Device13_GetDeviceRemovedReason(This) \ | ||
| 28176 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 28177 | |||
| 28178 | #define ID3D12Device13_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 28179 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 28180 | |||
| 28181 | #define ID3D12Device13_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 28182 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 28183 | |||
| 28184 | #define ID3D12Device13_SetStablePowerState(This,Enable) \ | ||
| 28185 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 28186 | |||
| 28187 | #define ID3D12Device13_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 28188 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 28189 | |||
| 28190 | #define ID3D12Device13_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 28191 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 28192 | #if !defined(_WIN32) | ||
| 28193 | |||
| 28194 | #define ID3D12Device13_GetAdapterLuid(This) \ | ||
| 28195 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 28196 | #else | ||
| 28197 | #define ID3D12Device13_GetAdapterLuid(This,RetVal) \ | ||
| 28198 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 28199 | #endif | ||
| 28200 | |||
| 28201 | |||
| 28202 | #define ID3D12Device13_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 28203 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 28204 | |||
| 28205 | #define ID3D12Device13_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 28206 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 28207 | |||
| 28208 | #define ID3D12Device13_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 28209 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 28210 | |||
| 28211 | |||
| 28212 | #define ID3D12Device13_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 28213 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 28214 | |||
| 28215 | |||
| 28216 | #define ID3D12Device13_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 28217 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 28218 | |||
| 28219 | #define ID3D12Device13_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 28220 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 28221 | |||
| 28222 | #define ID3D12Device13_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 28223 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 28224 | |||
| 28225 | |||
| 28226 | #define ID3D12Device13_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 28227 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 28228 | |||
| 28229 | #define ID3D12Device13_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 28230 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 28231 | |||
| 28232 | #define ID3D12Device13_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 28233 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 28234 | |||
| 28235 | #define ID3D12Device13_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 28236 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 28237 | |||
| 28238 | #define ID3D12Device13_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 28239 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 28240 | #if !defined(_WIN32) | ||
| 28241 | |||
| 28242 | #define ID3D12Device13_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 28243 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 28244 | #else | ||
| 28245 | #define ID3D12Device13_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 28246 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 28247 | #endif | ||
| 28248 | |||
| 28249 | |||
| 28250 | #define ID3D12Device13_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 28251 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 28252 | |||
| 28253 | #define ID3D12Device13_RemoveDevice(This) \ | ||
| 28254 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 28255 | |||
| 28256 | #define ID3D12Device13_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 28257 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 28258 | |||
| 28259 | #define ID3D12Device13_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 28260 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 28261 | |||
| 28262 | #define ID3D12Device13_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 28263 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 28264 | |||
| 28265 | #define ID3D12Device13_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 28266 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 28267 | |||
| 28268 | #define ID3D12Device13_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 28269 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 28270 | |||
| 28271 | #define ID3D12Device13_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 28272 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 28273 | |||
| 28274 | |||
| 28275 | #define ID3D12Device13_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ | ||
| 28276 | ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) | ||
| 28277 | |||
| 28278 | |||
| 28279 | #define ID3D12Device13_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ | ||
| 28280 | ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) | ||
| 28281 | |||
| 28282 | #define ID3D12Device13_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ | ||
| 28283 | ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) | ||
| 28284 | |||
| 28285 | #if !defined(_WIN32) | ||
| 28286 | |||
| 28287 | #define ID3D12Device13_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 28288 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 28289 | #else | ||
| 28290 | #define ID3D12Device13_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 28291 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 28292 | #endif | ||
| 28293 | |||
| 28294 | #define ID3D12Device13_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 28295 | ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 28296 | |||
| 28297 | #define ID3D12Device13_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 28298 | ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 28299 | |||
| 28300 | #define ID3D12Device13_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ | ||
| 28301 | ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) | ||
| 28302 | |||
| 28303 | #define ID3D12Device13_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 28304 | ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 28305 | |||
| 28306 | |||
| 28307 | #define ID3D12Device13_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ | ||
| 28308 | ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) | ||
| 28309 | |||
| 28310 | #define ID3D12Device13_ShaderCacheControl(This,Kinds,Control) \ | ||
| 28311 | ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) | ||
| 28312 | |||
| 28313 | #define ID3D12Device13_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ | ||
| 28314 | ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) | ||
| 28315 | |||
| 28316 | |||
| 28317 | #define ID3D12Device13_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ | ||
| 28318 | ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) | ||
| 28319 | |||
| 28320 | #define ID3D12Device13_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 28321 | ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 28322 | |||
| 28323 | #define ID3D12Device13_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 28324 | ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 28325 | |||
| 28326 | |||
| 28327 | #define ID3D12Device13_CreateSampler2(This,pDesc,DestDescriptor) \ | ||
| 28328 | ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) | ||
| 28329 | |||
| 28330 | #if !defined(_WIN32) | ||
| 28331 | |||
| 28332 | #define ID3D12Device13_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ | ||
| 28333 | ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) | ||
| 28334 | #else | ||
| 28335 | #define ID3D12Device13_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ | ||
| 28336 | ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) | ||
| 28337 | #endif | ||
| 28338 | |||
| 28339 | |||
| 28340 | #define ID3D12Device13_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \ | ||
| 28341 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) ) | ||
| 28342 | |||
| 28343 | #endif /* COBJMACROS */ | ||
| 28344 | |||
| 28345 | |||
| 28346 | #endif /* C style interface */ | ||
| 28347 | |||
| 28348 | |||
| 28349 | |||
| 28350 | |||
| 28351 | #endif /* __ID3D12Device13_INTERFACE_DEFINED__ */ | ||
| 28352 | |||
| 28353 | |||
| 28354 | #ifndef __ID3D12Device14_INTERFACE_DEFINED__ | ||
| 28355 | #define __ID3D12Device14_INTERFACE_DEFINED__ | ||
| 28356 | |||
| 28357 | /* interface ID3D12Device14 */ | ||
| 28358 | /* [unique][local][object][uuid] */ | ||
| 28359 | |||
| 28360 | |||
| 28361 | EXTERN_C const IID IID_ID3D12Device14; | ||
| 28362 | |||
| 28363 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 28364 | |||
| 28365 | MIDL_INTERFACE("5f6e592d-d895-44c2-8e4a-88ad4926d323") | ||
| 28366 | ID3D12Device14 : public ID3D12Device13 | ||
| 28367 | { | ||
| 28368 | public: | ||
| 28369 | virtual HRESULT STDMETHODCALLTYPE CreateRootSignatureFromSubobjectInLibrary( | ||
| 28370 | _In_ UINT nodeMask, | ||
| 28371 | _In_reads_(blobLengthInBytes) const void *pLibraryBlob, | ||
| 28372 | _In_ SIZE_T blobLengthInBytes, | ||
| 28373 | _In_opt_ LPCWSTR subobjectName, | ||
| 28374 | REFIID riid, | ||
| 28375 | _COM_Outptr_ void **ppvRootSignature) = 0; | ||
| 28376 | |||
| 28377 | }; | ||
| 28378 | |||
| 28379 | |||
| 28380 | #else /* C style interface */ | ||
| 28381 | |||
| 28382 | typedef struct ID3D12Device14Vtbl | ||
| 28383 | { | ||
| 28384 | BEGIN_INTERFACE | ||
| 28385 | |||
| 28386 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 28387 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 28388 | ID3D12Device14 * This, | ||
| 28389 | REFIID riid, | ||
| 28390 | _COM_Outptr_ void **ppvObject); | ||
| 28391 | |||
| 28392 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 28393 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 28394 | ID3D12Device14 * This); | ||
| 28395 | |||
| 28396 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 28397 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 28398 | ID3D12Device14 * This); | ||
| 28399 | |||
| 28400 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 28401 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 28402 | ID3D12Device14 * This, | ||
| 28403 | _In_ REFGUID guid, | ||
| 28404 | _Inout_ UINT *pDataSize, | ||
| 28405 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 28406 | |||
| 28407 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 28408 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 28409 | ID3D12Device14 * This, | ||
| 28410 | _In_ REFGUID guid, | ||
| 28411 | _In_ UINT DataSize, | ||
| 28412 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 28413 | |||
| 28414 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 28415 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 28416 | ID3D12Device14 * This, | ||
| 28417 | _In_ REFGUID guid, | ||
| 28418 | _In_opt_ const IUnknown *pData); | ||
| 28419 | |||
| 28420 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 28421 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 28422 | ID3D12Device14 * This, | ||
| 28423 | _In_z_ LPCWSTR Name); | ||
| 28424 | |||
| 28425 | DECLSPEC_XFGVIRT(ID3D12Device, GetNodeCount) | ||
| 28426 | UINT ( STDMETHODCALLTYPE *GetNodeCount )( | ||
| 28427 | ID3D12Device14 * This); | ||
| 28428 | |||
| 28429 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandQueue) | ||
| 28430 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue )( | ||
| 28431 | ID3D12Device14 * This, | ||
| 28432 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 28433 | REFIID riid, | ||
| 28434 | _COM_Outptr_ void **ppCommandQueue); | ||
| 28435 | |||
| 28436 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandAllocator) | ||
| 28437 | HRESULT ( STDMETHODCALLTYPE *CreateCommandAllocator )( | ||
| 28438 | ID3D12Device14 * This, | ||
| 28439 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 28440 | REFIID riid, | ||
| 28441 | _COM_Outptr_ void **ppCommandAllocator); | ||
| 28442 | |||
| 28443 | DECLSPEC_XFGVIRT(ID3D12Device, CreateGraphicsPipelineState) | ||
| 28444 | HRESULT ( STDMETHODCALLTYPE *CreateGraphicsPipelineState )( | ||
| 28445 | ID3D12Device14 * This, | ||
| 28446 | _In_ const D3D12_GRAPHICS_PIPELINE_STATE_DESC *pDesc, | ||
| 28447 | REFIID riid, | ||
| 28448 | _COM_Outptr_ void **ppPipelineState); | ||
| 28449 | |||
| 28450 | DECLSPEC_XFGVIRT(ID3D12Device, CreateComputePipelineState) | ||
| 28451 | HRESULT ( STDMETHODCALLTYPE *CreateComputePipelineState )( | ||
| 28452 | ID3D12Device14 * This, | ||
| 28453 | _In_ const D3D12_COMPUTE_PIPELINE_STATE_DESC *pDesc, | ||
| 28454 | REFIID riid, | ||
| 28455 | _COM_Outptr_ void **ppPipelineState); | ||
| 28456 | |||
| 28457 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandList) | ||
| 28458 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList )( | ||
| 28459 | ID3D12Device14 * This, | ||
| 28460 | _In_ UINT nodeMask, | ||
| 28461 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 28462 | _In_ ID3D12CommandAllocator *pCommandAllocator, | ||
| 28463 | _In_opt_ ID3D12PipelineState *pInitialState, | ||
| 28464 | REFIID riid, | ||
| 28465 | _COM_Outptr_ void **ppCommandList); | ||
| 28466 | |||
| 28467 | DECLSPEC_XFGVIRT(ID3D12Device, CheckFeatureSupport) | ||
| 28468 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 28469 | ID3D12Device14 * This, | ||
| 28470 | D3D12_FEATURE Feature, | ||
| 28471 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 28472 | UINT FeatureSupportDataSize); | ||
| 28473 | |||
| 28474 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDescriptorHeap) | ||
| 28475 | HRESULT ( STDMETHODCALLTYPE *CreateDescriptorHeap )( | ||
| 28476 | ID3D12Device14 * This, | ||
| 28477 | _In_ const D3D12_DESCRIPTOR_HEAP_DESC *pDescriptorHeapDesc, | ||
| 28478 | REFIID riid, | ||
| 28479 | _COM_Outptr_ void **ppvHeap); | ||
| 28480 | |||
| 28481 | DECLSPEC_XFGVIRT(ID3D12Device, GetDescriptorHandleIncrementSize) | ||
| 28482 | UINT ( STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize )( | ||
| 28483 | ID3D12Device14 * This, | ||
| 28484 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 28485 | |||
| 28486 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRootSignature) | ||
| 28487 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignature )( | ||
| 28488 | ID3D12Device14 * This, | ||
| 28489 | _In_ UINT nodeMask, | ||
| 28490 | _In_reads_(blobLengthInBytes) const void *pBlobWithRootSignature, | ||
| 28491 | _In_ SIZE_T blobLengthInBytes, | ||
| 28492 | REFIID riid, | ||
| 28493 | _COM_Outptr_ void **ppvRootSignature); | ||
| 28494 | |||
| 28495 | DECLSPEC_XFGVIRT(ID3D12Device, CreateConstantBufferView) | ||
| 28496 | void ( STDMETHODCALLTYPE *CreateConstantBufferView )( | ||
| 28497 | ID3D12Device14 * This, | ||
| 28498 | _In_opt_ const D3D12_CONSTANT_BUFFER_VIEW_DESC *pDesc, | ||
| 28499 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 28500 | |||
| 28501 | DECLSPEC_XFGVIRT(ID3D12Device, CreateShaderResourceView) | ||
| 28502 | void ( STDMETHODCALLTYPE *CreateShaderResourceView )( | ||
| 28503 | ID3D12Device14 * This, | ||
| 28504 | _In_opt_ ID3D12Resource *pResource, | ||
| 28505 | _In_opt_ const D3D12_SHADER_RESOURCE_VIEW_DESC *pDesc, | ||
| 28506 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 28507 | |||
| 28508 | DECLSPEC_XFGVIRT(ID3D12Device, CreateUnorderedAccessView) | ||
| 28509 | void ( STDMETHODCALLTYPE *CreateUnorderedAccessView )( | ||
| 28510 | ID3D12Device14 * This, | ||
| 28511 | _In_opt_ ID3D12Resource *pResource, | ||
| 28512 | _In_opt_ ID3D12Resource *pCounterResource, | ||
| 28513 | _In_opt_ const D3D12_UNORDERED_ACCESS_VIEW_DESC *pDesc, | ||
| 28514 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 28515 | |||
| 28516 | DECLSPEC_XFGVIRT(ID3D12Device, CreateRenderTargetView) | ||
| 28517 | void ( STDMETHODCALLTYPE *CreateRenderTargetView )( | ||
| 28518 | ID3D12Device14 * This, | ||
| 28519 | _In_opt_ ID3D12Resource *pResource, | ||
| 28520 | _In_opt_ const D3D12_RENDER_TARGET_VIEW_DESC *pDesc, | ||
| 28521 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 28522 | |||
| 28523 | DECLSPEC_XFGVIRT(ID3D12Device, CreateDepthStencilView) | ||
| 28524 | void ( STDMETHODCALLTYPE *CreateDepthStencilView )( | ||
| 28525 | ID3D12Device14 * This, | ||
| 28526 | _In_opt_ ID3D12Resource *pResource, | ||
| 28527 | _In_opt_ const D3D12_DEPTH_STENCIL_VIEW_DESC *pDesc, | ||
| 28528 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 28529 | |||
| 28530 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSampler) | ||
| 28531 | void ( STDMETHODCALLTYPE *CreateSampler )( | ||
| 28532 | ID3D12Device14 * This, | ||
| 28533 | _In_ const D3D12_SAMPLER_DESC *pDesc, | ||
| 28534 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 28535 | |||
| 28536 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptors) | ||
| 28537 | void ( STDMETHODCALLTYPE *CopyDescriptors )( | ||
| 28538 | ID3D12Device14 * This, | ||
| 28539 | _In_ UINT NumDestDescriptorRanges, | ||
| 28540 | _In_reads_(NumDestDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pDestDescriptorRangeStarts, | ||
| 28541 | _In_reads_opt_(NumDestDescriptorRanges) const UINT *pDestDescriptorRangeSizes, | ||
| 28542 | _In_ UINT NumSrcDescriptorRanges, | ||
| 28543 | _In_reads_(NumSrcDescriptorRanges) const D3D12_CPU_DESCRIPTOR_HANDLE *pSrcDescriptorRangeStarts, | ||
| 28544 | _In_reads_opt_(NumSrcDescriptorRanges) const UINT *pSrcDescriptorRangeSizes, | ||
| 28545 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 28546 | |||
| 28547 | DECLSPEC_XFGVIRT(ID3D12Device, CopyDescriptorsSimple) | ||
| 28548 | void ( STDMETHODCALLTYPE *CopyDescriptorsSimple )( | ||
| 28549 | ID3D12Device14 * This, | ||
| 28550 | _In_ UINT NumDescriptors, | ||
| 28551 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 28552 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 28553 | _In_ D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 28554 | |||
| 28555 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceAllocationInfo) | ||
| 28556 | #if !defined(_WIN32) | ||
| 28557 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 28558 | ID3D12Device14 * This, | ||
| 28559 | _In_ UINT visibleMask, | ||
| 28560 | _In_ UINT numResourceDescs, | ||
| 28561 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 28562 | |||
| 28563 | #else | ||
| 28564 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo )( | ||
| 28565 | ID3D12Device14 * This, | ||
| 28566 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 28567 | _In_ UINT visibleMask, | ||
| 28568 | _In_ UINT numResourceDescs, | ||
| 28569 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs); | ||
| 28570 | |||
| 28571 | #endif | ||
| 28572 | |||
| 28573 | DECLSPEC_XFGVIRT(ID3D12Device, GetCustomHeapProperties) | ||
| 28574 | #if !defined(_WIN32) | ||
| 28575 | D3D12_HEAP_PROPERTIES ( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 28576 | ID3D12Device14 * This, | ||
| 28577 | _In_ UINT nodeMask, | ||
| 28578 | D3D12_HEAP_TYPE heapType); | ||
| 28579 | |||
| 28580 | #else | ||
| 28581 | D3D12_HEAP_PROPERTIES *( STDMETHODCALLTYPE *GetCustomHeapProperties )( | ||
| 28582 | ID3D12Device14 * This, | ||
| 28583 | D3D12_HEAP_PROPERTIES * RetVal, | ||
| 28584 | _In_ UINT nodeMask, | ||
| 28585 | D3D12_HEAP_TYPE heapType); | ||
| 28586 | |||
| 28587 | #endif | ||
| 28588 | |||
| 28589 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommittedResource) | ||
| 28590 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource )( | ||
| 28591 | ID3D12Device14 * This, | ||
| 28592 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 28593 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 28594 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 28595 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 28596 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 28597 | REFIID riidResource, | ||
| 28598 | _COM_Outptr_opt_ void **ppvResource); | ||
| 28599 | |||
| 28600 | DECLSPEC_XFGVIRT(ID3D12Device, CreateHeap) | ||
| 28601 | HRESULT ( STDMETHODCALLTYPE *CreateHeap )( | ||
| 28602 | ID3D12Device14 * This, | ||
| 28603 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 28604 | REFIID riid, | ||
| 28605 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 28606 | |||
| 28607 | DECLSPEC_XFGVIRT(ID3D12Device, CreatePlacedResource) | ||
| 28608 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource )( | ||
| 28609 | ID3D12Device14 * This, | ||
| 28610 | _In_ ID3D12Heap *pHeap, | ||
| 28611 | UINT64 HeapOffset, | ||
| 28612 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 28613 | D3D12_RESOURCE_STATES InitialState, | ||
| 28614 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 28615 | REFIID riid, | ||
| 28616 | _COM_Outptr_opt_ void **ppvResource); | ||
| 28617 | |||
| 28618 | DECLSPEC_XFGVIRT(ID3D12Device, CreateReservedResource) | ||
| 28619 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource )( | ||
| 28620 | ID3D12Device14 * This, | ||
| 28621 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 28622 | D3D12_RESOURCE_STATES InitialState, | ||
| 28623 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 28624 | REFIID riid, | ||
| 28625 | _COM_Outptr_opt_ void **ppvResource); | ||
| 28626 | |||
| 28627 | DECLSPEC_XFGVIRT(ID3D12Device, CreateSharedHandle) | ||
| 28628 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHandle )( | ||
| 28629 | ID3D12Device14 * This, | ||
| 28630 | _In_ ID3D12DeviceChild *pObject, | ||
| 28631 | _In_opt_ const SECURITY_ATTRIBUTES *pAttributes, | ||
| 28632 | DWORD Access, | ||
| 28633 | _In_opt_ LPCWSTR Name, | ||
| 28634 | _Out_ HANDLE *pHandle); | ||
| 28635 | |||
| 28636 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandle) | ||
| 28637 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandle )( | ||
| 28638 | ID3D12Device14 * This, | ||
| 28639 | _In_ HANDLE NTHandle, | ||
| 28640 | REFIID riid, | ||
| 28641 | _COM_Outptr_opt_ void **ppvObj); | ||
| 28642 | |||
| 28643 | DECLSPEC_XFGVIRT(ID3D12Device, OpenSharedHandleByName) | ||
| 28644 | HRESULT ( STDMETHODCALLTYPE *OpenSharedHandleByName )( | ||
| 28645 | ID3D12Device14 * This, | ||
| 28646 | _In_ LPCWSTR Name, | ||
| 28647 | DWORD Access, | ||
| 28648 | /* [annotation][out] */ | ||
| 28649 | _Out_ HANDLE *pNTHandle); | ||
| 28650 | |||
| 28651 | DECLSPEC_XFGVIRT(ID3D12Device, MakeResident) | ||
| 28652 | HRESULT ( STDMETHODCALLTYPE *MakeResident )( | ||
| 28653 | ID3D12Device14 * This, | ||
| 28654 | UINT NumObjects, | ||
| 28655 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 28656 | |||
| 28657 | DECLSPEC_XFGVIRT(ID3D12Device, Evict) | ||
| 28658 | HRESULT ( STDMETHODCALLTYPE *Evict )( | ||
| 28659 | ID3D12Device14 * This, | ||
| 28660 | UINT NumObjects, | ||
| 28661 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects); | ||
| 28662 | |||
| 28663 | DECLSPEC_XFGVIRT(ID3D12Device, CreateFence) | ||
| 28664 | HRESULT ( STDMETHODCALLTYPE *CreateFence )( | ||
| 28665 | ID3D12Device14 * This, | ||
| 28666 | UINT64 InitialValue, | ||
| 28667 | D3D12_FENCE_FLAGS Flags, | ||
| 28668 | REFIID riid, | ||
| 28669 | _COM_Outptr_ void **ppFence); | ||
| 28670 | |||
| 28671 | DECLSPEC_XFGVIRT(ID3D12Device, GetDeviceRemovedReason) | ||
| 28672 | HRESULT ( STDMETHODCALLTYPE *GetDeviceRemovedReason )( | ||
| 28673 | ID3D12Device14 * This); | ||
| 28674 | |||
| 28675 | DECLSPEC_XFGVIRT(ID3D12Device, GetCopyableFootprints) | ||
| 28676 | void ( STDMETHODCALLTYPE *GetCopyableFootprints )( | ||
| 28677 | ID3D12Device14 * This, | ||
| 28678 | _In_ const D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 28679 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 28680 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 28681 | UINT64 BaseOffset, | ||
| 28682 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 28683 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 28684 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 28685 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 28686 | |||
| 28687 | DECLSPEC_XFGVIRT(ID3D12Device, CreateQueryHeap) | ||
| 28688 | HRESULT ( STDMETHODCALLTYPE *CreateQueryHeap )( | ||
| 28689 | ID3D12Device14 * This, | ||
| 28690 | _In_ const D3D12_QUERY_HEAP_DESC *pDesc, | ||
| 28691 | REFIID riid, | ||
| 28692 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 28693 | |||
| 28694 | DECLSPEC_XFGVIRT(ID3D12Device, SetStablePowerState) | ||
| 28695 | HRESULT ( STDMETHODCALLTYPE *SetStablePowerState )( | ||
| 28696 | ID3D12Device14 * This, | ||
| 28697 | BOOL Enable); | ||
| 28698 | |||
| 28699 | DECLSPEC_XFGVIRT(ID3D12Device, CreateCommandSignature) | ||
| 28700 | HRESULT ( STDMETHODCALLTYPE *CreateCommandSignature )( | ||
| 28701 | ID3D12Device14 * This, | ||
| 28702 | _In_ const D3D12_COMMAND_SIGNATURE_DESC *pDesc, | ||
| 28703 | _In_opt_ ID3D12RootSignature *pRootSignature, | ||
| 28704 | REFIID riid, | ||
| 28705 | _COM_Outptr_opt_ void **ppvCommandSignature); | ||
| 28706 | |||
| 28707 | DECLSPEC_XFGVIRT(ID3D12Device, GetResourceTiling) | ||
| 28708 | void ( STDMETHODCALLTYPE *GetResourceTiling )( | ||
| 28709 | ID3D12Device14 * This, | ||
| 28710 | _In_ ID3D12Resource *pTiledResource, | ||
| 28711 | _Out_opt_ UINT *pNumTilesForEntireResource, | ||
| 28712 | _Out_opt_ D3D12_PACKED_MIP_INFO *pPackedMipDesc, | ||
| 28713 | _Out_opt_ D3D12_TILE_SHAPE *pStandardTileShapeForNonPackedMips, | ||
| 28714 | _Inout_opt_ UINT *pNumSubresourceTilings, | ||
| 28715 | _In_ UINT FirstSubresourceTilingToGet, | ||
| 28716 | _Out_writes_(*pNumSubresourceTilings) D3D12_SUBRESOURCE_TILING *pSubresourceTilingsForNonPackedMips); | ||
| 28717 | |||
| 28718 | DECLSPEC_XFGVIRT(ID3D12Device, GetAdapterLuid) | ||
| 28719 | #if !defined(_WIN32) | ||
| 28720 | LUID ( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 28721 | ID3D12Device14 * This); | ||
| 28722 | |||
| 28723 | #else | ||
| 28724 | LUID *( STDMETHODCALLTYPE *GetAdapterLuid )( | ||
| 28725 | ID3D12Device14 * This, | ||
| 28726 | LUID * RetVal); | ||
| 28727 | |||
| 28728 | #endif | ||
| 28729 | |||
| 28730 | DECLSPEC_XFGVIRT(ID3D12Device1, CreatePipelineLibrary) | ||
| 28731 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineLibrary )( | ||
| 28732 | ID3D12Device14 * This, | ||
| 28733 | _In_reads_(BlobLength) const void *pLibraryBlob, | ||
| 28734 | SIZE_T BlobLength, | ||
| 28735 | REFIID riid, | ||
| 28736 | _COM_Outptr_ void **ppPipelineLibrary); | ||
| 28737 | |||
| 28738 | DECLSPEC_XFGVIRT(ID3D12Device1, SetEventOnMultipleFenceCompletion) | ||
| 28739 | HRESULT ( STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion )( | ||
| 28740 | ID3D12Device14 * This, | ||
| 28741 | _In_reads_(NumFences) ID3D12Fence *const *ppFences, | ||
| 28742 | _In_reads_(NumFences) const UINT64 *pFenceValues, | ||
| 28743 | UINT NumFences, | ||
| 28744 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 28745 | HANDLE hEvent); | ||
| 28746 | |||
| 28747 | DECLSPEC_XFGVIRT(ID3D12Device1, SetResidencyPriority) | ||
| 28748 | HRESULT ( STDMETHODCALLTYPE *SetResidencyPriority )( | ||
| 28749 | ID3D12Device14 * This, | ||
| 28750 | UINT NumObjects, | ||
| 28751 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 28752 | _In_reads_(NumObjects) const D3D12_RESIDENCY_PRIORITY *pPriorities); | ||
| 28753 | |||
| 28754 | DECLSPEC_XFGVIRT(ID3D12Device2, CreatePipelineState) | ||
| 28755 | HRESULT ( STDMETHODCALLTYPE *CreatePipelineState )( | ||
| 28756 | ID3D12Device14 * This, | ||
| 28757 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 28758 | REFIID riid, | ||
| 28759 | _COM_Outptr_ void **ppPipelineState); | ||
| 28760 | |||
| 28761 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromAddress) | ||
| 28762 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress )( | ||
| 28763 | ID3D12Device14 * This, | ||
| 28764 | _In_ const void *pAddress, | ||
| 28765 | REFIID riid, | ||
| 28766 | _COM_Outptr_ void **ppvHeap); | ||
| 28767 | |||
| 28768 | DECLSPEC_XFGVIRT(ID3D12Device3, OpenExistingHeapFromFileMapping) | ||
| 28769 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromFileMapping )( | ||
| 28770 | ID3D12Device14 * This, | ||
| 28771 | _In_ HANDLE hFileMapping, | ||
| 28772 | REFIID riid, | ||
| 28773 | _COM_Outptr_ void **ppvHeap); | ||
| 28774 | |||
| 28775 | DECLSPEC_XFGVIRT(ID3D12Device3, EnqueueMakeResident) | ||
| 28776 | HRESULT ( STDMETHODCALLTYPE *EnqueueMakeResident )( | ||
| 28777 | ID3D12Device14 * This, | ||
| 28778 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 28779 | UINT NumObjects, | ||
| 28780 | _In_reads_(NumObjects) ID3D12Pageable *const *ppObjects, | ||
| 28781 | _In_ ID3D12Fence *pFenceToSignal, | ||
| 28782 | UINT64 FenceValueToSignal); | ||
| 28783 | |||
| 28784 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommandList1) | ||
| 28785 | HRESULT ( STDMETHODCALLTYPE *CreateCommandList1 )( | ||
| 28786 | ID3D12Device14 * This, | ||
| 28787 | _In_ UINT nodeMask, | ||
| 28788 | _In_ D3D12_COMMAND_LIST_TYPE type, | ||
| 28789 | _In_ D3D12_COMMAND_LIST_FLAGS flags, | ||
| 28790 | REFIID riid, | ||
| 28791 | _COM_Outptr_ void **ppCommandList); | ||
| 28792 | |||
| 28793 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateProtectedResourceSession) | ||
| 28794 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession )( | ||
| 28795 | ID3D12Device14 * This, | ||
| 28796 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC *pDesc, | ||
| 28797 | _In_ REFIID riid, | ||
| 28798 | _COM_Outptr_ void **ppSession); | ||
| 28799 | |||
| 28800 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateCommittedResource1) | ||
| 28801 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource1 )( | ||
| 28802 | ID3D12Device14 * This, | ||
| 28803 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 28804 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 28805 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 28806 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 28807 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 28808 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 28809 | REFIID riidResource, | ||
| 28810 | _COM_Outptr_opt_ void **ppvResource); | ||
| 28811 | |||
| 28812 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateHeap1) | ||
| 28813 | HRESULT ( STDMETHODCALLTYPE *CreateHeap1 )( | ||
| 28814 | ID3D12Device14 * This, | ||
| 28815 | _In_ const D3D12_HEAP_DESC *pDesc, | ||
| 28816 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 28817 | REFIID riid, | ||
| 28818 | _COM_Outptr_opt_ void **ppvHeap); | ||
| 28819 | |||
| 28820 | DECLSPEC_XFGVIRT(ID3D12Device4, CreateReservedResource1) | ||
| 28821 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource1 )( | ||
| 28822 | ID3D12Device14 * This, | ||
| 28823 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 28824 | D3D12_RESOURCE_STATES InitialState, | ||
| 28825 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 28826 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 28827 | REFIID riid, | ||
| 28828 | _COM_Outptr_opt_ void **ppvResource); | ||
| 28829 | |||
| 28830 | DECLSPEC_XFGVIRT(ID3D12Device4, GetResourceAllocationInfo1) | ||
| 28831 | #if !defined(_WIN32) | ||
| 28832 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 28833 | ID3D12Device14 * This, | ||
| 28834 | UINT visibleMask, | ||
| 28835 | UINT numResourceDescs, | ||
| 28836 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 28837 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 28838 | |||
| 28839 | #else | ||
| 28840 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo1 )( | ||
| 28841 | ID3D12Device14 * This, | ||
| 28842 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 28843 | UINT visibleMask, | ||
| 28844 | UINT numResourceDescs, | ||
| 28845 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC *pResourceDescs, | ||
| 28846 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 28847 | |||
| 28848 | #endif | ||
| 28849 | |||
| 28850 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateLifetimeTracker) | ||
| 28851 | HRESULT ( STDMETHODCALLTYPE *CreateLifetimeTracker )( | ||
| 28852 | ID3D12Device14 * This, | ||
| 28853 | _In_ ID3D12LifetimeOwner *pOwner, | ||
| 28854 | REFIID riid, | ||
| 28855 | _COM_Outptr_ void **ppvTracker); | ||
| 28856 | |||
| 28857 | DECLSPEC_XFGVIRT(ID3D12Device5, RemoveDevice) | ||
| 28858 | void ( STDMETHODCALLTYPE *RemoveDevice )( | ||
| 28859 | ID3D12Device14 * This); | ||
| 28860 | |||
| 28861 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommands) | ||
| 28862 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommands )( | ||
| 28863 | ID3D12Device14 * This, | ||
| 28864 | _Inout_ UINT *pNumMetaCommands, | ||
| 28865 | _Out_writes_opt_(*pNumMetaCommands) D3D12_META_COMMAND_DESC *pDescs); | ||
| 28866 | |||
| 28867 | DECLSPEC_XFGVIRT(ID3D12Device5, EnumerateMetaCommandParameters) | ||
| 28868 | HRESULT ( STDMETHODCALLTYPE *EnumerateMetaCommandParameters )( | ||
| 28869 | ID3D12Device14 * This, | ||
| 28870 | _In_ REFGUID CommandId, | ||
| 28871 | _In_ D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 28872 | _Out_opt_ UINT *pTotalStructureSizeInBytes, | ||
| 28873 | _Inout_ UINT *pParameterCount, | ||
| 28874 | _Out_writes_opt_(*pParameterCount) D3D12_META_COMMAND_PARAMETER_DESC *pParameterDescs); | ||
| 28875 | |||
| 28876 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateMetaCommand) | ||
| 28877 | HRESULT ( STDMETHODCALLTYPE *CreateMetaCommand )( | ||
| 28878 | ID3D12Device14 * This, | ||
| 28879 | _In_ REFGUID CommandId, | ||
| 28880 | _In_ UINT NodeMask, | ||
| 28881 | _In_reads_bytes_opt_(CreationParametersDataSizeInBytes) const void *pCreationParametersData, | ||
| 28882 | _In_ SIZE_T CreationParametersDataSizeInBytes, | ||
| 28883 | REFIID riid, | ||
| 28884 | _COM_Outptr_ void **ppMetaCommand); | ||
| 28885 | |||
| 28886 | DECLSPEC_XFGVIRT(ID3D12Device5, CreateStateObject) | ||
| 28887 | HRESULT ( STDMETHODCALLTYPE *CreateStateObject )( | ||
| 28888 | ID3D12Device14 * This, | ||
| 28889 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 28890 | REFIID riid, | ||
| 28891 | _COM_Outptr_ void **ppStateObject); | ||
| 28892 | |||
| 28893 | DECLSPEC_XFGVIRT(ID3D12Device5, GetRaytracingAccelerationStructurePrebuildInfo) | ||
| 28894 | void ( STDMETHODCALLTYPE *GetRaytracingAccelerationStructurePrebuildInfo )( | ||
| 28895 | ID3D12Device14 * This, | ||
| 28896 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS *pDesc, | ||
| 28897 | _Out_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo); | ||
| 28898 | |||
| 28899 | DECLSPEC_XFGVIRT(ID3D12Device5, CheckDriverMatchingIdentifier) | ||
| 28900 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS ( STDMETHODCALLTYPE *CheckDriverMatchingIdentifier )( | ||
| 28901 | ID3D12Device14 * This, | ||
| 28902 | _In_ D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 28903 | _In_ const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER *pIdentifierToCheck); | ||
| 28904 | |||
| 28905 | DECLSPEC_XFGVIRT(ID3D12Device6, SetBackgroundProcessingMode) | ||
| 28906 | HRESULT ( STDMETHODCALLTYPE *SetBackgroundProcessingMode )( | ||
| 28907 | ID3D12Device14 * This, | ||
| 28908 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 28909 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 28910 | _In_opt_ HANDLE hEventToSignalUponCompletion, | ||
| 28911 | _Out_opt_ BOOL *pbFurtherMeasurementsDesired); | ||
| 28912 | |||
| 28913 | DECLSPEC_XFGVIRT(ID3D12Device7, AddToStateObject) | ||
| 28914 | HRESULT ( STDMETHODCALLTYPE *AddToStateObject )( | ||
| 28915 | ID3D12Device14 * This, | ||
| 28916 | const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 28917 | ID3D12StateObject *pStateObjectToGrowFrom, | ||
| 28918 | REFIID riid, | ||
| 28919 | _COM_Outptr_ void **ppNewStateObject); | ||
| 28920 | |||
| 28921 | DECLSPEC_XFGVIRT(ID3D12Device7, CreateProtectedResourceSession1) | ||
| 28922 | HRESULT ( STDMETHODCALLTYPE *CreateProtectedResourceSession1 )( | ||
| 28923 | ID3D12Device14 * This, | ||
| 28924 | _In_ const D3D12_PROTECTED_RESOURCE_SESSION_DESC1 *pDesc, | ||
| 28925 | _In_ REFIID riid, | ||
| 28926 | _COM_Outptr_ void **ppSession); | ||
| 28927 | |||
| 28928 | DECLSPEC_XFGVIRT(ID3D12Device8, GetResourceAllocationInfo2) | ||
| 28929 | #if !defined(_WIN32) | ||
| 28930 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 28931 | ID3D12Device14 * This, | ||
| 28932 | UINT visibleMask, | ||
| 28933 | UINT numResourceDescs, | ||
| 28934 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 28935 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 28936 | |||
| 28937 | #else | ||
| 28938 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo2 )( | ||
| 28939 | ID3D12Device14 * This, | ||
| 28940 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 28941 | UINT visibleMask, | ||
| 28942 | UINT numResourceDescs, | ||
| 28943 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 28944 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 28945 | |||
| 28946 | #endif | ||
| 28947 | |||
| 28948 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateCommittedResource2) | ||
| 28949 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource2 )( | ||
| 28950 | ID3D12Device14 * This, | ||
| 28951 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 28952 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 28953 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 28954 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 28955 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 28956 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 28957 | REFIID riidResource, | ||
| 28958 | _COM_Outptr_opt_ void **ppvResource); | ||
| 28959 | |||
| 28960 | DECLSPEC_XFGVIRT(ID3D12Device8, CreatePlacedResource1) | ||
| 28961 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource1 )( | ||
| 28962 | ID3D12Device14 * This, | ||
| 28963 | _In_ ID3D12Heap *pHeap, | ||
| 28964 | UINT64 HeapOffset, | ||
| 28965 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 28966 | D3D12_RESOURCE_STATES InitialState, | ||
| 28967 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 28968 | REFIID riid, | ||
| 28969 | _COM_Outptr_opt_ void **ppvResource); | ||
| 28970 | |||
| 28971 | DECLSPEC_XFGVIRT(ID3D12Device8, CreateSamplerFeedbackUnorderedAccessView) | ||
| 28972 | void ( STDMETHODCALLTYPE *CreateSamplerFeedbackUnorderedAccessView )( | ||
| 28973 | ID3D12Device14 * This, | ||
| 28974 | _In_opt_ ID3D12Resource *pTargetedResource, | ||
| 28975 | _In_opt_ ID3D12Resource *pFeedbackResource, | ||
| 28976 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 28977 | |||
| 28978 | DECLSPEC_XFGVIRT(ID3D12Device8, GetCopyableFootprints1) | ||
| 28979 | void ( STDMETHODCALLTYPE *GetCopyableFootprints1 )( | ||
| 28980 | ID3D12Device14 * This, | ||
| 28981 | _In_ const D3D12_RESOURCE_DESC1 *pResourceDesc, | ||
| 28982 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 28983 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 28984 | UINT64 BaseOffset, | ||
| 28985 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT *pLayouts, | ||
| 28986 | _Out_writes_opt_(NumSubresources) UINT *pNumRows, | ||
| 28987 | _Out_writes_opt_(NumSubresources) UINT64 *pRowSizeInBytes, | ||
| 28988 | _Out_opt_ UINT64 *pTotalBytes); | ||
| 28989 | |||
| 28990 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateShaderCacheSession) | ||
| 28991 | HRESULT ( STDMETHODCALLTYPE *CreateShaderCacheSession )( | ||
| 28992 | ID3D12Device14 * This, | ||
| 28993 | _In_ const D3D12_SHADER_CACHE_SESSION_DESC *pDesc, | ||
| 28994 | REFIID riid, | ||
| 28995 | _COM_Outptr_opt_ void **ppvSession); | ||
| 28996 | |||
| 28997 | DECLSPEC_XFGVIRT(ID3D12Device9, ShaderCacheControl) | ||
| 28998 | HRESULT ( STDMETHODCALLTYPE *ShaderCacheControl )( | ||
| 28999 | ID3D12Device14 * This, | ||
| 29000 | D3D12_SHADER_CACHE_KIND_FLAGS Kinds, | ||
| 29001 | D3D12_SHADER_CACHE_CONTROL_FLAGS Control); | ||
| 29002 | |||
| 29003 | DECLSPEC_XFGVIRT(ID3D12Device9, CreateCommandQueue1) | ||
| 29004 | HRESULT ( STDMETHODCALLTYPE *CreateCommandQueue1 )( | ||
| 29005 | ID3D12Device14 * This, | ||
| 29006 | _In_ const D3D12_COMMAND_QUEUE_DESC *pDesc, | ||
| 29007 | REFIID CreatorID, | ||
| 29008 | REFIID riid, | ||
| 29009 | _COM_Outptr_ void **ppCommandQueue); | ||
| 29010 | |||
| 29011 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateCommittedResource3) | ||
| 29012 | HRESULT ( STDMETHODCALLTYPE *CreateCommittedResource3 )( | ||
| 29013 | ID3D12Device14 * This, | ||
| 29014 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 29015 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 29016 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 29017 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 29018 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 29019 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 29020 | UINT32 NumCastableFormats, | ||
| 29021 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 29022 | REFIID riidResource, | ||
| 29023 | _COM_Outptr_opt_ void **ppvResource); | ||
| 29024 | |||
| 29025 | DECLSPEC_XFGVIRT(ID3D12Device10, CreatePlacedResource2) | ||
| 29026 | HRESULT ( STDMETHODCALLTYPE *CreatePlacedResource2 )( | ||
| 29027 | ID3D12Device14 * This, | ||
| 29028 | _In_ ID3D12Heap *pHeap, | ||
| 29029 | UINT64 HeapOffset, | ||
| 29030 | _In_ const D3D12_RESOURCE_DESC1 *pDesc, | ||
| 29031 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 29032 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 29033 | UINT32 NumCastableFormats, | ||
| 29034 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 29035 | REFIID riid, | ||
| 29036 | _COM_Outptr_opt_ void **ppvResource); | ||
| 29037 | |||
| 29038 | DECLSPEC_XFGVIRT(ID3D12Device10, CreateReservedResource2) | ||
| 29039 | HRESULT ( STDMETHODCALLTYPE *CreateReservedResource2 )( | ||
| 29040 | ID3D12Device14 * This, | ||
| 29041 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 29042 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 29043 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 29044 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 29045 | UINT32 NumCastableFormats, | ||
| 29046 | _In_opt_count_(NumCastableFormats) const DXGI_FORMAT *pCastableFormats, | ||
| 29047 | REFIID riid, | ||
| 29048 | _COM_Outptr_opt_ void **ppvResource); | ||
| 29049 | |||
| 29050 | DECLSPEC_XFGVIRT(ID3D12Device11, CreateSampler2) | ||
| 29051 | void ( STDMETHODCALLTYPE *CreateSampler2 )( | ||
| 29052 | ID3D12Device14 * This, | ||
| 29053 | _In_ const D3D12_SAMPLER_DESC2 *pDesc, | ||
| 29054 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 29055 | |||
| 29056 | DECLSPEC_XFGVIRT(ID3D12Device12, GetResourceAllocationInfo3) | ||
| 29057 | #if !defined(_WIN32) | ||
| 29058 | D3D12_RESOURCE_ALLOCATION_INFO ( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( | ||
| 29059 | ID3D12Device14 * This, | ||
| 29060 | UINT visibleMask, | ||
| 29061 | UINT numResourceDescs, | ||
| 29062 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 29063 | _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, | ||
| 29064 | _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, | ||
| 29065 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 29066 | |||
| 29067 | #else | ||
| 29068 | D3D12_RESOURCE_ALLOCATION_INFO *( STDMETHODCALLTYPE *GetResourceAllocationInfo3 )( | ||
| 29069 | ID3D12Device14 * This, | ||
| 29070 | D3D12_RESOURCE_ALLOCATION_INFO * RetVal, | ||
| 29071 | UINT visibleMask, | ||
| 29072 | UINT numResourceDescs, | ||
| 29073 | _In_reads_(numResourceDescs) const D3D12_RESOURCE_DESC1 *pResourceDescs, | ||
| 29074 | _In_opt_count_(numResourceDescs) const UINT32 *pNumCastableFormats, | ||
| 29075 | _In_opt_count_(numResourceDescs) const DXGI_FORMAT *const *ppCastableFormats, | ||
| 29076 | _Out_writes_opt_(numResourceDescs) D3D12_RESOURCE_ALLOCATION_INFO1 *pResourceAllocationInfo1); | ||
| 29077 | |||
| 29078 | #endif | ||
| 29079 | |||
| 29080 | DECLSPEC_XFGVIRT(ID3D12Device13, OpenExistingHeapFromAddress1) | ||
| 29081 | HRESULT ( STDMETHODCALLTYPE *OpenExistingHeapFromAddress1 )( | ||
| 29082 | ID3D12Device14 * This, | ||
| 29083 | _In_ const void *pAddress, | ||
| 29084 | SIZE_T size, | ||
| 29085 | REFIID riid, | ||
| 29086 | _COM_Outptr_ void **ppvHeap); | ||
| 29087 | |||
| 29088 | DECLSPEC_XFGVIRT(ID3D12Device14, CreateRootSignatureFromSubobjectInLibrary) | ||
| 29089 | HRESULT ( STDMETHODCALLTYPE *CreateRootSignatureFromSubobjectInLibrary )( | ||
| 29090 | ID3D12Device14 * This, | ||
| 29091 | _In_ UINT nodeMask, | ||
| 29092 | _In_reads_(blobLengthInBytes) const void *pLibraryBlob, | ||
| 29093 | _In_ SIZE_T blobLengthInBytes, | ||
| 29094 | _In_opt_ LPCWSTR subobjectName, | ||
| 29095 | REFIID riid, | ||
| 29096 | _COM_Outptr_ void **ppvRootSignature); | ||
| 29097 | |||
| 29098 | END_INTERFACE | ||
| 29099 | } ID3D12Device14Vtbl; | ||
| 29100 | |||
| 29101 | interface ID3D12Device14 | ||
| 29102 | { | ||
| 29103 | CONST_VTBL struct ID3D12Device14Vtbl *lpVtbl; | ||
| 29104 | }; | ||
| 29105 | |||
| 29106 | |||
| 29107 | |||
| 29108 | #ifdef COBJMACROS | ||
| 29109 | |||
| 29110 | |||
| 29111 | #define ID3D12Device14_QueryInterface(This,riid,ppvObject) \ | ||
| 29112 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 29113 | |||
| 29114 | #define ID3D12Device14_AddRef(This) \ | ||
| 29115 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 29116 | |||
| 29117 | #define ID3D12Device14_Release(This) \ | ||
| 29118 | ( (This)->lpVtbl -> Release(This) ) | ||
| 29119 | |||
| 29120 | |||
| 29121 | #define ID3D12Device14_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 29122 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 29123 | |||
| 29124 | #define ID3D12Device14_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 29125 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 29126 | |||
| 29127 | #define ID3D12Device14_SetPrivateDataInterface(This,guid,pData) \ | ||
| 29128 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 29129 | |||
| 29130 | #define ID3D12Device14_SetName(This,Name) \ | ||
| 29131 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 29132 | |||
| 29133 | |||
| 29134 | #define ID3D12Device14_GetNodeCount(This) \ | ||
| 29135 | ( (This)->lpVtbl -> GetNodeCount(This) ) | ||
| 29136 | |||
| 29137 | #define ID3D12Device14_CreateCommandQueue(This,pDesc,riid,ppCommandQueue) \ | ||
| 29138 | ( (This)->lpVtbl -> CreateCommandQueue(This,pDesc,riid,ppCommandQueue) ) | ||
| 29139 | |||
| 29140 | #define ID3D12Device14_CreateCommandAllocator(This,type,riid,ppCommandAllocator) \ | ||
| 29141 | ( (This)->lpVtbl -> CreateCommandAllocator(This,type,riid,ppCommandAllocator) ) | ||
| 29142 | |||
| 29143 | #define ID3D12Device14_CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 29144 | ( (This)->lpVtbl -> CreateGraphicsPipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 29145 | |||
| 29146 | #define ID3D12Device14_CreateComputePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 29147 | ( (This)->lpVtbl -> CreateComputePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 29148 | |||
| 29149 | #define ID3D12Device14_CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) \ | ||
| 29150 | ( (This)->lpVtbl -> CreateCommandList(This,nodeMask,type,pCommandAllocator,pInitialState,riid,ppCommandList) ) | ||
| 29151 | |||
| 29152 | #define ID3D12Device14_CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 29153 | ( (This)->lpVtbl -> CheckFeatureSupport(This,Feature,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 29154 | |||
| 29155 | #define ID3D12Device14_CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) \ | ||
| 29156 | ( (This)->lpVtbl -> CreateDescriptorHeap(This,pDescriptorHeapDesc,riid,ppvHeap) ) | ||
| 29157 | |||
| 29158 | #define ID3D12Device14_GetDescriptorHandleIncrementSize(This,DescriptorHeapType) \ | ||
| 29159 | ( (This)->lpVtbl -> GetDescriptorHandleIncrementSize(This,DescriptorHeapType) ) | ||
| 29160 | |||
| 29161 | #define ID3D12Device14_CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) \ | ||
| 29162 | ( (This)->lpVtbl -> CreateRootSignature(This,nodeMask,pBlobWithRootSignature,blobLengthInBytes,riid,ppvRootSignature) ) | ||
| 29163 | |||
| 29164 | #define ID3D12Device14_CreateConstantBufferView(This,pDesc,DestDescriptor) \ | ||
| 29165 | ( (This)->lpVtbl -> CreateConstantBufferView(This,pDesc,DestDescriptor) ) | ||
| 29166 | |||
| 29167 | #define ID3D12Device14_CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) \ | ||
| 29168 | ( (This)->lpVtbl -> CreateShaderResourceView(This,pResource,pDesc,DestDescriptor) ) | ||
| 29169 | |||
| 29170 | #define ID3D12Device14_CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) \ | ||
| 29171 | ( (This)->lpVtbl -> CreateUnorderedAccessView(This,pResource,pCounterResource,pDesc,DestDescriptor) ) | ||
| 29172 | |||
| 29173 | #define ID3D12Device14_CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) \ | ||
| 29174 | ( (This)->lpVtbl -> CreateRenderTargetView(This,pResource,pDesc,DestDescriptor) ) | ||
| 29175 | |||
| 29176 | #define ID3D12Device14_CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) \ | ||
| 29177 | ( (This)->lpVtbl -> CreateDepthStencilView(This,pResource,pDesc,DestDescriptor) ) | ||
| 29178 | |||
| 29179 | #define ID3D12Device14_CreateSampler(This,pDesc,DestDescriptor) \ | ||
| 29180 | ( (This)->lpVtbl -> CreateSampler(This,pDesc,DestDescriptor) ) | ||
| 29181 | |||
| 29182 | #define ID3D12Device14_CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) \ | ||
| 29183 | ( (This)->lpVtbl -> CopyDescriptors(This,NumDestDescriptorRanges,pDestDescriptorRangeStarts,pDestDescriptorRangeSizes,NumSrcDescriptorRanges,pSrcDescriptorRangeStarts,pSrcDescriptorRangeSizes,DescriptorHeapsType) ) | ||
| 29184 | |||
| 29185 | #define ID3D12Device14_CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) \ | ||
| 29186 | ( (This)->lpVtbl -> CopyDescriptorsSimple(This,NumDescriptors,DestDescriptorRangeStart,SrcDescriptorRangeStart,DescriptorHeapsType) ) | ||
| 29187 | #if !defined(_WIN32) | ||
| 29188 | |||
| 29189 | #define ID3D12Device14_GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 29190 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 29191 | #else | ||
| 29192 | #define ID3D12Device14_GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) \ | ||
| 29193 | ( (This)->lpVtbl -> GetResourceAllocationInfo(This,RetVal,visibleMask,numResourceDescs,pResourceDescs) ) | ||
| 29194 | #endif | ||
| 29195 | #if !defined(_WIN32) | ||
| 29196 | |||
| 29197 | #define ID3D12Device14_GetCustomHeapProperties(This,nodeMask,heapType) \ | ||
| 29198 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,nodeMask,heapType) ) | ||
| 29199 | #else | ||
| 29200 | #define ID3D12Device14_GetCustomHeapProperties(This,RetVal,nodeMask,heapType) \ | ||
| 29201 | ( (This)->lpVtbl -> GetCustomHeapProperties(This,RetVal,nodeMask,heapType) ) | ||
| 29202 | #endif | ||
| 29203 | |||
| 29204 | #define ID3D12Device14_CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) \ | ||
| 29205 | ( (This)->lpVtbl -> CreateCommittedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,riidResource,ppvResource) ) | ||
| 29206 | |||
| 29207 | #define ID3D12Device14_CreateHeap(This,pDesc,riid,ppvHeap) \ | ||
| 29208 | ( (This)->lpVtbl -> CreateHeap(This,pDesc,riid,ppvHeap) ) | ||
| 29209 | |||
| 29210 | #define ID3D12Device14_CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 29211 | ( (This)->lpVtbl -> CreatePlacedResource(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 29212 | |||
| 29213 | #define ID3D12Device14_CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 29214 | ( (This)->lpVtbl -> CreateReservedResource(This,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 29215 | |||
| 29216 | #define ID3D12Device14_CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) \ | ||
| 29217 | ( (This)->lpVtbl -> CreateSharedHandle(This,pObject,pAttributes,Access,Name,pHandle) ) | ||
| 29218 | |||
| 29219 | #define ID3D12Device14_OpenSharedHandle(This,NTHandle,riid,ppvObj) \ | ||
| 29220 | ( (This)->lpVtbl -> OpenSharedHandle(This,NTHandle,riid,ppvObj) ) | ||
| 29221 | |||
| 29222 | #define ID3D12Device14_OpenSharedHandleByName(This,Name,Access,pNTHandle) \ | ||
| 29223 | ( (This)->lpVtbl -> OpenSharedHandleByName(This,Name,Access,pNTHandle) ) | ||
| 29224 | |||
| 29225 | #define ID3D12Device14_MakeResident(This,NumObjects,ppObjects) \ | ||
| 29226 | ( (This)->lpVtbl -> MakeResident(This,NumObjects,ppObjects) ) | ||
| 29227 | |||
| 29228 | #define ID3D12Device14_Evict(This,NumObjects,ppObjects) \ | ||
| 29229 | ( (This)->lpVtbl -> Evict(This,NumObjects,ppObjects) ) | ||
| 29230 | |||
| 29231 | #define ID3D12Device14_CreateFence(This,InitialValue,Flags,riid,ppFence) \ | ||
| 29232 | ( (This)->lpVtbl -> CreateFence(This,InitialValue,Flags,riid,ppFence) ) | ||
| 29233 | |||
| 29234 | #define ID3D12Device14_GetDeviceRemovedReason(This) \ | ||
| 29235 | ( (This)->lpVtbl -> GetDeviceRemovedReason(This) ) | ||
| 29236 | |||
| 29237 | #define ID3D12Device14_GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 29238 | ( (This)->lpVtbl -> GetCopyableFootprints(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 29239 | |||
| 29240 | #define ID3D12Device14_CreateQueryHeap(This,pDesc,riid,ppvHeap) \ | ||
| 29241 | ( (This)->lpVtbl -> CreateQueryHeap(This,pDesc,riid,ppvHeap) ) | ||
| 29242 | |||
| 29243 | #define ID3D12Device14_SetStablePowerState(This,Enable) \ | ||
| 29244 | ( (This)->lpVtbl -> SetStablePowerState(This,Enable) ) | ||
| 29245 | |||
| 29246 | #define ID3D12Device14_CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) \ | ||
| 29247 | ( (This)->lpVtbl -> CreateCommandSignature(This,pDesc,pRootSignature,riid,ppvCommandSignature) ) | ||
| 29248 | |||
| 29249 | #define ID3D12Device14_GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) \ | ||
| 29250 | ( (This)->lpVtbl -> GetResourceTiling(This,pTiledResource,pNumTilesForEntireResource,pPackedMipDesc,pStandardTileShapeForNonPackedMips,pNumSubresourceTilings,FirstSubresourceTilingToGet,pSubresourceTilingsForNonPackedMips) ) | ||
| 29251 | #if !defined(_WIN32) | ||
| 29252 | |||
| 29253 | #define ID3D12Device14_GetAdapterLuid(This) \ | ||
| 29254 | ( (This)->lpVtbl -> GetAdapterLuid(This) ) | ||
| 29255 | #else | ||
| 29256 | #define ID3D12Device14_GetAdapterLuid(This,RetVal) \ | ||
| 29257 | ( (This)->lpVtbl -> GetAdapterLuid(This,RetVal) ) | ||
| 29258 | #endif | ||
| 29259 | |||
| 29260 | |||
| 29261 | #define ID3D12Device14_CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) \ | ||
| 29262 | ( (This)->lpVtbl -> CreatePipelineLibrary(This,pLibraryBlob,BlobLength,riid,ppPipelineLibrary) ) | ||
| 29263 | |||
| 29264 | #define ID3D12Device14_SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) \ | ||
| 29265 | ( (This)->lpVtbl -> SetEventOnMultipleFenceCompletion(This,ppFences,pFenceValues,NumFences,Flags,hEvent) ) | ||
| 29266 | |||
| 29267 | #define ID3D12Device14_SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) \ | ||
| 29268 | ( (This)->lpVtbl -> SetResidencyPriority(This,NumObjects,ppObjects,pPriorities) ) | ||
| 29269 | |||
| 29270 | |||
| 29271 | #define ID3D12Device14_CreatePipelineState(This,pDesc,riid,ppPipelineState) \ | ||
| 29272 | ( (This)->lpVtbl -> CreatePipelineState(This,pDesc,riid,ppPipelineState) ) | ||
| 29273 | |||
| 29274 | |||
| 29275 | #define ID3D12Device14_OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) \ | ||
| 29276 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress(This,pAddress,riid,ppvHeap) ) | ||
| 29277 | |||
| 29278 | #define ID3D12Device14_OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) \ | ||
| 29279 | ( (This)->lpVtbl -> OpenExistingHeapFromFileMapping(This,hFileMapping,riid,ppvHeap) ) | ||
| 29280 | |||
| 29281 | #define ID3D12Device14_EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) \ | ||
| 29282 | ( (This)->lpVtbl -> EnqueueMakeResident(This,Flags,NumObjects,ppObjects,pFenceToSignal,FenceValueToSignal) ) | ||
| 29283 | |||
| 29284 | |||
| 29285 | #define ID3D12Device14_CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) \ | ||
| 29286 | ( (This)->lpVtbl -> CreateCommandList1(This,nodeMask,type,flags,riid,ppCommandList) ) | ||
| 29287 | |||
| 29288 | #define ID3D12Device14_CreateProtectedResourceSession(This,pDesc,riid,ppSession) \ | ||
| 29289 | ( (This)->lpVtbl -> CreateProtectedResourceSession(This,pDesc,riid,ppSession) ) | ||
| 29290 | |||
| 29291 | #define ID3D12Device14_CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 29292 | ( (This)->lpVtbl -> CreateCommittedResource1(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 29293 | |||
| 29294 | #define ID3D12Device14_CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) \ | ||
| 29295 | ( (This)->lpVtbl -> CreateHeap1(This,pDesc,pProtectedSession,riid,ppvHeap) ) | ||
| 29296 | |||
| 29297 | #define ID3D12Device14_CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) \ | ||
| 29298 | ( (This)->lpVtbl -> CreateReservedResource1(This,pDesc,InitialState,pOptimizedClearValue,pProtectedSession,riid,ppvResource) ) | ||
| 29299 | #if !defined(_WIN32) | ||
| 29300 | |||
| 29301 | #define ID3D12Device14_GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 29302 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 29303 | #else | ||
| 29304 | #define ID3D12Device14_GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 29305 | ( (This)->lpVtbl -> GetResourceAllocationInfo1(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 29306 | #endif | ||
| 29307 | |||
| 29308 | |||
| 29309 | #define ID3D12Device14_CreateLifetimeTracker(This,pOwner,riid,ppvTracker) \ | ||
| 29310 | ( (This)->lpVtbl -> CreateLifetimeTracker(This,pOwner,riid,ppvTracker) ) | ||
| 29311 | |||
| 29312 | #define ID3D12Device14_RemoveDevice(This) \ | ||
| 29313 | ( (This)->lpVtbl -> RemoveDevice(This) ) | ||
| 29314 | |||
| 29315 | #define ID3D12Device14_EnumerateMetaCommands(This,pNumMetaCommands,pDescs) \ | ||
| 29316 | ( (This)->lpVtbl -> EnumerateMetaCommands(This,pNumMetaCommands,pDescs) ) | ||
| 29317 | |||
| 29318 | #define ID3D12Device14_EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) \ | ||
| 29319 | ( (This)->lpVtbl -> EnumerateMetaCommandParameters(This,CommandId,Stage,pTotalStructureSizeInBytes,pParameterCount,pParameterDescs) ) | ||
| 29320 | |||
| 29321 | #define ID3D12Device14_CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) \ | ||
| 29322 | ( (This)->lpVtbl -> CreateMetaCommand(This,CommandId,NodeMask,pCreationParametersData,CreationParametersDataSizeInBytes,riid,ppMetaCommand) ) | ||
| 29323 | |||
| 29324 | #define ID3D12Device14_CreateStateObject(This,pDesc,riid,ppStateObject) \ | ||
| 29325 | ( (This)->lpVtbl -> CreateStateObject(This,pDesc,riid,ppStateObject) ) | ||
| 29326 | |||
| 29327 | #define ID3D12Device14_GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) \ | ||
| 29328 | ( (This)->lpVtbl -> GetRaytracingAccelerationStructurePrebuildInfo(This,pDesc,pInfo) ) | ||
| 29329 | |||
| 29330 | #define ID3D12Device14_CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) \ | ||
| 29331 | ( (This)->lpVtbl -> CheckDriverMatchingIdentifier(This,SerializedDataType,pIdentifierToCheck) ) | ||
| 29332 | |||
| 29333 | |||
| 29334 | #define ID3D12Device14_SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) \ | ||
| 29335 | ( (This)->lpVtbl -> SetBackgroundProcessingMode(This,Mode,MeasurementsAction,hEventToSignalUponCompletion,pbFurtherMeasurementsDesired) ) | ||
| 29336 | |||
| 29337 | |||
| 29338 | #define ID3D12Device14_AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) \ | ||
| 29339 | ( (This)->lpVtbl -> AddToStateObject(This,pAddition,pStateObjectToGrowFrom,riid,ppNewStateObject) ) | ||
| 29340 | |||
| 29341 | #define ID3D12Device14_CreateProtectedResourceSession1(This,pDesc,riid,ppSession) \ | ||
| 29342 | ( (This)->lpVtbl -> CreateProtectedResourceSession1(This,pDesc,riid,ppSession) ) | ||
| 29343 | |||
| 29344 | #if !defined(_WIN32) | ||
| 29345 | |||
| 29346 | #define ID3D12Device14_GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 29347 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 29348 | #else | ||
| 29349 | #define ID3D12Device14_GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) \ | ||
| 29350 | ( (This)->lpVtbl -> GetResourceAllocationInfo2(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pResourceAllocationInfo1) ) | ||
| 29351 | #endif | ||
| 29352 | |||
| 29353 | #define ID3D12Device14_CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) \ | ||
| 29354 | ( (This)->lpVtbl -> CreateCommittedResource2(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pProtectedSession,riidResource,ppvResource) ) | ||
| 29355 | |||
| 29356 | #define ID3D12Device14_CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) \ | ||
| 29357 | ( (This)->lpVtbl -> CreatePlacedResource1(This,pHeap,HeapOffset,pDesc,InitialState,pOptimizedClearValue,riid,ppvResource) ) | ||
| 29358 | |||
| 29359 | #define ID3D12Device14_CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) \ | ||
| 29360 | ( (This)->lpVtbl -> CreateSamplerFeedbackUnorderedAccessView(This,pTargetedResource,pFeedbackResource,DestDescriptor) ) | ||
| 29361 | |||
| 29362 | #define ID3D12Device14_GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) \ | ||
| 29363 | ( (This)->lpVtbl -> GetCopyableFootprints1(This,pResourceDesc,FirstSubresource,NumSubresources,BaseOffset,pLayouts,pNumRows,pRowSizeInBytes,pTotalBytes) ) | ||
| 29364 | |||
| 29365 | |||
| 29366 | #define ID3D12Device14_CreateShaderCacheSession(This,pDesc,riid,ppvSession) \ | ||
| 29367 | ( (This)->lpVtbl -> CreateShaderCacheSession(This,pDesc,riid,ppvSession) ) | ||
| 29368 | |||
| 29369 | #define ID3D12Device14_ShaderCacheControl(This,Kinds,Control) \ | ||
| 29370 | ( (This)->lpVtbl -> ShaderCacheControl(This,Kinds,Control) ) | ||
| 29371 | |||
| 29372 | #define ID3D12Device14_CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) \ | ||
| 29373 | ( (This)->lpVtbl -> CreateCommandQueue1(This,pDesc,CreatorID,riid,ppCommandQueue) ) | ||
| 29374 | |||
| 29375 | |||
| 29376 | #define ID3D12Device14_CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) \ | ||
| 29377 | ( (This)->lpVtbl -> CreateCommittedResource3(This,pHeapProperties,HeapFlags,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riidResource,ppvResource) ) | ||
| 29378 | |||
| 29379 | #define ID3D12Device14_CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 29380 | ( (This)->lpVtbl -> CreatePlacedResource2(This,pHeap,HeapOffset,pDesc,InitialLayout,pOptimizedClearValue,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 29381 | |||
| 29382 | #define ID3D12Device14_CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) \ | ||
| 29383 | ( (This)->lpVtbl -> CreateReservedResource2(This,pDesc,InitialLayout,pOptimizedClearValue,pProtectedSession,NumCastableFormats,pCastableFormats,riid,ppvResource) ) | ||
| 29384 | |||
| 29385 | |||
| 29386 | #define ID3D12Device14_CreateSampler2(This,pDesc,DestDescriptor) \ | ||
| 29387 | ( (This)->lpVtbl -> CreateSampler2(This,pDesc,DestDescriptor) ) | ||
| 29388 | |||
| 29389 | #if !defined(_WIN32) | ||
| 29390 | |||
| 29391 | #define ID3D12Device14_GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ | ||
| 29392 | ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) | ||
| 29393 | #else | ||
| 29394 | #define ID3D12Device14_GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) \ | ||
| 29395 | ( (This)->lpVtbl -> GetResourceAllocationInfo3(This,RetVal,visibleMask,numResourceDescs,pResourceDescs,pNumCastableFormats,ppCastableFormats,pResourceAllocationInfo1) ) | ||
| 29396 | #endif | ||
| 29397 | |||
| 29398 | |||
| 29399 | #define ID3D12Device14_OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) \ | ||
| 29400 | ( (This)->lpVtbl -> OpenExistingHeapFromAddress1(This,pAddress,size,riid,ppvHeap) ) | ||
| 29401 | |||
| 29402 | |||
| 29403 | #define ID3D12Device14_CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) \ | ||
| 29404 | ( (This)->lpVtbl -> CreateRootSignatureFromSubobjectInLibrary(This,nodeMask,pLibraryBlob,blobLengthInBytes,subobjectName,riid,ppvRootSignature) ) | ||
| 29405 | |||
| 29406 | #endif /* COBJMACROS */ | ||
| 29407 | |||
| 29408 | |||
| 29409 | #endif /* C style interface */ | ||
| 29410 | |||
| 29411 | |||
| 29412 | |||
| 29413 | |||
| 29414 | #endif /* __ID3D12Device14_INTERFACE_DEFINED__ */ | ||
| 29415 | |||
| 29416 | |||
| 29417 | /* interface __MIDL_itf_d3d12_0000_0063 */ | ||
| 29418 | /* [local] */ | ||
| 29419 | |||
| 29420 | typedef union D3D12_VERSION_NUMBER | ||
| 29421 | { | ||
| 29422 | UINT64 Version; | ||
| 29423 | UINT16 VersionParts[ 4 ]; | ||
| 29424 | } D3D12_VERSION_NUMBER; | ||
| 29425 | |||
| 29426 | typedef struct D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT | ||
| 29427 | { | ||
| 29428 | WCHAR szAdapterFamily[ 128 ]; | ||
| 29429 | UINT64 MinimumABISupportVersion; | ||
| 29430 | UINT64 MaximumABISupportVersion; | ||
| 29431 | D3D12_VERSION_NUMBER CompilerVersion; | ||
| 29432 | D3D12_VERSION_NUMBER ApplicationProfileVersion; | ||
| 29433 | } D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT; | ||
| 29434 | |||
| 29435 | typedef void ( __stdcall *D3D12PipelineStateFunc )( | ||
| 29436 | _In_reads_bytes_(KeySize) const void *pKey, | ||
| 29437 | UINT KeySize, | ||
| 29438 | UINT Version, | ||
| 29439 | const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc, | ||
| 29440 | _Inout_opt_ void *pContext); | ||
| 29441 | |||
| 29442 | typedef void ( __stdcall *D3D12StateObjectFunc )( | ||
| 29443 | _In_reads_bytes_(KeySize) const void *pKey, | ||
| 29444 | UINT KeySize, | ||
| 29445 | UINT Version, | ||
| 29446 | const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 29447 | _In_reads_bytes_(ParentKeySize) const void *pParentKey, | ||
| 29448 | UINT ParentKeySize, | ||
| 29449 | _Inout_opt_ void *pContext); | ||
| 29450 | |||
| 29451 | typedef struct D3D12_APPLICATION_DESC | ||
| 29452 | { | ||
| 29453 | LPCWSTR pExeFilename; | ||
| 29454 | LPCWSTR pName; | ||
| 29455 | D3D12_VERSION_NUMBER Version; | ||
| 29456 | LPCWSTR pEngineName; | ||
| 29457 | D3D12_VERSION_NUMBER EngineVersion; | ||
| 29458 | } D3D12_APPLICATION_DESC; | ||
| 29459 | |||
| 29460 | typedef void ( __stdcall *D3D12ApplicationDescFunc )( | ||
| 29461 | _In_ const D3D12_APPLICATION_DESC *pApplicationDesc, | ||
| 29462 | _Inout_opt_ void *pContext); | ||
| 29463 | |||
| 29464 | typedef struct D3D12_EXISTING_COLLECTION_BY_KEY_DESC | ||
| 29465 | { | ||
| 29466 | _Field_size_bytes_full_(KeySize) const void *pKey; | ||
| 29467 | UINT KeySize; | ||
| 29468 | UINT NumExports; | ||
| 29469 | _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; | ||
| 29470 | } D3D12_EXISTING_COLLECTION_BY_KEY_DESC; | ||
| 29471 | |||
| 29472 | |||
| 29473 | |||
| 29474 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_c_ifspec; | ||
| 29475 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0063_v0_0_s_ifspec; | ||
| 29476 | |||
| 29477 | #ifndef __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ | ||
| 29478 | #define __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ | ||
| 29479 | |||
| 29480 | /* interface ID3D12StateObjectDatabase */ | ||
| 29481 | /* [unique][local][object][uuid] */ | ||
| 29482 | |||
| 29483 | |||
| 29484 | EXTERN_C const IID IID_ID3D12StateObjectDatabase; | ||
| 29485 | |||
| 29486 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 29487 | |||
| 29488 | MIDL_INTERFACE("c56060b7-b5fc-4135-98e0-a1e9997eace0") | ||
| 29489 | ID3D12StateObjectDatabase : public IUnknown | ||
| 29490 | { | ||
| 29491 | public: | ||
| 29492 | virtual HRESULT STDMETHODCALLTYPE SetApplicationDesc( | ||
| 29493 | _In_ const D3D12_APPLICATION_DESC *pApplicationDesc) = 0; | ||
| 29494 | |||
| 29495 | virtual HRESULT STDMETHODCALLTYPE GetApplicationDesc( | ||
| 29496 | _In_ D3D12ApplicationDescFunc CallbackFunc, | ||
| 29497 | _Inout_opt_ void *pContext) = 0; | ||
| 29498 | |||
| 29499 | virtual HRESULT STDMETHODCALLTYPE StorePipelineStateDesc( | ||
| 29500 | _In_reads_(KeySize) const void *pKey, | ||
| 29501 | UINT KeySize, | ||
| 29502 | UINT Version, | ||
| 29503 | _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc) = 0; | ||
| 29504 | |||
| 29505 | virtual HRESULT STDMETHODCALLTYPE FindPipelineStateDesc( | ||
| 29506 | _In_reads_(KeySize) const void *pKey, | ||
| 29507 | UINT KeySize, | ||
| 29508 | _In_ D3D12PipelineStateFunc CallbackFunc, | ||
| 29509 | _Inout_opt_ void *pContext) = 0; | ||
| 29510 | |||
| 29511 | virtual HRESULT STDMETHODCALLTYPE StoreStateObjectDesc( | ||
| 29512 | _In_reads_(KeySize) const void *pKey, | ||
| 29513 | UINT KeySize, | ||
| 29514 | UINT Version, | ||
| 29515 | _In_ const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 29516 | _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey, | ||
| 29517 | UINT StateObjectToGrowFromKeySize) = 0; | ||
| 29518 | |||
| 29519 | virtual HRESULT STDMETHODCALLTYPE FindStateObjectDesc( | ||
| 29520 | _In_reads_(keySize) const void *pKey, | ||
| 29521 | UINT KeySize, | ||
| 29522 | D3D12StateObjectFunc CallbackFunc, | ||
| 29523 | _Inout_opt_ void *pContext) = 0; | ||
| 29524 | |||
| 29525 | virtual HRESULT STDMETHODCALLTYPE FindObjectVersion( | ||
| 29526 | _In_reads_(keySize) const void *pKey, | ||
| 29527 | UINT KeySize, | ||
| 29528 | _Out_ UINT *pVersion) = 0; | ||
| 29529 | |||
| 29530 | }; | ||
| 29531 | |||
| 29532 | |||
| 29533 | #else /* C style interface */ | ||
| 29534 | |||
| 29535 | typedef struct ID3D12StateObjectDatabaseVtbl | ||
| 29536 | { | ||
| 29537 | BEGIN_INTERFACE | ||
| 29538 | |||
| 29539 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 29540 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 29541 | ID3D12StateObjectDatabase * This, | ||
| 29542 | REFIID riid, | ||
| 29543 | _COM_Outptr_ void **ppvObject); | ||
| 29544 | |||
| 29545 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 29546 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 29547 | ID3D12StateObjectDatabase * This); | ||
| 29548 | |||
| 29549 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 29550 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 29551 | ID3D12StateObjectDatabase * This); | ||
| 29552 | |||
| 29553 | DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, SetApplicationDesc) | ||
| 29554 | HRESULT ( STDMETHODCALLTYPE *SetApplicationDesc )( | ||
| 29555 | ID3D12StateObjectDatabase * This, | ||
| 29556 | _In_ const D3D12_APPLICATION_DESC *pApplicationDesc); | ||
| 29557 | |||
| 29558 | DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, GetApplicationDesc) | ||
| 29559 | HRESULT ( STDMETHODCALLTYPE *GetApplicationDesc )( | ||
| 29560 | ID3D12StateObjectDatabase * This, | ||
| 29561 | _In_ D3D12ApplicationDescFunc CallbackFunc, | ||
| 29562 | _Inout_opt_ void *pContext); | ||
| 29563 | |||
| 29564 | DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StorePipelineStateDesc) | ||
| 29565 | HRESULT ( STDMETHODCALLTYPE *StorePipelineStateDesc )( | ||
| 29566 | ID3D12StateObjectDatabase * This, | ||
| 29567 | _In_reads_(KeySize) const void *pKey, | ||
| 29568 | UINT KeySize, | ||
| 29569 | UINT Version, | ||
| 29570 | _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc); | ||
| 29571 | |||
| 29572 | DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindPipelineStateDesc) | ||
| 29573 | HRESULT ( STDMETHODCALLTYPE *FindPipelineStateDesc )( | ||
| 29574 | ID3D12StateObjectDatabase * This, | ||
| 29575 | _In_reads_(KeySize) const void *pKey, | ||
| 29576 | UINT KeySize, | ||
| 29577 | _In_ D3D12PipelineStateFunc CallbackFunc, | ||
| 29578 | _Inout_opt_ void *pContext); | ||
| 29579 | |||
| 29580 | DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, StoreStateObjectDesc) | ||
| 29581 | HRESULT ( STDMETHODCALLTYPE *StoreStateObjectDesc )( | ||
| 29582 | ID3D12StateObjectDatabase * This, | ||
| 29583 | _In_reads_(KeySize) const void *pKey, | ||
| 29584 | UINT KeySize, | ||
| 29585 | UINT Version, | ||
| 29586 | _In_ const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 29587 | _In_reads_opt_(StateObjectToGrowFromKeySize) const void *pStateObjectToGrowFromKey, | ||
| 29588 | UINT StateObjectToGrowFromKeySize); | ||
| 29589 | |||
| 29590 | DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindStateObjectDesc) | ||
| 29591 | HRESULT ( STDMETHODCALLTYPE *FindStateObjectDesc )( | ||
| 29592 | ID3D12StateObjectDatabase * This, | ||
| 29593 | _In_reads_(keySize) const void *pKey, | ||
| 29594 | UINT KeySize, | ||
| 29595 | D3D12StateObjectFunc CallbackFunc, | ||
| 29596 | _Inout_opt_ void *pContext); | ||
| 29597 | |||
| 29598 | DECLSPEC_XFGVIRT(ID3D12StateObjectDatabase, FindObjectVersion) | ||
| 29599 | HRESULT ( STDMETHODCALLTYPE *FindObjectVersion )( | ||
| 29600 | ID3D12StateObjectDatabase * This, | ||
| 29601 | _In_reads_(keySize) const void *pKey, | ||
| 29602 | UINT KeySize, | ||
| 29603 | _Out_ UINT *pVersion); | ||
| 29604 | |||
| 29605 | END_INTERFACE | ||
| 29606 | } ID3D12StateObjectDatabaseVtbl; | ||
| 29607 | |||
| 29608 | interface ID3D12StateObjectDatabase | ||
| 29609 | { | ||
| 29610 | CONST_VTBL struct ID3D12StateObjectDatabaseVtbl *lpVtbl; | ||
| 29611 | }; | ||
| 29612 | |||
| 29613 | |||
| 29614 | |||
| 29615 | #ifdef COBJMACROS | ||
| 29616 | |||
| 29617 | |||
| 29618 | #define ID3D12StateObjectDatabase_QueryInterface(This,riid,ppvObject) \ | ||
| 29619 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 29620 | |||
| 29621 | #define ID3D12StateObjectDatabase_AddRef(This) \ | ||
| 29622 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 29623 | |||
| 29624 | #define ID3D12StateObjectDatabase_Release(This) \ | ||
| 29625 | ( (This)->lpVtbl -> Release(This) ) | ||
| 29626 | |||
| 29627 | |||
| 29628 | #define ID3D12StateObjectDatabase_SetApplicationDesc(This,pApplicationDesc) \ | ||
| 29629 | ( (This)->lpVtbl -> SetApplicationDesc(This,pApplicationDesc) ) | ||
| 29630 | |||
| 29631 | #define ID3D12StateObjectDatabase_GetApplicationDesc(This,CallbackFunc,pContext) \ | ||
| 29632 | ( (This)->lpVtbl -> GetApplicationDesc(This,CallbackFunc,pContext) ) | ||
| 29633 | |||
| 29634 | #define ID3D12StateObjectDatabase_StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) \ | ||
| 29635 | ( (This)->lpVtbl -> StorePipelineStateDesc(This,pKey,KeySize,Version,pDesc) ) | ||
| 29636 | |||
| 29637 | #define ID3D12StateObjectDatabase_FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) \ | ||
| 29638 | ( (This)->lpVtbl -> FindPipelineStateDesc(This,pKey,KeySize,CallbackFunc,pContext) ) | ||
| 29639 | |||
| 29640 | #define ID3D12StateObjectDatabase_StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) \ | ||
| 29641 | ( (This)->lpVtbl -> StoreStateObjectDesc(This,pKey,KeySize,Version,pDesc,pStateObjectToGrowFromKey,StateObjectToGrowFromKeySize) ) | ||
| 29642 | |||
| 29643 | #define ID3D12StateObjectDatabase_FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) \ | ||
| 29644 | ( (This)->lpVtbl -> FindStateObjectDesc(This,pKey,KeySize,CallbackFunc,pContext) ) | ||
| 29645 | |||
| 29646 | #define ID3D12StateObjectDatabase_FindObjectVersion(This,pKey,KeySize,pVersion) \ | ||
| 29647 | ( (This)->lpVtbl -> FindObjectVersion(This,pKey,KeySize,pVersion) ) | ||
| 29648 | |||
| 29649 | #endif /* COBJMACROS */ | ||
| 29650 | |||
| 29651 | |||
| 29652 | #endif /* C style interface */ | ||
| 29653 | |||
| 29654 | |||
| 29655 | |||
| 29656 | |||
| 29657 | #endif /* __ID3D12StateObjectDatabase_INTERFACE_DEFINED__ */ | ||
| 29658 | |||
| 29659 | |||
| 29660 | #ifndef __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ | ||
| 29661 | #define __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ | ||
| 29662 | |||
| 29663 | /* interface ID3D12VirtualizationGuestDevice */ | ||
| 29664 | /* [unique][local][object][uuid] */ | ||
| 29665 | |||
| 29666 | |||
| 29667 | EXTERN_C const IID IID_ID3D12VirtualizationGuestDevice; | ||
| 29668 | |||
| 29669 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 29670 | |||
| 29671 | MIDL_INTERFACE("bc66d368-7373-4943-8757-fc87dc79e476") | ||
| 29672 | ID3D12VirtualizationGuestDevice : public IUnknown | ||
| 29673 | { | ||
| 29674 | public: | ||
| 29675 | virtual HRESULT STDMETHODCALLTYPE ShareWithHost( | ||
| 29676 | _In_ ID3D12DeviceChild *pObject, | ||
| 29677 | _Out_ HANDLE *pHandle) = 0; | ||
| 29678 | |||
| 29679 | virtual HRESULT STDMETHODCALLTYPE CreateFenceFd( | ||
| 29680 | _In_ ID3D12Fence *pFence, | ||
| 29681 | UINT64 FenceValue, | ||
| 29682 | _Out_ int *pFenceFd) = 0; | ||
| 29683 | |||
| 29684 | }; | ||
| 29685 | |||
| 29686 | |||
| 29687 | #else /* C style interface */ | ||
| 29688 | |||
| 29689 | typedef struct ID3D12VirtualizationGuestDeviceVtbl | ||
| 29690 | { | ||
| 29691 | BEGIN_INTERFACE | ||
| 29692 | |||
| 29693 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 29694 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 29695 | ID3D12VirtualizationGuestDevice * This, | ||
| 29696 | REFIID riid, | ||
| 29697 | _COM_Outptr_ void **ppvObject); | ||
| 29698 | |||
| 29699 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 29700 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 29701 | ID3D12VirtualizationGuestDevice * This); | ||
| 29702 | |||
| 29703 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 29704 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 29705 | ID3D12VirtualizationGuestDevice * This); | ||
| 29706 | |||
| 29707 | DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, ShareWithHost) | ||
| 29708 | HRESULT ( STDMETHODCALLTYPE *ShareWithHost )( | ||
| 29709 | ID3D12VirtualizationGuestDevice * This, | ||
| 29710 | _In_ ID3D12DeviceChild *pObject, | ||
| 29711 | _Out_ HANDLE *pHandle); | ||
| 29712 | |||
| 29713 | DECLSPEC_XFGVIRT(ID3D12VirtualizationGuestDevice, CreateFenceFd) | ||
| 29714 | HRESULT ( STDMETHODCALLTYPE *CreateFenceFd )( | ||
| 29715 | ID3D12VirtualizationGuestDevice * This, | ||
| 29716 | _In_ ID3D12Fence *pFence, | ||
| 29717 | UINT64 FenceValue, | ||
| 29718 | _Out_ int *pFenceFd); | ||
| 29719 | |||
| 29720 | END_INTERFACE | ||
| 29721 | } ID3D12VirtualizationGuestDeviceVtbl; | ||
| 29722 | |||
| 29723 | interface ID3D12VirtualizationGuestDevice | ||
| 29724 | { | ||
| 29725 | CONST_VTBL struct ID3D12VirtualizationGuestDeviceVtbl *lpVtbl; | ||
| 29726 | }; | ||
| 29727 | |||
| 29728 | |||
| 29729 | |||
| 29730 | #ifdef COBJMACROS | ||
| 29731 | |||
| 29732 | |||
| 29733 | #define ID3D12VirtualizationGuestDevice_QueryInterface(This,riid,ppvObject) \ | ||
| 29734 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 29735 | |||
| 29736 | #define ID3D12VirtualizationGuestDevice_AddRef(This) \ | ||
| 29737 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 29738 | |||
| 29739 | #define ID3D12VirtualizationGuestDevice_Release(This) \ | ||
| 29740 | ( (This)->lpVtbl -> Release(This) ) | ||
| 29741 | |||
| 29742 | |||
| 29743 | #define ID3D12VirtualizationGuestDevice_ShareWithHost(This,pObject,pHandle) \ | ||
| 29744 | ( (This)->lpVtbl -> ShareWithHost(This,pObject,pHandle) ) | ||
| 29745 | |||
| 29746 | #define ID3D12VirtualizationGuestDevice_CreateFenceFd(This,pFence,FenceValue,pFenceFd) \ | ||
| 29747 | ( (This)->lpVtbl -> CreateFenceFd(This,pFence,FenceValue,pFenceFd) ) | ||
| 29748 | |||
| 29749 | #endif /* COBJMACROS */ | ||
| 29750 | |||
| 29751 | |||
| 29752 | #endif /* C style interface */ | ||
| 29753 | |||
| 29754 | |||
| 29755 | |||
| 29756 | |||
| 29757 | #endif /* __ID3D12VirtualizationGuestDevice_INTERFACE_DEFINED__ */ | ||
| 29758 | |||
| 29759 | |||
| 29760 | #ifndef __ID3D12Tools_INTERFACE_DEFINED__ | ||
| 29761 | #define __ID3D12Tools_INTERFACE_DEFINED__ | ||
| 29762 | |||
| 29763 | /* interface ID3D12Tools */ | ||
| 29764 | /* [unique][local][object][uuid] */ | ||
| 29765 | |||
| 29766 | |||
| 29767 | EXTERN_C const IID IID_ID3D12Tools; | ||
| 29768 | |||
| 29769 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 29770 | |||
| 29771 | MIDL_INTERFACE("7071e1f0-e84b-4b33-974f-12fa49de65c5") | ||
| 29772 | ID3D12Tools : public IUnknown | ||
| 29773 | { | ||
| 29774 | public: | ||
| 29775 | virtual void STDMETHODCALLTYPE EnableShaderInstrumentation( | ||
| 29776 | BOOL bEnable) = 0; | ||
| 29777 | |||
| 29778 | virtual BOOL STDMETHODCALLTYPE ShaderInstrumentationEnabled( void) = 0; | ||
| 29779 | |||
| 29780 | }; | ||
| 29781 | |||
| 29782 | |||
| 29783 | #else /* C style interface */ | ||
| 29784 | |||
| 29785 | typedef struct ID3D12ToolsVtbl | ||
| 29786 | { | ||
| 29787 | BEGIN_INTERFACE | ||
| 29788 | |||
| 29789 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 29790 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 29791 | ID3D12Tools * This, | ||
| 29792 | REFIID riid, | ||
| 29793 | _COM_Outptr_ void **ppvObject); | ||
| 29794 | |||
| 29795 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 29796 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 29797 | ID3D12Tools * This); | ||
| 29798 | |||
| 29799 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 29800 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 29801 | ID3D12Tools * This); | ||
| 29802 | |||
| 29803 | DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation) | ||
| 29804 | void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )( | ||
| 29805 | ID3D12Tools * This, | ||
| 29806 | BOOL bEnable); | ||
| 29807 | |||
| 29808 | DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled) | ||
| 29809 | BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )( | ||
| 29810 | ID3D12Tools * This); | ||
| 29811 | |||
| 29812 | END_INTERFACE | ||
| 29813 | } ID3D12ToolsVtbl; | ||
| 29814 | |||
| 29815 | interface ID3D12Tools | ||
| 29816 | { | ||
| 29817 | CONST_VTBL struct ID3D12ToolsVtbl *lpVtbl; | ||
| 29818 | }; | ||
| 29819 | |||
| 29820 | |||
| 29821 | |||
| 29822 | #ifdef COBJMACROS | ||
| 29823 | |||
| 29824 | |||
| 29825 | #define ID3D12Tools_QueryInterface(This,riid,ppvObject) \ | ||
| 29826 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 29827 | |||
| 29828 | #define ID3D12Tools_AddRef(This) \ | ||
| 29829 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 29830 | |||
| 29831 | #define ID3D12Tools_Release(This) \ | ||
| 29832 | ( (This)->lpVtbl -> Release(This) ) | ||
| 29833 | |||
| 29834 | |||
| 29835 | #define ID3D12Tools_EnableShaderInstrumentation(This,bEnable) \ | ||
| 29836 | ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) ) | ||
| 29837 | |||
| 29838 | #define ID3D12Tools_ShaderInstrumentationEnabled(This) \ | ||
| 29839 | ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) ) | ||
| 29840 | |||
| 29841 | #endif /* COBJMACROS */ | ||
| 29842 | |||
| 29843 | |||
| 29844 | #endif /* C style interface */ | ||
| 29845 | |||
| 29846 | |||
| 29847 | |||
| 29848 | |||
| 29849 | #endif /* __ID3D12Tools_INTERFACE_DEFINED__ */ | ||
| 29850 | |||
| 29851 | |||
| 29852 | #ifndef __ID3D12Tools1_INTERFACE_DEFINED__ | ||
| 29853 | #define __ID3D12Tools1_INTERFACE_DEFINED__ | ||
| 29854 | |||
| 29855 | /* interface ID3D12Tools1 */ | ||
| 29856 | /* [unique][local][object][uuid] */ | ||
| 29857 | |||
| 29858 | |||
| 29859 | EXTERN_C const IID IID_ID3D12Tools1; | ||
| 29860 | |||
| 29861 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 29862 | |||
| 29863 | MIDL_INTERFACE("e4fbc019-dd3c-43e1-8f32-7f649575f0a0") | ||
| 29864 | ID3D12Tools1 : public ID3D12Tools | ||
| 29865 | { | ||
| 29866 | public: | ||
| 29867 | virtual HRESULT STDMETHODCALLTYPE ReserveGPUVARangesAtCreate( | ||
| 29868 | _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges, | ||
| 29869 | _In_ UINT uiNumRanges) = 0; | ||
| 29870 | |||
| 29871 | virtual void STDMETHODCALLTYPE ClearReservedGPUVARangesList( void) = 0; | ||
| 29872 | |||
| 29873 | }; | ||
| 29874 | |||
| 29875 | |||
| 29876 | #else /* C style interface */ | ||
| 29877 | |||
| 29878 | typedef struct ID3D12Tools1Vtbl | ||
| 29879 | { | ||
| 29880 | BEGIN_INTERFACE | ||
| 29881 | |||
| 29882 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 29883 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 29884 | ID3D12Tools1 * This, | ||
| 29885 | REFIID riid, | ||
| 29886 | _COM_Outptr_ void **ppvObject); | ||
| 29887 | |||
| 29888 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 29889 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 29890 | ID3D12Tools1 * This); | ||
| 29891 | |||
| 29892 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 29893 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 29894 | ID3D12Tools1 * This); | ||
| 29895 | |||
| 29896 | DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation) | ||
| 29897 | void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )( | ||
| 29898 | ID3D12Tools1 * This, | ||
| 29899 | BOOL bEnable); | ||
| 29900 | |||
| 29901 | DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled) | ||
| 29902 | BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )( | ||
| 29903 | ID3D12Tools1 * This); | ||
| 29904 | |||
| 29905 | DECLSPEC_XFGVIRT(ID3D12Tools1, ReserveGPUVARangesAtCreate) | ||
| 29906 | HRESULT ( STDMETHODCALLTYPE *ReserveGPUVARangesAtCreate )( | ||
| 29907 | ID3D12Tools1 * This, | ||
| 29908 | _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges, | ||
| 29909 | _In_ UINT uiNumRanges); | ||
| 29910 | |||
| 29911 | DECLSPEC_XFGVIRT(ID3D12Tools1, ClearReservedGPUVARangesList) | ||
| 29912 | void ( STDMETHODCALLTYPE *ClearReservedGPUVARangesList )( | ||
| 29913 | ID3D12Tools1 * This); | ||
| 29914 | |||
| 29915 | END_INTERFACE | ||
| 29916 | } ID3D12Tools1Vtbl; | ||
| 29917 | |||
| 29918 | interface ID3D12Tools1 | ||
| 29919 | { | ||
| 29920 | CONST_VTBL struct ID3D12Tools1Vtbl *lpVtbl; | ||
| 29921 | }; | ||
| 29922 | |||
| 29923 | |||
| 29924 | |||
| 29925 | #ifdef COBJMACROS | ||
| 29926 | |||
| 29927 | |||
| 29928 | #define ID3D12Tools1_QueryInterface(This,riid,ppvObject) \ | ||
| 29929 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 29930 | |||
| 29931 | #define ID3D12Tools1_AddRef(This) \ | ||
| 29932 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 29933 | |||
| 29934 | #define ID3D12Tools1_Release(This) \ | ||
| 29935 | ( (This)->lpVtbl -> Release(This) ) | ||
| 29936 | |||
| 29937 | |||
| 29938 | #define ID3D12Tools1_EnableShaderInstrumentation(This,bEnable) \ | ||
| 29939 | ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) ) | ||
| 29940 | |||
| 29941 | #define ID3D12Tools1_ShaderInstrumentationEnabled(This) \ | ||
| 29942 | ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) ) | ||
| 29943 | |||
| 29944 | |||
| 29945 | #define ID3D12Tools1_ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) \ | ||
| 29946 | ( (This)->lpVtbl -> ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) ) | ||
| 29947 | |||
| 29948 | #define ID3D12Tools1_ClearReservedGPUVARangesList(This) \ | ||
| 29949 | ( (This)->lpVtbl -> ClearReservedGPUVARangesList(This) ) | ||
| 29950 | |||
| 29951 | #endif /* COBJMACROS */ | ||
| 29952 | |||
| 29953 | |||
| 29954 | #endif /* C style interface */ | ||
| 29955 | |||
| 29956 | |||
| 29957 | |||
| 29958 | |||
| 29959 | #endif /* __ID3D12Tools1_INTERFACE_DEFINED__ */ | ||
| 29960 | |||
| 29961 | |||
| 29962 | #ifndef __ID3D12Tools2_INTERFACE_DEFINED__ | ||
| 29963 | #define __ID3D12Tools2_INTERFACE_DEFINED__ | ||
| 29964 | |||
| 29965 | /* interface ID3D12Tools2 */ | ||
| 29966 | /* [unique][local][object][uuid] */ | ||
| 29967 | |||
| 29968 | |||
| 29969 | EXTERN_C const IID IID_ID3D12Tools2; | ||
| 29970 | |||
| 29971 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 29972 | |||
| 29973 | MIDL_INTERFACE("01d393c5-c9b0-42a1-958c-c26b02d4d097") | ||
| 29974 | ID3D12Tools2 : public ID3D12Tools1 | ||
| 29975 | { | ||
| 29976 | public: | ||
| 29977 | virtual HRESULT STDMETHODCALLTYPE SetApplicationSpecificDriverState( | ||
| 29978 | _In_ IUnknown *pAdapter, | ||
| 29979 | _In_opt_ ID3DBlob *pBlob) = 0; | ||
| 29980 | |||
| 29981 | }; | ||
| 29982 | |||
| 29983 | |||
| 29984 | #else /* C style interface */ | ||
| 29985 | |||
| 29986 | typedef struct ID3D12Tools2Vtbl | ||
| 29987 | { | ||
| 29988 | BEGIN_INTERFACE | ||
| 29989 | |||
| 29990 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 29991 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 29992 | ID3D12Tools2 * This, | ||
| 29993 | REFIID riid, | ||
| 29994 | _COM_Outptr_ void **ppvObject); | ||
| 29995 | |||
| 29996 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 29997 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 29998 | ID3D12Tools2 * This); | ||
| 29999 | |||
| 30000 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 30001 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 30002 | ID3D12Tools2 * This); | ||
| 30003 | |||
| 30004 | DECLSPEC_XFGVIRT(ID3D12Tools, EnableShaderInstrumentation) | ||
| 30005 | void ( STDMETHODCALLTYPE *EnableShaderInstrumentation )( | ||
| 30006 | ID3D12Tools2 * This, | ||
| 30007 | BOOL bEnable); | ||
| 30008 | |||
| 30009 | DECLSPEC_XFGVIRT(ID3D12Tools, ShaderInstrumentationEnabled) | ||
| 30010 | BOOL ( STDMETHODCALLTYPE *ShaderInstrumentationEnabled )( | ||
| 30011 | ID3D12Tools2 * This); | ||
| 30012 | |||
| 30013 | DECLSPEC_XFGVIRT(ID3D12Tools1, ReserveGPUVARangesAtCreate) | ||
| 30014 | HRESULT ( STDMETHODCALLTYPE *ReserveGPUVARangesAtCreate )( | ||
| 30015 | ID3D12Tools2 * This, | ||
| 30016 | _In_reads_(uiNumRanges) D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pRanges, | ||
| 30017 | _In_ UINT uiNumRanges); | ||
| 30018 | |||
| 30019 | DECLSPEC_XFGVIRT(ID3D12Tools1, ClearReservedGPUVARangesList) | ||
| 30020 | void ( STDMETHODCALLTYPE *ClearReservedGPUVARangesList )( | ||
| 30021 | ID3D12Tools2 * This); | ||
| 30022 | |||
| 30023 | DECLSPEC_XFGVIRT(ID3D12Tools2, SetApplicationSpecificDriverState) | ||
| 30024 | HRESULT ( STDMETHODCALLTYPE *SetApplicationSpecificDriverState )( | ||
| 30025 | ID3D12Tools2 * This, | ||
| 30026 | _In_ IUnknown *pAdapter, | ||
| 30027 | _In_opt_ ID3DBlob *pBlob); | ||
| 30028 | |||
| 30029 | END_INTERFACE | ||
| 30030 | } ID3D12Tools2Vtbl; | ||
| 30031 | |||
| 30032 | interface ID3D12Tools2 | ||
| 30033 | { | ||
| 30034 | CONST_VTBL struct ID3D12Tools2Vtbl *lpVtbl; | ||
| 30035 | }; | ||
| 30036 | |||
| 30037 | |||
| 30038 | |||
| 30039 | #ifdef COBJMACROS | ||
| 30040 | |||
| 30041 | |||
| 30042 | #define ID3D12Tools2_QueryInterface(This,riid,ppvObject) \ | ||
| 30043 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 30044 | |||
| 30045 | #define ID3D12Tools2_AddRef(This) \ | ||
| 30046 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 30047 | |||
| 30048 | #define ID3D12Tools2_Release(This) \ | ||
| 30049 | ( (This)->lpVtbl -> Release(This) ) | ||
| 30050 | |||
| 30051 | |||
| 30052 | #define ID3D12Tools2_EnableShaderInstrumentation(This,bEnable) \ | ||
| 30053 | ( (This)->lpVtbl -> EnableShaderInstrumentation(This,bEnable) ) | ||
| 30054 | |||
| 30055 | #define ID3D12Tools2_ShaderInstrumentationEnabled(This) \ | ||
| 30056 | ( (This)->lpVtbl -> ShaderInstrumentationEnabled(This) ) | ||
| 30057 | |||
| 30058 | |||
| 30059 | #define ID3D12Tools2_ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) \ | ||
| 30060 | ( (This)->lpVtbl -> ReserveGPUVARangesAtCreate(This,pRanges,uiNumRanges) ) | ||
| 30061 | |||
| 30062 | #define ID3D12Tools2_ClearReservedGPUVARangesList(This) \ | ||
| 30063 | ( (This)->lpVtbl -> ClearReservedGPUVARangesList(This) ) | ||
| 30064 | |||
| 30065 | |||
| 30066 | #define ID3D12Tools2_SetApplicationSpecificDriverState(This,pAdapter,pBlob) \ | ||
| 30067 | ( (This)->lpVtbl -> SetApplicationSpecificDriverState(This,pAdapter,pBlob) ) | ||
| 30068 | |||
| 30069 | #endif /* COBJMACROS */ | ||
| 30070 | |||
| 30071 | |||
| 30072 | #endif /* C style interface */ | ||
| 30073 | |||
| 30074 | |||
| 30075 | |||
| 30076 | |||
| 30077 | #endif /* __ID3D12Tools2_INTERFACE_DEFINED__ */ | ||
| 30078 | |||
| 30079 | |||
| 30080 | #ifndef __ID3D12PageableTools_INTERFACE_DEFINED__ | ||
| 30081 | #define __ID3D12PageableTools_INTERFACE_DEFINED__ | ||
| 30082 | |||
| 30083 | /* interface ID3D12PageableTools */ | ||
| 30084 | /* [unique][local][object][uuid] */ | ||
| 30085 | |||
| 30086 | |||
| 30087 | EXTERN_C const IID IID_ID3D12PageableTools; | ||
| 30088 | |||
| 30089 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 30090 | |||
| 30091 | MIDL_INTERFACE("8f1359db-d8d1-42f9-b5cf-79f4cbad0d3d") | ||
| 30092 | ID3D12PageableTools : public IUnknown | ||
| 30093 | { | ||
| 30094 | public: | ||
| 30095 | virtual HRESULT STDMETHODCALLTYPE GetAllocation( | ||
| 30096 | _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation) = 0; | ||
| 30097 | |||
| 30098 | }; | ||
| 30099 | |||
| 30100 | |||
| 30101 | #else /* C style interface */ | ||
| 30102 | |||
| 30103 | typedef struct ID3D12PageableToolsVtbl | ||
| 30104 | { | ||
| 30105 | BEGIN_INTERFACE | ||
| 30106 | |||
| 30107 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 30108 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 30109 | ID3D12PageableTools * This, | ||
| 30110 | REFIID riid, | ||
| 30111 | _COM_Outptr_ void **ppvObject); | ||
| 30112 | |||
| 30113 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 30114 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 30115 | ID3D12PageableTools * This); | ||
| 30116 | |||
| 30117 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 30118 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 30119 | ID3D12PageableTools * This); | ||
| 30120 | |||
| 30121 | DECLSPEC_XFGVIRT(ID3D12PageableTools, GetAllocation) | ||
| 30122 | HRESULT ( STDMETHODCALLTYPE *GetAllocation )( | ||
| 30123 | ID3D12PageableTools * This, | ||
| 30124 | _Inout_ D3D12_GPU_VIRTUAL_ADDRESS_RANGE *pAllocation); | ||
| 30125 | |||
| 30126 | END_INTERFACE | ||
| 30127 | } ID3D12PageableToolsVtbl; | ||
| 30128 | |||
| 30129 | interface ID3D12PageableTools | ||
| 30130 | { | ||
| 30131 | CONST_VTBL struct ID3D12PageableToolsVtbl *lpVtbl; | ||
| 30132 | }; | ||
| 30133 | |||
| 30134 | |||
| 30135 | |||
| 30136 | #ifdef COBJMACROS | ||
| 30137 | |||
| 30138 | |||
| 30139 | #define ID3D12PageableTools_QueryInterface(This,riid,ppvObject) \ | ||
| 30140 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 30141 | |||
| 30142 | #define ID3D12PageableTools_AddRef(This) \ | ||
| 30143 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 30144 | |||
| 30145 | #define ID3D12PageableTools_Release(This) \ | ||
| 30146 | ( (This)->lpVtbl -> Release(This) ) | ||
| 30147 | |||
| 30148 | |||
| 30149 | #define ID3D12PageableTools_GetAllocation(This,pAllocation) \ | ||
| 30150 | ( (This)->lpVtbl -> GetAllocation(This,pAllocation) ) | ||
| 30151 | |||
| 30152 | #endif /* COBJMACROS */ | ||
| 30153 | |||
| 30154 | |||
| 30155 | #endif /* C style interface */ | ||
| 30156 | |||
| 30157 | |||
| 30158 | |||
| 30159 | |||
| 30160 | #endif /* __ID3D12PageableTools_INTERFACE_DEFINED__ */ | ||
| 30161 | |||
| 30162 | |||
| 30163 | #ifndef __ID3D12DeviceTools_INTERFACE_DEFINED__ | ||
| 30164 | #define __ID3D12DeviceTools_INTERFACE_DEFINED__ | ||
| 30165 | |||
| 30166 | /* interface ID3D12DeviceTools */ | ||
| 30167 | /* [unique][local][object][uuid] */ | ||
| 30168 | |||
| 30169 | |||
| 30170 | EXTERN_C const IID IID_ID3D12DeviceTools; | ||
| 30171 | |||
| 30172 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 30173 | |||
| 30174 | MIDL_INTERFACE("2ea68e9c-19c3-4e47-a109-6cdadff0aca9") | ||
| 30175 | ID3D12DeviceTools : public IUnknown | ||
| 30176 | { | ||
| 30177 | public: | ||
| 30178 | virtual void STDMETHODCALLTYPE SetNextAllocationAddress( | ||
| 30179 | _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress) = 0; | ||
| 30180 | |||
| 30181 | }; | ||
| 30182 | |||
| 30183 | |||
| 30184 | #else /* C style interface */ | ||
| 30185 | |||
| 30186 | typedef struct ID3D12DeviceToolsVtbl | ||
| 30187 | { | ||
| 30188 | BEGIN_INTERFACE | ||
| 30189 | |||
| 30190 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 30191 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 30192 | ID3D12DeviceTools * This, | ||
| 30193 | REFIID riid, | ||
| 30194 | _COM_Outptr_ void **ppvObject); | ||
| 30195 | |||
| 30196 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 30197 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 30198 | ID3D12DeviceTools * This); | ||
| 30199 | |||
| 30200 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 30201 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 30202 | ID3D12DeviceTools * This); | ||
| 30203 | |||
| 30204 | DECLSPEC_XFGVIRT(ID3D12DeviceTools, SetNextAllocationAddress) | ||
| 30205 | void ( STDMETHODCALLTYPE *SetNextAllocationAddress )( | ||
| 30206 | ID3D12DeviceTools * This, | ||
| 30207 | _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress); | ||
| 30208 | |||
| 30209 | END_INTERFACE | ||
| 30210 | } ID3D12DeviceToolsVtbl; | ||
| 30211 | |||
| 30212 | interface ID3D12DeviceTools | ||
| 30213 | { | ||
| 30214 | CONST_VTBL struct ID3D12DeviceToolsVtbl *lpVtbl; | ||
| 30215 | }; | ||
| 30216 | |||
| 30217 | |||
| 30218 | |||
| 30219 | #ifdef COBJMACROS | ||
| 30220 | |||
| 30221 | |||
| 30222 | #define ID3D12DeviceTools_QueryInterface(This,riid,ppvObject) \ | ||
| 30223 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 30224 | |||
| 30225 | #define ID3D12DeviceTools_AddRef(This) \ | ||
| 30226 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 30227 | |||
| 30228 | #define ID3D12DeviceTools_Release(This) \ | ||
| 30229 | ( (This)->lpVtbl -> Release(This) ) | ||
| 30230 | |||
| 30231 | |||
| 30232 | #define ID3D12DeviceTools_SetNextAllocationAddress(This,nextAllocationVirtualAddress) \ | ||
| 30233 | ( (This)->lpVtbl -> SetNextAllocationAddress(This,nextAllocationVirtualAddress) ) | ||
| 30234 | |||
| 30235 | #endif /* COBJMACROS */ | ||
| 30236 | |||
| 30237 | |||
| 30238 | #endif /* C style interface */ | ||
| 30239 | |||
| 30240 | |||
| 30241 | |||
| 30242 | |||
| 30243 | #endif /* __ID3D12DeviceTools_INTERFACE_DEFINED__ */ | ||
| 30244 | |||
| 30245 | |||
| 30246 | /* interface __MIDL_itf_d3d12_0000_0070 */ | ||
| 30247 | /* [local] */ | ||
| 30248 | |||
| 30249 | typedef | ||
| 30250 | enum D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS | ||
| 30251 | { | ||
| 30252 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_UNKNOWN = 1, | ||
| 30253 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_USED = 2, | ||
| 30254 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_IGNORED = 3, | ||
| 30255 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_NOT_SPECIFIED = 4 | ||
| 30256 | } D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS; | ||
| 30257 | |||
| 30258 | |||
| 30259 | |||
| 30260 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_c_ifspec; | ||
| 30261 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0070_v0_0_s_ifspec; | ||
| 30262 | |||
| 30263 | #ifndef __ID3D12DeviceTools1_INTERFACE_DEFINED__ | ||
| 30264 | #define __ID3D12DeviceTools1_INTERFACE_DEFINED__ | ||
| 30265 | |||
| 30266 | /* interface ID3D12DeviceTools1 */ | ||
| 30267 | /* [unique][local][object][uuid] */ | ||
| 30268 | |||
| 30269 | |||
| 30270 | EXTERN_C const IID IID_ID3D12DeviceTools1; | ||
| 30271 | |||
| 30272 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 30273 | |||
| 30274 | MIDL_INTERFACE("e30e9fc7-e641-4d6e-8a81-9dd9206ec47a") | ||
| 30275 | ID3D12DeviceTools1 : public ID3D12DeviceTools | ||
| 30276 | { | ||
| 30277 | public: | ||
| 30278 | virtual HRESULT STDMETHODCALLTYPE GetApplicationSpecificDriverState( | ||
| 30279 | _COM_Outptr_ ID3DBlob **ppBlob) = 0; | ||
| 30280 | |||
| 30281 | virtual D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS STDMETHODCALLTYPE GetApplicationSpecificDriverBlobStatus( void) = 0; | ||
| 30282 | |||
| 30283 | }; | ||
| 30284 | |||
| 30285 | |||
| 30286 | #else /* C style interface */ | ||
| 30287 | |||
| 30288 | typedef struct ID3D12DeviceTools1Vtbl | ||
| 30289 | { | ||
| 30290 | BEGIN_INTERFACE | ||
| 30291 | |||
| 30292 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 30293 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 30294 | ID3D12DeviceTools1 * This, | ||
| 30295 | REFIID riid, | ||
| 30296 | _COM_Outptr_ void **ppvObject); | ||
| 30297 | |||
| 30298 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 30299 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 30300 | ID3D12DeviceTools1 * This); | ||
| 30301 | |||
| 30302 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 30303 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 30304 | ID3D12DeviceTools1 * This); | ||
| 30305 | |||
| 30306 | DECLSPEC_XFGVIRT(ID3D12DeviceTools, SetNextAllocationAddress) | ||
| 30307 | void ( STDMETHODCALLTYPE *SetNextAllocationAddress )( | ||
| 30308 | ID3D12DeviceTools1 * This, | ||
| 30309 | _In_ D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress); | ||
| 30310 | |||
| 30311 | DECLSPEC_XFGVIRT(ID3D12DeviceTools1, GetApplicationSpecificDriverState) | ||
| 30312 | HRESULT ( STDMETHODCALLTYPE *GetApplicationSpecificDriverState )( | ||
| 30313 | ID3D12DeviceTools1 * This, | ||
| 30314 | _COM_Outptr_ ID3DBlob **ppBlob); | ||
| 30315 | |||
| 30316 | DECLSPEC_XFGVIRT(ID3D12DeviceTools1, GetApplicationSpecificDriverBlobStatus) | ||
| 30317 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS ( STDMETHODCALLTYPE *GetApplicationSpecificDriverBlobStatus )( | ||
| 30318 | ID3D12DeviceTools1 * This); | ||
| 30319 | |||
| 30320 | END_INTERFACE | ||
| 30321 | } ID3D12DeviceTools1Vtbl; | ||
| 30322 | |||
| 30323 | interface ID3D12DeviceTools1 | ||
| 30324 | { | ||
| 30325 | CONST_VTBL struct ID3D12DeviceTools1Vtbl *lpVtbl; | ||
| 30326 | }; | ||
| 30327 | |||
| 30328 | |||
| 30329 | |||
| 30330 | #ifdef COBJMACROS | ||
| 30331 | |||
| 30332 | |||
| 30333 | #define ID3D12DeviceTools1_QueryInterface(This,riid,ppvObject) \ | ||
| 30334 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 30335 | |||
| 30336 | #define ID3D12DeviceTools1_AddRef(This) \ | ||
| 30337 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 30338 | |||
| 30339 | #define ID3D12DeviceTools1_Release(This) \ | ||
| 30340 | ( (This)->lpVtbl -> Release(This) ) | ||
| 30341 | |||
| 30342 | |||
| 30343 | #define ID3D12DeviceTools1_SetNextAllocationAddress(This,nextAllocationVirtualAddress) \ | ||
| 30344 | ( (This)->lpVtbl -> SetNextAllocationAddress(This,nextAllocationVirtualAddress) ) | ||
| 30345 | |||
| 30346 | |||
| 30347 | #define ID3D12DeviceTools1_GetApplicationSpecificDriverState(This,ppBlob) \ | ||
| 30348 | ( (This)->lpVtbl -> GetApplicationSpecificDriverState(This,ppBlob) ) | ||
| 30349 | |||
| 30350 | #define ID3D12DeviceTools1_GetApplicationSpecificDriverBlobStatus(This) \ | ||
| 30351 | ( (This)->lpVtbl -> GetApplicationSpecificDriverBlobStatus(This) ) | ||
| 30352 | |||
| 30353 | #endif /* COBJMACROS */ | ||
| 30354 | |||
| 30355 | |||
| 30356 | #endif /* C style interface */ | ||
| 30357 | |||
| 30358 | |||
| 30359 | |||
| 30360 | |||
| 30361 | #endif /* __ID3D12DeviceTools1_INTERFACE_DEFINED__ */ | ||
| 30362 | |||
| 30363 | |||
| 30364 | /* interface __MIDL_itf_d3d12_0000_0071 */ | ||
| 30365 | /* [local] */ | ||
| 30366 | |||
| 30367 | typedef struct D3D12_SUBRESOURCE_DATA | ||
| 30368 | { | ||
| 30369 | const void *pData; | ||
| 30370 | LONG_PTR RowPitch; | ||
| 30371 | LONG_PTR SlicePitch; | ||
| 30372 | } D3D12_SUBRESOURCE_DATA; | ||
| 30373 | |||
| 30374 | typedef struct D3D12_MEMCPY_DEST | ||
| 30375 | { | ||
| 30376 | void *pData; | ||
| 30377 | SIZE_T RowPitch; | ||
| 30378 | SIZE_T SlicePitch; | ||
| 30379 | } D3D12_MEMCPY_DEST; | ||
| 30380 | |||
| 30381 | #if !defined( D3D12_IGNORE_SDK_LAYERS ) | ||
| 30382 | #include "d3d12sdklayers.h" | ||
| 30383 | #endif | ||
| 30384 | |||
| 30385 | /////////////////////////////////////////////////////////////////////////// | ||
| 30386 | // D3D12CreateDevice | ||
| 30387 | // ------------------ | ||
| 30388 | // | ||
| 30389 | // pAdapter | ||
| 30390 | // If NULL, D3D12CreateDevice will choose the primary adapter. | ||
| 30391 | // If non-NULL, D3D12CreateDevice will use the provided adapter. | ||
| 30392 | // MinimumFeatureLevel | ||
| 30393 | // The minimum feature level required for successful device creation. | ||
| 30394 | // riid | ||
| 30395 | // The interface IID of the device to be returned. Expected: ID3D12Device. | ||
| 30396 | // ppDevice | ||
| 30397 | // Pointer to returned interface. May be NULL. | ||
| 30398 | // | ||
| 30399 | // Return Values | ||
| 30400 | // Any of those documented for | ||
| 30401 | // CreateDXGIFactory1 | ||
| 30402 | // IDXGIFactory::EnumAdapters | ||
| 30403 | // D3D12CreateDevice | ||
| 30404 | // | ||
| 30405 | /////////////////////////////////////////////////////////////////////////// | ||
| 30406 | typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*, | ||
| 30407 | D3D_FEATURE_LEVEL, | ||
| 30408 | _In_ REFIID, _COM_Outptr_opt_ void** ); | ||
| 30409 | |||
| 30410 | HRESULT WINAPI D3D12CreateDevice( | ||
| 30411 | _In_opt_ IUnknown* pAdapter, | ||
| 30412 | D3D_FEATURE_LEVEL MinimumFeatureLevel, | ||
| 30413 | _In_ REFIID riid, // Expected: ID3D12Device | ||
| 30414 | _COM_Outptr_opt_ void** ppDevice ); | ||
| 30415 | |||
| 30416 | |||
| 30417 | typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** ); | ||
| 30418 | |||
| 30419 | HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug ); | ||
| 30420 | |||
| 30421 | // -------------------------------------------------------------------------------------------------------------------------------- | ||
| 30422 | // D3D12EnableExperimentalFeatures | ||
| 30423 | // | ||
| 30424 | // Pass in a list of feature GUIDs to be enabled together. | ||
| 30425 | // | ||
| 30426 | // If a particular feature requires some configuration information on enablement, it will have | ||
| 30427 | // a configuration struct that can be passed alongside the GUID. | ||
| 30428 | // | ||
| 30429 | // Some features might use an interface IID as the GUID. For these, once the feature is enabled via | ||
| 30430 | // D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface | ||
| 30431 | // for manipulating the feature. This allows for control that might not cleanly be expressed by just | ||
| 30432 | // the configuration struct that D3D12EnableExperimentalFeatures provides. | ||
| 30433 | // | ||
| 30434 | // If this method is called and a change to existing feature enablement is made, | ||
| 30435 | // all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one | ||
| 30436 | // singleton device for a process. Removing the devices when configuration changes prevents | ||
| 30437 | // mismatched expectations of how a device is supposed to work after it has been created from the app's point of view. | ||
| 30438 | // | ||
| 30439 | // The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on. | ||
| 30440 | // The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed | ||
| 30441 | // in are known to be incompatible with each other, or other errors. | ||
| 30442 | // Returns S_OK otherwise. | ||
| 30443 | // | ||
| 30444 | // -------------------------------------------------------------------------------------------------------------------------------- | ||
| 30445 | HRESULT WINAPI D3D12EnableExperimentalFeatures( | ||
| 30446 | UINT NumFeatures, | ||
| 30447 | _In_count_(NumFeatures) const IID* pIIDs, | ||
| 30448 | _In_opt_count_(NumFeatures) void* pConfigurationStructs, | ||
| 30449 | _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes); | ||
| 30450 | |||
| 30451 | // -------------------------------------------------------------------------------------------------------------------------------- | ||
| 30452 | // Experimental Feature: D3D12ExperimentalShaderModels | ||
| 30453 | // | ||
| 30454 | // Use with D3D12EnableExperimentalFeatures to enable experimental shader model support, | ||
| 30455 | // meaning shader models that haven't been finalized for use in retail. | ||
| 30456 | // | ||
| 30457 | // Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array. | ||
| 30458 | // | ||
| 30459 | // -------------------------------------------------------------------------------------------------------------------------------- | ||
| 30460 | static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */ | ||
| 30461 | 0x76f5573e, | ||
| 30462 | 0xf13a, | ||
| 30463 | 0x40f5, | ||
| 30464 | { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f } | ||
| 30465 | }; | ||
| 30466 | // -------------------------------------------------------------------------------------------------------------------------------- | ||
| 30467 | // Experimental Feature: D3D12TiledResourceTier4 | ||
| 30468 | // | ||
| 30469 | // Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support, | ||
| 30470 | // meaning texture tile data-inheritance is allowed. | ||
| 30471 | // | ||
| 30472 | // Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array. | ||
| 30473 | // | ||
| 30474 | // -------------------------------------------------------------------------------------------------------------------------------- | ||
| 30475 | static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */ | ||
| 30476 | 0xc9c4725f, | ||
| 30477 | 0xa81a, | ||
| 30478 | 0x4f56, | ||
| 30479 | { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb } | ||
| 30480 | }; | ||
| 30481 | // -------------------------------------------------------------------------------------------------------------------------------- | ||
| 30482 | // Experimental Feature: D3D12GPUUploadHeapsOnUnsupportedOS | ||
| 30483 | // | ||
| 30484 | // Use with D3D12EnableExperimentalFeatures to enable GPU upload heaps support on an unsupported OS, | ||
| 30485 | // driver support is still required for this feature. | ||
| 30486 | // | ||
| 30487 | // Enabling D3D12GPUUploadHeapsOnUnsupportedOS needs no configuration struct, pass NULL in the pConfigurationStructs array. | ||
| 30488 | // | ||
| 30489 | // -------------------------------------------------------------------------------------------------------------------------------- | ||
| 30490 | static const UUID D3D12GPUUploadHeapsOnUnsupportedOS = { /* 45dc51f3-767f-4588-b206-0baa2b16fbae */ | ||
| 30491 | 0x45dc51f3, | ||
| 30492 | 0x767f, | ||
| 30493 | 0x4588, | ||
| 30494 | { 0xb2, 0x06, 0x0b, 0xaa, 0x2b, 0x16, 0xfb, 0xae } | ||
| 30495 | }; | ||
| 30496 | // -------------------------------------------------------------------------------------------------------------------------------- | ||
| 30497 | // D3D12GetInterface | ||
| 30498 | // | ||
| 30499 | // Retrieve Global D3D12 Interface. | ||
| 30500 | // | ||
| 30501 | |||
| 30502 | DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f); | ||
| 30503 | DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8); | ||
| 30504 | DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2); | ||
| 30505 | DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce); | ||
| 30506 | DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55); | ||
| 30507 | DEFINE_GUID(CLSID_D3D12DSRDeviceFactory, 0xbb6dd27e, 0x94a9, 0x41a6, 0x9f, 0x1b, 0x13, 0x37, 0x72, 0x17, 0x24, 0x28); | ||
| 30508 | DEFINE_GUID(CLSID_D3D12StateObjectFactory, 0x54e1c9f3, 0x1303, 0x4112, 0xbf, 0x8e, 0x7b, 0xf2, 0xbb, 0x60, 0x6a, 0x73); | ||
| 30509 | |||
| 30510 | typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** ); | ||
| 30511 | |||
| 30512 | HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug ); | ||
| 30513 | |||
| 30514 | |||
| 30515 | |||
| 30516 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_c_ifspec; | ||
| 30517 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0071_v0_0_s_ifspec; | ||
| 30518 | |||
| 30519 | #ifndef __ID3D12SDKConfiguration_INTERFACE_DEFINED__ | ||
| 30520 | #define __ID3D12SDKConfiguration_INTERFACE_DEFINED__ | ||
| 30521 | |||
| 30522 | /* interface ID3D12SDKConfiguration */ | ||
| 30523 | /* [unique][local][object][uuid] */ | ||
| 30524 | |||
| 30525 | |||
| 30526 | EXTERN_C const IID IID_ID3D12SDKConfiguration; | ||
| 30527 | |||
| 30528 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 30529 | |||
| 30530 | MIDL_INTERFACE("e9eb5314-33aa-42b2-a718-d77f58b1f1c7") | ||
| 30531 | ID3D12SDKConfiguration : public IUnknown | ||
| 30532 | { | ||
| 30533 | public: | ||
| 30534 | virtual HRESULT STDMETHODCALLTYPE SetSDKVersion( | ||
| 30535 | UINT SDKVersion, | ||
| 30536 | _In_z_ LPCSTR SDKPath) = 0; | ||
| 30537 | |||
| 30538 | }; | ||
| 30539 | |||
| 30540 | |||
| 30541 | #else /* C style interface */ | ||
| 30542 | |||
| 30543 | typedef struct ID3D12SDKConfigurationVtbl | ||
| 30544 | { | ||
| 30545 | BEGIN_INTERFACE | ||
| 30546 | |||
| 30547 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 30548 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 30549 | ID3D12SDKConfiguration * This, | ||
| 30550 | REFIID riid, | ||
| 30551 | _COM_Outptr_ void **ppvObject); | ||
| 30552 | |||
| 30553 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 30554 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 30555 | ID3D12SDKConfiguration * This); | ||
| 30556 | |||
| 30557 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 30558 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 30559 | ID3D12SDKConfiguration * This); | ||
| 30560 | |||
| 30561 | DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion) | ||
| 30562 | HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )( | ||
| 30563 | ID3D12SDKConfiguration * This, | ||
| 30564 | UINT SDKVersion, | ||
| 30565 | _In_z_ LPCSTR SDKPath); | ||
| 30566 | |||
| 30567 | END_INTERFACE | ||
| 30568 | } ID3D12SDKConfigurationVtbl; | ||
| 30569 | |||
| 30570 | interface ID3D12SDKConfiguration | ||
| 30571 | { | ||
| 30572 | CONST_VTBL struct ID3D12SDKConfigurationVtbl *lpVtbl; | ||
| 30573 | }; | ||
| 30574 | |||
| 30575 | |||
| 30576 | |||
| 30577 | #ifdef COBJMACROS | ||
| 30578 | |||
| 30579 | |||
| 30580 | #define ID3D12SDKConfiguration_QueryInterface(This,riid,ppvObject) \ | ||
| 30581 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 30582 | |||
| 30583 | #define ID3D12SDKConfiguration_AddRef(This) \ | ||
| 30584 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 30585 | |||
| 30586 | #define ID3D12SDKConfiguration_Release(This) \ | ||
| 30587 | ( (This)->lpVtbl -> Release(This) ) | ||
| 30588 | |||
| 30589 | |||
| 30590 | #define ID3D12SDKConfiguration_SetSDKVersion(This,SDKVersion,SDKPath) \ | ||
| 30591 | ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) ) | ||
| 30592 | |||
| 30593 | #endif /* COBJMACROS */ | ||
| 30594 | |||
| 30595 | |||
| 30596 | #endif /* C style interface */ | ||
| 30597 | |||
| 30598 | |||
| 30599 | |||
| 30600 | |||
| 30601 | #endif /* __ID3D12SDKConfiguration_INTERFACE_DEFINED__ */ | ||
| 30602 | |||
| 30603 | |||
| 30604 | #ifndef __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ | ||
| 30605 | #define __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ | ||
| 30606 | |||
| 30607 | /* interface ID3D12SDKConfiguration1 */ | ||
| 30608 | /* [unique][local][object][uuid] */ | ||
| 30609 | |||
| 30610 | |||
| 30611 | EXTERN_C const IID IID_ID3D12SDKConfiguration1; | ||
| 30612 | |||
| 30613 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 30614 | |||
| 30615 | MIDL_INTERFACE("8aaf9303-ad25-48b9-9a57-d9c37e009d9f") | ||
| 30616 | ID3D12SDKConfiguration1 : public ID3D12SDKConfiguration | ||
| 30617 | { | ||
| 30618 | public: | ||
| 30619 | virtual HRESULT STDMETHODCALLTYPE CreateDeviceFactory( | ||
| 30620 | UINT SDKVersion, | ||
| 30621 | _In_ LPCSTR SDKPath, | ||
| 30622 | REFIID riid, | ||
| 30623 | _COM_Outptr_ void **ppvFactory) = 0; | ||
| 30624 | |||
| 30625 | virtual void STDMETHODCALLTYPE FreeUnusedSDKs( void) = 0; | ||
| 30626 | |||
| 30627 | }; | ||
| 30628 | |||
| 30629 | |||
| 30630 | #else /* C style interface */ | ||
| 30631 | |||
| 30632 | typedef struct ID3D12SDKConfiguration1Vtbl | ||
| 30633 | { | ||
| 30634 | BEGIN_INTERFACE | ||
| 30635 | |||
| 30636 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 30637 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 30638 | ID3D12SDKConfiguration1 * This, | ||
| 30639 | REFIID riid, | ||
| 30640 | _COM_Outptr_ void **ppvObject); | ||
| 30641 | |||
| 30642 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 30643 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 30644 | ID3D12SDKConfiguration1 * This); | ||
| 30645 | |||
| 30646 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 30647 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 30648 | ID3D12SDKConfiguration1 * This); | ||
| 30649 | |||
| 30650 | DECLSPEC_XFGVIRT(ID3D12SDKConfiguration, SetSDKVersion) | ||
| 30651 | HRESULT ( STDMETHODCALLTYPE *SetSDKVersion )( | ||
| 30652 | ID3D12SDKConfiguration1 * This, | ||
| 30653 | UINT SDKVersion, | ||
| 30654 | _In_z_ LPCSTR SDKPath); | ||
| 30655 | |||
| 30656 | DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, CreateDeviceFactory) | ||
| 30657 | HRESULT ( STDMETHODCALLTYPE *CreateDeviceFactory )( | ||
| 30658 | ID3D12SDKConfiguration1 * This, | ||
| 30659 | UINT SDKVersion, | ||
| 30660 | _In_ LPCSTR SDKPath, | ||
| 30661 | REFIID riid, | ||
| 30662 | _COM_Outptr_ void **ppvFactory); | ||
| 30663 | |||
| 30664 | DECLSPEC_XFGVIRT(ID3D12SDKConfiguration1, FreeUnusedSDKs) | ||
| 30665 | void ( STDMETHODCALLTYPE *FreeUnusedSDKs )( | ||
| 30666 | ID3D12SDKConfiguration1 * This); | ||
| 30667 | |||
| 30668 | END_INTERFACE | ||
| 30669 | } ID3D12SDKConfiguration1Vtbl; | ||
| 30670 | |||
| 30671 | interface ID3D12SDKConfiguration1 | ||
| 30672 | { | ||
| 30673 | CONST_VTBL struct ID3D12SDKConfiguration1Vtbl *lpVtbl; | ||
| 30674 | }; | ||
| 30675 | |||
| 30676 | |||
| 30677 | |||
| 30678 | #ifdef COBJMACROS | ||
| 30679 | |||
| 30680 | |||
| 30681 | #define ID3D12SDKConfiguration1_QueryInterface(This,riid,ppvObject) \ | ||
| 30682 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 30683 | |||
| 30684 | #define ID3D12SDKConfiguration1_AddRef(This) \ | ||
| 30685 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 30686 | |||
| 30687 | #define ID3D12SDKConfiguration1_Release(This) \ | ||
| 30688 | ( (This)->lpVtbl -> Release(This) ) | ||
| 30689 | |||
| 30690 | |||
| 30691 | #define ID3D12SDKConfiguration1_SetSDKVersion(This,SDKVersion,SDKPath) \ | ||
| 30692 | ( (This)->lpVtbl -> SetSDKVersion(This,SDKVersion,SDKPath) ) | ||
| 30693 | |||
| 30694 | |||
| 30695 | #define ID3D12SDKConfiguration1_CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) \ | ||
| 30696 | ( (This)->lpVtbl -> CreateDeviceFactory(This,SDKVersion,SDKPath,riid,ppvFactory) ) | ||
| 30697 | |||
| 30698 | #define ID3D12SDKConfiguration1_FreeUnusedSDKs(This) \ | ||
| 30699 | ( (This)->lpVtbl -> FreeUnusedSDKs(This) ) | ||
| 30700 | |||
| 30701 | #endif /* COBJMACROS */ | ||
| 30702 | |||
| 30703 | |||
| 30704 | #endif /* C style interface */ | ||
| 30705 | |||
| 30706 | |||
| 30707 | |||
| 30708 | |||
| 30709 | #endif /* __ID3D12SDKConfiguration1_INTERFACE_DEFINED__ */ | ||
| 30710 | |||
| 30711 | |||
| 30712 | /* interface __MIDL_itf_d3d12_0000_0073 */ | ||
| 30713 | /* [local] */ | ||
| 30714 | |||
| 30715 | typedef | ||
| 30716 | enum D3D12_DEVICE_FACTORY_FLAGS | ||
| 30717 | { | ||
| 30718 | D3D12_DEVICE_FACTORY_FLAG_NONE = 0, | ||
| 30719 | D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1, | ||
| 30720 | D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2, | ||
| 30721 | D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4 | ||
| 30722 | } D3D12_DEVICE_FACTORY_FLAGS; | ||
| 30723 | |||
| 30724 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS ) | ||
| 30725 | |||
| 30726 | |||
| 30727 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_c_ifspec; | ||
| 30728 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0073_v0_0_s_ifspec; | ||
| 30729 | |||
| 30730 | #ifndef __ID3D12DeviceFactory_INTERFACE_DEFINED__ | ||
| 30731 | #define __ID3D12DeviceFactory_INTERFACE_DEFINED__ | ||
| 30732 | |||
| 30733 | /* interface ID3D12DeviceFactory */ | ||
| 30734 | /* [unique][local][object][uuid] */ | ||
| 30735 | |||
| 30736 | |||
| 30737 | EXTERN_C const IID IID_ID3D12DeviceFactory; | ||
| 30738 | |||
| 30739 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 30740 | |||
| 30741 | MIDL_INTERFACE("61f307d3-d34e-4e7c-8374-3ba4de23cccb") | ||
| 30742 | ID3D12DeviceFactory : public IUnknown | ||
| 30743 | { | ||
| 30744 | public: | ||
| 30745 | virtual HRESULT STDMETHODCALLTYPE InitializeFromGlobalState( void) = 0; | ||
| 30746 | |||
| 30747 | virtual HRESULT STDMETHODCALLTYPE ApplyToGlobalState( void) = 0; | ||
| 30748 | |||
| 30749 | virtual HRESULT STDMETHODCALLTYPE SetFlags( | ||
| 30750 | D3D12_DEVICE_FACTORY_FLAGS flags) = 0; | ||
| 30751 | |||
| 30752 | virtual D3D12_DEVICE_FACTORY_FLAGS STDMETHODCALLTYPE GetFlags( void) = 0; | ||
| 30753 | |||
| 30754 | virtual HRESULT STDMETHODCALLTYPE GetConfigurationInterface( | ||
| 30755 | REFCLSID clsid, | ||
| 30756 | REFIID iid, | ||
| 30757 | _COM_Outptr_ void **ppv) = 0; | ||
| 30758 | |||
| 30759 | virtual HRESULT STDMETHODCALLTYPE EnableExperimentalFeatures( | ||
| 30760 | UINT NumFeatures, | ||
| 30761 | _In_reads_(NumFeatures) const IID *pIIDs, | ||
| 30762 | _In_reads_opt_(NumFeatures) void *pConfigurationStructs, | ||
| 30763 | _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes) = 0; | ||
| 30764 | |||
| 30765 | virtual HRESULT STDMETHODCALLTYPE CreateDevice( | ||
| 30766 | _In_opt_ IUnknown *adapter, | ||
| 30767 | D3D_FEATURE_LEVEL FeatureLevel, | ||
| 30768 | REFIID riid, | ||
| 30769 | _COM_Outptr_opt_ void **ppvDevice) = 0; | ||
| 30770 | |||
| 30771 | }; | ||
| 30772 | |||
| 30773 | |||
| 30774 | #else /* C style interface */ | ||
| 30775 | |||
| 30776 | typedef struct ID3D12DeviceFactoryVtbl | ||
| 30777 | { | ||
| 30778 | BEGIN_INTERFACE | ||
| 30779 | |||
| 30780 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 30781 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 30782 | ID3D12DeviceFactory * This, | ||
| 30783 | REFIID riid, | ||
| 30784 | _COM_Outptr_ void **ppvObject); | ||
| 30785 | |||
| 30786 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 30787 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 30788 | ID3D12DeviceFactory * This); | ||
| 30789 | |||
| 30790 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 30791 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 30792 | ID3D12DeviceFactory * This); | ||
| 30793 | |||
| 30794 | DECLSPEC_XFGVIRT(ID3D12DeviceFactory, InitializeFromGlobalState) | ||
| 30795 | HRESULT ( STDMETHODCALLTYPE *InitializeFromGlobalState )( | ||
| 30796 | ID3D12DeviceFactory * This); | ||
| 30797 | |||
| 30798 | DECLSPEC_XFGVIRT(ID3D12DeviceFactory, ApplyToGlobalState) | ||
| 30799 | HRESULT ( STDMETHODCALLTYPE *ApplyToGlobalState )( | ||
| 30800 | ID3D12DeviceFactory * This); | ||
| 30801 | |||
| 30802 | DECLSPEC_XFGVIRT(ID3D12DeviceFactory, SetFlags) | ||
| 30803 | HRESULT ( STDMETHODCALLTYPE *SetFlags )( | ||
| 30804 | ID3D12DeviceFactory * This, | ||
| 30805 | D3D12_DEVICE_FACTORY_FLAGS flags); | ||
| 30806 | |||
| 30807 | DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetFlags) | ||
| 30808 | D3D12_DEVICE_FACTORY_FLAGS ( STDMETHODCALLTYPE *GetFlags )( | ||
| 30809 | ID3D12DeviceFactory * This); | ||
| 30810 | |||
| 30811 | DECLSPEC_XFGVIRT(ID3D12DeviceFactory, GetConfigurationInterface) | ||
| 30812 | HRESULT ( STDMETHODCALLTYPE *GetConfigurationInterface )( | ||
| 30813 | ID3D12DeviceFactory * This, | ||
| 30814 | REFCLSID clsid, | ||
| 30815 | REFIID iid, | ||
| 30816 | _COM_Outptr_ void **ppv); | ||
| 30817 | |||
| 30818 | DECLSPEC_XFGVIRT(ID3D12DeviceFactory, EnableExperimentalFeatures) | ||
| 30819 | HRESULT ( STDMETHODCALLTYPE *EnableExperimentalFeatures )( | ||
| 30820 | ID3D12DeviceFactory * This, | ||
| 30821 | UINT NumFeatures, | ||
| 30822 | _In_reads_(NumFeatures) const IID *pIIDs, | ||
| 30823 | _In_reads_opt_(NumFeatures) void *pConfigurationStructs, | ||
| 30824 | _In_reads_opt_(NumFeatures) UINT *pConfigurationStructSizes); | ||
| 30825 | |||
| 30826 | DECLSPEC_XFGVIRT(ID3D12DeviceFactory, CreateDevice) | ||
| 30827 | HRESULT ( STDMETHODCALLTYPE *CreateDevice )( | ||
| 30828 | ID3D12DeviceFactory * This, | ||
| 30829 | _In_opt_ IUnknown *adapter, | ||
| 30830 | D3D_FEATURE_LEVEL FeatureLevel, | ||
| 30831 | REFIID riid, | ||
| 30832 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 30833 | |||
| 30834 | END_INTERFACE | ||
| 30835 | } ID3D12DeviceFactoryVtbl; | ||
| 30836 | |||
| 30837 | interface ID3D12DeviceFactory | ||
| 30838 | { | ||
| 30839 | CONST_VTBL struct ID3D12DeviceFactoryVtbl *lpVtbl; | ||
| 30840 | }; | ||
| 30841 | |||
| 30842 | |||
| 30843 | |||
| 30844 | #ifdef COBJMACROS | ||
| 30845 | |||
| 30846 | |||
| 30847 | #define ID3D12DeviceFactory_QueryInterface(This,riid,ppvObject) \ | ||
| 30848 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 30849 | |||
| 30850 | #define ID3D12DeviceFactory_AddRef(This) \ | ||
| 30851 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 30852 | |||
| 30853 | #define ID3D12DeviceFactory_Release(This) \ | ||
| 30854 | ( (This)->lpVtbl -> Release(This) ) | ||
| 30855 | |||
| 30856 | |||
| 30857 | #define ID3D12DeviceFactory_InitializeFromGlobalState(This) \ | ||
| 30858 | ( (This)->lpVtbl -> InitializeFromGlobalState(This) ) | ||
| 30859 | |||
| 30860 | #define ID3D12DeviceFactory_ApplyToGlobalState(This) \ | ||
| 30861 | ( (This)->lpVtbl -> ApplyToGlobalState(This) ) | ||
| 30862 | |||
| 30863 | #define ID3D12DeviceFactory_SetFlags(This,flags) \ | ||
| 30864 | ( (This)->lpVtbl -> SetFlags(This,flags) ) | ||
| 30865 | |||
| 30866 | #define ID3D12DeviceFactory_GetFlags(This) \ | ||
| 30867 | ( (This)->lpVtbl -> GetFlags(This) ) | ||
| 30868 | |||
| 30869 | #define ID3D12DeviceFactory_GetConfigurationInterface(This,clsid,iid,ppv) \ | ||
| 30870 | ( (This)->lpVtbl -> GetConfigurationInterface(This,clsid,iid,ppv) ) | ||
| 30871 | |||
| 30872 | #define ID3D12DeviceFactory_EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) \ | ||
| 30873 | ( (This)->lpVtbl -> EnableExperimentalFeatures(This,NumFeatures,pIIDs,pConfigurationStructs,pConfigurationStructSizes) ) | ||
| 30874 | |||
| 30875 | #define ID3D12DeviceFactory_CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) \ | ||
| 30876 | ( (This)->lpVtbl -> CreateDevice(This,adapter,FeatureLevel,riid,ppvDevice) ) | ||
| 30877 | |||
| 30878 | #endif /* COBJMACROS */ | ||
| 30879 | |||
| 30880 | |||
| 30881 | #endif /* C style interface */ | ||
| 30882 | |||
| 30883 | |||
| 30884 | |||
| 30885 | |||
| 30886 | #endif /* __ID3D12DeviceFactory_INTERFACE_DEFINED__ */ | ||
| 30887 | |||
| 30888 | |||
| 30889 | /* interface __MIDL_itf_d3d12_0000_0074 */ | ||
| 30890 | /* [local] */ | ||
| 30891 | |||
| 30892 | typedef | ||
| 30893 | enum D3D12_DEVICE_FLAGS | ||
| 30894 | { | ||
| 30895 | D3D12_DEVICE_FLAG_NONE = 0, | ||
| 30896 | D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1, | ||
| 30897 | D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2, | ||
| 30898 | D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4, | ||
| 30899 | D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8, | ||
| 30900 | D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10, | ||
| 30901 | D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20, | ||
| 30902 | D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40, | ||
| 30903 | D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80, | ||
| 30904 | D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100, | ||
| 30905 | D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200, | ||
| 30906 | D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400 | ||
| 30907 | } D3D12_DEVICE_FLAGS; | ||
| 30908 | |||
| 30909 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FLAGS ) | ||
| 30910 | typedef struct D3D12_DEVICE_CONFIGURATION_DESC | ||
| 30911 | { | ||
| 30912 | D3D12_DEVICE_FLAGS Flags; | ||
| 30913 | UINT GpuBasedValidationFlags; | ||
| 30914 | UINT SDKVersion; | ||
| 30915 | UINT NumEnabledExperimentalFeatures; | ||
| 30916 | } D3D12_DEVICE_CONFIGURATION_DESC; | ||
| 30917 | |||
| 30918 | |||
| 30919 | |||
| 30920 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_c_ifspec; | ||
| 30921 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0074_v0_0_s_ifspec; | ||
| 30922 | |||
| 30923 | #ifndef __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ | ||
| 30924 | #define __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ | ||
| 30925 | |||
| 30926 | /* interface ID3D12DeviceConfiguration */ | ||
| 30927 | /* [unique][local][object][uuid] */ | ||
| 30928 | |||
| 30929 | |||
| 30930 | EXTERN_C const IID IID_ID3D12DeviceConfiguration; | ||
| 30931 | |||
| 30932 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 30933 | |||
| 30934 | MIDL_INTERFACE("78dbf87b-f766-422b-a61c-c8c446bdb9ad") | ||
| 30935 | ID3D12DeviceConfiguration : public IUnknown | ||
| 30936 | { | ||
| 30937 | public: | ||
| 30938 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 30939 | virtual D3D12_DEVICE_CONFIGURATION_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 30940 | #else | ||
| 30941 | virtual D3D12_DEVICE_CONFIGURATION_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 30942 | D3D12_DEVICE_CONFIGURATION_DESC * RetVal) = 0; | ||
| 30943 | #endif | ||
| 30944 | |||
| 30945 | virtual HRESULT STDMETHODCALLTYPE GetEnabledExperimentalFeatures( | ||
| 30946 | _Out_writes_(NumGuids) GUID *pGuids, | ||
| 30947 | UINT NumGuids) = 0; | ||
| 30948 | |||
| 30949 | virtual HRESULT STDMETHODCALLTYPE SerializeVersionedRootSignature( | ||
| 30950 | _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, | ||
| 30951 | _COM_Outptr_ ID3DBlob **ppResult, | ||
| 30952 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError) = 0; | ||
| 30953 | |||
| 30954 | virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializer( | ||
| 30955 | _In_reads_bytes_(Size) const void *pBlob, | ||
| 30956 | SIZE_T Size, | ||
| 30957 | REFIID riid, | ||
| 30958 | _COM_Outptr_ void **ppvDeserializer) = 0; | ||
| 30959 | |||
| 30960 | }; | ||
| 30961 | |||
| 30962 | |||
| 30963 | #else /* C style interface */ | ||
| 30964 | |||
| 30965 | typedef struct ID3D12DeviceConfigurationVtbl | ||
| 30966 | { | ||
| 30967 | BEGIN_INTERFACE | ||
| 30968 | |||
| 30969 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 30970 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 30971 | ID3D12DeviceConfiguration * This, | ||
| 30972 | REFIID riid, | ||
| 30973 | _COM_Outptr_ void **ppvObject); | ||
| 30974 | |||
| 30975 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 30976 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 30977 | ID3D12DeviceConfiguration * This); | ||
| 30978 | |||
| 30979 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 30980 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 30981 | ID3D12DeviceConfiguration * This); | ||
| 30982 | |||
| 30983 | DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc) | ||
| 30984 | #if !defined(_WIN32) | ||
| 30985 | D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 30986 | ID3D12DeviceConfiguration * This); | ||
| 30987 | |||
| 30988 | #else | ||
| 30989 | D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 30990 | ID3D12DeviceConfiguration * This, | ||
| 30991 | D3D12_DEVICE_CONFIGURATION_DESC * RetVal); | ||
| 30992 | |||
| 30993 | #endif | ||
| 30994 | |||
| 30995 | DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures) | ||
| 30996 | HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )( | ||
| 30997 | ID3D12DeviceConfiguration * This, | ||
| 30998 | _Out_writes_(NumGuids) GUID *pGuids, | ||
| 30999 | UINT NumGuids); | ||
| 31000 | |||
| 31001 | DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature) | ||
| 31002 | HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )( | ||
| 31003 | ID3D12DeviceConfiguration * This, | ||
| 31004 | _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, | ||
| 31005 | _COM_Outptr_ ID3DBlob **ppResult, | ||
| 31006 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError); | ||
| 31007 | |||
| 31008 | DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer) | ||
| 31009 | HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )( | ||
| 31010 | ID3D12DeviceConfiguration * This, | ||
| 31011 | _In_reads_bytes_(Size) const void *pBlob, | ||
| 31012 | SIZE_T Size, | ||
| 31013 | REFIID riid, | ||
| 31014 | _COM_Outptr_ void **ppvDeserializer); | ||
| 31015 | |||
| 31016 | END_INTERFACE | ||
| 31017 | } ID3D12DeviceConfigurationVtbl; | ||
| 31018 | |||
| 31019 | interface ID3D12DeviceConfiguration | ||
| 31020 | { | ||
| 31021 | CONST_VTBL struct ID3D12DeviceConfigurationVtbl *lpVtbl; | ||
| 31022 | }; | ||
| 31023 | |||
| 31024 | |||
| 31025 | |||
| 31026 | #ifdef COBJMACROS | ||
| 31027 | |||
| 31028 | |||
| 31029 | #define ID3D12DeviceConfiguration_QueryInterface(This,riid,ppvObject) \ | ||
| 31030 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 31031 | |||
| 31032 | #define ID3D12DeviceConfiguration_AddRef(This) \ | ||
| 31033 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 31034 | |||
| 31035 | #define ID3D12DeviceConfiguration_Release(This) \ | ||
| 31036 | ( (This)->lpVtbl -> Release(This) ) | ||
| 31037 | |||
| 31038 | #if !defined(_WIN32) | ||
| 31039 | |||
| 31040 | #define ID3D12DeviceConfiguration_GetDesc(This) \ | ||
| 31041 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 31042 | #else | ||
| 31043 | #define ID3D12DeviceConfiguration_GetDesc(This,RetVal) \ | ||
| 31044 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 31045 | #endif | ||
| 31046 | |||
| 31047 | #define ID3D12DeviceConfiguration_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \ | ||
| 31048 | ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) ) | ||
| 31049 | |||
| 31050 | #define ID3D12DeviceConfiguration_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \ | ||
| 31051 | ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) ) | ||
| 31052 | |||
| 31053 | #define ID3D12DeviceConfiguration_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \ | ||
| 31054 | ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) ) | ||
| 31055 | |||
| 31056 | #endif /* COBJMACROS */ | ||
| 31057 | |||
| 31058 | |||
| 31059 | #endif /* C style interface */ | ||
| 31060 | |||
| 31061 | |||
| 31062 | |||
| 31063 | |||
| 31064 | #endif /* __ID3D12DeviceConfiguration_INTERFACE_DEFINED__ */ | ||
| 31065 | |||
| 31066 | |||
| 31067 | #ifndef __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ | ||
| 31068 | #define __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ | ||
| 31069 | |||
| 31070 | /* interface ID3D12DeviceConfiguration1 */ | ||
| 31071 | /* [unique][local][object][uuid] */ | ||
| 31072 | |||
| 31073 | |||
| 31074 | EXTERN_C const IID IID_ID3D12DeviceConfiguration1; | ||
| 31075 | |||
| 31076 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 31077 | |||
| 31078 | MIDL_INTERFACE("ed342442-6343-4e16-bb82-a3a577874e56") | ||
| 31079 | ID3D12DeviceConfiguration1 : public ID3D12DeviceConfiguration | ||
| 31080 | { | ||
| 31081 | public: | ||
| 31082 | virtual HRESULT STDMETHODCALLTYPE CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary( | ||
| 31083 | _In_reads_bytes_(Size) const void *pLibraryBlob, | ||
| 31084 | SIZE_T Size, | ||
| 31085 | LPCWSTR RootSignatureSubobjectName, | ||
| 31086 | REFIID riid, | ||
| 31087 | _COM_Outptr_ void **ppvDeserializer) = 0; | ||
| 31088 | |||
| 31089 | }; | ||
| 31090 | |||
| 31091 | |||
| 31092 | #else /* C style interface */ | ||
| 31093 | |||
| 31094 | typedef struct ID3D12DeviceConfiguration1Vtbl | ||
| 31095 | { | ||
| 31096 | BEGIN_INTERFACE | ||
| 31097 | |||
| 31098 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 31099 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 31100 | ID3D12DeviceConfiguration1 * This, | ||
| 31101 | REFIID riid, | ||
| 31102 | _COM_Outptr_ void **ppvObject); | ||
| 31103 | |||
| 31104 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 31105 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 31106 | ID3D12DeviceConfiguration1 * This); | ||
| 31107 | |||
| 31108 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 31109 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 31110 | ID3D12DeviceConfiguration1 * This); | ||
| 31111 | |||
| 31112 | DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetDesc) | ||
| 31113 | #if !defined(_WIN32) | ||
| 31114 | D3D12_DEVICE_CONFIGURATION_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 31115 | ID3D12DeviceConfiguration1 * This); | ||
| 31116 | |||
| 31117 | #else | ||
| 31118 | D3D12_DEVICE_CONFIGURATION_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 31119 | ID3D12DeviceConfiguration1 * This, | ||
| 31120 | D3D12_DEVICE_CONFIGURATION_DESC * RetVal); | ||
| 31121 | |||
| 31122 | #endif | ||
| 31123 | |||
| 31124 | DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, GetEnabledExperimentalFeatures) | ||
| 31125 | HRESULT ( STDMETHODCALLTYPE *GetEnabledExperimentalFeatures )( | ||
| 31126 | ID3D12DeviceConfiguration1 * This, | ||
| 31127 | _Out_writes_(NumGuids) GUID *pGuids, | ||
| 31128 | UINT NumGuids); | ||
| 31129 | |||
| 31130 | DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, SerializeVersionedRootSignature) | ||
| 31131 | HRESULT ( STDMETHODCALLTYPE *SerializeVersionedRootSignature )( | ||
| 31132 | ID3D12DeviceConfiguration1 * This, | ||
| 31133 | _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, | ||
| 31134 | _COM_Outptr_ ID3DBlob **ppResult, | ||
| 31135 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob **ppError); | ||
| 31136 | |||
| 31137 | DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration, CreateVersionedRootSignatureDeserializer) | ||
| 31138 | HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializer )( | ||
| 31139 | ID3D12DeviceConfiguration1 * This, | ||
| 31140 | _In_reads_bytes_(Size) const void *pBlob, | ||
| 31141 | SIZE_T Size, | ||
| 31142 | REFIID riid, | ||
| 31143 | _COM_Outptr_ void **ppvDeserializer); | ||
| 31144 | |||
| 31145 | DECLSPEC_XFGVIRT(ID3D12DeviceConfiguration1, CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary) | ||
| 31146 | HRESULT ( STDMETHODCALLTYPE *CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary )( | ||
| 31147 | ID3D12DeviceConfiguration1 * This, | ||
| 31148 | _In_reads_bytes_(Size) const void *pLibraryBlob, | ||
| 31149 | SIZE_T Size, | ||
| 31150 | LPCWSTR RootSignatureSubobjectName, | ||
| 31151 | REFIID riid, | ||
| 31152 | _COM_Outptr_ void **ppvDeserializer); | ||
| 31153 | |||
| 31154 | END_INTERFACE | ||
| 31155 | } ID3D12DeviceConfiguration1Vtbl; | ||
| 31156 | |||
| 31157 | interface ID3D12DeviceConfiguration1 | ||
| 31158 | { | ||
| 31159 | CONST_VTBL struct ID3D12DeviceConfiguration1Vtbl *lpVtbl; | ||
| 31160 | }; | ||
| 31161 | |||
| 31162 | |||
| 31163 | |||
| 31164 | #ifdef COBJMACROS | ||
| 31165 | |||
| 31166 | |||
| 31167 | #define ID3D12DeviceConfiguration1_QueryInterface(This,riid,ppvObject) \ | ||
| 31168 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 31169 | |||
| 31170 | #define ID3D12DeviceConfiguration1_AddRef(This) \ | ||
| 31171 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 31172 | |||
| 31173 | #define ID3D12DeviceConfiguration1_Release(This) \ | ||
| 31174 | ( (This)->lpVtbl -> Release(This) ) | ||
| 31175 | |||
| 31176 | #if !defined(_WIN32) | ||
| 31177 | |||
| 31178 | #define ID3D12DeviceConfiguration1_GetDesc(This) \ | ||
| 31179 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 31180 | #else | ||
| 31181 | #define ID3D12DeviceConfiguration1_GetDesc(This,RetVal) \ | ||
| 31182 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 31183 | #endif | ||
| 31184 | |||
| 31185 | #define ID3D12DeviceConfiguration1_GetEnabledExperimentalFeatures(This,pGuids,NumGuids) \ | ||
| 31186 | ( (This)->lpVtbl -> GetEnabledExperimentalFeatures(This,pGuids,NumGuids) ) | ||
| 31187 | |||
| 31188 | #define ID3D12DeviceConfiguration1_SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) \ | ||
| 31189 | ( (This)->lpVtbl -> SerializeVersionedRootSignature(This,pDesc,ppResult,ppError) ) | ||
| 31190 | |||
| 31191 | #define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) \ | ||
| 31192 | ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializer(This,pBlob,Size,riid,ppvDeserializer) ) | ||
| 31193 | |||
| 31194 | |||
| 31195 | #define ID3D12DeviceConfiguration1_CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) \ | ||
| 31196 | ( (This)->lpVtbl -> CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(This,pLibraryBlob,Size,RootSignatureSubobjectName,riid,ppvDeserializer) ) | ||
| 31197 | |||
| 31198 | #endif /* COBJMACROS */ | ||
| 31199 | |||
| 31200 | |||
| 31201 | #endif /* C style interface */ | ||
| 31202 | |||
| 31203 | |||
| 31204 | |||
| 31205 | |||
| 31206 | #endif /* __ID3D12DeviceConfiguration1_INTERFACE_DEFINED__ */ | ||
| 31207 | |||
| 31208 | |||
| 31209 | /* interface __MIDL_itf_d3d12_0000_0076 */ | ||
| 31210 | /* [local] */ | ||
| 31211 | |||
| 31212 | typedef | ||
| 31213 | enum D3D12_STATE_OBJECT_DATABASE_FLAGS | ||
| 31214 | { | ||
| 31215 | D3D12_STATE_OBJECT_DATABASE_FLAG_NONE = 0, | ||
| 31216 | D3D12_STATE_OBJECT_DATABASE_FLAG_READ_ONLY = 0x1 | ||
| 31217 | } D3D12_STATE_OBJECT_DATABASE_FLAGS; | ||
| 31218 | |||
| 31219 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_DATABASE_FLAGS ) | ||
| 31220 | |||
| 31221 | |||
| 31222 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_c_ifspec; | ||
| 31223 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0076_v0_0_s_ifspec; | ||
| 31224 | |||
| 31225 | #ifndef __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ | ||
| 31226 | #define __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ | ||
| 31227 | |||
| 31228 | /* interface ID3D12StateObjectDatabaseFactory */ | ||
| 31229 | /* [unique][local][object][uuid] */ | ||
| 31230 | |||
| 31231 | |||
| 31232 | EXTERN_C const IID IID_ID3D12StateObjectDatabaseFactory; | ||
| 31233 | |||
| 31234 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 31235 | |||
| 31236 | MIDL_INTERFACE("f5b066f0-648a-4611-bd41-27fd0948b9eb") | ||
| 31237 | ID3D12StateObjectDatabaseFactory : public IUnknown | ||
| 31238 | { | ||
| 31239 | public: | ||
| 31240 | virtual HRESULT STDMETHODCALLTYPE CreateStateObjectDatabaseFromFile( | ||
| 31241 | LPCWSTR pDatabaseFile, | ||
| 31242 | D3D12_STATE_OBJECT_DATABASE_FLAGS flags, | ||
| 31243 | REFIID riid, | ||
| 31244 | _COM_Outptr_ void **ppvStateObjectDatabase) = 0; | ||
| 31245 | |||
| 31246 | }; | ||
| 31247 | |||
| 31248 | |||
| 31249 | #else /* C style interface */ | ||
| 31250 | |||
| 31251 | typedef struct ID3D12StateObjectDatabaseFactoryVtbl | ||
| 31252 | { | ||
| 31253 | BEGIN_INTERFACE | ||
| 31254 | |||
| 31255 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 31256 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 31257 | ID3D12StateObjectDatabaseFactory * This, | ||
| 31258 | REFIID riid, | ||
| 31259 | _COM_Outptr_ void **ppvObject); | ||
| 31260 | |||
| 31261 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 31262 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 31263 | ID3D12StateObjectDatabaseFactory * This); | ||
| 31264 | |||
| 31265 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 31266 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 31267 | ID3D12StateObjectDatabaseFactory * This); | ||
| 31268 | |||
| 31269 | DECLSPEC_XFGVIRT(ID3D12StateObjectDatabaseFactory, CreateStateObjectDatabaseFromFile) | ||
| 31270 | HRESULT ( STDMETHODCALLTYPE *CreateStateObjectDatabaseFromFile )( | ||
| 31271 | ID3D12StateObjectDatabaseFactory * This, | ||
| 31272 | LPCWSTR pDatabaseFile, | ||
| 31273 | D3D12_STATE_OBJECT_DATABASE_FLAGS flags, | ||
| 31274 | REFIID riid, | ||
| 31275 | _COM_Outptr_ void **ppvStateObjectDatabase); | ||
| 31276 | |||
| 31277 | END_INTERFACE | ||
| 31278 | } ID3D12StateObjectDatabaseFactoryVtbl; | ||
| 31279 | |||
| 31280 | interface ID3D12StateObjectDatabaseFactory | ||
| 31281 | { | ||
| 31282 | CONST_VTBL struct ID3D12StateObjectDatabaseFactoryVtbl *lpVtbl; | ||
| 31283 | }; | ||
| 31284 | |||
| 31285 | |||
| 31286 | |||
| 31287 | #ifdef COBJMACROS | ||
| 31288 | |||
| 31289 | |||
| 31290 | #define ID3D12StateObjectDatabaseFactory_QueryInterface(This,riid,ppvObject) \ | ||
| 31291 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 31292 | |||
| 31293 | #define ID3D12StateObjectDatabaseFactory_AddRef(This) \ | ||
| 31294 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 31295 | |||
| 31296 | #define ID3D12StateObjectDatabaseFactory_Release(This) \ | ||
| 31297 | ( (This)->lpVtbl -> Release(This) ) | ||
| 31298 | |||
| 31299 | |||
| 31300 | #define ID3D12StateObjectDatabaseFactory_CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) \ | ||
| 31301 | ( (This)->lpVtbl -> CreateStateObjectDatabaseFromFile(This,pDatabaseFile,flags,riid,ppvStateObjectDatabase) ) | ||
| 31302 | |||
| 31303 | #endif /* COBJMACROS */ | ||
| 31304 | |||
| 31305 | |||
| 31306 | #endif /* C style interface */ | ||
| 31307 | |||
| 31308 | |||
| 31309 | |||
| 31310 | |||
| 31311 | #endif /* __ID3D12StateObjectDatabaseFactory_INTERFACE_DEFINED__ */ | ||
| 31312 | |||
| 31313 | |||
| 31314 | /* interface __MIDL_itf_d3d12_0000_0077 */ | ||
| 31315 | /* [local] */ | ||
| 31316 | |||
| 31317 | typedef | ||
| 31318 | enum D3D12_AXIS_SHADING_RATE | ||
| 31319 | { | ||
| 31320 | D3D12_AXIS_SHADING_RATE_1X = 0, | ||
| 31321 | D3D12_AXIS_SHADING_RATE_2X = 0x1, | ||
| 31322 | D3D12_AXIS_SHADING_RATE_4X = 0x2 | ||
| 31323 | } D3D12_AXIS_SHADING_RATE; | ||
| 31324 | |||
| 31325 | #define D3D12_SHADING_RATE_X_AXIS_SHIFT 2 | ||
| 31326 | #define D3D12_SHADING_RATE_VALID_MASK 3 | ||
| 31327 | #define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y)) | ||
| 31328 | #define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK) | ||
| 31329 | #define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK) | ||
| 31330 | typedef | ||
| 31331 | enum D3D12_SHADING_RATE | ||
| 31332 | { | ||
| 31333 | D3D12_SHADING_RATE_1X1 = 0, | ||
| 31334 | D3D12_SHADING_RATE_1X2 = 0x1, | ||
| 31335 | D3D12_SHADING_RATE_2X1 = 0x4, | ||
| 31336 | D3D12_SHADING_RATE_2X2 = 0x5, | ||
| 31337 | D3D12_SHADING_RATE_2X4 = 0x6, | ||
| 31338 | D3D12_SHADING_RATE_4X2 = 0x9, | ||
| 31339 | D3D12_SHADING_RATE_4X4 = 0xa | ||
| 31340 | } D3D12_SHADING_RATE; | ||
| 31341 | |||
| 31342 | typedef | ||
| 31343 | enum D3D12_SHADING_RATE_COMBINER | ||
| 31344 | { | ||
| 31345 | D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0, | ||
| 31346 | D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1, | ||
| 31347 | D3D12_SHADING_RATE_COMBINER_MIN = 2, | ||
| 31348 | D3D12_SHADING_RATE_COMBINER_MAX = 3, | ||
| 31349 | D3D12_SHADING_RATE_COMBINER_SUM = 4 | ||
| 31350 | } D3D12_SHADING_RATE_COMBINER; | ||
| 31351 | |||
| 31352 | |||
| 31353 | |||
| 31354 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_c_ifspec; | ||
| 31355 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0077_v0_0_s_ifspec; | ||
| 31356 | |||
| 31357 | #ifndef __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ | ||
| 31358 | #define __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ | ||
| 31359 | |||
| 31360 | /* interface ID3D12GraphicsCommandList5 */ | ||
| 31361 | /* [unique][local][object][uuid] */ | ||
| 31362 | |||
| 31363 | |||
| 31364 | EXTERN_C const IID IID_ID3D12GraphicsCommandList5; | ||
| 31365 | |||
| 31366 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 31367 | |||
| 31368 | MIDL_INTERFACE("55050859-4024-474c-87f5-6472eaee44ea") | ||
| 31369 | ID3D12GraphicsCommandList5 : public ID3D12GraphicsCommandList4 | ||
| 31370 | { | ||
| 31371 | public: | ||
| 31372 | virtual void STDMETHODCALLTYPE RSSetShadingRate( | ||
| 31373 | _In_ D3D12_SHADING_RATE baseShadingRate, | ||
| 31374 | _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners) = 0; | ||
| 31375 | |||
| 31376 | virtual void STDMETHODCALLTYPE RSSetShadingRateImage( | ||
| 31377 | _In_opt_ ID3D12Resource *shadingRateImage) = 0; | ||
| 31378 | |||
| 31379 | }; | ||
| 31380 | |||
| 31381 | |||
| 31382 | #else /* C style interface */ | ||
| 31383 | |||
| 31384 | typedef struct ID3D12GraphicsCommandList5Vtbl | ||
| 31385 | { | ||
| 31386 | BEGIN_INTERFACE | ||
| 31387 | |||
| 31388 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 31389 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 31390 | ID3D12GraphicsCommandList5 * This, | ||
| 31391 | REFIID riid, | ||
| 31392 | _COM_Outptr_ void **ppvObject); | ||
| 31393 | |||
| 31394 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 31395 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 31396 | ID3D12GraphicsCommandList5 * This); | ||
| 31397 | |||
| 31398 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 31399 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 31400 | ID3D12GraphicsCommandList5 * This); | ||
| 31401 | |||
| 31402 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 31403 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 31404 | ID3D12GraphicsCommandList5 * This, | ||
| 31405 | _In_ REFGUID guid, | ||
| 31406 | _Inout_ UINT *pDataSize, | ||
| 31407 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 31408 | |||
| 31409 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 31410 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 31411 | ID3D12GraphicsCommandList5 * This, | ||
| 31412 | _In_ REFGUID guid, | ||
| 31413 | _In_ UINT DataSize, | ||
| 31414 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 31415 | |||
| 31416 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 31417 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 31418 | ID3D12GraphicsCommandList5 * This, | ||
| 31419 | _In_ REFGUID guid, | ||
| 31420 | _In_opt_ const IUnknown *pData); | ||
| 31421 | |||
| 31422 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 31423 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 31424 | ID3D12GraphicsCommandList5 * This, | ||
| 31425 | _In_z_ LPCWSTR Name); | ||
| 31426 | |||
| 31427 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 31428 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 31429 | ID3D12GraphicsCommandList5 * This, | ||
| 31430 | REFIID riid, | ||
| 31431 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 31432 | |||
| 31433 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 31434 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 31435 | ID3D12GraphicsCommandList5 * This); | ||
| 31436 | |||
| 31437 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 31438 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 31439 | ID3D12GraphicsCommandList5 * This); | ||
| 31440 | |||
| 31441 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 31442 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 31443 | ID3D12GraphicsCommandList5 * This, | ||
| 31444 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 31445 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 31446 | |||
| 31447 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 31448 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 31449 | ID3D12GraphicsCommandList5 * This, | ||
| 31450 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 31451 | |||
| 31452 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 31453 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 31454 | ID3D12GraphicsCommandList5 * This, | ||
| 31455 | _In_ UINT VertexCountPerInstance, | ||
| 31456 | _In_ UINT InstanceCount, | ||
| 31457 | _In_ UINT StartVertexLocation, | ||
| 31458 | _In_ UINT StartInstanceLocation); | ||
| 31459 | |||
| 31460 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 31461 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 31462 | ID3D12GraphicsCommandList5 * This, | ||
| 31463 | _In_ UINT IndexCountPerInstance, | ||
| 31464 | _In_ UINT InstanceCount, | ||
| 31465 | _In_ UINT StartIndexLocation, | ||
| 31466 | _In_ INT BaseVertexLocation, | ||
| 31467 | _In_ UINT StartInstanceLocation); | ||
| 31468 | |||
| 31469 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 31470 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 31471 | ID3D12GraphicsCommandList5 * This, | ||
| 31472 | _In_ UINT ThreadGroupCountX, | ||
| 31473 | _In_ UINT ThreadGroupCountY, | ||
| 31474 | _In_ UINT ThreadGroupCountZ); | ||
| 31475 | |||
| 31476 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 31477 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 31478 | ID3D12GraphicsCommandList5 * This, | ||
| 31479 | _In_ ID3D12Resource *pDstBuffer, | ||
| 31480 | UINT64 DstOffset, | ||
| 31481 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 31482 | UINT64 SrcOffset, | ||
| 31483 | UINT64 NumBytes); | ||
| 31484 | |||
| 31485 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 31486 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 31487 | ID3D12GraphicsCommandList5 * This, | ||
| 31488 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 31489 | UINT DstX, | ||
| 31490 | UINT DstY, | ||
| 31491 | UINT DstZ, | ||
| 31492 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 31493 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 31494 | |||
| 31495 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 31496 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 31497 | ID3D12GraphicsCommandList5 * This, | ||
| 31498 | _In_ ID3D12Resource *pDstResource, | ||
| 31499 | _In_ ID3D12Resource *pSrcResource); | ||
| 31500 | |||
| 31501 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 31502 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 31503 | ID3D12GraphicsCommandList5 * This, | ||
| 31504 | _In_ ID3D12Resource *pTiledResource, | ||
| 31505 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 31506 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 31507 | _In_ ID3D12Resource *pBuffer, | ||
| 31508 | UINT64 BufferStartOffsetInBytes, | ||
| 31509 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 31510 | |||
| 31511 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 31512 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 31513 | ID3D12GraphicsCommandList5 * This, | ||
| 31514 | _In_ ID3D12Resource *pDstResource, | ||
| 31515 | _In_ UINT DstSubresource, | ||
| 31516 | _In_ ID3D12Resource *pSrcResource, | ||
| 31517 | _In_ UINT SrcSubresource, | ||
| 31518 | _In_ DXGI_FORMAT Format); | ||
| 31519 | |||
| 31520 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 31521 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 31522 | ID3D12GraphicsCommandList5 * This, | ||
| 31523 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 31524 | |||
| 31525 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 31526 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 31527 | ID3D12GraphicsCommandList5 * This, | ||
| 31528 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 31529 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 31530 | |||
| 31531 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 31532 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 31533 | ID3D12GraphicsCommandList5 * This, | ||
| 31534 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 31535 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 31536 | |||
| 31537 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 31538 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 31539 | ID3D12GraphicsCommandList5 * This, | ||
| 31540 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 31541 | |||
| 31542 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 31543 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 31544 | ID3D12GraphicsCommandList5 * This, | ||
| 31545 | _In_ UINT StencilRef); | ||
| 31546 | |||
| 31547 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 31548 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 31549 | ID3D12GraphicsCommandList5 * This, | ||
| 31550 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 31551 | |||
| 31552 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 31553 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 31554 | ID3D12GraphicsCommandList5 * This, | ||
| 31555 | _In_ UINT NumBarriers, | ||
| 31556 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 31557 | |||
| 31558 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 31559 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 31560 | ID3D12GraphicsCommandList5 * This, | ||
| 31561 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 31562 | |||
| 31563 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 31564 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 31565 | ID3D12GraphicsCommandList5 * This, | ||
| 31566 | _In_ UINT NumDescriptorHeaps, | ||
| 31567 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 31568 | |||
| 31569 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 31570 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 31571 | ID3D12GraphicsCommandList5 * This, | ||
| 31572 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 31573 | |||
| 31574 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 31575 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 31576 | ID3D12GraphicsCommandList5 * This, | ||
| 31577 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 31578 | |||
| 31579 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 31580 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 31581 | ID3D12GraphicsCommandList5 * This, | ||
| 31582 | _In_ UINT RootParameterIndex, | ||
| 31583 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 31584 | |||
| 31585 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 31586 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 31587 | ID3D12GraphicsCommandList5 * This, | ||
| 31588 | _In_ UINT RootParameterIndex, | ||
| 31589 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 31590 | |||
| 31591 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 31592 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 31593 | ID3D12GraphicsCommandList5 * This, | ||
| 31594 | _In_ UINT RootParameterIndex, | ||
| 31595 | _In_ UINT SrcData, | ||
| 31596 | _In_ UINT DestOffsetIn32BitValues); | ||
| 31597 | |||
| 31598 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 31599 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 31600 | ID3D12GraphicsCommandList5 * This, | ||
| 31601 | _In_ UINT RootParameterIndex, | ||
| 31602 | _In_ UINT SrcData, | ||
| 31603 | _In_ UINT DestOffsetIn32BitValues); | ||
| 31604 | |||
| 31605 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 31606 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 31607 | ID3D12GraphicsCommandList5 * This, | ||
| 31608 | _In_ UINT RootParameterIndex, | ||
| 31609 | _In_ UINT Num32BitValuesToSet, | ||
| 31610 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 31611 | _In_ UINT DestOffsetIn32BitValues); | ||
| 31612 | |||
| 31613 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 31614 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 31615 | ID3D12GraphicsCommandList5 * This, | ||
| 31616 | _In_ UINT RootParameterIndex, | ||
| 31617 | _In_ UINT Num32BitValuesToSet, | ||
| 31618 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 31619 | _In_ UINT DestOffsetIn32BitValues); | ||
| 31620 | |||
| 31621 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 31622 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 31623 | ID3D12GraphicsCommandList5 * This, | ||
| 31624 | _In_ UINT RootParameterIndex, | ||
| 31625 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 31626 | |||
| 31627 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 31628 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 31629 | ID3D12GraphicsCommandList5 * This, | ||
| 31630 | _In_ UINT RootParameterIndex, | ||
| 31631 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 31632 | |||
| 31633 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 31634 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 31635 | ID3D12GraphicsCommandList5 * This, | ||
| 31636 | _In_ UINT RootParameterIndex, | ||
| 31637 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 31638 | |||
| 31639 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 31640 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 31641 | ID3D12GraphicsCommandList5 * This, | ||
| 31642 | _In_ UINT RootParameterIndex, | ||
| 31643 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 31644 | |||
| 31645 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 31646 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 31647 | ID3D12GraphicsCommandList5 * This, | ||
| 31648 | _In_ UINT RootParameterIndex, | ||
| 31649 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 31650 | |||
| 31651 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 31652 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 31653 | ID3D12GraphicsCommandList5 * This, | ||
| 31654 | _In_ UINT RootParameterIndex, | ||
| 31655 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 31656 | |||
| 31657 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 31658 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 31659 | ID3D12GraphicsCommandList5 * This, | ||
| 31660 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 31661 | |||
| 31662 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 31663 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 31664 | ID3D12GraphicsCommandList5 * This, | ||
| 31665 | _In_ UINT StartSlot, | ||
| 31666 | _In_ UINT NumViews, | ||
| 31667 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 31668 | |||
| 31669 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 31670 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 31671 | ID3D12GraphicsCommandList5 * This, | ||
| 31672 | _In_ UINT StartSlot, | ||
| 31673 | _In_ UINT NumViews, | ||
| 31674 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 31675 | |||
| 31676 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 31677 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 31678 | ID3D12GraphicsCommandList5 * This, | ||
| 31679 | _In_ UINT NumRenderTargetDescriptors, | ||
| 31680 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 31681 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 31682 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 31683 | |||
| 31684 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 31685 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 31686 | ID3D12GraphicsCommandList5 * This, | ||
| 31687 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 31688 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 31689 | _In_ FLOAT Depth, | ||
| 31690 | _In_ UINT8 Stencil, | ||
| 31691 | _In_ UINT NumRects, | ||
| 31692 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 31693 | |||
| 31694 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 31695 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 31696 | ID3D12GraphicsCommandList5 * This, | ||
| 31697 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 31698 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 31699 | _In_ UINT NumRects, | ||
| 31700 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 31701 | |||
| 31702 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 31703 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 31704 | ID3D12GraphicsCommandList5 * This, | ||
| 31705 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 31706 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 31707 | _In_ ID3D12Resource *pResource, | ||
| 31708 | _In_ const UINT Values[ 4 ], | ||
| 31709 | _In_ UINT NumRects, | ||
| 31710 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 31711 | |||
| 31712 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 31713 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 31714 | ID3D12GraphicsCommandList5 * This, | ||
| 31715 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 31716 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 31717 | _In_ ID3D12Resource *pResource, | ||
| 31718 | _In_ const FLOAT Values[ 4 ], | ||
| 31719 | _In_ UINT NumRects, | ||
| 31720 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 31721 | |||
| 31722 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 31723 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 31724 | ID3D12GraphicsCommandList5 * This, | ||
| 31725 | _In_ ID3D12Resource *pResource, | ||
| 31726 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 31727 | |||
| 31728 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 31729 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 31730 | ID3D12GraphicsCommandList5 * This, | ||
| 31731 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 31732 | _In_ D3D12_QUERY_TYPE Type, | ||
| 31733 | _In_ UINT Index); | ||
| 31734 | |||
| 31735 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 31736 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 31737 | ID3D12GraphicsCommandList5 * This, | ||
| 31738 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 31739 | _In_ D3D12_QUERY_TYPE Type, | ||
| 31740 | _In_ UINT Index); | ||
| 31741 | |||
| 31742 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 31743 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 31744 | ID3D12GraphicsCommandList5 * This, | ||
| 31745 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 31746 | _In_ D3D12_QUERY_TYPE Type, | ||
| 31747 | _In_ UINT StartIndex, | ||
| 31748 | _In_ UINT NumQueries, | ||
| 31749 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 31750 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 31751 | |||
| 31752 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 31753 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 31754 | ID3D12GraphicsCommandList5 * This, | ||
| 31755 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 31756 | _In_ UINT64 AlignedBufferOffset, | ||
| 31757 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 31758 | |||
| 31759 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 31760 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 31761 | ID3D12GraphicsCommandList5 * This, | ||
| 31762 | UINT Metadata, | ||
| 31763 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 31764 | UINT Size); | ||
| 31765 | |||
| 31766 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 31767 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 31768 | ID3D12GraphicsCommandList5 * This, | ||
| 31769 | UINT Metadata, | ||
| 31770 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 31771 | UINT Size); | ||
| 31772 | |||
| 31773 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 31774 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 31775 | ID3D12GraphicsCommandList5 * This); | ||
| 31776 | |||
| 31777 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 31778 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 31779 | ID3D12GraphicsCommandList5 * This, | ||
| 31780 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 31781 | _In_ UINT MaxCommandCount, | ||
| 31782 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 31783 | _In_ UINT64 ArgumentBufferOffset, | ||
| 31784 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 31785 | _In_ UINT64 CountBufferOffset); | ||
| 31786 | |||
| 31787 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 31788 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 31789 | ID3D12GraphicsCommandList5 * This, | ||
| 31790 | _In_ ID3D12Resource *pDstBuffer, | ||
| 31791 | UINT64 DstOffset, | ||
| 31792 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 31793 | UINT64 SrcOffset, | ||
| 31794 | UINT Dependencies, | ||
| 31795 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 31796 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 31797 | |||
| 31798 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 31799 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 31800 | ID3D12GraphicsCommandList5 * This, | ||
| 31801 | _In_ ID3D12Resource *pDstBuffer, | ||
| 31802 | UINT64 DstOffset, | ||
| 31803 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 31804 | UINT64 SrcOffset, | ||
| 31805 | UINT Dependencies, | ||
| 31806 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 31807 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 31808 | |||
| 31809 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 31810 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 31811 | ID3D12GraphicsCommandList5 * This, | ||
| 31812 | _In_ FLOAT Min, | ||
| 31813 | _In_ FLOAT Max); | ||
| 31814 | |||
| 31815 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 31816 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 31817 | ID3D12GraphicsCommandList5 * This, | ||
| 31818 | _In_ UINT NumSamplesPerPixel, | ||
| 31819 | _In_ UINT NumPixels, | ||
| 31820 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 31821 | |||
| 31822 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 31823 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 31824 | ID3D12GraphicsCommandList5 * This, | ||
| 31825 | _In_ ID3D12Resource *pDstResource, | ||
| 31826 | _In_ UINT DstSubresource, | ||
| 31827 | _In_ UINT DstX, | ||
| 31828 | _In_ UINT DstY, | ||
| 31829 | _In_ ID3D12Resource *pSrcResource, | ||
| 31830 | _In_ UINT SrcSubresource, | ||
| 31831 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 31832 | _In_ DXGI_FORMAT Format, | ||
| 31833 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 31834 | |||
| 31835 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 31836 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 31837 | ID3D12GraphicsCommandList5 * This, | ||
| 31838 | _In_ UINT Mask); | ||
| 31839 | |||
| 31840 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) | ||
| 31841 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 31842 | ID3D12GraphicsCommandList5 * This, | ||
| 31843 | UINT Count, | ||
| 31844 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 31845 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 31846 | |||
| 31847 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) | ||
| 31848 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 31849 | ID3D12GraphicsCommandList5 * This, | ||
| 31850 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 31851 | |||
| 31852 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) | ||
| 31853 | void ( STDMETHODCALLTYPE *BeginRenderPass )( | ||
| 31854 | ID3D12GraphicsCommandList5 * This, | ||
| 31855 | _In_ UINT NumRenderTargets, | ||
| 31856 | _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, | ||
| 31857 | _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, | ||
| 31858 | D3D12_RENDER_PASS_FLAGS Flags); | ||
| 31859 | |||
| 31860 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) | ||
| 31861 | void ( STDMETHODCALLTYPE *EndRenderPass )( | ||
| 31862 | ID3D12GraphicsCommandList5 * This); | ||
| 31863 | |||
| 31864 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) | ||
| 31865 | void ( STDMETHODCALLTYPE *InitializeMetaCommand )( | ||
| 31866 | ID3D12GraphicsCommandList5 * This, | ||
| 31867 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 31868 | _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, | ||
| 31869 | _In_ SIZE_T InitializationParametersDataSizeInBytes); | ||
| 31870 | |||
| 31871 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) | ||
| 31872 | void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( | ||
| 31873 | ID3D12GraphicsCommandList5 * This, | ||
| 31874 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 31875 | _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, | ||
| 31876 | _In_ SIZE_T ExecutionParametersDataSizeInBytes); | ||
| 31877 | |||
| 31878 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) | ||
| 31879 | void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( | ||
| 31880 | ID3D12GraphicsCommandList5 * This, | ||
| 31881 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, | ||
| 31882 | _In_ UINT NumPostbuildInfoDescs, | ||
| 31883 | _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); | ||
| 31884 | |||
| 31885 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) | ||
| 31886 | void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( | ||
| 31887 | ID3D12GraphicsCommandList5 * This, | ||
| 31888 | _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, | ||
| 31889 | _In_ UINT NumSourceAccelerationStructures, | ||
| 31890 | _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); | ||
| 31891 | |||
| 31892 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) | ||
| 31893 | void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( | ||
| 31894 | ID3D12GraphicsCommandList5 * This, | ||
| 31895 | _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, | ||
| 31896 | _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, | ||
| 31897 | _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); | ||
| 31898 | |||
| 31899 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) | ||
| 31900 | void ( STDMETHODCALLTYPE *SetPipelineState1 )( | ||
| 31901 | ID3D12GraphicsCommandList5 * This, | ||
| 31902 | _In_ ID3D12StateObject *pStateObject); | ||
| 31903 | |||
| 31904 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) | ||
| 31905 | void ( STDMETHODCALLTYPE *DispatchRays )( | ||
| 31906 | ID3D12GraphicsCommandList5 * This, | ||
| 31907 | _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); | ||
| 31908 | |||
| 31909 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) | ||
| 31910 | void ( STDMETHODCALLTYPE *RSSetShadingRate )( | ||
| 31911 | ID3D12GraphicsCommandList5 * This, | ||
| 31912 | _In_ D3D12_SHADING_RATE baseShadingRate, | ||
| 31913 | _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); | ||
| 31914 | |||
| 31915 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) | ||
| 31916 | void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( | ||
| 31917 | ID3D12GraphicsCommandList5 * This, | ||
| 31918 | _In_opt_ ID3D12Resource *shadingRateImage); | ||
| 31919 | |||
| 31920 | END_INTERFACE | ||
| 31921 | } ID3D12GraphicsCommandList5Vtbl; | ||
| 31922 | |||
| 31923 | interface ID3D12GraphicsCommandList5 | ||
| 31924 | { | ||
| 31925 | CONST_VTBL struct ID3D12GraphicsCommandList5Vtbl *lpVtbl; | ||
| 31926 | }; | ||
| 31927 | |||
| 31928 | |||
| 31929 | |||
| 31930 | #ifdef COBJMACROS | ||
| 31931 | |||
| 31932 | |||
| 31933 | #define ID3D12GraphicsCommandList5_QueryInterface(This,riid,ppvObject) \ | ||
| 31934 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 31935 | |||
| 31936 | #define ID3D12GraphicsCommandList5_AddRef(This) \ | ||
| 31937 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 31938 | |||
| 31939 | #define ID3D12GraphicsCommandList5_Release(This) \ | ||
| 31940 | ( (This)->lpVtbl -> Release(This) ) | ||
| 31941 | |||
| 31942 | |||
| 31943 | #define ID3D12GraphicsCommandList5_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 31944 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 31945 | |||
| 31946 | #define ID3D12GraphicsCommandList5_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 31947 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 31948 | |||
| 31949 | #define ID3D12GraphicsCommandList5_SetPrivateDataInterface(This,guid,pData) \ | ||
| 31950 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 31951 | |||
| 31952 | #define ID3D12GraphicsCommandList5_SetName(This,Name) \ | ||
| 31953 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 31954 | |||
| 31955 | |||
| 31956 | #define ID3D12GraphicsCommandList5_GetDevice(This,riid,ppvDevice) \ | ||
| 31957 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 31958 | |||
| 31959 | |||
| 31960 | #define ID3D12GraphicsCommandList5_GetType(This) \ | ||
| 31961 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 31962 | |||
| 31963 | |||
| 31964 | #define ID3D12GraphicsCommandList5_Close(This) \ | ||
| 31965 | ( (This)->lpVtbl -> Close(This) ) | ||
| 31966 | |||
| 31967 | #define ID3D12GraphicsCommandList5_Reset(This,pAllocator,pInitialState) \ | ||
| 31968 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 31969 | |||
| 31970 | #define ID3D12GraphicsCommandList5_ClearState(This,pPipelineState) \ | ||
| 31971 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 31972 | |||
| 31973 | #define ID3D12GraphicsCommandList5_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 31974 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 31975 | |||
| 31976 | #define ID3D12GraphicsCommandList5_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 31977 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 31978 | |||
| 31979 | #define ID3D12GraphicsCommandList5_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 31980 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 31981 | |||
| 31982 | #define ID3D12GraphicsCommandList5_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 31983 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 31984 | |||
| 31985 | #define ID3D12GraphicsCommandList5_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 31986 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 31987 | |||
| 31988 | #define ID3D12GraphicsCommandList5_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 31989 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 31990 | |||
| 31991 | #define ID3D12GraphicsCommandList5_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 31992 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 31993 | |||
| 31994 | #define ID3D12GraphicsCommandList5_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 31995 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 31996 | |||
| 31997 | #define ID3D12GraphicsCommandList5_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 31998 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 31999 | |||
| 32000 | #define ID3D12GraphicsCommandList5_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 32001 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 32002 | |||
| 32003 | #define ID3D12GraphicsCommandList5_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 32004 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 32005 | |||
| 32006 | #define ID3D12GraphicsCommandList5_OMSetBlendFactor(This,BlendFactor) \ | ||
| 32007 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 32008 | |||
| 32009 | #define ID3D12GraphicsCommandList5_OMSetStencilRef(This,StencilRef) \ | ||
| 32010 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 32011 | |||
| 32012 | #define ID3D12GraphicsCommandList5_SetPipelineState(This,pPipelineState) \ | ||
| 32013 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 32014 | |||
| 32015 | #define ID3D12GraphicsCommandList5_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 32016 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 32017 | |||
| 32018 | #define ID3D12GraphicsCommandList5_ExecuteBundle(This,pCommandList) \ | ||
| 32019 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 32020 | |||
| 32021 | #define ID3D12GraphicsCommandList5_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 32022 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 32023 | |||
| 32024 | #define ID3D12GraphicsCommandList5_SetComputeRootSignature(This,pRootSignature) \ | ||
| 32025 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 32026 | |||
| 32027 | #define ID3D12GraphicsCommandList5_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 32028 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 32029 | |||
| 32030 | #define ID3D12GraphicsCommandList5_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 32031 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 32032 | |||
| 32033 | #define ID3D12GraphicsCommandList5_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 32034 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 32035 | |||
| 32036 | #define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 32037 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 32038 | |||
| 32039 | #define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 32040 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 32041 | |||
| 32042 | #define ID3D12GraphicsCommandList5_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 32043 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 32044 | |||
| 32045 | #define ID3D12GraphicsCommandList5_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 32046 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 32047 | |||
| 32048 | #define ID3D12GraphicsCommandList5_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 32049 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 32050 | |||
| 32051 | #define ID3D12GraphicsCommandList5_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 32052 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 32053 | |||
| 32054 | #define ID3D12GraphicsCommandList5_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 32055 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 32056 | |||
| 32057 | #define ID3D12GraphicsCommandList5_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 32058 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 32059 | |||
| 32060 | #define ID3D12GraphicsCommandList5_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 32061 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 32062 | |||
| 32063 | #define ID3D12GraphicsCommandList5_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 32064 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 32065 | |||
| 32066 | #define ID3D12GraphicsCommandList5_IASetIndexBuffer(This,pView) \ | ||
| 32067 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 32068 | |||
| 32069 | #define ID3D12GraphicsCommandList5_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 32070 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 32071 | |||
| 32072 | #define ID3D12GraphicsCommandList5_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 32073 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 32074 | |||
| 32075 | #define ID3D12GraphicsCommandList5_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 32076 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 32077 | |||
| 32078 | #define ID3D12GraphicsCommandList5_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 32079 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 32080 | |||
| 32081 | #define ID3D12GraphicsCommandList5_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 32082 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 32083 | |||
| 32084 | #define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 32085 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 32086 | |||
| 32087 | #define ID3D12GraphicsCommandList5_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 32088 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 32089 | |||
| 32090 | #define ID3D12GraphicsCommandList5_DiscardResource(This,pResource,pRegion) \ | ||
| 32091 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 32092 | |||
| 32093 | #define ID3D12GraphicsCommandList5_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 32094 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 32095 | |||
| 32096 | #define ID3D12GraphicsCommandList5_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 32097 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 32098 | |||
| 32099 | #define ID3D12GraphicsCommandList5_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 32100 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 32101 | |||
| 32102 | #define ID3D12GraphicsCommandList5_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 32103 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 32104 | |||
| 32105 | #define ID3D12GraphicsCommandList5_SetMarker(This,Metadata,pData,Size) \ | ||
| 32106 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 32107 | |||
| 32108 | #define ID3D12GraphicsCommandList5_BeginEvent(This,Metadata,pData,Size) \ | ||
| 32109 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 32110 | |||
| 32111 | #define ID3D12GraphicsCommandList5_EndEvent(This) \ | ||
| 32112 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 32113 | |||
| 32114 | #define ID3D12GraphicsCommandList5_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 32115 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 32116 | |||
| 32117 | |||
| 32118 | #define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 32119 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 32120 | |||
| 32121 | #define ID3D12GraphicsCommandList5_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 32122 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 32123 | |||
| 32124 | #define ID3D12GraphicsCommandList5_OMSetDepthBounds(This,Min,Max) \ | ||
| 32125 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 32126 | |||
| 32127 | #define ID3D12GraphicsCommandList5_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 32128 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 32129 | |||
| 32130 | #define ID3D12GraphicsCommandList5_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 32131 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 32132 | |||
| 32133 | #define ID3D12GraphicsCommandList5_SetViewInstanceMask(This,Mask) \ | ||
| 32134 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 32135 | |||
| 32136 | |||
| 32137 | #define ID3D12GraphicsCommandList5_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 32138 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 32139 | |||
| 32140 | |||
| 32141 | #define ID3D12GraphicsCommandList5_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 32142 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 32143 | |||
| 32144 | |||
| 32145 | #define ID3D12GraphicsCommandList5_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ | ||
| 32146 | ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) | ||
| 32147 | |||
| 32148 | #define ID3D12GraphicsCommandList5_EndRenderPass(This) \ | ||
| 32149 | ( (This)->lpVtbl -> EndRenderPass(This) ) | ||
| 32150 | |||
| 32151 | #define ID3D12GraphicsCommandList5_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ | ||
| 32152 | ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) | ||
| 32153 | |||
| 32154 | #define ID3D12GraphicsCommandList5_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ | ||
| 32155 | ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) | ||
| 32156 | |||
| 32157 | #define ID3D12GraphicsCommandList5_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ | ||
| 32158 | ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) | ||
| 32159 | |||
| 32160 | #define ID3D12GraphicsCommandList5_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ | ||
| 32161 | ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) | ||
| 32162 | |||
| 32163 | #define ID3D12GraphicsCommandList5_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ | ||
| 32164 | ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) | ||
| 32165 | |||
| 32166 | #define ID3D12GraphicsCommandList5_SetPipelineState1(This,pStateObject) \ | ||
| 32167 | ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) | ||
| 32168 | |||
| 32169 | #define ID3D12GraphicsCommandList5_DispatchRays(This,pDesc) \ | ||
| 32170 | ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) | ||
| 32171 | |||
| 32172 | |||
| 32173 | #define ID3D12GraphicsCommandList5_RSSetShadingRate(This,baseShadingRate,combiners) \ | ||
| 32174 | ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) | ||
| 32175 | |||
| 32176 | #define ID3D12GraphicsCommandList5_RSSetShadingRateImage(This,shadingRateImage) \ | ||
| 32177 | ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) | ||
| 32178 | |||
| 32179 | #endif /* COBJMACROS */ | ||
| 32180 | |||
| 32181 | |||
| 32182 | #endif /* C style interface */ | ||
| 32183 | |||
| 32184 | |||
| 32185 | |||
| 32186 | |||
| 32187 | #endif /* __ID3D12GraphicsCommandList5_INTERFACE_DEFINED__ */ | ||
| 32188 | |||
| 32189 | |||
| 32190 | /* interface __MIDL_itf_d3d12_0000_0078 */ | ||
| 32191 | /* [local] */ | ||
| 32192 | |||
| 32193 | typedef struct D3D12_DISPATCH_MESH_ARGUMENTS | ||
| 32194 | { | ||
| 32195 | UINT ThreadGroupCountX; | ||
| 32196 | UINT ThreadGroupCountY; | ||
| 32197 | UINT ThreadGroupCountZ; | ||
| 32198 | } D3D12_DISPATCH_MESH_ARGUMENTS; | ||
| 32199 | |||
| 32200 | |||
| 32201 | |||
| 32202 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_c_ifspec; | ||
| 32203 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0078_v0_0_s_ifspec; | ||
| 32204 | |||
| 32205 | #ifndef __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ | ||
| 32206 | #define __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ | ||
| 32207 | |||
| 32208 | /* interface ID3D12GraphicsCommandList6 */ | ||
| 32209 | /* [unique][local][object][uuid] */ | ||
| 32210 | |||
| 32211 | |||
| 32212 | EXTERN_C const IID IID_ID3D12GraphicsCommandList6; | ||
| 32213 | |||
| 32214 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 32215 | |||
| 32216 | MIDL_INTERFACE("c3827890-e548-4cfa-96cf-5689a9370f80") | ||
| 32217 | ID3D12GraphicsCommandList6 : public ID3D12GraphicsCommandList5 | ||
| 32218 | { | ||
| 32219 | public: | ||
| 32220 | virtual void STDMETHODCALLTYPE DispatchMesh( | ||
| 32221 | _In_ UINT ThreadGroupCountX, | ||
| 32222 | _In_ UINT ThreadGroupCountY, | ||
| 32223 | _In_ UINT ThreadGroupCountZ) = 0; | ||
| 32224 | |||
| 32225 | }; | ||
| 32226 | |||
| 32227 | |||
| 32228 | #else /* C style interface */ | ||
| 32229 | |||
| 32230 | typedef struct ID3D12GraphicsCommandList6Vtbl | ||
| 32231 | { | ||
| 32232 | BEGIN_INTERFACE | ||
| 32233 | |||
| 32234 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 32235 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 32236 | ID3D12GraphicsCommandList6 * This, | ||
| 32237 | REFIID riid, | ||
| 32238 | _COM_Outptr_ void **ppvObject); | ||
| 32239 | |||
| 32240 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 32241 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 32242 | ID3D12GraphicsCommandList6 * This); | ||
| 32243 | |||
| 32244 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 32245 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 32246 | ID3D12GraphicsCommandList6 * This); | ||
| 32247 | |||
| 32248 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 32249 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 32250 | ID3D12GraphicsCommandList6 * This, | ||
| 32251 | _In_ REFGUID guid, | ||
| 32252 | _Inout_ UINT *pDataSize, | ||
| 32253 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 32254 | |||
| 32255 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 32256 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 32257 | ID3D12GraphicsCommandList6 * This, | ||
| 32258 | _In_ REFGUID guid, | ||
| 32259 | _In_ UINT DataSize, | ||
| 32260 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 32261 | |||
| 32262 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 32263 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 32264 | ID3D12GraphicsCommandList6 * This, | ||
| 32265 | _In_ REFGUID guid, | ||
| 32266 | _In_opt_ const IUnknown *pData); | ||
| 32267 | |||
| 32268 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 32269 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 32270 | ID3D12GraphicsCommandList6 * This, | ||
| 32271 | _In_z_ LPCWSTR Name); | ||
| 32272 | |||
| 32273 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 32274 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 32275 | ID3D12GraphicsCommandList6 * This, | ||
| 32276 | REFIID riid, | ||
| 32277 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 32278 | |||
| 32279 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 32280 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 32281 | ID3D12GraphicsCommandList6 * This); | ||
| 32282 | |||
| 32283 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 32284 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 32285 | ID3D12GraphicsCommandList6 * This); | ||
| 32286 | |||
| 32287 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 32288 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 32289 | ID3D12GraphicsCommandList6 * This, | ||
| 32290 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 32291 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 32292 | |||
| 32293 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 32294 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 32295 | ID3D12GraphicsCommandList6 * This, | ||
| 32296 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 32297 | |||
| 32298 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 32299 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 32300 | ID3D12GraphicsCommandList6 * This, | ||
| 32301 | _In_ UINT VertexCountPerInstance, | ||
| 32302 | _In_ UINT InstanceCount, | ||
| 32303 | _In_ UINT StartVertexLocation, | ||
| 32304 | _In_ UINT StartInstanceLocation); | ||
| 32305 | |||
| 32306 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 32307 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 32308 | ID3D12GraphicsCommandList6 * This, | ||
| 32309 | _In_ UINT IndexCountPerInstance, | ||
| 32310 | _In_ UINT InstanceCount, | ||
| 32311 | _In_ UINT StartIndexLocation, | ||
| 32312 | _In_ INT BaseVertexLocation, | ||
| 32313 | _In_ UINT StartInstanceLocation); | ||
| 32314 | |||
| 32315 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 32316 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 32317 | ID3D12GraphicsCommandList6 * This, | ||
| 32318 | _In_ UINT ThreadGroupCountX, | ||
| 32319 | _In_ UINT ThreadGroupCountY, | ||
| 32320 | _In_ UINT ThreadGroupCountZ); | ||
| 32321 | |||
| 32322 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 32323 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 32324 | ID3D12GraphicsCommandList6 * This, | ||
| 32325 | _In_ ID3D12Resource *pDstBuffer, | ||
| 32326 | UINT64 DstOffset, | ||
| 32327 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 32328 | UINT64 SrcOffset, | ||
| 32329 | UINT64 NumBytes); | ||
| 32330 | |||
| 32331 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 32332 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 32333 | ID3D12GraphicsCommandList6 * This, | ||
| 32334 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 32335 | UINT DstX, | ||
| 32336 | UINT DstY, | ||
| 32337 | UINT DstZ, | ||
| 32338 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 32339 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 32340 | |||
| 32341 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 32342 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 32343 | ID3D12GraphicsCommandList6 * This, | ||
| 32344 | _In_ ID3D12Resource *pDstResource, | ||
| 32345 | _In_ ID3D12Resource *pSrcResource); | ||
| 32346 | |||
| 32347 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 32348 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 32349 | ID3D12GraphicsCommandList6 * This, | ||
| 32350 | _In_ ID3D12Resource *pTiledResource, | ||
| 32351 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 32352 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 32353 | _In_ ID3D12Resource *pBuffer, | ||
| 32354 | UINT64 BufferStartOffsetInBytes, | ||
| 32355 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 32356 | |||
| 32357 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 32358 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 32359 | ID3D12GraphicsCommandList6 * This, | ||
| 32360 | _In_ ID3D12Resource *pDstResource, | ||
| 32361 | _In_ UINT DstSubresource, | ||
| 32362 | _In_ ID3D12Resource *pSrcResource, | ||
| 32363 | _In_ UINT SrcSubresource, | ||
| 32364 | _In_ DXGI_FORMAT Format); | ||
| 32365 | |||
| 32366 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 32367 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 32368 | ID3D12GraphicsCommandList6 * This, | ||
| 32369 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 32370 | |||
| 32371 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 32372 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 32373 | ID3D12GraphicsCommandList6 * This, | ||
| 32374 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 32375 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 32376 | |||
| 32377 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 32378 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 32379 | ID3D12GraphicsCommandList6 * This, | ||
| 32380 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 32381 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 32382 | |||
| 32383 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 32384 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 32385 | ID3D12GraphicsCommandList6 * This, | ||
| 32386 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 32387 | |||
| 32388 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 32389 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 32390 | ID3D12GraphicsCommandList6 * This, | ||
| 32391 | _In_ UINT StencilRef); | ||
| 32392 | |||
| 32393 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 32394 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 32395 | ID3D12GraphicsCommandList6 * This, | ||
| 32396 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 32397 | |||
| 32398 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 32399 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 32400 | ID3D12GraphicsCommandList6 * This, | ||
| 32401 | _In_ UINT NumBarriers, | ||
| 32402 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 32403 | |||
| 32404 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 32405 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 32406 | ID3D12GraphicsCommandList6 * This, | ||
| 32407 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 32408 | |||
| 32409 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 32410 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 32411 | ID3D12GraphicsCommandList6 * This, | ||
| 32412 | _In_ UINT NumDescriptorHeaps, | ||
| 32413 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 32414 | |||
| 32415 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 32416 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 32417 | ID3D12GraphicsCommandList6 * This, | ||
| 32418 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 32419 | |||
| 32420 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 32421 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 32422 | ID3D12GraphicsCommandList6 * This, | ||
| 32423 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 32424 | |||
| 32425 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 32426 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 32427 | ID3D12GraphicsCommandList6 * This, | ||
| 32428 | _In_ UINT RootParameterIndex, | ||
| 32429 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 32430 | |||
| 32431 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 32432 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 32433 | ID3D12GraphicsCommandList6 * This, | ||
| 32434 | _In_ UINT RootParameterIndex, | ||
| 32435 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 32436 | |||
| 32437 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 32438 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 32439 | ID3D12GraphicsCommandList6 * This, | ||
| 32440 | _In_ UINT RootParameterIndex, | ||
| 32441 | _In_ UINT SrcData, | ||
| 32442 | _In_ UINT DestOffsetIn32BitValues); | ||
| 32443 | |||
| 32444 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 32445 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 32446 | ID3D12GraphicsCommandList6 * This, | ||
| 32447 | _In_ UINT RootParameterIndex, | ||
| 32448 | _In_ UINT SrcData, | ||
| 32449 | _In_ UINT DestOffsetIn32BitValues); | ||
| 32450 | |||
| 32451 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 32452 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 32453 | ID3D12GraphicsCommandList6 * This, | ||
| 32454 | _In_ UINT RootParameterIndex, | ||
| 32455 | _In_ UINT Num32BitValuesToSet, | ||
| 32456 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 32457 | _In_ UINT DestOffsetIn32BitValues); | ||
| 32458 | |||
| 32459 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 32460 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 32461 | ID3D12GraphicsCommandList6 * This, | ||
| 32462 | _In_ UINT RootParameterIndex, | ||
| 32463 | _In_ UINT Num32BitValuesToSet, | ||
| 32464 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 32465 | _In_ UINT DestOffsetIn32BitValues); | ||
| 32466 | |||
| 32467 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 32468 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 32469 | ID3D12GraphicsCommandList6 * This, | ||
| 32470 | _In_ UINT RootParameterIndex, | ||
| 32471 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 32472 | |||
| 32473 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 32474 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 32475 | ID3D12GraphicsCommandList6 * This, | ||
| 32476 | _In_ UINT RootParameterIndex, | ||
| 32477 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 32478 | |||
| 32479 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 32480 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 32481 | ID3D12GraphicsCommandList6 * This, | ||
| 32482 | _In_ UINT RootParameterIndex, | ||
| 32483 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 32484 | |||
| 32485 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 32486 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 32487 | ID3D12GraphicsCommandList6 * This, | ||
| 32488 | _In_ UINT RootParameterIndex, | ||
| 32489 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 32490 | |||
| 32491 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 32492 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 32493 | ID3D12GraphicsCommandList6 * This, | ||
| 32494 | _In_ UINT RootParameterIndex, | ||
| 32495 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 32496 | |||
| 32497 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 32498 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 32499 | ID3D12GraphicsCommandList6 * This, | ||
| 32500 | _In_ UINT RootParameterIndex, | ||
| 32501 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 32502 | |||
| 32503 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 32504 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 32505 | ID3D12GraphicsCommandList6 * This, | ||
| 32506 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 32507 | |||
| 32508 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 32509 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 32510 | ID3D12GraphicsCommandList6 * This, | ||
| 32511 | _In_ UINT StartSlot, | ||
| 32512 | _In_ UINT NumViews, | ||
| 32513 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 32514 | |||
| 32515 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 32516 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 32517 | ID3D12GraphicsCommandList6 * This, | ||
| 32518 | _In_ UINT StartSlot, | ||
| 32519 | _In_ UINT NumViews, | ||
| 32520 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 32521 | |||
| 32522 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 32523 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 32524 | ID3D12GraphicsCommandList6 * This, | ||
| 32525 | _In_ UINT NumRenderTargetDescriptors, | ||
| 32526 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 32527 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 32528 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 32529 | |||
| 32530 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 32531 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 32532 | ID3D12GraphicsCommandList6 * This, | ||
| 32533 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 32534 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 32535 | _In_ FLOAT Depth, | ||
| 32536 | _In_ UINT8 Stencil, | ||
| 32537 | _In_ UINT NumRects, | ||
| 32538 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 32539 | |||
| 32540 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 32541 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 32542 | ID3D12GraphicsCommandList6 * This, | ||
| 32543 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 32544 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 32545 | _In_ UINT NumRects, | ||
| 32546 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 32547 | |||
| 32548 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 32549 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 32550 | ID3D12GraphicsCommandList6 * This, | ||
| 32551 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 32552 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 32553 | _In_ ID3D12Resource *pResource, | ||
| 32554 | _In_ const UINT Values[ 4 ], | ||
| 32555 | _In_ UINT NumRects, | ||
| 32556 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 32557 | |||
| 32558 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 32559 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 32560 | ID3D12GraphicsCommandList6 * This, | ||
| 32561 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 32562 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 32563 | _In_ ID3D12Resource *pResource, | ||
| 32564 | _In_ const FLOAT Values[ 4 ], | ||
| 32565 | _In_ UINT NumRects, | ||
| 32566 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 32567 | |||
| 32568 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 32569 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 32570 | ID3D12GraphicsCommandList6 * This, | ||
| 32571 | _In_ ID3D12Resource *pResource, | ||
| 32572 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 32573 | |||
| 32574 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 32575 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 32576 | ID3D12GraphicsCommandList6 * This, | ||
| 32577 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 32578 | _In_ D3D12_QUERY_TYPE Type, | ||
| 32579 | _In_ UINT Index); | ||
| 32580 | |||
| 32581 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 32582 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 32583 | ID3D12GraphicsCommandList6 * This, | ||
| 32584 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 32585 | _In_ D3D12_QUERY_TYPE Type, | ||
| 32586 | _In_ UINT Index); | ||
| 32587 | |||
| 32588 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 32589 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 32590 | ID3D12GraphicsCommandList6 * This, | ||
| 32591 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 32592 | _In_ D3D12_QUERY_TYPE Type, | ||
| 32593 | _In_ UINT StartIndex, | ||
| 32594 | _In_ UINT NumQueries, | ||
| 32595 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 32596 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 32597 | |||
| 32598 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 32599 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 32600 | ID3D12GraphicsCommandList6 * This, | ||
| 32601 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 32602 | _In_ UINT64 AlignedBufferOffset, | ||
| 32603 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 32604 | |||
| 32605 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 32606 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 32607 | ID3D12GraphicsCommandList6 * This, | ||
| 32608 | UINT Metadata, | ||
| 32609 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 32610 | UINT Size); | ||
| 32611 | |||
| 32612 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 32613 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 32614 | ID3D12GraphicsCommandList6 * This, | ||
| 32615 | UINT Metadata, | ||
| 32616 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 32617 | UINT Size); | ||
| 32618 | |||
| 32619 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 32620 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 32621 | ID3D12GraphicsCommandList6 * This); | ||
| 32622 | |||
| 32623 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 32624 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 32625 | ID3D12GraphicsCommandList6 * This, | ||
| 32626 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 32627 | _In_ UINT MaxCommandCount, | ||
| 32628 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 32629 | _In_ UINT64 ArgumentBufferOffset, | ||
| 32630 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 32631 | _In_ UINT64 CountBufferOffset); | ||
| 32632 | |||
| 32633 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 32634 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 32635 | ID3D12GraphicsCommandList6 * This, | ||
| 32636 | _In_ ID3D12Resource *pDstBuffer, | ||
| 32637 | UINT64 DstOffset, | ||
| 32638 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 32639 | UINT64 SrcOffset, | ||
| 32640 | UINT Dependencies, | ||
| 32641 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 32642 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 32643 | |||
| 32644 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 32645 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 32646 | ID3D12GraphicsCommandList6 * This, | ||
| 32647 | _In_ ID3D12Resource *pDstBuffer, | ||
| 32648 | UINT64 DstOffset, | ||
| 32649 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 32650 | UINT64 SrcOffset, | ||
| 32651 | UINT Dependencies, | ||
| 32652 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 32653 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 32654 | |||
| 32655 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 32656 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 32657 | ID3D12GraphicsCommandList6 * This, | ||
| 32658 | _In_ FLOAT Min, | ||
| 32659 | _In_ FLOAT Max); | ||
| 32660 | |||
| 32661 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 32662 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 32663 | ID3D12GraphicsCommandList6 * This, | ||
| 32664 | _In_ UINT NumSamplesPerPixel, | ||
| 32665 | _In_ UINT NumPixels, | ||
| 32666 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 32667 | |||
| 32668 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 32669 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 32670 | ID3D12GraphicsCommandList6 * This, | ||
| 32671 | _In_ ID3D12Resource *pDstResource, | ||
| 32672 | _In_ UINT DstSubresource, | ||
| 32673 | _In_ UINT DstX, | ||
| 32674 | _In_ UINT DstY, | ||
| 32675 | _In_ ID3D12Resource *pSrcResource, | ||
| 32676 | _In_ UINT SrcSubresource, | ||
| 32677 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 32678 | _In_ DXGI_FORMAT Format, | ||
| 32679 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 32680 | |||
| 32681 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 32682 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 32683 | ID3D12GraphicsCommandList6 * This, | ||
| 32684 | _In_ UINT Mask); | ||
| 32685 | |||
| 32686 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) | ||
| 32687 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 32688 | ID3D12GraphicsCommandList6 * This, | ||
| 32689 | UINT Count, | ||
| 32690 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 32691 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 32692 | |||
| 32693 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) | ||
| 32694 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 32695 | ID3D12GraphicsCommandList6 * This, | ||
| 32696 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 32697 | |||
| 32698 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) | ||
| 32699 | void ( STDMETHODCALLTYPE *BeginRenderPass )( | ||
| 32700 | ID3D12GraphicsCommandList6 * This, | ||
| 32701 | _In_ UINT NumRenderTargets, | ||
| 32702 | _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, | ||
| 32703 | _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, | ||
| 32704 | D3D12_RENDER_PASS_FLAGS Flags); | ||
| 32705 | |||
| 32706 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) | ||
| 32707 | void ( STDMETHODCALLTYPE *EndRenderPass )( | ||
| 32708 | ID3D12GraphicsCommandList6 * This); | ||
| 32709 | |||
| 32710 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) | ||
| 32711 | void ( STDMETHODCALLTYPE *InitializeMetaCommand )( | ||
| 32712 | ID3D12GraphicsCommandList6 * This, | ||
| 32713 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 32714 | _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, | ||
| 32715 | _In_ SIZE_T InitializationParametersDataSizeInBytes); | ||
| 32716 | |||
| 32717 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) | ||
| 32718 | void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( | ||
| 32719 | ID3D12GraphicsCommandList6 * This, | ||
| 32720 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 32721 | _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, | ||
| 32722 | _In_ SIZE_T ExecutionParametersDataSizeInBytes); | ||
| 32723 | |||
| 32724 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) | ||
| 32725 | void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( | ||
| 32726 | ID3D12GraphicsCommandList6 * This, | ||
| 32727 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, | ||
| 32728 | _In_ UINT NumPostbuildInfoDescs, | ||
| 32729 | _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); | ||
| 32730 | |||
| 32731 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) | ||
| 32732 | void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( | ||
| 32733 | ID3D12GraphicsCommandList6 * This, | ||
| 32734 | _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, | ||
| 32735 | _In_ UINT NumSourceAccelerationStructures, | ||
| 32736 | _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); | ||
| 32737 | |||
| 32738 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) | ||
| 32739 | void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( | ||
| 32740 | ID3D12GraphicsCommandList6 * This, | ||
| 32741 | _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, | ||
| 32742 | _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, | ||
| 32743 | _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); | ||
| 32744 | |||
| 32745 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) | ||
| 32746 | void ( STDMETHODCALLTYPE *SetPipelineState1 )( | ||
| 32747 | ID3D12GraphicsCommandList6 * This, | ||
| 32748 | _In_ ID3D12StateObject *pStateObject); | ||
| 32749 | |||
| 32750 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) | ||
| 32751 | void ( STDMETHODCALLTYPE *DispatchRays )( | ||
| 32752 | ID3D12GraphicsCommandList6 * This, | ||
| 32753 | _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); | ||
| 32754 | |||
| 32755 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) | ||
| 32756 | void ( STDMETHODCALLTYPE *RSSetShadingRate )( | ||
| 32757 | ID3D12GraphicsCommandList6 * This, | ||
| 32758 | _In_ D3D12_SHADING_RATE baseShadingRate, | ||
| 32759 | _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); | ||
| 32760 | |||
| 32761 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) | ||
| 32762 | void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( | ||
| 32763 | ID3D12GraphicsCommandList6 * This, | ||
| 32764 | _In_opt_ ID3D12Resource *shadingRateImage); | ||
| 32765 | |||
| 32766 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) | ||
| 32767 | void ( STDMETHODCALLTYPE *DispatchMesh )( | ||
| 32768 | ID3D12GraphicsCommandList6 * This, | ||
| 32769 | _In_ UINT ThreadGroupCountX, | ||
| 32770 | _In_ UINT ThreadGroupCountY, | ||
| 32771 | _In_ UINT ThreadGroupCountZ); | ||
| 32772 | |||
| 32773 | END_INTERFACE | ||
| 32774 | } ID3D12GraphicsCommandList6Vtbl; | ||
| 32775 | |||
| 32776 | interface ID3D12GraphicsCommandList6 | ||
| 32777 | { | ||
| 32778 | CONST_VTBL struct ID3D12GraphicsCommandList6Vtbl *lpVtbl; | ||
| 32779 | }; | ||
| 32780 | |||
| 32781 | |||
| 32782 | |||
| 32783 | #ifdef COBJMACROS | ||
| 32784 | |||
| 32785 | |||
| 32786 | #define ID3D12GraphicsCommandList6_QueryInterface(This,riid,ppvObject) \ | ||
| 32787 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 32788 | |||
| 32789 | #define ID3D12GraphicsCommandList6_AddRef(This) \ | ||
| 32790 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 32791 | |||
| 32792 | #define ID3D12GraphicsCommandList6_Release(This) \ | ||
| 32793 | ( (This)->lpVtbl -> Release(This) ) | ||
| 32794 | |||
| 32795 | |||
| 32796 | #define ID3D12GraphicsCommandList6_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 32797 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 32798 | |||
| 32799 | #define ID3D12GraphicsCommandList6_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 32800 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 32801 | |||
| 32802 | #define ID3D12GraphicsCommandList6_SetPrivateDataInterface(This,guid,pData) \ | ||
| 32803 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 32804 | |||
| 32805 | #define ID3D12GraphicsCommandList6_SetName(This,Name) \ | ||
| 32806 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 32807 | |||
| 32808 | |||
| 32809 | #define ID3D12GraphicsCommandList6_GetDevice(This,riid,ppvDevice) \ | ||
| 32810 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 32811 | |||
| 32812 | |||
| 32813 | #define ID3D12GraphicsCommandList6_GetType(This) \ | ||
| 32814 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 32815 | |||
| 32816 | |||
| 32817 | #define ID3D12GraphicsCommandList6_Close(This) \ | ||
| 32818 | ( (This)->lpVtbl -> Close(This) ) | ||
| 32819 | |||
| 32820 | #define ID3D12GraphicsCommandList6_Reset(This,pAllocator,pInitialState) \ | ||
| 32821 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 32822 | |||
| 32823 | #define ID3D12GraphicsCommandList6_ClearState(This,pPipelineState) \ | ||
| 32824 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 32825 | |||
| 32826 | #define ID3D12GraphicsCommandList6_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 32827 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 32828 | |||
| 32829 | #define ID3D12GraphicsCommandList6_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 32830 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 32831 | |||
| 32832 | #define ID3D12GraphicsCommandList6_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 32833 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 32834 | |||
| 32835 | #define ID3D12GraphicsCommandList6_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 32836 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 32837 | |||
| 32838 | #define ID3D12GraphicsCommandList6_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 32839 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 32840 | |||
| 32841 | #define ID3D12GraphicsCommandList6_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 32842 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 32843 | |||
| 32844 | #define ID3D12GraphicsCommandList6_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 32845 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 32846 | |||
| 32847 | #define ID3D12GraphicsCommandList6_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 32848 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 32849 | |||
| 32850 | #define ID3D12GraphicsCommandList6_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 32851 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 32852 | |||
| 32853 | #define ID3D12GraphicsCommandList6_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 32854 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 32855 | |||
| 32856 | #define ID3D12GraphicsCommandList6_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 32857 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 32858 | |||
| 32859 | #define ID3D12GraphicsCommandList6_OMSetBlendFactor(This,BlendFactor) \ | ||
| 32860 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 32861 | |||
| 32862 | #define ID3D12GraphicsCommandList6_OMSetStencilRef(This,StencilRef) \ | ||
| 32863 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 32864 | |||
| 32865 | #define ID3D12GraphicsCommandList6_SetPipelineState(This,pPipelineState) \ | ||
| 32866 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 32867 | |||
| 32868 | #define ID3D12GraphicsCommandList6_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 32869 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 32870 | |||
| 32871 | #define ID3D12GraphicsCommandList6_ExecuteBundle(This,pCommandList) \ | ||
| 32872 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 32873 | |||
| 32874 | #define ID3D12GraphicsCommandList6_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 32875 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 32876 | |||
| 32877 | #define ID3D12GraphicsCommandList6_SetComputeRootSignature(This,pRootSignature) \ | ||
| 32878 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 32879 | |||
| 32880 | #define ID3D12GraphicsCommandList6_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 32881 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 32882 | |||
| 32883 | #define ID3D12GraphicsCommandList6_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 32884 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 32885 | |||
| 32886 | #define ID3D12GraphicsCommandList6_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 32887 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 32888 | |||
| 32889 | #define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 32890 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 32891 | |||
| 32892 | #define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 32893 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 32894 | |||
| 32895 | #define ID3D12GraphicsCommandList6_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 32896 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 32897 | |||
| 32898 | #define ID3D12GraphicsCommandList6_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 32899 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 32900 | |||
| 32901 | #define ID3D12GraphicsCommandList6_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 32902 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 32903 | |||
| 32904 | #define ID3D12GraphicsCommandList6_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 32905 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 32906 | |||
| 32907 | #define ID3D12GraphicsCommandList6_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 32908 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 32909 | |||
| 32910 | #define ID3D12GraphicsCommandList6_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 32911 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 32912 | |||
| 32913 | #define ID3D12GraphicsCommandList6_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 32914 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 32915 | |||
| 32916 | #define ID3D12GraphicsCommandList6_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 32917 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 32918 | |||
| 32919 | #define ID3D12GraphicsCommandList6_IASetIndexBuffer(This,pView) \ | ||
| 32920 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 32921 | |||
| 32922 | #define ID3D12GraphicsCommandList6_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 32923 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 32924 | |||
| 32925 | #define ID3D12GraphicsCommandList6_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 32926 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 32927 | |||
| 32928 | #define ID3D12GraphicsCommandList6_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 32929 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 32930 | |||
| 32931 | #define ID3D12GraphicsCommandList6_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 32932 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 32933 | |||
| 32934 | #define ID3D12GraphicsCommandList6_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 32935 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 32936 | |||
| 32937 | #define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 32938 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 32939 | |||
| 32940 | #define ID3D12GraphicsCommandList6_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 32941 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 32942 | |||
| 32943 | #define ID3D12GraphicsCommandList6_DiscardResource(This,pResource,pRegion) \ | ||
| 32944 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 32945 | |||
| 32946 | #define ID3D12GraphicsCommandList6_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 32947 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 32948 | |||
| 32949 | #define ID3D12GraphicsCommandList6_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 32950 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 32951 | |||
| 32952 | #define ID3D12GraphicsCommandList6_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 32953 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 32954 | |||
| 32955 | #define ID3D12GraphicsCommandList6_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 32956 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 32957 | |||
| 32958 | #define ID3D12GraphicsCommandList6_SetMarker(This,Metadata,pData,Size) \ | ||
| 32959 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 32960 | |||
| 32961 | #define ID3D12GraphicsCommandList6_BeginEvent(This,Metadata,pData,Size) \ | ||
| 32962 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 32963 | |||
| 32964 | #define ID3D12GraphicsCommandList6_EndEvent(This) \ | ||
| 32965 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 32966 | |||
| 32967 | #define ID3D12GraphicsCommandList6_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 32968 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 32969 | |||
| 32970 | |||
| 32971 | #define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 32972 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 32973 | |||
| 32974 | #define ID3D12GraphicsCommandList6_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 32975 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 32976 | |||
| 32977 | #define ID3D12GraphicsCommandList6_OMSetDepthBounds(This,Min,Max) \ | ||
| 32978 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 32979 | |||
| 32980 | #define ID3D12GraphicsCommandList6_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 32981 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 32982 | |||
| 32983 | #define ID3D12GraphicsCommandList6_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 32984 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 32985 | |||
| 32986 | #define ID3D12GraphicsCommandList6_SetViewInstanceMask(This,Mask) \ | ||
| 32987 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 32988 | |||
| 32989 | |||
| 32990 | #define ID3D12GraphicsCommandList6_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 32991 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 32992 | |||
| 32993 | |||
| 32994 | #define ID3D12GraphicsCommandList6_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 32995 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 32996 | |||
| 32997 | |||
| 32998 | #define ID3D12GraphicsCommandList6_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ | ||
| 32999 | ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) | ||
| 33000 | |||
| 33001 | #define ID3D12GraphicsCommandList6_EndRenderPass(This) \ | ||
| 33002 | ( (This)->lpVtbl -> EndRenderPass(This) ) | ||
| 33003 | |||
| 33004 | #define ID3D12GraphicsCommandList6_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ | ||
| 33005 | ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) | ||
| 33006 | |||
| 33007 | #define ID3D12GraphicsCommandList6_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ | ||
| 33008 | ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) | ||
| 33009 | |||
| 33010 | #define ID3D12GraphicsCommandList6_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ | ||
| 33011 | ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) | ||
| 33012 | |||
| 33013 | #define ID3D12GraphicsCommandList6_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ | ||
| 33014 | ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) | ||
| 33015 | |||
| 33016 | #define ID3D12GraphicsCommandList6_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ | ||
| 33017 | ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) | ||
| 33018 | |||
| 33019 | #define ID3D12GraphicsCommandList6_SetPipelineState1(This,pStateObject) \ | ||
| 33020 | ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) | ||
| 33021 | |||
| 33022 | #define ID3D12GraphicsCommandList6_DispatchRays(This,pDesc) \ | ||
| 33023 | ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) | ||
| 33024 | |||
| 33025 | |||
| 33026 | #define ID3D12GraphicsCommandList6_RSSetShadingRate(This,baseShadingRate,combiners) \ | ||
| 33027 | ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) | ||
| 33028 | |||
| 33029 | #define ID3D12GraphicsCommandList6_RSSetShadingRateImage(This,shadingRateImage) \ | ||
| 33030 | ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) | ||
| 33031 | |||
| 33032 | |||
| 33033 | #define ID3D12GraphicsCommandList6_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 33034 | ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 33035 | |||
| 33036 | #endif /* COBJMACROS */ | ||
| 33037 | |||
| 33038 | |||
| 33039 | #endif /* C style interface */ | ||
| 33040 | |||
| 33041 | |||
| 33042 | |||
| 33043 | |||
| 33044 | #endif /* __ID3D12GraphicsCommandList6_INTERFACE_DEFINED__ */ | ||
| 33045 | |||
| 33046 | |||
| 33047 | #ifndef __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ | ||
| 33048 | #define __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ | ||
| 33049 | |||
| 33050 | /* interface ID3D12GraphicsCommandList7 */ | ||
| 33051 | /* [unique][local][object][uuid] */ | ||
| 33052 | |||
| 33053 | |||
| 33054 | EXTERN_C const IID IID_ID3D12GraphicsCommandList7; | ||
| 33055 | |||
| 33056 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 33057 | |||
| 33058 | MIDL_INTERFACE("dd171223-8b61-4769-90e3-160ccde4e2c1") | ||
| 33059 | ID3D12GraphicsCommandList7 : public ID3D12GraphicsCommandList6 | ||
| 33060 | { | ||
| 33061 | public: | ||
| 33062 | virtual void STDMETHODCALLTYPE Barrier( | ||
| 33063 | UINT32 NumBarrierGroups, | ||
| 33064 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0; | ||
| 33065 | |||
| 33066 | }; | ||
| 33067 | |||
| 33068 | |||
| 33069 | #else /* C style interface */ | ||
| 33070 | |||
| 33071 | typedef struct ID3D12GraphicsCommandList7Vtbl | ||
| 33072 | { | ||
| 33073 | BEGIN_INTERFACE | ||
| 33074 | |||
| 33075 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 33076 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 33077 | ID3D12GraphicsCommandList7 * This, | ||
| 33078 | REFIID riid, | ||
| 33079 | _COM_Outptr_ void **ppvObject); | ||
| 33080 | |||
| 33081 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 33082 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 33083 | ID3D12GraphicsCommandList7 * This); | ||
| 33084 | |||
| 33085 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 33086 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 33087 | ID3D12GraphicsCommandList7 * This); | ||
| 33088 | |||
| 33089 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 33090 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 33091 | ID3D12GraphicsCommandList7 * This, | ||
| 33092 | _In_ REFGUID guid, | ||
| 33093 | _Inout_ UINT *pDataSize, | ||
| 33094 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 33095 | |||
| 33096 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 33097 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 33098 | ID3D12GraphicsCommandList7 * This, | ||
| 33099 | _In_ REFGUID guid, | ||
| 33100 | _In_ UINT DataSize, | ||
| 33101 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 33102 | |||
| 33103 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 33104 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 33105 | ID3D12GraphicsCommandList7 * This, | ||
| 33106 | _In_ REFGUID guid, | ||
| 33107 | _In_opt_ const IUnknown *pData); | ||
| 33108 | |||
| 33109 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 33110 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 33111 | ID3D12GraphicsCommandList7 * This, | ||
| 33112 | _In_z_ LPCWSTR Name); | ||
| 33113 | |||
| 33114 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 33115 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 33116 | ID3D12GraphicsCommandList7 * This, | ||
| 33117 | REFIID riid, | ||
| 33118 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 33119 | |||
| 33120 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 33121 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 33122 | ID3D12GraphicsCommandList7 * This); | ||
| 33123 | |||
| 33124 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 33125 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 33126 | ID3D12GraphicsCommandList7 * This); | ||
| 33127 | |||
| 33128 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 33129 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 33130 | ID3D12GraphicsCommandList7 * This, | ||
| 33131 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 33132 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 33133 | |||
| 33134 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 33135 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 33136 | ID3D12GraphicsCommandList7 * This, | ||
| 33137 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 33138 | |||
| 33139 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 33140 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 33141 | ID3D12GraphicsCommandList7 * This, | ||
| 33142 | _In_ UINT VertexCountPerInstance, | ||
| 33143 | _In_ UINT InstanceCount, | ||
| 33144 | _In_ UINT StartVertexLocation, | ||
| 33145 | _In_ UINT StartInstanceLocation); | ||
| 33146 | |||
| 33147 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 33148 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 33149 | ID3D12GraphicsCommandList7 * This, | ||
| 33150 | _In_ UINT IndexCountPerInstance, | ||
| 33151 | _In_ UINT InstanceCount, | ||
| 33152 | _In_ UINT StartIndexLocation, | ||
| 33153 | _In_ INT BaseVertexLocation, | ||
| 33154 | _In_ UINT StartInstanceLocation); | ||
| 33155 | |||
| 33156 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 33157 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 33158 | ID3D12GraphicsCommandList7 * This, | ||
| 33159 | _In_ UINT ThreadGroupCountX, | ||
| 33160 | _In_ UINT ThreadGroupCountY, | ||
| 33161 | _In_ UINT ThreadGroupCountZ); | ||
| 33162 | |||
| 33163 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 33164 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 33165 | ID3D12GraphicsCommandList7 * This, | ||
| 33166 | _In_ ID3D12Resource *pDstBuffer, | ||
| 33167 | UINT64 DstOffset, | ||
| 33168 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 33169 | UINT64 SrcOffset, | ||
| 33170 | UINT64 NumBytes); | ||
| 33171 | |||
| 33172 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 33173 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 33174 | ID3D12GraphicsCommandList7 * This, | ||
| 33175 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 33176 | UINT DstX, | ||
| 33177 | UINT DstY, | ||
| 33178 | UINT DstZ, | ||
| 33179 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 33180 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 33181 | |||
| 33182 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 33183 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 33184 | ID3D12GraphicsCommandList7 * This, | ||
| 33185 | _In_ ID3D12Resource *pDstResource, | ||
| 33186 | _In_ ID3D12Resource *pSrcResource); | ||
| 33187 | |||
| 33188 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 33189 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 33190 | ID3D12GraphicsCommandList7 * This, | ||
| 33191 | _In_ ID3D12Resource *pTiledResource, | ||
| 33192 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 33193 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 33194 | _In_ ID3D12Resource *pBuffer, | ||
| 33195 | UINT64 BufferStartOffsetInBytes, | ||
| 33196 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 33197 | |||
| 33198 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 33199 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 33200 | ID3D12GraphicsCommandList7 * This, | ||
| 33201 | _In_ ID3D12Resource *pDstResource, | ||
| 33202 | _In_ UINT DstSubresource, | ||
| 33203 | _In_ ID3D12Resource *pSrcResource, | ||
| 33204 | _In_ UINT SrcSubresource, | ||
| 33205 | _In_ DXGI_FORMAT Format); | ||
| 33206 | |||
| 33207 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 33208 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 33209 | ID3D12GraphicsCommandList7 * This, | ||
| 33210 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 33211 | |||
| 33212 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 33213 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 33214 | ID3D12GraphicsCommandList7 * This, | ||
| 33215 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 33216 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 33217 | |||
| 33218 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 33219 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 33220 | ID3D12GraphicsCommandList7 * This, | ||
| 33221 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 33222 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 33223 | |||
| 33224 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 33225 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 33226 | ID3D12GraphicsCommandList7 * This, | ||
| 33227 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 33228 | |||
| 33229 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 33230 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 33231 | ID3D12GraphicsCommandList7 * This, | ||
| 33232 | _In_ UINT StencilRef); | ||
| 33233 | |||
| 33234 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 33235 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 33236 | ID3D12GraphicsCommandList7 * This, | ||
| 33237 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 33238 | |||
| 33239 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 33240 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 33241 | ID3D12GraphicsCommandList7 * This, | ||
| 33242 | _In_ UINT NumBarriers, | ||
| 33243 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 33244 | |||
| 33245 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 33246 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 33247 | ID3D12GraphicsCommandList7 * This, | ||
| 33248 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 33249 | |||
| 33250 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 33251 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 33252 | ID3D12GraphicsCommandList7 * This, | ||
| 33253 | _In_ UINT NumDescriptorHeaps, | ||
| 33254 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 33255 | |||
| 33256 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 33257 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 33258 | ID3D12GraphicsCommandList7 * This, | ||
| 33259 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 33260 | |||
| 33261 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 33262 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 33263 | ID3D12GraphicsCommandList7 * This, | ||
| 33264 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 33265 | |||
| 33266 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 33267 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 33268 | ID3D12GraphicsCommandList7 * This, | ||
| 33269 | _In_ UINT RootParameterIndex, | ||
| 33270 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 33271 | |||
| 33272 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 33273 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 33274 | ID3D12GraphicsCommandList7 * This, | ||
| 33275 | _In_ UINT RootParameterIndex, | ||
| 33276 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 33277 | |||
| 33278 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 33279 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 33280 | ID3D12GraphicsCommandList7 * This, | ||
| 33281 | _In_ UINT RootParameterIndex, | ||
| 33282 | _In_ UINT SrcData, | ||
| 33283 | _In_ UINT DestOffsetIn32BitValues); | ||
| 33284 | |||
| 33285 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 33286 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 33287 | ID3D12GraphicsCommandList7 * This, | ||
| 33288 | _In_ UINT RootParameterIndex, | ||
| 33289 | _In_ UINT SrcData, | ||
| 33290 | _In_ UINT DestOffsetIn32BitValues); | ||
| 33291 | |||
| 33292 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 33293 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 33294 | ID3D12GraphicsCommandList7 * This, | ||
| 33295 | _In_ UINT RootParameterIndex, | ||
| 33296 | _In_ UINT Num32BitValuesToSet, | ||
| 33297 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 33298 | _In_ UINT DestOffsetIn32BitValues); | ||
| 33299 | |||
| 33300 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 33301 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 33302 | ID3D12GraphicsCommandList7 * This, | ||
| 33303 | _In_ UINT RootParameterIndex, | ||
| 33304 | _In_ UINT Num32BitValuesToSet, | ||
| 33305 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 33306 | _In_ UINT DestOffsetIn32BitValues); | ||
| 33307 | |||
| 33308 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 33309 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 33310 | ID3D12GraphicsCommandList7 * This, | ||
| 33311 | _In_ UINT RootParameterIndex, | ||
| 33312 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 33313 | |||
| 33314 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 33315 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 33316 | ID3D12GraphicsCommandList7 * This, | ||
| 33317 | _In_ UINT RootParameterIndex, | ||
| 33318 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 33319 | |||
| 33320 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 33321 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 33322 | ID3D12GraphicsCommandList7 * This, | ||
| 33323 | _In_ UINT RootParameterIndex, | ||
| 33324 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 33325 | |||
| 33326 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 33327 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 33328 | ID3D12GraphicsCommandList7 * This, | ||
| 33329 | _In_ UINT RootParameterIndex, | ||
| 33330 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 33331 | |||
| 33332 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 33333 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 33334 | ID3D12GraphicsCommandList7 * This, | ||
| 33335 | _In_ UINT RootParameterIndex, | ||
| 33336 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 33337 | |||
| 33338 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 33339 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 33340 | ID3D12GraphicsCommandList7 * This, | ||
| 33341 | _In_ UINT RootParameterIndex, | ||
| 33342 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 33343 | |||
| 33344 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 33345 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 33346 | ID3D12GraphicsCommandList7 * This, | ||
| 33347 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 33348 | |||
| 33349 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 33350 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 33351 | ID3D12GraphicsCommandList7 * This, | ||
| 33352 | _In_ UINT StartSlot, | ||
| 33353 | _In_ UINT NumViews, | ||
| 33354 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 33355 | |||
| 33356 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 33357 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 33358 | ID3D12GraphicsCommandList7 * This, | ||
| 33359 | _In_ UINT StartSlot, | ||
| 33360 | _In_ UINT NumViews, | ||
| 33361 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 33362 | |||
| 33363 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 33364 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 33365 | ID3D12GraphicsCommandList7 * This, | ||
| 33366 | _In_ UINT NumRenderTargetDescriptors, | ||
| 33367 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 33368 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 33369 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 33370 | |||
| 33371 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 33372 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 33373 | ID3D12GraphicsCommandList7 * This, | ||
| 33374 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 33375 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 33376 | _In_ FLOAT Depth, | ||
| 33377 | _In_ UINT8 Stencil, | ||
| 33378 | _In_ UINT NumRects, | ||
| 33379 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 33380 | |||
| 33381 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 33382 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 33383 | ID3D12GraphicsCommandList7 * This, | ||
| 33384 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 33385 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 33386 | _In_ UINT NumRects, | ||
| 33387 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 33388 | |||
| 33389 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 33390 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 33391 | ID3D12GraphicsCommandList7 * This, | ||
| 33392 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 33393 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 33394 | _In_ ID3D12Resource *pResource, | ||
| 33395 | _In_ const UINT Values[ 4 ], | ||
| 33396 | _In_ UINT NumRects, | ||
| 33397 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 33398 | |||
| 33399 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 33400 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 33401 | ID3D12GraphicsCommandList7 * This, | ||
| 33402 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 33403 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 33404 | _In_ ID3D12Resource *pResource, | ||
| 33405 | _In_ const FLOAT Values[ 4 ], | ||
| 33406 | _In_ UINT NumRects, | ||
| 33407 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 33408 | |||
| 33409 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 33410 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 33411 | ID3D12GraphicsCommandList7 * This, | ||
| 33412 | _In_ ID3D12Resource *pResource, | ||
| 33413 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 33414 | |||
| 33415 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 33416 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 33417 | ID3D12GraphicsCommandList7 * This, | ||
| 33418 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 33419 | _In_ D3D12_QUERY_TYPE Type, | ||
| 33420 | _In_ UINT Index); | ||
| 33421 | |||
| 33422 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 33423 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 33424 | ID3D12GraphicsCommandList7 * This, | ||
| 33425 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 33426 | _In_ D3D12_QUERY_TYPE Type, | ||
| 33427 | _In_ UINT Index); | ||
| 33428 | |||
| 33429 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 33430 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 33431 | ID3D12GraphicsCommandList7 * This, | ||
| 33432 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 33433 | _In_ D3D12_QUERY_TYPE Type, | ||
| 33434 | _In_ UINT StartIndex, | ||
| 33435 | _In_ UINT NumQueries, | ||
| 33436 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 33437 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 33438 | |||
| 33439 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 33440 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 33441 | ID3D12GraphicsCommandList7 * This, | ||
| 33442 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 33443 | _In_ UINT64 AlignedBufferOffset, | ||
| 33444 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 33445 | |||
| 33446 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 33447 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 33448 | ID3D12GraphicsCommandList7 * This, | ||
| 33449 | UINT Metadata, | ||
| 33450 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 33451 | UINT Size); | ||
| 33452 | |||
| 33453 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 33454 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 33455 | ID3D12GraphicsCommandList7 * This, | ||
| 33456 | UINT Metadata, | ||
| 33457 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 33458 | UINT Size); | ||
| 33459 | |||
| 33460 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 33461 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 33462 | ID3D12GraphicsCommandList7 * This); | ||
| 33463 | |||
| 33464 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 33465 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 33466 | ID3D12GraphicsCommandList7 * This, | ||
| 33467 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 33468 | _In_ UINT MaxCommandCount, | ||
| 33469 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 33470 | _In_ UINT64 ArgumentBufferOffset, | ||
| 33471 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 33472 | _In_ UINT64 CountBufferOffset); | ||
| 33473 | |||
| 33474 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 33475 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 33476 | ID3D12GraphicsCommandList7 * This, | ||
| 33477 | _In_ ID3D12Resource *pDstBuffer, | ||
| 33478 | UINT64 DstOffset, | ||
| 33479 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 33480 | UINT64 SrcOffset, | ||
| 33481 | UINT Dependencies, | ||
| 33482 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 33483 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 33484 | |||
| 33485 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 33486 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 33487 | ID3D12GraphicsCommandList7 * This, | ||
| 33488 | _In_ ID3D12Resource *pDstBuffer, | ||
| 33489 | UINT64 DstOffset, | ||
| 33490 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 33491 | UINT64 SrcOffset, | ||
| 33492 | UINT Dependencies, | ||
| 33493 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 33494 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 33495 | |||
| 33496 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 33497 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 33498 | ID3D12GraphicsCommandList7 * This, | ||
| 33499 | _In_ FLOAT Min, | ||
| 33500 | _In_ FLOAT Max); | ||
| 33501 | |||
| 33502 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 33503 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 33504 | ID3D12GraphicsCommandList7 * This, | ||
| 33505 | _In_ UINT NumSamplesPerPixel, | ||
| 33506 | _In_ UINT NumPixels, | ||
| 33507 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 33508 | |||
| 33509 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 33510 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 33511 | ID3D12GraphicsCommandList7 * This, | ||
| 33512 | _In_ ID3D12Resource *pDstResource, | ||
| 33513 | _In_ UINT DstSubresource, | ||
| 33514 | _In_ UINT DstX, | ||
| 33515 | _In_ UINT DstY, | ||
| 33516 | _In_ ID3D12Resource *pSrcResource, | ||
| 33517 | _In_ UINT SrcSubresource, | ||
| 33518 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 33519 | _In_ DXGI_FORMAT Format, | ||
| 33520 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 33521 | |||
| 33522 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 33523 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 33524 | ID3D12GraphicsCommandList7 * This, | ||
| 33525 | _In_ UINT Mask); | ||
| 33526 | |||
| 33527 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) | ||
| 33528 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 33529 | ID3D12GraphicsCommandList7 * This, | ||
| 33530 | UINT Count, | ||
| 33531 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 33532 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 33533 | |||
| 33534 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) | ||
| 33535 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 33536 | ID3D12GraphicsCommandList7 * This, | ||
| 33537 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 33538 | |||
| 33539 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) | ||
| 33540 | void ( STDMETHODCALLTYPE *BeginRenderPass )( | ||
| 33541 | ID3D12GraphicsCommandList7 * This, | ||
| 33542 | _In_ UINT NumRenderTargets, | ||
| 33543 | _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, | ||
| 33544 | _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, | ||
| 33545 | D3D12_RENDER_PASS_FLAGS Flags); | ||
| 33546 | |||
| 33547 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) | ||
| 33548 | void ( STDMETHODCALLTYPE *EndRenderPass )( | ||
| 33549 | ID3D12GraphicsCommandList7 * This); | ||
| 33550 | |||
| 33551 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) | ||
| 33552 | void ( STDMETHODCALLTYPE *InitializeMetaCommand )( | ||
| 33553 | ID3D12GraphicsCommandList7 * This, | ||
| 33554 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 33555 | _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, | ||
| 33556 | _In_ SIZE_T InitializationParametersDataSizeInBytes); | ||
| 33557 | |||
| 33558 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) | ||
| 33559 | void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( | ||
| 33560 | ID3D12GraphicsCommandList7 * This, | ||
| 33561 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 33562 | _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, | ||
| 33563 | _In_ SIZE_T ExecutionParametersDataSizeInBytes); | ||
| 33564 | |||
| 33565 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) | ||
| 33566 | void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( | ||
| 33567 | ID3D12GraphicsCommandList7 * This, | ||
| 33568 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, | ||
| 33569 | _In_ UINT NumPostbuildInfoDescs, | ||
| 33570 | _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); | ||
| 33571 | |||
| 33572 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) | ||
| 33573 | void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( | ||
| 33574 | ID3D12GraphicsCommandList7 * This, | ||
| 33575 | _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, | ||
| 33576 | _In_ UINT NumSourceAccelerationStructures, | ||
| 33577 | _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); | ||
| 33578 | |||
| 33579 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) | ||
| 33580 | void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( | ||
| 33581 | ID3D12GraphicsCommandList7 * This, | ||
| 33582 | _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, | ||
| 33583 | _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, | ||
| 33584 | _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); | ||
| 33585 | |||
| 33586 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) | ||
| 33587 | void ( STDMETHODCALLTYPE *SetPipelineState1 )( | ||
| 33588 | ID3D12GraphicsCommandList7 * This, | ||
| 33589 | _In_ ID3D12StateObject *pStateObject); | ||
| 33590 | |||
| 33591 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) | ||
| 33592 | void ( STDMETHODCALLTYPE *DispatchRays )( | ||
| 33593 | ID3D12GraphicsCommandList7 * This, | ||
| 33594 | _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); | ||
| 33595 | |||
| 33596 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) | ||
| 33597 | void ( STDMETHODCALLTYPE *RSSetShadingRate )( | ||
| 33598 | ID3D12GraphicsCommandList7 * This, | ||
| 33599 | _In_ D3D12_SHADING_RATE baseShadingRate, | ||
| 33600 | _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); | ||
| 33601 | |||
| 33602 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) | ||
| 33603 | void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( | ||
| 33604 | ID3D12GraphicsCommandList7 * This, | ||
| 33605 | _In_opt_ ID3D12Resource *shadingRateImage); | ||
| 33606 | |||
| 33607 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) | ||
| 33608 | void ( STDMETHODCALLTYPE *DispatchMesh )( | ||
| 33609 | ID3D12GraphicsCommandList7 * This, | ||
| 33610 | _In_ UINT ThreadGroupCountX, | ||
| 33611 | _In_ UINT ThreadGroupCountY, | ||
| 33612 | _In_ UINT ThreadGroupCountZ); | ||
| 33613 | |||
| 33614 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) | ||
| 33615 | void ( STDMETHODCALLTYPE *Barrier )( | ||
| 33616 | ID3D12GraphicsCommandList7 * This, | ||
| 33617 | UINT32 NumBarrierGroups, | ||
| 33618 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); | ||
| 33619 | |||
| 33620 | END_INTERFACE | ||
| 33621 | } ID3D12GraphicsCommandList7Vtbl; | ||
| 33622 | |||
| 33623 | interface ID3D12GraphicsCommandList7 | ||
| 33624 | { | ||
| 33625 | CONST_VTBL struct ID3D12GraphicsCommandList7Vtbl *lpVtbl; | ||
| 33626 | }; | ||
| 33627 | |||
| 33628 | |||
| 33629 | |||
| 33630 | #ifdef COBJMACROS | ||
| 33631 | |||
| 33632 | |||
| 33633 | #define ID3D12GraphicsCommandList7_QueryInterface(This,riid,ppvObject) \ | ||
| 33634 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 33635 | |||
| 33636 | #define ID3D12GraphicsCommandList7_AddRef(This) \ | ||
| 33637 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 33638 | |||
| 33639 | #define ID3D12GraphicsCommandList7_Release(This) \ | ||
| 33640 | ( (This)->lpVtbl -> Release(This) ) | ||
| 33641 | |||
| 33642 | |||
| 33643 | #define ID3D12GraphicsCommandList7_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 33644 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 33645 | |||
| 33646 | #define ID3D12GraphicsCommandList7_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 33647 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 33648 | |||
| 33649 | #define ID3D12GraphicsCommandList7_SetPrivateDataInterface(This,guid,pData) \ | ||
| 33650 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 33651 | |||
| 33652 | #define ID3D12GraphicsCommandList7_SetName(This,Name) \ | ||
| 33653 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 33654 | |||
| 33655 | |||
| 33656 | #define ID3D12GraphicsCommandList7_GetDevice(This,riid,ppvDevice) \ | ||
| 33657 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 33658 | |||
| 33659 | |||
| 33660 | #define ID3D12GraphicsCommandList7_GetType(This) \ | ||
| 33661 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 33662 | |||
| 33663 | |||
| 33664 | #define ID3D12GraphicsCommandList7_Close(This) \ | ||
| 33665 | ( (This)->lpVtbl -> Close(This) ) | ||
| 33666 | |||
| 33667 | #define ID3D12GraphicsCommandList7_Reset(This,pAllocator,pInitialState) \ | ||
| 33668 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 33669 | |||
| 33670 | #define ID3D12GraphicsCommandList7_ClearState(This,pPipelineState) \ | ||
| 33671 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 33672 | |||
| 33673 | #define ID3D12GraphicsCommandList7_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 33674 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 33675 | |||
| 33676 | #define ID3D12GraphicsCommandList7_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 33677 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 33678 | |||
| 33679 | #define ID3D12GraphicsCommandList7_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 33680 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 33681 | |||
| 33682 | #define ID3D12GraphicsCommandList7_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 33683 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 33684 | |||
| 33685 | #define ID3D12GraphicsCommandList7_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 33686 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 33687 | |||
| 33688 | #define ID3D12GraphicsCommandList7_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 33689 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 33690 | |||
| 33691 | #define ID3D12GraphicsCommandList7_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 33692 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 33693 | |||
| 33694 | #define ID3D12GraphicsCommandList7_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 33695 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 33696 | |||
| 33697 | #define ID3D12GraphicsCommandList7_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 33698 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 33699 | |||
| 33700 | #define ID3D12GraphicsCommandList7_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 33701 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 33702 | |||
| 33703 | #define ID3D12GraphicsCommandList7_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 33704 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 33705 | |||
| 33706 | #define ID3D12GraphicsCommandList7_OMSetBlendFactor(This,BlendFactor) \ | ||
| 33707 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 33708 | |||
| 33709 | #define ID3D12GraphicsCommandList7_OMSetStencilRef(This,StencilRef) \ | ||
| 33710 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 33711 | |||
| 33712 | #define ID3D12GraphicsCommandList7_SetPipelineState(This,pPipelineState) \ | ||
| 33713 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 33714 | |||
| 33715 | #define ID3D12GraphicsCommandList7_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 33716 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 33717 | |||
| 33718 | #define ID3D12GraphicsCommandList7_ExecuteBundle(This,pCommandList) \ | ||
| 33719 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 33720 | |||
| 33721 | #define ID3D12GraphicsCommandList7_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 33722 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 33723 | |||
| 33724 | #define ID3D12GraphicsCommandList7_SetComputeRootSignature(This,pRootSignature) \ | ||
| 33725 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 33726 | |||
| 33727 | #define ID3D12GraphicsCommandList7_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 33728 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 33729 | |||
| 33730 | #define ID3D12GraphicsCommandList7_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 33731 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 33732 | |||
| 33733 | #define ID3D12GraphicsCommandList7_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 33734 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 33735 | |||
| 33736 | #define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 33737 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 33738 | |||
| 33739 | #define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 33740 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 33741 | |||
| 33742 | #define ID3D12GraphicsCommandList7_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 33743 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 33744 | |||
| 33745 | #define ID3D12GraphicsCommandList7_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 33746 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 33747 | |||
| 33748 | #define ID3D12GraphicsCommandList7_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 33749 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 33750 | |||
| 33751 | #define ID3D12GraphicsCommandList7_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 33752 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 33753 | |||
| 33754 | #define ID3D12GraphicsCommandList7_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 33755 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 33756 | |||
| 33757 | #define ID3D12GraphicsCommandList7_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 33758 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 33759 | |||
| 33760 | #define ID3D12GraphicsCommandList7_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 33761 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 33762 | |||
| 33763 | #define ID3D12GraphicsCommandList7_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 33764 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 33765 | |||
| 33766 | #define ID3D12GraphicsCommandList7_IASetIndexBuffer(This,pView) \ | ||
| 33767 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 33768 | |||
| 33769 | #define ID3D12GraphicsCommandList7_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 33770 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 33771 | |||
| 33772 | #define ID3D12GraphicsCommandList7_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 33773 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 33774 | |||
| 33775 | #define ID3D12GraphicsCommandList7_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 33776 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 33777 | |||
| 33778 | #define ID3D12GraphicsCommandList7_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 33779 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 33780 | |||
| 33781 | #define ID3D12GraphicsCommandList7_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 33782 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 33783 | |||
| 33784 | #define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 33785 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 33786 | |||
| 33787 | #define ID3D12GraphicsCommandList7_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 33788 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 33789 | |||
| 33790 | #define ID3D12GraphicsCommandList7_DiscardResource(This,pResource,pRegion) \ | ||
| 33791 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 33792 | |||
| 33793 | #define ID3D12GraphicsCommandList7_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 33794 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 33795 | |||
| 33796 | #define ID3D12GraphicsCommandList7_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 33797 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 33798 | |||
| 33799 | #define ID3D12GraphicsCommandList7_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 33800 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 33801 | |||
| 33802 | #define ID3D12GraphicsCommandList7_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 33803 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 33804 | |||
| 33805 | #define ID3D12GraphicsCommandList7_SetMarker(This,Metadata,pData,Size) \ | ||
| 33806 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 33807 | |||
| 33808 | #define ID3D12GraphicsCommandList7_BeginEvent(This,Metadata,pData,Size) \ | ||
| 33809 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 33810 | |||
| 33811 | #define ID3D12GraphicsCommandList7_EndEvent(This) \ | ||
| 33812 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 33813 | |||
| 33814 | #define ID3D12GraphicsCommandList7_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 33815 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 33816 | |||
| 33817 | |||
| 33818 | #define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 33819 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 33820 | |||
| 33821 | #define ID3D12GraphicsCommandList7_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 33822 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 33823 | |||
| 33824 | #define ID3D12GraphicsCommandList7_OMSetDepthBounds(This,Min,Max) \ | ||
| 33825 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 33826 | |||
| 33827 | #define ID3D12GraphicsCommandList7_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 33828 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 33829 | |||
| 33830 | #define ID3D12GraphicsCommandList7_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 33831 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 33832 | |||
| 33833 | #define ID3D12GraphicsCommandList7_SetViewInstanceMask(This,Mask) \ | ||
| 33834 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 33835 | |||
| 33836 | |||
| 33837 | #define ID3D12GraphicsCommandList7_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 33838 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 33839 | |||
| 33840 | |||
| 33841 | #define ID3D12GraphicsCommandList7_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 33842 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 33843 | |||
| 33844 | |||
| 33845 | #define ID3D12GraphicsCommandList7_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ | ||
| 33846 | ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) | ||
| 33847 | |||
| 33848 | #define ID3D12GraphicsCommandList7_EndRenderPass(This) \ | ||
| 33849 | ( (This)->lpVtbl -> EndRenderPass(This) ) | ||
| 33850 | |||
| 33851 | #define ID3D12GraphicsCommandList7_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ | ||
| 33852 | ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) | ||
| 33853 | |||
| 33854 | #define ID3D12GraphicsCommandList7_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ | ||
| 33855 | ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) | ||
| 33856 | |||
| 33857 | #define ID3D12GraphicsCommandList7_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ | ||
| 33858 | ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) | ||
| 33859 | |||
| 33860 | #define ID3D12GraphicsCommandList7_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ | ||
| 33861 | ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) | ||
| 33862 | |||
| 33863 | #define ID3D12GraphicsCommandList7_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ | ||
| 33864 | ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) | ||
| 33865 | |||
| 33866 | #define ID3D12GraphicsCommandList7_SetPipelineState1(This,pStateObject) \ | ||
| 33867 | ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) | ||
| 33868 | |||
| 33869 | #define ID3D12GraphicsCommandList7_DispatchRays(This,pDesc) \ | ||
| 33870 | ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) | ||
| 33871 | |||
| 33872 | |||
| 33873 | #define ID3D12GraphicsCommandList7_RSSetShadingRate(This,baseShadingRate,combiners) \ | ||
| 33874 | ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) | ||
| 33875 | |||
| 33876 | #define ID3D12GraphicsCommandList7_RSSetShadingRateImage(This,shadingRateImage) \ | ||
| 33877 | ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) | ||
| 33878 | |||
| 33879 | |||
| 33880 | #define ID3D12GraphicsCommandList7_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 33881 | ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 33882 | |||
| 33883 | |||
| 33884 | #define ID3D12GraphicsCommandList7_Barrier(This,NumBarrierGroups,pBarrierGroups) \ | ||
| 33885 | ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) | ||
| 33886 | |||
| 33887 | #endif /* COBJMACROS */ | ||
| 33888 | |||
| 33889 | |||
| 33890 | #endif /* C style interface */ | ||
| 33891 | |||
| 33892 | |||
| 33893 | |||
| 33894 | |||
| 33895 | #endif /* __ID3D12GraphicsCommandList7_INTERFACE_DEFINED__ */ | ||
| 33896 | |||
| 33897 | |||
| 33898 | #ifndef __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ | ||
| 33899 | #define __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ | ||
| 33900 | |||
| 33901 | /* interface ID3D12GraphicsCommandList8 */ | ||
| 33902 | /* [unique][local][object][uuid] */ | ||
| 33903 | |||
| 33904 | |||
| 33905 | EXTERN_C const IID IID_ID3D12GraphicsCommandList8; | ||
| 33906 | |||
| 33907 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 33908 | |||
| 33909 | MIDL_INTERFACE("ee936ef9-599d-4d28-938e-23c4ad05ce51") | ||
| 33910 | ID3D12GraphicsCommandList8 : public ID3D12GraphicsCommandList7 | ||
| 33911 | { | ||
| 33912 | public: | ||
| 33913 | virtual void STDMETHODCALLTYPE OMSetFrontAndBackStencilRef( | ||
| 33914 | _In_ UINT FrontStencilRef, | ||
| 33915 | _In_ UINT BackStencilRef) = 0; | ||
| 33916 | |||
| 33917 | }; | ||
| 33918 | |||
| 33919 | |||
| 33920 | #else /* C style interface */ | ||
| 33921 | |||
| 33922 | typedef struct ID3D12GraphicsCommandList8Vtbl | ||
| 33923 | { | ||
| 33924 | BEGIN_INTERFACE | ||
| 33925 | |||
| 33926 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 33927 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 33928 | ID3D12GraphicsCommandList8 * This, | ||
| 33929 | REFIID riid, | ||
| 33930 | _COM_Outptr_ void **ppvObject); | ||
| 33931 | |||
| 33932 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 33933 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 33934 | ID3D12GraphicsCommandList8 * This); | ||
| 33935 | |||
| 33936 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 33937 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 33938 | ID3D12GraphicsCommandList8 * This); | ||
| 33939 | |||
| 33940 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 33941 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 33942 | ID3D12GraphicsCommandList8 * This, | ||
| 33943 | _In_ REFGUID guid, | ||
| 33944 | _Inout_ UINT *pDataSize, | ||
| 33945 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 33946 | |||
| 33947 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 33948 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 33949 | ID3D12GraphicsCommandList8 * This, | ||
| 33950 | _In_ REFGUID guid, | ||
| 33951 | _In_ UINT DataSize, | ||
| 33952 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 33953 | |||
| 33954 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 33955 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 33956 | ID3D12GraphicsCommandList8 * This, | ||
| 33957 | _In_ REFGUID guid, | ||
| 33958 | _In_opt_ const IUnknown *pData); | ||
| 33959 | |||
| 33960 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 33961 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 33962 | ID3D12GraphicsCommandList8 * This, | ||
| 33963 | _In_z_ LPCWSTR Name); | ||
| 33964 | |||
| 33965 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 33966 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 33967 | ID3D12GraphicsCommandList8 * This, | ||
| 33968 | REFIID riid, | ||
| 33969 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 33970 | |||
| 33971 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 33972 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 33973 | ID3D12GraphicsCommandList8 * This); | ||
| 33974 | |||
| 33975 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 33976 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 33977 | ID3D12GraphicsCommandList8 * This); | ||
| 33978 | |||
| 33979 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 33980 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 33981 | ID3D12GraphicsCommandList8 * This, | ||
| 33982 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 33983 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 33984 | |||
| 33985 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 33986 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 33987 | ID3D12GraphicsCommandList8 * This, | ||
| 33988 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 33989 | |||
| 33990 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 33991 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 33992 | ID3D12GraphicsCommandList8 * This, | ||
| 33993 | _In_ UINT VertexCountPerInstance, | ||
| 33994 | _In_ UINT InstanceCount, | ||
| 33995 | _In_ UINT StartVertexLocation, | ||
| 33996 | _In_ UINT StartInstanceLocation); | ||
| 33997 | |||
| 33998 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 33999 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 34000 | ID3D12GraphicsCommandList8 * This, | ||
| 34001 | _In_ UINT IndexCountPerInstance, | ||
| 34002 | _In_ UINT InstanceCount, | ||
| 34003 | _In_ UINT StartIndexLocation, | ||
| 34004 | _In_ INT BaseVertexLocation, | ||
| 34005 | _In_ UINT StartInstanceLocation); | ||
| 34006 | |||
| 34007 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 34008 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 34009 | ID3D12GraphicsCommandList8 * This, | ||
| 34010 | _In_ UINT ThreadGroupCountX, | ||
| 34011 | _In_ UINT ThreadGroupCountY, | ||
| 34012 | _In_ UINT ThreadGroupCountZ); | ||
| 34013 | |||
| 34014 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 34015 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 34016 | ID3D12GraphicsCommandList8 * This, | ||
| 34017 | _In_ ID3D12Resource *pDstBuffer, | ||
| 34018 | UINT64 DstOffset, | ||
| 34019 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 34020 | UINT64 SrcOffset, | ||
| 34021 | UINT64 NumBytes); | ||
| 34022 | |||
| 34023 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 34024 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 34025 | ID3D12GraphicsCommandList8 * This, | ||
| 34026 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 34027 | UINT DstX, | ||
| 34028 | UINT DstY, | ||
| 34029 | UINT DstZ, | ||
| 34030 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 34031 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 34032 | |||
| 34033 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 34034 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 34035 | ID3D12GraphicsCommandList8 * This, | ||
| 34036 | _In_ ID3D12Resource *pDstResource, | ||
| 34037 | _In_ ID3D12Resource *pSrcResource); | ||
| 34038 | |||
| 34039 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 34040 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 34041 | ID3D12GraphicsCommandList8 * This, | ||
| 34042 | _In_ ID3D12Resource *pTiledResource, | ||
| 34043 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 34044 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 34045 | _In_ ID3D12Resource *pBuffer, | ||
| 34046 | UINT64 BufferStartOffsetInBytes, | ||
| 34047 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 34048 | |||
| 34049 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 34050 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 34051 | ID3D12GraphicsCommandList8 * This, | ||
| 34052 | _In_ ID3D12Resource *pDstResource, | ||
| 34053 | _In_ UINT DstSubresource, | ||
| 34054 | _In_ ID3D12Resource *pSrcResource, | ||
| 34055 | _In_ UINT SrcSubresource, | ||
| 34056 | _In_ DXGI_FORMAT Format); | ||
| 34057 | |||
| 34058 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 34059 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 34060 | ID3D12GraphicsCommandList8 * This, | ||
| 34061 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 34062 | |||
| 34063 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 34064 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 34065 | ID3D12GraphicsCommandList8 * This, | ||
| 34066 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 34067 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 34068 | |||
| 34069 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 34070 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 34071 | ID3D12GraphicsCommandList8 * This, | ||
| 34072 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 34073 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 34074 | |||
| 34075 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 34076 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 34077 | ID3D12GraphicsCommandList8 * This, | ||
| 34078 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 34079 | |||
| 34080 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 34081 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 34082 | ID3D12GraphicsCommandList8 * This, | ||
| 34083 | _In_ UINT StencilRef); | ||
| 34084 | |||
| 34085 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 34086 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 34087 | ID3D12GraphicsCommandList8 * This, | ||
| 34088 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 34089 | |||
| 34090 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 34091 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 34092 | ID3D12GraphicsCommandList8 * This, | ||
| 34093 | _In_ UINT NumBarriers, | ||
| 34094 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 34095 | |||
| 34096 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 34097 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 34098 | ID3D12GraphicsCommandList8 * This, | ||
| 34099 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 34100 | |||
| 34101 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 34102 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 34103 | ID3D12GraphicsCommandList8 * This, | ||
| 34104 | _In_ UINT NumDescriptorHeaps, | ||
| 34105 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 34106 | |||
| 34107 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 34108 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 34109 | ID3D12GraphicsCommandList8 * This, | ||
| 34110 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 34111 | |||
| 34112 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 34113 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 34114 | ID3D12GraphicsCommandList8 * This, | ||
| 34115 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 34116 | |||
| 34117 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 34118 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 34119 | ID3D12GraphicsCommandList8 * This, | ||
| 34120 | _In_ UINT RootParameterIndex, | ||
| 34121 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 34122 | |||
| 34123 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 34124 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 34125 | ID3D12GraphicsCommandList8 * This, | ||
| 34126 | _In_ UINT RootParameterIndex, | ||
| 34127 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 34128 | |||
| 34129 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 34130 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 34131 | ID3D12GraphicsCommandList8 * This, | ||
| 34132 | _In_ UINT RootParameterIndex, | ||
| 34133 | _In_ UINT SrcData, | ||
| 34134 | _In_ UINT DestOffsetIn32BitValues); | ||
| 34135 | |||
| 34136 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 34137 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 34138 | ID3D12GraphicsCommandList8 * This, | ||
| 34139 | _In_ UINT RootParameterIndex, | ||
| 34140 | _In_ UINT SrcData, | ||
| 34141 | _In_ UINT DestOffsetIn32BitValues); | ||
| 34142 | |||
| 34143 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 34144 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 34145 | ID3D12GraphicsCommandList8 * This, | ||
| 34146 | _In_ UINT RootParameterIndex, | ||
| 34147 | _In_ UINT Num32BitValuesToSet, | ||
| 34148 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 34149 | _In_ UINT DestOffsetIn32BitValues); | ||
| 34150 | |||
| 34151 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 34152 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 34153 | ID3D12GraphicsCommandList8 * This, | ||
| 34154 | _In_ UINT RootParameterIndex, | ||
| 34155 | _In_ UINT Num32BitValuesToSet, | ||
| 34156 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 34157 | _In_ UINT DestOffsetIn32BitValues); | ||
| 34158 | |||
| 34159 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 34160 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 34161 | ID3D12GraphicsCommandList8 * This, | ||
| 34162 | _In_ UINT RootParameterIndex, | ||
| 34163 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 34164 | |||
| 34165 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 34166 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 34167 | ID3D12GraphicsCommandList8 * This, | ||
| 34168 | _In_ UINT RootParameterIndex, | ||
| 34169 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 34170 | |||
| 34171 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 34172 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 34173 | ID3D12GraphicsCommandList8 * This, | ||
| 34174 | _In_ UINT RootParameterIndex, | ||
| 34175 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 34176 | |||
| 34177 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 34178 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 34179 | ID3D12GraphicsCommandList8 * This, | ||
| 34180 | _In_ UINT RootParameterIndex, | ||
| 34181 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 34182 | |||
| 34183 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 34184 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 34185 | ID3D12GraphicsCommandList8 * This, | ||
| 34186 | _In_ UINT RootParameterIndex, | ||
| 34187 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 34188 | |||
| 34189 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 34190 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 34191 | ID3D12GraphicsCommandList8 * This, | ||
| 34192 | _In_ UINT RootParameterIndex, | ||
| 34193 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 34194 | |||
| 34195 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 34196 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 34197 | ID3D12GraphicsCommandList8 * This, | ||
| 34198 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 34199 | |||
| 34200 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 34201 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 34202 | ID3D12GraphicsCommandList8 * This, | ||
| 34203 | _In_ UINT StartSlot, | ||
| 34204 | _In_ UINT NumViews, | ||
| 34205 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 34206 | |||
| 34207 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 34208 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 34209 | ID3D12GraphicsCommandList8 * This, | ||
| 34210 | _In_ UINT StartSlot, | ||
| 34211 | _In_ UINT NumViews, | ||
| 34212 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 34213 | |||
| 34214 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 34215 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 34216 | ID3D12GraphicsCommandList8 * This, | ||
| 34217 | _In_ UINT NumRenderTargetDescriptors, | ||
| 34218 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 34219 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 34220 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 34221 | |||
| 34222 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 34223 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 34224 | ID3D12GraphicsCommandList8 * This, | ||
| 34225 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 34226 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 34227 | _In_ FLOAT Depth, | ||
| 34228 | _In_ UINT8 Stencil, | ||
| 34229 | _In_ UINT NumRects, | ||
| 34230 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 34231 | |||
| 34232 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 34233 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 34234 | ID3D12GraphicsCommandList8 * This, | ||
| 34235 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 34236 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 34237 | _In_ UINT NumRects, | ||
| 34238 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 34239 | |||
| 34240 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 34241 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 34242 | ID3D12GraphicsCommandList8 * This, | ||
| 34243 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 34244 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 34245 | _In_ ID3D12Resource *pResource, | ||
| 34246 | _In_ const UINT Values[ 4 ], | ||
| 34247 | _In_ UINT NumRects, | ||
| 34248 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 34249 | |||
| 34250 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 34251 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 34252 | ID3D12GraphicsCommandList8 * This, | ||
| 34253 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 34254 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 34255 | _In_ ID3D12Resource *pResource, | ||
| 34256 | _In_ const FLOAT Values[ 4 ], | ||
| 34257 | _In_ UINT NumRects, | ||
| 34258 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 34259 | |||
| 34260 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 34261 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 34262 | ID3D12GraphicsCommandList8 * This, | ||
| 34263 | _In_ ID3D12Resource *pResource, | ||
| 34264 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 34265 | |||
| 34266 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 34267 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 34268 | ID3D12GraphicsCommandList8 * This, | ||
| 34269 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 34270 | _In_ D3D12_QUERY_TYPE Type, | ||
| 34271 | _In_ UINT Index); | ||
| 34272 | |||
| 34273 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 34274 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 34275 | ID3D12GraphicsCommandList8 * This, | ||
| 34276 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 34277 | _In_ D3D12_QUERY_TYPE Type, | ||
| 34278 | _In_ UINT Index); | ||
| 34279 | |||
| 34280 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 34281 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 34282 | ID3D12GraphicsCommandList8 * This, | ||
| 34283 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 34284 | _In_ D3D12_QUERY_TYPE Type, | ||
| 34285 | _In_ UINT StartIndex, | ||
| 34286 | _In_ UINT NumQueries, | ||
| 34287 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 34288 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 34289 | |||
| 34290 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 34291 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 34292 | ID3D12GraphicsCommandList8 * This, | ||
| 34293 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 34294 | _In_ UINT64 AlignedBufferOffset, | ||
| 34295 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 34296 | |||
| 34297 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 34298 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 34299 | ID3D12GraphicsCommandList8 * This, | ||
| 34300 | UINT Metadata, | ||
| 34301 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 34302 | UINT Size); | ||
| 34303 | |||
| 34304 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 34305 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 34306 | ID3D12GraphicsCommandList8 * This, | ||
| 34307 | UINT Metadata, | ||
| 34308 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 34309 | UINT Size); | ||
| 34310 | |||
| 34311 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 34312 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 34313 | ID3D12GraphicsCommandList8 * This); | ||
| 34314 | |||
| 34315 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 34316 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 34317 | ID3D12GraphicsCommandList8 * This, | ||
| 34318 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 34319 | _In_ UINT MaxCommandCount, | ||
| 34320 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 34321 | _In_ UINT64 ArgumentBufferOffset, | ||
| 34322 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 34323 | _In_ UINT64 CountBufferOffset); | ||
| 34324 | |||
| 34325 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 34326 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 34327 | ID3D12GraphicsCommandList8 * This, | ||
| 34328 | _In_ ID3D12Resource *pDstBuffer, | ||
| 34329 | UINT64 DstOffset, | ||
| 34330 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 34331 | UINT64 SrcOffset, | ||
| 34332 | UINT Dependencies, | ||
| 34333 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 34334 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 34335 | |||
| 34336 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 34337 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 34338 | ID3D12GraphicsCommandList8 * This, | ||
| 34339 | _In_ ID3D12Resource *pDstBuffer, | ||
| 34340 | UINT64 DstOffset, | ||
| 34341 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 34342 | UINT64 SrcOffset, | ||
| 34343 | UINT Dependencies, | ||
| 34344 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 34345 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 34346 | |||
| 34347 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 34348 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 34349 | ID3D12GraphicsCommandList8 * This, | ||
| 34350 | _In_ FLOAT Min, | ||
| 34351 | _In_ FLOAT Max); | ||
| 34352 | |||
| 34353 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 34354 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 34355 | ID3D12GraphicsCommandList8 * This, | ||
| 34356 | _In_ UINT NumSamplesPerPixel, | ||
| 34357 | _In_ UINT NumPixels, | ||
| 34358 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 34359 | |||
| 34360 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 34361 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 34362 | ID3D12GraphicsCommandList8 * This, | ||
| 34363 | _In_ ID3D12Resource *pDstResource, | ||
| 34364 | _In_ UINT DstSubresource, | ||
| 34365 | _In_ UINT DstX, | ||
| 34366 | _In_ UINT DstY, | ||
| 34367 | _In_ ID3D12Resource *pSrcResource, | ||
| 34368 | _In_ UINT SrcSubresource, | ||
| 34369 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 34370 | _In_ DXGI_FORMAT Format, | ||
| 34371 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 34372 | |||
| 34373 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 34374 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 34375 | ID3D12GraphicsCommandList8 * This, | ||
| 34376 | _In_ UINT Mask); | ||
| 34377 | |||
| 34378 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) | ||
| 34379 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 34380 | ID3D12GraphicsCommandList8 * This, | ||
| 34381 | UINT Count, | ||
| 34382 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 34383 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 34384 | |||
| 34385 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) | ||
| 34386 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 34387 | ID3D12GraphicsCommandList8 * This, | ||
| 34388 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 34389 | |||
| 34390 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) | ||
| 34391 | void ( STDMETHODCALLTYPE *BeginRenderPass )( | ||
| 34392 | ID3D12GraphicsCommandList8 * This, | ||
| 34393 | _In_ UINT NumRenderTargets, | ||
| 34394 | _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, | ||
| 34395 | _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, | ||
| 34396 | D3D12_RENDER_PASS_FLAGS Flags); | ||
| 34397 | |||
| 34398 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) | ||
| 34399 | void ( STDMETHODCALLTYPE *EndRenderPass )( | ||
| 34400 | ID3D12GraphicsCommandList8 * This); | ||
| 34401 | |||
| 34402 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) | ||
| 34403 | void ( STDMETHODCALLTYPE *InitializeMetaCommand )( | ||
| 34404 | ID3D12GraphicsCommandList8 * This, | ||
| 34405 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 34406 | _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, | ||
| 34407 | _In_ SIZE_T InitializationParametersDataSizeInBytes); | ||
| 34408 | |||
| 34409 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) | ||
| 34410 | void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( | ||
| 34411 | ID3D12GraphicsCommandList8 * This, | ||
| 34412 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 34413 | _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, | ||
| 34414 | _In_ SIZE_T ExecutionParametersDataSizeInBytes); | ||
| 34415 | |||
| 34416 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) | ||
| 34417 | void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( | ||
| 34418 | ID3D12GraphicsCommandList8 * This, | ||
| 34419 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, | ||
| 34420 | _In_ UINT NumPostbuildInfoDescs, | ||
| 34421 | _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); | ||
| 34422 | |||
| 34423 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) | ||
| 34424 | void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( | ||
| 34425 | ID3D12GraphicsCommandList8 * This, | ||
| 34426 | _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, | ||
| 34427 | _In_ UINT NumSourceAccelerationStructures, | ||
| 34428 | _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); | ||
| 34429 | |||
| 34430 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) | ||
| 34431 | void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( | ||
| 34432 | ID3D12GraphicsCommandList8 * This, | ||
| 34433 | _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, | ||
| 34434 | _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, | ||
| 34435 | _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); | ||
| 34436 | |||
| 34437 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) | ||
| 34438 | void ( STDMETHODCALLTYPE *SetPipelineState1 )( | ||
| 34439 | ID3D12GraphicsCommandList8 * This, | ||
| 34440 | _In_ ID3D12StateObject *pStateObject); | ||
| 34441 | |||
| 34442 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) | ||
| 34443 | void ( STDMETHODCALLTYPE *DispatchRays )( | ||
| 34444 | ID3D12GraphicsCommandList8 * This, | ||
| 34445 | _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); | ||
| 34446 | |||
| 34447 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) | ||
| 34448 | void ( STDMETHODCALLTYPE *RSSetShadingRate )( | ||
| 34449 | ID3D12GraphicsCommandList8 * This, | ||
| 34450 | _In_ D3D12_SHADING_RATE baseShadingRate, | ||
| 34451 | _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); | ||
| 34452 | |||
| 34453 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) | ||
| 34454 | void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( | ||
| 34455 | ID3D12GraphicsCommandList8 * This, | ||
| 34456 | _In_opt_ ID3D12Resource *shadingRateImage); | ||
| 34457 | |||
| 34458 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) | ||
| 34459 | void ( STDMETHODCALLTYPE *DispatchMesh )( | ||
| 34460 | ID3D12GraphicsCommandList8 * This, | ||
| 34461 | _In_ UINT ThreadGroupCountX, | ||
| 34462 | _In_ UINT ThreadGroupCountY, | ||
| 34463 | _In_ UINT ThreadGroupCountZ); | ||
| 34464 | |||
| 34465 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) | ||
| 34466 | void ( STDMETHODCALLTYPE *Barrier )( | ||
| 34467 | ID3D12GraphicsCommandList8 * This, | ||
| 34468 | UINT32 NumBarrierGroups, | ||
| 34469 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); | ||
| 34470 | |||
| 34471 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef) | ||
| 34472 | void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )( | ||
| 34473 | ID3D12GraphicsCommandList8 * This, | ||
| 34474 | _In_ UINT FrontStencilRef, | ||
| 34475 | _In_ UINT BackStencilRef); | ||
| 34476 | |||
| 34477 | END_INTERFACE | ||
| 34478 | } ID3D12GraphicsCommandList8Vtbl; | ||
| 34479 | |||
| 34480 | interface ID3D12GraphicsCommandList8 | ||
| 34481 | { | ||
| 34482 | CONST_VTBL struct ID3D12GraphicsCommandList8Vtbl *lpVtbl; | ||
| 34483 | }; | ||
| 34484 | |||
| 34485 | |||
| 34486 | |||
| 34487 | #ifdef COBJMACROS | ||
| 34488 | |||
| 34489 | |||
| 34490 | #define ID3D12GraphicsCommandList8_QueryInterface(This,riid,ppvObject) \ | ||
| 34491 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 34492 | |||
| 34493 | #define ID3D12GraphicsCommandList8_AddRef(This) \ | ||
| 34494 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 34495 | |||
| 34496 | #define ID3D12GraphicsCommandList8_Release(This) \ | ||
| 34497 | ( (This)->lpVtbl -> Release(This) ) | ||
| 34498 | |||
| 34499 | |||
| 34500 | #define ID3D12GraphicsCommandList8_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 34501 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 34502 | |||
| 34503 | #define ID3D12GraphicsCommandList8_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 34504 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 34505 | |||
| 34506 | #define ID3D12GraphicsCommandList8_SetPrivateDataInterface(This,guid,pData) \ | ||
| 34507 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 34508 | |||
| 34509 | #define ID3D12GraphicsCommandList8_SetName(This,Name) \ | ||
| 34510 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 34511 | |||
| 34512 | |||
| 34513 | #define ID3D12GraphicsCommandList8_GetDevice(This,riid,ppvDevice) \ | ||
| 34514 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 34515 | |||
| 34516 | |||
| 34517 | #define ID3D12GraphicsCommandList8_GetType(This) \ | ||
| 34518 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 34519 | |||
| 34520 | |||
| 34521 | #define ID3D12GraphicsCommandList8_Close(This) \ | ||
| 34522 | ( (This)->lpVtbl -> Close(This) ) | ||
| 34523 | |||
| 34524 | #define ID3D12GraphicsCommandList8_Reset(This,pAllocator,pInitialState) \ | ||
| 34525 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 34526 | |||
| 34527 | #define ID3D12GraphicsCommandList8_ClearState(This,pPipelineState) \ | ||
| 34528 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 34529 | |||
| 34530 | #define ID3D12GraphicsCommandList8_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 34531 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 34532 | |||
| 34533 | #define ID3D12GraphicsCommandList8_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 34534 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 34535 | |||
| 34536 | #define ID3D12GraphicsCommandList8_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 34537 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 34538 | |||
| 34539 | #define ID3D12GraphicsCommandList8_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 34540 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 34541 | |||
| 34542 | #define ID3D12GraphicsCommandList8_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 34543 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 34544 | |||
| 34545 | #define ID3D12GraphicsCommandList8_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 34546 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 34547 | |||
| 34548 | #define ID3D12GraphicsCommandList8_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 34549 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 34550 | |||
| 34551 | #define ID3D12GraphicsCommandList8_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 34552 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 34553 | |||
| 34554 | #define ID3D12GraphicsCommandList8_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 34555 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 34556 | |||
| 34557 | #define ID3D12GraphicsCommandList8_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 34558 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 34559 | |||
| 34560 | #define ID3D12GraphicsCommandList8_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 34561 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 34562 | |||
| 34563 | #define ID3D12GraphicsCommandList8_OMSetBlendFactor(This,BlendFactor) \ | ||
| 34564 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 34565 | |||
| 34566 | #define ID3D12GraphicsCommandList8_OMSetStencilRef(This,StencilRef) \ | ||
| 34567 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 34568 | |||
| 34569 | #define ID3D12GraphicsCommandList8_SetPipelineState(This,pPipelineState) \ | ||
| 34570 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 34571 | |||
| 34572 | #define ID3D12GraphicsCommandList8_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 34573 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 34574 | |||
| 34575 | #define ID3D12GraphicsCommandList8_ExecuteBundle(This,pCommandList) \ | ||
| 34576 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 34577 | |||
| 34578 | #define ID3D12GraphicsCommandList8_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 34579 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 34580 | |||
| 34581 | #define ID3D12GraphicsCommandList8_SetComputeRootSignature(This,pRootSignature) \ | ||
| 34582 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 34583 | |||
| 34584 | #define ID3D12GraphicsCommandList8_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 34585 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 34586 | |||
| 34587 | #define ID3D12GraphicsCommandList8_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 34588 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 34589 | |||
| 34590 | #define ID3D12GraphicsCommandList8_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 34591 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 34592 | |||
| 34593 | #define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 34594 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 34595 | |||
| 34596 | #define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 34597 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 34598 | |||
| 34599 | #define ID3D12GraphicsCommandList8_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 34600 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 34601 | |||
| 34602 | #define ID3D12GraphicsCommandList8_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 34603 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 34604 | |||
| 34605 | #define ID3D12GraphicsCommandList8_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 34606 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 34607 | |||
| 34608 | #define ID3D12GraphicsCommandList8_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 34609 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 34610 | |||
| 34611 | #define ID3D12GraphicsCommandList8_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 34612 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 34613 | |||
| 34614 | #define ID3D12GraphicsCommandList8_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 34615 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 34616 | |||
| 34617 | #define ID3D12GraphicsCommandList8_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 34618 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 34619 | |||
| 34620 | #define ID3D12GraphicsCommandList8_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 34621 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 34622 | |||
| 34623 | #define ID3D12GraphicsCommandList8_IASetIndexBuffer(This,pView) \ | ||
| 34624 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 34625 | |||
| 34626 | #define ID3D12GraphicsCommandList8_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 34627 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 34628 | |||
| 34629 | #define ID3D12GraphicsCommandList8_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 34630 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 34631 | |||
| 34632 | #define ID3D12GraphicsCommandList8_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 34633 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 34634 | |||
| 34635 | #define ID3D12GraphicsCommandList8_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 34636 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 34637 | |||
| 34638 | #define ID3D12GraphicsCommandList8_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 34639 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 34640 | |||
| 34641 | #define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 34642 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 34643 | |||
| 34644 | #define ID3D12GraphicsCommandList8_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 34645 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 34646 | |||
| 34647 | #define ID3D12GraphicsCommandList8_DiscardResource(This,pResource,pRegion) \ | ||
| 34648 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 34649 | |||
| 34650 | #define ID3D12GraphicsCommandList8_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 34651 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 34652 | |||
| 34653 | #define ID3D12GraphicsCommandList8_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 34654 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 34655 | |||
| 34656 | #define ID3D12GraphicsCommandList8_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 34657 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 34658 | |||
| 34659 | #define ID3D12GraphicsCommandList8_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 34660 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 34661 | |||
| 34662 | #define ID3D12GraphicsCommandList8_SetMarker(This,Metadata,pData,Size) \ | ||
| 34663 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 34664 | |||
| 34665 | #define ID3D12GraphicsCommandList8_BeginEvent(This,Metadata,pData,Size) \ | ||
| 34666 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 34667 | |||
| 34668 | #define ID3D12GraphicsCommandList8_EndEvent(This) \ | ||
| 34669 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 34670 | |||
| 34671 | #define ID3D12GraphicsCommandList8_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 34672 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 34673 | |||
| 34674 | |||
| 34675 | #define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 34676 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 34677 | |||
| 34678 | #define ID3D12GraphicsCommandList8_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 34679 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 34680 | |||
| 34681 | #define ID3D12GraphicsCommandList8_OMSetDepthBounds(This,Min,Max) \ | ||
| 34682 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 34683 | |||
| 34684 | #define ID3D12GraphicsCommandList8_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 34685 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 34686 | |||
| 34687 | #define ID3D12GraphicsCommandList8_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 34688 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 34689 | |||
| 34690 | #define ID3D12GraphicsCommandList8_SetViewInstanceMask(This,Mask) \ | ||
| 34691 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 34692 | |||
| 34693 | |||
| 34694 | #define ID3D12GraphicsCommandList8_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 34695 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 34696 | |||
| 34697 | |||
| 34698 | #define ID3D12GraphicsCommandList8_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 34699 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 34700 | |||
| 34701 | |||
| 34702 | #define ID3D12GraphicsCommandList8_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ | ||
| 34703 | ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) | ||
| 34704 | |||
| 34705 | #define ID3D12GraphicsCommandList8_EndRenderPass(This) \ | ||
| 34706 | ( (This)->lpVtbl -> EndRenderPass(This) ) | ||
| 34707 | |||
| 34708 | #define ID3D12GraphicsCommandList8_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ | ||
| 34709 | ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) | ||
| 34710 | |||
| 34711 | #define ID3D12GraphicsCommandList8_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ | ||
| 34712 | ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) | ||
| 34713 | |||
| 34714 | #define ID3D12GraphicsCommandList8_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ | ||
| 34715 | ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) | ||
| 34716 | |||
| 34717 | #define ID3D12GraphicsCommandList8_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ | ||
| 34718 | ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) | ||
| 34719 | |||
| 34720 | #define ID3D12GraphicsCommandList8_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ | ||
| 34721 | ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) | ||
| 34722 | |||
| 34723 | #define ID3D12GraphicsCommandList8_SetPipelineState1(This,pStateObject) \ | ||
| 34724 | ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) | ||
| 34725 | |||
| 34726 | #define ID3D12GraphicsCommandList8_DispatchRays(This,pDesc) \ | ||
| 34727 | ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) | ||
| 34728 | |||
| 34729 | |||
| 34730 | #define ID3D12GraphicsCommandList8_RSSetShadingRate(This,baseShadingRate,combiners) \ | ||
| 34731 | ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) | ||
| 34732 | |||
| 34733 | #define ID3D12GraphicsCommandList8_RSSetShadingRateImage(This,shadingRateImage) \ | ||
| 34734 | ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) | ||
| 34735 | |||
| 34736 | |||
| 34737 | #define ID3D12GraphicsCommandList8_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 34738 | ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 34739 | |||
| 34740 | |||
| 34741 | #define ID3D12GraphicsCommandList8_Barrier(This,NumBarrierGroups,pBarrierGroups) \ | ||
| 34742 | ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) | ||
| 34743 | |||
| 34744 | |||
| 34745 | #define ID3D12GraphicsCommandList8_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \ | ||
| 34746 | ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) ) | ||
| 34747 | |||
| 34748 | #endif /* COBJMACROS */ | ||
| 34749 | |||
| 34750 | |||
| 34751 | #endif /* C style interface */ | ||
| 34752 | |||
| 34753 | |||
| 34754 | |||
| 34755 | |||
| 34756 | #endif /* __ID3D12GraphicsCommandList8_INTERFACE_DEFINED__ */ | ||
| 34757 | |||
| 34758 | |||
| 34759 | #ifndef __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ | ||
| 34760 | #define __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ | ||
| 34761 | |||
| 34762 | /* interface ID3D12GraphicsCommandList9 */ | ||
| 34763 | /* [unique][local][object][uuid] */ | ||
| 34764 | |||
| 34765 | |||
| 34766 | EXTERN_C const IID IID_ID3D12GraphicsCommandList9; | ||
| 34767 | |||
| 34768 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 34769 | |||
| 34770 | MIDL_INTERFACE("34ed2808-ffe6-4c2b-b11a-cabd2b0c59e1") | ||
| 34771 | ID3D12GraphicsCommandList9 : public ID3D12GraphicsCommandList8 | ||
| 34772 | { | ||
| 34773 | public: | ||
| 34774 | virtual void STDMETHODCALLTYPE RSSetDepthBias( | ||
| 34775 | _In_ FLOAT DepthBias, | ||
| 34776 | _In_ FLOAT DepthBiasClamp, | ||
| 34777 | _In_ FLOAT SlopeScaledDepthBias) = 0; | ||
| 34778 | |||
| 34779 | virtual void STDMETHODCALLTYPE IASetIndexBufferStripCutValue( | ||
| 34780 | _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) = 0; | ||
| 34781 | |||
| 34782 | }; | ||
| 34783 | |||
| 34784 | |||
| 34785 | #else /* C style interface */ | ||
| 34786 | |||
| 34787 | typedef struct ID3D12GraphicsCommandList9Vtbl | ||
| 34788 | { | ||
| 34789 | BEGIN_INTERFACE | ||
| 34790 | |||
| 34791 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 34792 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 34793 | ID3D12GraphicsCommandList9 * This, | ||
| 34794 | REFIID riid, | ||
| 34795 | _COM_Outptr_ void **ppvObject); | ||
| 34796 | |||
| 34797 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 34798 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 34799 | ID3D12GraphicsCommandList9 * This); | ||
| 34800 | |||
| 34801 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 34802 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 34803 | ID3D12GraphicsCommandList9 * This); | ||
| 34804 | |||
| 34805 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 34806 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 34807 | ID3D12GraphicsCommandList9 * This, | ||
| 34808 | _In_ REFGUID guid, | ||
| 34809 | _Inout_ UINT *pDataSize, | ||
| 34810 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 34811 | |||
| 34812 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 34813 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 34814 | ID3D12GraphicsCommandList9 * This, | ||
| 34815 | _In_ REFGUID guid, | ||
| 34816 | _In_ UINT DataSize, | ||
| 34817 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 34818 | |||
| 34819 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 34820 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 34821 | ID3D12GraphicsCommandList9 * This, | ||
| 34822 | _In_ REFGUID guid, | ||
| 34823 | _In_opt_ const IUnknown *pData); | ||
| 34824 | |||
| 34825 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 34826 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 34827 | ID3D12GraphicsCommandList9 * This, | ||
| 34828 | _In_z_ LPCWSTR Name); | ||
| 34829 | |||
| 34830 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 34831 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 34832 | ID3D12GraphicsCommandList9 * This, | ||
| 34833 | REFIID riid, | ||
| 34834 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 34835 | |||
| 34836 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 34837 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 34838 | ID3D12GraphicsCommandList9 * This); | ||
| 34839 | |||
| 34840 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 34841 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 34842 | ID3D12GraphicsCommandList9 * This); | ||
| 34843 | |||
| 34844 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 34845 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 34846 | ID3D12GraphicsCommandList9 * This, | ||
| 34847 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 34848 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 34849 | |||
| 34850 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 34851 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 34852 | ID3D12GraphicsCommandList9 * This, | ||
| 34853 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 34854 | |||
| 34855 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 34856 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 34857 | ID3D12GraphicsCommandList9 * This, | ||
| 34858 | _In_ UINT VertexCountPerInstance, | ||
| 34859 | _In_ UINT InstanceCount, | ||
| 34860 | _In_ UINT StartVertexLocation, | ||
| 34861 | _In_ UINT StartInstanceLocation); | ||
| 34862 | |||
| 34863 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 34864 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 34865 | ID3D12GraphicsCommandList9 * This, | ||
| 34866 | _In_ UINT IndexCountPerInstance, | ||
| 34867 | _In_ UINT InstanceCount, | ||
| 34868 | _In_ UINT StartIndexLocation, | ||
| 34869 | _In_ INT BaseVertexLocation, | ||
| 34870 | _In_ UINT StartInstanceLocation); | ||
| 34871 | |||
| 34872 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 34873 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 34874 | ID3D12GraphicsCommandList9 * This, | ||
| 34875 | _In_ UINT ThreadGroupCountX, | ||
| 34876 | _In_ UINT ThreadGroupCountY, | ||
| 34877 | _In_ UINT ThreadGroupCountZ); | ||
| 34878 | |||
| 34879 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 34880 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 34881 | ID3D12GraphicsCommandList9 * This, | ||
| 34882 | _In_ ID3D12Resource *pDstBuffer, | ||
| 34883 | UINT64 DstOffset, | ||
| 34884 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 34885 | UINT64 SrcOffset, | ||
| 34886 | UINT64 NumBytes); | ||
| 34887 | |||
| 34888 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 34889 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 34890 | ID3D12GraphicsCommandList9 * This, | ||
| 34891 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 34892 | UINT DstX, | ||
| 34893 | UINT DstY, | ||
| 34894 | UINT DstZ, | ||
| 34895 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 34896 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 34897 | |||
| 34898 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 34899 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 34900 | ID3D12GraphicsCommandList9 * This, | ||
| 34901 | _In_ ID3D12Resource *pDstResource, | ||
| 34902 | _In_ ID3D12Resource *pSrcResource); | ||
| 34903 | |||
| 34904 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 34905 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 34906 | ID3D12GraphicsCommandList9 * This, | ||
| 34907 | _In_ ID3D12Resource *pTiledResource, | ||
| 34908 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 34909 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 34910 | _In_ ID3D12Resource *pBuffer, | ||
| 34911 | UINT64 BufferStartOffsetInBytes, | ||
| 34912 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 34913 | |||
| 34914 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 34915 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 34916 | ID3D12GraphicsCommandList9 * This, | ||
| 34917 | _In_ ID3D12Resource *pDstResource, | ||
| 34918 | _In_ UINT DstSubresource, | ||
| 34919 | _In_ ID3D12Resource *pSrcResource, | ||
| 34920 | _In_ UINT SrcSubresource, | ||
| 34921 | _In_ DXGI_FORMAT Format); | ||
| 34922 | |||
| 34923 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 34924 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 34925 | ID3D12GraphicsCommandList9 * This, | ||
| 34926 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 34927 | |||
| 34928 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 34929 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 34930 | ID3D12GraphicsCommandList9 * This, | ||
| 34931 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 34932 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 34933 | |||
| 34934 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 34935 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 34936 | ID3D12GraphicsCommandList9 * This, | ||
| 34937 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 34938 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 34939 | |||
| 34940 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 34941 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 34942 | ID3D12GraphicsCommandList9 * This, | ||
| 34943 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 34944 | |||
| 34945 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 34946 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 34947 | ID3D12GraphicsCommandList9 * This, | ||
| 34948 | _In_ UINT StencilRef); | ||
| 34949 | |||
| 34950 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 34951 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 34952 | ID3D12GraphicsCommandList9 * This, | ||
| 34953 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 34954 | |||
| 34955 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 34956 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 34957 | ID3D12GraphicsCommandList9 * This, | ||
| 34958 | _In_ UINT NumBarriers, | ||
| 34959 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 34960 | |||
| 34961 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 34962 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 34963 | ID3D12GraphicsCommandList9 * This, | ||
| 34964 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 34965 | |||
| 34966 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 34967 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 34968 | ID3D12GraphicsCommandList9 * This, | ||
| 34969 | _In_ UINT NumDescriptorHeaps, | ||
| 34970 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 34971 | |||
| 34972 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 34973 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 34974 | ID3D12GraphicsCommandList9 * This, | ||
| 34975 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 34976 | |||
| 34977 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 34978 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 34979 | ID3D12GraphicsCommandList9 * This, | ||
| 34980 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 34981 | |||
| 34982 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 34983 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 34984 | ID3D12GraphicsCommandList9 * This, | ||
| 34985 | _In_ UINT RootParameterIndex, | ||
| 34986 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 34987 | |||
| 34988 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 34989 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 34990 | ID3D12GraphicsCommandList9 * This, | ||
| 34991 | _In_ UINT RootParameterIndex, | ||
| 34992 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 34993 | |||
| 34994 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 34995 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 34996 | ID3D12GraphicsCommandList9 * This, | ||
| 34997 | _In_ UINT RootParameterIndex, | ||
| 34998 | _In_ UINT SrcData, | ||
| 34999 | _In_ UINT DestOffsetIn32BitValues); | ||
| 35000 | |||
| 35001 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 35002 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 35003 | ID3D12GraphicsCommandList9 * This, | ||
| 35004 | _In_ UINT RootParameterIndex, | ||
| 35005 | _In_ UINT SrcData, | ||
| 35006 | _In_ UINT DestOffsetIn32BitValues); | ||
| 35007 | |||
| 35008 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 35009 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 35010 | ID3D12GraphicsCommandList9 * This, | ||
| 35011 | _In_ UINT RootParameterIndex, | ||
| 35012 | _In_ UINT Num32BitValuesToSet, | ||
| 35013 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 35014 | _In_ UINT DestOffsetIn32BitValues); | ||
| 35015 | |||
| 35016 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 35017 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 35018 | ID3D12GraphicsCommandList9 * This, | ||
| 35019 | _In_ UINT RootParameterIndex, | ||
| 35020 | _In_ UINT Num32BitValuesToSet, | ||
| 35021 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 35022 | _In_ UINT DestOffsetIn32BitValues); | ||
| 35023 | |||
| 35024 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 35025 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 35026 | ID3D12GraphicsCommandList9 * This, | ||
| 35027 | _In_ UINT RootParameterIndex, | ||
| 35028 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35029 | |||
| 35030 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 35031 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 35032 | ID3D12GraphicsCommandList9 * This, | ||
| 35033 | _In_ UINT RootParameterIndex, | ||
| 35034 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35035 | |||
| 35036 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 35037 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 35038 | ID3D12GraphicsCommandList9 * This, | ||
| 35039 | _In_ UINT RootParameterIndex, | ||
| 35040 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35041 | |||
| 35042 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 35043 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 35044 | ID3D12GraphicsCommandList9 * This, | ||
| 35045 | _In_ UINT RootParameterIndex, | ||
| 35046 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35047 | |||
| 35048 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 35049 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 35050 | ID3D12GraphicsCommandList9 * This, | ||
| 35051 | _In_ UINT RootParameterIndex, | ||
| 35052 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35053 | |||
| 35054 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 35055 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 35056 | ID3D12GraphicsCommandList9 * This, | ||
| 35057 | _In_ UINT RootParameterIndex, | ||
| 35058 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35059 | |||
| 35060 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 35061 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 35062 | ID3D12GraphicsCommandList9 * This, | ||
| 35063 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 35064 | |||
| 35065 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 35066 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 35067 | ID3D12GraphicsCommandList9 * This, | ||
| 35068 | _In_ UINT StartSlot, | ||
| 35069 | _In_ UINT NumViews, | ||
| 35070 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 35071 | |||
| 35072 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 35073 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 35074 | ID3D12GraphicsCommandList9 * This, | ||
| 35075 | _In_ UINT StartSlot, | ||
| 35076 | _In_ UINT NumViews, | ||
| 35077 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 35078 | |||
| 35079 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 35080 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 35081 | ID3D12GraphicsCommandList9 * This, | ||
| 35082 | _In_ UINT NumRenderTargetDescriptors, | ||
| 35083 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 35084 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 35085 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 35086 | |||
| 35087 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 35088 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 35089 | ID3D12GraphicsCommandList9 * This, | ||
| 35090 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 35091 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 35092 | _In_ FLOAT Depth, | ||
| 35093 | _In_ UINT8 Stencil, | ||
| 35094 | _In_ UINT NumRects, | ||
| 35095 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 35096 | |||
| 35097 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 35098 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 35099 | ID3D12GraphicsCommandList9 * This, | ||
| 35100 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 35101 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 35102 | _In_ UINT NumRects, | ||
| 35103 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 35104 | |||
| 35105 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 35106 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 35107 | ID3D12GraphicsCommandList9 * This, | ||
| 35108 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 35109 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 35110 | _In_ ID3D12Resource *pResource, | ||
| 35111 | _In_ const UINT Values[ 4 ], | ||
| 35112 | _In_ UINT NumRects, | ||
| 35113 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 35114 | |||
| 35115 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 35116 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 35117 | ID3D12GraphicsCommandList9 * This, | ||
| 35118 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 35119 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 35120 | _In_ ID3D12Resource *pResource, | ||
| 35121 | _In_ const FLOAT Values[ 4 ], | ||
| 35122 | _In_ UINT NumRects, | ||
| 35123 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 35124 | |||
| 35125 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 35126 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 35127 | ID3D12GraphicsCommandList9 * This, | ||
| 35128 | _In_ ID3D12Resource *pResource, | ||
| 35129 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 35130 | |||
| 35131 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 35132 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 35133 | ID3D12GraphicsCommandList9 * This, | ||
| 35134 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 35135 | _In_ D3D12_QUERY_TYPE Type, | ||
| 35136 | _In_ UINT Index); | ||
| 35137 | |||
| 35138 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 35139 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 35140 | ID3D12GraphicsCommandList9 * This, | ||
| 35141 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 35142 | _In_ D3D12_QUERY_TYPE Type, | ||
| 35143 | _In_ UINT Index); | ||
| 35144 | |||
| 35145 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 35146 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 35147 | ID3D12GraphicsCommandList9 * This, | ||
| 35148 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 35149 | _In_ D3D12_QUERY_TYPE Type, | ||
| 35150 | _In_ UINT StartIndex, | ||
| 35151 | _In_ UINT NumQueries, | ||
| 35152 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 35153 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 35154 | |||
| 35155 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 35156 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 35157 | ID3D12GraphicsCommandList9 * This, | ||
| 35158 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 35159 | _In_ UINT64 AlignedBufferOffset, | ||
| 35160 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 35161 | |||
| 35162 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 35163 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 35164 | ID3D12GraphicsCommandList9 * This, | ||
| 35165 | UINT Metadata, | ||
| 35166 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 35167 | UINT Size); | ||
| 35168 | |||
| 35169 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 35170 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 35171 | ID3D12GraphicsCommandList9 * This, | ||
| 35172 | UINT Metadata, | ||
| 35173 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 35174 | UINT Size); | ||
| 35175 | |||
| 35176 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 35177 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 35178 | ID3D12GraphicsCommandList9 * This); | ||
| 35179 | |||
| 35180 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 35181 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 35182 | ID3D12GraphicsCommandList9 * This, | ||
| 35183 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 35184 | _In_ UINT MaxCommandCount, | ||
| 35185 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 35186 | _In_ UINT64 ArgumentBufferOffset, | ||
| 35187 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 35188 | _In_ UINT64 CountBufferOffset); | ||
| 35189 | |||
| 35190 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 35191 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 35192 | ID3D12GraphicsCommandList9 * This, | ||
| 35193 | _In_ ID3D12Resource *pDstBuffer, | ||
| 35194 | UINT64 DstOffset, | ||
| 35195 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 35196 | UINT64 SrcOffset, | ||
| 35197 | UINT Dependencies, | ||
| 35198 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 35199 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 35200 | |||
| 35201 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 35202 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 35203 | ID3D12GraphicsCommandList9 * This, | ||
| 35204 | _In_ ID3D12Resource *pDstBuffer, | ||
| 35205 | UINT64 DstOffset, | ||
| 35206 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 35207 | UINT64 SrcOffset, | ||
| 35208 | UINT Dependencies, | ||
| 35209 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 35210 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 35211 | |||
| 35212 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 35213 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 35214 | ID3D12GraphicsCommandList9 * This, | ||
| 35215 | _In_ FLOAT Min, | ||
| 35216 | _In_ FLOAT Max); | ||
| 35217 | |||
| 35218 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 35219 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 35220 | ID3D12GraphicsCommandList9 * This, | ||
| 35221 | _In_ UINT NumSamplesPerPixel, | ||
| 35222 | _In_ UINT NumPixels, | ||
| 35223 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 35224 | |||
| 35225 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 35226 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 35227 | ID3D12GraphicsCommandList9 * This, | ||
| 35228 | _In_ ID3D12Resource *pDstResource, | ||
| 35229 | _In_ UINT DstSubresource, | ||
| 35230 | _In_ UINT DstX, | ||
| 35231 | _In_ UINT DstY, | ||
| 35232 | _In_ ID3D12Resource *pSrcResource, | ||
| 35233 | _In_ UINT SrcSubresource, | ||
| 35234 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 35235 | _In_ DXGI_FORMAT Format, | ||
| 35236 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 35237 | |||
| 35238 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 35239 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 35240 | ID3D12GraphicsCommandList9 * This, | ||
| 35241 | _In_ UINT Mask); | ||
| 35242 | |||
| 35243 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) | ||
| 35244 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 35245 | ID3D12GraphicsCommandList9 * This, | ||
| 35246 | UINT Count, | ||
| 35247 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 35248 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 35249 | |||
| 35250 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) | ||
| 35251 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 35252 | ID3D12GraphicsCommandList9 * This, | ||
| 35253 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 35254 | |||
| 35255 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) | ||
| 35256 | void ( STDMETHODCALLTYPE *BeginRenderPass )( | ||
| 35257 | ID3D12GraphicsCommandList9 * This, | ||
| 35258 | _In_ UINT NumRenderTargets, | ||
| 35259 | _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, | ||
| 35260 | _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, | ||
| 35261 | D3D12_RENDER_PASS_FLAGS Flags); | ||
| 35262 | |||
| 35263 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) | ||
| 35264 | void ( STDMETHODCALLTYPE *EndRenderPass )( | ||
| 35265 | ID3D12GraphicsCommandList9 * This); | ||
| 35266 | |||
| 35267 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) | ||
| 35268 | void ( STDMETHODCALLTYPE *InitializeMetaCommand )( | ||
| 35269 | ID3D12GraphicsCommandList9 * This, | ||
| 35270 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 35271 | _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, | ||
| 35272 | _In_ SIZE_T InitializationParametersDataSizeInBytes); | ||
| 35273 | |||
| 35274 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) | ||
| 35275 | void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( | ||
| 35276 | ID3D12GraphicsCommandList9 * This, | ||
| 35277 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 35278 | _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, | ||
| 35279 | _In_ SIZE_T ExecutionParametersDataSizeInBytes); | ||
| 35280 | |||
| 35281 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) | ||
| 35282 | void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( | ||
| 35283 | ID3D12GraphicsCommandList9 * This, | ||
| 35284 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, | ||
| 35285 | _In_ UINT NumPostbuildInfoDescs, | ||
| 35286 | _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); | ||
| 35287 | |||
| 35288 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) | ||
| 35289 | void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( | ||
| 35290 | ID3D12GraphicsCommandList9 * This, | ||
| 35291 | _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, | ||
| 35292 | _In_ UINT NumSourceAccelerationStructures, | ||
| 35293 | _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); | ||
| 35294 | |||
| 35295 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) | ||
| 35296 | void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( | ||
| 35297 | ID3D12GraphicsCommandList9 * This, | ||
| 35298 | _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, | ||
| 35299 | _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, | ||
| 35300 | _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); | ||
| 35301 | |||
| 35302 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) | ||
| 35303 | void ( STDMETHODCALLTYPE *SetPipelineState1 )( | ||
| 35304 | ID3D12GraphicsCommandList9 * This, | ||
| 35305 | _In_ ID3D12StateObject *pStateObject); | ||
| 35306 | |||
| 35307 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) | ||
| 35308 | void ( STDMETHODCALLTYPE *DispatchRays )( | ||
| 35309 | ID3D12GraphicsCommandList9 * This, | ||
| 35310 | _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); | ||
| 35311 | |||
| 35312 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) | ||
| 35313 | void ( STDMETHODCALLTYPE *RSSetShadingRate )( | ||
| 35314 | ID3D12GraphicsCommandList9 * This, | ||
| 35315 | _In_ D3D12_SHADING_RATE baseShadingRate, | ||
| 35316 | _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); | ||
| 35317 | |||
| 35318 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) | ||
| 35319 | void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( | ||
| 35320 | ID3D12GraphicsCommandList9 * This, | ||
| 35321 | _In_opt_ ID3D12Resource *shadingRateImage); | ||
| 35322 | |||
| 35323 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) | ||
| 35324 | void ( STDMETHODCALLTYPE *DispatchMesh )( | ||
| 35325 | ID3D12GraphicsCommandList9 * This, | ||
| 35326 | _In_ UINT ThreadGroupCountX, | ||
| 35327 | _In_ UINT ThreadGroupCountY, | ||
| 35328 | _In_ UINT ThreadGroupCountZ); | ||
| 35329 | |||
| 35330 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) | ||
| 35331 | void ( STDMETHODCALLTYPE *Barrier )( | ||
| 35332 | ID3D12GraphicsCommandList9 * This, | ||
| 35333 | UINT32 NumBarrierGroups, | ||
| 35334 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); | ||
| 35335 | |||
| 35336 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef) | ||
| 35337 | void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )( | ||
| 35338 | ID3D12GraphicsCommandList9 * This, | ||
| 35339 | _In_ UINT FrontStencilRef, | ||
| 35340 | _In_ UINT BackStencilRef); | ||
| 35341 | |||
| 35342 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias) | ||
| 35343 | void ( STDMETHODCALLTYPE *RSSetDepthBias )( | ||
| 35344 | ID3D12GraphicsCommandList9 * This, | ||
| 35345 | _In_ FLOAT DepthBias, | ||
| 35346 | _In_ FLOAT DepthBiasClamp, | ||
| 35347 | _In_ FLOAT SlopeScaledDepthBias); | ||
| 35348 | |||
| 35349 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue) | ||
| 35350 | void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )( | ||
| 35351 | ID3D12GraphicsCommandList9 * This, | ||
| 35352 | _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue); | ||
| 35353 | |||
| 35354 | END_INTERFACE | ||
| 35355 | } ID3D12GraphicsCommandList9Vtbl; | ||
| 35356 | |||
| 35357 | interface ID3D12GraphicsCommandList9 | ||
| 35358 | { | ||
| 35359 | CONST_VTBL struct ID3D12GraphicsCommandList9Vtbl *lpVtbl; | ||
| 35360 | }; | ||
| 35361 | |||
| 35362 | |||
| 35363 | |||
| 35364 | #ifdef COBJMACROS | ||
| 35365 | |||
| 35366 | |||
| 35367 | #define ID3D12GraphicsCommandList9_QueryInterface(This,riid,ppvObject) \ | ||
| 35368 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 35369 | |||
| 35370 | #define ID3D12GraphicsCommandList9_AddRef(This) \ | ||
| 35371 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 35372 | |||
| 35373 | #define ID3D12GraphicsCommandList9_Release(This) \ | ||
| 35374 | ( (This)->lpVtbl -> Release(This) ) | ||
| 35375 | |||
| 35376 | |||
| 35377 | #define ID3D12GraphicsCommandList9_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 35378 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 35379 | |||
| 35380 | #define ID3D12GraphicsCommandList9_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 35381 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 35382 | |||
| 35383 | #define ID3D12GraphicsCommandList9_SetPrivateDataInterface(This,guid,pData) \ | ||
| 35384 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 35385 | |||
| 35386 | #define ID3D12GraphicsCommandList9_SetName(This,Name) \ | ||
| 35387 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 35388 | |||
| 35389 | |||
| 35390 | #define ID3D12GraphicsCommandList9_GetDevice(This,riid,ppvDevice) \ | ||
| 35391 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 35392 | |||
| 35393 | |||
| 35394 | #define ID3D12GraphicsCommandList9_GetType(This) \ | ||
| 35395 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 35396 | |||
| 35397 | |||
| 35398 | #define ID3D12GraphicsCommandList9_Close(This) \ | ||
| 35399 | ( (This)->lpVtbl -> Close(This) ) | ||
| 35400 | |||
| 35401 | #define ID3D12GraphicsCommandList9_Reset(This,pAllocator,pInitialState) \ | ||
| 35402 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 35403 | |||
| 35404 | #define ID3D12GraphicsCommandList9_ClearState(This,pPipelineState) \ | ||
| 35405 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 35406 | |||
| 35407 | #define ID3D12GraphicsCommandList9_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 35408 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 35409 | |||
| 35410 | #define ID3D12GraphicsCommandList9_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 35411 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 35412 | |||
| 35413 | #define ID3D12GraphicsCommandList9_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 35414 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 35415 | |||
| 35416 | #define ID3D12GraphicsCommandList9_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 35417 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 35418 | |||
| 35419 | #define ID3D12GraphicsCommandList9_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 35420 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 35421 | |||
| 35422 | #define ID3D12GraphicsCommandList9_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 35423 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 35424 | |||
| 35425 | #define ID3D12GraphicsCommandList9_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 35426 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 35427 | |||
| 35428 | #define ID3D12GraphicsCommandList9_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 35429 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 35430 | |||
| 35431 | #define ID3D12GraphicsCommandList9_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 35432 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 35433 | |||
| 35434 | #define ID3D12GraphicsCommandList9_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 35435 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 35436 | |||
| 35437 | #define ID3D12GraphicsCommandList9_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 35438 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 35439 | |||
| 35440 | #define ID3D12GraphicsCommandList9_OMSetBlendFactor(This,BlendFactor) \ | ||
| 35441 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 35442 | |||
| 35443 | #define ID3D12GraphicsCommandList9_OMSetStencilRef(This,StencilRef) \ | ||
| 35444 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 35445 | |||
| 35446 | #define ID3D12GraphicsCommandList9_SetPipelineState(This,pPipelineState) \ | ||
| 35447 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 35448 | |||
| 35449 | #define ID3D12GraphicsCommandList9_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 35450 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 35451 | |||
| 35452 | #define ID3D12GraphicsCommandList9_ExecuteBundle(This,pCommandList) \ | ||
| 35453 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 35454 | |||
| 35455 | #define ID3D12GraphicsCommandList9_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 35456 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 35457 | |||
| 35458 | #define ID3D12GraphicsCommandList9_SetComputeRootSignature(This,pRootSignature) \ | ||
| 35459 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 35460 | |||
| 35461 | #define ID3D12GraphicsCommandList9_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 35462 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 35463 | |||
| 35464 | #define ID3D12GraphicsCommandList9_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 35465 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 35466 | |||
| 35467 | #define ID3D12GraphicsCommandList9_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 35468 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 35469 | |||
| 35470 | #define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 35471 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 35472 | |||
| 35473 | #define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 35474 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 35475 | |||
| 35476 | #define ID3D12GraphicsCommandList9_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 35477 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 35478 | |||
| 35479 | #define ID3D12GraphicsCommandList9_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 35480 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 35481 | |||
| 35482 | #define ID3D12GraphicsCommandList9_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 35483 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 35484 | |||
| 35485 | #define ID3D12GraphicsCommandList9_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 35486 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 35487 | |||
| 35488 | #define ID3D12GraphicsCommandList9_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 35489 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 35490 | |||
| 35491 | #define ID3D12GraphicsCommandList9_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 35492 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 35493 | |||
| 35494 | #define ID3D12GraphicsCommandList9_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 35495 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 35496 | |||
| 35497 | #define ID3D12GraphicsCommandList9_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 35498 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 35499 | |||
| 35500 | #define ID3D12GraphicsCommandList9_IASetIndexBuffer(This,pView) \ | ||
| 35501 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 35502 | |||
| 35503 | #define ID3D12GraphicsCommandList9_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 35504 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 35505 | |||
| 35506 | #define ID3D12GraphicsCommandList9_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 35507 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 35508 | |||
| 35509 | #define ID3D12GraphicsCommandList9_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 35510 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 35511 | |||
| 35512 | #define ID3D12GraphicsCommandList9_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 35513 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 35514 | |||
| 35515 | #define ID3D12GraphicsCommandList9_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 35516 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 35517 | |||
| 35518 | #define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 35519 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 35520 | |||
| 35521 | #define ID3D12GraphicsCommandList9_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 35522 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 35523 | |||
| 35524 | #define ID3D12GraphicsCommandList9_DiscardResource(This,pResource,pRegion) \ | ||
| 35525 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 35526 | |||
| 35527 | #define ID3D12GraphicsCommandList9_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 35528 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 35529 | |||
| 35530 | #define ID3D12GraphicsCommandList9_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 35531 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 35532 | |||
| 35533 | #define ID3D12GraphicsCommandList9_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 35534 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 35535 | |||
| 35536 | #define ID3D12GraphicsCommandList9_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 35537 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 35538 | |||
| 35539 | #define ID3D12GraphicsCommandList9_SetMarker(This,Metadata,pData,Size) \ | ||
| 35540 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 35541 | |||
| 35542 | #define ID3D12GraphicsCommandList9_BeginEvent(This,Metadata,pData,Size) \ | ||
| 35543 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 35544 | |||
| 35545 | #define ID3D12GraphicsCommandList9_EndEvent(This) \ | ||
| 35546 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 35547 | |||
| 35548 | #define ID3D12GraphicsCommandList9_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 35549 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 35550 | |||
| 35551 | |||
| 35552 | #define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 35553 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 35554 | |||
| 35555 | #define ID3D12GraphicsCommandList9_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 35556 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 35557 | |||
| 35558 | #define ID3D12GraphicsCommandList9_OMSetDepthBounds(This,Min,Max) \ | ||
| 35559 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 35560 | |||
| 35561 | #define ID3D12GraphicsCommandList9_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 35562 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 35563 | |||
| 35564 | #define ID3D12GraphicsCommandList9_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 35565 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 35566 | |||
| 35567 | #define ID3D12GraphicsCommandList9_SetViewInstanceMask(This,Mask) \ | ||
| 35568 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 35569 | |||
| 35570 | |||
| 35571 | #define ID3D12GraphicsCommandList9_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 35572 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 35573 | |||
| 35574 | |||
| 35575 | #define ID3D12GraphicsCommandList9_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 35576 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 35577 | |||
| 35578 | |||
| 35579 | #define ID3D12GraphicsCommandList9_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ | ||
| 35580 | ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) | ||
| 35581 | |||
| 35582 | #define ID3D12GraphicsCommandList9_EndRenderPass(This) \ | ||
| 35583 | ( (This)->lpVtbl -> EndRenderPass(This) ) | ||
| 35584 | |||
| 35585 | #define ID3D12GraphicsCommandList9_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ | ||
| 35586 | ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) | ||
| 35587 | |||
| 35588 | #define ID3D12GraphicsCommandList9_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ | ||
| 35589 | ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) | ||
| 35590 | |||
| 35591 | #define ID3D12GraphicsCommandList9_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ | ||
| 35592 | ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) | ||
| 35593 | |||
| 35594 | #define ID3D12GraphicsCommandList9_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ | ||
| 35595 | ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) | ||
| 35596 | |||
| 35597 | #define ID3D12GraphicsCommandList9_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ | ||
| 35598 | ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) | ||
| 35599 | |||
| 35600 | #define ID3D12GraphicsCommandList9_SetPipelineState1(This,pStateObject) \ | ||
| 35601 | ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) | ||
| 35602 | |||
| 35603 | #define ID3D12GraphicsCommandList9_DispatchRays(This,pDesc) \ | ||
| 35604 | ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) | ||
| 35605 | |||
| 35606 | |||
| 35607 | #define ID3D12GraphicsCommandList9_RSSetShadingRate(This,baseShadingRate,combiners) \ | ||
| 35608 | ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) | ||
| 35609 | |||
| 35610 | #define ID3D12GraphicsCommandList9_RSSetShadingRateImage(This,shadingRateImage) \ | ||
| 35611 | ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) | ||
| 35612 | |||
| 35613 | |||
| 35614 | #define ID3D12GraphicsCommandList9_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 35615 | ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 35616 | |||
| 35617 | |||
| 35618 | #define ID3D12GraphicsCommandList9_Barrier(This,NumBarrierGroups,pBarrierGroups) \ | ||
| 35619 | ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) | ||
| 35620 | |||
| 35621 | |||
| 35622 | #define ID3D12GraphicsCommandList9_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \ | ||
| 35623 | ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) ) | ||
| 35624 | |||
| 35625 | |||
| 35626 | #define ID3D12GraphicsCommandList9_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \ | ||
| 35627 | ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) ) | ||
| 35628 | |||
| 35629 | #define ID3D12GraphicsCommandList9_IASetIndexBufferStripCutValue(This,IBStripCutValue) \ | ||
| 35630 | ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) ) | ||
| 35631 | |||
| 35632 | #endif /* COBJMACROS */ | ||
| 35633 | |||
| 35634 | |||
| 35635 | #endif /* C style interface */ | ||
| 35636 | |||
| 35637 | |||
| 35638 | |||
| 35639 | |||
| 35640 | #endif /* __ID3D12GraphicsCommandList9_INTERFACE_DEFINED__ */ | ||
| 35641 | |||
| 35642 | |||
| 35643 | #ifndef __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ | ||
| 35644 | #define __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ | ||
| 35645 | |||
| 35646 | /* interface ID3D12GraphicsCommandList10 */ | ||
| 35647 | /* [unique][local][object][uuid] */ | ||
| 35648 | |||
| 35649 | |||
| 35650 | EXTERN_C const IID IID_ID3D12GraphicsCommandList10; | ||
| 35651 | |||
| 35652 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 35653 | |||
| 35654 | MIDL_INTERFACE("7013c015-d161-4b63-a08c-238552dd8acc") | ||
| 35655 | ID3D12GraphicsCommandList10 : public ID3D12GraphicsCommandList9 | ||
| 35656 | { | ||
| 35657 | public: | ||
| 35658 | virtual void STDMETHODCALLTYPE SetProgram( | ||
| 35659 | _In_ const D3D12_SET_PROGRAM_DESC *pDesc) = 0; | ||
| 35660 | |||
| 35661 | virtual void STDMETHODCALLTYPE DispatchGraph( | ||
| 35662 | _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc) = 0; | ||
| 35663 | |||
| 35664 | }; | ||
| 35665 | |||
| 35666 | |||
| 35667 | #else /* C style interface */ | ||
| 35668 | |||
| 35669 | typedef struct ID3D12GraphicsCommandList10Vtbl | ||
| 35670 | { | ||
| 35671 | BEGIN_INTERFACE | ||
| 35672 | |||
| 35673 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 35674 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 35675 | ID3D12GraphicsCommandList10 * This, | ||
| 35676 | REFIID riid, | ||
| 35677 | _COM_Outptr_ void **ppvObject); | ||
| 35678 | |||
| 35679 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 35680 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 35681 | ID3D12GraphicsCommandList10 * This); | ||
| 35682 | |||
| 35683 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 35684 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 35685 | ID3D12GraphicsCommandList10 * This); | ||
| 35686 | |||
| 35687 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 35688 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 35689 | ID3D12GraphicsCommandList10 * This, | ||
| 35690 | _In_ REFGUID guid, | ||
| 35691 | _Inout_ UINT *pDataSize, | ||
| 35692 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 35693 | |||
| 35694 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 35695 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 35696 | ID3D12GraphicsCommandList10 * This, | ||
| 35697 | _In_ REFGUID guid, | ||
| 35698 | _In_ UINT DataSize, | ||
| 35699 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 35700 | |||
| 35701 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 35702 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 35703 | ID3D12GraphicsCommandList10 * This, | ||
| 35704 | _In_ REFGUID guid, | ||
| 35705 | _In_opt_ const IUnknown *pData); | ||
| 35706 | |||
| 35707 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 35708 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 35709 | ID3D12GraphicsCommandList10 * This, | ||
| 35710 | _In_z_ LPCWSTR Name); | ||
| 35711 | |||
| 35712 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 35713 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 35714 | ID3D12GraphicsCommandList10 * This, | ||
| 35715 | REFIID riid, | ||
| 35716 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 35717 | |||
| 35718 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 35719 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 35720 | ID3D12GraphicsCommandList10 * This); | ||
| 35721 | |||
| 35722 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Close) | ||
| 35723 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 35724 | ID3D12GraphicsCommandList10 * This); | ||
| 35725 | |||
| 35726 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Reset) | ||
| 35727 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 35728 | ID3D12GraphicsCommandList10 * This, | ||
| 35729 | _In_ ID3D12CommandAllocator *pAllocator, | ||
| 35730 | _In_opt_ ID3D12PipelineState *pInitialState); | ||
| 35731 | |||
| 35732 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearState) | ||
| 35733 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 35734 | ID3D12GraphicsCommandList10 * This, | ||
| 35735 | _In_opt_ ID3D12PipelineState *pPipelineState); | ||
| 35736 | |||
| 35737 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawInstanced) | ||
| 35738 | void ( STDMETHODCALLTYPE *DrawInstanced )( | ||
| 35739 | ID3D12GraphicsCommandList10 * This, | ||
| 35740 | _In_ UINT VertexCountPerInstance, | ||
| 35741 | _In_ UINT InstanceCount, | ||
| 35742 | _In_ UINT StartVertexLocation, | ||
| 35743 | _In_ UINT StartInstanceLocation); | ||
| 35744 | |||
| 35745 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DrawIndexedInstanced) | ||
| 35746 | void ( STDMETHODCALLTYPE *DrawIndexedInstanced )( | ||
| 35747 | ID3D12GraphicsCommandList10 * This, | ||
| 35748 | _In_ UINT IndexCountPerInstance, | ||
| 35749 | _In_ UINT InstanceCount, | ||
| 35750 | _In_ UINT StartIndexLocation, | ||
| 35751 | _In_ INT BaseVertexLocation, | ||
| 35752 | _In_ UINT StartInstanceLocation); | ||
| 35753 | |||
| 35754 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, Dispatch) | ||
| 35755 | void ( STDMETHODCALLTYPE *Dispatch )( | ||
| 35756 | ID3D12GraphicsCommandList10 * This, | ||
| 35757 | _In_ UINT ThreadGroupCountX, | ||
| 35758 | _In_ UINT ThreadGroupCountY, | ||
| 35759 | _In_ UINT ThreadGroupCountZ); | ||
| 35760 | |||
| 35761 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyBufferRegion) | ||
| 35762 | void ( STDMETHODCALLTYPE *CopyBufferRegion )( | ||
| 35763 | ID3D12GraphicsCommandList10 * This, | ||
| 35764 | _In_ ID3D12Resource *pDstBuffer, | ||
| 35765 | UINT64 DstOffset, | ||
| 35766 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 35767 | UINT64 SrcOffset, | ||
| 35768 | UINT64 NumBytes); | ||
| 35769 | |||
| 35770 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTextureRegion) | ||
| 35771 | void ( STDMETHODCALLTYPE *CopyTextureRegion )( | ||
| 35772 | ID3D12GraphicsCommandList10 * This, | ||
| 35773 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pDst, | ||
| 35774 | UINT DstX, | ||
| 35775 | UINT DstY, | ||
| 35776 | UINT DstZ, | ||
| 35777 | _In_ const D3D12_TEXTURE_COPY_LOCATION *pSrc, | ||
| 35778 | _In_opt_ const D3D12_BOX *pSrcBox); | ||
| 35779 | |||
| 35780 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyResource) | ||
| 35781 | void ( STDMETHODCALLTYPE *CopyResource )( | ||
| 35782 | ID3D12GraphicsCommandList10 * This, | ||
| 35783 | _In_ ID3D12Resource *pDstResource, | ||
| 35784 | _In_ ID3D12Resource *pSrcResource); | ||
| 35785 | |||
| 35786 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, CopyTiles) | ||
| 35787 | void ( STDMETHODCALLTYPE *CopyTiles )( | ||
| 35788 | ID3D12GraphicsCommandList10 * This, | ||
| 35789 | _In_ ID3D12Resource *pTiledResource, | ||
| 35790 | _In_ const D3D12_TILED_RESOURCE_COORDINATE *pTileRegionStartCoordinate, | ||
| 35791 | _In_ const D3D12_TILE_REGION_SIZE *pTileRegionSize, | ||
| 35792 | _In_ ID3D12Resource *pBuffer, | ||
| 35793 | UINT64 BufferStartOffsetInBytes, | ||
| 35794 | D3D12_TILE_COPY_FLAGS Flags); | ||
| 35795 | |||
| 35796 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveSubresource) | ||
| 35797 | void ( STDMETHODCALLTYPE *ResolveSubresource )( | ||
| 35798 | ID3D12GraphicsCommandList10 * This, | ||
| 35799 | _In_ ID3D12Resource *pDstResource, | ||
| 35800 | _In_ UINT DstSubresource, | ||
| 35801 | _In_ ID3D12Resource *pSrcResource, | ||
| 35802 | _In_ UINT SrcSubresource, | ||
| 35803 | _In_ DXGI_FORMAT Format); | ||
| 35804 | |||
| 35805 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetPrimitiveTopology) | ||
| 35806 | void ( STDMETHODCALLTYPE *IASetPrimitiveTopology )( | ||
| 35807 | ID3D12GraphicsCommandList10 * This, | ||
| 35808 | _In_ D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology); | ||
| 35809 | |||
| 35810 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetViewports) | ||
| 35811 | void ( STDMETHODCALLTYPE *RSSetViewports )( | ||
| 35812 | ID3D12GraphicsCommandList10 * This, | ||
| 35813 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumViewports, | ||
| 35814 | _In_reads_( NumViewports) const D3D12_VIEWPORT *pViewports); | ||
| 35815 | |||
| 35816 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, RSSetScissorRects) | ||
| 35817 | void ( STDMETHODCALLTYPE *RSSetScissorRects )( | ||
| 35818 | ID3D12GraphicsCommandList10 * This, | ||
| 35819 | _In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE) UINT NumRects, | ||
| 35820 | _In_reads_( NumRects) const D3D12_RECT *pRects); | ||
| 35821 | |||
| 35822 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetBlendFactor) | ||
| 35823 | void ( STDMETHODCALLTYPE *OMSetBlendFactor )( | ||
| 35824 | ID3D12GraphicsCommandList10 * This, | ||
| 35825 | _In_reads_opt_(4) const FLOAT BlendFactor[ 4 ]); | ||
| 35826 | |||
| 35827 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetStencilRef) | ||
| 35828 | void ( STDMETHODCALLTYPE *OMSetStencilRef )( | ||
| 35829 | ID3D12GraphicsCommandList10 * This, | ||
| 35830 | _In_ UINT StencilRef); | ||
| 35831 | |||
| 35832 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPipelineState) | ||
| 35833 | void ( STDMETHODCALLTYPE *SetPipelineState )( | ||
| 35834 | ID3D12GraphicsCommandList10 * This, | ||
| 35835 | _In_ ID3D12PipelineState *pPipelineState); | ||
| 35836 | |||
| 35837 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResourceBarrier) | ||
| 35838 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 35839 | ID3D12GraphicsCommandList10 * This, | ||
| 35840 | _In_ UINT NumBarriers, | ||
| 35841 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 35842 | |||
| 35843 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteBundle) | ||
| 35844 | void ( STDMETHODCALLTYPE *ExecuteBundle )( | ||
| 35845 | ID3D12GraphicsCommandList10 * This, | ||
| 35846 | _In_ ID3D12GraphicsCommandList *pCommandList); | ||
| 35847 | |||
| 35848 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetDescriptorHeaps) | ||
| 35849 | void ( STDMETHODCALLTYPE *SetDescriptorHeaps )( | ||
| 35850 | ID3D12GraphicsCommandList10 * This, | ||
| 35851 | _In_ UINT NumDescriptorHeaps, | ||
| 35852 | _In_reads_(NumDescriptorHeaps) ID3D12DescriptorHeap *const *ppDescriptorHeaps); | ||
| 35853 | |||
| 35854 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootSignature) | ||
| 35855 | void ( STDMETHODCALLTYPE *SetComputeRootSignature )( | ||
| 35856 | ID3D12GraphicsCommandList10 * This, | ||
| 35857 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 35858 | |||
| 35859 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootSignature) | ||
| 35860 | void ( STDMETHODCALLTYPE *SetGraphicsRootSignature )( | ||
| 35861 | ID3D12GraphicsCommandList10 * This, | ||
| 35862 | _In_opt_ ID3D12RootSignature *pRootSignature); | ||
| 35863 | |||
| 35864 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootDescriptorTable) | ||
| 35865 | void ( STDMETHODCALLTYPE *SetComputeRootDescriptorTable )( | ||
| 35866 | ID3D12GraphicsCommandList10 * This, | ||
| 35867 | _In_ UINT RootParameterIndex, | ||
| 35868 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 35869 | |||
| 35870 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootDescriptorTable) | ||
| 35871 | void ( STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable )( | ||
| 35872 | ID3D12GraphicsCommandList10 * This, | ||
| 35873 | _In_ UINT RootParameterIndex, | ||
| 35874 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor); | ||
| 35875 | |||
| 35876 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstant) | ||
| 35877 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstant )( | ||
| 35878 | ID3D12GraphicsCommandList10 * This, | ||
| 35879 | _In_ UINT RootParameterIndex, | ||
| 35880 | _In_ UINT SrcData, | ||
| 35881 | _In_ UINT DestOffsetIn32BitValues); | ||
| 35882 | |||
| 35883 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstant) | ||
| 35884 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant )( | ||
| 35885 | ID3D12GraphicsCommandList10 * This, | ||
| 35886 | _In_ UINT RootParameterIndex, | ||
| 35887 | _In_ UINT SrcData, | ||
| 35888 | _In_ UINT DestOffsetIn32BitValues); | ||
| 35889 | |||
| 35890 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRoot32BitConstants) | ||
| 35891 | void ( STDMETHODCALLTYPE *SetComputeRoot32BitConstants )( | ||
| 35892 | ID3D12GraphicsCommandList10 * This, | ||
| 35893 | _In_ UINT RootParameterIndex, | ||
| 35894 | _In_ UINT Num32BitValuesToSet, | ||
| 35895 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 35896 | _In_ UINT DestOffsetIn32BitValues); | ||
| 35897 | |||
| 35898 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRoot32BitConstants) | ||
| 35899 | void ( STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants )( | ||
| 35900 | ID3D12GraphicsCommandList10 * This, | ||
| 35901 | _In_ UINT RootParameterIndex, | ||
| 35902 | _In_ UINT Num32BitValuesToSet, | ||
| 35903 | _In_reads_(Num32BitValuesToSet*sizeof(UINT)) const void *pSrcData, | ||
| 35904 | _In_ UINT DestOffsetIn32BitValues); | ||
| 35905 | |||
| 35906 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootConstantBufferView) | ||
| 35907 | void ( STDMETHODCALLTYPE *SetComputeRootConstantBufferView )( | ||
| 35908 | ID3D12GraphicsCommandList10 * This, | ||
| 35909 | _In_ UINT RootParameterIndex, | ||
| 35910 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35911 | |||
| 35912 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootConstantBufferView) | ||
| 35913 | void ( STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView )( | ||
| 35914 | ID3D12GraphicsCommandList10 * This, | ||
| 35915 | _In_ UINT RootParameterIndex, | ||
| 35916 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35917 | |||
| 35918 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootShaderResourceView) | ||
| 35919 | void ( STDMETHODCALLTYPE *SetComputeRootShaderResourceView )( | ||
| 35920 | ID3D12GraphicsCommandList10 * This, | ||
| 35921 | _In_ UINT RootParameterIndex, | ||
| 35922 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35923 | |||
| 35924 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootShaderResourceView) | ||
| 35925 | void ( STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView )( | ||
| 35926 | ID3D12GraphicsCommandList10 * This, | ||
| 35927 | _In_ UINT RootParameterIndex, | ||
| 35928 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35929 | |||
| 35930 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetComputeRootUnorderedAccessView) | ||
| 35931 | void ( STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView )( | ||
| 35932 | ID3D12GraphicsCommandList10 * This, | ||
| 35933 | _In_ UINT RootParameterIndex, | ||
| 35934 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35935 | |||
| 35936 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetGraphicsRootUnorderedAccessView) | ||
| 35937 | void ( STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView )( | ||
| 35938 | ID3D12GraphicsCommandList10 * This, | ||
| 35939 | _In_ UINT RootParameterIndex, | ||
| 35940 | _In_ D3D12_GPU_VIRTUAL_ADDRESS BufferLocation); | ||
| 35941 | |||
| 35942 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetIndexBuffer) | ||
| 35943 | void ( STDMETHODCALLTYPE *IASetIndexBuffer )( | ||
| 35944 | ID3D12GraphicsCommandList10 * This, | ||
| 35945 | _In_opt_ const D3D12_INDEX_BUFFER_VIEW *pView); | ||
| 35946 | |||
| 35947 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, IASetVertexBuffers) | ||
| 35948 | void ( STDMETHODCALLTYPE *IASetVertexBuffers )( | ||
| 35949 | ID3D12GraphicsCommandList10 * This, | ||
| 35950 | _In_ UINT StartSlot, | ||
| 35951 | _In_ UINT NumViews, | ||
| 35952 | _In_reads_opt_(NumViews) const D3D12_VERTEX_BUFFER_VIEW *pViews); | ||
| 35953 | |||
| 35954 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SOSetTargets) | ||
| 35955 | void ( STDMETHODCALLTYPE *SOSetTargets )( | ||
| 35956 | ID3D12GraphicsCommandList10 * This, | ||
| 35957 | _In_ UINT StartSlot, | ||
| 35958 | _In_ UINT NumViews, | ||
| 35959 | _In_reads_opt_(NumViews) const D3D12_STREAM_OUTPUT_BUFFER_VIEW *pViews); | ||
| 35960 | |||
| 35961 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, OMSetRenderTargets) | ||
| 35962 | void ( STDMETHODCALLTYPE *OMSetRenderTargets )( | ||
| 35963 | ID3D12GraphicsCommandList10 * This, | ||
| 35964 | _In_ UINT NumRenderTargetDescriptors, | ||
| 35965 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pRenderTargetDescriptors, | ||
| 35966 | _In_ BOOL RTsSingleHandleToDescriptorRange, | ||
| 35967 | _In_opt_ const D3D12_CPU_DESCRIPTOR_HANDLE *pDepthStencilDescriptor); | ||
| 35968 | |||
| 35969 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearDepthStencilView) | ||
| 35970 | void ( STDMETHODCALLTYPE *ClearDepthStencilView )( | ||
| 35971 | ID3D12GraphicsCommandList10 * This, | ||
| 35972 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 35973 | _In_ D3D12_CLEAR_FLAGS ClearFlags, | ||
| 35974 | _In_ FLOAT Depth, | ||
| 35975 | _In_ UINT8 Stencil, | ||
| 35976 | _In_ UINT NumRects, | ||
| 35977 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 35978 | |||
| 35979 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearRenderTargetView) | ||
| 35980 | void ( STDMETHODCALLTYPE *ClearRenderTargetView )( | ||
| 35981 | ID3D12GraphicsCommandList10 * This, | ||
| 35982 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 35983 | _In_ const FLOAT ColorRGBA[ 4 ], | ||
| 35984 | _In_ UINT NumRects, | ||
| 35985 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 35986 | |||
| 35987 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewUint) | ||
| 35988 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewUint )( | ||
| 35989 | ID3D12GraphicsCommandList10 * This, | ||
| 35990 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 35991 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 35992 | _In_ ID3D12Resource *pResource, | ||
| 35993 | _In_ const UINT Values[ 4 ], | ||
| 35994 | _In_ UINT NumRects, | ||
| 35995 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 35996 | |||
| 35997 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ClearUnorderedAccessViewFloat) | ||
| 35998 | void ( STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat )( | ||
| 35999 | ID3D12GraphicsCommandList10 * This, | ||
| 36000 | _In_ D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 36001 | _In_ D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 36002 | _In_ ID3D12Resource *pResource, | ||
| 36003 | _In_ const FLOAT Values[ 4 ], | ||
| 36004 | _In_ UINT NumRects, | ||
| 36005 | _In_reads_(NumRects) const D3D12_RECT *pRects); | ||
| 36006 | |||
| 36007 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, DiscardResource) | ||
| 36008 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 36009 | ID3D12GraphicsCommandList10 * This, | ||
| 36010 | _In_ ID3D12Resource *pResource, | ||
| 36011 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 36012 | |||
| 36013 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginQuery) | ||
| 36014 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 36015 | ID3D12GraphicsCommandList10 * This, | ||
| 36016 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 36017 | _In_ D3D12_QUERY_TYPE Type, | ||
| 36018 | _In_ UINT Index); | ||
| 36019 | |||
| 36020 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndQuery) | ||
| 36021 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 36022 | ID3D12GraphicsCommandList10 * This, | ||
| 36023 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 36024 | _In_ D3D12_QUERY_TYPE Type, | ||
| 36025 | _In_ UINT Index); | ||
| 36026 | |||
| 36027 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ResolveQueryData) | ||
| 36028 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 36029 | ID3D12GraphicsCommandList10 * This, | ||
| 36030 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 36031 | _In_ D3D12_QUERY_TYPE Type, | ||
| 36032 | _In_ UINT StartIndex, | ||
| 36033 | _In_ UINT NumQueries, | ||
| 36034 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 36035 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 36036 | |||
| 36037 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetPredication) | ||
| 36038 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 36039 | ID3D12GraphicsCommandList10 * This, | ||
| 36040 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 36041 | _In_ UINT64 AlignedBufferOffset, | ||
| 36042 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 36043 | |||
| 36044 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, SetMarker) | ||
| 36045 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 36046 | ID3D12GraphicsCommandList10 * This, | ||
| 36047 | UINT Metadata, | ||
| 36048 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 36049 | UINT Size); | ||
| 36050 | |||
| 36051 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, BeginEvent) | ||
| 36052 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 36053 | ID3D12GraphicsCommandList10 * This, | ||
| 36054 | UINT Metadata, | ||
| 36055 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 36056 | UINT Size); | ||
| 36057 | |||
| 36058 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, EndEvent) | ||
| 36059 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 36060 | ID3D12GraphicsCommandList10 * This); | ||
| 36061 | |||
| 36062 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList, ExecuteIndirect) | ||
| 36063 | void ( STDMETHODCALLTYPE *ExecuteIndirect )( | ||
| 36064 | ID3D12GraphicsCommandList10 * This, | ||
| 36065 | _In_ ID3D12CommandSignature *pCommandSignature, | ||
| 36066 | _In_ UINT MaxCommandCount, | ||
| 36067 | _In_ ID3D12Resource *pArgumentBuffer, | ||
| 36068 | _In_ UINT64 ArgumentBufferOffset, | ||
| 36069 | _In_opt_ ID3D12Resource *pCountBuffer, | ||
| 36070 | _In_ UINT64 CountBufferOffset); | ||
| 36071 | |||
| 36072 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT) | ||
| 36073 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT )( | ||
| 36074 | ID3D12GraphicsCommandList10 * This, | ||
| 36075 | _In_ ID3D12Resource *pDstBuffer, | ||
| 36076 | UINT64 DstOffset, | ||
| 36077 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 36078 | UINT64 SrcOffset, | ||
| 36079 | UINT Dependencies, | ||
| 36080 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 36081 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 36082 | |||
| 36083 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, AtomicCopyBufferUINT64) | ||
| 36084 | void ( STDMETHODCALLTYPE *AtomicCopyBufferUINT64 )( | ||
| 36085 | ID3D12GraphicsCommandList10 * This, | ||
| 36086 | _In_ ID3D12Resource *pDstBuffer, | ||
| 36087 | UINT64 DstOffset, | ||
| 36088 | _In_ ID3D12Resource *pSrcBuffer, | ||
| 36089 | UINT64 SrcOffset, | ||
| 36090 | UINT Dependencies, | ||
| 36091 | _In_reads_(Dependencies) ID3D12Resource *const *ppDependentResources, | ||
| 36092 | _In_reads_(Dependencies) const D3D12_SUBRESOURCE_RANGE_UINT64 *pDependentSubresourceRanges); | ||
| 36093 | |||
| 36094 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, OMSetDepthBounds) | ||
| 36095 | void ( STDMETHODCALLTYPE *OMSetDepthBounds )( | ||
| 36096 | ID3D12GraphicsCommandList10 * This, | ||
| 36097 | _In_ FLOAT Min, | ||
| 36098 | _In_ FLOAT Max); | ||
| 36099 | |||
| 36100 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetSamplePositions) | ||
| 36101 | void ( STDMETHODCALLTYPE *SetSamplePositions )( | ||
| 36102 | ID3D12GraphicsCommandList10 * This, | ||
| 36103 | _In_ UINT NumSamplesPerPixel, | ||
| 36104 | _In_ UINT NumPixels, | ||
| 36105 | _In_reads_(NumSamplesPerPixel*NumPixels) D3D12_SAMPLE_POSITION *pSamplePositions); | ||
| 36106 | |||
| 36107 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, ResolveSubresourceRegion) | ||
| 36108 | void ( STDMETHODCALLTYPE *ResolveSubresourceRegion )( | ||
| 36109 | ID3D12GraphicsCommandList10 * This, | ||
| 36110 | _In_ ID3D12Resource *pDstResource, | ||
| 36111 | _In_ UINT DstSubresource, | ||
| 36112 | _In_ UINT DstX, | ||
| 36113 | _In_ UINT DstY, | ||
| 36114 | _In_ ID3D12Resource *pSrcResource, | ||
| 36115 | _In_ UINT SrcSubresource, | ||
| 36116 | _In_opt_ D3D12_RECT *pSrcRect, | ||
| 36117 | _In_ DXGI_FORMAT Format, | ||
| 36118 | _In_ D3D12_RESOLVE_MODE ResolveMode); | ||
| 36119 | |||
| 36120 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList1, SetViewInstanceMask) | ||
| 36121 | void ( STDMETHODCALLTYPE *SetViewInstanceMask )( | ||
| 36122 | ID3D12GraphicsCommandList10 * This, | ||
| 36123 | _In_ UINT Mask); | ||
| 36124 | |||
| 36125 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList2, WriteBufferImmediate) | ||
| 36126 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 36127 | ID3D12GraphicsCommandList10 * This, | ||
| 36128 | UINT Count, | ||
| 36129 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 36130 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 36131 | |||
| 36132 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList3, SetProtectedResourceSession) | ||
| 36133 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 36134 | ID3D12GraphicsCommandList10 * This, | ||
| 36135 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 36136 | |||
| 36137 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BeginRenderPass) | ||
| 36138 | void ( STDMETHODCALLTYPE *BeginRenderPass )( | ||
| 36139 | ID3D12GraphicsCommandList10 * This, | ||
| 36140 | _In_ UINT NumRenderTargets, | ||
| 36141 | _In_reads_opt_(NumRenderTargets) const D3D12_RENDER_PASS_RENDER_TARGET_DESC *pRenderTargets, | ||
| 36142 | _In_opt_ const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC *pDepthStencil, | ||
| 36143 | D3D12_RENDER_PASS_FLAGS Flags); | ||
| 36144 | |||
| 36145 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EndRenderPass) | ||
| 36146 | void ( STDMETHODCALLTYPE *EndRenderPass )( | ||
| 36147 | ID3D12GraphicsCommandList10 * This); | ||
| 36148 | |||
| 36149 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, InitializeMetaCommand) | ||
| 36150 | void ( STDMETHODCALLTYPE *InitializeMetaCommand )( | ||
| 36151 | ID3D12GraphicsCommandList10 * This, | ||
| 36152 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 36153 | _In_reads_bytes_opt_(InitializationParametersDataSizeInBytes) const void *pInitializationParametersData, | ||
| 36154 | _In_ SIZE_T InitializationParametersDataSizeInBytes); | ||
| 36155 | |||
| 36156 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, ExecuteMetaCommand) | ||
| 36157 | void ( STDMETHODCALLTYPE *ExecuteMetaCommand )( | ||
| 36158 | ID3D12GraphicsCommandList10 * This, | ||
| 36159 | _In_ ID3D12MetaCommand *pMetaCommand, | ||
| 36160 | _In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes) const void *pExecutionParametersData, | ||
| 36161 | _In_ SIZE_T ExecutionParametersDataSizeInBytes); | ||
| 36162 | |||
| 36163 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, BuildRaytracingAccelerationStructure) | ||
| 36164 | void ( STDMETHODCALLTYPE *BuildRaytracingAccelerationStructure )( | ||
| 36165 | ID3D12GraphicsCommandList10 * This, | ||
| 36166 | _In_ const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC *pDesc, | ||
| 36167 | _In_ UINT NumPostbuildInfoDescs, | ||
| 36168 | _In_reads_opt_(NumPostbuildInfoDescs) const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pPostbuildInfoDescs); | ||
| 36169 | |||
| 36170 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, EmitRaytracingAccelerationStructurePostbuildInfo) | ||
| 36171 | void ( STDMETHODCALLTYPE *EmitRaytracingAccelerationStructurePostbuildInfo )( | ||
| 36172 | ID3D12GraphicsCommandList10 * This, | ||
| 36173 | _In_ const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC *pDesc, | ||
| 36174 | _In_ UINT NumSourceAccelerationStructures, | ||
| 36175 | _In_reads_( NumSourceAccelerationStructures ) const D3D12_GPU_VIRTUAL_ADDRESS *pSourceAccelerationStructureData); | ||
| 36176 | |||
| 36177 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, CopyRaytracingAccelerationStructure) | ||
| 36178 | void ( STDMETHODCALLTYPE *CopyRaytracingAccelerationStructure )( | ||
| 36179 | ID3D12GraphicsCommandList10 * This, | ||
| 36180 | _In_ D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, | ||
| 36181 | _In_ D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, | ||
| 36182 | _In_ D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); | ||
| 36183 | |||
| 36184 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, SetPipelineState1) | ||
| 36185 | void ( STDMETHODCALLTYPE *SetPipelineState1 )( | ||
| 36186 | ID3D12GraphicsCommandList10 * This, | ||
| 36187 | _In_ ID3D12StateObject *pStateObject); | ||
| 36188 | |||
| 36189 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList4, DispatchRays) | ||
| 36190 | void ( STDMETHODCALLTYPE *DispatchRays )( | ||
| 36191 | ID3D12GraphicsCommandList10 * This, | ||
| 36192 | _In_ const D3D12_DISPATCH_RAYS_DESC *pDesc); | ||
| 36193 | |||
| 36194 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRate) | ||
| 36195 | void ( STDMETHODCALLTYPE *RSSetShadingRate )( | ||
| 36196 | ID3D12GraphicsCommandList10 * This, | ||
| 36197 | _In_ D3D12_SHADING_RATE baseShadingRate, | ||
| 36198 | _In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT) const D3D12_SHADING_RATE_COMBINER *combiners); | ||
| 36199 | |||
| 36200 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList5, RSSetShadingRateImage) | ||
| 36201 | void ( STDMETHODCALLTYPE *RSSetShadingRateImage )( | ||
| 36202 | ID3D12GraphicsCommandList10 * This, | ||
| 36203 | _In_opt_ ID3D12Resource *shadingRateImage); | ||
| 36204 | |||
| 36205 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList6, DispatchMesh) | ||
| 36206 | void ( STDMETHODCALLTYPE *DispatchMesh )( | ||
| 36207 | ID3D12GraphicsCommandList10 * This, | ||
| 36208 | _In_ UINT ThreadGroupCountX, | ||
| 36209 | _In_ UINT ThreadGroupCountY, | ||
| 36210 | _In_ UINT ThreadGroupCountZ); | ||
| 36211 | |||
| 36212 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList7, Barrier) | ||
| 36213 | void ( STDMETHODCALLTYPE *Barrier )( | ||
| 36214 | ID3D12GraphicsCommandList10 * This, | ||
| 36215 | UINT32 NumBarrierGroups, | ||
| 36216 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); | ||
| 36217 | |||
| 36218 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList8, OMSetFrontAndBackStencilRef) | ||
| 36219 | void ( STDMETHODCALLTYPE *OMSetFrontAndBackStencilRef )( | ||
| 36220 | ID3D12GraphicsCommandList10 * This, | ||
| 36221 | _In_ UINT FrontStencilRef, | ||
| 36222 | _In_ UINT BackStencilRef); | ||
| 36223 | |||
| 36224 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, RSSetDepthBias) | ||
| 36225 | void ( STDMETHODCALLTYPE *RSSetDepthBias )( | ||
| 36226 | ID3D12GraphicsCommandList10 * This, | ||
| 36227 | _In_ FLOAT DepthBias, | ||
| 36228 | _In_ FLOAT DepthBiasClamp, | ||
| 36229 | _In_ FLOAT SlopeScaledDepthBias); | ||
| 36230 | |||
| 36231 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList9, IASetIndexBufferStripCutValue) | ||
| 36232 | void ( STDMETHODCALLTYPE *IASetIndexBufferStripCutValue )( | ||
| 36233 | ID3D12GraphicsCommandList10 * This, | ||
| 36234 | _In_ D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue); | ||
| 36235 | |||
| 36236 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, SetProgram) | ||
| 36237 | void ( STDMETHODCALLTYPE *SetProgram )( | ||
| 36238 | ID3D12GraphicsCommandList10 * This, | ||
| 36239 | _In_ const D3D12_SET_PROGRAM_DESC *pDesc); | ||
| 36240 | |||
| 36241 | DECLSPEC_XFGVIRT(ID3D12GraphicsCommandList10, DispatchGraph) | ||
| 36242 | void ( STDMETHODCALLTYPE *DispatchGraph )( | ||
| 36243 | ID3D12GraphicsCommandList10 * This, | ||
| 36244 | _In_ const D3D12_DISPATCH_GRAPH_DESC *pDesc); | ||
| 36245 | |||
| 36246 | END_INTERFACE | ||
| 36247 | } ID3D12GraphicsCommandList10Vtbl; | ||
| 36248 | |||
| 36249 | interface ID3D12GraphicsCommandList10 | ||
| 36250 | { | ||
| 36251 | CONST_VTBL struct ID3D12GraphicsCommandList10Vtbl *lpVtbl; | ||
| 36252 | }; | ||
| 36253 | |||
| 36254 | |||
| 36255 | |||
| 36256 | #ifdef COBJMACROS | ||
| 36257 | |||
| 36258 | |||
| 36259 | #define ID3D12GraphicsCommandList10_QueryInterface(This,riid,ppvObject) \ | ||
| 36260 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 36261 | |||
| 36262 | #define ID3D12GraphicsCommandList10_AddRef(This) \ | ||
| 36263 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 36264 | |||
| 36265 | #define ID3D12GraphicsCommandList10_Release(This) \ | ||
| 36266 | ( (This)->lpVtbl -> Release(This) ) | ||
| 36267 | |||
| 36268 | |||
| 36269 | #define ID3D12GraphicsCommandList10_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 36270 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 36271 | |||
| 36272 | #define ID3D12GraphicsCommandList10_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 36273 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 36274 | |||
| 36275 | #define ID3D12GraphicsCommandList10_SetPrivateDataInterface(This,guid,pData) \ | ||
| 36276 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 36277 | |||
| 36278 | #define ID3D12GraphicsCommandList10_SetName(This,Name) \ | ||
| 36279 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 36280 | |||
| 36281 | |||
| 36282 | #define ID3D12GraphicsCommandList10_GetDevice(This,riid,ppvDevice) \ | ||
| 36283 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 36284 | |||
| 36285 | |||
| 36286 | #define ID3D12GraphicsCommandList10_GetType(This) \ | ||
| 36287 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 36288 | |||
| 36289 | |||
| 36290 | #define ID3D12GraphicsCommandList10_Close(This) \ | ||
| 36291 | ( (This)->lpVtbl -> Close(This) ) | ||
| 36292 | |||
| 36293 | #define ID3D12GraphicsCommandList10_Reset(This,pAllocator,pInitialState) \ | ||
| 36294 | ( (This)->lpVtbl -> Reset(This,pAllocator,pInitialState) ) | ||
| 36295 | |||
| 36296 | #define ID3D12GraphicsCommandList10_ClearState(This,pPipelineState) \ | ||
| 36297 | ( (This)->lpVtbl -> ClearState(This,pPipelineState) ) | ||
| 36298 | |||
| 36299 | #define ID3D12GraphicsCommandList10_DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) \ | ||
| 36300 | ( (This)->lpVtbl -> DrawInstanced(This,VertexCountPerInstance,InstanceCount,StartVertexLocation,StartInstanceLocation) ) | ||
| 36301 | |||
| 36302 | #define ID3D12GraphicsCommandList10_DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) \ | ||
| 36303 | ( (This)->lpVtbl -> DrawIndexedInstanced(This,IndexCountPerInstance,InstanceCount,StartIndexLocation,BaseVertexLocation,StartInstanceLocation) ) | ||
| 36304 | |||
| 36305 | #define ID3D12GraphicsCommandList10_Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 36306 | ( (This)->lpVtbl -> Dispatch(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 36307 | |||
| 36308 | #define ID3D12GraphicsCommandList10_CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) \ | ||
| 36309 | ( (This)->lpVtbl -> CopyBufferRegion(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,NumBytes) ) | ||
| 36310 | |||
| 36311 | #define ID3D12GraphicsCommandList10_CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) \ | ||
| 36312 | ( (This)->lpVtbl -> CopyTextureRegion(This,pDst,DstX,DstY,DstZ,pSrc,pSrcBox) ) | ||
| 36313 | |||
| 36314 | #define ID3D12GraphicsCommandList10_CopyResource(This,pDstResource,pSrcResource) \ | ||
| 36315 | ( (This)->lpVtbl -> CopyResource(This,pDstResource,pSrcResource) ) | ||
| 36316 | |||
| 36317 | #define ID3D12GraphicsCommandList10_CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) \ | ||
| 36318 | ( (This)->lpVtbl -> CopyTiles(This,pTiledResource,pTileRegionStartCoordinate,pTileRegionSize,pBuffer,BufferStartOffsetInBytes,Flags) ) | ||
| 36319 | |||
| 36320 | #define ID3D12GraphicsCommandList10_ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) \ | ||
| 36321 | ( (This)->lpVtbl -> ResolveSubresource(This,pDstResource,DstSubresource,pSrcResource,SrcSubresource,Format) ) | ||
| 36322 | |||
| 36323 | #define ID3D12GraphicsCommandList10_IASetPrimitiveTopology(This,PrimitiveTopology) \ | ||
| 36324 | ( (This)->lpVtbl -> IASetPrimitiveTopology(This,PrimitiveTopology) ) | ||
| 36325 | |||
| 36326 | #define ID3D12GraphicsCommandList10_RSSetViewports(This,NumViewports,pViewports) \ | ||
| 36327 | ( (This)->lpVtbl -> RSSetViewports(This,NumViewports,pViewports) ) | ||
| 36328 | |||
| 36329 | #define ID3D12GraphicsCommandList10_RSSetScissorRects(This,NumRects,pRects) \ | ||
| 36330 | ( (This)->lpVtbl -> RSSetScissorRects(This,NumRects,pRects) ) | ||
| 36331 | |||
| 36332 | #define ID3D12GraphicsCommandList10_OMSetBlendFactor(This,BlendFactor) \ | ||
| 36333 | ( (This)->lpVtbl -> OMSetBlendFactor(This,BlendFactor) ) | ||
| 36334 | |||
| 36335 | #define ID3D12GraphicsCommandList10_OMSetStencilRef(This,StencilRef) \ | ||
| 36336 | ( (This)->lpVtbl -> OMSetStencilRef(This,StencilRef) ) | ||
| 36337 | |||
| 36338 | #define ID3D12GraphicsCommandList10_SetPipelineState(This,pPipelineState) \ | ||
| 36339 | ( (This)->lpVtbl -> SetPipelineState(This,pPipelineState) ) | ||
| 36340 | |||
| 36341 | #define ID3D12GraphicsCommandList10_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 36342 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 36343 | |||
| 36344 | #define ID3D12GraphicsCommandList10_ExecuteBundle(This,pCommandList) \ | ||
| 36345 | ( (This)->lpVtbl -> ExecuteBundle(This,pCommandList) ) | ||
| 36346 | |||
| 36347 | #define ID3D12GraphicsCommandList10_SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) \ | ||
| 36348 | ( (This)->lpVtbl -> SetDescriptorHeaps(This,NumDescriptorHeaps,ppDescriptorHeaps) ) | ||
| 36349 | |||
| 36350 | #define ID3D12GraphicsCommandList10_SetComputeRootSignature(This,pRootSignature) \ | ||
| 36351 | ( (This)->lpVtbl -> SetComputeRootSignature(This,pRootSignature) ) | ||
| 36352 | |||
| 36353 | #define ID3D12GraphicsCommandList10_SetGraphicsRootSignature(This,pRootSignature) \ | ||
| 36354 | ( (This)->lpVtbl -> SetGraphicsRootSignature(This,pRootSignature) ) | ||
| 36355 | |||
| 36356 | #define ID3D12GraphicsCommandList10_SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 36357 | ( (This)->lpVtbl -> SetComputeRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 36358 | |||
| 36359 | #define ID3D12GraphicsCommandList10_SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) \ | ||
| 36360 | ( (This)->lpVtbl -> SetGraphicsRootDescriptorTable(This,RootParameterIndex,BaseDescriptor) ) | ||
| 36361 | |||
| 36362 | #define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 36363 | ( (This)->lpVtbl -> SetComputeRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 36364 | |||
| 36365 | #define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) \ | ||
| 36366 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstant(This,RootParameterIndex,SrcData,DestOffsetIn32BitValues) ) | ||
| 36367 | |||
| 36368 | #define ID3D12GraphicsCommandList10_SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 36369 | ( (This)->lpVtbl -> SetComputeRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 36370 | |||
| 36371 | #define ID3D12GraphicsCommandList10_SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) \ | ||
| 36372 | ( (This)->lpVtbl -> SetGraphicsRoot32BitConstants(This,RootParameterIndex,Num32BitValuesToSet,pSrcData,DestOffsetIn32BitValues) ) | ||
| 36373 | |||
| 36374 | #define ID3D12GraphicsCommandList10_SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 36375 | ( (This)->lpVtbl -> SetComputeRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 36376 | |||
| 36377 | #define ID3D12GraphicsCommandList10_SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) \ | ||
| 36378 | ( (This)->lpVtbl -> SetGraphicsRootConstantBufferView(This,RootParameterIndex,BufferLocation) ) | ||
| 36379 | |||
| 36380 | #define ID3D12GraphicsCommandList10_SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 36381 | ( (This)->lpVtbl -> SetComputeRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 36382 | |||
| 36383 | #define ID3D12GraphicsCommandList10_SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) \ | ||
| 36384 | ( (This)->lpVtbl -> SetGraphicsRootShaderResourceView(This,RootParameterIndex,BufferLocation) ) | ||
| 36385 | |||
| 36386 | #define ID3D12GraphicsCommandList10_SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 36387 | ( (This)->lpVtbl -> SetComputeRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 36388 | |||
| 36389 | #define ID3D12GraphicsCommandList10_SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) \ | ||
| 36390 | ( (This)->lpVtbl -> SetGraphicsRootUnorderedAccessView(This,RootParameterIndex,BufferLocation) ) | ||
| 36391 | |||
| 36392 | #define ID3D12GraphicsCommandList10_IASetIndexBuffer(This,pView) \ | ||
| 36393 | ( (This)->lpVtbl -> IASetIndexBuffer(This,pView) ) | ||
| 36394 | |||
| 36395 | #define ID3D12GraphicsCommandList10_IASetVertexBuffers(This,StartSlot,NumViews,pViews) \ | ||
| 36396 | ( (This)->lpVtbl -> IASetVertexBuffers(This,StartSlot,NumViews,pViews) ) | ||
| 36397 | |||
| 36398 | #define ID3D12GraphicsCommandList10_SOSetTargets(This,StartSlot,NumViews,pViews) \ | ||
| 36399 | ( (This)->lpVtbl -> SOSetTargets(This,StartSlot,NumViews,pViews) ) | ||
| 36400 | |||
| 36401 | #define ID3D12GraphicsCommandList10_OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) \ | ||
| 36402 | ( (This)->lpVtbl -> OMSetRenderTargets(This,NumRenderTargetDescriptors,pRenderTargetDescriptors,RTsSingleHandleToDescriptorRange,pDepthStencilDescriptor) ) | ||
| 36403 | |||
| 36404 | #define ID3D12GraphicsCommandList10_ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) \ | ||
| 36405 | ( (This)->lpVtbl -> ClearDepthStencilView(This,DepthStencilView,ClearFlags,Depth,Stencil,NumRects,pRects) ) | ||
| 36406 | |||
| 36407 | #define ID3D12GraphicsCommandList10_ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) \ | ||
| 36408 | ( (This)->lpVtbl -> ClearRenderTargetView(This,RenderTargetView,ColorRGBA,NumRects,pRects) ) | ||
| 36409 | |||
| 36410 | #define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 36411 | ( (This)->lpVtbl -> ClearUnorderedAccessViewUint(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 36412 | |||
| 36413 | #define ID3D12GraphicsCommandList10_ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) \ | ||
| 36414 | ( (This)->lpVtbl -> ClearUnorderedAccessViewFloat(This,ViewGPUHandleInCurrentHeap,ViewCPUHandle,pResource,Values,NumRects,pRects) ) | ||
| 36415 | |||
| 36416 | #define ID3D12GraphicsCommandList10_DiscardResource(This,pResource,pRegion) \ | ||
| 36417 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 36418 | |||
| 36419 | #define ID3D12GraphicsCommandList10_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 36420 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 36421 | |||
| 36422 | #define ID3D12GraphicsCommandList10_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 36423 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 36424 | |||
| 36425 | #define ID3D12GraphicsCommandList10_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 36426 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 36427 | |||
| 36428 | #define ID3D12GraphicsCommandList10_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 36429 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 36430 | |||
| 36431 | #define ID3D12GraphicsCommandList10_SetMarker(This,Metadata,pData,Size) \ | ||
| 36432 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 36433 | |||
| 36434 | #define ID3D12GraphicsCommandList10_BeginEvent(This,Metadata,pData,Size) \ | ||
| 36435 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 36436 | |||
| 36437 | #define ID3D12GraphicsCommandList10_EndEvent(This) \ | ||
| 36438 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 36439 | |||
| 36440 | #define ID3D12GraphicsCommandList10_ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) \ | ||
| 36441 | ( (This)->lpVtbl -> ExecuteIndirect(This,pCommandSignature,MaxCommandCount,pArgumentBuffer,ArgumentBufferOffset,pCountBuffer,CountBufferOffset) ) | ||
| 36442 | |||
| 36443 | |||
| 36444 | #define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 36445 | ( (This)->lpVtbl -> AtomicCopyBufferUINT(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 36446 | |||
| 36447 | #define ID3D12GraphicsCommandList10_AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) \ | ||
| 36448 | ( (This)->lpVtbl -> AtomicCopyBufferUINT64(This,pDstBuffer,DstOffset,pSrcBuffer,SrcOffset,Dependencies,ppDependentResources,pDependentSubresourceRanges) ) | ||
| 36449 | |||
| 36450 | #define ID3D12GraphicsCommandList10_OMSetDepthBounds(This,Min,Max) \ | ||
| 36451 | ( (This)->lpVtbl -> OMSetDepthBounds(This,Min,Max) ) | ||
| 36452 | |||
| 36453 | #define ID3D12GraphicsCommandList10_SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) \ | ||
| 36454 | ( (This)->lpVtbl -> SetSamplePositions(This,NumSamplesPerPixel,NumPixels,pSamplePositions) ) | ||
| 36455 | |||
| 36456 | #define ID3D12GraphicsCommandList10_ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) \ | ||
| 36457 | ( (This)->lpVtbl -> ResolveSubresourceRegion(This,pDstResource,DstSubresource,DstX,DstY,pSrcResource,SrcSubresource,pSrcRect,Format,ResolveMode) ) | ||
| 36458 | |||
| 36459 | #define ID3D12GraphicsCommandList10_SetViewInstanceMask(This,Mask) \ | ||
| 36460 | ( (This)->lpVtbl -> SetViewInstanceMask(This,Mask) ) | ||
| 36461 | |||
| 36462 | |||
| 36463 | #define ID3D12GraphicsCommandList10_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 36464 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 36465 | |||
| 36466 | |||
| 36467 | #define ID3D12GraphicsCommandList10_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 36468 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 36469 | |||
| 36470 | |||
| 36471 | #define ID3D12GraphicsCommandList10_BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) \ | ||
| 36472 | ( (This)->lpVtbl -> BeginRenderPass(This,NumRenderTargets,pRenderTargets,pDepthStencil,Flags) ) | ||
| 36473 | |||
| 36474 | #define ID3D12GraphicsCommandList10_EndRenderPass(This) \ | ||
| 36475 | ( (This)->lpVtbl -> EndRenderPass(This) ) | ||
| 36476 | |||
| 36477 | #define ID3D12GraphicsCommandList10_InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) \ | ||
| 36478 | ( (This)->lpVtbl -> InitializeMetaCommand(This,pMetaCommand,pInitializationParametersData,InitializationParametersDataSizeInBytes) ) | ||
| 36479 | |||
| 36480 | #define ID3D12GraphicsCommandList10_ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) \ | ||
| 36481 | ( (This)->lpVtbl -> ExecuteMetaCommand(This,pMetaCommand,pExecutionParametersData,ExecutionParametersDataSizeInBytes) ) | ||
| 36482 | |||
| 36483 | #define ID3D12GraphicsCommandList10_BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) \ | ||
| 36484 | ( (This)->lpVtbl -> BuildRaytracingAccelerationStructure(This,pDesc,NumPostbuildInfoDescs,pPostbuildInfoDescs) ) | ||
| 36485 | |||
| 36486 | #define ID3D12GraphicsCommandList10_EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) \ | ||
| 36487 | ( (This)->lpVtbl -> EmitRaytracingAccelerationStructurePostbuildInfo(This,pDesc,NumSourceAccelerationStructures,pSourceAccelerationStructureData) ) | ||
| 36488 | |||
| 36489 | #define ID3D12GraphicsCommandList10_CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) \ | ||
| 36490 | ( (This)->lpVtbl -> CopyRaytracingAccelerationStructure(This,DestAccelerationStructureData,SourceAccelerationStructureData,Mode) ) | ||
| 36491 | |||
| 36492 | #define ID3D12GraphicsCommandList10_SetPipelineState1(This,pStateObject) \ | ||
| 36493 | ( (This)->lpVtbl -> SetPipelineState1(This,pStateObject) ) | ||
| 36494 | |||
| 36495 | #define ID3D12GraphicsCommandList10_DispatchRays(This,pDesc) \ | ||
| 36496 | ( (This)->lpVtbl -> DispatchRays(This,pDesc) ) | ||
| 36497 | |||
| 36498 | |||
| 36499 | #define ID3D12GraphicsCommandList10_RSSetShadingRate(This,baseShadingRate,combiners) \ | ||
| 36500 | ( (This)->lpVtbl -> RSSetShadingRate(This,baseShadingRate,combiners) ) | ||
| 36501 | |||
| 36502 | #define ID3D12GraphicsCommandList10_RSSetShadingRateImage(This,shadingRateImage) \ | ||
| 36503 | ( (This)->lpVtbl -> RSSetShadingRateImage(This,shadingRateImage) ) | ||
| 36504 | |||
| 36505 | |||
| 36506 | #define ID3D12GraphicsCommandList10_DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) \ | ||
| 36507 | ( (This)->lpVtbl -> DispatchMesh(This,ThreadGroupCountX,ThreadGroupCountY,ThreadGroupCountZ) ) | ||
| 36508 | |||
| 36509 | |||
| 36510 | #define ID3D12GraphicsCommandList10_Barrier(This,NumBarrierGroups,pBarrierGroups) \ | ||
| 36511 | ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) | ||
| 36512 | |||
| 36513 | |||
| 36514 | #define ID3D12GraphicsCommandList10_OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) \ | ||
| 36515 | ( (This)->lpVtbl -> OMSetFrontAndBackStencilRef(This,FrontStencilRef,BackStencilRef) ) | ||
| 36516 | |||
| 36517 | |||
| 36518 | #define ID3D12GraphicsCommandList10_RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) \ | ||
| 36519 | ( (This)->lpVtbl -> RSSetDepthBias(This,DepthBias,DepthBiasClamp,SlopeScaledDepthBias) ) | ||
| 36520 | |||
| 36521 | #define ID3D12GraphicsCommandList10_IASetIndexBufferStripCutValue(This,IBStripCutValue) \ | ||
| 36522 | ( (This)->lpVtbl -> IASetIndexBufferStripCutValue(This,IBStripCutValue) ) | ||
| 36523 | |||
| 36524 | |||
| 36525 | #define ID3D12GraphicsCommandList10_SetProgram(This,pDesc) \ | ||
| 36526 | ( (This)->lpVtbl -> SetProgram(This,pDesc) ) | ||
| 36527 | |||
| 36528 | #define ID3D12GraphicsCommandList10_DispatchGraph(This,pDesc) \ | ||
| 36529 | ( (This)->lpVtbl -> DispatchGraph(This,pDesc) ) | ||
| 36530 | |||
| 36531 | #endif /* COBJMACROS */ | ||
| 36532 | |||
| 36533 | |||
| 36534 | #endif /* C style interface */ | ||
| 36535 | |||
| 36536 | |||
| 36537 | |||
| 36538 | |||
| 36539 | #endif /* __ID3D12GraphicsCommandList10_INTERFACE_DEFINED__ */ | ||
| 36540 | |||
| 36541 | |||
| 36542 | #ifndef __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__ | ||
| 36543 | #define __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__ | ||
| 36544 | |||
| 36545 | /* interface ID3D12DSRDeviceFactory */ | ||
| 36546 | /* [unique][local][object][uuid] */ | ||
| 36547 | |||
| 36548 | |||
| 36549 | EXTERN_C const IID IID_ID3D12DSRDeviceFactory; | ||
| 36550 | |||
| 36551 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 36552 | |||
| 36553 | MIDL_INTERFACE("f343d1a0-afe3-439f-b13d-cd87a43b70ca") | ||
| 36554 | ID3D12DSRDeviceFactory : public IUnknown | ||
| 36555 | { | ||
| 36556 | public: | ||
| 36557 | virtual HRESULT STDMETHODCALLTYPE CreateDSRDevice( | ||
| 36558 | ID3D12Device *pD3D12Device, | ||
| 36559 | UINT NodeMask, | ||
| 36560 | REFIID riid, | ||
| 36561 | _COM_Outptr_ void **ppvDSRDevice) = 0; | ||
| 36562 | |||
| 36563 | }; | ||
| 36564 | |||
| 36565 | |||
| 36566 | #else /* C style interface */ | ||
| 36567 | |||
| 36568 | typedef struct ID3D12DSRDeviceFactoryVtbl | ||
| 36569 | { | ||
| 36570 | BEGIN_INTERFACE | ||
| 36571 | |||
| 36572 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 36573 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 36574 | ID3D12DSRDeviceFactory * This, | ||
| 36575 | REFIID riid, | ||
| 36576 | _COM_Outptr_ void **ppvObject); | ||
| 36577 | |||
| 36578 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 36579 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 36580 | ID3D12DSRDeviceFactory * This); | ||
| 36581 | |||
| 36582 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 36583 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 36584 | ID3D12DSRDeviceFactory * This); | ||
| 36585 | |||
| 36586 | DECLSPEC_XFGVIRT(ID3D12DSRDeviceFactory, CreateDSRDevice) | ||
| 36587 | HRESULT ( STDMETHODCALLTYPE *CreateDSRDevice )( | ||
| 36588 | ID3D12DSRDeviceFactory * This, | ||
| 36589 | ID3D12Device *pD3D12Device, | ||
| 36590 | UINT NodeMask, | ||
| 36591 | REFIID riid, | ||
| 36592 | _COM_Outptr_ void **ppvDSRDevice); | ||
| 36593 | |||
| 36594 | END_INTERFACE | ||
| 36595 | } ID3D12DSRDeviceFactoryVtbl; | ||
| 36596 | |||
| 36597 | interface ID3D12DSRDeviceFactory | ||
| 36598 | { | ||
| 36599 | CONST_VTBL struct ID3D12DSRDeviceFactoryVtbl *lpVtbl; | ||
| 36600 | }; | ||
| 36601 | |||
| 36602 | |||
| 36603 | |||
| 36604 | #ifdef COBJMACROS | ||
| 36605 | |||
| 36606 | |||
| 36607 | #define ID3D12DSRDeviceFactory_QueryInterface(This,riid,ppvObject) \ | ||
| 36608 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 36609 | |||
| 36610 | #define ID3D12DSRDeviceFactory_AddRef(This) \ | ||
| 36611 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 36612 | |||
| 36613 | #define ID3D12DSRDeviceFactory_Release(This) \ | ||
| 36614 | ( (This)->lpVtbl -> Release(This) ) | ||
| 36615 | |||
| 36616 | |||
| 36617 | #define ID3D12DSRDeviceFactory_CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) \ | ||
| 36618 | ( (This)->lpVtbl -> CreateDSRDevice(This,pD3D12Device,NodeMask,riid,ppvDSRDevice) ) | ||
| 36619 | |||
| 36620 | #endif /* COBJMACROS */ | ||
| 36621 | |||
| 36622 | |||
| 36623 | #endif /* C style interface */ | ||
| 36624 | |||
| 36625 | |||
| 36626 | |||
| 36627 | |||
| 36628 | #endif /* __ID3D12DSRDeviceFactory_INTERFACE_DEFINED__ */ | ||
| 36629 | |||
| 36630 | |||
| 36631 | #ifndef __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ | ||
| 36632 | #define __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ | ||
| 36633 | |||
| 36634 | /* interface ID3D12GBVDiagnostics */ | ||
| 36635 | /* [unique][local][object][uuid] */ | ||
| 36636 | |||
| 36637 | |||
| 36638 | EXTERN_C const IID IID_ID3D12GBVDiagnostics; | ||
| 36639 | |||
| 36640 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 36641 | |||
| 36642 | MIDL_INTERFACE("597985ab-9b75-4dbb-be23-0761195bebee") | ||
| 36643 | ID3D12GBVDiagnostics : public IUnknown | ||
| 36644 | { | ||
| 36645 | public: | ||
| 36646 | virtual HRESULT STDMETHODCALLTYPE GetGBVEntireSubresourceStatesData( | ||
| 36647 | _In_ ID3D12Resource *pResource, | ||
| 36648 | _Out_writes_bytes_(DataSize) int *pData, | ||
| 36649 | UINT DataSize) = 0; | ||
| 36650 | |||
| 36651 | virtual HRESULT STDMETHODCALLTYPE GetGBVSubresourceState( | ||
| 36652 | _In_ ID3D12Resource *pResource, | ||
| 36653 | UINT Subresource, | ||
| 36654 | _Out_ int *pData) = 0; | ||
| 36655 | |||
| 36656 | virtual HRESULT STDMETHODCALLTYPE GetGBVResourceUniformState( | ||
| 36657 | _In_ ID3D12Resource *pResource, | ||
| 36658 | _Out_ int *pData) = 0; | ||
| 36659 | |||
| 36660 | virtual HRESULT STDMETHODCALLTYPE GetGBVResourceInfo( | ||
| 36661 | _In_ ID3D12Resource *pResource, | ||
| 36662 | _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 36663 | _In_opt_ UINT32 *pResourceHash, | ||
| 36664 | _In_opt_ UINT32 *pSubresourceStatesByteOffset) = 0; | ||
| 36665 | |||
| 36666 | virtual void STDMETHODCALLTYPE GBVReserved0( void) = 0; | ||
| 36667 | |||
| 36668 | virtual void STDMETHODCALLTYPE GBVReserved1( void) = 0; | ||
| 36669 | |||
| 36670 | }; | ||
| 36671 | |||
| 36672 | |||
| 36673 | #else /* C style interface */ | ||
| 36674 | |||
| 36675 | typedef struct ID3D12GBVDiagnosticsVtbl | ||
| 36676 | { | ||
| 36677 | BEGIN_INTERFACE | ||
| 36678 | |||
| 36679 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 36680 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 36681 | ID3D12GBVDiagnostics * This, | ||
| 36682 | REFIID riid, | ||
| 36683 | _COM_Outptr_ void **ppvObject); | ||
| 36684 | |||
| 36685 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 36686 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 36687 | ID3D12GBVDiagnostics * This); | ||
| 36688 | |||
| 36689 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 36690 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 36691 | ID3D12GBVDiagnostics * This); | ||
| 36692 | |||
| 36693 | DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVEntireSubresourceStatesData) | ||
| 36694 | HRESULT ( STDMETHODCALLTYPE *GetGBVEntireSubresourceStatesData )( | ||
| 36695 | ID3D12GBVDiagnostics * This, | ||
| 36696 | _In_ ID3D12Resource *pResource, | ||
| 36697 | _Out_writes_bytes_(DataSize) int *pData, | ||
| 36698 | UINT DataSize); | ||
| 36699 | |||
| 36700 | DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVSubresourceState) | ||
| 36701 | HRESULT ( STDMETHODCALLTYPE *GetGBVSubresourceState )( | ||
| 36702 | ID3D12GBVDiagnostics * This, | ||
| 36703 | _In_ ID3D12Resource *pResource, | ||
| 36704 | UINT Subresource, | ||
| 36705 | _Out_ int *pData); | ||
| 36706 | |||
| 36707 | DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceUniformState) | ||
| 36708 | HRESULT ( STDMETHODCALLTYPE *GetGBVResourceUniformState )( | ||
| 36709 | ID3D12GBVDiagnostics * This, | ||
| 36710 | _In_ ID3D12Resource *pResource, | ||
| 36711 | _Out_ int *pData); | ||
| 36712 | |||
| 36713 | DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GetGBVResourceInfo) | ||
| 36714 | HRESULT ( STDMETHODCALLTYPE *GetGBVResourceInfo )( | ||
| 36715 | ID3D12GBVDiagnostics * This, | ||
| 36716 | _In_ ID3D12Resource *pResource, | ||
| 36717 | _In_opt_ D3D12_RESOURCE_DESC *pResourceDesc, | ||
| 36718 | _In_opt_ UINT32 *pResourceHash, | ||
| 36719 | _In_opt_ UINT32 *pSubresourceStatesByteOffset); | ||
| 36720 | |||
| 36721 | DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved0) | ||
| 36722 | void ( STDMETHODCALLTYPE *GBVReserved0 )( | ||
| 36723 | ID3D12GBVDiagnostics * This); | ||
| 36724 | |||
| 36725 | DECLSPEC_XFGVIRT(ID3D12GBVDiagnostics, GBVReserved1) | ||
| 36726 | void ( STDMETHODCALLTYPE *GBVReserved1 )( | ||
| 36727 | ID3D12GBVDiagnostics * This); | ||
| 36728 | |||
| 36729 | END_INTERFACE | ||
| 36730 | } ID3D12GBVDiagnosticsVtbl; | ||
| 36731 | |||
| 36732 | interface ID3D12GBVDiagnostics | ||
| 36733 | { | ||
| 36734 | CONST_VTBL struct ID3D12GBVDiagnosticsVtbl *lpVtbl; | ||
| 36735 | }; | ||
| 36736 | |||
| 36737 | |||
| 36738 | |||
| 36739 | #ifdef COBJMACROS | ||
| 36740 | |||
| 36741 | |||
| 36742 | #define ID3D12GBVDiagnostics_QueryInterface(This,riid,ppvObject) \ | ||
| 36743 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 36744 | |||
| 36745 | #define ID3D12GBVDiagnostics_AddRef(This) \ | ||
| 36746 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 36747 | |||
| 36748 | #define ID3D12GBVDiagnostics_Release(This) \ | ||
| 36749 | ( (This)->lpVtbl -> Release(This) ) | ||
| 36750 | |||
| 36751 | |||
| 36752 | #define ID3D12GBVDiagnostics_GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) \ | ||
| 36753 | ( (This)->lpVtbl -> GetGBVEntireSubresourceStatesData(This,pResource,pData,DataSize) ) | ||
| 36754 | |||
| 36755 | #define ID3D12GBVDiagnostics_GetGBVSubresourceState(This,pResource,Subresource,pData) \ | ||
| 36756 | ( (This)->lpVtbl -> GetGBVSubresourceState(This,pResource,Subresource,pData) ) | ||
| 36757 | |||
| 36758 | #define ID3D12GBVDiagnostics_GetGBVResourceUniformState(This,pResource,pData) \ | ||
| 36759 | ( (This)->lpVtbl -> GetGBVResourceUniformState(This,pResource,pData) ) | ||
| 36760 | |||
| 36761 | #define ID3D12GBVDiagnostics_GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) \ | ||
| 36762 | ( (This)->lpVtbl -> GetGBVResourceInfo(This,pResource,pResourceDesc,pResourceHash,pSubresourceStatesByteOffset) ) | ||
| 36763 | |||
| 36764 | #define ID3D12GBVDiagnostics_GBVReserved0(This) \ | ||
| 36765 | ( (This)->lpVtbl -> GBVReserved0(This) ) | ||
| 36766 | |||
| 36767 | #define ID3D12GBVDiagnostics_GBVReserved1(This) \ | ||
| 36768 | ( (This)->lpVtbl -> GBVReserved1(This) ) | ||
| 36769 | |||
| 36770 | #endif /* COBJMACROS */ | ||
| 36771 | |||
| 36772 | |||
| 36773 | #endif /* C style interface */ | ||
| 36774 | |||
| 36775 | |||
| 36776 | |||
| 36777 | |||
| 36778 | #endif /* __ID3D12GBVDiagnostics_INTERFACE_DEFINED__ */ | ||
| 36779 | |||
| 36780 | |||
| 36781 | /* interface __MIDL_itf_d3d12_0000_0085 */ | ||
| 36782 | /* [local] */ | ||
| 36783 | |||
| 36784 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ | ||
| 36785 | #pragma endregion | ||
| 36786 | DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8); | ||
| 36787 | DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57); | ||
| 36788 | DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14); | ||
| 36789 | DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46); | ||
| 36790 | DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0); | ||
| 36791 | DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6); | ||
| 36792 | DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3); | ||
| 36793 | DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad); | ||
| 36794 | DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24); | ||
| 36795 | DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76); | ||
| 36796 | DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a); | ||
| 36797 | DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45); | ||
| 36798 | DEFINE_GUID(IID_ID3D12PipelineState1,0x5646804c,0x9638,0x48f7,0x91,0x82,0xb3,0xee,0x5a,0x6b,0x60,0xfb); | ||
| 36799 | DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51); | ||
| 36800 | DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4); | ||
| 36801 | DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1); | ||
| 36802 | DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5); | ||
| 36803 | DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55); | ||
| 36804 | DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7); | ||
| 36805 | DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28); | ||
| 36806 | DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed); | ||
| 36807 | DEFINE_GUID(IID_ID3D12CommandQueue1,0x3a3c3165,0x0ee7,0x4b8e,0xa0,0xaf,0x63,0x56,0xb4,0xc3,0xbb,0xb9); | ||
| 36808 | DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7); | ||
| 36809 | DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f); | ||
| 36810 | DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3); | ||
| 36811 | DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e); | ||
| 36812 | DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28); | ||
| 36813 | DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98); | ||
| 36814 | DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B); | ||
| 36815 | DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D); | ||
| 36816 | DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5); | ||
| 36817 | DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8); | ||
| 36818 | DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f); | ||
| 36819 | DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13); | ||
| 36820 | DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d); | ||
| 36821 | DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60); | ||
| 36822 | DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38); | ||
| 36823 | DEFINE_GUID(IID_ID3D12StateObjectProperties2,0xd5e82917,0xf0f1,0x44cf,0xae,0x5e,0xce,0x22,0x2d,0xd0,0xb8,0x84); | ||
| 36824 | DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57); | ||
| 36825 | DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d); | ||
| 36826 | DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63); | ||
| 36827 | DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B); | ||
| 36828 | DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings2,0x61552388,0x01ab,0x4008,0xa4,0x36,0x83,0xdb,0x18,0x95,0x66,0xea); | ||
| 36829 | DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71); | ||
| 36830 | DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06); | ||
| 36831 | DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54); | ||
| 36832 | DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc); | ||
| 36833 | DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09); | ||
| 36834 | DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b); | ||
| 36835 | DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3); | ||
| 36836 | DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19); | ||
| 36837 | DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95); | ||
| 36838 | DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D); | ||
| 36839 | DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D); | ||
| 36840 | DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70); | ||
| 36841 | DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74); | ||
| 36842 | DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8); | ||
| 36843 | DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c); | ||
| 36844 | DEFINE_GUID(IID_ID3D12Device10,0x517f8718,0xaa66,0x49f9,0xb0,0x2b,0xa7,0xab,0x89,0xc0,0x60,0x31); | ||
| 36845 | DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4,0x5a,0xee,0x39); | ||
| 36846 | DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5); | ||
| 36847 | DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e); | ||
| 36848 | DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23); | ||
| 36849 | DEFINE_GUID(IID_ID3D12StateObjectDatabase,0xc56060b7,0xb5fc,0x4135,0x98,0xe0,0xa1,0xe9,0x99,0x7e,0xac,0xe0); | ||
| 36850 | DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76); | ||
| 36851 | DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5); | ||
| 36852 | DEFINE_GUID(IID_ID3D12Tools1,0xe4fbc019,0xdd3c,0x43e1,0x8f,0x32,0x7f,0x64,0x95,0x75,0xf0,0xa0); | ||
| 36853 | DEFINE_GUID(IID_ID3D12Tools2,0x01d393c5,0xc9b0,0x42a1,0x95,0x8c,0xc2,0x6b,0x02,0xd4,0xd0,0x97); | ||
| 36854 | DEFINE_GUID(IID_ID3D12PageableTools,0x8f1359db,0xd8d1,0x42f9,0xb5,0xcf,0x79,0xf4,0xcb,0xad,0x0d,0x3d); | ||
| 36855 | DEFINE_GUID(IID_ID3D12DeviceTools,0x2ea68e9c,0x19c3,0x4e47,0xa1,0x09,0x6c,0xda,0xdf,0xf0,0xac,0xa9); | ||
| 36856 | DEFINE_GUID(IID_ID3D12DeviceTools1,0xe30e9fc7,0xe641,0x4d6e,0x8a,0x81,0x9d,0xd9,0x20,0x6e,0xc4,0x7a); | ||
| 36857 | DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7); | ||
| 36858 | DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9,0xc3,0x7e,0x00,0x9d,0x9f); | ||
| 36859 | DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb); | ||
| 36860 | DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad); | ||
| 36861 | DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56); | ||
| 36862 | DEFINE_GUID(IID_ID3D12StateObjectDatabaseFactory,0xf5b066f0,0x648a,0x4611,0xbd,0x41,0x27,0xfd,0x09,0x48,0xb9,0xeb); | ||
| 36863 | DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea); | ||
| 36864 | DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80); | ||
| 36865 | DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1); | ||
| 36866 | DEFINE_GUID(IID_ID3D12GraphicsCommandList8,0xee936ef9,0x599d,0x4d28,0x93,0x8e,0x23,0xc4,0xad,0x05,0xce,0x51); | ||
| 36867 | DEFINE_GUID(IID_ID3D12GraphicsCommandList9,0x34ed2808,0xffe6,0x4c2b,0xb1,0x1a,0xca,0xbd,0x2b,0x0c,0x59,0xe1); | ||
| 36868 | DEFINE_GUID(IID_ID3D12GraphicsCommandList10,0x7013c015,0xd161,0x4b63,0xa0,0x8c,0x23,0x85,0x52,0xdd,0x8a,0xcc); | ||
| 36869 | DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0x87,0xa4,0x3b,0x70,0xca); | ||
| 36870 | DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee); | ||
| 36871 | |||
| 36872 | |||
| 36873 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_c_ifspec; | ||
| 36874 | extern RPC_IF_HANDLE __MIDL_itf_d3d12_0000_0085_v0_0_s_ifspec; | ||
| 36875 | |||
| 36876 | /* Additional Prototypes for ALL interfaces */ | ||
| 36877 | |||
| 36878 | /* end of Additional Prototypes */ | ||
| 36879 | |||
| 36880 | #ifdef __cplusplus | ||
| 36881 | } | ||
| 36882 | #endif | ||
| 36883 | |||
| 36884 | #endif | ||
| 36885 | |||
| 36886 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.idl b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.idl new file mode 100644 index 0000000..f87746a --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12.idl | |||
| @@ -0,0 +1,7014 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | import "oaidl.idl"; | ||
| 8 | import "ocidl.idl"; | ||
| 9 | |||
| 10 | import "dxgicommon.idl"; | ||
| 11 | import "dxgiformat.idl"; | ||
| 12 | |||
| 13 | import "d3dcommon.idl"; | ||
| 14 | |||
| 15 | cpp_quote("#include <winapifamily.h>") | ||
| 16 | |||
| 17 | #pragma region App Family | ||
| 18 | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") | ||
| 19 | |||
| 20 | // NOTE: The following constants are generated from the D3D12 hardware spec. Do not edit these values directly. | ||
| 21 | cpp_quote("#ifndef _D3D12_CONSTANTS") | ||
| 22 | cpp_quote("#define _D3D12_CONSTANTS") | ||
| 23 | const UINT D3D12_16BIT_INDEX_STRIP_CUT_VALUE = 0xffff; | ||
| 24 | const UINT D3D12_32BIT_INDEX_STRIP_CUT_VALUE = 0xffffffff; | ||
| 25 | const UINT D3D12_8BIT_INDEX_STRIP_CUT_VALUE = 0xff; | ||
| 26 | const UINT D3D12_APPEND_ALIGNED_ELEMENT = 0xffffffff; | ||
| 27 | const UINT D3D12_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT = 9; | ||
| 28 | const UINT D3D12_CLIP_OR_CULL_DISTANCE_COUNT = 8; | ||
| 29 | const UINT D3D12_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT = 2; | ||
| 30 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT = 14; | ||
| 31 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS = 4; | ||
| 32 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32; | ||
| 33 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT = 15; | ||
| 34 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT = 16; | ||
| 35 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; | ||
| 36 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT = 15; | ||
| 37 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; | ||
| 38 | const UINT D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; | ||
| 39 | const UINT D3D12_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT = 64; | ||
| 40 | const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4; | ||
| 41 | const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1; | ||
| 42 | const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1; | ||
| 43 | const UINT D3D12_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1; | ||
| 44 | const UINT D3D12_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32; | ||
| 45 | const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS = 1; | ||
| 46 | const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT = 128; | ||
| 47 | const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1; | ||
| 48 | const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS = 1; | ||
| 49 | const UINT D3D12_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT = 128; | ||
| 50 | const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS = 1; | ||
| 51 | const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_COUNT = 16; | ||
| 52 | const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST = 1; | ||
| 53 | const UINT D3D12_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS = 1; | ||
| 54 | const UINT D3D12_COMMONSHADER_SAMPLER_SLOT_COUNT = 16; | ||
| 55 | const UINT D3D12_COMMONSHADER_SUBROUTINE_NESTING_LIMIT = 32; | ||
| 56 | const UINT D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENTS = 4; | ||
| 57 | const UINT D3D12_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 58 | const UINT D3D12_COMMONSHADER_TEMP_REGISTER_COUNT = 4096; | ||
| 59 | const UINT D3D12_COMMONSHADER_TEMP_REGISTER_READS_PER_INST = 3; | ||
| 60 | const UINT D3D12_COMMONSHADER_TEMP_REGISTER_READ_PORTS = 3; | ||
| 61 | const UINT D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX = 10; | ||
| 62 | const INT D3D12_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN = -10; | ||
| 63 | const INT D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE = -8; | ||
| 64 | const UINT D3D12_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE = 7; | ||
| 65 | const UINT D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT = 256; | ||
| 66 | const UINT D3D12_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 256; | ||
| 67 | const UINT D3D12_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP = 64; | ||
| 68 | const UINT D3D12_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 240; | ||
| 69 | const UINT D3D12_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP = 68; | ||
| 70 | const UINT D3D12_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 224; | ||
| 71 | const UINT D3D12_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP = 72; | ||
| 72 | const UINT D3D12_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 208; | ||
| 73 | const UINT D3D12_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP = 76; | ||
| 74 | const UINT D3D12_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 192; | ||
| 75 | const UINT D3D12_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP = 84; | ||
| 76 | const UINT D3D12_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 176; | ||
| 77 | const UINT D3D12_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP = 92; | ||
| 78 | const UINT D3D12_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 160; | ||
| 79 | const UINT D3D12_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP = 100; | ||
| 80 | const UINT D3D12_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 144; | ||
| 81 | const UINT D3D12_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP = 112; | ||
| 82 | const UINT D3D12_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 128; | ||
| 83 | const UINT D3D12_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP = 128; | ||
| 84 | const UINT D3D12_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 112; | ||
| 85 | const UINT D3D12_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP = 144; | ||
| 86 | const UINT D3D12_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 96; | ||
| 87 | const UINT D3D12_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP = 168; | ||
| 88 | const UINT D3D12_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 80; | ||
| 89 | const UINT D3D12_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP = 204; | ||
| 90 | const UINT D3D12_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 64; | ||
| 91 | const UINT D3D12_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP = 256; | ||
| 92 | const UINT D3D12_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 48; | ||
| 93 | const UINT D3D12_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP = 340; | ||
| 94 | const UINT D3D12_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 32; | ||
| 95 | const UINT D3D12_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP = 512; | ||
| 96 | const UINT D3D12_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 16; | ||
| 97 | const UINT D3D12_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP = 768; | ||
| 98 | const UINT D3D12_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION = 1; | ||
| 99 | const UINT D3D12_CS_4_X_RAW_UAV_BYTE_ALIGNMENT = 256; | ||
| 100 | const UINT D3D12_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP = 768; | ||
| 101 | const UINT D3D12_CS_4_X_THREAD_GROUP_MAX_X = 768; | ||
| 102 | const UINT D3D12_CS_4_X_THREAD_GROUP_MAX_Y = 768; | ||
| 103 | const UINT D3D12_CS_4_X_UAV_REGISTER_COUNT = 1; | ||
| 104 | const UINT D3D12_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION = 65535; | ||
| 105 | const UINT D3D12_CS_TGSM_REGISTER_COUNT = 8192; | ||
| 106 | const UINT D3D12_CS_TGSM_REGISTER_READS_PER_INST = 1; | ||
| 107 | const UINT D3D12_CS_TGSM_RESOURCE_REGISTER_COMPONENTS = 1; | ||
| 108 | const UINT D3D12_CS_TGSM_RESOURCE_REGISTER_READ_PORTS = 1; | ||
| 109 | const UINT D3D12_CS_THREADGROUPID_REGISTER_COMPONENTS = 3; | ||
| 110 | const UINT D3D12_CS_THREADGROUPID_REGISTER_COUNT = 1; | ||
| 111 | const UINT D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COMPONENTS = 1; | ||
| 112 | const UINT D3D12_CS_THREADIDINGROUPFLATTENED_REGISTER_COUNT = 1; | ||
| 113 | const UINT D3D12_CS_THREADIDINGROUP_REGISTER_COMPONENTS = 3; | ||
| 114 | const UINT D3D12_CS_THREADIDINGROUP_REGISTER_COUNT = 1; | ||
| 115 | const UINT D3D12_CS_THREADID_REGISTER_COMPONENTS = 3; | ||
| 116 | const UINT D3D12_CS_THREADID_REGISTER_COUNT = 1; | ||
| 117 | const UINT D3D12_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP = 1024; | ||
| 118 | const UINT D3D12_CS_THREAD_GROUP_MAX_X = 1024; | ||
| 119 | const UINT D3D12_CS_THREAD_GROUP_MAX_Y = 1024; | ||
| 120 | const UINT D3D12_CS_THREAD_GROUP_MAX_Z = 64; | ||
| 121 | const UINT D3D12_CS_THREAD_GROUP_MIN_X = 1; | ||
| 122 | const UINT D3D12_CS_THREAD_GROUP_MIN_Y = 1; | ||
| 123 | const UINT D3D12_CS_THREAD_GROUP_MIN_Z = 1; | ||
| 124 | const UINT D3D12_CS_THREAD_LOCAL_TEMP_REGISTER_POOL = 16384; | ||
| 125 | cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA ( 1.0f )") | ||
| 126 | cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_BLUE ( 1.0f )") | ||
| 127 | cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_GREEN ( 1.0f )") | ||
| 128 | cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_RED ( 1.0f )") | ||
| 129 | cpp_quote("#define D3D12_DEFAULT_BORDER_COLOR_COMPONENT ( 0.0f )") | ||
| 130 | const UINT D3D12_DEFAULT_DEPTH_BIAS = 0; | ||
| 131 | cpp_quote("#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP ( 0.0f )") | ||
| 132 | const UINT D3D12_DEFAULT_MAX_ANISOTROPY = 16; | ||
| 133 | cpp_quote("#define D3D12_DEFAULT_MIP_LOD_BIAS ( 0.0f )") | ||
| 134 | const UINT D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 4194304; | ||
| 135 | const UINT D3D12_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0; | ||
| 136 | const UINT D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT = 65536; | ||
| 137 | const UINT D3D12_DEFAULT_SAMPLE_MASK = 0xffffffff; | ||
| 138 | const UINT D3D12_DEFAULT_SCISSOR_ENDX = 0; | ||
| 139 | const UINT D3D12_DEFAULT_SCISSOR_ENDY = 0; | ||
| 140 | const UINT D3D12_DEFAULT_SCISSOR_STARTX = 0; | ||
| 141 | const UINT D3D12_DEFAULT_SCISSOR_STARTY = 0; | ||
| 142 | cpp_quote("#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS ( 0.0f )") | ||
| 143 | const UINT D3D12_DEFAULT_STENCIL_READ_MASK = 0xff; | ||
| 144 | const UINT D3D12_DEFAULT_STENCIL_REFERENCE = 0; | ||
| 145 | const UINT D3D12_DEFAULT_STENCIL_WRITE_MASK = 0xff; | ||
| 146 | const UINT D3D12_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0; | ||
| 147 | const UINT D3D12_DEFAULT_VIEWPORT_HEIGHT = 0; | ||
| 148 | cpp_quote("#define D3D12_DEFAULT_VIEWPORT_MAX_DEPTH ( 0.0f )") | ||
| 149 | cpp_quote("#define D3D12_DEFAULT_VIEWPORT_MIN_DEPTH ( 0.0f )") | ||
| 150 | const UINT D3D12_DEFAULT_VIEWPORT_TOPLEFTX = 0; | ||
| 151 | const UINT D3D12_DEFAULT_VIEWPORT_TOPLEFTY = 0; | ||
| 152 | const UINT D3D12_DEFAULT_VIEWPORT_WIDTH = 0; | ||
| 153 | const UINT D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND = 0xffffffff; | ||
| 154 | const UINT D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_END = 0xfffffff7; | ||
| 155 | const UINT D3D12_DRIVER_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff0; | ||
| 156 | const UINT D3D12_DS_INPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968; | ||
| 157 | const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENTS = 4; | ||
| 158 | const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 159 | const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_COUNT = 32; | ||
| 160 | const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READS_PER_INST = 2; | ||
| 161 | const UINT D3D12_DS_INPUT_CONTROL_POINT_REGISTER_READ_PORTS = 1; | ||
| 162 | const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENTS = 3; | ||
| 163 | const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 164 | const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_COUNT = 1; | ||
| 165 | const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READS_PER_INST = 2; | ||
| 166 | const UINT D3D12_DS_INPUT_DOMAIN_POINT_REGISTER_READ_PORTS = 1; | ||
| 167 | const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4; | ||
| 168 | const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 169 | const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_COUNT = 32; | ||
| 170 | const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2; | ||
| 171 | const UINT D3D12_DS_INPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1; | ||
| 172 | const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1; | ||
| 173 | const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 174 | const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1; | ||
| 175 | const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2; | ||
| 176 | const UINT D3D12_DS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1; | ||
| 177 | const UINT D3D12_DS_OUTPUT_REGISTER_COMPONENTS = 4; | ||
| 178 | const UINT D3D12_DS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 179 | const UINT D3D12_DS_OUTPUT_REGISTER_COUNT = 32; | ||
| 180 | cpp_quote("#define D3D12_FLOAT16_FUSED_TOLERANCE_IN_ULP ( 0.6 )") | ||
| 181 | cpp_quote("#define D3D12_FLOAT32_MAX ( 3.402823466e+38f )") | ||
| 182 | cpp_quote("#define D3D12_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP ( 0.6f )") | ||
| 183 | cpp_quote("#define D3D12_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR ( 2.4f )") | ||
| 184 | cpp_quote("#define D3D12_FLOAT_TO_SRGB_EXPONENT_NUMERATOR ( 1.0f )") | ||
| 185 | cpp_quote("#define D3D12_FLOAT_TO_SRGB_OFFSET ( 0.055f )") | ||
| 186 | cpp_quote("#define D3D12_FLOAT_TO_SRGB_SCALE_1 ( 12.92f )") | ||
| 187 | cpp_quote("#define D3D12_FLOAT_TO_SRGB_SCALE_2 ( 1.055f )") | ||
| 188 | cpp_quote("#define D3D12_FLOAT_TO_SRGB_THRESHOLD ( 0.0031308f )") | ||
| 189 | cpp_quote("#define D3D12_FTOI_INSTRUCTION_MAX_INPUT ( 2147483647.999f )") | ||
| 190 | cpp_quote("#define D3D12_FTOI_INSTRUCTION_MIN_INPUT ( -2147483648.999f )") | ||
| 191 | cpp_quote("#define D3D12_FTOU_INSTRUCTION_MAX_INPUT ( 4294967295.999f )") | ||
| 192 | cpp_quote("#define D3D12_FTOU_INSTRUCTION_MIN_INPUT ( 0.0f )") | ||
| 193 | const UINT D3D12_GS_INPUT_INSTANCE_ID_READS_PER_INST = 2; | ||
| 194 | const UINT D3D12_GS_INPUT_INSTANCE_ID_READ_PORTS = 1; | ||
| 195 | const UINT D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENTS = 1; | ||
| 196 | const UINT D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 197 | const UINT D3D12_GS_INPUT_INSTANCE_ID_REGISTER_COUNT = 1; | ||
| 198 | const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS = 1; | ||
| 199 | const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 200 | const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_COUNT = 1; | ||
| 201 | const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST = 2; | ||
| 202 | const UINT D3D12_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS = 1; | ||
| 203 | const UINT D3D12_GS_INPUT_REGISTER_COMPONENTS = 4; | ||
| 204 | const UINT D3D12_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 205 | const UINT D3D12_GS_INPUT_REGISTER_COUNT = 32; | ||
| 206 | const UINT D3D12_GS_INPUT_REGISTER_READS_PER_INST = 2; | ||
| 207 | const UINT D3D12_GS_INPUT_REGISTER_READ_PORTS = 1; | ||
| 208 | const UINT D3D12_GS_INPUT_REGISTER_VERTICES = 32; | ||
| 209 | const UINT D3D12_GS_MAX_INSTANCE_COUNT = 32; | ||
| 210 | const UINT D3D12_GS_MAX_OUTPUT_VERTEX_COUNT_ACROSS_INSTANCES = 1024; | ||
| 211 | const UINT D3D12_GS_OUTPUT_ELEMENTS = 32; | ||
| 212 | const UINT D3D12_GS_OUTPUT_REGISTER_COMPONENTS = 4; | ||
| 213 | const UINT D3D12_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 214 | const UINT D3D12_GS_OUTPUT_REGISTER_COUNT = 32; | ||
| 215 | const UINT D3D12_HS_CONTROL_POINT_PHASE_INPUT_REGISTER_COUNT = 32; | ||
| 216 | const UINT D3D12_HS_CONTROL_POINT_PHASE_OUTPUT_REGISTER_COUNT = 32; | ||
| 217 | const UINT D3D12_HS_CONTROL_POINT_REGISTER_COMPONENTS = 4; | ||
| 218 | const UINT D3D12_HS_CONTROL_POINT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 219 | const UINT D3D12_HS_CONTROL_POINT_REGISTER_READS_PER_INST = 2; | ||
| 220 | const UINT D3D12_HS_CONTROL_POINT_REGISTER_READ_PORTS = 1; | ||
| 221 | const UINT D3D12_HS_FORK_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xFFFFFFFF; | ||
| 222 | const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENTS = 1; | ||
| 223 | const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 224 | const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_COUNT = 1; | ||
| 225 | const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READS_PER_INST = 2; | ||
| 226 | const UINT D3D12_HS_INPUT_FORK_INSTANCE_ID_REGISTER_READ_PORTS = 1; | ||
| 227 | const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENTS = 1; | ||
| 228 | const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 229 | const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_COUNT = 1; | ||
| 230 | const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READS_PER_INST = 2; | ||
| 231 | const UINT D3D12_HS_INPUT_JOIN_INSTANCE_ID_REGISTER_READ_PORTS = 1; | ||
| 232 | const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENTS = 1; | ||
| 233 | const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 234 | const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_COUNT = 1; | ||
| 235 | const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READS_PER_INST = 2; | ||
| 236 | const UINT D3D12_HS_INPUT_PRIMITIVE_ID_REGISTER_READ_PORTS = 1; | ||
| 237 | const UINT D3D12_HS_JOIN_PHASE_INSTANCE_COUNT_UPPER_BOUND = 0xFFFFFFFF; | ||
| 238 | cpp_quote("#define D3D12_HS_MAXTESSFACTOR_LOWER_BOUND ( 1.0f )") | ||
| 239 | cpp_quote("#define D3D12_HS_MAXTESSFACTOR_UPPER_BOUND ( 64.0f )") | ||
| 240 | const UINT D3D12_HS_OUTPUT_CONTROL_POINTS_MAX_TOTAL_SCALARS = 3968; | ||
| 241 | const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENTS = 1; | ||
| 242 | const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 243 | const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_COUNT = 1; | ||
| 244 | const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READS_PER_INST = 2; | ||
| 245 | const UINT D3D12_HS_OUTPUT_CONTROL_POINT_ID_REGISTER_READ_PORTS = 1; | ||
| 246 | const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENTS = 4; | ||
| 247 | const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 248 | const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_COUNT = 32; | ||
| 249 | const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READS_PER_INST = 2; | ||
| 250 | const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_READ_PORTS = 1; | ||
| 251 | const UINT D3D12_HS_OUTPUT_PATCH_CONSTANT_REGISTER_SCALAR_COMPONENTS = 128; | ||
| 252 | const UINT D3D12_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES = 0; | ||
| 253 | const UINT D3D12_IA_DEFAULT_PRIMITIVE_TOPOLOGY = 0; | ||
| 254 | const UINT D3D12_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES = 0; | ||
| 255 | const UINT D3D12_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT = 1; | ||
| 256 | const UINT D3D12_IA_INSTANCE_ID_BIT_COUNT = 32; | ||
| 257 | const UINT D3D12_IA_INTEGER_ARITHMETIC_BIT_COUNT = 32; | ||
| 258 | const UINT D3D12_IA_PATCH_MAX_CONTROL_POINT_COUNT = 32; | ||
| 259 | const UINT D3D12_IA_PRIMITIVE_ID_BIT_COUNT = 32; | ||
| 260 | const UINT D3D12_IA_VERTEX_ID_BIT_COUNT = 32; | ||
| 261 | const UINT D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32; | ||
| 262 | const UINT D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128; | ||
| 263 | const UINT D3D12_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32; | ||
| 264 | const UINT D3D12_INTEGER_DIVIDE_BY_ZERO_QUOTIENT = 0xffffffff; | ||
| 265 | const UINT D3D12_INTEGER_DIVIDE_BY_ZERO_REMAINDER = 0xffffffff; | ||
| 266 | const UINT D3D12_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = 0xffffffff; | ||
| 267 | const UINT D3D12_KEEP_UNORDERED_ACCESS_VIEWS = 0xffffffff; | ||
| 268 | cpp_quote("#define D3D12_LINEAR_GAMMA ( 1.0f )") | ||
| 269 | const UINT D3D12_MAJOR_VERSION = 12; | ||
| 270 | cpp_quote("#define D3D12_MAX_BORDER_COLOR_COMPONENT ( 1.0f )") | ||
| 271 | cpp_quote("#define D3D12_MAX_DEPTH ( 1.0f )") | ||
| 272 | const UINT D3D12_MAX_LIVE_STATIC_SAMPLERS = 2032; | ||
| 273 | const UINT D3D12_MAX_MAXANISOTROPY = 16; | ||
| 274 | const UINT D3D12_MAX_MULTISAMPLE_SAMPLE_COUNT = 32; | ||
| 275 | cpp_quote("#define D3D12_MAX_POSITION_VALUE ( 3.402823466e+34f )") | ||
| 276 | const UINT D3D12_MAX_ROOT_COST = 64; | ||
| 277 | const UINT D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1 = 1000000; | ||
| 278 | const UINT D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_2 = 1000000; | ||
| 279 | const UINT D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE = 2048; | ||
| 280 | const UINT D3D12_MAX_TEXTURE_DIMENSION_2_TO_EXP = 17; | ||
| 281 | const UINT D3D12_MAX_VIEW_INSTANCE_COUNT = 4; | ||
| 282 | const UINT D3D12_MINOR_VERSION = 0; | ||
| 283 | cpp_quote("#define D3D12_MIN_BORDER_COLOR_COMPONENT ( 0.0f )") | ||
| 284 | cpp_quote("#define D3D12_MIN_DEPTH ( 0.0f )") | ||
| 285 | const UINT D3D12_MIN_MAXANISOTROPY = 0; | ||
| 286 | cpp_quote("#define D3D12_MIP_LOD_BIAS_MAX ( 15.99f )") | ||
| 287 | cpp_quote("#define D3D12_MIP_LOD_BIAS_MIN ( -16.0f )") | ||
| 288 | const UINT D3D12_MIP_LOD_FRACTIONAL_BIT_COUNT = 8; | ||
| 289 | const UINT D3D12_MIP_LOD_RANGE_BIT_COUNT = 8; | ||
| 290 | cpp_quote("#define D3D12_MULTISAMPLE_ANTIALIAS_LINE_WIDTH ( 1.4f )") | ||
| 291 | const UINT D3D12_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT = 0; | ||
| 292 | const UINT D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_END = 0xffffffff; | ||
| 293 | const UINT D3D12_OS_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff8; | ||
| 294 | const UINT D3D12_PACKED_TILE = 0xffffffff; | ||
| 295 | const UINT D3D12_PIXEL_ADDRESS_RANGE_BIT_COUNT = 15; | ||
| 296 | const UINT D3D12_PREVIEW_SDK_VERSION = 717; | ||
| 297 | const UINT D3D12_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT = 16; | ||
| 298 | const UINT D3D12_PS_CS_UAV_REGISTER_COMPONENTS = 1; | ||
| 299 | const UINT D3D12_PS_CS_UAV_REGISTER_COUNT = 8; | ||
| 300 | const UINT D3D12_PS_CS_UAV_REGISTER_READS_PER_INST = 1; | ||
| 301 | const UINT D3D12_PS_CS_UAV_REGISTER_READ_PORTS = 1; | ||
| 302 | const UINT D3D12_PS_FRONTFACING_DEFAULT_VALUE = 0xFFFFFFFF; | ||
| 303 | const UINT D3D12_PS_FRONTFACING_FALSE_VALUE = 0x00000000; | ||
| 304 | const UINT D3D12_PS_FRONTFACING_TRUE_VALUE = 0xFFFFFFFF; | ||
| 305 | const UINT D3D12_PS_INPUT_REGISTER_COMPONENTS = 4; | ||
| 306 | const UINT D3D12_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 307 | const UINT D3D12_PS_INPUT_REGISTER_COUNT = 32; | ||
| 308 | const UINT D3D12_PS_INPUT_REGISTER_READS_PER_INST = 2; | ||
| 309 | const UINT D3D12_PS_INPUT_REGISTER_READ_PORTS = 1; | ||
| 310 | cpp_quote("#define D3D12_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.0f )") | ||
| 311 | const UINT D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS = 1; | ||
| 312 | const UINT D3D12_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 313 | const UINT D3D12_PS_OUTPUT_DEPTH_REGISTER_COUNT = 1; | ||
| 314 | const UINT D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENTS = 1; | ||
| 315 | const UINT D3D12_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 316 | const UINT D3D12_PS_OUTPUT_MASK_REGISTER_COUNT = 1; | ||
| 317 | const UINT D3D12_PS_OUTPUT_REGISTER_COMPONENTS = 4; | ||
| 318 | const UINT D3D12_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 319 | const UINT D3D12_PS_OUTPUT_REGISTER_COUNT = 8; | ||
| 320 | cpp_quote("#define D3D12_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT ( 0.5f )") | ||
| 321 | const UINT D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT = 16; | ||
| 322 | const UINT D3D12_RAYTRACING_AABB_BYTE_ALIGNMENT = 8; | ||
| 323 | const UINT D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BYTE_ALIGNMENT = 256; | ||
| 324 | const UINT D3D12_RAYTRACING_INSTANCE_DESCS_BYTE_ALIGNMENT = 16; | ||
| 325 | const UINT D3D12_RAYTRACING_MAX_ATTRIBUTE_SIZE_IN_BYTES = 32; | ||
| 326 | const UINT D3D12_RAYTRACING_MAX_DECLARABLE_TRACE_RECURSION_DEPTH = 31; | ||
| 327 | const UINT D3D12_RAYTRACING_MAX_GEOMETRIES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE = 16777216; | ||
| 328 | const UINT D3D12_RAYTRACING_MAX_INSTANCES_PER_TOP_LEVEL_ACCELERATION_STRUCTURE = 16777216; | ||
| 329 | const UINT D3D12_RAYTRACING_MAX_PRIMITIVES_PER_BOTTOM_LEVEL_ACCELERATION_STRUCTURE = 536870912; | ||
| 330 | const UINT D3D12_RAYTRACING_MAX_RAY_GENERATION_SHADER_THREADS = 1073741824; | ||
| 331 | const UINT D3D12_RAYTRACING_MAX_SHADER_RECORD_STRIDE = 4096; | ||
| 332 | const UINT D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_BYTE_ALIGNMENT = 128; | ||
| 333 | const UINT D3D12_RAYTRACING_OPACITY_MICROMAP_OC1_MAX_SUBDIVISION_LEVEL = 12; | ||
| 334 | const UINT D3D12_RAYTRACING_SHADER_RECORD_BYTE_ALIGNMENT = 32; | ||
| 335 | const UINT D3D12_RAYTRACING_SHADER_TABLE_BYTE_ALIGNMENT = 64; | ||
| 336 | const UINT D3D12_RAYTRACING_TRANSFORM3X4_BYTE_ALIGNMENT = 16; | ||
| 337 | const UINT D3D12_REQ_BLEND_OBJECT_COUNT_PER_DEVICE = 4096; | ||
| 338 | const UINT D3D12_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27; | ||
| 339 | const UINT D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; | ||
| 340 | const UINT D3D12_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = 4096; | ||
| 341 | const UINT D3D12_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 32; | ||
| 342 | const UINT D3D12_REQ_DRAW_VERTEX_COUNT_2_TO_EXP = 32; | ||
| 343 | const UINT D3D12_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 16384; | ||
| 344 | const UINT D3D12_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024; | ||
| 345 | const UINT D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096; | ||
| 346 | const UINT D3D12_REQ_MAXANISOTROPY = 16; | ||
| 347 | const UINT D3D12_REQ_MIP_LEVELS = 15; | ||
| 348 | const UINT D3D12_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048; | ||
| 349 | const UINT D3D12_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = 4096; | ||
| 350 | const UINT D3D12_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH = 16384; | ||
| 351 | const UINT D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = 128; | ||
| 352 | cpp_quote("#define D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM ( 0.25f )") | ||
| 353 | const UINT D3D12_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM = 2048; | ||
| 354 | const UINT D3D12_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = 20; | ||
| 355 | const UINT D3D12_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE = 4096; | ||
| 356 | const UINT D3D12_REQ_SUBRESOURCES = 30720; | ||
| 357 | const UINT D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048; | ||
| 358 | const UINT D3D12_REQ_TEXTURE1D_U_DIMENSION = 16384; | ||
| 359 | const UINT D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048; | ||
| 360 | const UINT D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384; | ||
| 361 | const UINT D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048; | ||
| 362 | const UINT D3D12_REQ_TEXTURECUBE_DIMENSION = 16384; | ||
| 363 | const UINT D3D12_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0; | ||
| 364 | const UINT D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES = 0xffffffff; | ||
| 365 | const UINT D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT = 2; | ||
| 366 | const UINT D3D12_SDK_VERSION = 618; | ||
| 367 | const UINT D3D12_SHADER_IDENTIFIER_SIZE_IN_BYTES = 32; | ||
| 368 | const UINT D3D12_SHADER_MAJOR_VERSION = 5; | ||
| 369 | const UINT D3D12_SHADER_MAX_INSTANCES = 65535; | ||
| 370 | const UINT D3D12_SHADER_MAX_INTERFACES = 253; | ||
| 371 | const UINT D3D12_SHADER_MAX_INTERFACE_CALL_SITES = 4096; | ||
| 372 | const UINT D3D12_SHADER_MAX_TYPES = 65535; | ||
| 373 | const UINT D3D12_SHADER_MINOR_VERSION = 1; | ||
| 374 | const UINT D3D12_SHIFT_INSTRUCTION_PAD_VALUE = 0; | ||
| 375 | const UINT D3D12_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5; | ||
| 376 | const UINT D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT = 8; | ||
| 377 | const UINT D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT = 65536; | ||
| 378 | const UINT D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT = 4096; | ||
| 379 | const UINT D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES = 2048; | ||
| 380 | const UINT D3D12_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES = 512; | ||
| 381 | const UINT D3D12_SO_BUFFER_SLOT_COUNT = 4; | ||
| 382 | const UINT D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP = 0xffffffff; | ||
| 383 | const UINT D3D12_SO_NO_RASTERIZED_STREAM = 0xffffffff; | ||
| 384 | const UINT D3D12_SO_OUTPUT_COMPONENT_COUNT = 128; | ||
| 385 | const UINT D3D12_SO_STREAM_COUNT = 4; | ||
| 386 | const UINT D3D12_SPEC_DATE_DAY = 14; | ||
| 387 | const UINT D3D12_SPEC_DATE_MONTH = 11; | ||
| 388 | const UINT D3D12_SPEC_DATE_YEAR = 2014; | ||
| 389 | cpp_quote("#define D3D12_SPEC_VERSION ( 1.16 )") | ||
| 390 | cpp_quote("#define D3D12_SRGB_GAMMA ( 2.2f )") | ||
| 391 | cpp_quote("#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_1 ( 12.92f )") | ||
| 392 | cpp_quote("#define D3D12_SRGB_TO_FLOAT_DENOMINATOR_2 ( 1.055f )") | ||
| 393 | cpp_quote("#define D3D12_SRGB_TO_FLOAT_EXPONENT ( 2.4f )") | ||
| 394 | cpp_quote("#define D3D12_SRGB_TO_FLOAT_OFFSET ( 0.055f )") | ||
| 395 | cpp_quote("#define D3D12_SRGB_TO_FLOAT_THRESHOLD ( 0.04045f )") | ||
| 396 | cpp_quote("#define D3D12_SRGB_TO_FLOAT_TOLERANCE_IN_ULP ( 0.5f )") | ||
| 397 | const UINT D3D12_STANDARD_COMPONENT_BIT_COUNT = 32; | ||
| 398 | const UINT D3D12_STANDARD_COMPONENT_BIT_COUNT_DOUBLED = 64; | ||
| 399 | const UINT D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4; | ||
| 400 | const UINT D3D12_STANDARD_PIXEL_COMPONENT_COUNT = 128; | ||
| 401 | const UINT D3D12_STANDARD_PIXEL_ELEMENT_COUNT = 32; | ||
| 402 | const UINT D3D12_STANDARD_VECTOR_SIZE = 4; | ||
| 403 | const UINT D3D12_STANDARD_VERTEX_ELEMENT_COUNT = 32; | ||
| 404 | const UINT D3D12_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT = 64; | ||
| 405 | const UINT D3D12_SUBPIXEL_FRACTIONAL_BIT_COUNT = 8; | ||
| 406 | const UINT D3D12_SUBTEXEL_FRACTIONAL_BIT_COUNT = 8; | ||
| 407 | const UINT D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_END = 0xffffffff; | ||
| 408 | const UINT D3D12_SYSTEM_RESERVED_REGISTER_SPACE_VALUES_START = 0xfffffff0; | ||
| 409 | const UINT D3D12_TESSELLATOR_MAX_EVEN_TESSELLATION_FACTOR = 64; | ||
| 410 | const UINT D3D12_TESSELLATOR_MAX_ISOLINE_DENSITY_TESSELLATION_FACTOR = 64; | ||
| 411 | const UINT D3D12_TESSELLATOR_MAX_ODD_TESSELLATION_FACTOR = 63; | ||
| 412 | const UINT D3D12_TESSELLATOR_MAX_TESSELLATION_FACTOR = 64; | ||
| 413 | const UINT D3D12_TESSELLATOR_MIN_EVEN_TESSELLATION_FACTOR = 2; | ||
| 414 | const UINT D3D12_TESSELLATOR_MIN_ISOLINE_DENSITY_TESSELLATION_FACTOR = 1; | ||
| 415 | const UINT D3D12_TESSELLATOR_MIN_ODD_TESSELLATION_FACTOR = 1; | ||
| 416 | const UINT D3D12_TEXEL_ADDRESS_RANGE_BIT_COUNT = 16; | ||
| 417 | const UINT D3D12_TEXTURE_DATA_PITCH_ALIGNMENT = 256; | ||
| 418 | const UINT D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512; | ||
| 419 | const UINT D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNMENT = 4096; | ||
| 420 | const UINT D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNMENT = 8; | ||
| 421 | const UINT D3D12_TILED_RESOURCE_TILE_SIZE_IN_BYTES = 65536; | ||
| 422 | const UINT D3D12_TRACKED_WORKLOAD_MAX_INSTANCES = 32; | ||
| 423 | const UINT D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT = 4096; | ||
| 424 | const UINT D3D12_UAV_SLOT_COUNT = 64; | ||
| 425 | const UINT D3D12_UNBOUND_MEMORY_ACCESS_RESULT = 0; | ||
| 426 | const UINT D3D12_VIDEO_DECODE_MAX_ARGUMENTS = 10; | ||
| 427 | const UINT D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS = 4; | ||
| 428 | const UINT D3D12_VIDEO_DECODE_MIN_BITSTREAM_OFFSET_ALIGNMENT = 256; | ||
| 429 | const UINT D3D12_VIDEO_DECODE_MIN_HISTOGRAM_OFFSET_ALIGNMENT = 256; | ||
| 430 | const UINT D3D12_VIDEO_DECODE_STATUS_MACROBLOCKS_AFFECTED_UNKNOWN = 0xffffffff; | ||
| 431 | const UINT D3D12_VIDEO_ENCODER_AV1_INVALID_DPB_RESOURCE_INDEX = 0xFF; | ||
| 432 | const UINT D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS = 64; | ||
| 433 | const UINT D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS = 64; | ||
| 434 | const UINT D3D12_VIDEO_ENCODER_AV1_SUPERRES_DENOM_MIN = 9; | ||
| 435 | const UINT D3D12_VIDEO_ENCODER_AV1_SUPERRES_NUM = 8; | ||
| 436 | const UINT D3D12_VIDEO_PROCESS_MAX_FILTERS = 32; | ||
| 437 | const UINT D3D12_VIDEO_PROCESS_STEREO_VIEWS = 2; | ||
| 438 | const UINT D3D12_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15; | ||
| 439 | const UINT D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16; | ||
| 440 | const UINT D3D12_VIEWPORT_BOUNDS_MAX = 32767; | ||
| 441 | const INT D3D12_VIEWPORT_BOUNDS_MIN = -32768; | ||
| 442 | const UINT D3D12_VS_INPUT_REGISTER_COMPONENTS = 4; | ||
| 443 | const UINT D3D12_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 444 | const UINT D3D12_VS_INPUT_REGISTER_COUNT = 32; | ||
| 445 | const UINT D3D12_VS_INPUT_REGISTER_READS_PER_INST = 2; | ||
| 446 | const UINT D3D12_VS_INPUT_REGISTER_READ_PORTS = 1; | ||
| 447 | const UINT D3D12_VS_OUTPUT_REGISTER_COMPONENTS = 4; | ||
| 448 | const UINT D3D12_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32; | ||
| 449 | const UINT D3D12_VS_OUTPUT_REGISTER_COUNT = 32; | ||
| 450 | const UINT D3D12_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT = 10; | ||
| 451 | const UINT D3D12_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP = 25; | ||
| 452 | const UINT D3D12_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP = 25; | ||
| 453 | const UINT D3D12_WORK_GRAPHS_BACKING_MEMORY_ALIGNMENT_IN_BYTES = 8; | ||
| 454 | const UINT D3D12_WORK_GRAPHS_MAX_NODE_DEPTH = 32; | ||
| 455 | cpp_quote("#endif") | ||
| 456 | |||
| 457 | |||
| 458 | // Forward declarations | ||
| 459 | interface ID3D12CommandQueue; | ||
| 460 | |||
| 461 | |||
| 462 | typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS; | ||
| 463 | |||
| 464 | typedef enum D3D12_COMMAND_LIST_TYPE | ||
| 465 | { | ||
| 466 | D3D12_COMMAND_LIST_TYPE_DIRECT = 0, | ||
| 467 | D3D12_COMMAND_LIST_TYPE_BUNDLE = 1, | ||
| 468 | D3D12_COMMAND_LIST_TYPE_COMPUTE = 2, | ||
| 469 | D3D12_COMMAND_LIST_TYPE_COPY = 3, | ||
| 470 | D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE = 4, | ||
| 471 | D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS = 5, | ||
| 472 | D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE = 6, | ||
| 473 | |||
| 474 | D3D12_COMMAND_LIST_TYPE_NONE = -1, | ||
| 475 | |||
| 476 | } D3D12_COMMAND_LIST_TYPE; | ||
| 477 | |||
| 478 | typedef enum D3D12_COMMAND_QUEUE_FLAGS | ||
| 479 | { | ||
| 480 | D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0, | ||
| 481 | D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1, | ||
| 482 | D3D12_COMMAND_QUEUE_FLAG_ALLOW_DYNAMIC_PRIORITY = 0x2, | ||
| 483 | } D3D12_COMMAND_QUEUE_FLAGS; | ||
| 484 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_QUEUE_FLAGS )" ) | ||
| 485 | |||
| 486 | typedef enum D3D12_COMMAND_QUEUE_PRIORITY | ||
| 487 | { | ||
| 488 | D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0, | ||
| 489 | D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100, | ||
| 490 | D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000 | ||
| 491 | } D3D12_COMMAND_QUEUE_PRIORITY; | ||
| 492 | |||
| 493 | typedef struct D3D12_COMMAND_QUEUE_DESC | ||
| 494 | { | ||
| 495 | D3D12_COMMAND_LIST_TYPE Type; | ||
| 496 | INT Priority; | ||
| 497 | D3D12_COMMAND_QUEUE_FLAGS Flags; | ||
| 498 | UINT NodeMask; | ||
| 499 | } D3D12_COMMAND_QUEUE_DESC; | ||
| 500 | |||
| 501 | typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE | ||
| 502 | { | ||
| 503 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0, | ||
| 504 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1, | ||
| 505 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2, | ||
| 506 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3, | ||
| 507 | D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4 | ||
| 508 | } D3D12_PRIMITIVE_TOPOLOGY_TYPE; | ||
| 509 | |||
| 510 | typedef enum D3D12_INPUT_CLASSIFICATION | ||
| 511 | { | ||
| 512 | D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0, | ||
| 513 | D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1 | ||
| 514 | } D3D12_INPUT_CLASSIFICATION; | ||
| 515 | |||
| 516 | typedef struct D3D12_INPUT_ELEMENT_DESC | ||
| 517 | { | ||
| 518 | LPCSTR SemanticName; | ||
| 519 | UINT SemanticIndex; | ||
| 520 | DXGI_FORMAT Format; | ||
| 521 | UINT InputSlot; | ||
| 522 | UINT AlignedByteOffset; | ||
| 523 | D3D12_INPUT_CLASSIFICATION InputSlotClass; | ||
| 524 | UINT InstanceDataStepRate; | ||
| 525 | } D3D12_INPUT_ELEMENT_DESC; | ||
| 526 | |||
| 527 | // Keep FILL_MODE values in sync with earlier DX versions (HW consumes values directly). | ||
| 528 | typedef enum D3D12_FILL_MODE | ||
| 529 | { | ||
| 530 | // 1 was POINT in D3D, unused in D3D12 | ||
| 531 | D3D12_FILL_MODE_WIREFRAME = 2, | ||
| 532 | D3D12_FILL_MODE_SOLID = 3 | ||
| 533 | } D3D12_FILL_MODE; | ||
| 534 | |||
| 535 | typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY; | ||
| 536 | |||
| 537 | typedef D3D_PRIMITIVE D3D12_PRIMITIVE; | ||
| 538 | |||
| 539 | // Keep CULL_MODE values in sync with earlier DX versions (HW consumes values directly). | ||
| 540 | typedef enum D3D12_CULL_MODE | ||
| 541 | { | ||
| 542 | D3D12_CULL_MODE_NONE = 1, | ||
| 543 | D3D12_CULL_MODE_FRONT = 2, | ||
| 544 | D3D12_CULL_MODE_BACK = 3 | ||
| 545 | } D3D12_CULL_MODE; | ||
| 546 | |||
| 547 | typedef struct D3D12_SO_DECLARATION_ENTRY | ||
| 548 | { | ||
| 549 | UINT Stream; | ||
| 550 | LPCSTR SemanticName; | ||
| 551 | UINT SemanticIndex; | ||
| 552 | BYTE StartComponent; | ||
| 553 | BYTE ComponentCount; | ||
| 554 | BYTE OutputSlot; | ||
| 555 | } D3D12_SO_DECLARATION_ENTRY; | ||
| 556 | |||
| 557 | typedef struct D3D12_VIEWPORT | ||
| 558 | { | ||
| 559 | FLOAT TopLeftX; | ||
| 560 | FLOAT TopLeftY; | ||
| 561 | FLOAT Width; | ||
| 562 | FLOAT Height; | ||
| 563 | FLOAT MinDepth; | ||
| 564 | FLOAT MaxDepth; | ||
| 565 | } D3D12_VIEWPORT; | ||
| 566 | |||
| 567 | |||
| 568 | typedef RECT D3D12_RECT; | ||
| 569 | |||
| 570 | |||
| 571 | typedef struct D3D12_BOX | ||
| 572 | { | ||
| 573 | UINT left; | ||
| 574 | UINT top; | ||
| 575 | UINT front; | ||
| 576 | UINT right; | ||
| 577 | UINT bottom; | ||
| 578 | UINT back; | ||
| 579 | } D3D12_BOX; | ||
| 580 | |||
| 581 | //-------------------------------------------------------------------------------------------------------- | ||
| 582 | // The system LUID struct isn't defined in wtypes, so we repeat it here just | ||
| 583 | // for the MIDL compiler. | ||
| 584 | cpp_quote("#ifdef __midl") | ||
| 585 | cpp_quote("#ifndef LUID_DEFINED") | ||
| 586 | cpp_quote("#define LUID_DEFINED 1") | ||
| 587 | typedef struct __LUID { | ||
| 588 | DWORD LowPart; | ||
| 589 | LONG HighPart; | ||
| 590 | } LUID, * PLUID; | ||
| 591 | cpp_quote("#endif") | ||
| 592 | cpp_quote("#endif") | ||
| 593 | |||
| 594 | |||
| 595 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 596 | // | ||
| 597 | // Depth-Stencil State | ||
| 598 | // | ||
| 599 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 600 | |||
| 601 | // Keep COMPARISON_FUNC values in sync with earlier DX versions (HW consumes values directly). | ||
| 602 | typedef enum D3D12_COMPARISON_FUNC | ||
| 603 | { | ||
| 604 | D3D12_COMPARISON_FUNC_NONE = 0, | ||
| 605 | D3D12_COMPARISON_FUNC_NEVER = 1, | ||
| 606 | D3D12_COMPARISON_FUNC_LESS = 2, | ||
| 607 | D3D12_COMPARISON_FUNC_EQUAL = 3, | ||
| 608 | D3D12_COMPARISON_FUNC_LESS_EQUAL = 4, | ||
| 609 | D3D12_COMPARISON_FUNC_GREATER = 5, | ||
| 610 | D3D12_COMPARISON_FUNC_NOT_EQUAL = 6, | ||
| 611 | D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7, | ||
| 612 | D3D12_COMPARISON_FUNC_ALWAYS = 8 | ||
| 613 | } D3D12_COMPARISON_FUNC; | ||
| 614 | |||
| 615 | typedef enum D3D12_DEPTH_WRITE_MASK | ||
| 616 | { | ||
| 617 | D3D12_DEPTH_WRITE_MASK_ZERO = 0, | ||
| 618 | D3D12_DEPTH_WRITE_MASK_ALL = 1 | ||
| 619 | } D3D12_DEPTH_WRITE_MASK; | ||
| 620 | |||
| 621 | // Keep STENCILOP values in sync with earlier DX versions (HW consumes values directly). | ||
| 622 | typedef enum D3D12_STENCIL_OP | ||
| 623 | { | ||
| 624 | D3D12_STENCIL_OP_KEEP = 1, | ||
| 625 | D3D12_STENCIL_OP_ZERO = 2, | ||
| 626 | D3D12_STENCIL_OP_REPLACE = 3, | ||
| 627 | D3D12_STENCIL_OP_INCR_SAT = 4, | ||
| 628 | D3D12_STENCIL_OP_DECR_SAT = 5, | ||
| 629 | D3D12_STENCIL_OP_INVERT = 6, | ||
| 630 | D3D12_STENCIL_OP_INCR = 7, | ||
| 631 | D3D12_STENCIL_OP_DECR = 8 | ||
| 632 | } D3D12_STENCIL_OP; | ||
| 633 | |||
| 634 | typedef struct D3D12_DEPTH_STENCILOP_DESC | ||
| 635 | { | ||
| 636 | D3D12_STENCIL_OP StencilFailOp; | ||
| 637 | D3D12_STENCIL_OP StencilDepthFailOp; | ||
| 638 | D3D12_STENCIL_OP StencilPassOp; | ||
| 639 | D3D12_COMPARISON_FUNC StencilFunc; | ||
| 640 | } D3D12_DEPTH_STENCILOP_DESC; | ||
| 641 | |||
| 642 | typedef struct D3D12_DEPTH_STENCIL_DESC | ||
| 643 | { | ||
| 644 | BOOL DepthEnable; | ||
| 645 | D3D12_DEPTH_WRITE_MASK DepthWriteMask; | ||
| 646 | D3D12_COMPARISON_FUNC DepthFunc; | ||
| 647 | BOOL StencilEnable; | ||
| 648 | UINT8 StencilReadMask; | ||
| 649 | UINT8 StencilWriteMask; | ||
| 650 | D3D12_DEPTH_STENCILOP_DESC FrontFace; | ||
| 651 | D3D12_DEPTH_STENCILOP_DESC BackFace; | ||
| 652 | } D3D12_DEPTH_STENCIL_DESC; | ||
| 653 | |||
| 654 | typedef struct D3D12_DEPTH_STENCIL_DESC1 | ||
| 655 | { | ||
| 656 | BOOL DepthEnable; | ||
| 657 | D3D12_DEPTH_WRITE_MASK DepthWriteMask; | ||
| 658 | D3D12_COMPARISON_FUNC DepthFunc; | ||
| 659 | BOOL StencilEnable; | ||
| 660 | UINT8 StencilReadMask; | ||
| 661 | UINT8 StencilWriteMask; | ||
| 662 | D3D12_DEPTH_STENCILOP_DESC FrontFace; | ||
| 663 | D3D12_DEPTH_STENCILOP_DESC BackFace; | ||
| 664 | BOOL DepthBoundsTestEnable; | ||
| 665 | } D3D12_DEPTH_STENCIL_DESC1; | ||
| 666 | |||
| 667 | // Front/back face independent stencil masks | ||
| 668 | typedef struct D3D12_DEPTH_STENCILOP_DESC1 | ||
| 669 | { | ||
| 670 | D3D12_STENCIL_OP StencilFailOp; | ||
| 671 | D3D12_STENCIL_OP StencilDepthFailOp; | ||
| 672 | D3D12_STENCIL_OP StencilPassOp; | ||
| 673 | D3D12_COMPARISON_FUNC StencilFunc; | ||
| 674 | UINT8 StencilReadMask; | ||
| 675 | UINT8 StencilWriteMask; | ||
| 676 | } D3D12_DEPTH_STENCILOP_DESC1; | ||
| 677 | |||
| 678 | typedef struct D3D12_DEPTH_STENCIL_DESC2 | ||
| 679 | { | ||
| 680 | BOOL DepthEnable; | ||
| 681 | D3D12_DEPTH_WRITE_MASK DepthWriteMask; | ||
| 682 | D3D12_COMPARISON_FUNC DepthFunc; | ||
| 683 | BOOL StencilEnable; | ||
| 684 | D3D12_DEPTH_STENCILOP_DESC1 FrontFace; | ||
| 685 | D3D12_DEPTH_STENCILOP_DESC1 BackFace; | ||
| 686 | BOOL DepthBoundsTestEnable; | ||
| 687 | } D3D12_DEPTH_STENCIL_DESC2; | ||
| 688 | |||
| 689 | |||
| 690 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 691 | // | ||
| 692 | // Blend State | ||
| 693 | // | ||
| 694 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 695 | |||
| 696 | // Keep BLEND values in sync with earlier DX versions (HW consumes values directly). | ||
| 697 | typedef enum D3D12_BLEND | ||
| 698 | { | ||
| 699 | D3D12_BLEND_ZERO = 1, | ||
| 700 | D3D12_BLEND_ONE = 2, | ||
| 701 | D3D12_BLEND_SRC_COLOR = 3, // PS output oN.rgb (N is current RT being blended) | ||
| 702 | D3D12_BLEND_INV_SRC_COLOR = 4, // 1.0f - PS output oN.rgb | ||
| 703 | D3D12_BLEND_SRC_ALPHA = 5, // PS output oN.a | ||
| 704 | D3D12_BLEND_INV_SRC_ALPHA = 6, // 1.0f - PS output oN.a | ||
| 705 | D3D12_BLEND_DEST_ALPHA = 7, // RT(N).a (N is current RT being blended) | ||
| 706 | D3D12_BLEND_INV_DEST_ALPHA = 8, // 1.0f - RT(N).a | ||
| 707 | D3D12_BLEND_DEST_COLOR = 9, // RT(N).rgb | ||
| 708 | D3D12_BLEND_INV_DEST_COLOR = 10,// 1.0f - RT(N).rgb | ||
| 709 | D3D12_BLEND_SRC_ALPHA_SAT = 11,// (f,f,f,1), f = min(1 - RT(N).a, oN.a) | ||
| 710 | // 12 reserved (was BOTHSRCALPHA) | ||
| 711 | // 13 reserved (was BOTHSRCALPHA) | ||
| 712 | D3D12_BLEND_BLEND_FACTOR = 14, | ||
| 713 | D3D12_BLEND_INV_BLEND_FACTOR = 15, | ||
| 714 | D3D12_BLEND_SRC1_COLOR = 16, // PS output o1.rgb | ||
| 715 | D3D12_BLEND_INV_SRC1_COLOR = 17, // 1.0f - PS output o1.rgb | ||
| 716 | D3D12_BLEND_SRC1_ALPHA = 18, // PS output o1.a | ||
| 717 | D3D12_BLEND_INV_SRC1_ALPHA = 19, // 1.0f - PS output o1.a | ||
| 718 | D3D12_BLEND_ALPHA_FACTOR = 20, | ||
| 719 | D3D12_BLEND_INV_ALPHA_FACTOR = 21 | ||
| 720 | } D3D12_BLEND; | ||
| 721 | |||
| 722 | // Keep BLENDOP values in sync with earlier DX versions (HW consumes values directly). | ||
| 723 | typedef enum D3D12_BLEND_OP | ||
| 724 | { | ||
| 725 | D3D12_BLEND_OP_ADD = 1, | ||
| 726 | D3D12_BLEND_OP_SUBTRACT = 2, | ||
| 727 | D3D12_BLEND_OP_REV_SUBTRACT = 3, | ||
| 728 | D3D12_BLEND_OP_MIN = 4, // min semantics are like min shader instruction | ||
| 729 | D3D12_BLEND_OP_MAX = 5, // max semantics are like max shader instruction | ||
| 730 | } D3D12_BLEND_OP; | ||
| 731 | |||
| 732 | typedef enum D3D12_COLOR_WRITE_ENABLE | ||
| 733 | { | ||
| 734 | D3D12_COLOR_WRITE_ENABLE_RED = 1, | ||
| 735 | D3D12_COLOR_WRITE_ENABLE_GREEN = 2, | ||
| 736 | D3D12_COLOR_WRITE_ENABLE_BLUE = 4, | ||
| 737 | D3D12_COLOR_WRITE_ENABLE_ALPHA = 8, | ||
| 738 | D3D12_COLOR_WRITE_ENABLE_ALL = (D3D12_COLOR_WRITE_ENABLE_RED|D3D12_COLOR_WRITE_ENABLE_GREEN| | ||
| 739 | D3D12_COLOR_WRITE_ENABLE_BLUE|D3D12_COLOR_WRITE_ENABLE_ALPHA), | ||
| 740 | } D3D12_COLOR_WRITE_ENABLE; | ||
| 741 | |||
| 742 | typedef enum D3D12_LOGIC_OP | ||
| 743 | { | ||
| 744 | // Operation: | ||
| 745 | // (s == PS output, d = RTV contents) | ||
| 746 | D3D12_LOGIC_OP_CLEAR = 0, // 0 | ||
| 747 | D3D12_LOGIC_OP_SET, // 1 | ||
| 748 | D3D12_LOGIC_OP_COPY, // s | ||
| 749 | D3D12_LOGIC_OP_COPY_INVERTED, // ~s | ||
| 750 | D3D12_LOGIC_OP_NOOP, // d | ||
| 751 | D3D12_LOGIC_OP_INVERT, // ~d | ||
| 752 | D3D12_LOGIC_OP_AND, // s & d | ||
| 753 | D3D12_LOGIC_OP_NAND, // ~(s & d) | ||
| 754 | D3D12_LOGIC_OP_OR, // s | d | ||
| 755 | D3D12_LOGIC_OP_NOR, // ~(s | d) | ||
| 756 | D3D12_LOGIC_OP_XOR, // s ^ d | ||
| 757 | D3D12_LOGIC_OP_EQUIV, // ~(s ^ d) | ||
| 758 | D3D12_LOGIC_OP_AND_REVERSE, // s & ~d | ||
| 759 | D3D12_LOGIC_OP_AND_INVERTED, // ~s & d | ||
| 760 | D3D12_LOGIC_OP_OR_REVERSE, // s | ~d | ||
| 761 | D3D12_LOGIC_OP_OR_INVERTED, // ~s | d | ||
| 762 | } D3D12_LOGIC_OP; | ||
| 763 | |||
| 764 | typedef struct D3D12_RENDER_TARGET_BLEND_DESC | ||
| 765 | { | ||
| 766 | BOOL BlendEnable; | ||
| 767 | BOOL LogicOpEnable; // LogicOpEnable and BlendEnable can't both be true | ||
| 768 | D3D12_BLEND SrcBlend; | ||
| 769 | D3D12_BLEND DestBlend; | ||
| 770 | D3D12_BLEND_OP BlendOp; | ||
| 771 | D3D12_BLEND SrcBlendAlpha; | ||
| 772 | D3D12_BLEND DestBlendAlpha; | ||
| 773 | D3D12_BLEND_OP BlendOpAlpha; | ||
| 774 | D3D12_LOGIC_OP LogicOp; // applies to RGBA | ||
| 775 | UINT8 RenderTargetWriteMask; // D3D12_COLOR_WRITE_ENABLE | ||
| 776 | } D3D12_RENDER_TARGET_BLEND_DESC; | ||
| 777 | |||
| 778 | typedef struct D3D12_BLEND_DESC | ||
| 779 | { | ||
| 780 | BOOL AlphaToCoverageEnable; // relevant to multisample antialiasing only | ||
| 781 | BOOL IndependentBlendEnable; // if FALSE, then replicate the first entry in RenderTarget array to other entries | ||
| 782 | D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT]; | ||
| 783 | } D3D12_BLEND_DESC; | ||
| 784 | |||
| 785 | cpp_quote( "/* Note, the array size for RenderTarget[] above is D3D12_SIMULTANEOUS_RENDERTARGET_COUNT. ") | ||
| 786 | cpp_quote( " IDL processing/generation of this header replaces the define; this comment is merely explaining what happened. */" ) | ||
| 787 | |||
| 788 | |||
| 789 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 790 | // | ||
| 791 | // Rasterizer State | ||
| 792 | // | ||
| 793 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 794 | |||
| 795 | typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE | ||
| 796 | { | ||
| 797 | D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0, // Default | ||
| 798 | D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1, | ||
| 799 | } D3D12_CONSERVATIVE_RASTERIZATION_MODE; | ||
| 800 | |||
| 801 | typedef struct D3D12_RASTERIZER_DESC | ||
| 802 | { | ||
| 803 | D3D12_FILL_MODE FillMode; | ||
| 804 | D3D12_CULL_MODE CullMode; | ||
| 805 | BOOL FrontCounterClockwise; | ||
| 806 | INT DepthBias; | ||
| 807 | FLOAT DepthBiasClamp; | ||
| 808 | FLOAT SlopeScaledDepthBias; | ||
| 809 | BOOL DepthClipEnable; | ||
| 810 | BOOL MultisampleEnable; | ||
| 811 | BOOL AntialiasedLineEnable; | ||
| 812 | UINT ForcedSampleCount; | ||
| 813 | D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; | ||
| 814 | } D3D12_RASTERIZER_DESC; | ||
| 815 | |||
| 816 | typedef struct D3D12_RASTERIZER_DESC1 | ||
| 817 | { | ||
| 818 | D3D12_FILL_MODE FillMode; | ||
| 819 | D3D12_CULL_MODE CullMode; | ||
| 820 | BOOL FrontCounterClockwise; | ||
| 821 | FLOAT DepthBias; | ||
| 822 | FLOAT DepthBiasClamp; | ||
| 823 | FLOAT SlopeScaledDepthBias; | ||
| 824 | BOOL DepthClipEnable; | ||
| 825 | BOOL MultisampleEnable; | ||
| 826 | BOOL AntialiasedLineEnable; | ||
| 827 | UINT ForcedSampleCount; | ||
| 828 | D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; | ||
| 829 | } D3D12_RASTERIZER_DESC1; | ||
| 830 | |||
| 831 | typedef enum D3D12_LINE_RASTERIZATION_MODE | ||
| 832 | { | ||
| 833 | D3D12_LINE_RASTERIZATION_MODE_ALIASED, | ||
| 834 | D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED, | ||
| 835 | D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE, | ||
| 836 | D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_NARROW, | ||
| 837 | } D3D12_LINE_RASTERIZATION_MODE; | ||
| 838 | |||
| 839 | typedef struct D3D12_RASTERIZER_DESC2 | ||
| 840 | { | ||
| 841 | D3D12_FILL_MODE FillMode; | ||
| 842 | D3D12_CULL_MODE CullMode; | ||
| 843 | BOOL FrontCounterClockwise; | ||
| 844 | FLOAT DepthBias; | ||
| 845 | FLOAT DepthBiasClamp; | ||
| 846 | FLOAT SlopeScaledDepthBias; | ||
| 847 | BOOL DepthClipEnable; | ||
| 848 | D3D12_LINE_RASTERIZATION_MODE LineRasterizationMode; | ||
| 849 | UINT ForcedSampleCount; | ||
| 850 | D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster; | ||
| 851 | } D3D12_RASTERIZER_DESC2; | ||
| 852 | |||
| 853 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 854 | // | ||
| 855 | // Pipeline State v1 | ||
| 856 | // | ||
| 857 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 858 | |||
| 859 | [ uuid( c54a6b66-72df-4ee8-8be5-a946a1429214 ), object, local, pointer_default( unique ) ] | ||
| 860 | interface ID3D12RootSignature | ||
| 861 | : ID3D12DeviceChild | ||
| 862 | { | ||
| 863 | } | ||
| 864 | |||
| 865 | typedef struct D3D12_SHADER_BYTECODE | ||
| 866 | { | ||
| 867 | [annotation("_Field_size_bytes_full_(BytecodeLength)")] const void* pShaderBytecode; | ||
| 868 | SIZE_T BytecodeLength; | ||
| 869 | } D3D12_SHADER_BYTECODE; | ||
| 870 | |||
| 871 | typedef struct D3D12_STREAM_OUTPUT_DESC | ||
| 872 | { | ||
| 873 | [annotation("_Field_size_full_(NumEntries)")] const D3D12_SO_DECLARATION_ENTRY* pSODeclaration; | ||
| 874 | UINT NumEntries; | ||
| 875 | [annotation("_Field_size_full_(NumStrides)")] const UINT* pBufferStrides; | ||
| 876 | UINT NumStrides; | ||
| 877 | UINT RasterizedStream; | ||
| 878 | } D3D12_STREAM_OUTPUT_DESC; | ||
| 879 | |||
| 880 | typedef struct D3D12_INPUT_LAYOUT_DESC | ||
| 881 | { | ||
| 882 | [annotation("_Field_size_full_(NumElements)")] const D3D12_INPUT_ELEMENT_DESC* pInputElementDescs; | ||
| 883 | UINT NumElements; | ||
| 884 | } D3D12_INPUT_LAYOUT_DESC; | ||
| 885 | |||
| 886 | typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE | ||
| 887 | { | ||
| 888 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0, | ||
| 889 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1, | ||
| 890 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2 | ||
| 891 | } D3D12_INDEX_BUFFER_STRIP_CUT_VALUE; | ||
| 892 | |||
| 893 | typedef enum D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS | ||
| 894 | { | ||
| 895 | D3D12_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff, | ||
| 896 | D3D12_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe | ||
| 897 | } D3D12_STANDARD_MULTISAMPLE_QUALITY_LEVELS; | ||
| 898 | |||
| 899 | typedef struct D3D12_CACHED_PIPELINE_STATE | ||
| 900 | { | ||
| 901 | [annotation("_Field_size_bytes_full_(CachedBlobSizeInBytes)")] const void* pCachedBlob; | ||
| 902 | SIZE_T CachedBlobSizeInBytes; | ||
| 903 | } D3D12_CACHED_PIPELINE_STATE; | ||
| 904 | |||
| 905 | typedef enum D3D12_PIPELINE_STATE_FLAGS | ||
| 906 | { | ||
| 907 | D3D12_PIPELINE_STATE_FLAG_NONE = 0x0, | ||
| 908 | D3D12_PIPELINE_STATE_FLAG_TOOL_DEBUG = 0x1, | ||
| 909 | D3D12_PIPELINE_STATE_FLAG_DYNAMIC_DEPTH_BIAS = 0x4, | ||
| 910 | D3D12_PIPELINE_STATE_FLAG_DYNAMIC_INDEX_BUFFER_STRIP_CUT = 0x8, | ||
| 911 | |||
| 912 | } D3D12_PIPELINE_STATE_FLAGS; | ||
| 913 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_PIPELINE_STATE_FLAGS )" ) | ||
| 914 | |||
| 915 | typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC | ||
| 916 | { | ||
| 917 | ID3D12RootSignature* pRootSignature; | ||
| 918 | D3D12_SHADER_BYTECODE VS; | ||
| 919 | D3D12_SHADER_BYTECODE PS; | ||
| 920 | D3D12_SHADER_BYTECODE DS; | ||
| 921 | D3D12_SHADER_BYTECODE HS; | ||
| 922 | D3D12_SHADER_BYTECODE GS; | ||
| 923 | D3D12_STREAM_OUTPUT_DESC StreamOutput; | ||
| 924 | D3D12_BLEND_DESC BlendState; | ||
| 925 | UINT SampleMask; | ||
| 926 | D3D12_RASTERIZER_DESC RasterizerState; | ||
| 927 | D3D12_DEPTH_STENCIL_DESC DepthStencilState; | ||
| 928 | D3D12_INPUT_LAYOUT_DESC InputLayout; | ||
| 929 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue; | ||
| 930 | D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; | ||
| 931 | UINT NumRenderTargets; | ||
| 932 | DXGI_FORMAT RTVFormats[ D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ]; | ||
| 933 | DXGI_FORMAT DSVFormat; | ||
| 934 | DXGI_SAMPLE_DESC SampleDesc; | ||
| 935 | UINT NodeMask; | ||
| 936 | D3D12_CACHED_PIPELINE_STATE CachedPSO; | ||
| 937 | D3D12_PIPELINE_STATE_FLAGS Flags; | ||
| 938 | } D3D12_GRAPHICS_PIPELINE_STATE_DESC; | ||
| 939 | |||
| 940 | typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC | ||
| 941 | { | ||
| 942 | ID3D12RootSignature* pRootSignature; | ||
| 943 | D3D12_SHADER_BYTECODE CS; | ||
| 944 | UINT NodeMask; | ||
| 945 | D3D12_CACHED_PIPELINE_STATE CachedPSO; | ||
| 946 | D3D12_PIPELINE_STATE_FLAGS Flags; | ||
| 947 | } D3D12_COMPUTE_PIPELINE_STATE_DESC; | ||
| 948 | |||
| 949 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 950 | // | ||
| 951 | // Serialized Root Signature | ||
| 952 | // | ||
| 953 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 954 | typedef enum D3D_ROOT_SIGNATURE_VERSION | ||
| 955 | { | ||
| 956 | D3D_ROOT_SIGNATURE_VERSION_1 = 0x1, | ||
| 957 | D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1, | ||
| 958 | D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2, | ||
| 959 | D3D_ROOT_SIGNATURE_VERSION_1_2 = 0x3, | ||
| 960 | } D3D_ROOT_SIGNATURE_VERSION; | ||
| 961 | |||
| 962 | typedef struct D3D12_SERIALIZED_ROOT_SIGNATURE_DESC | ||
| 963 | { | ||
| 964 | [annotation("_Field_size_bytes_full_(SerializedBlobSizeInBytes)")] const void* pSerializedBlob; | ||
| 965 | SIZE_T SerializedBlobSizeInBytes; | ||
| 966 | } D3D12_SERIALIZED_ROOT_SIGNATURE_DESC; | ||
| 967 | |||
| 968 | typedef struct D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE | ||
| 969 | { | ||
| 970 | D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; | ||
| 971 | } D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE; | ||
| 972 | |||
| 973 | typedef struct D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE | ||
| 974 | { | ||
| 975 | D3D12_SERIALIZED_ROOT_SIGNATURE_DESC Desc; | ||
| 976 | } D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE; | ||
| 977 | |||
| 978 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 979 | // | ||
| 980 | // Pipeline State v2 | ||
| 981 | // | ||
| 982 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 983 | |||
| 984 | struct D3D12_RT_FORMAT_ARRAY | ||
| 985 | { | ||
| 986 | DXGI_FORMAT RTFormats[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT]; | ||
| 987 | UINT NumRenderTargets; | ||
| 988 | }; | ||
| 989 | |||
| 990 | typedef struct D3D12_PIPELINE_STATE_STREAM_DESC | ||
| 991 | { | ||
| 992 | [annotation("_In_")] SIZE_T SizeInBytes; | ||
| 993 | [annotation("_In_reads_(_Inexpressible_(\"Dependent on size of subobjects\"))")] void* pPipelineStateSubobjectStream; | ||
| 994 | } D3D12_PIPELINE_STATE_STREAM_DESC; | ||
| 995 | |||
| 996 | typedef enum D3D12_PIPELINE_STATE_SUBOBJECT_TYPE | ||
| 997 | { | ||
| 998 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE, // ID3D12RootSignature* | ||
| 999 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS, // D3D12_SHADER_BYTECODE | ||
| 1000 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS, // D3D12_SHADER_BYTECODE | ||
| 1001 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS, // D3D12_SHADER_BYTECODE | ||
| 1002 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS, // D3D12_SHADER_BYTECODE | ||
| 1003 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS, // D3D12_SHADER_BYTECODE | ||
| 1004 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS, // D3D12_SHADER_BYTECODE | ||
| 1005 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT, // D3D12_STREAM_OUTPUT_DESC | ||
| 1006 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND, // D3D12_BLEND_DESC | ||
| 1007 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK, // UINT | ||
| 1008 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER, // D3D12_RASTERIZER_DESC | ||
| 1009 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL, // D3D12_DEPTH_STENCIL_DESC | ||
| 1010 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT, // D3D12_INPUT_LAYOUT_DESC | ||
| 1011 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE, // D3D12_INDEX_BUFFER_STRIP_CUT_VALUE | ||
| 1012 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY, // D3D12_PRIMITIVE_TOPOLOGY_TYPE | ||
| 1013 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS, // D3D12_RT_FORMAT_ARRAY | ||
| 1014 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT, // DXGI_FORMAT | ||
| 1015 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC, // DXGI_SAMPLE_DESC | ||
| 1016 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK, // UINT | ||
| 1017 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO, // D3D12_CACHED_PIPELINE_STATE | ||
| 1018 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS, // D3D12_PIPELINE_STATE_FLAGS | ||
| 1019 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1, // D3D12_DEPTH_STENCIL_DESC1 | ||
| 1020 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING, // D3D12_VIEW_INSTANCING_DESC | ||
| 1021 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS = 24, // D3D12_SHADER_BYTECODE | ||
| 1022 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS = 25, // D3D12_SHADER_BYTECODE | ||
| 1023 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 26, // D3D12_DEPTH_STENCIL_DESC2 | ||
| 1024 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1 = 27, // D3D12_RASTERIZER_DESC1 | ||
| 1025 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2 = 28, // D3D12_RASTERIZER_DESC2 | ||
| 1026 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE = 29, // D3D12_SERIALIZED_ROOT_SIGNATURE_DESC | ||
| 1027 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID, | ||
| 1028 | } D3D12_PIPELINE_STATE_SUBOBJECT_TYPE; | ||
| 1029 | |||
| 1030 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 1031 | // | ||
| 1032 | // D3D12 Caps | ||
| 1033 | // | ||
| 1034 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 1035 | |||
| 1036 | typedef enum D3D12_FEATURE | ||
| 1037 | { | ||
| 1038 | D3D12_FEATURE_D3D12_OPTIONS = 0, | ||
| 1039 | D3D12_FEATURE_ARCHITECTURE = 1, // Deprecated by D3D12_FEATURE_ARCHITECTURE1 | ||
| 1040 | D3D12_FEATURE_FEATURE_LEVELS = 2, | ||
| 1041 | D3D12_FEATURE_FORMAT_SUPPORT = 3, | ||
| 1042 | D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4, | ||
| 1043 | D3D12_FEATURE_FORMAT_INFO = 5, | ||
| 1044 | D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6, | ||
| 1045 | D3D12_FEATURE_SHADER_MODEL = 7, | ||
| 1046 | D3D12_FEATURE_D3D12_OPTIONS1 = 8, | ||
| 1047 | D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10, | ||
| 1048 | D3D12_FEATURE_ROOT_SIGNATURE = 12, | ||
| 1049 | D3D12_FEATURE_ARCHITECTURE1 = 16, | ||
| 1050 | D3D12_FEATURE_D3D12_OPTIONS2 = 18, | ||
| 1051 | D3D12_FEATURE_SHADER_CACHE = 19, | ||
| 1052 | D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20, | ||
| 1053 | D3D12_FEATURE_D3D12_OPTIONS3 = 21, | ||
| 1054 | D3D12_FEATURE_EXISTING_HEAPS = 22, | ||
| 1055 | D3D12_FEATURE_D3D12_OPTIONS4 = 23, | ||
| 1056 | D3D12_FEATURE_SERIALIZATION = 24, | ||
| 1057 | D3D12_FEATURE_CROSS_NODE = 25, | ||
| 1058 | D3D12_FEATURE_D3D12_OPTIONS5 = 27, | ||
| 1059 | D3D12_FEATURE_DISPLAYABLE = 28, | ||
| 1060 | D3D12_FEATURE_D3D12_OPTIONS6 = 30, | ||
| 1061 | D3D12_FEATURE_QUERY_META_COMMAND = 31, | ||
| 1062 | D3D12_FEATURE_D3D12_OPTIONS7 = 32, | ||
| 1063 | D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33, | ||
| 1064 | D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34, | ||
| 1065 | D3D12_FEATURE_D3D12_OPTIONS8 = 36, | ||
| 1066 | D3D12_FEATURE_D3D12_OPTIONS9 = 37, | ||
| 1067 | D3D12_FEATURE_D3D12_OPTIONS10 = 39, | ||
| 1068 | D3D12_FEATURE_D3D12_OPTIONS11 = 40, | ||
| 1069 | D3D12_FEATURE_D3D12_OPTIONS12 = 41, | ||
| 1070 | D3D12_FEATURE_D3D12_OPTIONS13 = 42, | ||
| 1071 | D3D12_FEATURE_D3D12_OPTIONS14 = 43, | ||
| 1072 | D3D12_FEATURE_D3D12_OPTIONS15 = 44, | ||
| 1073 | D3D12_FEATURE_D3D12_OPTIONS16 = 45, | ||
| 1074 | D3D12_FEATURE_D3D12_OPTIONS17 = 46, | ||
| 1075 | D3D12_FEATURE_D3D12_OPTIONS18 = 47, | ||
| 1076 | D3D12_FEATURE_D3D12_OPTIONS19 = 48, | ||
| 1077 | D3D12_FEATURE_D3D12_OPTIONS20 = 49, | ||
| 1078 | D3D12_FEATURE_PREDICATION = 50, | ||
| 1079 | D3D12_FEATURE_PLACED_RESOURCE_SUPPORT_INFO = 51, | ||
| 1080 | D3D12_FEATURE_HARDWARE_COPY = 52, | ||
| 1081 | D3D12_FEATURE_D3D12_OPTIONS21 = 53, | ||
| 1082 | D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT = 54, | ||
| 1083 | D3D12_FEATURE_APPLICATION_SPECIFIC_DRIVER_STATE = 56, | ||
| 1084 | D3D12_FEATURE_BYTECODE_BYPASS_HASH_SUPPORTED = 57, | ||
| 1085 | D3D12_FEATURE_SHADER_CACHE_ABI_SUPPORT = 61, | ||
| 1086 | |||
| 1087 | } D3D12_FEATURE; | ||
| 1088 | |||
| 1089 | typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT | ||
| 1090 | { | ||
| 1091 | D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0x0, | ||
| 1092 | D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1, | ||
| 1093 | D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2 | ||
| 1094 | } D3D12_SHADER_MIN_PRECISION_SUPPORT; | ||
| 1095 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_MIN_PRECISION_SUPPORT )" ) | ||
| 1096 | |||
| 1097 | typedef enum D3D12_TILED_RESOURCES_TIER | ||
| 1098 | { | ||
| 1099 | D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0, | ||
| 1100 | D3D12_TILED_RESOURCES_TIER_1 = 1, | ||
| 1101 | D3D12_TILED_RESOURCES_TIER_2 = 2, | ||
| 1102 | D3D12_TILED_RESOURCES_TIER_3 = 3, | ||
| 1103 | D3D12_TILED_RESOURCES_TIER_4 = 4, | ||
| 1104 | } D3D12_TILED_RESOURCES_TIER; | ||
| 1105 | |||
| 1106 | typedef enum D3D12_RESOURCE_BINDING_TIER | ||
| 1107 | { | ||
| 1108 | D3D12_RESOURCE_BINDING_TIER_1 = 1, | ||
| 1109 | D3D12_RESOURCE_BINDING_TIER_2 = 2, | ||
| 1110 | D3D12_RESOURCE_BINDING_TIER_3 = 3, | ||
| 1111 | } D3D12_RESOURCE_BINDING_TIER; | ||
| 1112 | |||
| 1113 | typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER { | ||
| 1114 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0, | ||
| 1115 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1, | ||
| 1116 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2, | ||
| 1117 | D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3, | ||
| 1118 | } D3D12_CONSERVATIVE_RASTERIZATION_TIER; | ||
| 1119 | |||
| 1120 | |||
| 1121 | typedef enum D3D12_FORMAT_SUPPORT1 | ||
| 1122 | { | ||
| 1123 | D3D12_FORMAT_SUPPORT1_NONE = 0, | ||
| 1124 | D3D12_FORMAT_SUPPORT1_BUFFER = 0x00000001, | ||
| 1125 | D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x00000002, | ||
| 1126 | D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x00000004, | ||
| 1127 | D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x00000008, | ||
| 1128 | D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x00000010, | ||
| 1129 | D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x00000020, | ||
| 1130 | D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x00000040, | ||
| 1131 | D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x00000080, | ||
| 1132 | D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x00000100, | ||
| 1133 | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x00000200, | ||
| 1134 | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x00000400, | ||
| 1135 | D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x00000800, | ||
| 1136 | D3D12_FORMAT_SUPPORT1_MIP = 0x00001000, | ||
| 1137 | D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x00004000, | ||
| 1138 | D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x00008000, | ||
| 1139 | D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x00010000, | ||
| 1140 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x00040000, | ||
| 1141 | D3D12_FORMAT_SUPPORT1_DISPLAY = 0x00080000, | ||
| 1142 | D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x00100000, | ||
| 1143 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x00200000, | ||
| 1144 | D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x00400000, | ||
| 1145 | D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x00800000, | ||
| 1146 | D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x01000000, | ||
| 1147 | D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x02000000, | ||
| 1148 | D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x04000000, | ||
| 1149 | D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x08000000, | ||
| 1150 | D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000, | ||
| 1151 | D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000, | ||
| 1152 | D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000, | ||
| 1153 | } D3D12_FORMAT_SUPPORT1; | ||
| 1154 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT1 )" ) | ||
| 1155 | |||
| 1156 | typedef enum D3D12_FORMAT_SUPPORT2 | ||
| 1157 | { | ||
| 1158 | D3D12_FORMAT_SUPPORT2_NONE = 0, | ||
| 1159 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x00000001, | ||
| 1160 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x00000002, | ||
| 1161 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x00000004, | ||
| 1162 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x00000008, | ||
| 1163 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x00000010, | ||
| 1164 | D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x00000020, | ||
| 1165 | D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x00000040, | ||
| 1166 | D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x00000080, | ||
| 1167 | D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x00000100, | ||
| 1168 | D3D12_FORMAT_SUPPORT2_TILED = 0x00000200, | ||
| 1169 | D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x00004000, | ||
| 1170 | D3D12_FORMAT_SUPPORT2_SAMPLER_FEEDBACK = 0x00008000, | ||
| 1171 | D3D12_FORMAT_SUPPORT2_DISPLAYABLE = 0x00010000, | ||
| 1172 | } D3D12_FORMAT_SUPPORT2; | ||
| 1173 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_FORMAT_SUPPORT2 )" ) | ||
| 1174 | |||
| 1175 | typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS | ||
| 1176 | { | ||
| 1177 | D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0, | ||
| 1178 | D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x00000001, | ||
| 1179 | } D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS; | ||
| 1180 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS )" ) | ||
| 1181 | |||
| 1182 | typedef enum D3D12_CROSS_NODE_SHARING_TIER | ||
| 1183 | { | ||
| 1184 | D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0, | ||
| 1185 | D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1, | ||
| 1186 | D3D12_CROSS_NODE_SHARING_TIER_1 = 2, | ||
| 1187 | D3D12_CROSS_NODE_SHARING_TIER_2 = 3, | ||
| 1188 | D3D12_CROSS_NODE_SHARING_TIER_3 = 4, | ||
| 1189 | } D3D12_CROSS_NODE_SHARING_TIER; | ||
| 1190 | |||
| 1191 | typedef enum D3D12_RESOURCE_HEAP_TIER | ||
| 1192 | { | ||
| 1193 | D3D12_RESOURCE_HEAP_TIER_1 = 1, | ||
| 1194 | D3D12_RESOURCE_HEAP_TIER_2 = 2, | ||
| 1195 | } D3D12_RESOURCE_HEAP_TIER; | ||
| 1196 | |||
| 1197 | typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER | ||
| 1198 | { | ||
| 1199 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0, | ||
| 1200 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 1, | ||
| 1201 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 2, | ||
| 1202 | } D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER; | ||
| 1203 | |||
| 1204 | typedef enum D3D12_VIEW_INSTANCING_TIER | ||
| 1205 | { | ||
| 1206 | D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0, | ||
| 1207 | D3D12_VIEW_INSTANCING_TIER_1 = 1, | ||
| 1208 | D3D12_VIEW_INSTANCING_TIER_2 = 2, | ||
| 1209 | D3D12_VIEW_INSTANCING_TIER_3 = 3, | ||
| 1210 | } D3D12_VIEW_INSTANCING_TIER; | ||
| 1211 | |||
| 1212 | |||
| 1213 | typedef enum D3D12_WORK_GRAPHS_TIER { | ||
| 1214 | D3D12_WORK_GRAPHS_TIER_NOT_SUPPORTED = 0, | ||
| 1215 | D3D12_WORK_GRAPHS_TIER_1_0 = 10, | ||
| 1216 | } D3D12_WORK_GRAPHS_TIER; | ||
| 1217 | |||
| 1218 | |||
| 1219 | // D3D12_FEATURE_D3D12_OPTIONS | ||
| 1220 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS | ||
| 1221 | { | ||
| 1222 | [annotation("_Out_")] BOOL DoublePrecisionFloatShaderOps; | ||
| 1223 | [annotation("_Out_")] BOOL OutputMergerLogicOp; | ||
| 1224 | [annotation("_Out_")] D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport; | ||
| 1225 | [annotation("_Out_")] D3D12_TILED_RESOURCES_TIER TiledResourcesTier; | ||
| 1226 | [annotation("_Out_")] D3D12_RESOURCE_BINDING_TIER ResourceBindingTier; | ||
| 1227 | [annotation("_Out_")] BOOL PSSpecifiedStencilRefSupported; | ||
| 1228 | [annotation("_Out_")] BOOL TypedUAVLoadAdditionalFormats; | ||
| 1229 | [annotation("_Out_")] BOOL ROVsSupported; | ||
| 1230 | [annotation("_Out_")] D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier; | ||
| 1231 | [annotation("_Out_")] UINT MaxGPUVirtualAddressBitsPerResource; | ||
| 1232 | [annotation("_Out_")] BOOL StandardSwizzle64KBSupported; | ||
| 1233 | [annotation("_Out_")] D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier; | ||
| 1234 | [annotation("_Out_")] BOOL CrossAdapterRowMajorTextureSupported; | ||
| 1235 | [annotation("_Out_")] BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation; | ||
| 1236 | [annotation("_Out_")] D3D12_RESOURCE_HEAP_TIER ResourceHeapTier; | ||
| 1237 | } D3D12_FEATURE_DATA_D3D12_OPTIONS; | ||
| 1238 | |||
| 1239 | // D3D12_FEATURE_D3D12_OPTIONS1 | ||
| 1240 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 | ||
| 1241 | { | ||
| 1242 | [annotation("_Out_")] BOOL WaveOps; | ||
| 1243 | [annotation("_Out_")] UINT WaveLaneCountMin; | ||
| 1244 | [annotation("_Out_")] UINT WaveLaneCountMax; | ||
| 1245 | [annotation("_Out_")] UINT TotalLaneCount; | ||
| 1246 | [annotation("_Out_")] BOOL ExpandedComputeResourceStates; | ||
| 1247 | [annotation("_Out_")] BOOL Int64ShaderOps; | ||
| 1248 | } D3D12_FEATURE_DATA_D3D12_OPTIONS1; | ||
| 1249 | |||
| 1250 | // D3D12_FEATURE_D3D12_OPTIONS2 | ||
| 1251 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 | ||
| 1252 | { | ||
| 1253 | [annotation("_Out_")] BOOL DepthBoundsTestSupported; | ||
| 1254 | [annotation("_Out_")] D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier; | ||
| 1255 | } D3D12_FEATURE_DATA_D3D12_OPTIONS2; | ||
| 1256 | |||
| 1257 | // D3D12_FEATURE_ROOT_SIGNATURE | ||
| 1258 | typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE | ||
| 1259 | { | ||
| 1260 | [annotation("_Inout_")] D3D_ROOT_SIGNATURE_VERSION HighestVersion; | ||
| 1261 | } D3D12_FEATURE_DATA_ROOT_SIGNATURE; | ||
| 1262 | |||
| 1263 | // D3D12_FEATURE_ARCHITECTURE | ||
| 1264 | typedef struct D3D12_FEATURE_DATA_ARCHITECTURE // Deprecated by D3D12_FEATURE_DATA_ARCHITECTURE1 | ||
| 1265 | { | ||
| 1266 | [annotation("_In_")] UINT NodeIndex; | ||
| 1267 | [annotation("_Out_")] BOOL TileBasedRenderer; | ||
| 1268 | [annotation("_Out_")] BOOL UMA; // Needed for applications to understand WRITE_COMBINE | ||
| 1269 | [annotation("_Out_")] BOOL CacheCoherentUMA; // Only TRUE when UMA is also TRUE | ||
| 1270 | } D3D12_FEATURE_DATA_ARCHITECTURE; | ||
| 1271 | |||
| 1272 | // D3D12_FEATURE_ARCHITECTURE1 | ||
| 1273 | typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 | ||
| 1274 | { | ||
| 1275 | [annotation("_In_")] UINT NodeIndex; | ||
| 1276 | [annotation("_Out_")] BOOL TileBasedRenderer; | ||
| 1277 | [annotation("_Out_")] BOOL UMA; // Needed for applications to understand WRITE_COMBINE | ||
| 1278 | [annotation("_Out_")] BOOL CacheCoherentUMA; // Only TRUE when UMA is also TRUE | ||
| 1279 | [annotation("_Out_")] BOOL IsolatedMMU; // GPU accesses don't honor the same MMU functionality as the CPU | ||
| 1280 | } D3D12_FEATURE_DATA_ARCHITECTURE1; | ||
| 1281 | |||
| 1282 | // D3D12_FEATURE_FEATURE_LEVELS | ||
| 1283 | typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS | ||
| 1284 | { | ||
| 1285 | [annotation("_In_")] UINT NumFeatureLevels; | ||
| 1286 | [annotation("_In_reads_(NumFeatureLevels)")] const D3D_FEATURE_LEVEL* pFeatureLevelsRequested; | ||
| 1287 | [annotation("_Out_")] D3D_FEATURE_LEVEL MaxSupportedFeatureLevel; | ||
| 1288 | } D3D12_FEATURE_DATA_FEATURE_LEVELS; | ||
| 1289 | |||
| 1290 | // D3D_SHADER_MODEL | ||
| 1291 | typedef enum D3D_SHADER_MODEL | ||
| 1292 | { | ||
| 1293 | D3D_SHADER_MODEL_NONE = 0x0, // e.g MCDM Generic devices | ||
| 1294 | D3D_SHADER_MODEL_5_1 = 0x51, | ||
| 1295 | D3D_SHADER_MODEL_6_0 = 0x60, | ||
| 1296 | D3D_SHADER_MODEL_6_1 = 0x61, | ||
| 1297 | D3D_SHADER_MODEL_6_2 = 0x62, | ||
| 1298 | D3D_SHADER_MODEL_6_3 = 0x63, | ||
| 1299 | D3D_SHADER_MODEL_6_4 = 0x64, | ||
| 1300 | D3D_SHADER_MODEL_6_5 = 0x65, | ||
| 1301 | D3D_SHADER_MODEL_6_6 = 0x66, | ||
| 1302 | D3D_SHADER_MODEL_6_7 = 0x67, | ||
| 1303 | D3D_SHADER_MODEL_6_8 = 0x68, | ||
| 1304 | D3D_SHADER_MODEL_6_9 = 0x69, | ||
| 1305 | D3D_HIGHEST_SHADER_MODEL = D3D_SHADER_MODEL_6_9 | ||
| 1306 | } D3D_SHADER_MODEL; | ||
| 1307 | |||
| 1308 | typedef struct D3D12_FEATURE_DATA_SHADER_MODEL | ||
| 1309 | { | ||
| 1310 | [annotation("_Inout_")] D3D_SHADER_MODEL HighestShaderModel; | ||
| 1311 | } D3D12_FEATURE_DATA_SHADER_MODEL; | ||
| 1312 | |||
| 1313 | // D3D12_FEATURE_FORMAT_SUPPORT | ||
| 1314 | typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT | ||
| 1315 | { | ||
| 1316 | [annotation("_In_")] DXGI_FORMAT Format; | ||
| 1317 | [annotation("_Out_")] D3D12_FORMAT_SUPPORT1 Support1; | ||
| 1318 | [annotation("_Out_")] D3D12_FORMAT_SUPPORT2 Support2; | ||
| 1319 | } D3D12_FEATURE_DATA_FORMAT_SUPPORT; | ||
| 1320 | |||
| 1321 | // D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS | ||
| 1322 | typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS | ||
| 1323 | { | ||
| 1324 | [annotation("_In_")] DXGI_FORMAT Format; | ||
| 1325 | [annotation("_In_")] UINT SampleCount; | ||
| 1326 | [annotation("_In_")] D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags; | ||
| 1327 | [annotation("_Out_")] UINT NumQualityLevels; | ||
| 1328 | } D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS; | ||
| 1329 | |||
| 1330 | // D3D12_FEATURE_FORMAT_INFO | ||
| 1331 | typedef struct D3D12_FEATURE_DATA_FORMAT_INFO | ||
| 1332 | { | ||
| 1333 | DXGI_FORMAT Format; | ||
| 1334 | UINT8 PlaneCount; | ||
| 1335 | } D3D12_FEATURE_DATA_FORMAT_INFO; | ||
| 1336 | |||
| 1337 | // D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT | ||
| 1338 | typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT | ||
| 1339 | { | ||
| 1340 | UINT MaxGPUVirtualAddressBitsPerResource; | ||
| 1341 | UINT MaxGPUVirtualAddressBitsPerProcess; | ||
| 1342 | } D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT; | ||
| 1343 | |||
| 1344 | |||
| 1345 | typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS | ||
| 1346 | { | ||
| 1347 | D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0, | ||
| 1348 | D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1, // Always supported | ||
| 1349 | D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2, | ||
| 1350 | D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4, | ||
| 1351 | D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8, | ||
| 1352 | D3D12_SHADER_CACHE_SUPPORT_DRIVER_MANAGED_CACHE = 0x10, | ||
| 1353 | D3D12_SHADER_CACHE_SUPPORT_SHADER_CONTROL_CLEAR = 0x20, | ||
| 1354 | D3D12_SHADER_CACHE_SUPPORT_SHADER_SESSION_DELETE = 0x40 | ||
| 1355 | } D3D12_SHADER_CACHE_SUPPORT_FLAGS; | ||
| 1356 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_SUPPORT_FLAGS )" ) | ||
| 1357 | |||
| 1358 | // D3D12_FEATURE_SHADER_CACHE | ||
| 1359 | typedef struct D3D12_FEATURE_DATA_SHADER_CACHE | ||
| 1360 | { | ||
| 1361 | [annotation("_Out_")] D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags; | ||
| 1362 | } D3D12_FEATURE_DATA_SHADER_CACHE; | ||
| 1363 | |||
| 1364 | // D3D12_FEATURE_COMMAND_QUEUE_PRIORITY | ||
| 1365 | typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY | ||
| 1366 | { | ||
| 1367 | [annotation("_In_")] D3D12_COMMAND_LIST_TYPE CommandListType; | ||
| 1368 | [annotation("_In_")] UINT Priority; | ||
| 1369 | [annotation("_Out_")] BOOL PriorityForTypeIsSupported; | ||
| 1370 | } D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY; | ||
| 1371 | |||
| 1372 | typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS | ||
| 1373 | { | ||
| 1374 | D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x00000000, | ||
| 1375 | D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 1 << D3D12_COMMAND_LIST_TYPE_DIRECT, | ||
| 1376 | D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 1 << D3D12_COMMAND_LIST_TYPE_BUNDLE, | ||
| 1377 | D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 1 << D3D12_COMMAND_LIST_TYPE_COMPUTE, | ||
| 1378 | D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 1 << D3D12_COMMAND_LIST_TYPE_COPY, | ||
| 1379 | D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_DECODE, | ||
| 1380 | D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_PROCESS, | ||
| 1381 | D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 1 << D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE, | ||
| 1382 | |||
| 1383 | } D3D12_COMMAND_LIST_SUPPORT_FLAGS; | ||
| 1384 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_SUPPORT_FLAGS )") | ||
| 1385 | |||
| 1386 | // D3D12_FEATURE_D3D12_OPTIONS3 | ||
| 1387 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 | ||
| 1388 | { | ||
| 1389 | [annotation("_Out_")] BOOL CopyQueueTimestampQueriesSupported; | ||
| 1390 | [annotation("_Out_")] BOOL CastingFullyTypedFormatSupported; | ||
| 1391 | [annotation("_Out_")] D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags; | ||
| 1392 | [annotation("_Out_")] D3D12_VIEW_INSTANCING_TIER ViewInstancingTier; | ||
| 1393 | [annotation("_Out_")] BOOL BarycentricsSupported; | ||
| 1394 | } D3D12_FEATURE_DATA_D3D12_OPTIONS3; | ||
| 1395 | |||
| 1396 | // D3D12_FEATURE_EXISTING_HEAPS | ||
| 1397 | typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS | ||
| 1398 | { | ||
| 1399 | [annotation("_Out_")] BOOL Supported; | ||
| 1400 | } D3D12_FEATURE_DATA_EXISTING_HEAPS; | ||
| 1401 | |||
| 1402 | typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER | ||
| 1403 | { | ||
| 1404 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0, | ||
| 1405 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1, | ||
| 1406 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_2, | ||
| 1407 | } D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER; | ||
| 1408 | |||
| 1409 | typedef struct D3D12_FEATURE_DATA_DISPLAYABLE | ||
| 1410 | { | ||
| 1411 | [annotation("_Out_")] BOOL DisplayableTexture; | ||
| 1412 | [annotation("_Out_")] D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; | ||
| 1413 | } D3D12_FEATURE_DATA_DISPLAYABLE; | ||
| 1414 | |||
| 1415 | // D3D12_FEATURE_D3D12_OPTIONS4 | ||
| 1416 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 | ||
| 1417 | { | ||
| 1418 | [annotation("_Out_")] BOOL MSAA64KBAlignedTextureSupported; | ||
| 1419 | [annotation("_Out_")] D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier; | ||
| 1420 | [annotation("_Out_")] BOOL Native16BitShaderOpsSupported; | ||
| 1421 | } D3D12_FEATURE_DATA_D3D12_OPTIONS4; | ||
| 1422 | |||
| 1423 | typedef enum D3D12_HEAP_SERIALIZATION_TIER | ||
| 1424 | { | ||
| 1425 | D3D12_HEAP_SERIALIZATION_TIER_0 = 0, | ||
| 1426 | D3D12_HEAP_SERIALIZATION_TIER_10 = 10, | ||
| 1427 | } D3D12_HEAP_SERIALIZATION_TIER; | ||
| 1428 | |||
| 1429 | // D3D12_FEATURE_SERIALIZATION | ||
| 1430 | typedef struct D3D12_FEATURE_DATA_SERIALIZATION | ||
| 1431 | { | ||
| 1432 | [annotation("_In_")] UINT NodeIndex; | ||
| 1433 | [annotation("_Out_")] D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier; | ||
| 1434 | } D3D12_FEATURE_DATA_SERIALIZATION; | ||
| 1435 | |||
| 1436 | // D3D12_FEATURE_CROSS_NODE | ||
| 1437 | typedef struct D3D12_FEATURE_DATA_CROSS_NODE | ||
| 1438 | { | ||
| 1439 | D3D12_CROSS_NODE_SHARING_TIER SharingTier; | ||
| 1440 | BOOL AtomicShaderInstructions; | ||
| 1441 | } D3D12_FEATURE_DATA_CROSS_NODE; | ||
| 1442 | |||
| 1443 | |||
| 1444 | typedef enum D3D12_RENDER_PASS_TIER | ||
| 1445 | { | ||
| 1446 | D3D12_RENDER_PASS_TIER_0 = 0, | ||
| 1447 | D3D12_RENDER_PASS_TIER_1 = 1, | ||
| 1448 | D3D12_RENDER_PASS_TIER_2 = 2, | ||
| 1449 | |||
| 1450 | |||
| 1451 | } D3D12_RENDER_PASS_TIER; | ||
| 1452 | |||
| 1453 | typedef enum D3D12_RAYTRACING_TIER | ||
| 1454 | { | ||
| 1455 | D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0, | ||
| 1456 | D3D12_RAYTRACING_TIER_1_0 = 10, | ||
| 1457 | D3D12_RAYTRACING_TIER_1_1 = 11, | ||
| 1458 | D3D12_RAYTRACING_TIER_1_2 = 12, | ||
| 1459 | } D3D12_RAYTRACING_TIER; | ||
| 1460 | |||
| 1461 | // D3D12_FEATURE_D3D12_OPTIONS5 | ||
| 1462 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 | ||
| 1463 | { | ||
| 1464 | [annotation("_Out_")] BOOL SRVOnlyTiledResourceTier3; | ||
| 1465 | [annotation("_Out_")] D3D12_RENDER_PASS_TIER RenderPassesTier; | ||
| 1466 | [annotation("_Out_")] D3D12_RAYTRACING_TIER RaytracingTier; | ||
| 1467 | } D3D12_FEATURE_DATA_D3D12_OPTIONS5; | ||
| 1468 | |||
| 1469 | typedef enum D3D12_VARIABLE_SHADING_RATE_TIER | ||
| 1470 | { | ||
| 1471 | D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED = 0, | ||
| 1472 | D3D12_VARIABLE_SHADING_RATE_TIER_1 = 1, | ||
| 1473 | D3D12_VARIABLE_SHADING_RATE_TIER_2 = 2, | ||
| 1474 | } D3D12_VARIABLE_SHADING_RATE_TIER; | ||
| 1475 | |||
| 1476 | // D3D12_FEATURE_D3D12_OPTIONS6 | ||
| 1477 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS6 | ||
| 1478 | { | ||
| 1479 | [annotation("_Out_")] BOOL AdditionalShadingRatesSupported; | ||
| 1480 | [annotation("_Out_")] BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing; | ||
| 1481 | [annotation("_Out_")] D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier; | ||
| 1482 | [annotation("_Out_")] UINT ShadingRateImageTileSize; | ||
| 1483 | [annotation("_Out_")] BOOL BackgroundProcessingSupported; | ||
| 1484 | } D3D12_FEATURE_DATA_D3D12_OPTIONS6; | ||
| 1485 | |||
| 1486 | typedef enum D3D12_MESH_SHADER_TIER | ||
| 1487 | { | ||
| 1488 | D3D12_MESH_SHADER_TIER_NOT_SUPPORTED = 0, | ||
| 1489 | D3D12_MESH_SHADER_TIER_1 = 10, | ||
| 1490 | } D3D12_MESH_SHADER_TIER; | ||
| 1491 | |||
| 1492 | typedef enum D3D12_SAMPLER_FEEDBACK_TIER | ||
| 1493 | { | ||
| 1494 | D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED = 0, | ||
| 1495 | D3D12_SAMPLER_FEEDBACK_TIER_0_9 = 90, | ||
| 1496 | D3D12_SAMPLER_FEEDBACK_TIER_1_0 = 100 | ||
| 1497 | } D3D12_SAMPLER_FEEDBACK_TIER; | ||
| 1498 | |||
| 1499 | // D3D12_FEATURE_D3D12_OPTIONS7 | ||
| 1500 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS7 | ||
| 1501 | { | ||
| 1502 | [annotation("_Out_")] D3D12_MESH_SHADER_TIER MeshShaderTier; | ||
| 1503 | [annotation("_Out_")] D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier; | ||
| 1504 | |||
| 1505 | } D3D12_FEATURE_DATA_D3D12_OPTIONS7; | ||
| 1506 | |||
| 1507 | typedef struct D3D12_FEATURE_DATA_QUERY_META_COMMAND | ||
| 1508 | { | ||
| 1509 | [annotation("_In_")] GUID CommandId; | ||
| 1510 | [annotation("_In_")] UINT NodeMask; | ||
| 1511 | [annotation("_Field_size_bytes_full_opt_( QueryInputDataSizeInBytes )")] const void* pQueryInputData; | ||
| 1512 | [annotation("_In_")] SIZE_T QueryInputDataSizeInBytes; | ||
| 1513 | [annotation("_Field_size_bytes_full_( QueryOutputDataSizeInBytes )")] void* pQueryOutputData; | ||
| 1514 | [annotation("_In_")] SIZE_T QueryOutputDataSizeInBytes; | ||
| 1515 | } D3D12_FEATURE_DATA_QUERY_META_COMMAND; | ||
| 1516 | |||
| 1517 | // D3D12_FEATURE_D3D12_OPTIONS8 | ||
| 1518 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS8 | ||
| 1519 | { | ||
| 1520 | [annotation("_Out_")] BOOL UnalignedBlockTexturesSupported; | ||
| 1521 | } D3D12_FEATURE_DATA_D3D12_OPTIONS8; | ||
| 1522 | |||
| 1523 | typedef enum D3D12_WAVE_MMA_TIER { | ||
| 1524 | D3D12_WAVE_MMA_TIER_NOT_SUPPORTED = 0, | ||
| 1525 | D3D12_WAVE_MMA_TIER_1_0 = 10, | ||
| 1526 | } D3D12_WAVE_MMA_TIER; | ||
| 1527 | |||
| 1528 | // D3D12_FEATURE_D3D12_OPTIONS9 | ||
| 1529 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS9 | ||
| 1530 | { | ||
| 1531 | [annotation("_Out_")] BOOL MeshShaderPipelineStatsSupported; | ||
| 1532 | [annotation("_Out_")] BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex; | ||
| 1533 | [annotation("_Out_")] BOOL AtomicInt64OnTypedResourceSupported; | ||
| 1534 | [annotation("_Out_")] BOOL AtomicInt64OnGroupSharedSupported; | ||
| 1535 | [annotation("_Out_")] BOOL DerivativesInMeshAndAmplificationShadersSupported; | ||
| 1536 | [annotation("_Out_")] D3D12_WAVE_MMA_TIER WaveMMATier; | ||
| 1537 | } D3D12_FEATURE_DATA_D3D12_OPTIONS9; | ||
| 1538 | |||
| 1539 | // D3D12_FEATURE_D3D12_OPTIONS10 | ||
| 1540 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS10 | ||
| 1541 | { | ||
| 1542 | [annotation("_Out_")] BOOL VariableRateShadingSumCombinerSupported; | ||
| 1543 | [annotation("_Out_")] BOOL MeshShaderPerPrimitiveShadingRateSupported; | ||
| 1544 | } D3D12_FEATURE_DATA_D3D12_OPTIONS10; | ||
| 1545 | |||
| 1546 | // D3D12_FEATURE_D3D12_OPTIONS11 | ||
| 1547 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS11 | ||
| 1548 | { | ||
| 1549 | [annotation("_Out_")] BOOL AtomicInt64OnDescriptorHeapResourceSupported; | ||
| 1550 | } D3D12_FEATURE_DATA_D3D12_OPTIONS11; | ||
| 1551 | |||
| 1552 | typedef enum D3D12_TRI_STATE { | ||
| 1553 | D3D12_TRI_STATE_UNKNOWN = -1, | ||
| 1554 | D3D12_TRI_STATE_FALSE = 0, | ||
| 1555 | D3D12_TRI_STATE_TRUE = 1, | ||
| 1556 | } D3D12_TRI_STATE; | ||
| 1557 | |||
| 1558 | // D3D12_FEATURE_D3D12_OPTIONS12 | ||
| 1559 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS12 | ||
| 1560 | { | ||
| 1561 | [annotation("_Out_")] D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives; | ||
| 1562 | [annotation("_Out_")] BOOL EnhancedBarriersSupported; | ||
| 1563 | [annotation("_Out_")] BOOL RelaxedFormatCastingSupported; | ||
| 1564 | } D3D12_FEATURE_DATA_D3D12_OPTIONS12; | ||
| 1565 | |||
| 1566 | // D3D12_FEATURE_D3D12_OPTIONS13 | ||
| 1567 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS13 | ||
| 1568 | { | ||
| 1569 | [annotation("_Out_")] BOOL UnrestrictedBufferTextureCopyPitchSupported; | ||
| 1570 | [annotation("_Out_")] BOOL UnrestrictedVertexElementAlignmentSupported; | ||
| 1571 | [annotation("_Out_")] BOOL InvertedViewportHeightFlipsYSupported; | ||
| 1572 | [annotation("_Out_")] BOOL InvertedViewportDepthFlipsZSupported; | ||
| 1573 | [annotation("_Out_")] BOOL TextureCopyBetweenDimensionsSupported; | ||
| 1574 | [annotation("_Out_")] BOOL AlphaBlendFactorSupported; | ||
| 1575 | } D3D12_FEATURE_DATA_D3D12_OPTIONS13; | ||
| 1576 | |||
| 1577 | // D3D12_FEATURE_D3D12_OPTIONS14 | ||
| 1578 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS14 | ||
| 1579 | { | ||
| 1580 | [annotation("_Out_")] BOOL AdvancedTextureOpsSupported; | ||
| 1581 | [annotation("_Out_")] BOOL WriteableMSAATexturesSupported; | ||
| 1582 | [annotation("_Out_")] BOOL IndependentFrontAndBackStencilRefMaskSupported; | ||
| 1583 | } D3D12_FEATURE_DATA_D3D12_OPTIONS14; | ||
| 1584 | |||
| 1585 | // D3D12_FEATURE_D3D12_OPTIONS15 | ||
| 1586 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS15 | ||
| 1587 | { | ||
| 1588 | [annotation("_Out_")] BOOL TriangleFanSupported; | ||
| 1589 | [annotation("_Out_")] BOOL DynamicIndexBufferStripCutSupported; | ||
| 1590 | } D3D12_FEATURE_DATA_D3D12_OPTIONS15; | ||
| 1591 | |||
| 1592 | // D3D12_FEATURE_D3D12_OPTIONS16 | ||
| 1593 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS16 | ||
| 1594 | { | ||
| 1595 | [annotation("_Out_")] BOOL DynamicDepthBiasSupported; | ||
| 1596 | [annotation("_Out_")] BOOL GPUUploadHeapSupported; | ||
| 1597 | } D3D12_FEATURE_DATA_D3D12_OPTIONS16; | ||
| 1598 | |||
| 1599 | // D3D12_FEATURE_D3D12_OPTIONS17 | ||
| 1600 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS17 | ||
| 1601 | { | ||
| 1602 | [annotation("_Out_")] BOOL NonNormalizedCoordinateSamplersSupported; | ||
| 1603 | [annotation("_Out_")] BOOL ManualWriteTrackingResourceSupported; | ||
| 1604 | } D3D12_FEATURE_DATA_D3D12_OPTIONS17; | ||
| 1605 | |||
| 1606 | // D3D12_FEATURE_D3D12_OPTIONS18 | ||
| 1607 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS18 | ||
| 1608 | { | ||
| 1609 | [annotation("_Out_")] BOOL RenderPassesValid; | ||
| 1610 | } D3D12_FEATURE_DATA_D3D12_OPTIONS18; | ||
| 1611 | |||
| 1612 | // D3D12_FEATURE_D3D12_OPTIONS19 | ||
| 1613 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS19 | ||
| 1614 | { | ||
| 1615 | BOOL MismatchingOutputDimensionsSupported; | ||
| 1616 | UINT SupportedSampleCountsWithNoOutputs; | ||
| 1617 | BOOL PointSamplingAddressesNeverRoundUp; | ||
| 1618 | BOOL RasterizerDesc2Supported; | ||
| 1619 | BOOL NarrowQuadrilateralLinesSupported; | ||
| 1620 | BOOL AnisoFilterWithPointMipSupported; | ||
| 1621 | UINT MaxSamplerDescriptorHeapSize; | ||
| 1622 | UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers; | ||
| 1623 | UINT MaxViewDescriptorHeapSize; | ||
| 1624 | [annotation("_Out_")] BOOL ComputeOnlyCustomHeapSupported; | ||
| 1625 | } D3D12_FEATURE_DATA_D3D12_OPTIONS19; | ||
| 1626 | |||
| 1627 | |||
| 1628 | typedef enum D3D12_RECREATE_AT_TIER | ||
| 1629 | { | ||
| 1630 | D3D12_RECREATE_AT_TIER_NOT_SUPPORTED = 0, | ||
| 1631 | |||
| 1632 | // * Supports retrieving resource and heap allocation information | ||
| 1633 | // with ID3D12PageableTools::GetAllocationInfo | ||
| 1634 | // * Supports setting resource and heap virtual addresses with | ||
| 1635 | // ID3D12DeviceTools::SetNextAllocation | ||
| 1636 | D3D12_RECREATE_AT_TIER_1 = 1, | ||
| 1637 | |||
| 1638 | } D3D12_RECREATE_AT_TIER; | ||
| 1639 | |||
| 1640 | |||
| 1641 | // D3D12_FEATURE_D3D12_OPTIONS20 | ||
| 1642 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS20 | ||
| 1643 | { | ||
| 1644 | [annotation("_Out_")] BOOL ComputeOnlyWriteWatchSupported; | ||
| 1645 | D3D12_RECREATE_AT_TIER RecreateAtTier; | ||
| 1646 | } D3D12_FEATURE_DATA_D3D12_OPTIONS20; | ||
| 1647 | |||
| 1648 | typedef enum D3D12_EXECUTE_INDIRECT_TIER | ||
| 1649 | { | ||
| 1650 | D3D12_EXECUTE_INDIRECT_TIER_1_0 = 10, | ||
| 1651 | D3D12_EXECUTE_INDIRECT_TIER_1_1 = 11, | ||
| 1652 | } D3D12_EXECUTE_INDIRECT_TIER; | ||
| 1653 | |||
| 1654 | typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS21 | ||
| 1655 | { | ||
| 1656 | [annotation("_Out_")] D3D12_WORK_GRAPHS_TIER WorkGraphsTier; | ||
| 1657 | [annotation("_Out_")] D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier; | ||
| 1658 | [annotation("_Out_")] BOOL SampleCmpGradientAndBiasSupported; | ||
| 1659 | [annotation("_Out_")] BOOL ExtendedCommandInfoSupported; | ||
| 1660 | } D3D12_FEATURE_DATA_D3D12_OPTIONS21; | ||
| 1661 | |||
| 1662 | |||
| 1663 | typedef enum D3D12_TIGHT_ALIGNMENT_TIER | ||
| 1664 | { | ||
| 1665 | D3D12_TIGHT_ALIGNMENT_TIER_NOT_SUPPORTED, | ||
| 1666 | D3D12_TIGHT_ALIGNMENT_TIER_1 // Tight alignment of buffers supported | ||
| 1667 | } D3D12_TIGHT_ALIGNMENT_TIER; | ||
| 1668 | |||
| 1669 | typedef struct D3D12_FEATURE_DATA_TIGHT_ALIGNMENT | ||
| 1670 | { | ||
| 1671 | [annotation("_Out_")] D3D12_TIGHT_ALIGNMENT_TIER SupportTier; | ||
| 1672 | } D3D12_FEATURE_DATA_TIGHT_ALIGNMENT; | ||
| 1673 | |||
| 1674 | |||
| 1675 | typedef struct D3D12_FEATURE_DATA_PREDICATION | ||
| 1676 | { | ||
| 1677 | [annotation("_Out_")] BOOL Supported; | ||
| 1678 | } D3D12_FEATURE_DATA_PREDICATION; | ||
| 1679 | |||
| 1680 | typedef struct D3D12_FEATURE_DATA_HARDWARE_COPY | ||
| 1681 | { | ||
| 1682 | [annotation("_Out_")] BOOL Supported; | ||
| 1683 | } D3D12_FEATURE_DATA_HARDWARE_COPY; | ||
| 1684 | |||
| 1685 | typedef struct D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE | ||
| 1686 | { | ||
| 1687 | [annotation("_Out_")] BOOL Supported; | ||
| 1688 | } D3D12_FEATURE_DATA_APPLICATION_SPECIFIC_DRIVER_STATE; | ||
| 1689 | |||
| 1690 | typedef struct D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED | ||
| 1691 | { | ||
| 1692 | [annotation("_Out_")] BOOL Supported; | ||
| 1693 | } D3D12_FEATURE_DATA_BYTECODE_BYPASS_HASH_SUPPORTED; | ||
| 1694 | |||
| 1695 | typedef struct D3D12_RESOURCE_ALLOCATION_INFO | ||
| 1696 | { | ||
| 1697 | UINT64 SizeInBytes; | ||
| 1698 | UINT64 Alignment; | ||
| 1699 | } D3D12_RESOURCE_ALLOCATION_INFO; | ||
| 1700 | |||
| 1701 | typedef struct D3D12_RESOURCE_ALLOCATION_INFO1 | ||
| 1702 | { | ||
| 1703 | UINT64 Offset; | ||
| 1704 | UINT64 Alignment; | ||
| 1705 | UINT64 SizeInBytes; | ||
| 1706 | } D3D12_RESOURCE_ALLOCATION_INFO1; | ||
| 1707 | |||
| 1708 | typedef enum D3D12_HEAP_TYPE | ||
| 1709 | { | ||
| 1710 | D3D12_HEAP_TYPE_DEFAULT = 1, | ||
| 1711 | D3D12_HEAP_TYPE_UPLOAD = 2, | ||
| 1712 | D3D12_HEAP_TYPE_READBACK = 3, | ||
| 1713 | D3D12_HEAP_TYPE_CUSTOM = 4, | ||
| 1714 | D3D12_HEAP_TYPE_GPU_UPLOAD = 5, | ||
| 1715 | } D3D12_HEAP_TYPE; | ||
| 1716 | |||
| 1717 | typedef enum D3D12_CPU_PAGE_PROPERTY | ||
| 1718 | { | ||
| 1719 | D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0, | ||
| 1720 | D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1, | ||
| 1721 | D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2, | ||
| 1722 | D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3, | ||
| 1723 | } D3D12_CPU_PAGE_PROPERTY; | ||
| 1724 | |||
| 1725 | typedef enum D3D12_MEMORY_POOL | ||
| 1726 | { | ||
| 1727 | D3D12_MEMORY_POOL_UNKNOWN = 0, | ||
| 1728 | D3D12_MEMORY_POOL_L0 = 1, // Maximum bandwidth for CPU | ||
| 1729 | D3D12_MEMORY_POOL_L1 = 2, // More bandwidth for GPU, less for CPU | ||
| 1730 | } D3D12_MEMORY_POOL; | ||
| 1731 | |||
| 1732 | typedef struct D3D12_HEAP_PROPERTIES | ||
| 1733 | { | ||
| 1734 | D3D12_HEAP_TYPE Type; | ||
| 1735 | D3D12_CPU_PAGE_PROPERTY CPUPageProperty; | ||
| 1736 | D3D12_MEMORY_POOL MemoryPoolPreference; | ||
| 1737 | UINT CreationNodeMask; | ||
| 1738 | UINT VisibleNodeMask; | ||
| 1739 | } D3D12_HEAP_PROPERTIES; | ||
| 1740 | |||
| 1741 | typedef enum D3D12_HEAP_FLAGS | ||
| 1742 | { | ||
| 1743 | D3D12_HEAP_FLAG_NONE = 0x0, | ||
| 1744 | D3D12_HEAP_FLAG_SHARED = 0x1, | ||
| 1745 | D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4, | ||
| 1746 | D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8, | ||
| 1747 | D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20, | ||
| 1748 | D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40, | ||
| 1749 | D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80, | ||
| 1750 | D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100, | ||
| 1751 | D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200, | ||
| 1752 | D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400, | ||
| 1753 | D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800, | ||
| 1754 | D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000, | ||
| 1755 | D3D12_HEAP_FLAG_TOOLS_USE_MANUAL_WRITE_TRACKING = 0x2000, | ||
| 1756 | |||
| 1757 | // These are convenience aliases to manage resource heap tier restrictions. They cannot be bitwise OR'ed together cleanly. | ||
| 1758 | D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0x0, | ||
| 1759 | D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xC0, | ||
| 1760 | D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44, | ||
| 1761 | D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84, | ||
| 1762 | |||
| 1763 | |||
| 1764 | } D3D12_HEAP_FLAGS; | ||
| 1765 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_HEAP_FLAGS )" ) | ||
| 1766 | |||
| 1767 | typedef struct D3D12_HEAP_DESC | ||
| 1768 | { | ||
| 1769 | UINT64 SizeInBytes; | ||
| 1770 | D3D12_HEAP_PROPERTIES Properties; | ||
| 1771 | UINT64 Alignment; | ||
| 1772 | D3D12_HEAP_FLAGS Flags; | ||
| 1773 | } D3D12_HEAP_DESC; | ||
| 1774 | |||
| 1775 | typedef enum D3D12_RESOURCE_DIMENSION | ||
| 1776 | { | ||
| 1777 | D3D12_RESOURCE_DIMENSION_UNKNOWN = 0, | ||
| 1778 | D3D12_RESOURCE_DIMENSION_BUFFER = 1, | ||
| 1779 | D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2, | ||
| 1780 | D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3, | ||
| 1781 | D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4, | ||
| 1782 | } D3D12_RESOURCE_DIMENSION; | ||
| 1783 | |||
| 1784 | typedef struct D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO | ||
| 1785 | { | ||
| 1786 | [annotation("_In_")] DXGI_FORMAT Format; | ||
| 1787 | [annotation("_In_")] D3D12_RESOURCE_DIMENSION Dimension; | ||
| 1788 | [annotation("_In_")] D3D12_HEAP_PROPERTIES DestHeapProperties; | ||
| 1789 | [annotation("_Out_")] BOOL Supported; | ||
| 1790 | } D3D12_FEATURE_DATA_PLACED_RESOURCE_SUPPORT_INFO; | ||
| 1791 | |||
| 1792 | typedef enum D3D12_TEXTURE_LAYOUT | ||
| 1793 | { | ||
| 1794 | D3D12_TEXTURE_LAYOUT_UNKNOWN = 0, | ||
| 1795 | D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1, // Must be used with buffers. Can be used with cross-adapter shared textures. | ||
| 1796 | D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2, | ||
| 1797 | D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3, | ||
| 1798 | } D3D12_TEXTURE_LAYOUT; | ||
| 1799 | |||
| 1800 | typedef enum D3D12_RESOURCE_FLAGS | ||
| 1801 | { | ||
| 1802 | D3D12_RESOURCE_FLAG_NONE = 0x0, | ||
| 1803 | D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1, | ||
| 1804 | D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2, | ||
| 1805 | D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4, | ||
| 1806 | D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8, | ||
| 1807 | D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10, | ||
| 1808 | D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20, | ||
| 1809 | D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40, | ||
| 1810 | D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80, | ||
| 1811 | D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100, | ||
| 1812 | D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 0x400, | ||
| 1813 | |||
| 1814 | } D3D12_RESOURCE_FLAGS; | ||
| 1815 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_FLAGS )" ) | ||
| 1816 | |||
| 1817 | typedef struct D3D12_MIP_REGION | ||
| 1818 | { | ||
| 1819 | UINT Width; | ||
| 1820 | UINT Height; | ||
| 1821 | UINT Depth; | ||
| 1822 | } D3D12_MIP_REGION; | ||
| 1823 | |||
| 1824 | typedef struct D3D12_RESOURCE_DESC | ||
| 1825 | { | ||
| 1826 | D3D12_RESOURCE_DIMENSION Dimension; | ||
| 1827 | UINT64 Alignment; | ||
| 1828 | UINT64 Width; | ||
| 1829 | UINT Height; | ||
| 1830 | UINT16 DepthOrArraySize; | ||
| 1831 | UINT16 MipLevels; | ||
| 1832 | DXGI_FORMAT Format; | ||
| 1833 | DXGI_SAMPLE_DESC SampleDesc; | ||
| 1834 | D3D12_TEXTURE_LAYOUT Layout; | ||
| 1835 | D3D12_RESOURCE_FLAGS Flags; | ||
| 1836 | } D3D12_RESOURCE_DESC; | ||
| 1837 | |||
| 1838 | typedef struct D3D12_RESOURCE_DESC1 | ||
| 1839 | { | ||
| 1840 | D3D12_RESOURCE_DIMENSION Dimension; | ||
| 1841 | UINT64 Alignment; | ||
| 1842 | UINT64 Width; | ||
| 1843 | UINT Height; | ||
| 1844 | UINT16 DepthOrArraySize; | ||
| 1845 | UINT16 MipLevels; | ||
| 1846 | DXGI_FORMAT Format; | ||
| 1847 | DXGI_SAMPLE_DESC SampleDesc; | ||
| 1848 | D3D12_TEXTURE_LAYOUT Layout; | ||
| 1849 | D3D12_RESOURCE_FLAGS Flags; | ||
| 1850 | D3D12_MIP_REGION SamplerFeedbackMipRegion; | ||
| 1851 | } D3D12_RESOURCE_DESC1; | ||
| 1852 | |||
| 1853 | |||
| 1854 | |||
| 1855 | typedef struct D3D12_DEPTH_STENCIL_VALUE | ||
| 1856 | { | ||
| 1857 | FLOAT Depth; | ||
| 1858 | UINT8 Stencil; | ||
| 1859 | } D3D12_DEPTH_STENCIL_VALUE; | ||
| 1860 | |||
| 1861 | typedef struct D3D12_CLEAR_VALUE | ||
| 1862 | { | ||
| 1863 | DXGI_FORMAT Format; | ||
| 1864 | union | ||
| 1865 | { | ||
| 1866 | FLOAT Color[4]; | ||
| 1867 | D3D12_DEPTH_STENCIL_VALUE DepthStencil; | ||
| 1868 | }; | ||
| 1869 | } D3D12_CLEAR_VALUE; | ||
| 1870 | |||
| 1871 | typedef struct D3D12_RANGE | ||
| 1872 | { | ||
| 1873 | SIZE_T Begin; | ||
| 1874 | SIZE_T End; // One past end, so (End - Begin) = Size | ||
| 1875 | } D3D12_RANGE; | ||
| 1876 | |||
| 1877 | typedef struct D3D12_RANGE_UINT64 | ||
| 1878 | { | ||
| 1879 | UINT64 Begin; | ||
| 1880 | UINT64 End; // One past end, so (End - Begin) = Size | ||
| 1881 | } D3D12_RANGE_UINT64; | ||
| 1882 | |||
| 1883 | typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 | ||
| 1884 | { | ||
| 1885 | UINT Subresource; | ||
| 1886 | D3D12_RANGE_UINT64 Range; | ||
| 1887 | } D3D12_SUBRESOURCE_RANGE_UINT64; | ||
| 1888 | |||
| 1889 | typedef struct D3D12_SUBRESOURCE_INFO | ||
| 1890 | { | ||
| 1891 | UINT64 Offset; | ||
| 1892 | UINT RowPitch; | ||
| 1893 | UINT DepthPitch; | ||
| 1894 | } D3D12_SUBRESOURCE_INFO; | ||
| 1895 | |||
| 1896 | typedef struct D3D12_TILED_RESOURCE_COORDINATE | ||
| 1897 | { | ||
| 1898 | UINT X; | ||
| 1899 | UINT Y; | ||
| 1900 | UINT Z; | ||
| 1901 | UINT Subresource; | ||
| 1902 | } D3D12_TILED_RESOURCE_COORDINATE; | ||
| 1903 | |||
| 1904 | typedef struct D3D12_TILE_REGION_SIZE | ||
| 1905 | { | ||
| 1906 | UINT NumTiles; | ||
| 1907 | BOOL UseBox; | ||
| 1908 | UINT Width; | ||
| 1909 | UINT16 Height; | ||
| 1910 | UINT16 Depth; | ||
| 1911 | } D3D12_TILE_REGION_SIZE; | ||
| 1912 | |||
| 1913 | typedef enum D3D12_TILE_RANGE_FLAGS | ||
| 1914 | { | ||
| 1915 | D3D12_TILE_RANGE_FLAG_NONE = 0, | ||
| 1916 | D3D12_TILE_RANGE_FLAG_NULL = 1, | ||
| 1917 | D3D12_TILE_RANGE_FLAG_SKIP = 2, | ||
| 1918 | D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 4, | ||
| 1919 | |||
| 1920 | } D3D12_TILE_RANGE_FLAGS; | ||
| 1921 | |||
| 1922 | typedef struct D3D12_SUBRESOURCE_TILING | ||
| 1923 | { | ||
| 1924 | UINT WidthInTiles; | ||
| 1925 | UINT16 HeightInTiles; | ||
| 1926 | UINT16 DepthInTiles; | ||
| 1927 | UINT StartTileIndexInOverallResource; | ||
| 1928 | } D3D12_SUBRESOURCE_TILING; | ||
| 1929 | |||
| 1930 | typedef struct D3D12_TILE_SHAPE | ||
| 1931 | { | ||
| 1932 | UINT WidthInTexels; | ||
| 1933 | UINT HeightInTexels; | ||
| 1934 | UINT DepthInTexels; | ||
| 1935 | } D3D12_TILE_SHAPE; | ||
| 1936 | |||
| 1937 | typedef struct D3D12_PACKED_MIP_INFO | ||
| 1938 | { | ||
| 1939 | UINT8 NumStandardMips; | ||
| 1940 | UINT8 NumPackedMips; | ||
| 1941 | UINT NumTilesForPackedMips; | ||
| 1942 | UINT StartTileIndexInOverallResource; | ||
| 1943 | } D3D12_PACKED_MIP_INFO; | ||
| 1944 | |||
| 1945 | typedef enum D3D12_TILE_MAPPING_FLAGS | ||
| 1946 | { | ||
| 1947 | D3D12_TILE_MAPPING_FLAG_NONE = 0x0, | ||
| 1948 | D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1, | ||
| 1949 | } D3D12_TILE_MAPPING_FLAGS; | ||
| 1950 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_MAPPING_FLAGS )" ) | ||
| 1951 | |||
| 1952 | typedef enum D3D12_TILE_COPY_FLAGS | ||
| 1953 | { | ||
| 1954 | D3D12_TILE_COPY_FLAG_NONE = 0x0, | ||
| 1955 | D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1, | ||
| 1956 | D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2, | ||
| 1957 | D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4, | ||
| 1958 | } D3D12_TILE_COPY_FLAGS; | ||
| 1959 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_TILE_COPY_FLAGS )") | ||
| 1960 | |||
| 1961 | // Resource Barrier | ||
| 1962 | typedef enum D3D12_RESOURCE_STATES | ||
| 1963 | { | ||
| 1964 | D3D12_RESOURCE_STATE_COMMON = 0, | ||
| 1965 | |||
| 1966 | D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x00001, | ||
| 1967 | D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x00002, | ||
| 1968 | D3D12_RESOURCE_STATE_RENDER_TARGET = 0x00004, | ||
| 1969 | D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x00008, | ||
| 1970 | D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x00010, | ||
| 1971 | D3D12_RESOURCE_STATE_DEPTH_READ = 0x00020, | ||
| 1972 | D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x00040, | ||
| 1973 | D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x00080, | ||
| 1974 | D3D12_RESOURCE_STATE_STREAM_OUT = 0x00100, | ||
| 1975 | D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x00200, | ||
| 1976 | D3D12_RESOURCE_STATE_COPY_DEST = 0x00400, | ||
| 1977 | D3D12_RESOURCE_STATE_COPY_SOURCE = 0x00800, | ||
| 1978 | D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x01000, | ||
| 1979 | D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x02000, | ||
| 1980 | D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE = 0x400000, | ||
| 1981 | D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE = 0x1000000, | ||
| 1982 | |||
| 1983 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_8000 = 0x8000, | ||
| 1984 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_4000 = 0x4000, | ||
| 1985 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_100000 = 0x100000, | ||
| 1986 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_40000000 = 0x40000000, | ||
| 1987 | D3D12_RESOURCE_STATE_RESERVED_INTERNAL_80000000 = 0x80000000, | ||
| 1988 | |||
| 1989 | D3D12_RESOURCE_STATE_GENERIC_READ = | ||
| 1990 | /*D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER*/ 0x0001 | | ||
| 1991 | /*D3D12_RESOURCE_STATE_INDEX_BUFFER*/ 0x0002 | | ||
| 1992 | /*D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE*/ 0x0040 | | ||
| 1993 | /*D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE*/ 0x0080 | | ||
| 1994 | /*D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT*/ 0x0200 | | ||
| 1995 | /*D3D12_RESOURCE_STATE_COPY_SOURCE*/ 0x0800, | ||
| 1996 | |||
| 1997 | D3D12_RESOURCE_STATE_ALL_SHADER_RESOURCE = | ||
| 1998 | /*D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE*/ 0x40 | | ||
| 1999 | /*D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE*/ 0x80, | ||
| 2000 | |||
| 2001 | D3D12_RESOURCE_STATE_PRESENT = 0, | ||
| 2002 | D3D12_RESOURCE_STATE_PREDICATION = /*D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT*/ 0x0200, | ||
| 2003 | |||
| 2004 | D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x00010000, | ||
| 2005 | D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x00020000, | ||
| 2006 | D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x00040000, | ||
| 2007 | D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x00080000, | ||
| 2008 | D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x00200000, | ||
| 2009 | D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x00800000, | ||
| 2010 | |||
| 2011 | } D3D12_RESOURCE_STATES; | ||
| 2012 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_STATES )" ) | ||
| 2013 | |||
| 2014 | typedef enum D3D12_RESOURCE_BARRIER_TYPE | ||
| 2015 | { | ||
| 2016 | D3D12_RESOURCE_BARRIER_TYPE_TRANSITION, | ||
| 2017 | D3D12_RESOURCE_BARRIER_TYPE_ALIASING, | ||
| 2018 | D3D12_RESOURCE_BARRIER_TYPE_UAV, | ||
| 2019 | } D3D12_RESOURCE_BARRIER_TYPE; | ||
| 2020 | |||
| 2021 | interface ID3D12Resource; | ||
| 2022 | |||
| 2023 | typedef struct D3D12_RESOURCE_TRANSITION_BARRIER | ||
| 2024 | { | ||
| 2025 | ID3D12Resource* pResource; | ||
| 2026 | UINT Subresource; | ||
| 2027 | D3D12_RESOURCE_STATES StateBefore; | ||
| 2028 | D3D12_RESOURCE_STATES StateAfter; | ||
| 2029 | } D3D12_RESOURCE_TRANSITION_BARRIER; | ||
| 2030 | |||
| 2031 | typedef struct D3D12_RESOURCE_ALIASING_BARRIER | ||
| 2032 | { | ||
| 2033 | ID3D12Resource* pResourceBefore; | ||
| 2034 | ID3D12Resource* pResourceAfter; | ||
| 2035 | } D3D12_RESOURCE_ALIASING_BARRIER; | ||
| 2036 | |||
| 2037 | typedef struct D3D12_RESOURCE_UAV_BARRIER | ||
| 2038 | { | ||
| 2039 | ID3D12Resource* pResource; | ||
| 2040 | } D3D12_RESOURCE_UAV_BARRIER; | ||
| 2041 | |||
| 2042 | typedef enum D3D12_RESOURCE_BARRIER_FLAGS | ||
| 2043 | { | ||
| 2044 | D3D12_RESOURCE_BARRIER_FLAG_NONE = 0x0, | ||
| 2045 | D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1, | ||
| 2046 | D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2, | ||
| 2047 | } D3D12_RESOURCE_BARRIER_FLAGS; | ||
| 2048 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESOURCE_BARRIER_FLAGS )" ) | ||
| 2049 | |||
| 2050 | typedef struct D3D12_RESOURCE_BARRIER | ||
| 2051 | { | ||
| 2052 | D3D12_RESOURCE_BARRIER_TYPE Type; | ||
| 2053 | D3D12_RESOURCE_BARRIER_FLAGS Flags; | ||
| 2054 | |||
| 2055 | union | ||
| 2056 | { | ||
| 2057 | D3D12_RESOURCE_TRANSITION_BARRIER Transition; | ||
| 2058 | D3D12_RESOURCE_ALIASING_BARRIER Aliasing; | ||
| 2059 | D3D12_RESOURCE_UAV_BARRIER UAV; | ||
| 2060 | }; | ||
| 2061 | } D3D12_RESOURCE_BARRIER; | ||
| 2062 | |||
| 2063 | typedef struct D3D12_SUBRESOURCE_FOOTPRINT | ||
| 2064 | { | ||
| 2065 | DXGI_FORMAT Format; | ||
| 2066 | UINT Width; | ||
| 2067 | UINT Height; | ||
| 2068 | UINT Depth; | ||
| 2069 | UINT RowPitch; // Must be a multiple of D3D12_TEXTURE_DATA_PITCH_ALIGNMENT | ||
| 2070 | } D3D12_SUBRESOURCE_FOOTPRINT; | ||
| 2071 | |||
| 2072 | typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT | ||
| 2073 | { | ||
| 2074 | UINT64 Offset; // Must be a multiple of D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT | ||
| 2075 | D3D12_SUBRESOURCE_FOOTPRINT Footprint; | ||
| 2076 | } D3D12_PLACED_SUBRESOURCE_FOOTPRINT; | ||
| 2077 | |||
| 2078 | typedef enum D3D12_TEXTURE_COPY_TYPE | ||
| 2079 | { | ||
| 2080 | D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0, | ||
| 2081 | D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1, | ||
| 2082 | } D3D12_TEXTURE_COPY_TYPE; | ||
| 2083 | |||
| 2084 | typedef struct D3D12_TEXTURE_COPY_LOCATION | ||
| 2085 | { | ||
| 2086 | ID3D12Resource* pResource; | ||
| 2087 | D3D12_TEXTURE_COPY_TYPE Type; | ||
| 2088 | union | ||
| 2089 | { | ||
| 2090 | D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint; | ||
| 2091 | UINT SubresourceIndex; | ||
| 2092 | }; | ||
| 2093 | } D3D12_TEXTURE_COPY_LOCATION; | ||
| 2094 | |||
| 2095 | typedef enum D3D12_RESOLVE_MODE | ||
| 2096 | { | ||
| 2097 | D3D12_RESOLVE_MODE_DECOMPRESS = 0, | ||
| 2098 | D3D12_RESOLVE_MODE_MIN = 1, | ||
| 2099 | D3D12_RESOLVE_MODE_MAX = 2, | ||
| 2100 | D3D12_RESOLVE_MODE_AVERAGE = 3, | ||
| 2101 | D3D12_RESOLVE_MODE_ENCODE_SAMPLER_FEEDBACK = 4, | ||
| 2102 | D3D12_RESOLVE_MODE_DECODE_SAMPLER_FEEDBACK = 5 | ||
| 2103 | } D3D12_RESOLVE_MODE; | ||
| 2104 | |||
| 2105 | typedef struct D3D12_SAMPLE_POSITION | ||
| 2106 | { | ||
| 2107 | INT8 X; | ||
| 2108 | INT8 Y; | ||
| 2109 | } D3D12_SAMPLE_POSITION; | ||
| 2110 | |||
| 2111 | typedef struct D3D12_VIEW_INSTANCE_LOCATION | ||
| 2112 | { | ||
| 2113 | UINT ViewportArrayIndex; | ||
| 2114 | UINT RenderTargetArrayIndex; | ||
| 2115 | } D3D12_VIEW_INSTANCE_LOCATION; | ||
| 2116 | |||
| 2117 | typedef enum D3D12_VIEW_INSTANCING_FLAGS | ||
| 2118 | { | ||
| 2119 | D3D12_VIEW_INSTANCING_FLAG_NONE = 0x0, | ||
| 2120 | D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING = 0x1, | ||
| 2121 | } D3D12_VIEW_INSTANCING_FLAGS; | ||
| 2122 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIEW_INSTANCING_FLAGS )") | ||
| 2123 | |||
| 2124 | typedef struct D3D12_VIEW_INSTANCING_DESC | ||
| 2125 | { | ||
| 2126 | UINT ViewInstanceCount; | ||
| 2127 | [annotation("_Field_size_full_(ViewInstanceCount)")] const D3D12_VIEW_INSTANCE_LOCATION* pViewInstanceLocations; | ||
| 2128 | D3D12_VIEW_INSTANCING_FLAGS Flags; | ||
| 2129 | } D3D12_VIEW_INSTANCING_DESC; | ||
| 2130 | |||
| 2131 | // D3D12 view descriptions | ||
| 2132 | typedef enum D3D12_SHADER_COMPONENT_MAPPING | ||
| 2133 | { | ||
| 2134 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0, | ||
| 2135 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1, | ||
| 2136 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2, | ||
| 2137 | D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3, | ||
| 2138 | D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4, | ||
| 2139 | D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5, | ||
| 2140 | } D3D12_SHADER_COMPONENT_MAPPING; | ||
| 2141 | |||
| 2142 | cpp_quote( "#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7 ") | ||
| 2143 | cpp_quote( "#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3 ") | ||
| 2144 | cpp_quote( "#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4)) ") | ||
| 2145 | cpp_quote( "#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \\") | ||
| 2146 | cpp_quote( " (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \\") | ||
| 2147 | cpp_quote( " (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \\") | ||
| 2148 | cpp_quote( " (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \\") | ||
| 2149 | cpp_quote( " D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))") | ||
| 2150 | cpp_quote( "#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) ((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK))") | ||
| 2151 | cpp_quote( "#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3) ") | ||
| 2152 | typedef enum D3D12_BUFFER_SRV_FLAGS | ||
| 2153 | { | ||
| 2154 | D3D12_BUFFER_SRV_FLAG_NONE = 0, | ||
| 2155 | D3D12_BUFFER_SRV_FLAG_RAW = 0x00000001, // allow device multi-component reads with DWORD addressing | ||
| 2156 | } D3D12_BUFFER_SRV_FLAGS; | ||
| 2157 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_SRV_FLAGS )" ) | ||
| 2158 | |||
| 2159 | typedef struct D3D12_BUFFER_SRV | ||
| 2160 | { | ||
| 2161 | UINT64 FirstElement; | ||
| 2162 | UINT NumElements; | ||
| 2163 | UINT StructureByteStride; // if nonzero, format must be DXGI_FORMAT_UNKNOWN | ||
| 2164 | D3D12_BUFFER_SRV_FLAGS Flags; | ||
| 2165 | } D3D12_BUFFER_SRV; | ||
| 2166 | |||
| 2167 | typedef struct D3D12_TEX1D_SRV | ||
| 2168 | { | ||
| 2169 | UINT MostDetailedMip; | ||
| 2170 | UINT MipLevels; | ||
| 2171 | FLOAT ResourceMinLODClamp; | ||
| 2172 | } D3D12_TEX1D_SRV; | ||
| 2173 | |||
| 2174 | typedef struct D3D12_TEX1D_ARRAY_SRV | ||
| 2175 | { | ||
| 2176 | UINT MostDetailedMip; | ||
| 2177 | UINT MipLevels; | ||
| 2178 | UINT FirstArraySlice; | ||
| 2179 | UINT ArraySize; | ||
| 2180 | FLOAT ResourceMinLODClamp; | ||
| 2181 | } D3D12_TEX1D_ARRAY_SRV; | ||
| 2182 | |||
| 2183 | typedef struct D3D12_TEX2D_SRV | ||
| 2184 | { | ||
| 2185 | UINT MostDetailedMip; | ||
| 2186 | UINT MipLevels; | ||
| 2187 | UINT PlaneSlice; | ||
| 2188 | FLOAT ResourceMinLODClamp; | ||
| 2189 | } D3D12_TEX2D_SRV; | ||
| 2190 | |||
| 2191 | typedef struct D3D12_TEX2D_ARRAY_SRV | ||
| 2192 | { | ||
| 2193 | UINT MostDetailedMip; | ||
| 2194 | UINT MipLevels; | ||
| 2195 | UINT FirstArraySlice; | ||
| 2196 | UINT ArraySize; | ||
| 2197 | UINT PlaneSlice; | ||
| 2198 | FLOAT ResourceMinLODClamp; | ||
| 2199 | } D3D12_TEX2D_ARRAY_SRV; | ||
| 2200 | |||
| 2201 | typedef struct D3D12_TEX3D_SRV | ||
| 2202 | { | ||
| 2203 | UINT MostDetailedMip; | ||
| 2204 | UINT MipLevels; | ||
| 2205 | FLOAT ResourceMinLODClamp; | ||
| 2206 | } D3D12_TEX3D_SRV; | ||
| 2207 | |||
| 2208 | typedef struct D3D12_TEXCUBE_SRV | ||
| 2209 | { | ||
| 2210 | UINT MostDetailedMip; | ||
| 2211 | UINT MipLevels; | ||
| 2212 | FLOAT ResourceMinLODClamp; | ||
| 2213 | } D3D12_TEXCUBE_SRV; | ||
| 2214 | |||
| 2215 | typedef struct D3D12_TEXCUBE_ARRAY_SRV | ||
| 2216 | { | ||
| 2217 | UINT MostDetailedMip; | ||
| 2218 | UINT MipLevels; | ||
| 2219 | UINT First2DArrayFace; | ||
| 2220 | UINT NumCubes; | ||
| 2221 | FLOAT ResourceMinLODClamp; | ||
| 2222 | } D3D12_TEXCUBE_ARRAY_SRV; | ||
| 2223 | |||
| 2224 | typedef struct D3D12_TEX2DMS_SRV | ||
| 2225 | { | ||
| 2226 | // don't need to define anything specific for this view dimension | ||
| 2227 | UINT UnusedField_NothingToDefine; | ||
| 2228 | } D3D12_TEX2DMS_SRV; | ||
| 2229 | |||
| 2230 | typedef struct D3D12_TEX2DMS_ARRAY_SRV | ||
| 2231 | { | ||
| 2232 | UINT FirstArraySlice; | ||
| 2233 | UINT ArraySize; | ||
| 2234 | } D3D12_TEX2DMS_ARRAY_SRV; | ||
| 2235 | |||
| 2236 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV | ||
| 2237 | { | ||
| 2238 | D3D12_GPU_VIRTUAL_ADDRESS Location; | ||
| 2239 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV; | ||
| 2240 | |||
| 2241 | typedef enum D3D12_SRV_DIMENSION { | ||
| 2242 | D3D12_SRV_DIMENSION_UNKNOWN = 0, | ||
| 2243 | D3D12_SRV_DIMENSION_BUFFER = 1, | ||
| 2244 | D3D12_SRV_DIMENSION_TEXTURE1D = 2, | ||
| 2245 | D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3, | ||
| 2246 | D3D12_SRV_DIMENSION_TEXTURE2D = 4, | ||
| 2247 | D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5, | ||
| 2248 | D3D12_SRV_DIMENSION_TEXTURE2DMS = 6, | ||
| 2249 | D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, | ||
| 2250 | D3D12_SRV_DIMENSION_TEXTURE3D = 8, | ||
| 2251 | D3D12_SRV_DIMENSION_TEXTURECUBE = 9, | ||
| 2252 | D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10, | ||
| 2253 | D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE = 11, | ||
| 2254 | } D3D12_SRV_DIMENSION; | ||
| 2255 | |||
| 2256 | typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC | ||
| 2257 | { | ||
| 2258 | DXGI_FORMAT Format; | ||
| 2259 | D3D12_SRV_DIMENSION ViewDimension; | ||
| 2260 | UINT Shader4ComponentMapping; | ||
| 2261 | |||
| 2262 | union | ||
| 2263 | { | ||
| 2264 | D3D12_BUFFER_SRV Buffer; | ||
| 2265 | D3D12_TEX1D_SRV Texture1D; | ||
| 2266 | D3D12_TEX1D_ARRAY_SRV Texture1DArray; | ||
| 2267 | D3D12_TEX2D_SRV Texture2D; | ||
| 2268 | D3D12_TEX2D_ARRAY_SRV Texture2DArray; | ||
| 2269 | D3D12_TEX2DMS_SRV Texture2DMS; | ||
| 2270 | D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray; | ||
| 2271 | D3D12_TEX3D_SRV Texture3D; | ||
| 2272 | D3D12_TEXCUBE_SRV TextureCube; | ||
| 2273 | D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray; | ||
| 2274 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV RaytracingAccelerationStructure; | ||
| 2275 | }; | ||
| 2276 | } D3D12_SHADER_RESOURCE_VIEW_DESC; | ||
| 2277 | |||
| 2278 | typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC | ||
| 2279 | { | ||
| 2280 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; | ||
| 2281 | UINT SizeInBytes; | ||
| 2282 | } D3D12_CONSTANT_BUFFER_VIEW_DESC; | ||
| 2283 | |||
| 2284 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 2285 | // | ||
| 2286 | // Sampler | ||
| 2287 | // | ||
| 2288 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 2289 | typedef enum D3D12_FILTER | ||
| 2290 | { | ||
| 2291 | // Bits used in defining enumeration of valid filters: | ||
| 2292 | // bits [1:0] - mip: 0 == point, 1 == linear, 2,3 unused | ||
| 2293 | // bits [3:2] - mag: 0 == point, 1 == linear, 2,3 unused | ||
| 2294 | // bits [5:4] - min: 0 == point, 1 == linear, 2,3 unused | ||
| 2295 | // bit [6] - aniso | ||
| 2296 | // bits [8:7] - reduction type: | ||
| 2297 | // 0 == standard filtering | ||
| 2298 | // 1 == comparison | ||
| 2299 | // 2 == min | ||
| 2300 | // 3 == max | ||
| 2301 | // bit [31] - mono 1-bit (narrow-purpose filter) [no longer supported in D3D12] | ||
| 2302 | |||
| 2303 | D3D12_FILTER_MIN_MAG_MIP_POINT = 0x00000000, | ||
| 2304 | D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x00000001, | ||
| 2305 | D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000004, | ||
| 2306 | D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x00000005, | ||
| 2307 | D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x00000010, | ||
| 2308 | D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000011, | ||
| 2309 | D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x00000014, | ||
| 2310 | D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x00000015, | ||
| 2311 | D3D12_FILTER_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x00000054, | ||
| 2312 | D3D12_FILTER_ANISOTROPIC = 0x00000055, | ||
| 2313 | D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x00000080, | ||
| 2314 | D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x00000081, | ||
| 2315 | D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000084, | ||
| 2316 | D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x00000085, | ||
| 2317 | D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x00000090, | ||
| 2318 | D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000091, | ||
| 2319 | D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x00000094, | ||
| 2320 | D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x00000095, | ||
| 2321 | D3D12_FILTER_COMPARISON_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x000000d4, | ||
| 2322 | D3D12_FILTER_COMPARISON_ANISOTROPIC = 0x000000d5, | ||
| 2323 | D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x00000100, | ||
| 2324 | D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x00000101, | ||
| 2325 | D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000104, | ||
| 2326 | D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x00000105, | ||
| 2327 | D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x00000110, | ||
| 2328 | D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000111, | ||
| 2329 | D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x00000114, | ||
| 2330 | D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x00000115, | ||
| 2331 | D3D12_FILTER_MINIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x00000154, | ||
| 2332 | D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x00000155, | ||
| 2333 | D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x00000180, | ||
| 2334 | D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x00000181, | ||
| 2335 | D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x00000184, | ||
| 2336 | D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x00000185, | ||
| 2337 | D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x00000190, | ||
| 2338 | D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x00000191, | ||
| 2339 | D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x00000194, | ||
| 2340 | D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x00000195, | ||
| 2341 | D3D12_FILTER_MAXIMUM_MIN_MAG_ANISOTROPIC_MIP_POINT = 0x000001d4, | ||
| 2342 | D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x000001d5 | ||
| 2343 | } D3D12_FILTER; | ||
| 2344 | |||
| 2345 | typedef enum D3D12_FILTER_TYPE | ||
| 2346 | { | ||
| 2347 | D3D12_FILTER_TYPE_POINT = 0, | ||
| 2348 | D3D12_FILTER_TYPE_LINEAR = 1, | ||
| 2349 | } D3D12_FILTER_TYPE; | ||
| 2350 | |||
| 2351 | typedef enum D3D12_FILTER_REDUCTION_TYPE | ||
| 2352 | { | ||
| 2353 | D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0, | ||
| 2354 | D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1, | ||
| 2355 | D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2, | ||
| 2356 | D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3, | ||
| 2357 | } D3D12_FILTER_REDUCTION_TYPE; | ||
| 2358 | |||
| 2359 | const UINT D3D12_FILTER_REDUCTION_TYPE_MASK = 0x00000003; | ||
| 2360 | const UINT D3D12_FILTER_REDUCTION_TYPE_SHIFT = 7; | ||
| 2361 | |||
| 2362 | const UINT D3D12_FILTER_TYPE_MASK = 0x00000003; | ||
| 2363 | const UINT D3D12_MIN_FILTER_SHIFT = 4; | ||
| 2364 | const UINT D3D12_MAG_FILTER_SHIFT = 2; | ||
| 2365 | const UINT D3D12_MIP_FILTER_SHIFT = 0; | ||
| 2366 | |||
| 2367 | const UINT D3D12_ANISOTROPIC_FILTERING_BIT = 0x00000040; | ||
| 2368 | |||
| 2369 | // encode enum entry for most filters except anisotropic filtering | ||
| 2370 | cpp_quote( "#define D3D12_ENCODE_BASIC_FILTER( min, mag, mip, reduction ) \\" ) | ||
| 2371 | cpp_quote( " ( ( D3D12_FILTER ) ( \\" ) | ||
| 2372 | cpp_quote( " ( ( ( min ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIN_FILTER_SHIFT ) | \\" ) | ||
| 2373 | cpp_quote( " ( ( ( mag ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MAG_FILTER_SHIFT ) | \\" ) | ||
| 2374 | cpp_quote( " ( ( ( mip ) & D3D12_FILTER_TYPE_MASK ) << D3D12_MIP_FILTER_SHIFT ) | \\" ) | ||
| 2375 | cpp_quote( " ( ( ( reduction ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) << D3D12_FILTER_REDUCTION_TYPE_SHIFT ) ) ) " ) | ||
| 2376 | |||
| 2377 | // encode enum entry for anisotropic filtering (with or without comparison filtering) | ||
| 2378 | cpp_quote( "#define D3D12_ENCODE_ANISOTROPIC_FILTER( reduction ) \\" ) | ||
| 2379 | cpp_quote( " ( ( D3D12_FILTER ) ( \\" ) | ||
| 2380 | cpp_quote( " D3D12_ANISOTROPIC_FILTERING_BIT | \\" ) | ||
| 2381 | cpp_quote( " D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \\" ) | ||
| 2382 | cpp_quote( " D3D12_FILTER_TYPE_LINEAR, \\" ) | ||
| 2383 | cpp_quote( " D3D12_FILTER_TYPE_LINEAR, \\" ) | ||
| 2384 | cpp_quote( " reduction ) ) ) " ) | ||
| 2385 | cpp_quote( "#define D3D12_ENCODE_MIN_MAG_ANISOTROPIC_MIP_POINT_FILTER( reduction ) \\" ) | ||
| 2386 | cpp_quote( " ( ( D3D12_FILTER ) ( \\" ) | ||
| 2387 | cpp_quote( " D3D12_ANISOTROPIC_FILTERING_BIT | \\" ) | ||
| 2388 | cpp_quote( " D3D12_ENCODE_BASIC_FILTER( D3D12_FILTER_TYPE_LINEAR, \\" ) | ||
| 2389 | cpp_quote( " D3D12_FILTER_TYPE_LINEAR, \\" ) | ||
| 2390 | cpp_quote( " D3D12_FILTER_TYPE_POINT, \\" ) | ||
| 2391 | cpp_quote( " reduction ) ) ) " ) | ||
| 2392 | |||
| 2393 | cpp_quote( "#define D3D12_DECODE_MIN_FILTER( D3D12Filter ) \\" ) | ||
| 2394 | cpp_quote( " ( ( D3D12_FILTER_TYPE ) \\" ) | ||
| 2395 | cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_MIN_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) " ) | ||
| 2396 | |||
| 2397 | cpp_quote( "#define D3D12_DECODE_MAG_FILTER( D3D12Filter ) \\" ) | ||
| 2398 | cpp_quote( " ( ( D3D12_FILTER_TYPE ) \\" ) | ||
| 2399 | cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_MAG_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) " ) | ||
| 2400 | |||
| 2401 | cpp_quote( "#define D3D12_DECODE_MIP_FILTER( D3D12Filter ) \\" ) | ||
| 2402 | cpp_quote( " ( ( D3D12_FILTER_TYPE ) \\" ) | ||
| 2403 | cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_MIP_FILTER_SHIFT ) & D3D12_FILTER_TYPE_MASK ) ) " ) | ||
| 2404 | |||
| 2405 | cpp_quote( "#define D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) \\" ) | ||
| 2406 | cpp_quote( " ( ( D3D12_FILTER_REDUCTION_TYPE ) \\" ) | ||
| 2407 | cpp_quote( " ( ( ( D3D12Filter ) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT ) & D3D12_FILTER_REDUCTION_TYPE_MASK ) ) " ) | ||
| 2408 | |||
| 2409 | cpp_quote( "#define D3D12_DECODE_IS_COMPARISON_FILTER( D3D12Filter ) \\" ) | ||
| 2410 | cpp_quote( " ( D3D12_DECODE_FILTER_REDUCTION( D3D12Filter ) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON ) " ) | ||
| 2411 | |||
| 2412 | cpp_quote( "#define D3D12_DECODE_IS_ANISOTROPIC_FILTER( D3D12Filter ) \\" ) | ||
| 2413 | cpp_quote( " ( ( ( D3D12Filter ) & D3D12_ANISOTROPIC_FILTERING_BIT ) && \\" ) | ||
| 2414 | cpp_quote( " ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MIN_FILTER( D3D12Filter ) ) && \\" ) | ||
| 2415 | cpp_quote( " ( D3D12_FILTER_TYPE_LINEAR == D3D12_DECODE_MAG_FILTER( D3D12Filter ) ) ) " ) | ||
| 2416 | |||
| 2417 | typedef enum D3D12_TEXTURE_ADDRESS_MODE | ||
| 2418 | { | ||
| 2419 | D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1, | ||
| 2420 | D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2, | ||
| 2421 | D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3, | ||
| 2422 | D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4, | ||
| 2423 | D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5 | ||
| 2424 | } D3D12_TEXTURE_ADDRESS_MODE; | ||
| 2425 | |||
| 2426 | |||
| 2427 | |||
| 2428 | typedef struct D3D12_SAMPLER_DESC | ||
| 2429 | { | ||
| 2430 | D3D12_FILTER Filter; | ||
| 2431 | D3D12_TEXTURE_ADDRESS_MODE AddressU; | ||
| 2432 | D3D12_TEXTURE_ADDRESS_MODE AddressV; | ||
| 2433 | D3D12_TEXTURE_ADDRESS_MODE AddressW; | ||
| 2434 | FLOAT MipLODBias; | ||
| 2435 | UINT MaxAnisotropy; | ||
| 2436 | D3D12_COMPARISON_FUNC ComparisonFunc; | ||
| 2437 | FLOAT BorderColor[4]; // RGBA | ||
| 2438 | FLOAT MinLOD; | ||
| 2439 | FLOAT MaxLOD; | ||
| 2440 | } D3D12_SAMPLER_DESC; | ||
| 2441 | |||
| 2442 | |||
| 2443 | typedef enum D3D12_SAMPLER_FLAGS | ||
| 2444 | { | ||
| 2445 | D3D12_SAMPLER_FLAG_NONE = 0x0, | ||
| 2446 | D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR = 0x01, | ||
| 2447 | D3D12_SAMPLER_FLAG_NON_NORMALIZED_COORDINATES = 0x02, | ||
| 2448 | } D3D12_SAMPLER_FLAGS; | ||
| 2449 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SAMPLER_FLAGS )") | ||
| 2450 | |||
| 2451 | typedef struct D3D12_SAMPLER_DESC2 | ||
| 2452 | { | ||
| 2453 | D3D12_FILTER Filter; | ||
| 2454 | D3D12_TEXTURE_ADDRESS_MODE AddressU; | ||
| 2455 | D3D12_TEXTURE_ADDRESS_MODE AddressV; | ||
| 2456 | D3D12_TEXTURE_ADDRESS_MODE AddressW; | ||
| 2457 | FLOAT MipLODBias; | ||
| 2458 | UINT MaxAnisotropy; | ||
| 2459 | D3D12_COMPARISON_FUNC ComparisonFunc; | ||
| 2460 | union | ||
| 2461 | { | ||
| 2462 | FLOAT FloatBorderColor[4]; // RGBA | ||
| 2463 | UINT UintBorderColor[4]; | ||
| 2464 | }; | ||
| 2465 | FLOAT MinLOD; | ||
| 2466 | FLOAT MaxLOD; | ||
| 2467 | D3D12_SAMPLER_FLAGS Flags; | ||
| 2468 | } D3D12_SAMPLER_DESC2; | ||
| 2469 | |||
| 2470 | |||
| 2471 | |||
| 2472 | typedef enum D3D12_BUFFER_UAV_FLAGS | ||
| 2473 | { | ||
| 2474 | D3D12_BUFFER_UAV_FLAG_NONE = 0, | ||
| 2475 | D3D12_BUFFER_UAV_FLAG_RAW = 0x00000001, | ||
| 2476 | } D3D12_BUFFER_UAV_FLAGS; | ||
| 2477 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BUFFER_UAV_FLAGS )" ) | ||
| 2478 | |||
| 2479 | typedef struct D3D12_BUFFER_UAV | ||
| 2480 | { | ||
| 2481 | UINT64 FirstElement; | ||
| 2482 | UINT NumElements; | ||
| 2483 | UINT StructureByteStride; // if nonzero, format must be DXGI_FORMAT_UNKNOWN | ||
| 2484 | UINT64 CounterOffsetInBytes; | ||
| 2485 | D3D12_BUFFER_UAV_FLAGS Flags; | ||
| 2486 | } D3D12_BUFFER_UAV; | ||
| 2487 | |||
| 2488 | typedef struct D3D12_TEX1D_UAV | ||
| 2489 | { | ||
| 2490 | UINT MipSlice; | ||
| 2491 | } D3D12_TEX1D_UAV; | ||
| 2492 | |||
| 2493 | typedef struct D3D12_TEX1D_ARRAY_UAV | ||
| 2494 | { | ||
| 2495 | UINT MipSlice; | ||
| 2496 | UINT FirstArraySlice; | ||
| 2497 | UINT ArraySize; | ||
| 2498 | } D3D12_TEX1D_ARRAY_UAV; | ||
| 2499 | |||
| 2500 | typedef struct D3D12_TEX2D_UAV | ||
| 2501 | { | ||
| 2502 | UINT MipSlice; | ||
| 2503 | UINT PlaneSlice; | ||
| 2504 | } D3D12_TEX2D_UAV; | ||
| 2505 | |||
| 2506 | typedef struct D3D12_TEX2D_ARRAY_UAV | ||
| 2507 | { | ||
| 2508 | UINT MipSlice; | ||
| 2509 | UINT FirstArraySlice; | ||
| 2510 | UINT ArraySize; | ||
| 2511 | UINT PlaneSlice; | ||
| 2512 | } D3D12_TEX2D_ARRAY_UAV; | ||
| 2513 | |||
| 2514 | typedef struct D3D12_TEX2DMS_UAV | ||
| 2515 | { | ||
| 2516 | // don't need to define anything specific for this view dimension | ||
| 2517 | UINT UnusedField_NothingToDefine; | ||
| 2518 | } D3D12_TEX2DMS_UAV; | ||
| 2519 | |||
| 2520 | typedef struct D3D12_TEX2DMS_ARRAY_UAV | ||
| 2521 | { | ||
| 2522 | UINT FirstArraySlice; | ||
| 2523 | UINT ArraySize; | ||
| 2524 | } D3D12_TEX2DMS_ARRAY_UAV; | ||
| 2525 | |||
| 2526 | typedef struct D3D12_TEX3D_UAV | ||
| 2527 | { | ||
| 2528 | UINT MipSlice; | ||
| 2529 | UINT FirstWSlice; | ||
| 2530 | UINT WSize; | ||
| 2531 | } D3D12_TEX3D_UAV; | ||
| 2532 | |||
| 2533 | typedef enum D3D12_UAV_DIMENSION | ||
| 2534 | { | ||
| 2535 | D3D12_UAV_DIMENSION_UNKNOWN = 0, | ||
| 2536 | D3D12_UAV_DIMENSION_BUFFER = 1, | ||
| 2537 | D3D12_UAV_DIMENSION_TEXTURE1D = 2, | ||
| 2538 | D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3, | ||
| 2539 | D3D12_UAV_DIMENSION_TEXTURE2D = 4, | ||
| 2540 | D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5, | ||
| 2541 | D3D12_UAV_DIMENSION_TEXTURE2DMS = 6, | ||
| 2542 | D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY = 7, | ||
| 2543 | D3D12_UAV_DIMENSION_TEXTURE3D = 8, | ||
| 2544 | } D3D12_UAV_DIMENSION; | ||
| 2545 | |||
| 2546 | typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC | ||
| 2547 | { | ||
| 2548 | DXGI_FORMAT Format; | ||
| 2549 | D3D12_UAV_DIMENSION ViewDimension; | ||
| 2550 | |||
| 2551 | union | ||
| 2552 | { | ||
| 2553 | D3D12_BUFFER_UAV Buffer; | ||
| 2554 | D3D12_TEX1D_UAV Texture1D; | ||
| 2555 | D3D12_TEX1D_ARRAY_UAV Texture1DArray; | ||
| 2556 | D3D12_TEX2D_UAV Texture2D; | ||
| 2557 | D3D12_TEX2D_ARRAY_UAV Texture2DArray; | ||
| 2558 | D3D12_TEX2DMS_UAV Texture2DMS; | ||
| 2559 | D3D12_TEX2DMS_ARRAY_UAV Texture2DMSArray; | ||
| 2560 | D3D12_TEX3D_UAV Texture3D; | ||
| 2561 | }; | ||
| 2562 | } D3D12_UNORDERED_ACCESS_VIEW_DESC; | ||
| 2563 | |||
| 2564 | typedef struct D3D12_BUFFER_RTV | ||
| 2565 | { | ||
| 2566 | UINT64 FirstElement; | ||
| 2567 | UINT NumElements; | ||
| 2568 | } D3D12_BUFFER_RTV; | ||
| 2569 | |||
| 2570 | typedef struct D3D12_TEX1D_RTV | ||
| 2571 | { | ||
| 2572 | UINT MipSlice; | ||
| 2573 | } D3D12_TEX1D_RTV; | ||
| 2574 | |||
| 2575 | typedef struct D3D12_TEX1D_ARRAY_RTV | ||
| 2576 | { | ||
| 2577 | UINT MipSlice; | ||
| 2578 | UINT FirstArraySlice; | ||
| 2579 | UINT ArraySize; | ||
| 2580 | } D3D12_TEX1D_ARRAY_RTV; | ||
| 2581 | |||
| 2582 | typedef struct D3D12_TEX2D_RTV | ||
| 2583 | { | ||
| 2584 | UINT MipSlice; | ||
| 2585 | UINT PlaneSlice; | ||
| 2586 | } D3D12_TEX2D_RTV; | ||
| 2587 | |||
| 2588 | typedef struct D3D12_TEX2DMS_RTV | ||
| 2589 | { | ||
| 2590 | UINT UnusedField_NothingToDefine; | ||
| 2591 | } D3D12_TEX2DMS_RTV; | ||
| 2592 | |||
| 2593 | typedef struct D3D12_TEX2D_ARRAY_RTV | ||
| 2594 | { | ||
| 2595 | UINT MipSlice; | ||
| 2596 | UINT FirstArraySlice; | ||
| 2597 | UINT ArraySize; | ||
| 2598 | UINT PlaneSlice; | ||
| 2599 | } D3D12_TEX2D_ARRAY_RTV; | ||
| 2600 | |||
| 2601 | typedef struct D3D12_TEX2DMS_ARRAY_RTV | ||
| 2602 | { | ||
| 2603 | UINT FirstArraySlice; | ||
| 2604 | UINT ArraySize; | ||
| 2605 | } D3D12_TEX2DMS_ARRAY_RTV; | ||
| 2606 | |||
| 2607 | typedef struct D3D12_TEX3D_RTV | ||
| 2608 | { | ||
| 2609 | UINT MipSlice; | ||
| 2610 | UINT FirstWSlice; | ||
| 2611 | UINT WSize; | ||
| 2612 | } D3D12_TEX3D_RTV; | ||
| 2613 | |||
| 2614 | typedef enum D3D12_RTV_DIMENSION | ||
| 2615 | { | ||
| 2616 | D3D12_RTV_DIMENSION_UNKNOWN = 0, | ||
| 2617 | D3D12_RTV_DIMENSION_BUFFER = 1, | ||
| 2618 | D3D12_RTV_DIMENSION_TEXTURE1D = 2, | ||
| 2619 | D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3, | ||
| 2620 | D3D12_RTV_DIMENSION_TEXTURE2D = 4, | ||
| 2621 | D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5, | ||
| 2622 | D3D12_RTV_DIMENSION_TEXTURE2DMS = 6, | ||
| 2623 | D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7, | ||
| 2624 | D3D12_RTV_DIMENSION_TEXTURE3D = 8, | ||
| 2625 | } D3D12_RTV_DIMENSION; | ||
| 2626 | |||
| 2627 | typedef struct D3D12_RENDER_TARGET_VIEW_DESC | ||
| 2628 | { | ||
| 2629 | DXGI_FORMAT Format; | ||
| 2630 | D3D12_RTV_DIMENSION ViewDimension; | ||
| 2631 | |||
| 2632 | union | ||
| 2633 | { | ||
| 2634 | D3D12_BUFFER_RTV Buffer; | ||
| 2635 | D3D12_TEX1D_RTV Texture1D; | ||
| 2636 | D3D12_TEX1D_ARRAY_RTV Texture1DArray; | ||
| 2637 | D3D12_TEX2D_RTV Texture2D; | ||
| 2638 | D3D12_TEX2D_ARRAY_RTV Texture2DArray; | ||
| 2639 | D3D12_TEX2DMS_RTV Texture2DMS; | ||
| 2640 | D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray; | ||
| 2641 | D3D12_TEX3D_RTV Texture3D; | ||
| 2642 | }; | ||
| 2643 | } D3D12_RENDER_TARGET_VIEW_DESC; | ||
| 2644 | |||
| 2645 | typedef struct D3D12_TEX1D_DSV | ||
| 2646 | { | ||
| 2647 | UINT MipSlice; | ||
| 2648 | } D3D12_TEX1D_DSV; | ||
| 2649 | |||
| 2650 | typedef struct D3D12_TEX1D_ARRAY_DSV | ||
| 2651 | { | ||
| 2652 | UINT MipSlice; | ||
| 2653 | UINT FirstArraySlice; | ||
| 2654 | UINT ArraySize; | ||
| 2655 | } D3D12_TEX1D_ARRAY_DSV; | ||
| 2656 | |||
| 2657 | typedef struct D3D12_TEX2D_DSV | ||
| 2658 | { | ||
| 2659 | UINT MipSlice; | ||
| 2660 | } D3D12_TEX2D_DSV; | ||
| 2661 | |||
| 2662 | typedef struct D3D12_TEX2D_ARRAY_DSV | ||
| 2663 | { | ||
| 2664 | UINT MipSlice; | ||
| 2665 | UINT FirstArraySlice; | ||
| 2666 | UINT ArraySize; | ||
| 2667 | } D3D12_TEX2D_ARRAY_DSV; | ||
| 2668 | |||
| 2669 | typedef struct D3D12_TEX2DMS_DSV | ||
| 2670 | { | ||
| 2671 | UINT UnusedField_NothingToDefine; | ||
| 2672 | } D3D12_TEX2DMS_DSV; | ||
| 2673 | |||
| 2674 | typedef struct D3D12_TEX2DMS_ARRAY_DSV | ||
| 2675 | { | ||
| 2676 | UINT FirstArraySlice; | ||
| 2677 | UINT ArraySize; | ||
| 2678 | } D3D12_TEX2DMS_ARRAY_DSV; | ||
| 2679 | |||
| 2680 | typedef enum D3D12_DSV_FLAGS | ||
| 2681 | { | ||
| 2682 | D3D12_DSV_FLAG_NONE = 0x0, | ||
| 2683 | D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1, | ||
| 2684 | D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2, | ||
| 2685 | } D3D12_DSV_FLAGS; | ||
| 2686 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_DSV_FLAGS )" ) | ||
| 2687 | |||
| 2688 | typedef enum D3D12_DSV_DIMENSION | ||
| 2689 | { | ||
| 2690 | D3D12_DSV_DIMENSION_UNKNOWN = 0, | ||
| 2691 | D3D12_DSV_DIMENSION_TEXTURE1D = 1, | ||
| 2692 | D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2, | ||
| 2693 | D3D12_DSV_DIMENSION_TEXTURE2D = 3, | ||
| 2694 | D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4, | ||
| 2695 | D3D12_DSV_DIMENSION_TEXTURE2DMS = 5, | ||
| 2696 | D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6, | ||
| 2697 | } D3D12_DSV_DIMENSION; | ||
| 2698 | |||
| 2699 | typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC | ||
| 2700 | { | ||
| 2701 | DXGI_FORMAT Format; | ||
| 2702 | D3D12_DSV_DIMENSION ViewDimension; | ||
| 2703 | D3D12_DSV_FLAGS Flags; | ||
| 2704 | |||
| 2705 | union | ||
| 2706 | { | ||
| 2707 | D3D12_TEX1D_DSV Texture1D; | ||
| 2708 | D3D12_TEX1D_ARRAY_DSV Texture1DArray; | ||
| 2709 | D3D12_TEX2D_DSV Texture2D; | ||
| 2710 | D3D12_TEX2D_ARRAY_DSV Texture2DArray; | ||
| 2711 | D3D12_TEX2DMS_DSV Texture2DMS; | ||
| 2712 | D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray; | ||
| 2713 | }; | ||
| 2714 | } D3D12_DEPTH_STENCIL_VIEW_DESC; | ||
| 2715 | |||
| 2716 | typedef enum D3D12_CLEAR_FLAGS | ||
| 2717 | { | ||
| 2718 | // Intentionally no flag for NONE | ||
| 2719 | D3D12_CLEAR_FLAG_DEPTH = 0x01, | ||
| 2720 | D3D12_CLEAR_FLAG_STENCIL = 0x02, | ||
| 2721 | } D3D12_CLEAR_FLAGS; | ||
| 2722 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_CLEAR_FLAGS )" ) | ||
| 2723 | |||
| 2724 | typedef enum D3D12_FENCE_FLAGS | ||
| 2725 | { | ||
| 2726 | D3D12_FENCE_FLAG_NONE = 0x0, | ||
| 2727 | D3D12_FENCE_FLAG_SHARED = 0x1, | ||
| 2728 | D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2, | ||
| 2729 | D3D12_FENCE_FLAG_NON_MONITORED = 0x4, | ||
| 2730 | } D3D12_FENCE_FLAGS; | ||
| 2731 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_FENCE_FLAGS )" ) | ||
| 2732 | |||
| 2733 | typedef enum D3D12_DESCRIPTOR_HEAP_TYPE | ||
| 2734 | { | ||
| 2735 | D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV, | ||
| 2736 | D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER, | ||
| 2737 | D3D12_DESCRIPTOR_HEAP_TYPE_RTV, | ||
| 2738 | D3D12_DESCRIPTOR_HEAP_TYPE_DSV, | ||
| 2739 | D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES | ||
| 2740 | } D3D12_DESCRIPTOR_HEAP_TYPE; | ||
| 2741 | |||
| 2742 | typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS | ||
| 2743 | { | ||
| 2744 | D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0, | ||
| 2745 | D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1, | ||
| 2746 | } D3D12_DESCRIPTOR_HEAP_FLAGS; | ||
| 2747 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_HEAP_FLAGS )" ) | ||
| 2748 | |||
| 2749 | typedef struct D3D12_DESCRIPTOR_HEAP_DESC | ||
| 2750 | { | ||
| 2751 | D3D12_DESCRIPTOR_HEAP_TYPE Type; | ||
| 2752 | UINT NumDescriptors; | ||
| 2753 | D3D12_DESCRIPTOR_HEAP_FLAGS Flags; | ||
| 2754 | UINT NodeMask; | ||
| 2755 | } D3D12_DESCRIPTOR_HEAP_DESC; | ||
| 2756 | |||
| 2757 | typedef enum D3D12_DESCRIPTOR_RANGE_TYPE | ||
| 2758 | { | ||
| 2759 | D3D12_DESCRIPTOR_RANGE_TYPE_SRV, | ||
| 2760 | D3D12_DESCRIPTOR_RANGE_TYPE_UAV, | ||
| 2761 | D3D12_DESCRIPTOR_RANGE_TYPE_CBV, | ||
| 2762 | D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER | ||
| 2763 | } D3D12_DESCRIPTOR_RANGE_TYPE; | ||
| 2764 | |||
| 2765 | typedef struct D3D12_DESCRIPTOR_RANGE | ||
| 2766 | { | ||
| 2767 | D3D12_DESCRIPTOR_RANGE_TYPE RangeType; | ||
| 2768 | UINT NumDescriptors; | ||
| 2769 | UINT BaseShaderRegister; | ||
| 2770 | UINT RegisterSpace; | ||
| 2771 | UINT OffsetInDescriptorsFromTableStart; | ||
| 2772 | } D3D12_DESCRIPTOR_RANGE; | ||
| 2773 | |||
| 2774 | |||
| 2775 | typedef struct D3D12_ROOT_DESCRIPTOR_TABLE | ||
| 2776 | { | ||
| 2777 | UINT NumDescriptorRanges; | ||
| 2778 | [annotation("_Field_size_full_(NumDescriptorRanges)")] const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges; | ||
| 2779 | } D3D12_ROOT_DESCRIPTOR_TABLE; | ||
| 2780 | |||
| 2781 | |||
| 2782 | typedef struct D3D12_ROOT_CONSTANTS | ||
| 2783 | { | ||
| 2784 | UINT ShaderRegister; | ||
| 2785 | UINT RegisterSpace; | ||
| 2786 | UINT Num32BitValues; | ||
| 2787 | } D3D12_ROOT_CONSTANTS; | ||
| 2788 | |||
| 2789 | typedef struct D3D12_ROOT_DESCRIPTOR | ||
| 2790 | { | ||
| 2791 | UINT ShaderRegister; | ||
| 2792 | UINT RegisterSpace; | ||
| 2793 | } D3D12_ROOT_DESCRIPTOR; | ||
| 2794 | |||
| 2795 | typedef enum D3D12_SHADER_VISIBILITY | ||
| 2796 | { | ||
| 2797 | D3D12_SHADER_VISIBILITY_ALL = 0, | ||
| 2798 | D3D12_SHADER_VISIBILITY_VERTEX = 1, | ||
| 2799 | D3D12_SHADER_VISIBILITY_HULL = 2, | ||
| 2800 | D3D12_SHADER_VISIBILITY_DOMAIN = 3, | ||
| 2801 | D3D12_SHADER_VISIBILITY_GEOMETRY = 4, | ||
| 2802 | D3D12_SHADER_VISIBILITY_PIXEL = 5, | ||
| 2803 | D3D12_SHADER_VISIBILITY_AMPLIFICATION = 6, | ||
| 2804 | D3D12_SHADER_VISIBILITY_MESH = 7, | ||
| 2805 | } D3D12_SHADER_VISIBILITY; | ||
| 2806 | |||
| 2807 | typedef enum D3D12_ROOT_PARAMETER_TYPE | ||
| 2808 | { | ||
| 2809 | D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE, | ||
| 2810 | D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS, | ||
| 2811 | D3D12_ROOT_PARAMETER_TYPE_CBV, | ||
| 2812 | D3D12_ROOT_PARAMETER_TYPE_SRV, | ||
| 2813 | D3D12_ROOT_PARAMETER_TYPE_UAV | ||
| 2814 | } D3D12_ROOT_PARAMETER_TYPE; | ||
| 2815 | |||
| 2816 | typedef struct D3D12_ROOT_PARAMETER | ||
| 2817 | { | ||
| 2818 | D3D12_ROOT_PARAMETER_TYPE ParameterType; | ||
| 2819 | union | ||
| 2820 | { | ||
| 2821 | D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable; | ||
| 2822 | D3D12_ROOT_CONSTANTS Constants; | ||
| 2823 | D3D12_ROOT_DESCRIPTOR Descriptor; | ||
| 2824 | }; | ||
| 2825 | D3D12_SHADER_VISIBILITY ShaderVisibility; | ||
| 2826 | } D3D12_ROOT_PARAMETER; | ||
| 2827 | |||
| 2828 | typedef enum D3D12_ROOT_SIGNATURE_FLAGS | ||
| 2829 | { | ||
| 2830 | D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x0, | ||
| 2831 | D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1, | ||
| 2832 | D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2, | ||
| 2833 | D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4, | ||
| 2834 | D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8, | ||
| 2835 | D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10, | ||
| 2836 | D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20, | ||
| 2837 | D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40, | ||
| 2838 | D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80, | ||
| 2839 | D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100, | ||
| 2840 | D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200, | ||
| 2841 | D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400, | ||
| 2842 | D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800, | ||
| 2843 | } D3D12_ROOT_SIGNATURE_FLAGS; | ||
| 2844 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_SIGNATURE_FLAGS )" ) | ||
| 2845 | |||
| 2846 | |||
| 2847 | typedef enum D3D12_STATIC_BORDER_COLOR | ||
| 2848 | { | ||
| 2849 | D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK, // 0.0f,0.0f,0.0f,0.0f | ||
| 2850 | D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK, // 0.0f,0.0f,0.0f,1.0f | ||
| 2851 | D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, // 1.0f,1.0f,1.0f,1.0f | ||
| 2852 | D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT, // 0,0,0,1 | ||
| 2853 | D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT, // 1,1,1,1 | ||
| 2854 | |||
| 2855 | } D3D12_STATIC_BORDER_COLOR; | ||
| 2856 | |||
| 2857 | typedef struct D3D12_STATIC_SAMPLER_DESC | ||
| 2858 | { | ||
| 2859 | D3D12_FILTER Filter; | ||
| 2860 | D3D12_TEXTURE_ADDRESS_MODE AddressU; | ||
| 2861 | D3D12_TEXTURE_ADDRESS_MODE AddressV; | ||
| 2862 | D3D12_TEXTURE_ADDRESS_MODE AddressW; | ||
| 2863 | FLOAT MipLODBias; | ||
| 2864 | UINT MaxAnisotropy; | ||
| 2865 | D3D12_COMPARISON_FUNC ComparisonFunc; | ||
| 2866 | D3D12_STATIC_BORDER_COLOR BorderColor; | ||
| 2867 | FLOAT MinLOD; | ||
| 2868 | FLOAT MaxLOD; | ||
| 2869 | UINT ShaderRegister; | ||
| 2870 | UINT RegisterSpace; | ||
| 2871 | D3D12_SHADER_VISIBILITY ShaderVisibility; | ||
| 2872 | } D3D12_STATIC_SAMPLER_DESC; | ||
| 2873 | |||
| 2874 | typedef struct D3D12_STATIC_SAMPLER_DESC1 | ||
| 2875 | { | ||
| 2876 | D3D12_FILTER Filter; | ||
| 2877 | D3D12_TEXTURE_ADDRESS_MODE AddressU; | ||
| 2878 | D3D12_TEXTURE_ADDRESS_MODE AddressV; | ||
| 2879 | D3D12_TEXTURE_ADDRESS_MODE AddressW; | ||
| 2880 | FLOAT MipLODBias; | ||
| 2881 | UINT MaxAnisotropy; | ||
| 2882 | D3D12_COMPARISON_FUNC ComparisonFunc; | ||
| 2883 | D3D12_STATIC_BORDER_COLOR BorderColor; | ||
| 2884 | FLOAT MinLOD; | ||
| 2885 | FLOAT MaxLOD; | ||
| 2886 | UINT ShaderRegister; | ||
| 2887 | UINT RegisterSpace; | ||
| 2888 | D3D12_SHADER_VISIBILITY ShaderVisibility; | ||
| 2889 | D3D12_SAMPLER_FLAGS Flags; | ||
| 2890 | } D3D12_STATIC_SAMPLER_DESC1; | ||
| 2891 | |||
| 2892 | typedef struct D3D12_ROOT_SIGNATURE_DESC | ||
| 2893 | { | ||
| 2894 | UINT NumParameters; | ||
| 2895 | [annotation("_Field_size_full_(NumParameters)")] const D3D12_ROOT_PARAMETER* pParameters; | ||
| 2896 | UINT NumStaticSamplers; | ||
| 2897 | [annotation("_Field_size_full_(NumStaticSamplers)")] const D3D12_STATIC_SAMPLER_DESC* pStaticSamplers; | ||
| 2898 | D3D12_ROOT_SIGNATURE_FLAGS Flags; | ||
| 2899 | } D3D12_ROOT_SIGNATURE_DESC; | ||
| 2900 | |||
| 2901 | typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS | ||
| 2902 | { | ||
| 2903 | D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0, | ||
| 2904 | D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1, | ||
| 2905 | D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2, | ||
| 2906 | D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, | ||
| 2907 | D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8, | ||
| 2908 | D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000, | ||
| 2909 | } D3D12_DESCRIPTOR_RANGE_FLAGS; | ||
| 2910 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DESCRIPTOR_RANGE_FLAGS )") | ||
| 2911 | |||
| 2912 | typedef struct D3D12_DESCRIPTOR_RANGE1 | ||
| 2913 | { | ||
| 2914 | D3D12_DESCRIPTOR_RANGE_TYPE RangeType; | ||
| 2915 | UINT NumDescriptors; | ||
| 2916 | UINT BaseShaderRegister; | ||
| 2917 | UINT RegisterSpace; | ||
| 2918 | D3D12_DESCRIPTOR_RANGE_FLAGS Flags; | ||
| 2919 | UINT OffsetInDescriptorsFromTableStart; | ||
| 2920 | } D3D12_DESCRIPTOR_RANGE1; | ||
| 2921 | |||
| 2922 | typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1 | ||
| 2923 | { | ||
| 2924 | UINT NumDescriptorRanges; | ||
| 2925 | [annotation("_Field_size_full_(NumDescriptorRanges)")] const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges; | ||
| 2926 | } D3D12_ROOT_DESCRIPTOR_TABLE1; | ||
| 2927 | |||
| 2928 | typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS | ||
| 2929 | { | ||
| 2930 | D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0, | ||
| 2931 | D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2, | ||
| 2932 | D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4, | ||
| 2933 | D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8, | ||
| 2934 | } D3D12_ROOT_DESCRIPTOR_FLAGS; | ||
| 2935 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_ROOT_DESCRIPTOR_FLAGS )") | ||
| 2936 | |||
| 2937 | typedef struct D3D12_ROOT_DESCRIPTOR1 | ||
| 2938 | { | ||
| 2939 | UINT ShaderRegister; | ||
| 2940 | UINT RegisterSpace; | ||
| 2941 | D3D12_ROOT_DESCRIPTOR_FLAGS Flags; | ||
| 2942 | } D3D12_ROOT_DESCRIPTOR1; | ||
| 2943 | |||
| 2944 | typedef struct D3D12_ROOT_PARAMETER1 | ||
| 2945 | { | ||
| 2946 | D3D12_ROOT_PARAMETER_TYPE ParameterType; | ||
| 2947 | union | ||
| 2948 | { | ||
| 2949 | D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable; | ||
| 2950 | D3D12_ROOT_CONSTANTS Constants; | ||
| 2951 | D3D12_ROOT_DESCRIPTOR1 Descriptor; | ||
| 2952 | }; | ||
| 2953 | D3D12_SHADER_VISIBILITY ShaderVisibility; | ||
| 2954 | } D3D12_ROOT_PARAMETER1; | ||
| 2955 | |||
| 2956 | typedef struct D3D12_ROOT_SIGNATURE_DESC1 | ||
| 2957 | { | ||
| 2958 | UINT NumParameters; | ||
| 2959 | [annotation("_Field_size_full_(NumParameters)")] const D3D12_ROOT_PARAMETER1* pParameters; | ||
| 2960 | UINT NumStaticSamplers; | ||
| 2961 | [annotation("_Field_size_full_(NumStaticSamplers)")] const D3D12_STATIC_SAMPLER_DESC* pStaticSamplers; | ||
| 2962 | D3D12_ROOT_SIGNATURE_FLAGS Flags; | ||
| 2963 | } D3D12_ROOT_SIGNATURE_DESC1; | ||
| 2964 | |||
| 2965 | typedef struct D3D12_ROOT_SIGNATURE_DESC2 | ||
| 2966 | { | ||
| 2967 | UINT NumParameters; | ||
| 2968 | [annotation("_Field_size_full_(NumParameters)")] const D3D12_ROOT_PARAMETER1* pParameters; | ||
| 2969 | UINT NumStaticSamplers; | ||
| 2970 | [annotation("_Field_size_full_(NumStaticSamplers)")] const D3D12_STATIC_SAMPLER_DESC1* pStaticSamplers; | ||
| 2971 | D3D12_ROOT_SIGNATURE_FLAGS Flags; | ||
| 2972 | } D3D12_ROOT_SIGNATURE_DESC2; | ||
| 2973 | |||
| 2974 | |||
| 2975 | typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC | ||
| 2976 | { | ||
| 2977 | D3D_ROOT_SIGNATURE_VERSION Version; | ||
| 2978 | union | ||
| 2979 | { | ||
| 2980 | D3D12_ROOT_SIGNATURE_DESC Desc_1_0; | ||
| 2981 | D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1; | ||
| 2982 | D3D12_ROOT_SIGNATURE_DESC2 Desc_1_2; | ||
| 2983 | }; | ||
| 2984 | } D3D12_VERSIONED_ROOT_SIGNATURE_DESC; | ||
| 2985 | |||
| 2986 | [ uuid( 34AB647B-3CC8-46AC-841B-C0965645C046 ), object, local, pointer_default( unique ) ] | ||
| 2987 | interface ID3D12RootSignatureDeserializer | ||
| 2988 | : IUnknown | ||
| 2989 | { | ||
| 2990 | const D3D12_ROOT_SIGNATURE_DESC * GetRootSignatureDesc(); | ||
| 2991 | }; | ||
| 2992 | |||
| 2993 | [ uuid( 7F91CE67-090C-4BB7-B78E-ED8FF2E31DA0 ), object, local, pointer_default( unique ) ] | ||
| 2994 | interface ID3D12VersionedRootSignatureDeserializer | ||
| 2995 | : IUnknown | ||
| 2996 | { | ||
| 2997 | HRESULT GetRootSignatureDescAtVersion(D3D_ROOT_SIGNATURE_VERSION convertToVersion, [annotation("_Out_")] const D3D12_VERSIONED_ROOT_SIGNATURE_DESC** ppDesc); | ||
| 2998 | const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* GetUnconvertedRootSignatureDesc(); | ||
| 2999 | }; | ||
| 3000 | |||
| 3001 | cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(") | ||
| 3002 | cpp_quote( " _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature," ) | ||
| 3003 | cpp_quote( " _In_ D3D_ROOT_SIGNATURE_VERSION Version," ) | ||
| 3004 | cpp_quote( " _Out_ ID3DBlob** ppBlob," ) | ||
| 3005 | cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" ) | ||
| 3006 | cpp_quote( "" ) | ||
| 3007 | cpp_quote( "HRESULT WINAPI D3D12SerializeRootSignature(") | ||
| 3008 | cpp_quote( " _In_ const D3D12_ROOT_SIGNATURE_DESC* pRootSignature," ) | ||
| 3009 | cpp_quote( " _In_ D3D_ROOT_SIGNATURE_VERSION Version," ) | ||
| 3010 | cpp_quote( " _Out_ ID3DBlob** ppBlob," ) | ||
| 3011 | cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" ) | ||
| 3012 | cpp_quote( "" ) | ||
| 3013 | cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_CREATE_ROOT_SIGNATURE_DESERIALIZER)(") | ||
| 3014 | cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," ) | ||
| 3015 | cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," ) | ||
| 3016 | cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," ) | ||
| 3017 | cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" ) | ||
| 3018 | cpp_quote( "" ) | ||
| 3019 | cpp_quote( "HRESULT WINAPI D3D12CreateRootSignatureDeserializer(") | ||
| 3020 | cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," ) | ||
| 3021 | cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," ) | ||
| 3022 | cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," ) | ||
| 3023 | cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" ) | ||
| 3024 | cpp_quote( "" ) | ||
| 3025 | cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(" ) | ||
| 3026 | cpp_quote( " _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature," ) | ||
| 3027 | cpp_quote( " _Out_ ID3DBlob** ppBlob," ) | ||
| 3028 | cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" ) | ||
| 3029 | cpp_quote( "" ) | ||
| 3030 | cpp_quote( "HRESULT WINAPI D3D12SerializeVersionedRootSignature(" ) | ||
| 3031 | cpp_quote( " _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature," ) | ||
| 3032 | cpp_quote( " _Out_ ID3DBlob** ppBlob," ) | ||
| 3033 | cpp_quote( " _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);" ) | ||
| 3034 | cpp_quote( "" ) | ||
| 3035 | cpp_quote( "typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(" ) | ||
| 3036 | cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," ) | ||
| 3037 | cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," ) | ||
| 3038 | cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," ) | ||
| 3039 | cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" ) | ||
| 3040 | cpp_quote( "" ) | ||
| 3041 | cpp_quote( "HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(") | ||
| 3042 | cpp_quote( " _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData," ) | ||
| 3043 | cpp_quote( " _In_ SIZE_T SrcDataSizeInBytes," ) | ||
| 3044 | cpp_quote( " _In_ REFIID pRootSignatureDeserializerInterface," ) | ||
| 3045 | cpp_quote( " _Out_ void** ppRootSignatureDeserializer);" ) | ||
| 3046 | cpp_quote( "" ) | ||
| 3047 | cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER_FROM_SUBOBJECT_IN_LIBRARY)(") | ||
| 3048 | cpp_quote(" _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,") | ||
| 3049 | cpp_quote(" _In_ SIZE_T SrcDataSizeInBytes,") | ||
| 3050 | cpp_quote(" _In_ LPCWSTR RootSignatureSubobjectName,") | ||
| 3051 | cpp_quote(" _In_ REFIID pRootSignatureDeserializerInterface,") | ||
| 3052 | cpp_quote(" _Out_ void** ppRootSignatureDeserializer);") | ||
| 3053 | cpp_quote("") | ||
| 3054 | cpp_quote("HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary(") | ||
| 3055 | cpp_quote(" _In_reads_bytes_(SrcDataSizeInBytes) LPCVOID pSrcData,") | ||
| 3056 | cpp_quote(" _In_ SIZE_T SrcDataSizeInBytes,") | ||
| 3057 | cpp_quote(" _In_opt_ LPCWSTR RootSignatureSubobjectName,") | ||
| 3058 | cpp_quote(" _In_ REFIID pRootSignatureDeserializerInterface,") | ||
| 3059 | cpp_quote(" _Out_ void** ppRootSignatureDeserializer);") | ||
| 3060 | cpp_quote("") | ||
| 3061 | |||
| 3062 | typedef struct D3D12_CPU_DESCRIPTOR_HANDLE | ||
| 3063 | { | ||
| 3064 | SIZE_T ptr; | ||
| 3065 | } D3D12_CPU_DESCRIPTOR_HANDLE; | ||
| 3066 | |||
| 3067 | |||
| 3068 | typedef struct D3D12_GPU_DESCRIPTOR_HANDLE | ||
| 3069 | { | ||
| 3070 | UINT64 ptr; | ||
| 3071 | } D3D12_GPU_DESCRIPTOR_HANDLE; | ||
| 3072 | |||
| 3073 | cpp_quote( "// If rects are supplied in D3D12_DISCARD_REGION, below, the resource " ) | ||
| 3074 | cpp_quote( "// must have 2D subresources with all specified subresources the same dimension." ) | ||
| 3075 | typedef struct D3D12_DISCARD_REGION | ||
| 3076 | { | ||
| 3077 | UINT NumRects; | ||
| 3078 | [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects; | ||
| 3079 | UINT FirstSubresource; | ||
| 3080 | UINT NumSubresources; | ||
| 3081 | } D3D12_DISCARD_REGION; | ||
| 3082 | |||
| 3083 | typedef enum D3D12_QUERY_HEAP_TYPE | ||
| 3084 | { | ||
| 3085 | D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0, | ||
| 3086 | D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1, | ||
| 3087 | D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2, | ||
| 3088 | D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3, | ||
| 3089 | D3D12_QUERY_HEAP_TYPE_VIDEO_DECODE_STATISTICS = 4, | ||
| 3090 | D3D12_QUERY_HEAP_TYPE_COPY_QUEUE_TIMESTAMP = 5, | ||
| 3091 | D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS1 = 7, | ||
| 3092 | |||
| 3093 | } D3D12_QUERY_HEAP_TYPE; | ||
| 3094 | |||
| 3095 | typedef struct D3D12_QUERY_HEAP_DESC | ||
| 3096 | { | ||
| 3097 | D3D12_QUERY_HEAP_TYPE Type; | ||
| 3098 | UINT Count; | ||
| 3099 | UINT NodeMask; | ||
| 3100 | } D3D12_QUERY_HEAP_DESC; | ||
| 3101 | |||
| 3102 | typedef enum D3D12_QUERY_TYPE | ||
| 3103 | { | ||
| 3104 | D3D12_QUERY_TYPE_OCCLUSION = 0, | ||
| 3105 | D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1, | ||
| 3106 | D3D12_QUERY_TYPE_TIMESTAMP = 2, | ||
| 3107 | D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3, | ||
| 3108 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4, | ||
| 3109 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5, | ||
| 3110 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6, | ||
| 3111 | D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7, | ||
| 3112 | D3D12_QUERY_TYPE_VIDEO_DECODE_STATISTICS = 8, | ||
| 3113 | D3D12_QUERY_TYPE_PIPELINE_STATISTICS1 = 10, | ||
| 3114 | |||
| 3115 | } D3D12_QUERY_TYPE; | ||
| 3116 | |||
| 3117 | typedef enum D3D12_PREDICATION_OP | ||
| 3118 | { | ||
| 3119 | D3D12_PREDICATION_OP_EQUAL_ZERO = 0, | ||
| 3120 | D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1, | ||
| 3121 | } D3D12_PREDICATION_OP; | ||
| 3122 | |||
| 3123 | typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS | ||
| 3124 | { | ||
| 3125 | UINT64 IAVertices; | ||
| 3126 | UINT64 IAPrimitives; | ||
| 3127 | UINT64 VSInvocations; | ||
| 3128 | UINT64 GSInvocations; | ||
| 3129 | UINT64 GSPrimitives; | ||
| 3130 | UINT64 CInvocations; | ||
| 3131 | UINT64 CPrimitives; | ||
| 3132 | UINT64 PSInvocations; | ||
| 3133 | UINT64 HSInvocations; | ||
| 3134 | UINT64 DSInvocations; | ||
| 3135 | UINT64 CSInvocations; | ||
| 3136 | } D3D12_QUERY_DATA_PIPELINE_STATISTICS; | ||
| 3137 | |||
| 3138 | typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS1 | ||
| 3139 | { | ||
| 3140 | UINT64 IAVertices; | ||
| 3141 | UINT64 IAPrimitives; | ||
| 3142 | UINT64 VSInvocations; | ||
| 3143 | UINT64 GSInvocations; | ||
| 3144 | UINT64 GSPrimitives; | ||
| 3145 | UINT64 CInvocations; | ||
| 3146 | UINT64 CPrimitives; | ||
| 3147 | UINT64 PSInvocations; | ||
| 3148 | UINT64 HSInvocations; | ||
| 3149 | UINT64 DSInvocations; | ||
| 3150 | UINT64 CSInvocations; | ||
| 3151 | UINT64 ASInvocations; | ||
| 3152 | UINT64 MSInvocations; | ||
| 3153 | UINT64 MSPrimitives; | ||
| 3154 | } D3D12_QUERY_DATA_PIPELINE_STATISTICS1; | ||
| 3155 | |||
| 3156 | typedef struct D3D12_QUERY_DATA_SO_STATISTICS | ||
| 3157 | { | ||
| 3158 | UINT64 NumPrimitivesWritten; | ||
| 3159 | UINT64 PrimitivesStorageNeeded; | ||
| 3160 | } D3D12_QUERY_DATA_SO_STATISTICS; | ||
| 3161 | |||
| 3162 | typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW | ||
| 3163 | { | ||
| 3164 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; | ||
| 3165 | UINT64 SizeInBytes; | ||
| 3166 | D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation; | ||
| 3167 | } D3D12_STREAM_OUTPUT_BUFFER_VIEW; | ||
| 3168 | |||
| 3169 | typedef struct D3D12_DRAW_ARGUMENTS | ||
| 3170 | { | ||
| 3171 | UINT VertexCountPerInstance; | ||
| 3172 | UINT InstanceCount; | ||
| 3173 | UINT StartVertexLocation; | ||
| 3174 | UINT StartInstanceLocation; | ||
| 3175 | } D3D12_DRAW_ARGUMENTS; | ||
| 3176 | |||
| 3177 | typedef struct D3D12_DRAW_INDEXED_ARGUMENTS | ||
| 3178 | { | ||
| 3179 | UINT IndexCountPerInstance; | ||
| 3180 | UINT InstanceCount; | ||
| 3181 | UINT StartIndexLocation; | ||
| 3182 | INT BaseVertexLocation; | ||
| 3183 | UINT StartInstanceLocation; | ||
| 3184 | } D3D12_DRAW_INDEXED_ARGUMENTS; | ||
| 3185 | |||
| 3186 | typedef struct D3D12_DISPATCH_ARGUMENTS | ||
| 3187 | { | ||
| 3188 | UINT ThreadGroupCountX; | ||
| 3189 | UINT ThreadGroupCountY; | ||
| 3190 | UINT ThreadGroupCountZ; | ||
| 3191 | } D3D12_DISPATCH_ARGUMENTS; | ||
| 3192 | |||
| 3193 | typedef struct D3D12_VERTEX_BUFFER_VIEW | ||
| 3194 | { | ||
| 3195 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; | ||
| 3196 | UINT SizeInBytes; | ||
| 3197 | UINT StrideInBytes; | ||
| 3198 | } D3D12_VERTEX_BUFFER_VIEW; | ||
| 3199 | |||
| 3200 | typedef struct D3D12_INDEX_BUFFER_VIEW | ||
| 3201 | { | ||
| 3202 | D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; | ||
| 3203 | UINT SizeInBytes; | ||
| 3204 | DXGI_FORMAT Format; | ||
| 3205 | } D3D12_INDEX_BUFFER_VIEW; | ||
| 3206 | |||
| 3207 | typedef enum D3D12_INDIRECT_ARGUMENT_TYPE | ||
| 3208 | { | ||
| 3209 | D3D12_INDIRECT_ARGUMENT_TYPE_DRAW, | ||
| 3210 | D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED, | ||
| 3211 | D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH, | ||
| 3212 | D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW, | ||
| 3213 | D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW, | ||
| 3214 | D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT, | ||
| 3215 | D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW, | ||
| 3216 | D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW, | ||
| 3217 | D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW, | ||
| 3218 | D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_RAYS, | ||
| 3219 | D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH, | ||
| 3220 | D3D12_INDIRECT_ARGUMENT_TYPE_INCREMENTING_CONSTANT, | ||
| 3221 | } D3D12_INDIRECT_ARGUMENT_TYPE; | ||
| 3222 | |||
| 3223 | typedef struct D3D12_INDIRECT_ARGUMENT_DESC | ||
| 3224 | { | ||
| 3225 | D3D12_INDIRECT_ARGUMENT_TYPE Type; | ||
| 3226 | |||
| 3227 | union | ||
| 3228 | { | ||
| 3229 | struct | ||
| 3230 | { | ||
| 3231 | UINT Slot; | ||
| 3232 | } VertexBuffer; | ||
| 3233 | |||
| 3234 | struct | ||
| 3235 | { | ||
| 3236 | UINT RootParameterIndex; | ||
| 3237 | UINT DestOffsetIn32BitValues; | ||
| 3238 | UINT Num32BitValuesToSet; | ||
| 3239 | } Constant; | ||
| 3240 | |||
| 3241 | struct | ||
| 3242 | { | ||
| 3243 | UINT RootParameterIndex; | ||
| 3244 | } ConstantBufferView; | ||
| 3245 | |||
| 3246 | struct | ||
| 3247 | { | ||
| 3248 | UINT RootParameterIndex; | ||
| 3249 | } ShaderResourceView; | ||
| 3250 | |||
| 3251 | struct | ||
| 3252 | { | ||
| 3253 | UINT RootParameterIndex; | ||
| 3254 | } UnorderedAccessView; | ||
| 3255 | |||
| 3256 | // Tier 1.1 support | ||
| 3257 | struct | ||
| 3258 | { | ||
| 3259 | UINT RootParameterIndex; | ||
| 3260 | UINT DestOffsetIn32BitValues; | ||
| 3261 | } IncrementingConstant; | ||
| 3262 | }; | ||
| 3263 | } D3D12_INDIRECT_ARGUMENT_DESC; | ||
| 3264 | |||
| 3265 | typedef struct D3D12_COMMAND_SIGNATURE_DESC | ||
| 3266 | { | ||
| 3267 | // The number of bytes between each drawing structure | ||
| 3268 | UINT ByteStride; | ||
| 3269 | UINT NumArgumentDescs; | ||
| 3270 | [annotation("_Field_size_full_(NumArgumentDescs)")] const D3D12_INDIRECT_ARGUMENT_DESC* pArgumentDescs; | ||
| 3271 | UINT NodeMask; | ||
| 3272 | } D3D12_COMMAND_SIGNATURE_DESC; | ||
| 3273 | |||
| 3274 | interface ID3D12Device; | ||
| 3275 | |||
| 3276 | [ uuid( c4fec28f-7966-4e95-9f94-f431cb56c3b8 ), object, local, pointer_default( unique ) ] | ||
| 3277 | interface ID3D12Object | ||
| 3278 | : IUnknown | ||
| 3279 | { | ||
| 3280 | HRESULT GetPrivateData( | ||
| 3281 | [annotation("_In_")] REFGUID guid, | ||
| 3282 | [annotation("_Inout_")] UINT* pDataSize, | ||
| 3283 | [annotation("_Out_writes_bytes_opt_( *pDataSize )")] void* pData ); | ||
| 3284 | HRESULT SetPrivateData( | ||
| 3285 | [annotation("_In_")] REFGUID guid, | ||
| 3286 | [annotation("_In_")] UINT DataSize, | ||
| 3287 | [annotation("_In_reads_bytes_opt_( DataSize )")] const void* pData ); | ||
| 3288 | HRESULT SetPrivateDataInterface( | ||
| 3289 | [annotation("_In_")] REFGUID guid, | ||
| 3290 | [annotation("_In_opt_")] const IUnknown* pData ); | ||
| 3291 | HRESULT SetName( | ||
| 3292 | [annotation("_In_z_")] LPCWSTR Name ); | ||
| 3293 | } | ||
| 3294 | |||
| 3295 | [ uuid( 905db94b-a00c-4140-9df5-2b64ca9ea357 ), object, local, pointer_default( unique ) ] | ||
| 3296 | interface ID3D12DeviceChild | ||
| 3297 | : ID3D12Object | ||
| 3298 | { | ||
| 3299 | HRESULT GetDevice( | ||
| 3300 | [in] REFIID riid, | ||
| 3301 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvDevice | ||
| 3302 | ); | ||
| 3303 | } | ||
| 3304 | |||
| 3305 | [ uuid( 63ee58fb-1268-4835-86da-f008ce62f0d6 ), object, local, pointer_default( unique ) ] | ||
| 3306 | interface ID3D12Pageable | ||
| 3307 | : ID3D12DeviceChild | ||
| 3308 | { | ||
| 3309 | } | ||
| 3310 | |||
| 3311 | [ uuid( 6b3b2502-6e51-45b3-90ee-9884265e8df3 ), object, local, pointer_default( unique ) ] | ||
| 3312 | interface ID3D12Heap | ||
| 3313 | : ID3D12Pageable | ||
| 3314 | { | ||
| 3315 | D3D12_HEAP_DESC GetDesc(); | ||
| 3316 | } | ||
| 3317 | |||
| 3318 | [ uuid( 696442be-a72e-4059-bc79-5b5c98040fad ), object, local, pointer_default( unique ) ] | ||
| 3319 | interface ID3D12Resource | ||
| 3320 | : ID3D12Pageable | ||
| 3321 | { | ||
| 3322 | HRESULT Map( | ||
| 3323 | UINT Subresource, | ||
| 3324 | [annotation("_In_opt_")] const D3D12_RANGE* pReadRange, | ||
| 3325 | [annotation("_Outptr_opt_result_bytebuffer_(_Inexpressible_(\"Dependent on resource\"))")] void** ppData); | ||
| 3326 | |||
| 3327 | void Unmap(UINT Subresource, [annotation("_In_opt_")] const D3D12_RANGE* pWrittenRange ); | ||
| 3328 | |||
| 3329 | D3D12_RESOURCE_DESC GetDesc(); | ||
| 3330 | |||
| 3331 | D3D12_GPU_VIRTUAL_ADDRESS GetGPUVirtualAddress(); | ||
| 3332 | |||
| 3333 | HRESULT WriteToSubresource( | ||
| 3334 | UINT DstSubresource, | ||
| 3335 | [annotation("_In_opt_")] const D3D12_BOX* pDstBox, | ||
| 3336 | [annotation("_In_")] const void* pSrcData, | ||
| 3337 | UINT SrcRowPitch, | ||
| 3338 | UINT SrcDepthPitch ); | ||
| 3339 | |||
| 3340 | HRESULT ReadFromSubresource( | ||
| 3341 | [annotation("_Out_")] void* pDstData, | ||
| 3342 | UINT DstRowPitch, | ||
| 3343 | UINT DstDepthPitch, | ||
| 3344 | UINT SrcSubresource, | ||
| 3345 | [annotation("_In_opt_")] const D3D12_BOX* pSrcBox ); | ||
| 3346 | |||
| 3347 | HRESULT GetHeapProperties( | ||
| 3348 | [annotation("_Out_opt_")] D3D12_HEAP_PROPERTIES* pHeapProperties, | ||
| 3349 | [annotation("_Out_opt_")] D3D12_HEAP_FLAGS* pHeapFlags | ||
| 3350 | ); | ||
| 3351 | } | ||
| 3352 | |||
| 3353 | [ uuid( 6102dee4-af59-4b09-b999-b44d73f09b24 ), object, local, pointer_default( unique ) ] | ||
| 3354 | interface ID3D12CommandAllocator | ||
| 3355 | : ID3D12Pageable | ||
| 3356 | { | ||
| 3357 | HRESULT Reset(); | ||
| 3358 | } | ||
| 3359 | |||
| 3360 | [ uuid( 0a753dcf-c4d8-4b91-adf6-be5a60d95a76 ), object, local, pointer_default( unique ) ] | ||
| 3361 | interface ID3D12Fence | ||
| 3362 | : ID3D12Pageable | ||
| 3363 | { | ||
| 3364 | UINT64 GetCompletedValue(); | ||
| 3365 | HRESULT SetEventOnCompletion(UINT64 Value, HANDLE hEvent); | ||
| 3366 | HRESULT Signal(UINT64 Value); | ||
| 3367 | }; | ||
| 3368 | |||
| 3369 | [ uuid( 433685fe-e22b-4ca0-a8db-b5b4f4dd0e4a ), object, local, pointer_default( unique ) ] | ||
| 3370 | interface ID3D12Fence1 | ||
| 3371 | : ID3D12Fence | ||
| 3372 | { | ||
| 3373 | D3D12_FENCE_FLAGS GetCreationFlags(); | ||
| 3374 | }; | ||
| 3375 | |||
| 3376 | |||
| 3377 | [ uuid( 765a30f3-f624-4c6f-a828-ace948622445 ), object, local, pointer_default( unique ) ] | ||
| 3378 | interface ID3D12PipelineState | ||
| 3379 | : ID3D12Pageable | ||
| 3380 | { | ||
| 3381 | HRESULT GetCachedBlob([annotation("_COM_Outptr_")] ID3DBlob** ppBlob); | ||
| 3382 | } | ||
| 3383 | |||
| 3384 | [uuid(5646804c-9638-48f7-9182-b3ee5a6b60fb), object, local, pointer_default(unique)] | ||
| 3385 | interface ID3D12PipelineState1 | ||
| 3386 | : ID3D12PipelineState | ||
| 3387 | { | ||
| 3388 | HRESULT GetRootSignature( | ||
| 3389 | [in] REFIID riid, // Expected ID3D12RootSignature | ||
| 3390 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvRootSignature); | ||
| 3391 | } | ||
| 3392 | |||
| 3393 | [ uuid( 8efb471d-616c-4f49-90f7-127bb763fa51 ), object, local, pointer_default( unique ) ] | ||
| 3394 | interface ID3D12DescriptorHeap | ||
| 3395 | : ID3D12Pageable | ||
| 3396 | { | ||
| 3397 | D3D12_DESCRIPTOR_HEAP_DESC GetDesc(); | ||
| 3398 | |||
| 3399 | D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandleForHeapStart(); | ||
| 3400 | D3D12_GPU_DESCRIPTOR_HANDLE GetGPUDescriptorHandleForHeapStart(); | ||
| 3401 | } | ||
| 3402 | |||
| 3403 | [ uuid( 0d9658ae-ed45-469e-a61d-970ec583cab4 ), object, local, pointer_default( unique ) ] | ||
| 3404 | interface ID3D12QueryHeap | ||
| 3405 | : ID3D12Pageable | ||
| 3406 | { | ||
| 3407 | }; | ||
| 3408 | |||
| 3409 | [ uuid( c36a797c-ec80-4f0a-8985-a7b2475082d1 ), object, local, pointer_default( unique ) ] | ||
| 3410 | interface ID3D12CommandSignature | ||
| 3411 | : ID3D12Pageable | ||
| 3412 | { | ||
| 3413 | }; | ||
| 3414 | |||
| 3415 | [ uuid( 7116d91c-e7e4-47ce-b8c6-ec8168f437e5 ), object, local, pointer_default( unique ) ] | ||
| 3416 | interface ID3D12CommandList | ||
| 3417 | : ID3D12DeviceChild | ||
| 3418 | { | ||
| 3419 | D3D12_COMMAND_LIST_TYPE GetType(); | ||
| 3420 | } | ||
| 3421 | |||
| 3422 | // Superseded by ID3D12GraphicsCommandList1 | ||
| 3423 | [ uuid( 5b160d0f-ac1b-4185-8ba8-b3ae42a5a455 ), object, local, pointer_default( unique ) ] | ||
| 3424 | interface ID3D12GraphicsCommandList | ||
| 3425 | : ID3D12CommandList | ||
| 3426 | { | ||
| 3427 | HRESULT Close(); | ||
| 3428 | |||
| 3429 | HRESULT Reset( | ||
| 3430 | [annotation("_In_")] ID3D12CommandAllocator* pAllocator, | ||
| 3431 | [annotation("_In_opt_")] ID3D12PipelineState* pInitialState | ||
| 3432 | ); | ||
| 3433 | |||
| 3434 | void ClearState( | ||
| 3435 | [annotation("_In_opt_")] ID3D12PipelineState* pPipelineState | ||
| 3436 | ); | ||
| 3437 | |||
| 3438 | void DrawInstanced( | ||
| 3439 | [annotation("_In_")] UINT VertexCountPerInstance, | ||
| 3440 | [annotation("_In_")] UINT InstanceCount, | ||
| 3441 | [annotation("_In_")] UINT StartVertexLocation, | ||
| 3442 | [annotation("_In_")] UINT StartInstanceLocation | ||
| 3443 | ); | ||
| 3444 | |||
| 3445 | void DrawIndexedInstanced( | ||
| 3446 | [annotation("_In_")] UINT IndexCountPerInstance, | ||
| 3447 | [annotation("_In_")] UINT InstanceCount, | ||
| 3448 | [annotation("_In_")] UINT StartIndexLocation, | ||
| 3449 | [annotation("_In_")] INT BaseVertexLocation, | ||
| 3450 | [annotation("_In_")] UINT StartInstanceLocation | ||
| 3451 | ); | ||
| 3452 | |||
| 3453 | void Dispatch( | ||
| 3454 | [annotation("_In_")] UINT ThreadGroupCountX, | ||
| 3455 | [annotation("_In_")] UINT ThreadGroupCountY, | ||
| 3456 | [annotation("_In_")] UINT ThreadGroupCountZ | ||
| 3457 | ); | ||
| 3458 | |||
| 3459 | void CopyBufferRegion( | ||
| 3460 | [annotation("_In_")] ID3D12Resource* pDstBuffer, | ||
| 3461 | UINT64 DstOffset, | ||
| 3462 | [annotation("_In_")] ID3D12Resource* pSrcBuffer, | ||
| 3463 | UINT64 SrcOffset, | ||
| 3464 | UINT64 NumBytes | ||
| 3465 | ); | ||
| 3466 | |||
| 3467 | void CopyTextureRegion( | ||
| 3468 | [annotation("_In_")] const D3D12_TEXTURE_COPY_LOCATION* pDst, | ||
| 3469 | UINT DstX, UINT DstY, UINT DstZ, | ||
| 3470 | [annotation("_In_")] const D3D12_TEXTURE_COPY_LOCATION* pSrc, | ||
| 3471 | [annotation("_In_opt_")] const D3D12_BOX* pSrcBox | ||
| 3472 | ); | ||
| 3473 | |||
| 3474 | void CopyResource( | ||
| 3475 | [annotation("_In_")] ID3D12Resource* pDstResource, | ||
| 3476 | [annotation("_In_")] ID3D12Resource* pSrcResource | ||
| 3477 | ); | ||
| 3478 | |||
| 3479 | void CopyTiles( | ||
| 3480 | [annotation("_In_")] ID3D12Resource* pTiledResource, | ||
| 3481 | [annotation("_In_")] const D3D12_TILED_RESOURCE_COORDINATE* pTileRegionStartCoordinate, | ||
| 3482 | [annotation("_In_")] const D3D12_TILE_REGION_SIZE* pTileRegionSize, | ||
| 3483 | [annotation("_In_")] ID3D12Resource* pBuffer, | ||
| 3484 | UINT64 BufferStartOffsetInBytes, | ||
| 3485 | D3D12_TILE_COPY_FLAGS Flags | ||
| 3486 | ); | ||
| 3487 | |||
| 3488 | void ResolveSubresource( | ||
| 3489 | [annotation("_In_")] ID3D12Resource* pDstResource, | ||
| 3490 | [annotation("_In_")] UINT DstSubresource, | ||
| 3491 | [annotation("_In_")] ID3D12Resource* pSrcResource, | ||
| 3492 | [annotation("_In_")] UINT SrcSubresource, | ||
| 3493 | [annotation("_In_")] DXGI_FORMAT Format | ||
| 3494 | ); | ||
| 3495 | |||
| 3496 | void IASetPrimitiveTopology( | ||
| 3497 | [annotation("_In_")] D3D12_PRIMITIVE_TOPOLOGY PrimitiveTopology | ||
| 3498 | ); | ||
| 3499 | |||
| 3500 | void RSSetViewports( | ||
| 3501 | [annotation("_In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)")] UINT NumViewports, | ||
| 3502 | [annotation("_In_reads_( NumViewports)")] const D3D12_VIEWPORT* pViewports | ||
| 3503 | ); | ||
| 3504 | |||
| 3505 | void RSSetScissorRects( | ||
| 3506 | [annotation("_In_range_(0, D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE)")] UINT NumRects, | ||
| 3507 | [annotation("_In_reads_( NumRects)")] const D3D12_RECT* pRects | ||
| 3508 | ); | ||
| 3509 | |||
| 3510 | void OMSetBlendFactor( | ||
| 3511 | [annotation("_In_reads_opt_(4)")] const FLOAT BlendFactor[ 4 ] | ||
| 3512 | ); | ||
| 3513 | |||
| 3514 | void OMSetStencilRef( | ||
| 3515 | [annotation("_In_")] UINT StencilRef | ||
| 3516 | ); | ||
| 3517 | |||
| 3518 | void SetPipelineState( | ||
| 3519 | [annotation("_In_")] ID3D12PipelineState* pPipelineState | ||
| 3520 | ); | ||
| 3521 | |||
| 3522 | void ResourceBarrier( | ||
| 3523 | [annotation("_In_")] UINT NumBarriers, | ||
| 3524 | [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers | ||
| 3525 | ); | ||
| 3526 | |||
| 3527 | void ExecuteBundle( | ||
| 3528 | [annotation("_In_")] ID3D12GraphicsCommandList* pCommandList | ||
| 3529 | ); | ||
| 3530 | |||
| 3531 | void SetDescriptorHeaps( | ||
| 3532 | [annotation("_In_")] UINT NumDescriptorHeaps, | ||
| 3533 | [annotation("_In_reads_(NumDescriptorHeaps)")] ID3D12DescriptorHeap* const* ppDescriptorHeaps | ||
| 3534 | ); | ||
| 3535 | |||
| 3536 | void SetComputeRootSignature( | ||
| 3537 | [annotation("_In_opt_")] ID3D12RootSignature* pRootSignature | ||
| 3538 | ); | ||
| 3539 | |||
| 3540 | void SetGraphicsRootSignature( | ||
| 3541 | [annotation("_In_opt_")] ID3D12RootSignature* pRootSignature | ||
| 3542 | ); | ||
| 3543 | |||
| 3544 | void SetComputeRootDescriptorTable( | ||
| 3545 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3546 | [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor | ||
| 3547 | ); | ||
| 3548 | |||
| 3549 | void SetGraphicsRootDescriptorTable( | ||
| 3550 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3551 | [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE BaseDescriptor | ||
| 3552 | ); | ||
| 3553 | |||
| 3554 | // Single constant | ||
| 3555 | void SetComputeRoot32BitConstant( | ||
| 3556 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3557 | [annotation("_In_")] UINT SrcData, | ||
| 3558 | [annotation("_In_")] UINT DestOffsetIn32BitValues | ||
| 3559 | ); | ||
| 3560 | |||
| 3561 | void SetGraphicsRoot32BitConstant( | ||
| 3562 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3563 | [annotation("_In_")] UINT SrcData, | ||
| 3564 | [annotation("_In_")] UINT DestOffsetIn32BitValues | ||
| 3565 | ); | ||
| 3566 | |||
| 3567 | // Group of constants | ||
| 3568 | void SetComputeRoot32BitConstants( | ||
| 3569 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3570 | [annotation("_In_")] UINT Num32BitValuesToSet, | ||
| 3571 | [annotation("_In_reads_(Num32BitValuesToSet*sizeof(UINT))")] const void* pSrcData, | ||
| 3572 | [annotation("_In_")] UINT DestOffsetIn32BitValues | ||
| 3573 | ); | ||
| 3574 | |||
| 3575 | void SetGraphicsRoot32BitConstants( | ||
| 3576 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3577 | [annotation("_In_")] UINT Num32BitValuesToSet, | ||
| 3578 | [annotation("_In_reads_(Num32BitValuesToSet*sizeof(UINT))")] const void* pSrcData, | ||
| 3579 | [annotation("_In_")] UINT DestOffsetIn32BitValues | ||
| 3580 | ); | ||
| 3581 | |||
| 3582 | // CBV | ||
| 3583 | void SetComputeRootConstantBufferView( | ||
| 3584 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3585 | [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation | ||
| 3586 | ); | ||
| 3587 | |||
| 3588 | void SetGraphicsRootConstantBufferView( | ||
| 3589 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3590 | [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation | ||
| 3591 | ); | ||
| 3592 | |||
| 3593 | // SRV | ||
| 3594 | void SetComputeRootShaderResourceView( | ||
| 3595 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3596 | [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation | ||
| 3597 | ); | ||
| 3598 | |||
| 3599 | void SetGraphicsRootShaderResourceView( | ||
| 3600 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3601 | [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation | ||
| 3602 | ); | ||
| 3603 | |||
| 3604 | // UAV | ||
| 3605 | void SetComputeRootUnorderedAccessView( | ||
| 3606 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3607 | [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation | ||
| 3608 | ); | ||
| 3609 | |||
| 3610 | void SetGraphicsRootUnorderedAccessView( | ||
| 3611 | [annotation("_In_")] UINT RootParameterIndex, | ||
| 3612 | [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS BufferLocation | ||
| 3613 | ); | ||
| 3614 | |||
| 3615 | void IASetIndexBuffer( | ||
| 3616 | [annotation("_In_opt_")] const D3D12_INDEX_BUFFER_VIEW* pView | ||
| 3617 | ); | ||
| 3618 | |||
| 3619 | void IASetVertexBuffers( | ||
| 3620 | [annotation("_In_")] UINT StartSlot, | ||
| 3621 | [annotation("_In_")] UINT NumViews, | ||
| 3622 | [annotation("_In_reads_opt_(NumViews)")] const D3D12_VERTEX_BUFFER_VIEW* pViews | ||
| 3623 | ); | ||
| 3624 | |||
| 3625 | void SOSetTargets( | ||
| 3626 | [annotation("_In_")] UINT StartSlot, | ||
| 3627 | [annotation("_In_")] UINT NumViews, | ||
| 3628 | [annotation("_In_reads_opt_(NumViews)")] const D3D12_STREAM_OUTPUT_BUFFER_VIEW* pViews | ||
| 3629 | ); | ||
| 3630 | |||
| 3631 | void OMSetRenderTargets( | ||
| 3632 | [annotation("_In_")] UINT NumRenderTargetDescriptors, | ||
| 3633 | [annotation("_In_opt_")] const D3D12_CPU_DESCRIPTOR_HANDLE* pRenderTargetDescriptors, | ||
| 3634 | [annotation("_In_")] BOOL RTsSingleHandleToDescriptorRange, | ||
| 3635 | [annotation("_In_opt_")] const D3D12_CPU_DESCRIPTOR_HANDLE* pDepthStencilDescriptor | ||
| 3636 | ); | ||
| 3637 | |||
| 3638 | void ClearDepthStencilView( | ||
| 3639 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DepthStencilView, | ||
| 3640 | [annotation("_In_")] D3D12_CLEAR_FLAGS ClearFlags, | ||
| 3641 | [annotation("_In_")] FLOAT Depth, | ||
| 3642 | [annotation("_In_")] UINT8 Stencil, | ||
| 3643 | [annotation("_In_")] UINT NumRects, | ||
| 3644 | [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects | ||
| 3645 | ); | ||
| 3646 | |||
| 3647 | void ClearRenderTargetView( | ||
| 3648 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE RenderTargetView, | ||
| 3649 | [annotation("_In_")] const FLOAT ColorRGBA[4], | ||
| 3650 | [annotation("_In_")] UINT NumRects, | ||
| 3651 | [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects | ||
| 3652 | ); | ||
| 3653 | |||
| 3654 | void ClearUnorderedAccessViewUint( | ||
| 3655 | [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 3656 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 3657 | [annotation("_In_")] ID3D12Resource* pResource, | ||
| 3658 | [annotation("_In_")] const UINT Values[4], | ||
| 3659 | [annotation("_In_")] UINT NumRects, | ||
| 3660 | [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects | ||
| 3661 | ); | ||
| 3662 | |||
| 3663 | void ClearUnorderedAccessViewFloat( | ||
| 3664 | [annotation("_In_")] D3D12_GPU_DESCRIPTOR_HANDLE ViewGPUHandleInCurrentHeap, | ||
| 3665 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE ViewCPUHandle, | ||
| 3666 | [annotation("_In_")] ID3D12Resource* pResource, | ||
| 3667 | [annotation("_In_")] const FLOAT Values[4], | ||
| 3668 | [annotation("_In_")] UINT NumRects, | ||
| 3669 | [annotation("_In_reads_(NumRects)")] const D3D12_RECT* pRects | ||
| 3670 | ); | ||
| 3671 | |||
| 3672 | void DiscardResource( | ||
| 3673 | [annotation("_In_")] ID3D12Resource* pResource, | ||
| 3674 | [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion | ||
| 3675 | ); | ||
| 3676 | |||
| 3677 | void BeginQuery( | ||
| 3678 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 3679 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 3680 | [annotation("_In_")] UINT Index | ||
| 3681 | ); | ||
| 3682 | |||
| 3683 | void EndQuery( | ||
| 3684 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 3685 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 3686 | [annotation("_In_")] UINT Index | ||
| 3687 | ); | ||
| 3688 | |||
| 3689 | void ResolveQueryData( | ||
| 3690 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 3691 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 3692 | [annotation("_In_")] UINT StartIndex, | ||
| 3693 | [annotation("_In_")] UINT NumQueries, | ||
| 3694 | [annotation("_In_")] ID3D12Resource* pDestinationBuffer, | ||
| 3695 | [annotation("_In_")] UINT64 AlignedDestinationBufferOffset | ||
| 3696 | ); | ||
| 3697 | |||
| 3698 | void SetPredication( | ||
| 3699 | [annotation("_In_opt_")] ID3D12Resource* pBuffer, | ||
| 3700 | [annotation("_In_")] UINT64 AlignedBufferOffset, | ||
| 3701 | [annotation("_In_")] D3D12_PREDICATION_OP Operation | ||
| 3702 | ); | ||
| 3703 | |||
| 3704 | void SetMarker(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size); | ||
| 3705 | void BeginEvent(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size); | ||
| 3706 | void EndEvent(); | ||
| 3707 | |||
| 3708 | void ExecuteIndirect( | ||
| 3709 | [annotation("_In_")] ID3D12CommandSignature* pCommandSignature, | ||
| 3710 | [annotation("_In_")] UINT MaxCommandCount, | ||
| 3711 | [annotation("_In_")] ID3D12Resource* pArgumentBuffer, | ||
| 3712 | [annotation("_In_")] UINT64 ArgumentBufferOffset, | ||
| 3713 | [annotation("_In_opt_")] ID3D12Resource* pCountBuffer, | ||
| 3714 | [annotation("_In_")] UINT64 CountBufferOffset | ||
| 3715 | ); | ||
| 3716 | } | ||
| 3717 | |||
| 3718 | [ uuid( 553103fb-1fe7-4557-bb38-946d7d0e7ca7 ), object, local, pointer_default( unique ) ] | ||
| 3719 | interface ID3D12GraphicsCommandList1 | ||
| 3720 | : ID3D12GraphicsCommandList | ||
| 3721 | { | ||
| 3722 | void AtomicCopyBufferUINT( | ||
| 3723 | [annotation("_In_")] ID3D12Resource* pDstBuffer, | ||
| 3724 | UINT64 DstOffset, | ||
| 3725 | [annotation("_In_")] ID3D12Resource* pSrcBuffer, | ||
| 3726 | UINT64 SrcOffset, | ||
| 3727 | UINT Dependencies, // 0 Dependencies means only the dst buffer offset is synchronized | ||
| 3728 | [annotation("_In_reads_(Dependencies)")] ID3D12Resource*const* ppDependentResources, | ||
| 3729 | [annotation("_In_reads_(Dependencies)")] const D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges | ||
| 3730 | ); | ||
| 3731 | |||
| 3732 | // UINT64 is only valid on UMA architectures | ||
| 3733 | void AtomicCopyBufferUINT64( | ||
| 3734 | [annotation("_In_")] ID3D12Resource* pDstBuffer, | ||
| 3735 | UINT64 DstOffset, | ||
| 3736 | [annotation("_In_")] ID3D12Resource* pSrcBuffer, | ||
| 3737 | UINT64 SrcOffset, | ||
| 3738 | UINT Dependencies, // 0 Dependencies means only the dst buffer offset is synchronized | ||
| 3739 | [annotation("_In_reads_(Dependencies)")] ID3D12Resource*const* ppDependentResources, | ||
| 3740 | [annotation("_In_reads_(Dependencies)")] const D3D12_SUBRESOURCE_RANGE_UINT64* pDependentSubresourceRanges | ||
| 3741 | ); | ||
| 3742 | |||
| 3743 | void OMSetDepthBounds( | ||
| 3744 | [annotation("_In_")] FLOAT Min, | ||
| 3745 | [annotation("_In_")] FLOAT Max | ||
| 3746 | ); | ||
| 3747 | |||
| 3748 | void SetSamplePositions( | ||
| 3749 | [annotation("_In_")] UINT NumSamplesPerPixel, | ||
| 3750 | [annotation("_In_")] UINT NumPixels, | ||
| 3751 | [annotation("_In_reads_(NumSamplesPerPixel*NumPixels)")] D3D12_SAMPLE_POSITION* pSamplePositions | ||
| 3752 | ); | ||
| 3753 | |||
| 3754 | void ResolveSubresourceRegion( | ||
| 3755 | [annotation("_In_")] ID3D12Resource* pDstResource, | ||
| 3756 | [annotation("_In_")] UINT DstSubresource, | ||
| 3757 | [annotation("_In_")] UINT DstX, | ||
| 3758 | [annotation("_In_")] UINT DstY, | ||
| 3759 | [annotation("_In_")] ID3D12Resource* pSrcResource, | ||
| 3760 | [annotation("_In_")] UINT SrcSubresource, | ||
| 3761 | [annotation("_In_opt_")] D3D12_RECT* pSrcRect, | ||
| 3762 | [annotation("_In_")] DXGI_FORMAT Format, | ||
| 3763 | [annotation("_In_")] D3D12_RESOLVE_MODE ResolveMode | ||
| 3764 | ); | ||
| 3765 | |||
| 3766 | void SetViewInstanceMask( | ||
| 3767 | [annotation("_In_")] UINT Mask | ||
| 3768 | ); | ||
| 3769 | |||
| 3770 | } | ||
| 3771 | |||
| 3772 | typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER | ||
| 3773 | { | ||
| 3774 | D3D12_GPU_VIRTUAL_ADDRESS Dest; | ||
| 3775 | UINT32 Value; | ||
| 3776 | } D3D12_WRITEBUFFERIMMEDIATE_PARAMETER; | ||
| 3777 | |||
| 3778 | typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE | ||
| 3779 | { | ||
| 3780 | D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0, | ||
| 3781 | D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1, | ||
| 3782 | D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2, | ||
| 3783 | |||
| 3784 | } D3D12_WRITEBUFFERIMMEDIATE_MODE; | ||
| 3785 | |||
| 3786 | [uuid(38C3E585-FF17-412C-9150-4FC6F9D72A28), object, local, pointer_default(unique)] | ||
| 3787 | interface ID3D12GraphicsCommandList2 : ID3D12GraphicsCommandList1 | ||
| 3788 | { | ||
| 3789 | void WriteBufferImmediate( | ||
| 3790 | UINT Count, | ||
| 3791 | [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 3792 | [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes | ||
| 3793 | ); | ||
| 3794 | } | ||
| 3795 | |||
| 3796 | [ uuid( 0ec870a6-5d7e-4c22-8cfc-5baae07616ed ), object, local, pointer_default( unique ) ] | ||
| 3797 | interface ID3D12CommandQueue | ||
| 3798 | : ID3D12Pageable | ||
| 3799 | { | ||
| 3800 | void UpdateTileMappings( | ||
| 3801 | [annotation("_In_")] ID3D12Resource* pResource, | ||
| 3802 | UINT NumResourceRegions, | ||
| 3803 | [annotation("_In_reads_opt_(NumResourceRegions)")] const D3D12_TILED_RESOURCE_COORDINATE* pResourceRegionStartCoordinates, | ||
| 3804 | [annotation("_In_reads_opt_(NumResourceRegions)")] const D3D12_TILE_REGION_SIZE* pResourceRegionSizes, | ||
| 3805 | [annotation("_In_opt_")] ID3D12Heap* pHeap, | ||
| 3806 | UINT NumRanges, | ||
| 3807 | [annotation("_In_reads_opt_(NumRanges)")] const D3D12_TILE_RANGE_FLAGS* pRangeFlags, | ||
| 3808 | [annotation("_In_reads_opt_(NumRanges)")] const UINT* pHeapRangeStartOffsets, | ||
| 3809 | [annotation("_In_reads_opt_(NumRanges)")] const UINT* pRangeTileCounts, | ||
| 3810 | D3D12_TILE_MAPPING_FLAGS Flags ); | ||
| 3811 | |||
| 3812 | void CopyTileMappings( | ||
| 3813 | [annotation("_In_")] ID3D12Resource* pDstResource, | ||
| 3814 | [annotation("_In_")] const D3D12_TILED_RESOURCE_COORDINATE* pDstRegionStartCoordinate, | ||
| 3815 | [annotation("_In_")] ID3D12Resource* pSrcResource, | ||
| 3816 | [annotation("_In_")] const D3D12_TILED_RESOURCE_COORDINATE* pSrcRegionStartCoordinate, | ||
| 3817 | [annotation("_In_")] const D3D12_TILE_REGION_SIZE* pRegionSize, | ||
| 3818 | D3D12_TILE_MAPPING_FLAGS Flags ); | ||
| 3819 | |||
| 3820 | void ExecuteCommandLists( | ||
| 3821 | [annotation("_In_")] UINT NumCommandLists, | ||
| 3822 | [annotation("_In_reads_(NumCommandLists)")] ID3D12CommandList * const * ppCommandLists | ||
| 3823 | ); | ||
| 3824 | |||
| 3825 | void SetMarker(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size); | ||
| 3826 | void BeginEvent(UINT Metadata, [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, UINT Size); | ||
| 3827 | void EndEvent(); | ||
| 3828 | |||
| 3829 | HRESULT Signal(ID3D12Fence* pFence, UINT64 Value); | ||
| 3830 | HRESULT Wait(ID3D12Fence* pFence, UINT64 Value); | ||
| 3831 | |||
| 3832 | HRESULT GetTimestampFrequency( | ||
| 3833 | [annotation("_Out_")] UINT64* pFrequency | ||
| 3834 | ); | ||
| 3835 | |||
| 3836 | HRESULT GetClockCalibration( | ||
| 3837 | [annotation("_Out_")] UINT64* pGpuTimestamp, | ||
| 3838 | [annotation("_Out_")] UINT64* pCpuTimestamp | ||
| 3839 | ); | ||
| 3840 | |||
| 3841 | D3D12_COMMAND_QUEUE_DESC GetDesc(); | ||
| 3842 | } | ||
| 3843 | |||
| 3844 | // | ||
| 3845 | // Dynamic priority command queue features start | ||
| 3846 | // | ||
| 3847 | |||
| 3848 | typedef struct D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS | ||
| 3849 | { | ||
| 3850 | [annotation("_Out_")] UINT ComputeQueuesPer3DQueue; // 0 means scheduling groups do not group multiple queues. | ||
| 3851 | } D3D12_FEATURE_DATA_HARDWARE_SCHEDULING_QUEUE_GROUPINGS; | ||
| 3852 | |||
| 3853 | typedef enum D3D12_COMMAND_QUEUE_PROCESS_PRIORITY | ||
| 3854 | { | ||
| 3855 | D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_NORMAL = 0, | ||
| 3856 | D3D12_COMMAND_QUEUE_PROCESS_PRIORITY_HIGH = 1, | ||
| 3857 | } D3D12_COMMAND_QUEUE_PROCESS_PRIORITY; | ||
| 3858 | |||
| 3859 | typedef enum D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY | ||
| 3860 | { | ||
| 3861 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_IDLE = 0, | ||
| 3862 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_DEFAULT = 1, | ||
| 3863 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_NORMAL_0 = 2, | ||
| 3864 | |||
| 3865 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_0 = 18, | ||
| 3866 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_1 = 19, | ||
| 3867 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_2 = 20, | ||
| 3868 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_3 = 21, | ||
| 3869 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_4 = 22, | ||
| 3870 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_5 = 23, | ||
| 3871 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_6 = 24, | ||
| 3872 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_7 = 25, | ||
| 3873 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_8 = 26, | ||
| 3874 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_9 = 27, | ||
| 3875 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_10 = 28, | ||
| 3876 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_11 = 29, | ||
| 3877 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_12 = 30, | ||
| 3878 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_SOFT_REALTIME_13 = 31, | ||
| 3879 | |||
| 3880 | D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY_HARD_REALTIME = 32, | ||
| 3881 | } D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY; | ||
| 3882 | |||
| 3883 | [uuid(3a3c3165-0ee7-4b8e-a0af-6356b4c3bbb9), object, local, pointer_default(unique)] | ||
| 3884 | interface ID3D12CommandQueue1 | ||
| 3885 | : ID3D12CommandQueue | ||
| 3886 | { | ||
| 3887 | HRESULT SetProcessPriority(D3D12_COMMAND_QUEUE_PROCESS_PRIORITY Priority); | ||
| 3888 | HRESULT GetProcessPriority(D3D12_COMMAND_QUEUE_PROCESS_PRIORITY* pOutValue); | ||
| 3889 | |||
| 3890 | HRESULT SetGlobalPriority(D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY Priority); | ||
| 3891 | HRESULT GetGlobalPriority(D3D12_COMMAND_QUEUE_GLOBAL_PRIORITY* pOutValue); | ||
| 3892 | } | ||
| 3893 | |||
| 3894 | // | ||
| 3895 | // Dynamic priority command queue features end | ||
| 3896 | // | ||
| 3897 | |||
| 3898 | |||
| 3899 | [ uuid( 189819f1-1db6-4b57-be54-1821339b85f7 ), object, local, pointer_default( unique ) ] | ||
| 3900 | interface ID3D12Device | ||
| 3901 | : ID3D12Object | ||
| 3902 | { | ||
| 3903 | UINT GetNodeCount(); | ||
| 3904 | |||
| 3905 | HRESULT CreateCommandQueue( | ||
| 3906 | [annotation("_In_")] const D3D12_COMMAND_QUEUE_DESC* pDesc, | ||
| 3907 | [in] REFIID riid, // Expected: ID3D12CommandQueue | ||
| 3908 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandQueue | ||
| 3909 | ); | ||
| 3910 | |||
| 3911 | HRESULT CreateCommandAllocator( | ||
| 3912 | [annotation("_In_")] D3D12_COMMAND_LIST_TYPE type, | ||
| 3913 | [in] REFIID riid, // Expected: ID3D12CommandAllocator | ||
| 3914 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandAllocator | ||
| 3915 | ); | ||
| 3916 | |||
| 3917 | HRESULT CreateGraphicsPipelineState( | ||
| 3918 | [annotation("_In_")] const D3D12_GRAPHICS_PIPELINE_STATE_DESC* pDesc, | ||
| 3919 | [in] REFIID riid, // Expected: ID3D12PipelineState | ||
| 3920 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState | ||
| 3921 | ); | ||
| 3922 | |||
| 3923 | HRESULT CreateComputePipelineState( | ||
| 3924 | [annotation("_In_")] const D3D12_COMPUTE_PIPELINE_STATE_DESC* pDesc, | ||
| 3925 | [in] REFIID riid, // Expected: ID3D12PipelineState | ||
| 3926 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState | ||
| 3927 | ); | ||
| 3928 | |||
| 3929 | HRESULT CreateCommandList( | ||
| 3930 | [annotation("_In_")] UINT nodeMask, | ||
| 3931 | [annotation("_In_")] D3D12_COMMAND_LIST_TYPE type, | ||
| 3932 | [annotation("_In_")] ID3D12CommandAllocator* pCommandAllocator, | ||
| 3933 | [annotation("_In_opt_")] ID3D12PipelineState* pInitialState, | ||
| 3934 | [in] REFIID riid, // Expected: ID3D12CommandList | ||
| 3935 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandList | ||
| 3936 | ); | ||
| 3937 | |||
| 3938 | HRESULT CheckFeatureSupport( | ||
| 3939 | D3D12_FEATURE Feature, | ||
| 3940 | [annotation("_Inout_updates_bytes_(FeatureSupportDataSize)")] void* pFeatureSupportData, | ||
| 3941 | UINT FeatureSupportDataSize | ||
| 3942 | ); | ||
| 3943 | |||
| 3944 | HRESULT CreateDescriptorHeap( | ||
| 3945 | [annotation("_In_")] const D3D12_DESCRIPTOR_HEAP_DESC* pDescriptorHeapDesc, | ||
| 3946 | [in] REFIID riid, // Expected ID3D12DescriptorHeap | ||
| 3947 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap); | ||
| 3948 | |||
| 3949 | UINT GetDescriptorHandleIncrementSize( | ||
| 3950 | [annotation("_In_")] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapType); | ||
| 3951 | |||
| 3952 | HRESULT CreateRootSignature( | ||
| 3953 | [annotation("_In_")] UINT nodeMask, | ||
| 3954 | [annotation("_In_reads_(blobLengthInBytes)")] const void* pBlobWithRootSignature, | ||
| 3955 | [annotation("_In_")] SIZE_T blobLengthInBytes, | ||
| 3956 | [in] REFIID riid, // Expected ID3D12RootSignature | ||
| 3957 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvRootSignature); | ||
| 3958 | |||
| 3959 | void CreateConstantBufferView( | ||
| 3960 | [annotation("_In_opt_")] const D3D12_CONSTANT_BUFFER_VIEW_DESC* pDesc, | ||
| 3961 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 3962 | |||
| 3963 | void CreateShaderResourceView( | ||
| 3964 | [annotation("_In_opt_")] ID3D12Resource* pResource, | ||
| 3965 | [annotation("_In_opt_")] const D3D12_SHADER_RESOURCE_VIEW_DESC* pDesc, | ||
| 3966 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 3967 | |||
| 3968 | void CreateUnorderedAccessView( | ||
| 3969 | [annotation("_In_opt_")] ID3D12Resource* pResource, | ||
| 3970 | [annotation("_In_opt_")] ID3D12Resource* pCounterResource, | ||
| 3971 | [annotation("_In_opt_")] const D3D12_UNORDERED_ACCESS_VIEW_DESC* pDesc, | ||
| 3972 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 3973 | |||
| 3974 | void CreateRenderTargetView( | ||
| 3975 | [annotation("_In_opt_")] ID3D12Resource* pResource, | ||
| 3976 | [annotation("_In_opt_")] const D3D12_RENDER_TARGET_VIEW_DESC* pDesc, | ||
| 3977 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 3978 | |||
| 3979 | void CreateDepthStencilView( | ||
| 3980 | [annotation("_In_opt_")] ID3D12Resource* pResource, | ||
| 3981 | [annotation("_In_opt_")] const D3D12_DEPTH_STENCIL_VIEW_DESC* pDesc, | ||
| 3982 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 3983 | |||
| 3984 | void CreateSampler( | ||
| 3985 | [annotation("_In_")] const D3D12_SAMPLER_DESC* pDesc, | ||
| 3986 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 3987 | |||
| 3988 | void CopyDescriptors( | ||
| 3989 | [annotation("_In_")] UINT NumDestDescriptorRanges, | ||
| 3990 | [annotation("_In_reads_(NumDestDescriptorRanges)")] const D3D12_CPU_DESCRIPTOR_HANDLE* pDestDescriptorRangeStarts, | ||
| 3991 | [annotation("_In_reads_opt_(NumDestDescriptorRanges)")] const UINT* pDestDescriptorRangeSizes, // NULL means all ranges 1 | ||
| 3992 | [annotation("_In_")] UINT NumSrcDescriptorRanges, | ||
| 3993 | [annotation("_In_reads_(NumSrcDescriptorRanges)")] const D3D12_CPU_DESCRIPTOR_HANDLE* pSrcDescriptorRangeStarts, | ||
| 3994 | [annotation("_In_reads_opt_(NumSrcDescriptorRanges)")] const UINT* pSrcDescriptorRangeSizes, // NULL means all ranges 1 | ||
| 3995 | [annotation("_In_")] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 3996 | |||
| 3997 | void CopyDescriptorsSimple( | ||
| 3998 | [annotation("_In_")] UINT NumDescriptors, | ||
| 3999 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptorRangeStart, | ||
| 4000 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE SrcDescriptorRangeStart, | ||
| 4001 | [annotation("_In_")] D3D12_DESCRIPTOR_HEAP_TYPE DescriptorHeapsType); | ||
| 4002 | |||
| 4003 | D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo( | ||
| 4004 | [annotation("_In_")] UINT visibleMask, | ||
| 4005 | [annotation("_In_")] UINT numResourceDescs, | ||
| 4006 | [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC* pResourceDescs ); | ||
| 4007 | |||
| 4008 | D3D12_HEAP_PROPERTIES GetCustomHeapProperties( | ||
| 4009 | [annotation("_In_")] UINT nodeMask, | ||
| 4010 | D3D12_HEAP_TYPE heapType | ||
| 4011 | ); | ||
| 4012 | |||
| 4013 | HRESULT CreateCommittedResource( | ||
| 4014 | [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, | ||
| 4015 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 4016 | [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, | ||
| 4017 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 4018 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 4019 | [in] REFIID riidResource, // Expected: ID3D12Resource* | ||
| 4020 | [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource ); | ||
| 4021 | |||
| 4022 | HRESULT CreateHeap( | ||
| 4023 | [annotation("_In_")] const D3D12_HEAP_DESC* pDesc, | ||
| 4024 | [in] REFIID riid, // Expected: ID3D12Heap* | ||
| 4025 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvHeap ); | ||
| 4026 | |||
| 4027 | HRESULT CreatePlacedResource( | ||
| 4028 | [annotation("_In_")] ID3D12Heap* pHeap, | ||
| 4029 | UINT64 HeapOffset, | ||
| 4030 | [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, | ||
| 4031 | D3D12_RESOURCE_STATES InitialState, | ||
| 4032 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 4033 | [in] REFIID riid, // Expected: ID3D12Resource* | ||
| 4034 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource ); | ||
| 4035 | |||
| 4036 | HRESULT CreateReservedResource( | ||
| 4037 | [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, | ||
| 4038 | D3D12_RESOURCE_STATES InitialState, | ||
| 4039 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 4040 | [in] REFIID riid, // Expected: ID3D12Resource* | ||
| 4041 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource ); | ||
| 4042 | |||
| 4043 | HRESULT CreateSharedHandle( | ||
| 4044 | [annotation("_In_")] ID3D12DeviceChild* pObject, | ||
| 4045 | [annotation("_In_opt_")] const SECURITY_ATTRIBUTES* pAttributes, | ||
| 4046 | DWORD Access, | ||
| 4047 | [annotation("_In_opt_")] LPCWSTR Name, | ||
| 4048 | [annotation("_Out_")] HANDLE* pHandle ); | ||
| 4049 | |||
| 4050 | HRESULT OpenSharedHandle( | ||
| 4051 | [annotation("_In_")] HANDLE NTHandle, | ||
| 4052 | [in] REFIID riid, // Expected: ID3D12Resource*, ID3D12Heap*, or ID3D12Fence | ||
| 4053 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvObj ); | ||
| 4054 | |||
| 4055 | HRESULT OpenSharedHandleByName( | ||
| 4056 | [annotation("_In_")] LPCWSTR Name, | ||
| 4057 | DWORD Access, | ||
| 4058 | [out, annotation("_Out_")] HANDLE* pNTHandle ); | ||
| 4059 | |||
| 4060 | HRESULT MakeResident( | ||
| 4061 | UINT NumObjects, | ||
| 4062 | [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects ); | ||
| 4063 | |||
| 4064 | HRESULT Evict( | ||
| 4065 | UINT NumObjects, | ||
| 4066 | [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects ); | ||
| 4067 | |||
| 4068 | HRESULT CreateFence( | ||
| 4069 | UINT64 InitialValue, | ||
| 4070 | D3D12_FENCE_FLAGS Flags, | ||
| 4071 | [in] REFIID riid, // Expected: ID3D12Fence | ||
| 4072 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppFence); | ||
| 4073 | |||
| 4074 | HRESULT GetDeviceRemovedReason(); | ||
| 4075 | |||
| 4076 | void GetCopyableFootprints( | ||
| 4077 | [annotation("_In_")] const D3D12_RESOURCE_DESC* pResourceDesc, | ||
| 4078 | [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES)")] UINT FirstSubresource, | ||
| 4079 | [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource)")] UINT NumSubresources, | ||
| 4080 | UINT64 BaseOffset, | ||
| 4081 | [annotation("_Out_writes_opt_(NumSubresources)")] D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, | ||
| 4082 | [annotation("_Out_writes_opt_(NumSubresources)")] UINT* pNumRows, | ||
| 4083 | [annotation("_Out_writes_opt_(NumSubresources)")] UINT64* pRowSizeInBytes, | ||
| 4084 | [annotation("_Out_opt_")] UINT64* pTotalBytes ); | ||
| 4085 | |||
| 4086 | HRESULT CreateQueryHeap( | ||
| 4087 | [annotation("_In_")] const D3D12_QUERY_HEAP_DESC* pDesc, | ||
| 4088 | [in] REFIID riid, // Expected: ID3D12QueryHeap | ||
| 4089 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvHeap | ||
| 4090 | ); | ||
| 4091 | |||
| 4092 | HRESULT SetStablePowerState(BOOL Enable); | ||
| 4093 | |||
| 4094 | HRESULT CreateCommandSignature( | ||
| 4095 | [annotation("_In_")] const D3D12_COMMAND_SIGNATURE_DESC* pDesc, | ||
| 4096 | [annotation("_In_opt_")] ID3D12RootSignature* pRootSignature, | ||
| 4097 | [in] REFIID riid, // Expected: ID3D12CommandSignature | ||
| 4098 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvCommandSignature | ||
| 4099 | ); | ||
| 4100 | |||
| 4101 | void GetResourceTiling( | ||
| 4102 | [annotation("_In_")] ID3D12Resource* pTiledResource, | ||
| 4103 | [annotation("_Out_opt_")] UINT* pNumTilesForEntireResource, | ||
| 4104 | [annotation("_Out_opt_")] D3D12_PACKED_MIP_INFO* pPackedMipDesc, | ||
| 4105 | [annotation("_Out_opt_")] D3D12_TILE_SHAPE* pStandardTileShapeForNonPackedMips, | ||
| 4106 | [annotation("_Inout_opt_")] UINT* pNumSubresourceTilings, | ||
| 4107 | [annotation("_In_")] UINT FirstSubresourceTilingToGet, | ||
| 4108 | [annotation("_Out_writes_(*pNumSubresourceTilings)")] D3D12_SUBRESOURCE_TILING* pSubresourceTilingsForNonPackedMips | ||
| 4109 | ); | ||
| 4110 | |||
| 4111 | LUID GetAdapterLuid(); | ||
| 4112 | } | ||
| 4113 | |||
| 4114 | // D3D12 Revision 1 | ||
| 4115 | [ uuid( c64226a8-9201-46af-b4cc-53fb9ff7414f ), object, local, pointer_default( unique ) ] | ||
| 4116 | interface ID3D12PipelineLibrary | ||
| 4117 | : ID3D12DeviceChild | ||
| 4118 | { | ||
| 4119 | HRESULT StorePipeline( | ||
| 4120 | [annotation("_In_opt_")] LPCWSTR pName, | ||
| 4121 | [annotation("_In_")] ID3D12PipelineState *pPipeline | ||
| 4122 | ); | ||
| 4123 | |||
| 4124 | HRESULT LoadGraphicsPipeline( | ||
| 4125 | [annotation("_In_")] LPCWSTR pName, | ||
| 4126 | [annotation("_In_")] const D3D12_GRAPHICS_PIPELINE_STATE_DESC* pDesc, | ||
| 4127 | [in] REFIID riid, // Expected: ID3D12PipelineState | ||
| 4128 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState | ||
| 4129 | ); | ||
| 4130 | |||
| 4131 | HRESULT LoadComputePipeline( | ||
| 4132 | [annotation("_In_")] LPCWSTR pName, | ||
| 4133 | [annotation("_In_")] const D3D12_COMPUTE_PIPELINE_STATE_DESC* pDesc, | ||
| 4134 | [in] REFIID riid, // Expected: ID3D12PipelineState | ||
| 4135 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState | ||
| 4136 | ); | ||
| 4137 | |||
| 4138 | SIZE_T GetSerializedSize(); | ||
| 4139 | |||
| 4140 | HRESULT Serialize( | ||
| 4141 | [annotation("_Out_writes_(DataSizeInBytes)")] void* pData, | ||
| 4142 | SIZE_T DataSizeInBytes | ||
| 4143 | ); | ||
| 4144 | } | ||
| 4145 | |||
| 4146 | // Pipeline State v2 | ||
| 4147 | [ uuid( 80eabf42-2568-4e5e-bd82-c37f86961dc3 ), object, local, pointer_default( unique ) ] | ||
| 4148 | interface ID3D12PipelineLibrary1 | ||
| 4149 | : ID3D12PipelineLibrary | ||
| 4150 | { | ||
| 4151 | HRESULT LoadPipeline( | ||
| 4152 | [annotation("_In_")] LPCWSTR pName, | ||
| 4153 | [annotation("_In_")] const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc, | ||
| 4154 | [in] REFIID riid, // Expected: ID3D12PipelineState | ||
| 4155 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState | ||
| 4156 | ); | ||
| 4157 | } | ||
| 4158 | |||
| 4159 | typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS | ||
| 4160 | { | ||
| 4161 | D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0, | ||
| 4162 | D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1, | ||
| 4163 | |||
| 4164 | D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0, // Alias, default behavior is ALL | ||
| 4165 | } D3D12_MULTIPLE_FENCE_WAIT_FLAGS; | ||
| 4166 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_MULTIPLE_FENCE_WAIT_FLAGS )" ) | ||
| 4167 | |||
| 4168 | // Applications may use the whole value range of UINT for a priority. | ||
| 4169 | // These names are merely semantic suggestions. | ||
| 4170 | typedef enum D3D12_RESIDENCY_PRIORITY | ||
| 4171 | { | ||
| 4172 | D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000, | ||
| 4173 | D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000, | ||
| 4174 | D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000, | ||
| 4175 | D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000, | ||
| 4176 | D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000, | ||
| 4177 | } D3D12_RESIDENCY_PRIORITY; | ||
| 4178 | |||
| 4179 | [uuid(77acce80-638e-4e65-8895-c1f23386863e), object, local, pointer_default(unique)] | ||
| 4180 | interface ID3D12Device1 | ||
| 4181 | : ID3D12Device | ||
| 4182 | { | ||
| 4183 | HRESULT CreatePipelineLibrary( | ||
| 4184 | [annotation("_In_reads_(BlobLength)")] const void *pLibraryBlob, | ||
| 4185 | SIZE_T BlobLength, | ||
| 4186 | [in] REFIID riid, // Expected: ID3D12PipelineLibrary | ||
| 4187 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineLibrary | ||
| 4188 | ); | ||
| 4189 | |||
| 4190 | HRESULT SetEventOnMultipleFenceCompletion( | ||
| 4191 | [annotation("_In_reads_(NumFences)")] ID3D12Fence* const* ppFences, | ||
| 4192 | [annotation("_In_reads_(NumFences)")] const UINT64* pFenceValues, | ||
| 4193 | UINT NumFences, | ||
| 4194 | D3D12_MULTIPLE_FENCE_WAIT_FLAGS Flags, | ||
| 4195 | HANDLE hEvent | ||
| 4196 | ); | ||
| 4197 | |||
| 4198 | HRESULT SetResidencyPriority( | ||
| 4199 | UINT NumObjects, | ||
| 4200 | [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects, | ||
| 4201 | [annotation("_In_reads_(NumObjects)")] const D3D12_RESIDENCY_PRIORITY* pPriorities ); | ||
| 4202 | } | ||
| 4203 | |||
| 4204 | [uuid(30baa41e-b15b-475c-a0bb-1af5c5b64328), object, local, pointer_default(unique)] | ||
| 4205 | interface ID3D12Device2 | ||
| 4206 | : ID3D12Device1 | ||
| 4207 | { | ||
| 4208 | HRESULT CreatePipelineState( | ||
| 4209 | [in] const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc, | ||
| 4210 | [in] REFIID riid, // Can be any pipeline state interface, provided the pipeline subobjects match | ||
| 4211 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppPipelineState | ||
| 4212 | ); | ||
| 4213 | } | ||
| 4214 | |||
| 4215 | typedef enum D3D12_RESIDENCY_FLAGS | ||
| 4216 | { | ||
| 4217 | D3D12_RESIDENCY_FLAG_NONE = 0x0, | ||
| 4218 | D3D12_RESIDENCY_FLAG_DENY_OVERBUDGET = 0x1, | ||
| 4219 | } D3D12_RESIDENCY_FLAGS; | ||
| 4220 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RESIDENCY_FLAGS )" ) | ||
| 4221 | |||
| 4222 | [uuid(81dadc15-2bad-4392-93c5-101345c4aa98), object, local, pointer_default(unique)] | ||
| 4223 | interface ID3D12Device3 | ||
| 4224 | : ID3D12Device2 | ||
| 4225 | { | ||
| 4226 | HRESULT OpenExistingHeapFromAddress( | ||
| 4227 | [annotation("_In_")] const void* pAddress, | ||
| 4228 | [in] REFIID riid, // Expected: ID3D12Heap | ||
| 4229 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap | ||
| 4230 | ); | ||
| 4231 | HRESULT OpenExistingHeapFromFileMapping( | ||
| 4232 | [annotation("_In_")] HANDLE hFileMapping, | ||
| 4233 | [in] REFIID riid, // Expected: ID3D12Heap | ||
| 4234 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap | ||
| 4235 | ); | ||
| 4236 | HRESULT EnqueueMakeResident( | ||
| 4237 | D3D12_RESIDENCY_FLAGS Flags, | ||
| 4238 | UINT NumObjects, | ||
| 4239 | [annotation("_In_reads_(NumObjects)")] ID3D12Pageable*const* ppObjects, | ||
| 4240 | [annotation("_In_")] ID3D12Fence* pFenceToSignal, | ||
| 4241 | UINT64 FenceValueToSignal | ||
| 4242 | ); | ||
| 4243 | } | ||
| 4244 | |||
| 4245 | typedef enum D3D12_COMMAND_LIST_FLAGS | ||
| 4246 | { | ||
| 4247 | D3D12_COMMAND_LIST_FLAG_NONE = 0x0, | ||
| 4248 | } D3D12_COMMAND_LIST_FLAGS; | ||
| 4249 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_LIST_FLAGS )") | ||
| 4250 | |||
| 4251 | |||
| 4252 | typedef enum D3D12_COMMAND_POOL_FLAGS | ||
| 4253 | { | ||
| 4254 | D3D12_COMMAND_POOL_FLAG_NONE = 0x0, | ||
| 4255 | |||
| 4256 | } D3D12_COMMAND_POOL_FLAGS; | ||
| 4257 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_POOL_FLAGS )") | ||
| 4258 | |||
| 4259 | typedef enum D3D12_COMMAND_RECORDER_FLAGS | ||
| 4260 | { | ||
| 4261 | D3D12_COMMAND_RECORDER_FLAG_NONE = 0x0, | ||
| 4262 | |||
| 4263 | } D3D12_COMMAND_RECORDER_FLAGS; | ||
| 4264 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMMAND_RECORDER_FLAGS )") | ||
| 4265 | |||
| 4266 | typedef enum D3D12_PROTECTED_SESSION_STATUS | ||
| 4267 | { | ||
| 4268 | D3D12_PROTECTED_SESSION_STATUS_OK = 0, | ||
| 4269 | D3D12_PROTECTED_SESSION_STATUS_INVALID = 1, | ||
| 4270 | } D3D12_PROTECTED_SESSION_STATUS; | ||
| 4271 | |||
| 4272 | [uuid(A1533D18-0AC1-4084-85B9-89A96116806B), object, local, pointer_default(unique)] | ||
| 4273 | interface ID3D12ProtectedSession | ||
| 4274 | : ID3D12DeviceChild | ||
| 4275 | { | ||
| 4276 | HRESULT GetStatusFence( | ||
| 4277 | [in] REFIID riid, | ||
| 4278 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppFence); | ||
| 4279 | |||
| 4280 | D3D12_PROTECTED_SESSION_STATUS GetSessionStatus(); | ||
| 4281 | } | ||
| 4282 | |||
| 4283 | typedef enum D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS | ||
| 4284 | { | ||
| 4285 | D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE = 0x0, | ||
| 4286 | D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
| 4287 | |||
| 4288 | } D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS; | ||
| 4289 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS )") | ||
| 4290 | |||
| 4291 | typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT | ||
| 4292 | { | ||
| 4293 | UINT NodeIndex; // input | ||
| 4294 | D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS Support; // output | ||
| 4295 | } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT; | ||
| 4296 | |||
| 4297 | typedef enum D3D12_PROTECTED_RESOURCE_SESSION_FLAGS | ||
| 4298 | { | ||
| 4299 | D3D12_PROTECTED_RESOURCE_SESSION_FLAG_NONE = 0x0, | ||
| 4300 | |||
| 4301 | } D3D12_PROTECTED_RESOURCE_SESSION_FLAGS; | ||
| 4302 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_PROTECTED_RESOURCE_SESSION_FLAGS )") | ||
| 4303 | |||
| 4304 | typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC | ||
| 4305 | { | ||
| 4306 | UINT NodeMask; | ||
| 4307 | D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; | ||
| 4308 | } D3D12_PROTECTED_RESOURCE_SESSION_DESC; | ||
| 4309 | |||
| 4310 | [uuid(6CD696F4-F289-40CC-8091-5A6C0A099C3D), object, local, pointer_default(unique)] | ||
| 4311 | interface ID3D12ProtectedResourceSession | ||
| 4312 | : ID3D12ProtectedSession | ||
| 4313 | { | ||
| 4314 | D3D12_PROTECTED_RESOURCE_SESSION_DESC GetDesc(); | ||
| 4315 | } | ||
| 4316 | |||
| 4317 | [uuid(e865df17-a9ee-46f9-a463-3098315aa2e5), object, local, pointer_default(unique)] | ||
| 4318 | interface ID3D12Device4 | ||
| 4319 | : ID3D12Device3 | ||
| 4320 | { | ||
| 4321 | HRESULT CreateCommandList1( | ||
| 4322 | [annotation("_In_")] UINT nodeMask, | ||
| 4323 | [annotation("_In_")] D3D12_COMMAND_LIST_TYPE type, | ||
| 4324 | [annotation("_In_")] D3D12_COMMAND_LIST_FLAGS flags, | ||
| 4325 | [in] REFIID riid, // Expected: ID3D12CommandList | ||
| 4326 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandList | ||
| 4327 | ); | ||
| 4328 | |||
| 4329 | HRESULT CreateProtectedResourceSession( | ||
| 4330 | [annotation("_In_")] const D3D12_PROTECTED_RESOURCE_SESSION_DESC* pDesc, | ||
| 4331 | [annotation("_In_")] REFIID riid, // Expected: ID3D12ProtectedResourceSession, | ||
| 4332 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppSession | ||
| 4333 | ); | ||
| 4334 | |||
| 4335 | HRESULT CreateCommittedResource1( | ||
| 4336 | [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, | ||
| 4337 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 4338 | [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, | ||
| 4339 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 4340 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 4341 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 4342 | [in] REFIID riidResource, // Expected: ID3D12Resource1* | ||
| 4343 | [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource | ||
| 4344 | ); | ||
| 4345 | |||
| 4346 | HRESULT CreateHeap1( | ||
| 4347 | [annotation("_In_")] const D3D12_HEAP_DESC* pDesc, | ||
| 4348 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 4349 | [in] REFIID riid, // Expected: ID3D12Heap1* | ||
| 4350 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvHeap | ||
| 4351 | ); | ||
| 4352 | |||
| 4353 | HRESULT CreateReservedResource1( | ||
| 4354 | [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, | ||
| 4355 | D3D12_RESOURCE_STATES InitialState, | ||
| 4356 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 4357 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 4358 | [in] REFIID riid, // Expected: ID3D12Resource1* | ||
| 4359 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource | ||
| 4360 | ); | ||
| 4361 | |||
| 4362 | D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo1( | ||
| 4363 | UINT visibleMask, | ||
| 4364 | UINT numResourceDescs, | ||
| 4365 | [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC* pResourceDescs, | ||
| 4366 | [annotation("_Out_writes_opt_(numResourceDescs)")] D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1 | ||
| 4367 | ); | ||
| 4368 | } | ||
| 4369 | |||
| 4370 | typedef enum D3D12_LIFETIME_STATE | ||
| 4371 | { | ||
| 4372 | D3D12_LIFETIME_STATE_IN_USE, | ||
| 4373 | D3D12_LIFETIME_STATE_NOT_IN_USE, | ||
| 4374 | } D3D12_LIFETIME_STATE; | ||
| 4375 | |||
| 4376 | interface ID3D12LifetimeTracker; | ||
| 4377 | |||
| 4378 | [uuid(e667af9f-cd56-4f46-83ce-032e595d70a8), object, local, pointer_default(unique)] | ||
| 4379 | interface ID3D12LifetimeOwner : IUnknown | ||
| 4380 | { | ||
| 4381 | void LifetimeStateUpdated(D3D12_LIFETIME_STATE NewState); | ||
| 4382 | } | ||
| 4383 | |||
| 4384 | [uuid(f1df64b6-57fd-49cd-8807-c0eb88b45c8f), object, local, pointer_default(unique)] | ||
| 4385 | interface ID3D12SwapChainAssistant | ||
| 4386 | : IUnknown | ||
| 4387 | { | ||
| 4388 | LUID GetLUID(); | ||
| 4389 | HRESULT GetSwapChainObject(REFIID riid, [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppv); | ||
| 4390 | HRESULT GetCurrentResourceAndCommandQueue(REFIID riidResource, [out, iid_is(riidResource), annotation("_COM_Outptr_")] void** ppvResource, | ||
| 4391 | REFIID riidQueue, [out, iid_is(riidQueue), annotation("_COM_Outptr_")] void** ppvQueue); | ||
| 4392 | HRESULT InsertImplicitSync(); | ||
| 4393 | } | ||
| 4394 | |||
| 4395 | [uuid(3fd03d36-4eb1-424a-a582-494ecb8ba813), object, local, pointer_default(unique)] | ||
| 4396 | interface ID3D12LifetimeTracker | ||
| 4397 | : ID3D12DeviceChild | ||
| 4398 | { | ||
| 4399 | HRESULT DestroyOwnedObject([annotation("_In_")] ID3D12DeviceChild* pObject); | ||
| 4400 | } | ||
| 4401 | |||
| 4402 | typedef enum D3D12_META_COMMAND_PARAMETER_TYPE | ||
| 4403 | { | ||
| 4404 | D3D12_META_COMMAND_PARAMETER_TYPE_FLOAT = 0, | ||
| 4405 | D3D12_META_COMMAND_PARAMETER_TYPE_UINT64 = 1, | ||
| 4406 | D3D12_META_COMMAND_PARAMETER_TYPE_GPU_VIRTUAL_ADDRESS = 2, | ||
| 4407 | D3D12_META_COMMAND_PARAMETER_TYPE_CPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 3, | ||
| 4408 | D3D12_META_COMMAND_PARAMETER_TYPE_GPU_DESCRIPTOR_HANDLE_HEAP_TYPE_CBV_SRV_UAV = 4, | ||
| 4409 | } D3D12_META_COMMAND_PARAMETER_TYPE; | ||
| 4410 | |||
| 4411 | typedef enum D3D12_META_COMMAND_PARAMETER_FLAGS | ||
| 4412 | { | ||
| 4413 | D3D12_META_COMMAND_PARAMETER_FLAG_INPUT = 0x00000001, | ||
| 4414 | D3D12_META_COMMAND_PARAMETER_FLAG_OUTPUT = 0x00000002 | ||
| 4415 | } D3D12_META_COMMAND_PARAMETER_FLAGS; | ||
| 4416 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_META_COMMAND_PARAMETER_FLAGS )") | ||
| 4417 | |||
| 4418 | typedef enum D3D12_META_COMMAND_PARAMETER_STAGE | ||
| 4419 | { | ||
| 4420 | D3D12_META_COMMAND_PARAMETER_STAGE_CREATION = 0, | ||
| 4421 | D3D12_META_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, | ||
| 4422 | D3D12_META_COMMAND_PARAMETER_STAGE_EXECUTION = 2, | ||
| 4423 | } D3D12_META_COMMAND_PARAMETER_STAGE; | ||
| 4424 | |||
| 4425 | typedef struct D3D12_META_COMMAND_PARAMETER_DESC | ||
| 4426 | { | ||
| 4427 | LPCWSTR Name; | ||
| 4428 | D3D12_META_COMMAND_PARAMETER_TYPE Type; | ||
| 4429 | D3D12_META_COMMAND_PARAMETER_FLAGS Flags; | ||
| 4430 | D3D12_RESOURCE_STATES RequiredResourceState; | ||
| 4431 | UINT StructureOffset; | ||
| 4432 | } D3D12_META_COMMAND_PARAMETER_DESC; | ||
| 4433 | |||
| 4434 | typedef enum D3D12_GRAPHICS_STATES | ||
| 4435 | { | ||
| 4436 | D3D12_GRAPHICS_STATE_NONE = 0, | ||
| 4437 | D3D12_GRAPHICS_STATE_IA_VERTEX_BUFFERS = (1 << 0), | ||
| 4438 | D3D12_GRAPHICS_STATE_IA_INDEX_BUFFER = (1 << 1), | ||
| 4439 | D3D12_GRAPHICS_STATE_IA_PRIMITIVE_TOPOLOGY = (1 << 2), | ||
| 4440 | D3D12_GRAPHICS_STATE_DESCRIPTOR_HEAP = (1 << 3), | ||
| 4441 | D3D12_GRAPHICS_STATE_GRAPHICS_ROOT_SIGNATURE = (1 << 4), | ||
| 4442 | D3D12_GRAPHICS_STATE_COMPUTE_ROOT_SIGNATURE = (1 << 5), | ||
| 4443 | D3D12_GRAPHICS_STATE_RS_VIEWPORTS = (1 << 6), | ||
| 4444 | D3D12_GRAPHICS_STATE_RS_SCISSOR_RECTS = (1 << 7), | ||
| 4445 | D3D12_GRAPHICS_STATE_PREDICATION = (1 << 8), | ||
| 4446 | D3D12_GRAPHICS_STATE_OM_RENDER_TARGETS = (1 << 9), | ||
| 4447 | D3D12_GRAPHICS_STATE_OM_STENCIL_REF = (1 << 10), | ||
| 4448 | D3D12_GRAPHICS_STATE_OM_BLEND_FACTOR = (1 << 11), | ||
| 4449 | D3D12_GRAPHICS_STATE_PIPELINE_STATE = (1 << 12), | ||
| 4450 | D3D12_GRAPHICS_STATE_SO_TARGETS = (1 << 13), | ||
| 4451 | D3D12_GRAPHICS_STATE_OM_DEPTH_BOUNDS = (1 << 14), | ||
| 4452 | D3D12_GRAPHICS_STATE_SAMPLE_POSITIONS = (1 << 15), | ||
| 4453 | D3D12_GRAPHICS_STATE_VIEW_INSTANCE_MASK = (1 << 16), | ||
| 4454 | |||
| 4455 | } D3D12_GRAPHICS_STATES; | ||
| 4456 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_GRAPHICS_STATES )") | ||
| 4457 | |||
| 4458 | typedef struct D3D12_META_COMMAND_DESC | ||
| 4459 | { | ||
| 4460 | GUID Id; | ||
| 4461 | LPCWSTR Name; | ||
| 4462 | D3D12_GRAPHICS_STATES InitializationDirtyState; | ||
| 4463 | D3D12_GRAPHICS_STATES ExecutionDirtyState; | ||
| 4464 | } D3D12_META_COMMAND_DESC; | ||
| 4465 | |||
| 4466 | [uuid(47016943-fca8-4594-93ea-af258b55346d), object, local, pointer_default(unique)] | ||
| 4467 | interface ID3D12StateObject | ||
| 4468 | : ID3D12Pageable | ||
| 4469 | { | ||
| 4470 | } | ||
| 4471 | |||
| 4472 | [uuid(de5fa827-9bf9-4f26-89ff-d7f56fde3860), object, local, pointer_default(unique)] | ||
| 4473 | interface ID3D12StateObjectProperties | ||
| 4474 | : IUnknown | ||
| 4475 | { | ||
| 4476 | void* GetShaderIdentifier([annotation("_In_")] LPCWSTR pExportName); | ||
| 4477 | UINT64 GetShaderStackSize([annotation("_In_")] LPCWSTR pExportName); | ||
| 4478 | UINT64 GetPipelineStackSize(); | ||
| 4479 | void SetPipelineStackSize(UINT64 PipelineStackSizeInBytes); | ||
| 4480 | } | ||
| 4481 | |||
| 4482 | typedef struct D3D12_PROGRAM_IDENTIFIER | ||
| 4483 | { | ||
| 4484 | UINT64 OpaqueData[4]; | ||
| 4485 | } D3D12_PROGRAM_IDENTIFIER; | ||
| 4486 | |||
| 4487 | [uuid(460caac7-1d24-446a-a184-ca67db494138), object, local, pointer_default(unique)] | ||
| 4488 | interface ID3D12StateObjectProperties1 | ||
| 4489 | : ID3D12StateObjectProperties | ||
| 4490 | { | ||
| 4491 | D3D12_PROGRAM_IDENTIFIER GetProgramIdentifier(LPCWSTR pProgramName); | ||
| 4492 | } | ||
| 4493 | |||
| 4494 | [uuid(d5e82917-f0f1-44cf-ae5e-ce222dd0b884), object, local, pointer_default(unique)] | ||
| 4495 | interface ID3D12StateObjectProperties2 | ||
| 4496 | : ID3D12StateObjectProperties1 | ||
| 4497 | { | ||
| 4498 | HRESULT GetGlobalRootSignatureForProgram( | ||
| 4499 | [in] LPCWSTR pProgramName, | ||
| 4500 | [in] REFIID riid, // Expected ID3D12RootSignature | ||
| 4501 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvRootSignature); | ||
| 4502 | |||
| 4503 | HRESULT GetGlobalRootSignatureForShader( | ||
| 4504 | [in] LPCWSTR pExportName, | ||
| 4505 | [in] REFIID riid, // Expected ID3D12RootSignature | ||
| 4506 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvRootSignature); | ||
| 4507 | } | ||
| 4508 | |||
| 4509 | typedef struct D3D12_NODE_ID | ||
| 4510 | { | ||
| 4511 | LPCWSTR Name; | ||
| 4512 | UINT ArrayIndex; | ||
| 4513 | } D3D12_NODE_ID; | ||
| 4514 | |||
| 4515 | typedef struct D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS | ||
| 4516 | { | ||
| 4517 | UINT64 MinSizeInBytes; | ||
| 4518 | UINT64 MaxSizeInBytes; | ||
| 4519 | UINT SizeGranularityInBytes; | ||
| 4520 | } D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS; | ||
| 4521 | |||
| 4522 | [uuid(065acf71-f863-4b89-82f4-02e4d5886757), object, local, pointer_default(unique)] | ||
| 4523 | interface ID3D12WorkGraphProperties : IUnknown | ||
| 4524 | { | ||
| 4525 | UINT GetNumWorkGraphs(); | ||
| 4526 | LPCWSTR GetProgramName(UINT WorkGraphIndex); | ||
| 4527 | UINT GetWorkGraphIndex(LPCWSTR pProgramName); | ||
| 4528 | |||
| 4529 | UINT GetNumNodes(UINT WorkGraphIndex); | ||
| 4530 | D3D12_NODE_ID GetNodeID(UINT WorkGraphIndex, UINT NodeIndex); | ||
| 4531 | UINT GetNodeIndex(UINT WorkGraphIndex, D3D12_NODE_ID NodeID); | ||
| 4532 | UINT GetNodeLocalRootArgumentsTableIndex(UINT WorkGraphIndex, UINT NodeIndex); | ||
| 4533 | |||
| 4534 | UINT GetNumEntrypoints(UINT WorkGraphIndex); | ||
| 4535 | D3D12_NODE_ID GetEntrypointID(UINT WorkGraphIndex, UINT EntrypointIndex); | ||
| 4536 | UINT GetEntrypointIndex(UINT WorkGraphIndex, D3D12_NODE_ID NodeID); | ||
| 4537 | UINT GetEntrypointRecordSizeInBytes(UINT WorkGraphIndex, UINT EntrypointIndex); | ||
| 4538 | |||
| 4539 | void GetWorkGraphMemoryRequirements( | ||
| 4540 | UINT WorkGraphIndex, | ||
| 4541 | [annotation("_Out_")] D3D12_WORK_GRAPH_MEMORY_REQUIREMENTS* pWorkGraphMemoryRequirements); | ||
| 4542 | |||
| 4543 | UINT GetEntrypointRecordAlignmentInBytes(UINT WorkGraphIndex, UINT EntrypointIndex); | ||
| 4544 | } | ||
| 4545 | |||
| 4546 | |||
| 4547 | typedef enum D3D12_STATE_SUBOBJECT_TYPE | ||
| 4548 | { | ||
| 4549 | D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG = 0, // D3D12_STATE_OBJECT_CONFIG | ||
| 4550 | D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE = 1, // D3D12_GLOBAL_ROOT_SIGNATURE | ||
| 4551 | D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE = 2, // D3D12_LOCAL_ROOT_SIGNATURE | ||
| 4552 | D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK = 3, // D3D12_NODE_MASK | ||
| 4553 | // 4 unused | ||
| 4554 | D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY = 5, // D3D12_DXIL_LIBRARY_DESC | ||
| 4555 | D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION = 6, // D3D12_EXISTING_COLLECTION_DESC | ||
| 4556 | D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 7, // D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION | ||
| 4557 | D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION = 8, // D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION | ||
| 4558 | D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG = 9, // D3D12_RAYTRACING_SHADER_CONFIG | ||
| 4559 | D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG = 10, // D3D12_RAYTRACING_PIPELINE_CONFIG | ||
| 4560 | D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP = 11, // D3D12_HIT_GROUP_DESC | ||
| 4561 | D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1 = 12, // D3D12_RAYTRACING_PIPELINE_CONFIG1 | ||
| 4562 | D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH = 13, // D3D12_WORK_GRAPH_DESC | ||
| 4563 | D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT = 14, // D3D12_STREAM_OUTPUT_DESC | ||
| 4564 | D3D12_STATE_SUBOBJECT_TYPE_BLEND = 15, // D3D12_BLEND_DESC | ||
| 4565 | D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK = 16, // UINT | ||
| 4566 | D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER = 17, // D3D12_RASTERIZER_DESC2 | ||
| 4567 | D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL = 18, // D3D12_DEPTH_STENCIL_DESC | ||
| 4568 | D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT = 19, // D3D12_INPUT_LAYOUT_DESC | ||
| 4569 | D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE = 20, // D3D12_INDEX_BUFFER_STRIP_CUT_VALUE | ||
| 4570 | D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY = 21, // D3D12_PRIMITIVE_TOPOLOGY_TYPE | ||
| 4571 | D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS = 22, // D3D12_RT_FORMAT_ARRAY | ||
| 4572 | D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT = 23, // DXGI_FORMAT | ||
| 4573 | D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC = 24, // DXGI_SAMPLE_DESC | ||
| 4574 | // 25 is unused | ||
| 4575 | D3D12_STATE_SUBOBJECT_TYPE_FLAGS = 26, // D3D12_PIPELINE_STATE_FLAGS | ||
| 4576 | D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1 = 27, // D3D12_DEPTH_STENCIL_DESC1 | ||
| 4577 | D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING = 28, // D3D12_VIEW_INSTANCING_DESC | ||
| 4578 | D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM = 29, // D3D12_GENERIC_PROGRAM_DESC | ||
| 4579 | D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2 = 30, // D3D12_DEPTH_STENCIL_DESC2 | ||
| 4580 | D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE = 31, // D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_DESC | ||
| 4581 | D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE = 32, // D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE_DESC | ||
| 4582 | D3D12_STATE_SUBOBJECT_TYPE_COMPILER_EXISITING_COLLECTION = 33, // D3D12_COMPILER_EXISTING_COLLECTION_DESC | ||
| 4583 | D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY = 36, // D3D12_EXISTING_COLLECTION_BY_KEY_DESC | ||
| 4584 | D3D12_STATE_SUBOBJECT_TYPE_MAX_VALID, | ||
| 4585 | } D3D12_STATE_SUBOBJECT_TYPE; | ||
| 4586 | |||
| 4587 | typedef struct D3D12_STATE_SUBOBJECT | ||
| 4588 | { | ||
| 4589 | D3D12_STATE_SUBOBJECT_TYPE Type; | ||
| 4590 | const void* pDesc; | ||
| 4591 | } D3D12_STATE_SUBOBJECT; | ||
| 4592 | |||
| 4593 | typedef enum D3D12_STATE_OBJECT_FLAGS | ||
| 4594 | { | ||
| 4595 | D3D12_STATE_OBJECT_FLAG_NONE = 0x0, | ||
| 4596 | D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 0x1, | ||
| 4597 | D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 0x2, | ||
| 4598 | D3D12_STATE_OBJECT_FLAG_ALLOW_STATE_OBJECT_ADDITIONS = 0x4, | ||
| 4599 | |||
| 4600 | } D3D12_STATE_OBJECT_FLAGS; | ||
| 4601 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_FLAGS )") | ||
| 4602 | |||
| 4603 | typedef struct D3D12_STATE_OBJECT_CONFIG | ||
| 4604 | { | ||
| 4605 | D3D12_STATE_OBJECT_FLAGS Flags; | ||
| 4606 | } D3D12_STATE_OBJECT_CONFIG; | ||
| 4607 | |||
| 4608 | typedef struct D3D12_GLOBAL_ROOT_SIGNATURE | ||
| 4609 | { | ||
| 4610 | ID3D12RootSignature* pGlobalRootSignature; | ||
| 4611 | } D3D12_GLOBAL_ROOT_SIGNATURE; | ||
| 4612 | |||
| 4613 | typedef struct D3D12_LOCAL_ROOT_SIGNATURE | ||
| 4614 | { | ||
| 4615 | ID3D12RootSignature* pLocalRootSignature; | ||
| 4616 | } D3D12_LOCAL_ROOT_SIGNATURE; | ||
| 4617 | |||
| 4618 | typedef struct D3D12_NODE_MASK | ||
| 4619 | { | ||
| 4620 | UINT NodeMask; | ||
| 4621 | } D3D12_NODE_MASK; | ||
| 4622 | |||
| 4623 | typedef struct D3D12_SAMPLE_MASK | ||
| 4624 | { | ||
| 4625 | UINT SampleMask; | ||
| 4626 | } D3D12_SAMPLE_MASK; | ||
| 4627 | |||
| 4628 | typedef struct D3D12_IB_STRIP_CUT_VALUE | ||
| 4629 | { | ||
| 4630 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IndexBufferStripCutValue; | ||
| 4631 | } D3D12_IB_STRIP_CUT_VALUE; | ||
| 4632 | |||
| 4633 | typedef struct D3D12_PRIMITIVE_TOPOLOGY_DESC | ||
| 4634 | { | ||
| 4635 | D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopology; | ||
| 4636 | } D3D12_PRIMITIVE_TOPOLOGY_DESC; | ||
| 4637 | |||
| 4638 | typedef struct D3D12_DEPTH_STENCIL_FORMAT | ||
| 4639 | { | ||
| 4640 | DXGI_FORMAT DepthStencilFormat; | ||
| 4641 | } D3D12_DEPTH_STENCIL_FORMAT; | ||
| 4642 | |||
| 4643 | typedef enum D3D12_EXPORT_FLAGS | ||
| 4644 | { | ||
| 4645 | D3D12_EXPORT_FLAG_NONE = 0x0, | ||
| 4646 | } D3D12_EXPORT_FLAGS; | ||
| 4647 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_EXPORT_FLAGS )") | ||
| 4648 | |||
| 4649 | typedef struct D3D12_EXPORT_DESC | ||
| 4650 | { | ||
| 4651 | LPCWSTR Name; | ||
| 4652 | [annotation("_In_opt_")] LPCWSTR ExportToRename; | ||
| 4653 | D3D12_EXPORT_FLAGS Flags; | ||
| 4654 | } D3D12_EXPORT_DESC; | ||
| 4655 | |||
| 4656 | typedef struct D3D12_DXIL_LIBRARY_DESC | ||
| 4657 | { | ||
| 4658 | D3D12_SHADER_BYTECODE DXILLibrary; | ||
| 4659 | UINT NumExports; // Optional, if 0 all exports in the library/collection will be surfaced | ||
| 4660 | [annotation("_In_reads_(NumExports)")] const D3D12_EXPORT_DESC* pExports; | ||
| 4661 | } D3D12_DXIL_LIBRARY_DESC; | ||
| 4662 | |||
| 4663 | |||
| 4664 | typedef struct D3D12_EXISTING_COLLECTION_DESC | ||
| 4665 | { | ||
| 4666 | ID3D12StateObject* pExistingCollection; | ||
| 4667 | UINT NumExports; // Optional, if 0 all exports in the library/collection will be surfaced | ||
| 4668 | [annotation("_In_reads_(NumExports)")] const D3D12_EXPORT_DESC* pExports; | ||
| 4669 | } D3D12_EXISTING_COLLECTION_DESC; | ||
| 4670 | |||
| 4671 | typedef struct D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION | ||
| 4672 | { | ||
| 4673 | const D3D12_STATE_SUBOBJECT* pSubobjectToAssociate; | ||
| 4674 | UINT NumExports; | ||
| 4675 | [annotation("_In_reads_(NumExports)")] LPCWSTR* pExports; | ||
| 4676 | } D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION; | ||
| 4677 | |||
| 4678 | typedef struct D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION | ||
| 4679 | { | ||
| 4680 | LPCWSTR SubobjectToAssociate; | ||
| 4681 | UINT NumExports; | ||
| 4682 | [annotation("_In_reads_(NumExports)")] LPCWSTR* pExports; | ||
| 4683 | } D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; | ||
| 4684 | |||
| 4685 | typedef enum D3D12_HIT_GROUP_TYPE | ||
| 4686 | { | ||
| 4687 | D3D12_HIT_GROUP_TYPE_TRIANGLES = 0x0, | ||
| 4688 | D3D12_HIT_GROUP_TYPE_PROCEDURAL_PRIMITIVE = 0x1, | ||
| 4689 | } D3D12_HIT_GROUP_TYPE; | ||
| 4690 | |||
| 4691 | typedef struct D3D12_HIT_GROUP_DESC | ||
| 4692 | { | ||
| 4693 | LPCWSTR HitGroupExport; | ||
| 4694 | D3D12_HIT_GROUP_TYPE Type; | ||
| 4695 | [annotation("_In_opt_")] LPCWSTR AnyHitShaderImport; | ||
| 4696 | [annotation("_In_opt_")] LPCWSTR ClosestHitShaderImport; | ||
| 4697 | [annotation("_In_opt_")] LPCWSTR IntersectionShaderImport; | ||
| 4698 | } D3D12_HIT_GROUP_DESC; | ||
| 4699 | |||
| 4700 | typedef struct D3D12_RAYTRACING_SHADER_CONFIG | ||
| 4701 | { | ||
| 4702 | UINT MaxPayloadSizeInBytes; | ||
| 4703 | UINT MaxAttributeSizeInBytes; | ||
| 4704 | } D3D12_RAYTRACING_SHADER_CONFIG; | ||
| 4705 | |||
| 4706 | typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG | ||
| 4707 | { | ||
| 4708 | UINT MaxTraceRecursionDepth; | ||
| 4709 | } D3D12_RAYTRACING_PIPELINE_CONFIG; | ||
| 4710 | |||
| 4711 | typedef enum D3D12_RAYTRACING_PIPELINE_FLAGS | ||
| 4712 | { | ||
| 4713 | D3D12_RAYTRACING_PIPELINE_FLAG_NONE = 0x0, | ||
| 4714 | D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_TRIANGLES = 0x100, | ||
| 4715 | D3D12_RAYTRACING_PIPELINE_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200, | ||
| 4716 | D3D12_RAYTRACING_PIPELINE_FLAG_ALLOW_OPACITY_MICROMAPS = 0x400, | ||
| 4717 | } D3D12_RAYTRACING_PIPELINE_FLAGS; | ||
| 4718 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_PIPELINE_FLAGS )") | ||
| 4719 | |||
| 4720 | typedef struct D3D12_RAYTRACING_PIPELINE_CONFIG1 | ||
| 4721 | { | ||
| 4722 | UINT MaxTraceRecursionDepth; | ||
| 4723 | D3D12_RAYTRACING_PIPELINE_FLAGS Flags; | ||
| 4724 | } D3D12_RAYTRACING_PIPELINE_CONFIG1; | ||
| 4725 | |||
| 4726 | typedef struct D3D12_NODE_OUTPUT_OVERRIDES | ||
| 4727 | { | ||
| 4728 | UINT OutputIndex; | ||
| 4729 | [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; | ||
| 4730 | [annotation("_In_opt_")] const BOOL* pAllowSparseNodes; | ||
| 4731 | [annotation("_In_opt_")] const UINT* pMaxRecords; | ||
| 4732 | [annotation("_In_opt_")] const UINT* pMaxRecordsSharedWithOutputIndex; | ||
| 4733 | } D3D12_NODE_OUTPUT_OVERRIDES; | ||
| 4734 | |||
| 4735 | typedef struct D3D12_BROADCASTING_LAUNCH_OVERRIDES | ||
| 4736 | { | ||
| 4737 | [annotation("_In_opt_")] const UINT* pLocalRootArgumentsTableIndex; | ||
| 4738 | [annotation("_In_opt_")] const BOOL* pProgramEntry; | ||
| 4739 | [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; | ||
| 4740 | [annotation("_In_opt_ ")] const D3D12_NODE_ID* pShareInputOf; | ||
| 4741 | [annotation("_In_reads_opt_(3)")] const UINT* pDispatchGrid; | ||
| 4742 | [annotation("_In_reads_opt_(3)")] const UINT* pMaxDispatchGrid; | ||
| 4743 | UINT NumOutputOverrides; | ||
| 4744 | [annotation("_In_reads_opt_(NumOutputOverrides)")] const D3D12_NODE_OUTPUT_OVERRIDES* pOutputOverrides; | ||
| 4745 | } D3D12_BROADCASTING_LAUNCH_OVERRIDES; | ||
| 4746 | |||
| 4747 | typedef struct D3D12_COALESCING_LAUNCH_OVERRIDES | ||
| 4748 | { | ||
| 4749 | [annotation("_In_opt_")] const UINT* pLocalRootArgumentsTableIndex; | ||
| 4750 | [annotation("_In_opt_")] const BOOL* pProgramEntry; | ||
| 4751 | [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; | ||
| 4752 | [annotation("_In_opt_")] const D3D12_NODE_ID* pShareInputOf; | ||
| 4753 | UINT NumOutputOverrides; | ||
| 4754 | [annotation("_In_reads_opt_(NumOutputOverrides)")] const D3D12_NODE_OUTPUT_OVERRIDES* pOutputOverrides; | ||
| 4755 | } D3D12_COALESCING_LAUNCH_OVERRIDES; | ||
| 4756 | |||
| 4757 | typedef struct D3D12_THREAD_LAUNCH_OVERRIDES | ||
| 4758 | { | ||
| 4759 | [annotation("_In_opt_")] const UINT* pLocalRootArgumentsTableIndex; | ||
| 4760 | [annotation("_In_opt_")] const BOOL* pProgramEntry; | ||
| 4761 | [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; | ||
| 4762 | [annotation("_In_opt_")] const D3D12_NODE_ID* pShareInputOf; | ||
| 4763 | UINT NumOutputOverrides; | ||
| 4764 | [annotation("_In_reads_opt_(NumOutputOverrides)")] const D3D12_NODE_OUTPUT_OVERRIDES* pOutputOverrides; | ||
| 4765 | } D3D12_THREAD_LAUNCH_OVERRIDES; | ||
| 4766 | |||
| 4767 | typedef struct D3D12_COMMON_COMPUTE_NODE_OVERRIDES | ||
| 4768 | { | ||
| 4769 | [annotation("_In_opt_")] const UINT* pLocalRootArgumentsTableIndex; | ||
| 4770 | [annotation("_In_opt_")] const BOOL* pProgramEntry; | ||
| 4771 | [annotation("_In_opt_")] const D3D12_NODE_ID* pNewName; | ||
| 4772 | [annotation("_In_opt_")] const D3D12_NODE_ID* pShareInputOf; | ||
| 4773 | UINT NumOutputOverrides; | ||
| 4774 | [annotation("_In_reads_opt_(NumOutputOverrides)")] const D3D12_NODE_OUTPUT_OVERRIDES* pOutputOverrides; | ||
| 4775 | } D3D12_COMMON_COMPUTE_NODE_OVERRIDES; | ||
| 4776 | |||
| 4777 | typedef enum D3D12_NODE_OVERRIDES_TYPE | ||
| 4778 | { | ||
| 4779 | D3D12_NODE_OVERRIDES_TYPE_NONE = 0, | ||
| 4780 | D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH = 1, | ||
| 4781 | D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH = 2, | ||
| 4782 | D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH = 3, | ||
| 4783 | D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE = 4, | ||
| 4784 | } D3D12_NODE_OVERRIDES_TYPE; | ||
| 4785 | |||
| 4786 | typedef struct D3D12_SHADER_NODE | ||
| 4787 | { | ||
| 4788 | LPCWSTR Shader; | ||
| 4789 | D3D12_NODE_OVERRIDES_TYPE OverridesType; | ||
| 4790 | union | ||
| 4791 | { | ||
| 4792 | const D3D12_BROADCASTING_LAUNCH_OVERRIDES* pBroadcastingLaunchOverrides; | ||
| 4793 | const D3D12_COALESCING_LAUNCH_OVERRIDES* pCoalescingLaunchOverrides; | ||
| 4794 | const D3D12_THREAD_LAUNCH_OVERRIDES* pThreadLaunchOverrides; | ||
| 4795 | const D3D12_COMMON_COMPUTE_NODE_OVERRIDES* pCommonComputeNodeOverrides; | ||
| 4796 | }; | ||
| 4797 | } D3D12_SHADER_NODE; | ||
| 4798 | |||
| 4799 | |||
| 4800 | typedef enum D3D12_NODE_TYPE | ||
| 4801 | { | ||
| 4802 | D3D12_NODE_TYPE_SHADER = 0x0, | ||
| 4803 | } D3D12_NODE_TYPE; | ||
| 4804 | |||
| 4805 | typedef struct D3D12_NODE | ||
| 4806 | { | ||
| 4807 | D3D12_NODE_TYPE NodeType; | ||
| 4808 | union | ||
| 4809 | { | ||
| 4810 | D3D12_SHADER_NODE Shader; // D3D12_NODE_TYPE_SHADER | ||
| 4811 | }; | ||
| 4812 | } D3D12_NODE; | ||
| 4813 | |||
| 4814 | typedef enum D3D12_WORK_GRAPH_FLAGS | ||
| 4815 | { | ||
| 4816 | D3D12_WORK_GRAPH_FLAG_NONE = 0x0, | ||
| 4817 | D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES = 0x1, | ||
| 4818 | } D3D12_WORK_GRAPH_FLAGS; | ||
| 4819 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_WORK_GRAPH_FLAGS )") | ||
| 4820 | |||
| 4821 | typedef struct D3D12_WORK_GRAPH_DESC | ||
| 4822 | { | ||
| 4823 | LPCWSTR ProgramName; | ||
| 4824 | D3D12_WORK_GRAPH_FLAGS Flags; | ||
| 4825 | UINT NumEntrypoints; | ||
| 4826 | [annotation("_In_reads_opt_(NumEntrypoints)")] const D3D12_NODE_ID* pEntrypoints; | ||
| 4827 | UINT NumExplicitlyDefinedNodes; | ||
| 4828 | [annotation("_In_reads_opt_(NumExplicitlyDefinedNodes)")] const D3D12_NODE* pExplicitlyDefinedNodes; | ||
| 4829 | } D3D12_WORK_GRAPH_DESC; | ||
| 4830 | |||
| 4831 | typedef struct D3D12_GENERIC_PROGRAM_DESC | ||
| 4832 | { | ||
| 4833 | LPCWSTR ProgramName; | ||
| 4834 | UINT NumExports; | ||
| 4835 | [annotation("_In_reads_(NumExports)")] LPCWSTR* pExports; | ||
| 4836 | UINT NumSubobjects; | ||
| 4837 | [annotation("_In_reads_opt_(NumSubobjects)")] const D3D12_STATE_SUBOBJECT* const* ppSubobjects; | ||
| 4838 | } D3D12_GENERIC_PROGRAM_DESC; | ||
| 4839 | |||
| 4840 | typedef enum D3D12_STATE_OBJECT_TYPE | ||
| 4841 | { | ||
| 4842 | D3D12_STATE_OBJECT_TYPE_COLLECTION = 0, | ||
| 4843 | D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE = 3, | ||
| 4844 | D3D12_STATE_OBJECT_TYPE_EXECUTABLE = 4 | ||
| 4845 | } D3D12_STATE_OBJECT_TYPE; | ||
| 4846 | |||
| 4847 | typedef struct D3D12_STATE_OBJECT_DESC | ||
| 4848 | { | ||
| 4849 | D3D12_STATE_OBJECT_TYPE Type; | ||
| 4850 | UINT NumSubobjects; | ||
| 4851 | [annotation("_In_reads_(NumSubobjects)")] const D3D12_STATE_SUBOBJECT* pSubobjects; | ||
| 4852 | } D3D12_STATE_OBJECT_DESC; | ||
| 4853 | |||
| 4854 | typedef enum D3D12_RAYTRACING_GEOMETRY_FLAGS | ||
| 4855 | { | ||
| 4856 | D3D12_RAYTRACING_GEOMETRY_FLAG_NONE = 0x0, | ||
| 4857 | D3D12_RAYTRACING_GEOMETRY_FLAG_OPAQUE = 0x1, | ||
| 4858 | D3D12_RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANYHIT_INVOCATION = 0x2, | ||
| 4859 | } D3D12_RAYTRACING_GEOMETRY_FLAGS; | ||
| 4860 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_GEOMETRY_FLAGS )") | ||
| 4861 | |||
| 4862 | typedef enum D3D12_RAYTRACING_GEOMETRY_TYPE | ||
| 4863 | { | ||
| 4864 | D3D12_RAYTRACING_GEOMETRY_TYPE_TRIANGLES, | ||
| 4865 | D3D12_RAYTRACING_GEOMETRY_TYPE_PROCEDURAL_PRIMITIVE_AABBS, | ||
| 4866 | D3D12_RAYTRACING_GEOMETRY_TYPE_OMM_TRIANGLES | ||
| 4867 | } D3D12_RAYTRACING_GEOMETRY_TYPE; | ||
| 4868 | |||
| 4869 | typedef enum D3D12_RAYTRACING_INSTANCE_FLAGS | ||
| 4870 | { | ||
| 4871 | D3D12_RAYTRACING_INSTANCE_FLAG_NONE = 0x0, | ||
| 4872 | D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_CULL_DISABLE = 0x1, | ||
| 4873 | D3D12_RAYTRACING_INSTANCE_FLAG_TRIANGLE_FRONT_COUNTERCLOCKWISE = 0x2, | ||
| 4874 | D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OPAQUE = 0x4, | ||
| 4875 | D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_NON_OPAQUE = 0x8, | ||
| 4876 | D3D12_RAYTRACING_INSTANCE_FLAG_FORCE_OMM_2_STATE = 0x10, | ||
| 4877 | D3D12_RAYTRACING_INSTANCE_FLAG_DISABLE_OMMS = 0x20 | ||
| 4878 | } D3D12_RAYTRACING_INSTANCE_FLAGS; | ||
| 4879 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_INSTANCE_FLAGS )") | ||
| 4880 | |||
| 4881 | typedef struct D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE | ||
| 4882 | { | ||
| 4883 | D3D12_GPU_VIRTUAL_ADDRESS StartAddress; | ||
| 4884 | UINT64 StrideInBytes; | ||
| 4885 | } D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE; | ||
| 4886 | |||
| 4887 | typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE | ||
| 4888 | { | ||
| 4889 | D3D12_GPU_VIRTUAL_ADDRESS StartAddress; | ||
| 4890 | UINT64 SizeInBytes; | ||
| 4891 | } D3D12_GPU_VIRTUAL_ADDRESS_RANGE; | ||
| 4892 | |||
| 4893 | typedef struct D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE | ||
| 4894 | { | ||
| 4895 | D3D12_GPU_VIRTUAL_ADDRESS StartAddress; | ||
| 4896 | UINT64 SizeInBytes; | ||
| 4897 | UINT64 StrideInBytes; | ||
| 4898 | } D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE; | ||
| 4899 | |||
| 4900 | typedef struct D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC | ||
| 4901 | { | ||
| 4902 | D3D12_GPU_VIRTUAL_ADDRESS Transform3x4; | ||
| 4903 | DXGI_FORMAT IndexFormat; | ||
| 4904 | DXGI_FORMAT VertexFormat; | ||
| 4905 | UINT IndexCount; | ||
| 4906 | UINT VertexCount; | ||
| 4907 | D3D12_GPU_VIRTUAL_ADDRESS IndexBuffer; | ||
| 4908 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE VertexBuffer; | ||
| 4909 | } D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC; | ||
| 4910 | |||
| 4911 | typedef struct D3D12_RAYTRACING_AABB | ||
| 4912 | { | ||
| 4913 | FLOAT MinX; | ||
| 4914 | FLOAT MinY; | ||
| 4915 | FLOAT MinZ; | ||
| 4916 | FLOAT MaxX; | ||
| 4917 | FLOAT MaxY; | ||
| 4918 | FLOAT MaxZ; | ||
| 4919 | } D3D12_RAYTRACING_AABB; | ||
| 4920 | |||
| 4921 | typedef struct D3D12_RAYTRACING_GEOMETRY_AABBS_DESC | ||
| 4922 | { | ||
| 4923 | UINT64 AABBCount; | ||
| 4924 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE AABBs; | ||
| 4925 | } D3D12_RAYTRACING_GEOMETRY_AABBS_DESC; | ||
| 4926 | |||
| 4927 | typedef enum D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX | ||
| 4928 | { | ||
| 4929 | D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT = -1, | ||
| 4930 | D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE = -2, | ||
| 4931 | D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT = -3, | ||
| 4932 | D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE = -4, | ||
| 4933 | } D3D12_RAYTRACING_OPACITY_MICROMAP_SPECIAL_INDEX; | ||
| 4934 | |||
| 4935 | typedef enum D3D12_RAYTRACING_OPACITY_MICROMAP_STATE | ||
| 4936 | { | ||
| 4937 | D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_TRANSPARENT = 0, | ||
| 4938 | D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_OPAQUE = 1, | ||
| 4939 | D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_TRANSPARENT = 2, | ||
| 4940 | D3D12_RAYTRACING_OPACITY_MICROMAP_STATE_UNKNOWN_OPAQUE = 3, | ||
| 4941 | } D3D12_RAYTRACING_OPACITY_MICROMAP_STATE; | ||
| 4942 | |||
| 4943 | typedef enum D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT | ||
| 4944 | { | ||
| 4945 | D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_2_STATE = 0x1, | ||
| 4946 | D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT_OC1_4_STATE = 0x2, | ||
| 4947 | } D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT; | ||
| 4948 | |||
| 4949 | cpp_quote("typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_DESC") | ||
| 4950 | cpp_quote("{") | ||
| 4951 | cpp_quote(" UINT ByteOffset;") | ||
| 4952 | cpp_quote(" UINT SubdivisionLevel : 16;") | ||
| 4953 | cpp_quote(" D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format : 16;") | ||
| 4954 | cpp_quote("} D3D12_RAYTRACING_OPACITY_MICROMAP_DESC;") | ||
| 4955 | |||
| 4956 | typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC | ||
| 4957 | { | ||
| 4958 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE OpacityMicromapIndexBuffer; | ||
| 4959 | DXGI_FORMAT OpacityMicromapIndexFormat; | ||
| 4960 | UINT OpacityMicromapBaseLocation; | ||
| 4961 | D3D12_GPU_VIRTUAL_ADDRESS OpacityMicromapArray; | ||
| 4962 | } D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC; | ||
| 4963 | |||
| 4964 | typedef struct D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC | ||
| 4965 | { | ||
| 4966 | const D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC* pTriangles; | ||
| 4967 | const D3D12_RAYTRACING_GEOMETRY_OMM_LINKAGE_DESC* pOmmLinkage; | ||
| 4968 | } D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC; | ||
| 4969 | |||
| 4970 | typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS | ||
| 4971 | { | ||
| 4972 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0x00, | ||
| 4973 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x01, | ||
| 4974 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x02, | ||
| 4975 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x04, | ||
| 4976 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x08, | ||
| 4977 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10, | ||
| 4978 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20, | ||
| 4979 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_OMM_UPDATE = 0x40, | ||
| 4980 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_DISABLE_OMMS = 0x80, | ||
| 4981 | |||
| 4982 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS; | ||
| 4983 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS )") | ||
| 4984 | |||
| 4985 | typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE | ||
| 4986 | { | ||
| 4987 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0x0, | ||
| 4988 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1, | ||
| 4989 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2, | ||
| 4990 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3, | ||
| 4991 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4, | ||
| 4992 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE; | ||
| 4993 | |||
| 4994 | typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE | ||
| 4995 | { | ||
| 4996 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL = 0x0, | ||
| 4997 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL = 0x1, | ||
| 4998 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE_OPACITY_MICROMAP_ARRAY = 0x2, | ||
| 4999 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE; | ||
| 5000 | |||
| 5001 | typedef enum D3D12_ELEMENTS_LAYOUT | ||
| 5002 | { | ||
| 5003 | D3D12_ELEMENTS_LAYOUT_ARRAY = 0x0, | ||
| 5004 | D3D12_ELEMENTS_LAYOUT_ARRAY_OF_POINTERS = 0x1 | ||
| 5005 | } D3D12_ELEMENTS_LAYOUT; | ||
| 5006 | |||
| 5007 | typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE | ||
| 5008 | { | ||
| 5009 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE = 0x0, | ||
| 5010 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1, | ||
| 5011 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION = 0x2, | ||
| 5012 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE = 0x3, | ||
| 5013 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE; | ||
| 5014 | |||
| 5015 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC | ||
| 5016 | { | ||
| 5017 | D3D12_GPU_VIRTUAL_ADDRESS DestBuffer; | ||
| 5018 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TYPE InfoType; | ||
| 5019 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC; | ||
| 5020 | |||
| 5021 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC | ||
| 5022 | { | ||
| 5023 | UINT64 CompactedSizeInBytes; | ||
| 5024 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC; | ||
| 5025 | |||
| 5026 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC | ||
| 5027 | { | ||
| 5028 | UINT64 DecodedSizeInBytes; | ||
| 5029 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC; | ||
| 5030 | |||
| 5031 | typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER | ||
| 5032 | { | ||
| 5033 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; | ||
| 5034 | UINT NumDescs; | ||
| 5035 | } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER; | ||
| 5036 | cpp_quote("// Regarding D3D12_BUILD_RAY_TRACING_ACCELERATION_STRUCTURE_TOOLS_VISUALIZATION_HEADER above,") | ||
| 5037 | cpp_quote("// depending on Type field, NumDescs above is followed by either:") | ||
| 5038 | cpp_quote("// D3D12_RAY_TRACING_INSTANCE_DESC InstanceDescs[NumDescs]") | ||
| 5039 | cpp_quote("// or D3D12_RAY_TRACING_GEOMETRY_DESC GeometryDescs[NumDescs].") | ||
| 5040 | cpp_quote("// or D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC (NumDescs == 1 in this case).") | ||
| 5041 | cpp_quote("//") | ||
| 5042 | cpp_quote("// For D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC, the pOmmHistogram pointer becomes a GPUVA instead of CPU pointer") | ||
| 5043 | cpp_quote("//") | ||
| 5044 | cpp_quote("// There is 4 bytes of padding between GeometryDesc structs in the array so alignment is natural when viewed by CPU.") | ||
| 5045 | cpp_quote("") | ||
| 5046 | |||
| 5047 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC | ||
| 5048 | { | ||
| 5049 | UINT64 SerializedSizeInBytes; | ||
| 5050 | union | ||
| 5051 | { | ||
| 5052 | UINT64 NumBottomLevelAccelerationStructurePointers; | ||
| 5053 | UINT64 NumBottomLevelAccelerationStructureHeaderAndPointerListPairs; | ||
| 5054 | }; | ||
| 5055 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC; | ||
| 5056 | |||
| 5057 | typedef struct D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER | ||
| 5058 | { | ||
| 5059 | GUID DriverOpaqueGUID; | ||
| 5060 | BYTE DriverOpaqueVersioningData[16]; | ||
| 5061 | } D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER; | ||
| 5062 | |||
| 5063 | typedef enum D3D12_SERIALIZED_DATA_TYPE | ||
| 5064 | { | ||
| 5065 | D3D12_SERIALIZED_DATA_RAYTRACING_ACCELERATION_STRUCTURE = 0x0, | ||
| 5066 | D3D12_SERIALIZED_DATA_APPLICATION_SPECIFIC_DRIVER_STATE = 0x1, | ||
| 5067 | } D3D12_SERIALIZED_DATA_TYPE; | ||
| 5068 | |||
| 5069 | typedef enum D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS | ||
| 5070 | { | ||
| 5071 | D3D12_DRIVER_MATCHING_IDENTIFIER_COMPATIBLE_WITH_DEVICE = 0x0, | ||
| 5072 | D3D12_DRIVER_MATCHING_IDENTIFIER_UNSUPPORTED_TYPE = 0x1, | ||
| 5073 | D3D12_DRIVER_MATCHING_IDENTIFIER_UNRECOGNIZED = 0x2, | ||
| 5074 | D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_VERSION = 0x3, | ||
| 5075 | D3D12_DRIVER_MATCHING_IDENTIFIER_INCOMPATIBLE_TYPE = 0x4, | ||
| 5076 | } D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS; | ||
| 5077 | |||
| 5078 | typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER | ||
| 5079 | { | ||
| 5080 | D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier; | ||
| 5081 | UINT64 SerializedSizeInBytesIncludingHeader; | ||
| 5082 | UINT64 DeserializedSizeInBytes; | ||
| 5083 | UINT64 NumBottomLevelAccelerationStructurePointersAfterHeader; | ||
| 5084 | } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER; | ||
| 5085 | |||
| 5086 | typedef enum D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE | ||
| 5087 | { | ||
| 5088 | D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_NONE = 0, | ||
| 5089 | D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BOTTOM_LEVEL_POINTERS = 0, | ||
| 5090 | D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE_BLOCKS = 0xffffffff | ||
| 5091 | } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE; | ||
| 5092 | |||
| 5093 | typedef struct D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1 | ||
| 5094 | { | ||
| 5095 | D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER DriverMatchingIdentifier; | ||
| 5096 | UINT64 SerializedSizeInBytesIncludingHeader; | ||
| 5097 | UINT64 DeserializedSizeInBytes; | ||
| 5098 | union | ||
| 5099 | { | ||
| 5100 | UINT NumBottomLevelAccelerationStructurePointersAfterHeader; | ||
| 5101 | UINT NumBlocks; | ||
| 5102 | }; | ||
| 5103 | D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER_POSTAMBLE_TYPE HeaderPostambleType; | ||
| 5104 | } D3D12_SERIALIZED_RAYTRACING_ACCELERATION_STRUCTURE_HEADER1; | ||
| 5105 | |||
| 5106 | typedef enum D3D12_SERIALIZED_BLOCK_TYPE | ||
| 5107 | { | ||
| 5108 | D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE_OPACITY_MICROMAPS = 0x0, | ||
| 5109 | } D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE; | ||
| 5110 | |||
| 5111 | typedef struct D3D12_RAYTRACING_SERIALIZED_BLOCK | ||
| 5112 | { | ||
| 5113 | D3D12_RAYTRACING_SERIALIZED_BLOCK_TYPE Type; | ||
| 5114 | UINT64 NumBlockPointersAfterHeader; | ||
| 5115 | } D3D12_RAYTRACING_SERIALIZED_BLOCK; | ||
| 5116 | |||
| 5117 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC | ||
| 5118 | { | ||
| 5119 | UINT64 CurrentSizeInBytes; | ||
| 5120 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC; | ||
| 5121 | |||
| 5122 | typedef struct D3D12_RAYTRACING_INSTANCE_DESC | ||
| 5123 | { | ||
| 5124 | FLOAT Transform[3][4]; | ||
| 5125 | UINT InstanceID : 24; | ||
| 5126 | UINT InstanceMask : 8; | ||
| 5127 | UINT InstanceContributionToHitGroupIndex : 24; | ||
| 5128 | UINT Flags : 8; | ||
| 5129 | D3D12_GPU_VIRTUAL_ADDRESS AccelerationStructure; | ||
| 5130 | } D3D12_RAYTRACING_INSTANCE_DESC; | ||
| 5131 | |||
| 5132 | typedef struct D3D12_RAYTRACING_GEOMETRY_DESC | ||
| 5133 | { | ||
| 5134 | D3D12_RAYTRACING_GEOMETRY_TYPE Type; | ||
| 5135 | D3D12_RAYTRACING_GEOMETRY_FLAGS Flags; | ||
| 5136 | union | ||
| 5137 | { | ||
| 5138 | D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC Triangles; | ||
| 5139 | D3D12_RAYTRACING_GEOMETRY_AABBS_DESC AABBs; | ||
| 5140 | D3D12_RAYTRACING_GEOMETRY_OMM_TRIANGLES_DESC OmmTriangles; | ||
| 5141 | }; | ||
| 5142 | } D3D12_RAYTRACING_GEOMETRY_DESC; | ||
| 5143 | |||
| 5144 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY | ||
| 5145 | { | ||
| 5146 | UINT Count; | ||
| 5147 | UINT SubdivisionLevel; | ||
| 5148 | D3D12_RAYTRACING_OPACITY_MICROMAP_FORMAT Format; | ||
| 5149 | } D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY; | ||
| 5150 | |||
| 5151 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC | ||
| 5152 | { | ||
| 5153 | UINT NumOmmHistogramEntries; | ||
| 5154 | const D3D12_RAYTRACING_OPACITY_MICROMAP_HISTOGRAM_ENTRY* pOmmHistogram; | ||
| 5155 | D3D12_GPU_VIRTUAL_ADDRESS InputBuffer; | ||
| 5156 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE PerOmmDescs; | ||
| 5157 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC; | ||
| 5158 | |||
| 5159 | typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS | ||
| 5160 | { | ||
| 5161 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type; | ||
| 5162 | D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags; | ||
| 5163 | UINT NumDescs; | ||
| 5164 | D3D12_ELEMENTS_LAYOUT DescsLayout; | ||
| 5165 | union | ||
| 5166 | { | ||
| 5167 | D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs; | ||
| 5168 | const D3D12_RAYTRACING_GEOMETRY_DESC* pGeometryDescs; | ||
| 5169 | const D3D12_RAYTRACING_GEOMETRY_DESC*const* ppGeometryDescs; | ||
| 5170 | const D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_DESC* pOpacityMicromapArrayDesc; | ||
| 5171 | }; | ||
| 5172 | } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS; | ||
| 5173 | |||
| 5174 | typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC | ||
| 5175 | { | ||
| 5176 | D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData; | ||
| 5177 | D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS Inputs; | ||
| 5178 | [annotation("_In_opt_")] D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData; | ||
| 5179 | D3D12_GPU_VIRTUAL_ADDRESS ScratchAccelerationStructureData; | ||
| 5180 | } D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC; | ||
| 5181 | |||
| 5182 | typedef struct D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO | ||
| 5183 | { | ||
| 5184 | UINT64 ResultDataMaxSizeInBytes; | ||
| 5185 | UINT64 ScratchDataSizeInBytes; | ||
| 5186 | UINT64 UpdateScratchDataSizeInBytes; | ||
| 5187 | } D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO; | ||
| 5188 | |||
| 5189 | typedef enum D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE | ||
| 5190 | { | ||
| 5191 | D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE = 0x0, | ||
| 5192 | D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION = 0x1, | ||
| 5193 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE; | ||
| 5194 | |||
| 5195 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC | ||
| 5196 | { | ||
| 5197 | D3D12_GPU_VIRTUAL_ADDRESS DestBuffer; | ||
| 5198 | D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TYPE InfoType; | ||
| 5199 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_DESC; | ||
| 5200 | |||
| 5201 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC | ||
| 5202 | { | ||
| 5203 | UINT64 CurrentSizeInBytes; | ||
| 5204 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_CURRENT_SIZE_DESC; | ||
| 5205 | |||
| 5206 | typedef struct D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC | ||
| 5207 | { | ||
| 5208 | UINT64 DecodedSizeInBytes; | ||
| 5209 | } D3D12_RAYTRACING_OPACITY_MICROMAP_ARRAY_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC; | ||
| 5210 | |||
| 5211 | typedef enum D3D12_RAY_FLAGS | ||
| 5212 | { | ||
| 5213 | D3D12_RAY_FLAG_NONE = 0x00, | ||
| 5214 | D3D12_RAY_FLAG_FORCE_OPAQUE = 0x01, | ||
| 5215 | D3D12_RAY_FLAG_FORCE_NON_OPAQUE = 0x02, | ||
| 5216 | D3D12_RAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCH = 0x04, | ||
| 5217 | D3D12_RAY_FLAG_SKIP_CLOSEST_HIT_SHADER = 0x08, | ||
| 5218 | D3D12_RAY_FLAG_CULL_BACK_FACING_TRIANGLES = 0x10, | ||
| 5219 | D3D12_RAY_FLAG_CULL_FRONT_FACING_TRIANGLES = 0x20, | ||
| 5220 | D3D12_RAY_FLAG_CULL_OPAQUE = 0x40, | ||
| 5221 | D3D12_RAY_FLAG_CULL_NON_OPAQUE = 0x80, | ||
| 5222 | D3D12_RAY_FLAG_SKIP_TRIANGLES = 0x100, | ||
| 5223 | D3D12_RAY_FLAG_SKIP_PROCEDURAL_PRIMITIVES = 0x200, | ||
| 5224 | D3D12_RAY_FLAG_FORCE_OMM_2_STATE = 0x400, | ||
| 5225 | } D3D12_RAY_FLAGS; | ||
| 5226 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_RAY_FLAGS )" ) | ||
| 5227 | |||
| 5228 | typedef enum D3D12_HIT_KIND | ||
| 5229 | { | ||
| 5230 | D3D12_HIT_KIND_TRIANGLE_FRONT_FACE = 0xfe, | ||
| 5231 | D3D12_HIT_KIND_TRIANGLE_BACK_FACE = 0xff, | ||
| 5232 | } D3D12_HIT_KIND; | ||
| 5233 | |||
| 5234 | [uuid(8b4f173b-2fea-4b80-8f58-4307191ab95d), object, local, pointer_default(unique)] | ||
| 5235 | interface ID3D12Device5 | ||
| 5236 | : ID3D12Device4 | ||
| 5237 | { | ||
| 5238 | HRESULT CreateLifetimeTracker( | ||
| 5239 | [annotation("_In_")] ID3D12LifetimeOwner* pOwner, | ||
| 5240 | [in] REFIID riid, // Expected: ID3D12LifetimeTracker* | ||
| 5241 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvTracker | ||
| 5242 | ); | ||
| 5243 | |||
| 5244 | void RemoveDevice(); | ||
| 5245 | |||
| 5246 | HRESULT EnumerateMetaCommands( | ||
| 5247 | [annotation("_Inout_")] UINT* pNumMetaCommands, | ||
| 5248 | [annotation("_Out_writes_opt_(*pNumMetaCommands)")] D3D12_META_COMMAND_DESC* pDescs | ||
| 5249 | ); | ||
| 5250 | |||
| 5251 | HRESULT EnumerateMetaCommandParameters( | ||
| 5252 | [annotation("_In_")] REFGUID CommandId, | ||
| 5253 | [annotation("_In_")] D3D12_META_COMMAND_PARAMETER_STAGE Stage, | ||
| 5254 | [annotation("_Out_opt_")] UINT* pTotalStructureSizeInBytes, | ||
| 5255 | [annotation("_Inout_")] UINT* pParameterCount, | ||
| 5256 | [annotation("_Out_writes_opt_(*pParameterCount)")] D3D12_META_COMMAND_PARAMETER_DESC* pParameterDescs | ||
| 5257 | ); | ||
| 5258 | |||
| 5259 | HRESULT CreateMetaCommand( | ||
| 5260 | [annotation("_In_")] REFGUID CommandId, | ||
| 5261 | [annotation("_In_")] UINT NodeMask, | ||
| 5262 | [annotation("_In_reads_bytes_opt_(CreationParametersDataSizeInBytes)")] const void * pCreationParametersData, | ||
| 5263 | [annotation("_In_")] SIZE_T CreationParametersDataSizeInBytes, | ||
| 5264 | [in] REFIID riid, | ||
| 5265 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppMetaCommand | ||
| 5266 | ); | ||
| 5267 | |||
| 5268 | HRESULT CreateStateObject( | ||
| 5269 | [in] const D3D12_STATE_OBJECT_DESC* pDesc, | ||
| 5270 | [in] REFIID riid, // ID3D12StateObject | ||
| 5271 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppStateObject | ||
| 5272 | ); | ||
| 5273 | |||
| 5274 | void GetRaytracingAccelerationStructurePrebuildInfo( | ||
| 5275 | [annotation("_In_")] const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS* pDesc, | ||
| 5276 | [annotation("_Out_")] D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO *pInfo | ||
| 5277 | ); | ||
| 5278 | |||
| 5279 | D3D12_DRIVER_MATCHING_IDENTIFIER_STATUS CheckDriverMatchingIdentifier( | ||
| 5280 | [annotation("_In_")] D3D12_SERIALIZED_DATA_TYPE SerializedDataType, | ||
| 5281 | [annotation("_In_")] const D3D12_SERIALIZED_DATA_DRIVER_MATCHING_IDENTIFIER* pIdentifierToCheck); | ||
| 5282 | } | ||
| 5283 | |||
| 5284 | #include "D3D12MarkerApiEnums.idl" | ||
| 5285 | |||
| 5286 | typedef struct D3D12_AUTO_BREADCRUMB_NODE | ||
| 5287 | { | ||
| 5288 | const char *pCommandListDebugNameA; | ||
| 5289 | const wchar_t *pCommandListDebugNameW; | ||
| 5290 | const char *pCommandQueueDebugNameA; | ||
| 5291 | const wchar_t *pCommandQueueDebugNameW; | ||
| 5292 | ID3D12GraphicsCommandList *pCommandList; | ||
| 5293 | ID3D12CommandQueue *pCommandQueue; | ||
| 5294 | UINT32 BreadcrumbCount; | ||
| 5295 | const UINT32 *pLastBreadcrumbValue; | ||
| 5296 | const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; | ||
| 5297 | const struct D3D12_AUTO_BREADCRUMB_NODE *pNext; // pointer to next node | ||
| 5298 | } D3D12_AUTO_BREADCRUMB_NODE; | ||
| 5299 | |||
| 5300 | typedef struct D3D12_DRED_BREADCRUMB_CONTEXT | ||
| 5301 | { | ||
| 5302 | UINT BreadcrumbIndex; | ||
| 5303 | const wchar_t *pContextString; | ||
| 5304 | } D3D12_DRED_BREADCRUMB_CONTEXT; | ||
| 5305 | |||
| 5306 | // !!! Must be castable to D3D12_AUTO_BREADCRUMB_NODE | ||
| 5307 | typedef struct D3D12_AUTO_BREADCRUMB_NODE1 | ||
| 5308 | { | ||
| 5309 | const char *pCommandListDebugNameA; | ||
| 5310 | const wchar_t *pCommandListDebugNameW; | ||
| 5311 | const char *pCommandQueueDebugNameA; | ||
| 5312 | const wchar_t *pCommandQueueDebugNameW; | ||
| 5313 | ID3D12GraphicsCommandList *pCommandList; | ||
| 5314 | ID3D12CommandQueue *pCommandQueue; | ||
| 5315 | UINT BreadcrumbCount; | ||
| 5316 | const UINT *pLastBreadcrumbValue; | ||
| 5317 | const D3D12_AUTO_BREADCRUMB_OP *pCommandHistory; | ||
| 5318 | const struct D3D12_AUTO_BREADCRUMB_NODE1 *pNext; // pointer to next node | ||
| 5319 | UINT BreadcrumbContextsCount; | ||
| 5320 | D3D12_DRED_BREADCRUMB_CONTEXT *pBreadcrumbContexts; | ||
| 5321 | } D3D12_AUTO_BREADCRUMB_NODE1; | ||
| 5322 | |||
| 5323 | // D3D12_DRED_VERSION | ||
| 5324 | typedef enum D3D12_DRED_VERSION | ||
| 5325 | { | ||
| 5326 | D3D12_DRED_VERSION_1_0 = 0x1, | ||
| 5327 | D3D12_DRED_VERSION_1_1 = 0x2, | ||
| 5328 | D3D12_DRED_VERSION_1_2 = 0x3, | ||
| 5329 | D3D12_DRED_VERSION_1_3 = 0x4, | ||
| 5330 | } D3D12_DRED_VERSION; | ||
| 5331 | |||
| 5332 | typedef enum D3D12_DRED_FLAGS | ||
| 5333 | { | ||
| 5334 | D3D12_DRED_FLAG_NONE = 0, | ||
| 5335 | D3D12_DRED_FLAG_FORCE_ENABLE = 1, | ||
| 5336 | D3D12_DRED_FLAG_DISABLE_AUTOBREADCRUMBS = 2, | ||
| 5337 | } D3D12_DRED_FLAGS; | ||
| 5338 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_FLAGS )") | ||
| 5339 | |||
| 5340 | typedef enum D3D12_DRED_ENABLEMENT | ||
| 5341 | { | ||
| 5342 | D3D12_DRED_ENABLEMENT_SYSTEM_CONTROLLED = 0, | ||
| 5343 | D3D12_DRED_ENABLEMENT_FORCED_OFF = 1, | ||
| 5344 | D3D12_DRED_ENABLEMENT_FORCED_ON = 2, | ||
| 5345 | } D3D12_DRED_ENABLEMENT; | ||
| 5346 | |||
| 5347 | typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA | ||
| 5348 | { | ||
| 5349 | [annotation("_In_")] D3D12_DRED_FLAGS Flags; // Dred flags | ||
| 5350 | [annotation("_Out_")] D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; // Pointer to head of a linked list of auto-breadcrumb data | ||
| 5351 | } D3D12_DEVICE_REMOVED_EXTENDED_DATA; | ||
| 5352 | |||
| 5353 | typedef enum D3D12_DRED_ALLOCATION_TYPE | ||
| 5354 | { | ||
| 5355 | // Enum starts at 19 and skips 26 to maintain compatibility with older D3D12 drivers | ||
| 5356 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_QUEUE = 19, | ||
| 5357 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_ALLOCATOR = 20, | ||
| 5358 | D3D12_DRED_ALLOCATION_TYPE_PIPELINE_STATE = 21, | ||
| 5359 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_LIST = 22, | ||
| 5360 | D3D12_DRED_ALLOCATION_TYPE_FENCE = 23, | ||
| 5361 | D3D12_DRED_ALLOCATION_TYPE_DESCRIPTOR_HEAP = 24, | ||
| 5362 | D3D12_DRED_ALLOCATION_TYPE_HEAP = 25, | ||
| 5363 | D3D12_DRED_ALLOCATION_TYPE_QUERY_HEAP = 27, | ||
| 5364 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_SIGNATURE = 28, | ||
| 5365 | D3D12_DRED_ALLOCATION_TYPE_PIPELINE_LIBRARY = 29, | ||
| 5366 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER = 30, | ||
| 5367 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_PROCESSOR = 32, | ||
| 5368 | D3D12_DRED_ALLOCATION_TYPE_RESOURCE = 34, | ||
| 5369 | D3D12_DRED_ALLOCATION_TYPE_PASS = 35, | ||
| 5370 | D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSION = 36, | ||
| 5371 | D3D12_DRED_ALLOCATION_TYPE_CRYPTOSESSIONPOLICY = 37, | ||
| 5372 | D3D12_DRED_ALLOCATION_TYPE_PROTECTEDRESOURCESESSION = 38, | ||
| 5373 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_DECODER_HEAP = 39, | ||
| 5374 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_POOL = 40, | ||
| 5375 | D3D12_DRED_ALLOCATION_TYPE_COMMAND_RECORDER = 41, | ||
| 5376 | D3D12_DRED_ALLOCATION_TYPE_STATE_OBJECT = 42, | ||
| 5377 | D3D12_DRED_ALLOCATION_TYPE_METACOMMAND = 43, | ||
| 5378 | D3D12_DRED_ALLOCATION_TYPE_SCHEDULINGGROUP = 44, | ||
| 5379 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_ESTIMATOR = 45, | ||
| 5380 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_MOTION_VECTOR_HEAP = 46, | ||
| 5381 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_EXTENSION_COMMAND = 47, | ||
| 5382 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER = 48, | ||
| 5383 | D3D12_DRED_ALLOCATION_TYPE_VIDEO_ENCODER_HEAP = 49, | ||
| 5384 | |||
| 5385 | |||
| 5386 | D3D12_DRED_ALLOCATION_TYPE_INVALID = 0xFFFFFFFF | ||
| 5387 | } D3D12_DRED_ALLOCATION_TYPE; | ||
| 5388 | |||
| 5389 | typedef struct D3D12_DRED_ALLOCATION_NODE | ||
| 5390 | { | ||
| 5391 | const char *ObjectNameA; | ||
| 5392 | const wchar_t *ObjectNameW; | ||
| 5393 | D3D12_DRED_ALLOCATION_TYPE AllocationType; | ||
| 5394 | const struct D3D12_DRED_ALLOCATION_NODE *pNext; | ||
| 5395 | } D3D12_DRED_ALLOCATION_NODE; | ||
| 5396 | |||
| 5397 | typedef struct D3D12_DRED_ALLOCATION_NODE1 | ||
| 5398 | { | ||
| 5399 | const char *ObjectNameA; | ||
| 5400 | const wchar_t *ObjectNameW; | ||
| 5401 | D3D12_DRED_ALLOCATION_TYPE AllocationType; | ||
| 5402 | const struct D3D12_DRED_ALLOCATION_NODE1 *pNext; | ||
| 5403 | const IUnknown *pObject; | ||
| 5404 | } D3D12_DRED_ALLOCATION_NODE1; | ||
| 5405 | |||
| 5406 | typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT | ||
| 5407 | { | ||
| 5408 | [annotation("_Out_")] const D3D12_AUTO_BREADCRUMB_NODE *pHeadAutoBreadcrumbNode; // Pointer to head of a null-terminated linked list of auto-breadcrumb data | ||
| 5409 | } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT; | ||
| 5410 | |||
| 5411 | typedef struct D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 | ||
| 5412 | { | ||
| 5413 | [annotation("_Out_")] const D3D12_AUTO_BREADCRUMB_NODE1 *pHeadAutoBreadcrumbNode; // Pointer to head of a null-terminated linked list of auto-breadcrumb data | ||
| 5414 | } D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1; | ||
| 5415 | |||
| 5416 | typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT | ||
| 5417 | { | ||
| 5418 | D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; //If the device removal was due to GPU Fault, this contains the VA of the faulting op | ||
| 5419 | [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE *pHeadExistingAllocationNode; | ||
| 5420 | [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE *pHeadRecentFreedAllocationNode; | ||
| 5421 | } D3D12_DRED_PAGE_FAULT_OUTPUT; | ||
| 5422 | |||
| 5423 | typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT1 | ||
| 5424 | { | ||
| 5425 | D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; //If the device removal was due to GPU Fault, this contains the VA of the faulting op | ||
| 5426 | [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; | ||
| 5427 | [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; | ||
| 5428 | } D3D12_DRED_PAGE_FAULT_OUTPUT1; | ||
| 5429 | |||
| 5430 | typedef enum D3D12_DRED_PAGE_FAULT_FLAGS | ||
| 5431 | { | ||
| 5432 | D3D12_DRED_PAGE_FAULT_FLAGS_NONE = 0, | ||
| 5433 | } D3D12_DRED_PAGE_FAULT_FLAGS; | ||
| 5434 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DRED_PAGE_FAULT_FLAGS )") | ||
| 5435 | |||
| 5436 | typedef enum D3D12_DRED_DEVICE_STATE | ||
| 5437 | { | ||
| 5438 | D3D12_DRED_DEVICE_STATE_UNKNOWN = 0, // Only known if DRED event occurred | ||
| 5439 | D3D12_DRED_DEVICE_STATE_HUNG = 3, | ||
| 5440 | D3D12_DRED_DEVICE_STATE_FAULT = 6, | ||
| 5441 | D3D12_DRED_DEVICE_STATE_PAGEFAULT = 7, | ||
| 5442 | } D3D12_DRED_DEVICE_STATE; | ||
| 5443 | |||
| 5444 | typedef struct D3D12_DRED_PAGE_FAULT_OUTPUT2 | ||
| 5445 | { | ||
| 5446 | D3D12_GPU_VIRTUAL_ADDRESS PageFaultVA; //If the device removal was due to GPU Fault, this contains the VA of the faulting op | ||
| 5447 | [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadExistingAllocationNode; | ||
| 5448 | [annotation("_Out_")] const D3D12_DRED_ALLOCATION_NODE1 *pHeadRecentFreedAllocationNode; | ||
| 5449 | D3D12_DRED_PAGE_FAULT_FLAGS PageFaultFlags; | ||
| 5450 | |||
| 5451 | } D3D12_DRED_PAGE_FAULT_OUTPUT2; | ||
| 5452 | |||
| 5453 | typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA1 | ||
| 5454 | { | ||
| 5455 | HRESULT DeviceRemovedReason; | ||
| 5456 | D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT AutoBreadcrumbsOutput; | ||
| 5457 | D3D12_DRED_PAGE_FAULT_OUTPUT PageFaultOutput; | ||
| 5458 | } D3D12_DEVICE_REMOVED_EXTENDED_DATA1; | ||
| 5459 | |||
| 5460 | typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA2 | ||
| 5461 | { | ||
| 5462 | HRESULT DeviceRemovedReason; | ||
| 5463 | D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; | ||
| 5464 | D3D12_DRED_PAGE_FAULT_OUTPUT1 PageFaultOutput; | ||
| 5465 | } D3D12_DEVICE_REMOVED_EXTENDED_DATA2; | ||
| 5466 | |||
| 5467 | typedef struct D3D12_DEVICE_REMOVED_EXTENDED_DATA3 | ||
| 5468 | { | ||
| 5469 | HRESULT DeviceRemovedReason; | ||
| 5470 | D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 AutoBreadcrumbsOutput; | ||
| 5471 | D3D12_DRED_PAGE_FAULT_OUTPUT2 PageFaultOutput; | ||
| 5472 | D3D12_DRED_DEVICE_STATE DeviceState; | ||
| 5473 | } D3D12_DEVICE_REMOVED_EXTENDED_DATA3; | ||
| 5474 | |||
| 5475 | typedef struct D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA | ||
| 5476 | { | ||
| 5477 | D3D12_DRED_VERSION Version; // Version of the DRED data | ||
| 5478 | union | ||
| 5479 | { | ||
| 5480 | D3D12_DEVICE_REMOVED_EXTENDED_DATA Dred_1_0; | ||
| 5481 | D3D12_DEVICE_REMOVED_EXTENDED_DATA1 Dred_1_1; | ||
| 5482 | D3D12_DEVICE_REMOVED_EXTENDED_DATA2 Dred_1_2; | ||
| 5483 | D3D12_DEVICE_REMOVED_EXTENDED_DATA3 Dred_1_3; | ||
| 5484 | }; | ||
| 5485 | } D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA; | ||
| 5486 | |||
| 5487 | [uuid(82BC481C-6B9B-4030-AEDB-7EE3D1DF1E63), object, local, pointer_default(unique)] | ||
| 5488 | interface ID3D12DeviceRemovedExtendedDataSettings | ||
| 5489 | : IUnknown | ||
| 5490 | { | ||
| 5491 | void SetAutoBreadcrumbsEnablement(D3D12_DRED_ENABLEMENT Enablement); | ||
| 5492 | void SetPageFaultEnablement(D3D12_DRED_ENABLEMENT Enablement); | ||
| 5493 | void SetWatsonDumpEnablement(D3D12_DRED_ENABLEMENT Enablement); | ||
| 5494 | }; | ||
| 5495 | |||
| 5496 | [uuid(DBD5AE51-3317-4F0A-ADF9-1D7CEDCAAE0B), object, local, pointer_default(unique)] | ||
| 5497 | interface ID3D12DeviceRemovedExtendedDataSettings1 | ||
| 5498 | : ID3D12DeviceRemovedExtendedDataSettings | ||
| 5499 | { | ||
| 5500 | void SetBreadcrumbContextEnablement(D3D12_DRED_ENABLEMENT Enablement); | ||
| 5501 | }; | ||
| 5502 | |||
| 5503 | [uuid(61552388-01ab-4008-a436-83db189566ea), object, local, pointer_default(unique)] | ||
| 5504 | interface ID3D12DeviceRemovedExtendedDataSettings2 | ||
| 5505 | : ID3D12DeviceRemovedExtendedDataSettings1 | ||
| 5506 | { | ||
| 5507 | void UseMarkersOnlyAutoBreadcrumbs(BOOL MarkersOnly); | ||
| 5508 | }; | ||
| 5509 | |||
| 5510 | |||
| 5511 | [uuid(98931D33-5AE8-4791-AA3C-1A73A2934E71), object, local, pointer_default(unique)] | ||
| 5512 | interface ID3D12DeviceRemovedExtendedData | ||
| 5513 | : IUnknown | ||
| 5514 | { | ||
| 5515 | HRESULT GetAutoBreadcrumbsOutput([annotation("_Out_")] D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT *pOutput); | ||
| 5516 | HRESULT GetPageFaultAllocationOutput([annotation("_Out_")] D3D12_DRED_PAGE_FAULT_OUTPUT *pOutput); | ||
| 5517 | }; | ||
| 5518 | |||
| 5519 | [uuid(9727A022-CF1D-4DDA-9EBA-EFFA653FC506), object, local, pointer_default(unique)] | ||
| 5520 | interface ID3D12DeviceRemovedExtendedData1 | ||
| 5521 | : ID3D12DeviceRemovedExtendedData | ||
| 5522 | { | ||
| 5523 | HRESULT GetAutoBreadcrumbsOutput1([annotation("_Out_")] D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT1 *pOutput); | ||
| 5524 | HRESULT GetPageFaultAllocationOutput1([annotation("_Out_")] D3D12_DRED_PAGE_FAULT_OUTPUT1 *pOutput); | ||
| 5525 | }; | ||
| 5526 | |||
| 5527 | [uuid(67FC5816-E4CA-4915-BF18-42541272DA54), object, local, pointer_default(unique)] | ||
| 5528 | interface ID3D12DeviceRemovedExtendedData2 | ||
| 5529 | : ID3D12DeviceRemovedExtendedData1 | ||
| 5530 | { | ||
| 5531 | HRESULT GetPageFaultAllocationOutput2([annotation("_Out_")] D3D12_DRED_PAGE_FAULT_OUTPUT2 *pOutput); | ||
| 5532 | D3D12_DRED_DEVICE_STATE GetDeviceState(); | ||
| 5533 | }; | ||
| 5534 | |||
| 5535 | typedef enum D3D12_BACKGROUND_PROCESSING_MODE | ||
| 5536 | { | ||
| 5537 | D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED, | ||
| 5538 | D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS, | ||
| 5539 | D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_BACKGROUND_WORK, | ||
| 5540 | D3D12_BACKGROUND_PROCESSING_MODE_DISABLE_PROFILING_BY_SYSTEM, | ||
| 5541 | } D3D12_BACKGROUND_PROCESSING_MODE; | ||
| 5542 | |||
| 5543 | typedef enum D3D12_MEASUREMENTS_ACTION | ||
| 5544 | { | ||
| 5545 | D3D12_MEASUREMENTS_ACTION_KEEP_ALL, | ||
| 5546 | D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS, | ||
| 5547 | D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS_HIGH_PRIORITY, | ||
| 5548 | D3D12_MEASUREMENTS_ACTION_DISCARD_PREVIOUS, | ||
| 5549 | } D3D12_MEASUREMENTS_ACTION; | ||
| 5550 | |||
| 5551 | [uuid(c70b221b-40e4-4a17-89af-025a0727a6dc), object, local, pointer_default(unique)] | ||
| 5552 | interface ID3D12Device6 : ID3D12Device5 | ||
| 5553 | { | ||
| 5554 | HRESULT SetBackgroundProcessingMode( | ||
| 5555 | D3D12_BACKGROUND_PROCESSING_MODE Mode, | ||
| 5556 | D3D12_MEASUREMENTS_ACTION MeasurementsAction, | ||
| 5557 | [annotation("_In_opt_")] HANDLE hEventToSignalUponCompletion, | ||
| 5558 | [annotation("_Out_opt_")] BOOL* pbFurtherMeasurementsDesired); | ||
| 5559 | }; | ||
| 5560 | |||
| 5561 | cpp_quote("DEFINE_GUID(D3D12_PROTECTED_RESOURCES_SESSION_HARDWARE_PROTECTED, 0x62B0084E, 0xC70E, 0x4DAA, 0xA1, 0x09, 0x30, 0xFF, 0x8D, 0x5A, 0x04, 0x82); ") | ||
| 5562 | |||
| 5563 | // D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT | ||
| 5564 | typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT | ||
| 5565 | { | ||
| 5566 | UINT NodeIndex; // input | ||
| 5567 | UINT Count; // output | ||
| 5568 | } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT; | ||
| 5569 | |||
| 5570 | // D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES | ||
| 5571 | typedef struct D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES | ||
| 5572 | { | ||
| 5573 | UINT NodeIndex; // input | ||
| 5574 | UINT Count; // input | ||
| 5575 | GUID* pTypes; // output | ||
| 5576 | } D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES; | ||
| 5577 | |||
| 5578 | typedef struct D3D12_PROTECTED_RESOURCE_SESSION_DESC1 | ||
| 5579 | { | ||
| 5580 | UINT NodeMask; | ||
| 5581 | D3D12_PROTECTED_RESOURCE_SESSION_FLAGS Flags; | ||
| 5582 | GUID ProtectionType; | ||
| 5583 | } D3D12_PROTECTED_RESOURCE_SESSION_DESC1; | ||
| 5584 | |||
| 5585 | [uuid(D6F12DD6-76FB-406E-8961-4296EEFC0409), object, local, pointer_default(unique)] | ||
| 5586 | interface ID3D12ProtectedResourceSession1 | ||
| 5587 | : ID3D12ProtectedResourceSession | ||
| 5588 | { | ||
| 5589 | D3D12_PROTECTED_RESOURCE_SESSION_DESC1 GetDesc1(); | ||
| 5590 | }; | ||
| 5591 | |||
| 5592 | [uuid(5c014b53-68a1-4b9b-8bd1-dd6046b9358b), object, local, pointer_default(unique)] | ||
| 5593 | interface ID3D12Device7 : ID3D12Device6 | ||
| 5594 | { | ||
| 5595 | HRESULT AddToStateObject( | ||
| 5596 | [in] const D3D12_STATE_OBJECT_DESC* pAddition, | ||
| 5597 | [in] ID3D12StateObject* pStateObjectToGrowFrom, | ||
| 5598 | [in] REFIID riid, // ID3D12StateObject | ||
| 5599 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppNewStateObject | ||
| 5600 | ); | ||
| 5601 | |||
| 5602 | HRESULT CreateProtectedResourceSession1( | ||
| 5603 | [annotation("_In_")] const D3D12_PROTECTED_RESOURCE_SESSION_DESC1* pDesc, | ||
| 5604 | [annotation("_In_")] REFIID riid, // Expected: ID3D12ProtectedResourceSession1, | ||
| 5605 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppSession | ||
| 5606 | ); | ||
| 5607 | }; | ||
| 5608 | |||
| 5609 | [uuid(9218E6BB-F944-4F7E-A75C-B1B2C7B701F3), object, local, pointer_default(unique)] | ||
| 5610 | interface ID3D12Device8 : ID3D12Device7 | ||
| 5611 | { | ||
| 5612 | D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo2( | ||
| 5613 | UINT visibleMask, | ||
| 5614 | UINT numResourceDescs, | ||
| 5615 | [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC1* pResourceDescs, | ||
| 5616 | [annotation("_Out_writes_opt_(numResourceDescs)")] D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1); | ||
| 5617 | |||
| 5618 | HRESULT CreateCommittedResource2( | ||
| 5619 | [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, | ||
| 5620 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 5621 | [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc, | ||
| 5622 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 5623 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 5624 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession* pProtectedSession, | ||
| 5625 | [in] REFIID riidResource, // Expected: ID3D12Resource1* | ||
| 5626 | [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource); | ||
| 5627 | |||
| 5628 | HRESULT CreatePlacedResource1( | ||
| 5629 | [annotation("_In_")] ID3D12Heap* pHeap, | ||
| 5630 | UINT64 HeapOffset, | ||
| 5631 | [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc, | ||
| 5632 | D3D12_RESOURCE_STATES InitialState, | ||
| 5633 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 5634 | [in] REFIID riid, // Expected: ID3D12Resource* | ||
| 5635 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource); | ||
| 5636 | |||
| 5637 | void CreateSamplerFeedbackUnorderedAccessView( | ||
| 5638 | [annotation("_In_opt_")] ID3D12Resource* pTargetedResource, | ||
| 5639 | [annotation("_In_opt_")] ID3D12Resource* pFeedbackResource, | ||
| 5640 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 5641 | |||
| 5642 | void GetCopyableFootprints1( | ||
| 5643 | [annotation("_In_")] const D3D12_RESOURCE_DESC1* pResourceDesc, | ||
| 5644 | [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES)")] UINT FirstSubresource, | ||
| 5645 | [annotation("_In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource)")] UINT NumSubresources, | ||
| 5646 | UINT64 BaseOffset, | ||
| 5647 | [annotation("_Out_writes_opt_(NumSubresources)")] D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, | ||
| 5648 | [annotation("_Out_writes_opt_(NumSubresources)")] UINT* pNumRows, | ||
| 5649 | [annotation("_Out_writes_opt_(NumSubresources)")] UINT64* pRowSizeInBytes, | ||
| 5650 | [annotation("_Out_opt_")] UINT64* pTotalBytes); | ||
| 5651 | }; | ||
| 5652 | |||
| 5653 | |||
| 5654 | [uuid(9D5E227A-4430-4161-88B3-3ECA6BB16E19), object, local, pointer_default(unique)] | ||
| 5655 | interface ID3D12Resource1 | ||
| 5656 | : ID3D12Resource | ||
| 5657 | { | ||
| 5658 | HRESULT GetProtectedResourceSession( | ||
| 5659 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
| 5660 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
| 5661 | } | ||
| 5662 | |||
| 5663 | [uuid(BE36EC3B-EA85-4AEB-A45A-E9D76404A495), object, local, pointer_default(unique)] | ||
| 5664 | interface ID3D12Resource2 | ||
| 5665 | : ID3D12Resource1 | ||
| 5666 | { | ||
| 5667 | D3D12_RESOURCE_DESC1 GetDesc1(); | ||
| 5668 | } | ||
| 5669 | |||
| 5670 | |||
| 5671 | |||
| 5672 | [uuid(572F7389-2168-49E3-9693-D6DF5871BF6D), object, local, pointer_default(unique)] | ||
| 5673 | interface ID3D12Heap1 | ||
| 5674 | : ID3D12Heap | ||
| 5675 | { | ||
| 5676 | HRESULT GetProtectedResourceSession( | ||
| 5677 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
| 5678 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
| 5679 | } | ||
| 5680 | |||
| 5681 | |||
| 5682 | [uuid(6FDA83A7-B84C-4E38-9AC8-C7BD22016B3D), object, local, pointer_default(unique)] | ||
| 5683 | interface ID3D12GraphicsCommandList3 : ID3D12GraphicsCommandList2 | ||
| 5684 | { | ||
| 5685 | void SetProtectedResourceSession( | ||
| 5686 | [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession | ||
| 5687 | ); | ||
| 5688 | } | ||
| 5689 | |||
| 5690 | // Beginning Access | ||
| 5691 | typedef enum D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE | ||
| 5692 | { | ||
| 5693 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_DISCARD, | ||
| 5694 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE, | ||
| 5695 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR, | ||
| 5696 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_NO_ACCESS, | ||
| 5697 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER, | ||
| 5698 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV, | ||
| 5699 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV | ||
| 5700 | } D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE; | ||
| 5701 | |||
| 5702 | typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS | ||
| 5703 | { | ||
| 5704 | D3D12_CLEAR_VALUE ClearValue; | ||
| 5705 | } D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS; | ||
| 5706 | |||
| 5707 | typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS | ||
| 5708 | { | ||
| 5709 | UINT AdditionalWidth; | ||
| 5710 | UINT AdditionalHeight; | ||
| 5711 | } D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS; | ||
| 5712 | |||
| 5713 | typedef struct D3D12_RENDER_PASS_BEGINNING_ACCESS | ||
| 5714 | { | ||
| 5715 | D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE Type; | ||
| 5716 | |||
| 5717 | union | ||
| 5718 | { | ||
| 5719 | D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS Clear; | ||
| 5720 | D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; | ||
| 5721 | }; | ||
| 5722 | } D3D12_RENDER_PASS_BEGINNING_ACCESS; | ||
| 5723 | |||
| 5724 | // Ending Access | ||
| 5725 | typedef enum D3D12_RENDER_PASS_ENDING_ACCESS_TYPE | ||
| 5726 | { | ||
| 5727 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_DISCARD, | ||
| 5728 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE, | ||
| 5729 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE, | ||
| 5730 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_NO_ACCESS, | ||
| 5731 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER, | ||
| 5732 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV, | ||
| 5733 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV | ||
| 5734 | } D3D12_RENDER_PASS_ENDING_ACCESS_TYPE; | ||
| 5735 | |||
| 5736 | typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS | ||
| 5737 | { | ||
| 5738 | UINT SrcSubresource; | ||
| 5739 | UINT DstSubresource; | ||
| 5740 | |||
| 5741 | UINT DstX; | ||
| 5742 | UINT DstY; | ||
| 5743 | D3D12_RECT SrcRect; // (0, 0, 0, 0) == resolve entire resource. | ||
| 5744 | |||
| 5745 | } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS; | ||
| 5746 | |||
| 5747 | typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS | ||
| 5748 | { | ||
| 5749 | ID3D12Resource* pSrcResource; | ||
| 5750 | ID3D12Resource* pDstResource; | ||
| 5751 | |||
| 5752 | // Can be a subset of RT's array slices, but can't target subresources that were't part of RTV/DSV. | ||
| 5753 | UINT SubresourceCount; | ||
| 5754 | [annotation("_Field_size_full_(SubresourceCount)")] const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS *pSubresourceParameters; | ||
| 5755 | |||
| 5756 | DXGI_FORMAT Format; | ||
| 5757 | D3D12_RESOLVE_MODE ResolveMode; | ||
| 5758 | |||
| 5759 | BOOL PreserveResolveSource; | ||
| 5760 | |||
| 5761 | } D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS; | ||
| 5762 | |||
| 5763 | typedef struct D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS | ||
| 5764 | { | ||
| 5765 | UINT AdditionalWidth; | ||
| 5766 | UINT AdditionalHeight; | ||
| 5767 | } D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS; | ||
| 5768 | |||
| 5769 | typedef struct D3D12_RENDER_PASS_ENDING_ACCESS | ||
| 5770 | { | ||
| 5771 | D3D12_RENDER_PASS_ENDING_ACCESS_TYPE Type; | ||
| 5772 | |||
| 5773 | union | ||
| 5774 | { | ||
| 5775 | D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS Resolve; | ||
| 5776 | D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS PreserveLocal; | ||
| 5777 | }; | ||
| 5778 | } D3D12_RENDER_PASS_ENDING_ACCESS; | ||
| 5779 | |||
| 5780 | // Render Target Desc | ||
| 5781 | typedef struct D3D12_RENDER_PASS_RENDER_TARGET_DESC | ||
| 5782 | { | ||
| 5783 | D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; | ||
| 5784 | |||
| 5785 | D3D12_RENDER_PASS_BEGINNING_ACCESS BeginningAccess; | ||
| 5786 | D3D12_RENDER_PASS_ENDING_ACCESS EndingAccess; | ||
| 5787 | |||
| 5788 | } D3D12_RENDER_PASS_RENDER_TARGET_DESC; | ||
| 5789 | |||
| 5790 | // Depth-Stencil Desc | ||
| 5791 | typedef struct D3D12_RENDER_PASS_DEPTH_STENCIL_DESC | ||
| 5792 | { | ||
| 5793 | D3D12_CPU_DESCRIPTOR_HANDLE cpuDescriptor; | ||
| 5794 | |||
| 5795 | D3D12_RENDER_PASS_BEGINNING_ACCESS DepthBeginningAccess; | ||
| 5796 | D3D12_RENDER_PASS_BEGINNING_ACCESS StencilBeginningAccess; | ||
| 5797 | |||
| 5798 | D3D12_RENDER_PASS_ENDING_ACCESS DepthEndingAccess; | ||
| 5799 | D3D12_RENDER_PASS_ENDING_ACCESS StencilEndingAccess; | ||
| 5800 | |||
| 5801 | } D3D12_RENDER_PASS_DEPTH_STENCIL_DESC; | ||
| 5802 | |||
| 5803 | typedef enum D3D12_RENDER_PASS_FLAGS | ||
| 5804 | { | ||
| 5805 | D3D12_RENDER_PASS_FLAG_NONE = 0x0, | ||
| 5806 | D3D12_RENDER_PASS_FLAG_ALLOW_UAV_WRITES = 0x1, | ||
| 5807 | D3D12_RENDER_PASS_FLAG_SUSPENDING_PASS = 0x2, | ||
| 5808 | D3D12_RENDER_PASS_FLAG_RESUMING_PASS = 0x4, | ||
| 5809 | D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_DEPTH = 0x8, | ||
| 5810 | D3D12_RENDER_PASS_FLAG_BIND_READ_ONLY_STENCIL = 0x10 | ||
| 5811 | } D3D12_RENDER_PASS_FLAGS; | ||
| 5812 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_RENDER_PASS_FLAGS )") | ||
| 5813 | |||
| 5814 | [uuid(DBB84C27-36CE-4FC9-B801-F048C46AC570), object, local, pointer_default(unique)] | ||
| 5815 | interface ID3D12MetaCommand : ID3D12Pageable | ||
| 5816 | { | ||
| 5817 | UINT64 GetRequiredParameterResourceSize([annotation("_In_")] D3D12_META_COMMAND_PARAMETER_STAGE Stage, [annotation("_In_")] UINT ParameterIndex); | ||
| 5818 | } | ||
| 5819 | |||
| 5820 | typedef struct D3D12_DISPATCH_RAYS_DESC | ||
| 5821 | { | ||
| 5822 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE RayGenerationShaderRecord; | ||
| 5823 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE MissShaderTable; | ||
| 5824 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE HitGroupTable; | ||
| 5825 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE CallableShaderTable; | ||
| 5826 | UINT Width; | ||
| 5827 | UINT Height; | ||
| 5828 | UINT Depth; | ||
| 5829 | } D3D12_DISPATCH_RAYS_DESC; | ||
| 5830 | |||
| 5831 | typedef enum D3D12_SET_WORK_GRAPH_FLAGS | ||
| 5832 | { | ||
| 5833 | D3D12_SET_WORK_GRAPH_FLAG_NONE = 0x0, | ||
| 5834 | D3D12_SET_WORK_GRAPH_FLAG_INITIALIZE = 0x1, | ||
| 5835 | } D3D12_SET_WORK_GRAPH_FLAGS; | ||
| 5836 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_SET_WORK_GRAPH_FLAGS )" ) | ||
| 5837 | |||
| 5838 | typedef struct D3D12_SET_WORK_GRAPH_DESC | ||
| 5839 | { | ||
| 5840 | D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; | ||
| 5841 | D3D12_SET_WORK_GRAPH_FLAGS Flags; | ||
| 5842 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE BackingMemory; | ||
| 5843 | D3D12_GPU_VIRTUAL_ADDRESS_RANGE_AND_STRIDE NodeLocalRootArgumentsTable; | ||
| 5844 | } D3D12_SET_WORK_GRAPH_DESC; | ||
| 5845 | |||
| 5846 | typedef struct D3D12_SET_RAYTRACING_PIPELINE_DESC | ||
| 5847 | { | ||
| 5848 | D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; | ||
| 5849 | } D3D12_SET_RAYTRACING_PIPELINE_DESC; | ||
| 5850 | |||
| 5851 | typedef struct D3D12_SET_GENERIC_PIPELINE_DESC | ||
| 5852 | { | ||
| 5853 | D3D12_PROGRAM_IDENTIFIER ProgramIdentifier; | ||
| 5854 | } D3D12_SET_GENERIC_PIPELINE_DESC; | ||
| 5855 | |||
| 5856 | typedef enum D3D12_PROGRAM_TYPE | ||
| 5857 | { | ||
| 5858 | D3D12_PROGRAM_TYPE_GENERIC_PIPELINE = 1, | ||
| 5859 | D3D12_PROGRAM_TYPE_RAYTRACING_PIPELINE = 4, | ||
| 5860 | D3D12_PROGRAM_TYPE_WORK_GRAPH = 5 | ||
| 5861 | } D3D12_PROGRAM_TYPE; | ||
| 5862 | |||
| 5863 | typedef struct D3D12_SET_PROGRAM_DESC | ||
| 5864 | { | ||
| 5865 | D3D12_PROGRAM_TYPE Type; | ||
| 5866 | union | ||
| 5867 | { | ||
| 5868 | D3D12_SET_GENERIC_PIPELINE_DESC GenericPipeline; | ||
| 5869 | D3D12_SET_RAYTRACING_PIPELINE_DESC RaytracingPipeline; | ||
| 5870 | D3D12_SET_WORK_GRAPH_DESC WorkGraph; | ||
| 5871 | }; | ||
| 5872 | } D3D12_SET_PROGRAM_DESC; | ||
| 5873 | |||
| 5874 | typedef enum D3D12_DISPATCH_MODE | ||
| 5875 | { | ||
| 5876 | D3D12_DISPATCH_MODE_NODE_CPU_INPUT = 0, // D3D12_NODE_CPU_INPUT | ||
| 5877 | D3D12_DISPATCH_MODE_NODE_GPU_INPUT = 1, // D3D12_NODE_GPU_INPUT in GPU memory | ||
| 5878 | D3D12_DISPATCH_MODE_MULTI_NODE_CPU_INPUT = 2, // D3D12_MULTI_NODE_CPU_INPUT | ||
| 5879 | D3D12_DISPATCH_MODE_MULTI_NODE_GPU_INPUT = 3 // D3D12_MULTI_NODE_GPU_INPUT in GPU memory | ||
| 5880 | } D3D12_DISPATCH_MODE; | ||
| 5881 | |||
| 5882 | typedef struct D3D12_NODE_CPU_INPUT | ||
| 5883 | { | ||
| 5884 | UINT EntrypointIndex; | ||
| 5885 | UINT NumRecords; | ||
| 5886 | const void* pRecords; | ||
| 5887 | UINT64 RecordStrideInBytes; | ||
| 5888 | } D3D12_NODE_CPU_INPUT; | ||
| 5889 | |||
| 5890 | typedef struct D3D12_NODE_GPU_INPUT | ||
| 5891 | { | ||
| 5892 | UINT EntrypointIndex; | ||
| 5893 | UINT NumRecords; | ||
| 5894 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE Records; | ||
| 5895 | } D3D12_NODE_GPU_INPUT; | ||
| 5896 | |||
| 5897 | typedef struct D3D12_MULTI_NODE_CPU_INPUT | ||
| 5898 | { | ||
| 5899 | UINT NumNodeInputs; | ||
| 5900 | const D3D12_NODE_CPU_INPUT* pNodeInputs; | ||
| 5901 | UINT64 NodeInputStrideInBytes; | ||
| 5902 | } D3D12_MULTI_NODE_CPU_INPUT; | ||
| 5903 | |||
| 5904 | typedef struct D3D12_MULTI_NODE_GPU_INPUT | ||
| 5905 | { | ||
| 5906 | UINT NumNodeInputs; | ||
| 5907 | D3D12_GPU_VIRTUAL_ADDRESS_AND_STRIDE NodeInputs; // D3D12_GPU_NODE_INPUT array | ||
| 5908 | } D3D12_MULTI_NODE_GPU_INPUT; | ||
| 5909 | |||
| 5910 | typedef struct D3D12_DISPATCH_GRAPH_DESC | ||
| 5911 | { | ||
| 5912 | D3D12_DISPATCH_MODE Mode; | ||
| 5913 | union | ||
| 5914 | { | ||
| 5915 | D3D12_NODE_CPU_INPUT NodeCPUInput; | ||
| 5916 | D3D12_GPU_VIRTUAL_ADDRESS NodeGPUInput; | ||
| 5917 | D3D12_MULTI_NODE_CPU_INPUT MultiNodeCPUInput; | ||
| 5918 | D3D12_GPU_VIRTUAL_ADDRESS MultiNodeGPUInput; | ||
| 5919 | }; | ||
| 5920 | } D3D12_DISPATCH_GRAPH_DESC; | ||
| 5921 | |||
| 5922 | [uuid(8754318e-d3a9-4541-98cf-645b50dc4874), object, local, pointer_default(unique)] | ||
| 5923 | interface ID3D12GraphicsCommandList4 : ID3D12GraphicsCommandList3 | ||
| 5924 | { | ||
| 5925 | void BeginRenderPass( | ||
| 5926 | [annotation("_In_")] UINT NumRenderTargets, | ||
| 5927 | [annotation("_In_reads_opt_(NumRenderTargets)")] const D3D12_RENDER_PASS_RENDER_TARGET_DESC* pRenderTargets, | ||
| 5928 | [annotation("_In_opt_")] const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC* pDepthStencil, | ||
| 5929 | D3D12_RENDER_PASS_FLAGS Flags | ||
| 5930 | ); | ||
| 5931 | |||
| 5932 | void EndRenderPass(); | ||
| 5933 | |||
| 5934 | void InitializeMetaCommand( | ||
| 5935 | [annotation("_In_")] ID3D12MetaCommand * pMetaCommand, | ||
| 5936 | [annotation("_In_reads_bytes_opt_(InitializationParametersDataSizeInBytes)")] const void * pInitializationParametersData, | ||
| 5937 | [annotation("_In_")] SIZE_T InitializationParametersDataSizeInBytes | ||
| 5938 | ); | ||
| 5939 | |||
| 5940 | void ExecuteMetaCommand( | ||
| 5941 | [annotation("_In_")] ID3D12MetaCommand * pMetaCommand, | ||
| 5942 | [annotation("_In_reads_bytes_opt_(ExecutionParametersDataSizeInBytes)")] const void * pExecutionParametersData, | ||
| 5943 | [annotation("_In_")] SIZE_T ExecutionParametersDataSizeInBytes | ||
| 5944 | ); | ||
| 5945 | |||
| 5946 | void BuildRaytracingAccelerationStructure( | ||
| 5947 | [annotation("_In_")] const D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC* pDesc, | ||
| 5948 | [annotation("_In_")] UINT NumPostbuildInfoDescs, | ||
| 5949 | [annotation("_In_reads_opt_(NumPostbuildInfoDescs)")] const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pPostbuildInfoDescs | ||
| 5950 | ); | ||
| 5951 | |||
| 5952 | void EmitRaytracingAccelerationStructurePostbuildInfo( | ||
| 5953 | [annotation("_In_")] const D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC* pDesc, | ||
| 5954 | [annotation("_In_")] UINT NumSourceAccelerationStructures, | ||
| 5955 | [annotation("_In_reads_( NumSourceAccelerationStructures )")] const D3D12_GPU_VIRTUAL_ADDRESS* pSourceAccelerationStructureData); | ||
| 5956 | |||
| 5957 | void CopyRaytracingAccelerationStructure( | ||
| 5958 | [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS DestAccelerationStructureData, | ||
| 5959 | [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS SourceAccelerationStructureData, | ||
| 5960 | [annotation("_In_")] D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE Mode); | ||
| 5961 | |||
| 5962 | void SetPipelineState1( | ||
| 5963 | [annotation("_In_")] ID3D12StateObject* pStateObject); | ||
| 5964 | |||
| 5965 | void DispatchRays( | ||
| 5966 | [annotation("_In_")] const D3D12_DISPATCH_RAYS_DESC* pDesc); | ||
| 5967 | } | ||
| 5968 | |||
| 5969 | typedef enum D3D12_SHADER_CACHE_MODE | ||
| 5970 | { | ||
| 5971 | D3D12_SHADER_CACHE_MODE_MEMORY, | ||
| 5972 | D3D12_SHADER_CACHE_MODE_DISK, | ||
| 5973 | } D3D12_SHADER_CACHE_MODE; | ||
| 5974 | |||
| 5975 | typedef enum D3D12_SHADER_CACHE_FLAGS | ||
| 5976 | { | ||
| 5977 | D3D12_SHADER_CACHE_FLAG_NONE = 0x0, | ||
| 5978 | D3D12_SHADER_CACHE_FLAG_DRIVER_VERSIONED = 0x1, | ||
| 5979 | D3D12_SHADER_CACHE_FLAG_USE_WORKING_DIR = 0x2, | ||
| 5980 | } D3D12_SHADER_CACHE_FLAGS; | ||
| 5981 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_FLAGS )") | ||
| 5982 | |||
| 5983 | typedef struct D3D12_SHADER_CACHE_SESSION_DESC | ||
| 5984 | { | ||
| 5985 | GUID Identifier; | ||
| 5986 | D3D12_SHADER_CACHE_MODE Mode; | ||
| 5987 | D3D12_SHADER_CACHE_FLAGS Flags; | ||
| 5988 | |||
| 5989 | UINT MaximumInMemoryCacheSizeBytes; | ||
| 5990 | UINT MaximumInMemoryCacheEntries; | ||
| 5991 | |||
| 5992 | UINT MaximumValueFileSizeBytes; | ||
| 5993 | |||
| 5994 | UINT64 Version; | ||
| 5995 | } D3D12_SHADER_CACHE_SESSION_DESC; | ||
| 5996 | |||
| 5997 | typedef enum D3D12_BARRIER_LAYOUT | ||
| 5998 | { | ||
| 5999 | D3D12_BARRIER_LAYOUT_UNDEFINED = 0xffffffff, | ||
| 6000 | D3D12_BARRIER_LAYOUT_COMMON = 0, | ||
| 6001 | D3D12_BARRIER_LAYOUT_PRESENT = 0, | ||
| 6002 | D3D12_BARRIER_LAYOUT_GENERIC_READ = 1, | ||
| 6003 | D3D12_BARRIER_LAYOUT_RENDER_TARGET = 2, | ||
| 6004 | D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS = 3, | ||
| 6005 | D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE = 4, | ||
| 6006 | D3D12_BARRIER_LAYOUT_DEPTH_STENCIL_READ = 5, | ||
| 6007 | D3D12_BARRIER_LAYOUT_SHADER_RESOURCE = 6, | ||
| 6008 | D3D12_BARRIER_LAYOUT_COPY_SOURCE = 7, | ||
| 6009 | D3D12_BARRIER_LAYOUT_COPY_DEST = 8, | ||
| 6010 | D3D12_BARRIER_LAYOUT_RESOLVE_SOURCE = 9, | ||
| 6011 | D3D12_BARRIER_LAYOUT_RESOLVE_DEST = 10, | ||
| 6012 | D3D12_BARRIER_LAYOUT_SHADING_RATE_SOURCE = 11, | ||
| 6013 | D3D12_BARRIER_LAYOUT_VIDEO_DECODE_READ = 12, | ||
| 6014 | D3D12_BARRIER_LAYOUT_VIDEO_DECODE_WRITE = 13, | ||
| 6015 | D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_READ = 14, | ||
| 6016 | D3D12_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE = 15, | ||
| 6017 | D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_READ = 16, | ||
| 6018 | D3D12_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE = 17, | ||
| 6019 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON = 18, | ||
| 6020 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ = 19, | ||
| 6021 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS = 20, | ||
| 6022 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE = 21, | ||
| 6023 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE = 22, | ||
| 6024 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST = 23, | ||
| 6025 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON = 24, | ||
| 6026 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ = 25, | ||
| 6027 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS = 26, | ||
| 6028 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE = 27, | ||
| 6029 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE = 28, | ||
| 6030 | D3D12_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST = 29, | ||
| 6031 | D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE = 31, | ||
| 6032 | |||
| 6033 | } D3D12_BARRIER_LAYOUT; | ||
| 6034 | |||
| 6035 | typedef enum D3D12_BARRIER_SYNC | ||
| 6036 | { | ||
| 6037 | D3D12_BARRIER_SYNC_NONE = 0x0, | ||
| 6038 | D3D12_BARRIER_SYNC_ALL = 0x1, | ||
| 6039 | D3D12_BARRIER_SYNC_DRAW = 0x2, | ||
| 6040 | D3D12_BARRIER_SYNC_INDEX_INPUT = 0x4, | ||
| 6041 | D3D12_BARRIER_SYNC_VERTEX_SHADING = 0x8, | ||
| 6042 | D3D12_BARRIER_SYNC_PIXEL_SHADING = 0x10, | ||
| 6043 | D3D12_BARRIER_SYNC_DEPTH_STENCIL = 0x20, | ||
| 6044 | D3D12_BARRIER_SYNC_RENDER_TARGET = 0x40, | ||
| 6045 | D3D12_BARRIER_SYNC_COMPUTE_SHADING = 0x80, | ||
| 6046 | D3D12_BARRIER_SYNC_RAYTRACING = 0x100, | ||
| 6047 | D3D12_BARRIER_SYNC_COPY = 0x200, | ||
| 6048 | D3D12_BARRIER_SYNC_RESOLVE = 0x400, | ||
| 6049 | D3D12_BARRIER_SYNC_EXECUTE_INDIRECT = 0x800, | ||
| 6050 | D3D12_BARRIER_SYNC_PREDICATION = 0x800, // Aliased with SYNC_EXECUTE_INDIRECT | ||
| 6051 | D3D12_BARRIER_SYNC_ALL_SHADING = 0x1000, | ||
| 6052 | D3D12_BARRIER_SYNC_NON_PIXEL_SHADING = 0x2000, | ||
| 6053 | D3D12_BARRIER_SYNC_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO = 0x4000, | ||
| 6054 | D3D12_BARRIER_SYNC_CLEAR_UNORDERED_ACCESS_VIEW = 0x8000, | ||
| 6055 | D3D12_BARRIER_SYNC_VIDEO_DECODE = 0x100000, | ||
| 6056 | D3D12_BARRIER_SYNC_VIDEO_PROCESS = 0x200000, | ||
| 6057 | D3D12_BARRIER_SYNC_VIDEO_ENCODE = 0x400000, | ||
| 6058 | D3D12_BARRIER_SYNC_BUILD_RAYTRACING_ACCELERATION_STRUCTURE = 0x800000, | ||
| 6059 | D3D12_BARRIER_SYNC_COPY_RAYTRACING_ACCELERATION_STRUCTURE = 0x1000000, | ||
| 6060 | D3D12_BARRIER_SYNC_SPLIT = 0x80000000, | ||
| 6061 | } D3D12_BARRIER_SYNC; | ||
| 6062 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_SYNC )" ) | ||
| 6063 | |||
| 6064 | typedef enum D3D12_BARRIER_ACCESS | ||
| 6065 | { | ||
| 6066 | D3D12_BARRIER_ACCESS_COMMON = 0, | ||
| 6067 | D3D12_BARRIER_ACCESS_VERTEX_BUFFER = 0x1, | ||
| 6068 | D3D12_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2, | ||
| 6069 | D3D12_BARRIER_ACCESS_INDEX_BUFFER = 0x4, | ||
| 6070 | D3D12_BARRIER_ACCESS_RENDER_TARGET = 0x8, | ||
| 6071 | D3D12_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10, | ||
| 6072 | D3D12_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20, | ||
| 6073 | D3D12_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40, | ||
| 6074 | D3D12_BARRIER_ACCESS_SHADER_RESOURCE = 0x80, | ||
| 6075 | D3D12_BARRIER_ACCESS_STREAM_OUTPUT = 0x100, | ||
| 6076 | D3D12_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200, | ||
| 6077 | D3D12_BARRIER_ACCESS_PREDICATION = 0x200, // Aliased with ACCESS_INDIRECT_ARGUMENT | ||
| 6078 | D3D12_BARRIER_ACCESS_COPY_DEST = 0x400, | ||
| 6079 | D3D12_BARRIER_ACCESS_COPY_SOURCE = 0x800, | ||
| 6080 | D3D12_BARRIER_ACCESS_RESOLVE_DEST = 0x1000, | ||
| 6081 | D3D12_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000, | ||
| 6082 | D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000, | ||
| 6083 | D3D12_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000, | ||
| 6084 | D3D12_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000, | ||
| 6085 | D3D12_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000, | ||
| 6086 | D3D12_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000, | ||
| 6087 | D3D12_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000, | ||
| 6088 | D3D12_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000, | ||
| 6089 | D3D12_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000, | ||
| 6090 | D3D12_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000, | ||
| 6091 | D3D12_BARRIER_ACCESS_NO_ACCESS = 0x80000000, | ||
| 6092 | } D3D12_BARRIER_ACCESS; | ||
| 6093 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_BARRIER_ACCESS )" ) | ||
| 6094 | |||
| 6095 | typedef enum D3D12_BARRIER_TYPE | ||
| 6096 | { | ||
| 6097 | D3D12_BARRIER_TYPE_GLOBAL, | ||
| 6098 | D3D12_BARRIER_TYPE_TEXTURE, | ||
| 6099 | D3D12_BARRIER_TYPE_BUFFER, | ||
| 6100 | } D3D12_BARRIER_TYPE; | ||
| 6101 | |||
| 6102 | typedef enum D3D12_TEXTURE_BARRIER_FLAGS | ||
| 6103 | { | ||
| 6104 | D3D12_TEXTURE_BARRIER_FLAG_NONE = 0x0, | ||
| 6105 | D3D12_TEXTURE_BARRIER_FLAG_DISCARD = 0x1, | ||
| 6106 | } D3D12_TEXTURE_BARRIER_FLAGS; | ||
| 6107 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_TEXTURE_BARRIER_FLAGS )") | ||
| 6108 | |||
| 6109 | typedef struct D3D12_BARRIER_SUBRESOURCE_RANGE | ||
| 6110 | { | ||
| 6111 | UINT IndexOrFirstMipLevel; | ||
| 6112 | UINT NumMipLevels; | ||
| 6113 | UINT FirstArraySlice; | ||
| 6114 | UINT NumArraySlices; | ||
| 6115 | UINT FirstPlane; | ||
| 6116 | UINT NumPlanes; | ||
| 6117 | } D3D12_BARRIER_SUBRESOURCE_RANGE; | ||
| 6118 | |||
| 6119 | typedef struct D3D12_GLOBAL_BARRIER | ||
| 6120 | { | ||
| 6121 | D3D12_BARRIER_SYNC SyncBefore; | ||
| 6122 | D3D12_BARRIER_SYNC SyncAfter; | ||
| 6123 | D3D12_BARRIER_ACCESS AccessBefore; | ||
| 6124 | D3D12_BARRIER_ACCESS AccessAfter; | ||
| 6125 | } D3D12_GLOBAL_BARRIER; | ||
| 6126 | |||
| 6127 | typedef struct D3D12_TEXTURE_BARRIER | ||
| 6128 | { | ||
| 6129 | D3D12_BARRIER_SYNC SyncBefore; | ||
| 6130 | D3D12_BARRIER_SYNC SyncAfter; | ||
| 6131 | D3D12_BARRIER_ACCESS AccessBefore; | ||
| 6132 | D3D12_BARRIER_ACCESS AccessAfter; | ||
| 6133 | D3D12_BARRIER_LAYOUT LayoutBefore; | ||
| 6134 | D3D12_BARRIER_LAYOUT LayoutAfter; | ||
| 6135 | [annotation("_In_")] ID3D12Resource *pResource; | ||
| 6136 | D3D12_BARRIER_SUBRESOURCE_RANGE Subresources; | ||
| 6137 | D3D12_TEXTURE_BARRIER_FLAGS Flags; | ||
| 6138 | } D3D12_TEXTURE_BARRIER; | ||
| 6139 | |||
| 6140 | typedef struct D3D12_BUFFER_BARRIER | ||
| 6141 | { | ||
| 6142 | D3D12_BARRIER_SYNC SyncBefore; | ||
| 6143 | D3D12_BARRIER_SYNC SyncAfter; | ||
| 6144 | D3D12_BARRIER_ACCESS AccessBefore; | ||
| 6145 | D3D12_BARRIER_ACCESS AccessAfter; | ||
| 6146 | [annotation("_In_")] ID3D12Resource *pResource; | ||
| 6147 | UINT64 Offset; | ||
| 6148 | UINT64 Size; | ||
| 6149 | } D3D12_BUFFER_BARRIER; | ||
| 6150 | |||
| 6151 | typedef struct D3D12_BARRIER_GROUP | ||
| 6152 | { | ||
| 6153 | D3D12_BARRIER_TYPE Type; | ||
| 6154 | UINT32 NumBarriers; | ||
| 6155 | union | ||
| 6156 | { | ||
| 6157 | [annotation("_In_reads_(NumBarriers)")] const D3D12_GLOBAL_BARRIER *pGlobalBarriers; | ||
| 6158 | [annotation("_In_reads_(NumBarriers)")] const D3D12_TEXTURE_BARRIER *pTextureBarriers; | ||
| 6159 | [annotation("_In_reads_(NumBarriers)")] const D3D12_BUFFER_BARRIER *pBufferBarriers; | ||
| 6160 | }; | ||
| 6161 | } D3D12_BARRIER_GROUP; | ||
| 6162 | |||
| 6163 | [uuid(28e2495d-0f64-4ae4-a6ec-129255dc49a8), object, local, pointer_default(unique)] | ||
| 6164 | interface ID3D12ShaderCacheSession | ||
| 6165 | : ID3D12DeviceChild | ||
| 6166 | { | ||
| 6167 | HRESULT FindValue( | ||
| 6168 | [in, annotation("_In_reads_bytes_(KeySize)")] const void* pKey, | ||
| 6169 | UINT KeySize, | ||
| 6170 | [out, annotation("_Out_writes_bytes_(*pValueSize)")] void* pValue, | ||
| 6171 | [annotation("_Inout_")] UINT* pValueSize); | ||
| 6172 | HRESULT StoreValue( | ||
| 6173 | [in, annotation("_In_reads_bytes_(KeySize)")] const void* pKey, | ||
| 6174 | UINT KeySize, | ||
| 6175 | [in, annotation("_In_reads_bytes_(ValueSize)")] const void* pValue, | ||
| 6176 | UINT ValueSize); | ||
| 6177 | |||
| 6178 | void SetDeleteOnDestroy(); | ||
| 6179 | D3D12_SHADER_CACHE_SESSION_DESC GetDesc(); | ||
| 6180 | }; | ||
| 6181 | |||
| 6182 | typedef enum D3D12_SHADER_CACHE_KIND_FLAGS | ||
| 6183 | { | ||
| 6184 | D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CACHE_FOR_DRIVER = 0x1, | ||
| 6185 | D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_D3D_CONVERSIONS = 0x2, | ||
| 6186 | D3D12_SHADER_CACHE_KIND_FLAG_IMPLICIT_DRIVER_MANAGED = 0x4, | ||
| 6187 | D3D12_SHADER_CACHE_KIND_FLAG_APPLICATION_MANAGED = 0x8, | ||
| 6188 | } D3D12_SHADER_CACHE_KIND_FLAGS; | ||
| 6189 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_KIND_FLAGS )") | ||
| 6190 | |||
| 6191 | typedef enum D3D12_SHADER_CACHE_CONTROL_FLAGS | ||
| 6192 | { | ||
| 6193 | D3D12_SHADER_CACHE_CONTROL_FLAG_DISABLE = 0x1, | ||
| 6194 | D3D12_SHADER_CACHE_CONTROL_FLAG_ENABLE = 0x2, | ||
| 6195 | D3D12_SHADER_CACHE_CONTROL_FLAG_CLEAR = 0x4, | ||
| 6196 | } D3D12_SHADER_CACHE_CONTROL_FLAGS; | ||
| 6197 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_SHADER_CACHE_CONTROL_FLAGS )") | ||
| 6198 | |||
| 6199 | [uuid(4c80e962-f032-4f60-bc9e-ebc2cfa1d83c), object, local, pointer_default(unique)] | ||
| 6200 | interface ID3D12Device9 | ||
| 6201 | : ID3D12Device8 | ||
| 6202 | { | ||
| 6203 | HRESULT CreateShaderCacheSession( | ||
| 6204 | [annotation("_In_")] const D3D12_SHADER_CACHE_SESSION_DESC* pDesc, | ||
| 6205 | REFIID riid, | ||
| 6206 | [annotation("_COM_Outptr_opt_")] void** ppvSession); | ||
| 6207 | |||
| 6208 | HRESULT ShaderCacheControl( | ||
| 6209 | D3D12_SHADER_CACHE_KIND_FLAGS Kinds, | ||
| 6210 | D3D12_SHADER_CACHE_CONTROL_FLAGS Control); | ||
| 6211 | |||
| 6212 | HRESULT CreateCommandQueue1( | ||
| 6213 | [annotation("_In_")] const D3D12_COMMAND_QUEUE_DESC* pDesc, | ||
| 6214 | REFIID CreatorID, | ||
| 6215 | [in] REFIID riid, // Expected: ID3D12CommandQueue | ||
| 6216 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppCommandQueue | ||
| 6217 | ); | ||
| 6218 | }; | ||
| 6219 | |||
| 6220 | [uuid(517f8718-aa66-49f9-b02b-a7ab89c06031), object, local, pointer_default(unique)] | ||
| 6221 | interface ID3D12Device10 | ||
| 6222 | : ID3D12Device9 | ||
| 6223 | { | ||
| 6224 | HRESULT CreateCommittedResource3( | ||
| 6225 | [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, | ||
| 6226 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 6227 | [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc, | ||
| 6228 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 6229 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 6230 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession* pProtectedSession, | ||
| 6231 | UINT32 NumCastableFormats, | ||
| 6232 | [annotation("_In_opt_count_(NumCastableFormats)")] const DXGI_FORMAT *pCastableFormats, | ||
| 6233 | [in] REFIID riidResource, // Expected: ID3D12Resource1* | ||
| 6234 | [out, iid_is(riidResource), annotation("_COM_Outptr_opt_")] void** ppvResource); | ||
| 6235 | |||
| 6236 | HRESULT CreatePlacedResource2( | ||
| 6237 | [annotation("_In_")] ID3D12Heap* pHeap, | ||
| 6238 | UINT64 HeapOffset, | ||
| 6239 | [annotation("_In_")] const D3D12_RESOURCE_DESC1* pDesc, | ||
| 6240 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 6241 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 6242 | UINT32 NumCastableFormats, | ||
| 6243 | [annotation("_In_opt_count_(NumCastableFormats)")] const DXGI_FORMAT *pCastableFormats, | ||
| 6244 | [in] REFIID riid, // Expected: ID3D12Resource* | ||
| 6245 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource); | ||
| 6246 | |||
| 6247 | HRESULT CreateReservedResource2( | ||
| 6248 | [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, | ||
| 6249 | D3D12_BARRIER_LAYOUT InitialLayout, | ||
| 6250 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 6251 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedSession, | ||
| 6252 | UINT32 NumCastableFormats, | ||
| 6253 | [annotation("_In_opt_count_(NumCastableFormats)")] const DXGI_FORMAT *pCastableFormats, | ||
| 6254 | [in] REFIID riid, // Expected: ID3D12Resource1* | ||
| 6255 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppvResource | ||
| 6256 | ); | ||
| 6257 | }; | ||
| 6258 | |||
| 6259 | [uuid(5405c344-d457-444e-b4dd-2366e45aee39), object, local, pointer_default(unique)] | ||
| 6260 | interface ID3D12Device11 | ||
| 6261 | : ID3D12Device10 | ||
| 6262 | { | ||
| 6263 | void CreateSampler2( | ||
| 6264 | [annotation("_In_")] const D3D12_SAMPLER_DESC2* pDesc, | ||
| 6265 | [annotation("_In_")] D3D12_CPU_DESCRIPTOR_HANDLE DestDescriptor); | ||
| 6266 | }; | ||
| 6267 | |||
| 6268 | [uuid(5af5c532-4c91-4cd0-b541-15a405395fc5), object, local, pointer_default(unique)] | ||
| 6269 | interface ID3D12Device12 | ||
| 6270 | : ID3D12Device11 | ||
| 6271 | { | ||
| 6272 | D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo3( | ||
| 6273 | UINT visibleMask, | ||
| 6274 | UINT numResourceDescs, | ||
| 6275 | [annotation("_In_reads_(numResourceDescs)")] const D3D12_RESOURCE_DESC1* pResourceDescs, | ||
| 6276 | [annotation("_In_opt_count_(numResourceDescs)")] const UINT32* pNumCastableFormats, | ||
| 6277 | [annotation("_In_opt_count_(numResourceDescs)")] const DXGI_FORMAT *const *ppCastableFormats, | ||
| 6278 | [annotation("_Out_writes_opt_(numResourceDescs)")] D3D12_RESOURCE_ALLOCATION_INFO1* pResourceAllocationInfo1); | ||
| 6279 | }; | ||
| 6280 | |||
| 6281 | [uuid(14eecffc-4df8-40f7-a118-5c816f45695e), object, local, pointer_default(unique)] | ||
| 6282 | interface ID3D12Device13 | ||
| 6283 | : ID3D12Device12 | ||
| 6284 | { | ||
| 6285 | HRESULT OpenExistingHeapFromAddress1( | ||
| 6286 | [annotation("_In_")] const void* pAddress, | ||
| 6287 | SIZE_T size, | ||
| 6288 | [in] REFIID riid, // Expected: ID3D12Heap | ||
| 6289 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvHeap | ||
| 6290 | ); | ||
| 6291 | }; | ||
| 6292 | |||
| 6293 | [uuid(5f6e592d-d895-44c2-8e4a-88ad4926d323), object, local, pointer_default(unique)] | ||
| 6294 | interface ID3D12Device14 : ID3D12Device13 | ||
| 6295 | { | ||
| 6296 | HRESULT CreateRootSignatureFromSubobjectInLibrary( | ||
| 6297 | [annotation("_In_")] UINT nodeMask, | ||
| 6298 | [annotation("_In_reads_(blobLengthInBytes)")] const void* pLibraryBlob, | ||
| 6299 | [annotation("_In_")] SIZE_T blobLengthInBytes, | ||
| 6300 | [annotation("_In_opt_")] LPCWSTR subobjectName, | ||
| 6301 | [in] REFIID riid, // Expected ID3D12RootSignature | ||
| 6302 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvRootSignature); | ||
| 6303 | }; | ||
| 6304 | |||
| 6305 | typedef union D3D12_VERSION_NUMBER | ||
| 6306 | { | ||
| 6307 | UINT64 Version; | ||
| 6308 | UINT16 VersionParts[4]; | ||
| 6309 | } D3D12_VERSION_NUMBER; | ||
| 6310 | |||
| 6311 | // D3D12_FEATURE_SHADER_CACHE_ABI_SUPPORT | ||
| 6312 | typedef struct D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT | ||
| 6313 | { | ||
| 6314 | WCHAR szAdapterFamily[128]; | ||
| 6315 | UINT64 MinimumABISupportVersion; | ||
| 6316 | UINT64 MaximumABISupportVersion; | ||
| 6317 | D3D12_VERSION_NUMBER CompilerVersion; | ||
| 6318 | D3D12_VERSION_NUMBER ApplicationProfileVersion; | ||
| 6319 | } D3D12_FEATURE_DATA_SHADERCACHE_ABI_SUPPORT; | ||
| 6320 | |||
| 6321 | |||
| 6322 | typedef void(__stdcall* D3D12PipelineStateFunc) ( | ||
| 6323 | [annotation("_In_reads_bytes_(KeySize)")] const void* pKey, | ||
| 6324 | UINT KeySize, | ||
| 6325 | UINT Version, | ||
| 6326 | const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc, | ||
| 6327 | [annotation("_Inout_opt_")] void* pContext | ||
| 6328 | ); | ||
| 6329 | |||
| 6330 | typedef void(__stdcall* D3D12StateObjectFunc) ( | ||
| 6331 | [annotation("_In_reads_bytes_(KeySize)")] const void* pKey, | ||
| 6332 | UINT KeySize, | ||
| 6333 | UINT Version, | ||
| 6334 | const D3D12_STATE_OBJECT_DESC* pDesc, | ||
| 6335 | [annotation("_In_reads_bytes_(ParentKeySize)")] const void* pParentKey, | ||
| 6336 | UINT ParentKeySize, | ||
| 6337 | [annotation("_Inout_opt_")] void* pContext | ||
| 6338 | ); | ||
| 6339 | |||
| 6340 | |||
| 6341 | typedef struct D3D12_APPLICATION_DESC | ||
| 6342 | { | ||
| 6343 | LPCWSTR pExeFilename; | ||
| 6344 | LPCWSTR pName; | ||
| 6345 | D3D12_VERSION_NUMBER Version; | ||
| 6346 | LPCWSTR pEngineName; | ||
| 6347 | D3D12_VERSION_NUMBER EngineVersion; | ||
| 6348 | } D3D12_APPLICATION_DESC; | ||
| 6349 | |||
| 6350 | typedef void(__stdcall* D3D12ApplicationDescFunc) ( | ||
| 6351 | [annotation("_In_")] const D3D12_APPLICATION_DESC* pApplicationDesc, | ||
| 6352 | [annotation("_Inout_opt_")] void* pContext | ||
| 6353 | ); | ||
| 6354 | |||
| 6355 | typedef struct D3D12_EXISTING_COLLECTION_BY_KEY_DESC | ||
| 6356 | { | ||
| 6357 | [annotation("_Field_size_bytes_full_(KeySize)")] const void* pKey; | ||
| 6358 | UINT KeySize; | ||
| 6359 | UINT NumExports; // Optional, if 0 all exports in the library/collection will be surfaced | ||
| 6360 | [annotation("_In_reads_(NumExports)")] const D3D12_EXPORT_DESC* pExports; | ||
| 6361 | } D3D12_EXISTING_COLLECTION_BY_KEY_DESC; | ||
| 6362 | |||
| 6363 | [uuid(c56060b7-b5fc-4135-98e0-a1e9997eace0), object, local, pointer_default(unique)] | ||
| 6364 | interface ID3D12StateObjectDatabase | ||
| 6365 | : IUnknown | ||
| 6366 | { | ||
| 6367 | HRESULT SetApplicationDesc( | ||
| 6368 | [annotation("_In_")] const D3D12_APPLICATION_DESC* pApplicationDesc); | ||
| 6369 | |||
| 6370 | HRESULT GetApplicationDesc( | ||
| 6371 | [annotation("_In_")] D3D12ApplicationDescFunc CallbackFunc, | ||
| 6372 | [annotation("_Inout_opt_")] void* pContext); | ||
| 6373 | |||
| 6374 | HRESULT StorePipelineStateDesc( | ||
| 6375 | [annotation("_In_reads_(KeySize)")] const void* pKey, | ||
| 6376 | UINT KeySize, | ||
| 6377 | UINT Version, | ||
| 6378 | [annotation("_In_")] const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc); | ||
| 6379 | |||
| 6380 | HRESULT FindPipelineStateDesc( | ||
| 6381 | [annotation("_In_reads_(KeySize)")] const void* pKey, | ||
| 6382 | UINT KeySize, | ||
| 6383 | [annotation("_In_")] D3D12PipelineStateFunc CallbackFunc, | ||
| 6384 | [annotation("_Inout_opt_")] void* pContext); | ||
| 6385 | |||
| 6386 | HRESULT StoreStateObjectDesc( | ||
| 6387 | [annotation("_In_reads_(KeySize)")] const void* pKey, | ||
| 6388 | UINT KeySize, | ||
| 6389 | UINT Version, | ||
| 6390 | [annotation("_In_")] const D3D12_STATE_OBJECT_DESC* pDesc, | ||
| 6391 | [annotation("_In_reads_opt_(StateObjectToGrowFromKeySize)")] const void* pStateObjectToGrowFromKey, | ||
| 6392 | UINT StateObjectToGrowFromKeySize); | ||
| 6393 | |||
| 6394 | HRESULT FindStateObjectDesc( | ||
| 6395 | [annotation("_In_reads_(keySize)")] const void* pKey, | ||
| 6396 | UINT KeySize, | ||
| 6397 | D3D12StateObjectFunc CallbackFunc, | ||
| 6398 | [annotation("_Inout_opt_")] void* pContext); | ||
| 6399 | |||
| 6400 | HRESULT FindObjectVersion( | ||
| 6401 | [annotation("_In_reads_(keySize)")] const void* pKey, | ||
| 6402 | UINT KeySize, | ||
| 6403 | [annotation("_Out_")] UINT* pVersion); | ||
| 6404 | }; | ||
| 6405 | |||
| 6406 | |||
| 6407 | |||
| 6408 | [uuid(bc66d368-7373-4943-8757-fc87dc79e476), object, local, pointer_default(unique)] | ||
| 6409 | interface ID3D12VirtualizationGuestDevice | ||
| 6410 | : IUnknown | ||
| 6411 | { | ||
| 6412 | HRESULT ShareWithHost( | ||
| 6413 | [annotation("_In_")] ID3D12DeviceChild* pObject, | ||
| 6414 | [annotation("_Out_")] HANDLE* pHandle | ||
| 6415 | ); | ||
| 6416 | |||
| 6417 | HRESULT CreateFenceFd( | ||
| 6418 | [annotation("_In_")] ID3D12Fence *pFence, | ||
| 6419 | UINT64 FenceValue, | ||
| 6420 | [annotation("_Out_")] int *pFenceFd | ||
| 6421 | ); | ||
| 6422 | }; | ||
| 6423 | |||
| 6424 | |||
| 6425 | |||
| 6426 | [uuid(7071e1f0-e84b-4b33-974f-12fa49de65c5), object, local, pointer_default(unique)] | ||
| 6427 | interface ID3D12Tools | ||
| 6428 | : IUnknown | ||
| 6429 | { | ||
| 6430 | void EnableShaderInstrumentation(BOOL bEnable); | ||
| 6431 | BOOL ShaderInstrumentationEnabled(); | ||
| 6432 | } | ||
| 6433 | |||
| 6434 | [uuid(e4fbc019-dd3c-43e1-8f32-7f649575f0a0), object, local, pointer_default(unique)] | ||
| 6435 | interface ID3D12Tools1 | ||
| 6436 | : ID3D12Tools | ||
| 6437 | { | ||
| 6438 | HRESULT ReserveGPUVARangesAtCreate( | ||
| 6439 | [annotation("_In_reads_(uiNumRanges)")] D3D12_GPU_VIRTUAL_ADDRESS_RANGE* pRanges, | ||
| 6440 | [annotation("_In_")] UINT uiNumRanges); | ||
| 6441 | void ClearReservedGPUVARangesList(); | ||
| 6442 | } | ||
| 6443 | |||
| 6444 | [uuid(01d393c5-c9b0-42a1-958c-c26b02d4d097), object, local, pointer_default(unique)] | ||
| 6445 | interface ID3D12Tools2 | ||
| 6446 | : ID3D12Tools1 | ||
| 6447 | { | ||
| 6448 | HRESULT SetApplicationSpecificDriverState( | ||
| 6449 | [annotation("_In_")] IUnknown* pAdapter, | ||
| 6450 | [annotation("_In_opt_")] ID3DBlob* pBlob); | ||
| 6451 | }; | ||
| 6452 | |||
| 6453 | |||
| 6454 | [uuid(8f1359db-d8d1-42f9-b5cf-79f4cbad0d3d), object, local, pointer_default(unique)] | ||
| 6455 | interface ID3D12PageableTools | ||
| 6456 | : IUnknown | ||
| 6457 | { | ||
| 6458 | HRESULT GetAllocation( | ||
| 6459 | [annotation("_Inout_")] D3D12_GPU_VIRTUAL_ADDRESS_RANGE* pAllocation); | ||
| 6460 | } | ||
| 6461 | |||
| 6462 | [uuid(2ea68e9c-19c3-4e47-a109-6cdadff0aca9), object, local, pointer_default(unique)] | ||
| 6463 | interface ID3D12DeviceTools | ||
| 6464 | : IUnknown | ||
| 6465 | { | ||
| 6466 | void SetNextAllocationAddress( | ||
| 6467 | [annotation("_In_")] D3D12_GPU_VIRTUAL_ADDRESS nextAllocationVirtualAddress); | ||
| 6468 | } | ||
| 6469 | |||
| 6470 | typedef enum D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS | ||
| 6471 | { | ||
| 6472 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_UNKNOWN = 1, | ||
| 6473 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_USED = 2, | ||
| 6474 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_IGNORED = 3, | ||
| 6475 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_NOT_SPECIFIED = 4, | ||
| 6476 | } D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS; | ||
| 6477 | |||
| 6478 | [uuid(e30e9fc7-e641-4d6e-8a81-9dd9206ec47a), object, local, pointer_default(unique)] | ||
| 6479 | interface ID3D12DeviceTools1 | ||
| 6480 | : ID3D12DeviceTools | ||
| 6481 | { | ||
| 6482 | HRESULT GetApplicationSpecificDriverState( | ||
| 6483 | [annotation("_COM_Outptr_")] ID3DBlob** ppBlob); | ||
| 6484 | D3D12_APPLICATION_SPECIFIC_DRIVER_BLOB_STATUS GetApplicationSpecificDriverBlobStatus(); | ||
| 6485 | } | ||
| 6486 | |||
| 6487 | typedef struct D3D12_SUBRESOURCE_DATA | ||
| 6488 | { | ||
| 6489 | const void* pData; | ||
| 6490 | LONG_PTR RowPitch; | ||
| 6491 | LONG_PTR SlicePitch; | ||
| 6492 | } D3D12_SUBRESOURCE_DATA; | ||
| 6493 | |||
| 6494 | typedef struct D3D12_MEMCPY_DEST | ||
| 6495 | { | ||
| 6496 | void* pData; | ||
| 6497 | SIZE_T RowPitch; | ||
| 6498 | SIZE_T SlicePitch; | ||
| 6499 | } D3D12_MEMCPY_DEST; | ||
| 6500 | |||
| 6501 | |||
| 6502 | |||
| 6503 | cpp_quote( "#if !defined( D3D12_IGNORE_SDK_LAYERS ) ") | ||
| 6504 | cpp_quote( "#include \"d3d12sdklayers.h\" ") | ||
| 6505 | cpp_quote( "#endif ") | ||
| 6506 | |||
| 6507 | |||
| 6508 | cpp_quote("") | ||
| 6509 | cpp_quote("///////////////////////////////////////////////////////////////////////////") | ||
| 6510 | cpp_quote("// D3D12CreateDevice") | ||
| 6511 | cpp_quote("// ------------------") | ||
| 6512 | cpp_quote("//") | ||
| 6513 | cpp_quote("// pAdapter") | ||
| 6514 | cpp_quote("// If NULL, D3D12CreateDevice will choose the primary adapter.") | ||
| 6515 | cpp_quote("// If non-NULL, D3D12CreateDevice will use the provided adapter.") | ||
| 6516 | cpp_quote("// MinimumFeatureLevel") | ||
| 6517 | cpp_quote("// The minimum feature level required for successful device creation.") | ||
| 6518 | cpp_quote("// riid") | ||
| 6519 | cpp_quote("// The interface IID of the device to be returned. Expected: ID3D12Device.") | ||
| 6520 | cpp_quote("// ppDevice") | ||
| 6521 | cpp_quote("// Pointer to returned interface. May be NULL.") | ||
| 6522 | cpp_quote("//") | ||
| 6523 | cpp_quote("// Return Values") | ||
| 6524 | cpp_quote("// Any of those documented for ") | ||
| 6525 | cpp_quote("// CreateDXGIFactory1") | ||
| 6526 | cpp_quote("// IDXGIFactory::EnumAdapters") | ||
| 6527 | cpp_quote("// D3D12CreateDevice") | ||
| 6528 | cpp_quote("//") | ||
| 6529 | cpp_quote("///////////////////////////////////////////////////////////////////////////") | ||
| 6530 | cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_CREATE_DEVICE)( _In_opt_ IUnknown*, ") | ||
| 6531 | cpp_quote(" D3D_FEATURE_LEVEL, ") | ||
| 6532 | cpp_quote(" _In_ REFIID, _COM_Outptr_opt_ void** );") | ||
| 6533 | cpp_quote("") | ||
| 6534 | cpp_quote("HRESULT WINAPI D3D12CreateDevice(") | ||
| 6535 | cpp_quote(" _In_opt_ IUnknown* pAdapter,") | ||
| 6536 | cpp_quote(" D3D_FEATURE_LEVEL MinimumFeatureLevel,") | ||
| 6537 | cpp_quote(" _In_ REFIID riid, // Expected: ID3D12Device") | ||
| 6538 | cpp_quote(" _COM_Outptr_opt_ void** ppDevice );") | ||
| 6539 | cpp_quote("") | ||
| 6540 | |||
| 6541 | cpp_quote("") | ||
| 6542 | cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_GET_DEBUG_INTERFACE)( _In_ REFIID, _COM_Outptr_opt_ void** );") | ||
| 6543 | cpp_quote("") | ||
| 6544 | cpp_quote("HRESULT WINAPI D3D12GetDebugInterface( _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );") | ||
| 6545 | cpp_quote("") | ||
| 6546 | |||
| 6547 | cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") | ||
| 6548 | cpp_quote("// D3D12EnableExperimentalFeatures") | ||
| 6549 | cpp_quote("//") | ||
| 6550 | cpp_quote("// Pass in a list of feature GUIDs to be enabled together.") | ||
| 6551 | cpp_quote("// ") | ||
| 6552 | cpp_quote("// If a particular feature requires some configuration information on enablement, it will have") | ||
| 6553 | cpp_quote("// a configuration struct that can be passed alongside the GUID.") | ||
| 6554 | cpp_quote("// ") | ||
| 6555 | cpp_quote("// Some features might use an interface IID as the GUID. For these, once the feature is enabled via") | ||
| 6556 | cpp_quote("// D3D12EnableExperimentalFeatures, D3D12GetDebugInterface can then be called with the IID to retrieve the interface") | ||
| 6557 | cpp_quote("// for manipulating the feature. This allows for control that might not cleanly be expressed by just ") | ||
| 6558 | cpp_quote("// the configuration struct that D3D12EnableExperimentalFeatures provides.") | ||
| 6559 | cpp_quote("//") | ||
| 6560 | cpp_quote("// If this method is called and a change to existing feature enablement is made, ") | ||
| 6561 | cpp_quote("// all current D3D12 devices are set to DEVICE_REMOVED state, since under the covers there is really only one") | ||
| 6562 | cpp_quote("// singleton device for a process. Removing the devices when configuration changes prevents") | ||
| 6563 | cpp_quote("// mismatched expectations of how a device is supposed to work after it has been created from the app's point of view.") | ||
| 6564 | cpp_quote("//") | ||
| 6565 | cpp_quote("// The call returns E_NOINTERFACE if an unrecognized feature is passed in or Windows Developer mode is not on.") | ||
| 6566 | cpp_quote("// The call returns E_INVALIDARG if the configuration of a feature is incorrect, the set of features passed") | ||
| 6567 | cpp_quote("// in are known to be incompatible with each other, or other errors.") | ||
| 6568 | cpp_quote("// Returns S_OK otherwise.") | ||
| 6569 | cpp_quote("//") | ||
| 6570 | cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") | ||
| 6571 | cpp_quote("HRESULT WINAPI D3D12EnableExperimentalFeatures(") | ||
| 6572 | cpp_quote(" UINT NumFeatures,") | ||
| 6573 | cpp_quote(" _In_count_(NumFeatures) const IID* pIIDs,") | ||
| 6574 | cpp_quote(" _In_opt_count_(NumFeatures) void* pConfigurationStructs,") | ||
| 6575 | cpp_quote(" _In_opt_count_(NumFeatures) UINT* pConfigurationStructSizes);") | ||
| 6576 | cpp_quote("") | ||
| 6577 | cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") | ||
| 6578 | cpp_quote("// Experimental Feature: D3D12ExperimentalShaderModels") | ||
| 6579 | cpp_quote("//") | ||
| 6580 | cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable experimental shader model support,") | ||
| 6581 | cpp_quote("// meaning shader models that haven't been finalized for use in retail.") | ||
| 6582 | cpp_quote("//") | ||
| 6583 | cpp_quote("// Enabling D3D12ExperimentalShaderModels needs no configuration struct, pass NULL in the pConfigurationStructs array.") | ||
| 6584 | cpp_quote("//") | ||
| 6585 | cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") | ||
| 6586 | cpp_quote("static const UUID D3D12ExperimentalShaderModels = { /* 76f5573e-f13a-40f5-b297-81ce9e18933f */") | ||
| 6587 | cpp_quote(" 0x76f5573e,") | ||
| 6588 | cpp_quote(" 0xf13a,") | ||
| 6589 | cpp_quote(" 0x40f5,") | ||
| 6590 | cpp_quote(" { 0xb2, 0x97, 0x81, 0xce, 0x9e, 0x18, 0x93, 0x3f }") | ||
| 6591 | cpp_quote("};") | ||
| 6592 | cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") | ||
| 6593 | cpp_quote("// Experimental Feature: D3D12TiledResourceTier4") | ||
| 6594 | cpp_quote("//") | ||
| 6595 | cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable tiled resource tier 4 support,") | ||
| 6596 | cpp_quote("// meaning texture tile data-inheritance is allowed.") | ||
| 6597 | cpp_quote("//") | ||
| 6598 | cpp_quote("// Enabling D3D12TiledResourceTier4 needs no configuration struct, pass NULL in the pConfigurationStructs array.") | ||
| 6599 | cpp_quote("//") | ||
| 6600 | cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") | ||
| 6601 | cpp_quote("static const UUID D3D12TiledResourceTier4 = { /* c9c4725f-a81a-4f56-8c5b-c51039d694fb */") | ||
| 6602 | cpp_quote(" 0xc9c4725f,") | ||
| 6603 | cpp_quote(" 0xa81a,") | ||
| 6604 | cpp_quote(" 0x4f56,") | ||
| 6605 | cpp_quote(" { 0x8c, 0x5b, 0xc5, 0x10, 0x39, 0xd6, 0x94, 0xfb }") | ||
| 6606 | cpp_quote("};") | ||
| 6607 | cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") | ||
| 6608 | cpp_quote("// Experimental Feature: D3D12GPUUploadHeapsOnUnsupportedOS") | ||
| 6609 | cpp_quote("//") | ||
| 6610 | cpp_quote("// Use with D3D12EnableExperimentalFeatures to enable GPU upload heaps support on an unsupported OS, ") | ||
| 6611 | cpp_quote("// driver support is still required for this feature.") | ||
| 6612 | cpp_quote("//") | ||
| 6613 | cpp_quote("// Enabling D3D12GPUUploadHeapsOnUnsupportedOS needs no configuration struct, pass NULL in the pConfigurationStructs array.") | ||
| 6614 | cpp_quote("//") | ||
| 6615 | cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") | ||
| 6616 | cpp_quote("static const UUID D3D12GPUUploadHeapsOnUnsupportedOS = { /* 45dc51f3-767f-4588-b206-0baa2b16fbae */") | ||
| 6617 | cpp_quote(" 0x45dc51f3,") | ||
| 6618 | cpp_quote(" 0x767f,") | ||
| 6619 | cpp_quote(" 0x4588,") | ||
| 6620 | cpp_quote(" { 0xb2, 0x06, 0x0b, 0xaa, 0x2b, 0x16, 0xfb, 0xae }") | ||
| 6621 | cpp_quote("};") | ||
| 6622 | cpp_quote("// --------------------------------------------------------------------------------------------------------------------------------") | ||
| 6623 | cpp_quote("// D3D12GetInterface") | ||
| 6624 | cpp_quote("//") | ||
| 6625 | cpp_quote("// Retrieve Global D3D12 Interface.") | ||
| 6626 | cpp_quote("//") | ||
| 6627 | cpp_quote("") | ||
| 6628 | cpp_quote("DEFINE_GUID(CLSID_D3D12Debug, 0xf2352aeb, 0xdd84, 0x49fe, 0xb9, 0x7b, 0xa9, 0xdc, 0xfd, 0xcc, 0x1b, 0x4f);") | ||
| 6629 | cpp_quote("DEFINE_GUID(CLSID_D3D12Tools, 0xe38216b1, 0x3c8c, 0x4833, 0xaa, 0x09, 0x0a, 0x06, 0xb6, 0x5d, 0x96, 0xc8);") | ||
| 6630 | cpp_quote("DEFINE_GUID(CLSID_D3D12DeviceRemovedExtendedData, 0x4a75bbc4, 0x9ff4, 0x4ad8, 0x9f, 0x18, 0xab, 0xae, 0x84, 0xdc, 0x5f, 0xf2);") | ||
| 6631 | cpp_quote("DEFINE_GUID(CLSID_D3D12SDKConfiguration, 0x7cda6aca, 0xa03e, 0x49c8, 0x94, 0x58, 0x03, 0x34, 0xd2, 0x0e, 0x07, 0xce);") | ||
| 6632 | cpp_quote("DEFINE_GUID(CLSID_D3D12DeviceFactory, 0x114863bf, 0xc386, 0x4aee, 0xb3, 0x9d, 0x8f, 0x0b, 0xbb, 0x06, 0x29, 0x55);") | ||
| 6633 | cpp_quote("DEFINE_GUID(CLSID_D3D12DSRDeviceFactory, 0xbb6dd27e, 0x94a9, 0x41a6, 0x9f, 0x1b, 0x13, 0x37, 0x72, 0x17, 0x24, 0x28);") | ||
| 6634 | cpp_quote("DEFINE_GUID(CLSID_D3D12StateObjectFactory, 0x54e1c9f3, 0x1303, 0x4112, 0xbf, 0x8e, 0x7b, 0xf2, 0xbb, 0x60, 0x6a, 0x73);") | ||
| 6635 | cpp_quote("") | ||
| 6636 | cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_GET_INTERFACE)( _In_ REFCLSID, _In_ REFIID, _COM_Outptr_opt_ void** );") | ||
| 6637 | cpp_quote("") | ||
| 6638 | cpp_quote("HRESULT WINAPI D3D12GetInterface( _In_ REFCLSID rclsid, _In_ REFIID riid, _COM_Outptr_opt_ void** ppvDebug );") | ||
| 6639 | cpp_quote("") | ||
| 6640 | |||
| 6641 | //================================================================================================================================== | ||
| 6642 | // | ||
| 6643 | // SDK Configuration | ||
| 6644 | // | ||
| 6645 | //================================================================================================================================== | ||
| 6646 | |||
| 6647 | [uuid(e9eb5314-33aa-42b2-a718-d77f58b1f1c7), object, local, pointer_default(unique)] | ||
| 6648 | interface ID3D12SDKConfiguration | ||
| 6649 | : IUnknown | ||
| 6650 | { | ||
| 6651 | HRESULT SetSDKVersion( | ||
| 6652 | UINT SDKVersion, | ||
| 6653 | [annotation("_In_z_")] LPCSTR SDKPath | ||
| 6654 | ); | ||
| 6655 | } | ||
| 6656 | |||
| 6657 | [uuid(8aaf9303-ad25-48b9-9a57-d9c37e009d9f), object, local, pointer_default(unique)] | ||
| 6658 | interface ID3D12SDKConfiguration1 | ||
| 6659 | : ID3D12SDKConfiguration | ||
| 6660 | { | ||
| 6661 | HRESULT CreateDeviceFactory( | ||
| 6662 | UINT SDKVersion, | ||
| 6663 | [annotation("_In_")] LPCSTR SDKPath, | ||
| 6664 | REFIID riid, // Expected: ID3D12DeviceFactory | ||
| 6665 | [annotation("_COM_Outptr_")] void **ppvFactory | ||
| 6666 | ); | ||
| 6667 | void FreeUnusedSDKs(); | ||
| 6668 | } | ||
| 6669 | |||
| 6670 | typedef enum D3D12_DEVICE_FACTORY_FLAGS | ||
| 6671 | { | ||
| 6672 | D3D12_DEVICE_FACTORY_FLAG_NONE = 0, | ||
| 6673 | D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_EXISTING_DEVICE = 0x1, | ||
| 6674 | D3D12_DEVICE_FACTORY_FLAG_ALLOW_RETURNING_INCOMPATIBLE_EXISTING_DEVICE = 0x2, | ||
| 6675 | D3D12_DEVICE_FACTORY_FLAG_DISALLOW_STORING_NEW_DEVICE_AS_SINGLETON = 0x4, | ||
| 6676 | } D3D12_DEVICE_FACTORY_FLAGS; | ||
| 6677 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FACTORY_FLAGS )") | ||
| 6678 | |||
| 6679 | [uuid(61f307d3-d34e-4e7c-8374-3ba4de23cccb), object, local, pointer_default(unique)] | ||
| 6680 | interface ID3D12DeviceFactory | ||
| 6681 | : IUnknown | ||
| 6682 | { | ||
| 6683 | HRESULT InitializeFromGlobalState(); | ||
| 6684 | HRESULT ApplyToGlobalState(); | ||
| 6685 | |||
| 6686 | HRESULT SetFlags(D3D12_DEVICE_FACTORY_FLAGS flags); | ||
| 6687 | D3D12_DEVICE_FACTORY_FLAGS GetFlags(); | ||
| 6688 | |||
| 6689 | HRESULT GetConfigurationInterface( | ||
| 6690 | REFCLSID clsid, | ||
| 6691 | REFIID iid, | ||
| 6692 | [annotation("_COM_Outptr_")] void **ppv); | ||
| 6693 | |||
| 6694 | HRESULT EnableExperimentalFeatures( | ||
| 6695 | UINT NumFeatures, | ||
| 6696 | [annotation("_In_reads_(NumFeatures)")] const IID *pIIDs, | ||
| 6697 | [annotation("_In_reads_opt_(NumFeatures)")] void *pConfigurationStructs, | ||
| 6698 | [annotation("_In_reads_opt_(NumFeatures)")] UINT *pConfigurationStructSizes); | ||
| 6699 | |||
| 6700 | HRESULT CreateDevice( | ||
| 6701 | [annotation("_In_opt_")] IUnknown *adapter, | ||
| 6702 | D3D_FEATURE_LEVEL FeatureLevel, | ||
| 6703 | REFIID riid, | ||
| 6704 | [annotation("_COM_Outptr_opt_")] void **ppvDevice); | ||
| 6705 | }; | ||
| 6706 | |||
| 6707 | typedef enum D3D12_DEVICE_FLAGS | ||
| 6708 | { | ||
| 6709 | D3D12_DEVICE_FLAG_NONE = 0, | ||
| 6710 | D3D12_DEVICE_FLAG_DEBUG_LAYER_ENABLED = 0x1, | ||
| 6711 | D3D12_DEVICE_FLAG_GPU_BASED_VALIDATION_ENABLED = 0x2, | ||
| 6712 | D3D12_DEVICE_FLAG_SYNCHRONIZED_COMMAND_QUEUE_VALIDATION_DISABLED = 0x4, | ||
| 6713 | D3D12_DEVICE_FLAG_DRED_AUTO_BREADCRUMBS_ENABLED = 0x8, | ||
| 6714 | D3D12_DEVICE_FLAG_DRED_PAGE_FAULT_REPORTING_ENABLED = 0x10, | ||
| 6715 | D3D12_DEVICE_FLAG_DRED_WATSON_REPORTING_ENABLED = 0x20, | ||
| 6716 | D3D12_DEVICE_FLAG_DRED_BREADCRUMB_CONTEXT_ENABLED = 0x40, | ||
| 6717 | D3D12_DEVICE_FLAG_DRED_USE_MARKERS_ONLY_BREADCRUMBS = 0x80, | ||
| 6718 | D3D12_DEVICE_FLAG_SHADER_INSTRUMENTATION_ENABLED = 0x100, | ||
| 6719 | D3D12_DEVICE_FLAG_AUTO_DEBUG_NAME_ENABLED = 0x200, | ||
| 6720 | D3D12_DEVICE_FLAG_FORCE_LEGACY_STATE_VALIDATION = 0x400, | ||
| 6721 | } D3D12_DEVICE_FLAGS; | ||
| 6722 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_DEVICE_FLAGS )") | ||
| 6723 | |||
| 6724 | typedef struct D3D12_DEVICE_CONFIGURATION_DESC | ||
| 6725 | { | ||
| 6726 | D3D12_DEVICE_FLAGS Flags; | ||
| 6727 | UINT GpuBasedValidationFlags; // D3D12_GPU_BASED_VALIDATION_FLAGS from d3d12sdklayers.h | ||
| 6728 | UINT SDKVersion; | ||
| 6729 | UINT NumEnabledExperimentalFeatures; | ||
| 6730 | } D3D12_DEVICE_CONFIGURATION_DESC; | ||
| 6731 | |||
| 6732 | [uuid(78dbf87b-f766-422b-a61c-c8c446bdb9ad), object, local, pointer_default(unique)] | ||
| 6733 | interface ID3D12DeviceConfiguration | ||
| 6734 | : IUnknown | ||
| 6735 | { | ||
| 6736 | D3D12_DEVICE_CONFIGURATION_DESC GetDesc(); | ||
| 6737 | HRESULT GetEnabledExperimentalFeatures([annotation("_Out_writes_(NumGuids)")] GUID *pGuids, UINT NumGuids); | ||
| 6738 | |||
| 6739 | HRESULT SerializeVersionedRootSignature( | ||
| 6740 | [annotation("_In_")] const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pDesc, | ||
| 6741 | [annotation("_COM_Outptr_")] ID3DBlob **ppResult, | ||
| 6742 | [annotation("_Always_(_Outptr_opt_result_maybenull_)")] ID3DBlob **ppError); | ||
| 6743 | |||
| 6744 | HRESULT CreateVersionedRootSignatureDeserializer( | ||
| 6745 | [annotation("_In_reads_bytes_(Size)")] const void *pBlob, | ||
| 6746 | SIZE_T Size, | ||
| 6747 | REFIID riid, | ||
| 6748 | [annotation("_COM_Outptr_")] void **ppvDeserializer); | ||
| 6749 | }; | ||
| 6750 | |||
| 6751 | [uuid(ed342442-6343-4e16-bb82-a3a577874e56), object, local, pointer_default(unique)] | ||
| 6752 | interface ID3D12DeviceConfiguration1 | ||
| 6753 | : ID3D12DeviceConfiguration | ||
| 6754 | { | ||
| 6755 | HRESULT CreateVersionedRootSignatureDeserializerFromSubobjectInLibrary( | ||
| 6756 | [annotation("_In_reads_bytes_(Size)")] const void* pLibraryBlob, | ||
| 6757 | SIZE_T Size, | ||
| 6758 | LPCWSTR RootSignatureSubobjectName, | ||
| 6759 | REFIID riid, | ||
| 6760 | [annotation("_COM_Outptr_")] void** ppvDeserializer); | ||
| 6761 | }; | ||
| 6762 | |||
| 6763 | |||
| 6764 | typedef enum D3D12_STATE_OBJECT_DATABASE_FLAGS | ||
| 6765 | { | ||
| 6766 | D3D12_STATE_OBJECT_DATABASE_FLAG_NONE = 0x0, | ||
| 6767 | D3D12_STATE_OBJECT_DATABASE_FLAG_READ_ONLY = 0x1, | ||
| 6768 | } D3D12_STATE_OBJECT_DATABASE_FLAGS; | ||
| 6769 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_STATE_OBJECT_DATABASE_FLAGS )") | ||
| 6770 | |||
| 6771 | [uuid(f5b066f0-648a-4611-bd41-27fd0948b9eb), object, local, pointer_default(unique)] | ||
| 6772 | interface ID3D12StateObjectDatabaseFactory | ||
| 6773 | : IUnknown | ||
| 6774 | { | ||
| 6775 | HRESULT CreateStateObjectDatabaseFromFile( | ||
| 6776 | LPCWSTR pDatabaseFile, | ||
| 6777 | D3D12_STATE_OBJECT_DATABASE_FLAGS flags, | ||
| 6778 | REFIID riid, | ||
| 6779 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvStateObjectDatabase | ||
| 6780 | ); | ||
| 6781 | }; | ||
| 6782 | |||
| 6783 | |||
| 6784 | typedef enum D3D12_AXIS_SHADING_RATE | ||
| 6785 | { | ||
| 6786 | D3D12_AXIS_SHADING_RATE_1X = 0x0, | ||
| 6787 | D3D12_AXIS_SHADING_RATE_2X = 0x1, | ||
| 6788 | D3D12_AXIS_SHADING_RATE_4X = 0x2 | ||
| 6789 | } D3D12_AXIS_SHADING_RATE; | ||
| 6790 | |||
| 6791 | |||
| 6792 | cpp_quote("#define D3D12_SHADING_RATE_X_AXIS_SHIFT 2") | ||
| 6793 | cpp_quote("#define D3D12_SHADING_RATE_VALID_MASK 3") | ||
| 6794 | |||
| 6795 | cpp_quote("#define D3D12_MAKE_COARSE_SHADING_RATE(x,y) ((x) << D3D12_SHADING_RATE_X_AXIS_SHIFT | (y))") | ||
| 6796 | |||
| 6797 | cpp_quote("#define D3D12_GET_COARSE_SHADING_RATE_X_AXIS(x) (((x) >> D3D12_SHADING_RATE_X_AXIS_SHIFT) & D3D12_SHADING_RATE_VALID_MASK)") | ||
| 6798 | cpp_quote("#define D3D12_GET_COARSE_SHADING_RATE_Y_AXIS(y) ((y) & D3D12_SHADING_RATE_VALID_MASK)") | ||
| 6799 | |||
| 6800 | typedef enum D3D12_SHADING_RATE | ||
| 6801 | { | ||
| 6802 | D3D12_SHADING_RATE_1X1 = 0x0, | ||
| 6803 | D3D12_SHADING_RATE_1X2 = 0x1, | ||
| 6804 | D3D12_SHADING_RATE_2X1 = 0x4, | ||
| 6805 | D3D12_SHADING_RATE_2X2 = 0x5, | ||
| 6806 | D3D12_SHADING_RATE_2X4 = 0x6, | ||
| 6807 | D3D12_SHADING_RATE_4X2 = 0x9, | ||
| 6808 | D3D12_SHADING_RATE_4X4 = 0xA | ||
| 6809 | } D3D12_SHADING_RATE; | ||
| 6810 | |||
| 6811 | typedef enum D3D12_SHADING_RATE_COMBINER | ||
| 6812 | { | ||
| 6813 | D3D12_SHADING_RATE_COMBINER_PASSTHROUGH = 0, | ||
| 6814 | D3D12_SHADING_RATE_COMBINER_OVERRIDE = 1, | ||
| 6815 | D3D12_SHADING_RATE_COMBINER_MIN = 2, | ||
| 6816 | D3D12_SHADING_RATE_COMBINER_MAX = 3, | ||
| 6817 | D3D12_SHADING_RATE_COMBINER_SUM = 4, | ||
| 6818 | } D3D12_SHADING_RATE_COMBINER; | ||
| 6819 | |||
| 6820 | [uuid(55050859-4024-474c-87f5-6472eaee44ea), object, local, pointer_default(unique)] | ||
| 6821 | interface ID3D12GraphicsCommandList5 : ID3D12GraphicsCommandList4 | ||
| 6822 | { | ||
| 6823 | void RSSetShadingRate( | ||
| 6824 | [annotation("_In_")] D3D12_SHADING_RATE baseShadingRate, | ||
| 6825 | [annotation("_In_reads_opt_(D3D12_RS_SET_SHADING_RATE_COMBINER_COUNT)")] const D3D12_SHADING_RATE_COMBINER* combiners); | ||
| 6826 | |||
| 6827 | void RSSetShadingRateImage( | ||
| 6828 | [annotation("_In_opt_")] ID3D12Resource* shadingRateImage); | ||
| 6829 | } | ||
| 6830 | |||
| 6831 | typedef struct D3D12_DISPATCH_MESH_ARGUMENTS | ||
| 6832 | { | ||
| 6833 | UINT ThreadGroupCountX; | ||
| 6834 | UINT ThreadGroupCountY; | ||
| 6835 | UINT ThreadGroupCountZ; | ||
| 6836 | } D3D12_DISPATCH_MESH_ARGUMENTS; | ||
| 6837 | |||
| 6838 | [uuid(c3827890-e548-4cfa-96cf-5689a9370f80), object, local, pointer_default(unique)] | ||
| 6839 | interface ID3D12GraphicsCommandList6 : ID3D12GraphicsCommandList5 | ||
| 6840 | { | ||
| 6841 | void DispatchMesh( | ||
| 6842 | [annotation("_In_")] UINT ThreadGroupCountX, | ||
| 6843 | [annotation("_In_")] UINT ThreadGroupCountY, | ||
| 6844 | [annotation("_In_")] UINT ThreadGroupCountZ | ||
| 6845 | ); | ||
| 6846 | } | ||
| 6847 | |||
| 6848 | [uuid(dd171223-8b61-4769-90e3-160ccde4e2c1), object, local, pointer_default(unique)] | ||
| 6849 | interface ID3D12GraphicsCommandList7 : ID3D12GraphicsCommandList6 | ||
| 6850 | { | ||
| 6851 | void Barrier( | ||
| 6852 | UINT32 NumBarrierGroups, | ||
| 6853 | [annotation("_In_reads_(NumBarrierGroups)")] const D3D12_BARRIER_GROUP *pBarrierGroups | ||
| 6854 | ); | ||
| 6855 | }; | ||
| 6856 | |||
| 6857 | [uuid(ee936ef9-599d-4d28-938e-23c4ad05ce51), object, local, pointer_default(unique)] | ||
| 6858 | interface ID3D12GraphicsCommandList8 : ID3D12GraphicsCommandList7 | ||
| 6859 | { | ||
| 6860 | void OMSetFrontAndBackStencilRef( | ||
| 6861 | [annotation("_In_")] UINT FrontStencilRef, | ||
| 6862 | [annotation("_In_")] UINT BackStencilRef | ||
| 6863 | ); | ||
| 6864 | }; | ||
| 6865 | |||
| 6866 | [uuid(34ed2808-ffe6-4c2b-b11a-cabd2b0c59e1), object, local, pointer_default(unique)] | ||
| 6867 | interface ID3D12GraphicsCommandList9 : ID3D12GraphicsCommandList8 | ||
| 6868 | { | ||
| 6869 | void RSSetDepthBias( | ||
| 6870 | [annotation("_In_")] FLOAT DepthBias, | ||
| 6871 | [annotation("_In_")] FLOAT DepthBiasClamp, | ||
| 6872 | [annotation("_In_")] FLOAT SlopeScaledDepthBias | ||
| 6873 | ); | ||
| 6874 | |||
| 6875 | void IASetIndexBufferStripCutValue( | ||
| 6876 | [annotation("_In_")] D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue | ||
| 6877 | ); | ||
| 6878 | }; | ||
| 6879 | |||
| 6880 | [uuid(7013c015-d161-4b63-a08c-238552dd8acc), object, local, pointer_default(unique)] | ||
| 6881 | interface ID3D12GraphicsCommandList10 : ID3D12GraphicsCommandList9 | ||
| 6882 | { | ||
| 6883 | void SetProgram([annotation("_In_")] const D3D12_SET_PROGRAM_DESC* pDesc); | ||
| 6884 | void DispatchGraph([annotation("_In_")] const D3D12_DISPATCH_GRAPH_DESC* pDesc); | ||
| 6885 | }; | ||
| 6886 | |||
| 6887 | |||
| 6888 | |||
| 6889 | |||
| 6890 | |||
| 6891 | |||
| 6892 | |||
| 6893 | |||
| 6894 | |||
| 6895 | [uuid(f343d1a0-afe3-439f-b13d-cd87a43b70ca), object, local, pointer_default(unique)] | ||
| 6896 | interface ID3D12DSRDeviceFactory : IUnknown | ||
| 6897 | { | ||
| 6898 | HRESULT CreateDSRDevice( | ||
| 6899 | [in] ID3D12Device *pD3D12Device, | ||
| 6900 | [in] UINT NodeMask, | ||
| 6901 | [in] REFIID riid, // Expected IDSRDevice | ||
| 6902 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvDSRDevice); | ||
| 6903 | } | ||
| 6904 | |||
| 6905 | [uuid(597985ab-9b75-4dbb-be23-0761195bebee), object, local, pointer_default(unique)] | ||
| 6906 | interface ID3D12GBVDiagnostics | ||
| 6907 | : IUnknown | ||
| 6908 | { | ||
| 6909 | HRESULT GetGBVEntireSubresourceStatesData( [annotation("_In_")] ID3D12Resource* pResource, [annotation("_Out_writes_bytes_(DataSize)")] int *pData, UINT DataSize ); | ||
| 6910 | HRESULT GetGBVSubresourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, [annotation("_Out_")] int *pData ); | ||
| 6911 | HRESULT GetGBVResourceUniformState( [annotation("_In_")] ID3D12Resource* pResource, [annotation("_Out_")] int *pData ); | ||
| 6912 | HRESULT GetGBVResourceInfo( [annotation("_In_")] ID3D12Resource* pResource, | ||
| 6913 | [annotation("_In_opt_")] D3D12_RESOURCE_DESC* pResourceDesc, | ||
| 6914 | [annotation("_In_opt_")] UINT32* pResourceHash, | ||
| 6915 | [annotation("_In_opt_")] UINT32* pSubresourceStatesByteOffset ); | ||
| 6916 | |||
| 6917 | void GBVReserved0(); | ||
| 6918 | |||
| 6919 | void GBVReserved1(); | ||
| 6920 | } | ||
| 6921 | |||
| 6922 | |||
| 6923 | //---------------------------------------------------------------------------------------------------------- | ||
| 6924 | // Old types which are still supported by the runtime for app-compat | ||
| 6925 | |||
| 6926 | cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") | ||
| 6927 | #pragma endregion | ||
| 6928 | |||
| 6929 | |||
| 6930 | cpp_quote( "DEFINE_GUID(IID_ID3D12Object,0xc4fec28f,0x7966,0x4e95,0x9f,0x94,0xf4,0x31,0xcb,0x56,0xc3,0xb8);" ) | ||
| 6931 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceChild,0x905db94b,0xa00c,0x4140,0x9d,0xf5,0x2b,0x64,0xca,0x9e,0xa3,0x57);" ) | ||
| 6932 | cpp_quote( "DEFINE_GUID(IID_ID3D12RootSignature,0xc54a6b66,0x72df,0x4ee8,0x8b,0xe5,0xa9,0x46,0xa1,0x42,0x92,0x14);" ) | ||
| 6933 | cpp_quote( "DEFINE_GUID(IID_ID3D12RootSignatureDeserializer,0x34AB647B,0x3CC8,0x46AC,0x84,0x1B,0xC0,0x96,0x56,0x45,0xC0,0x46);" ) | ||
| 6934 | cpp_quote( "DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer,0x7F91CE67,0x090C,0x4BB7,0xB7,0x8E,0xED,0x8F,0xF2,0xE3,0x1D,0xA0);" ) | ||
| 6935 | cpp_quote( "DEFINE_GUID(IID_ID3D12Pageable,0x63ee58fb,0x1268,0x4835,0x86,0xda,0xf0,0x08,0xce,0x62,0xf0,0xd6);" ) | ||
| 6936 | cpp_quote( "DEFINE_GUID(IID_ID3D12Heap,0x6b3b2502,0x6e51,0x45b3,0x90,0xee,0x98,0x84,0x26,0x5e,0x8d,0xf3);" ) | ||
| 6937 | cpp_quote( "DEFINE_GUID(IID_ID3D12Resource,0x696442be,0xa72e,0x4059,0xbc,0x79,0x5b,0x5c,0x98,0x04,0x0f,0xad);" ) | ||
| 6938 | cpp_quote( "DEFINE_GUID(IID_ID3D12CommandAllocator,0x6102dee4,0xaf59,0x4b09,0xb9,0x99,0xb4,0x4d,0x73,0xf0,0x9b,0x24);" ) | ||
| 6939 | cpp_quote( "DEFINE_GUID(IID_ID3D12Fence,0x0a753dcf,0xc4d8,0x4b91,0xad,0xf6,0xbe,0x5a,0x60,0xd9,0x5a,0x76);" ) | ||
| 6940 | cpp_quote( "DEFINE_GUID(IID_ID3D12Fence1,0x433685fe,0xe22b,0x4ca0,0xa8,0xdb,0xb5,0xb4,0xf4,0xdd,0x0e,0x4a);" ) | ||
| 6941 | cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineState,0x765a30f3,0xf624,0x4c6f,0xa8,0x28,0xac,0xe9,0x48,0x62,0x24,0x45);" ) | ||
| 6942 | cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineState1,0x5646804c,0x9638,0x48f7,0x91,0x82,0xb3,0xee,0x5a,0x6b,0x60,0xfb);" ) | ||
| 6943 | cpp_quote( "DEFINE_GUID(IID_ID3D12DescriptorHeap,0x8efb471d,0x616c,0x4f49,0x90,0xf7,0x12,0x7b,0xb7,0x63,0xfa,0x51);" ) | ||
| 6944 | cpp_quote( "DEFINE_GUID(IID_ID3D12QueryHeap,0x0d9658ae,0xed45,0x469e,0xa6,0x1d,0x97,0x0e,0xc5,0x83,0xca,0xb4);" ) | ||
| 6945 | cpp_quote( "DEFINE_GUID(IID_ID3D12CommandSignature,0xc36a797c,0xec80,0x4f0a,0x89,0x85,0xa7,0xb2,0x47,0x50,0x82,0xd1);" ) | ||
| 6946 | cpp_quote( "DEFINE_GUID(IID_ID3D12CommandList,0x7116d91c,0xe7e4,0x47ce,0xb8,0xc6,0xec,0x81,0x68,0xf4,0x37,0xe5);" ) | ||
| 6947 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList,0x5b160d0f,0xac1b,0x4185,0x8b,0xa8,0xb3,0xae,0x42,0xa5,0xa4,0x55);" ) | ||
| 6948 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList1,0x553103fb,0x1fe7,0x4557,0xbb,0x38,0x94,0x6d,0x7d,0x0e,0x7c,0xa7);" ) | ||
| 6949 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList2,0x38C3E585,0xFF17,0x412C,0x91,0x50,0x4F,0xC6,0xF9,0xD7,0x2A,0x28);" ) | ||
| 6950 | cpp_quote( "DEFINE_GUID(IID_ID3D12CommandQueue,0x0ec870a6,0x5d7e,0x4c22,0x8c,0xfc,0x5b,0xaa,0xe0,0x76,0x16,0xed);" ) | ||
| 6951 | cpp_quote( "DEFINE_GUID(IID_ID3D12CommandQueue1,0x3a3c3165,0x0ee7,0x4b8e,0xa0,0xaf,0x63,0x56,0xb4,0xc3,0xbb,0xb9);" ) | ||
| 6952 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device,0x189819f1,0x1db6,0x4b57,0xbe,0x54,0x18,0x21,0x33,0x9b,0x85,0xf7);" ) | ||
| 6953 | cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineLibrary,0xc64226a8,0x9201,0x46af,0xb4,0xcc,0x53,0xfb,0x9f,0xf7,0x41,0x4f);" ) | ||
| 6954 | cpp_quote( "DEFINE_GUID(IID_ID3D12PipelineLibrary1,0x80eabf42,0x2568,0x4e5e,0xbd,0x82,0xc3,0x7f,0x86,0x96,0x1d,0xc3);" ) | ||
| 6955 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device1,0x77acce80,0x638e,0x4e65,0x88,0x95,0xc1,0xf2,0x33,0x86,0x86,0x3e);" ) | ||
| 6956 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device2,0x30baa41e,0xb15b,0x475c,0xa0,0xbb,0x1a,0xf5,0xc5,0xb6,0x43,0x28);" ) | ||
| 6957 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device3,0x81dadc15,0x2bad,0x4392,0x93,0xc5,0x10,0x13,0x45,0xc4,0xaa,0x98);" ) | ||
| 6958 | cpp_quote( "DEFINE_GUID(IID_ID3D12ProtectedSession,0xA1533D18,0x0AC1,0x4084,0x85,0xB9,0x89,0xA9,0x61,0x16,0x80,0x6B);" ) | ||
| 6959 | cpp_quote( "DEFINE_GUID(IID_ID3D12ProtectedResourceSession,0x6CD696F4,0xF289,0x40CC,0x80,0x91,0x5A,0x6C,0x0A,0x09,0x9C,0x3D);" ) | ||
| 6960 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device4,0xe865df17,0xa9ee,0x46f9,0xa4,0x63,0x30,0x98,0x31,0x5a,0xa2,0xe5);" ) | ||
| 6961 | cpp_quote( "DEFINE_GUID(IID_ID3D12LifetimeOwner,0xe667af9f,0xcd56,0x4f46,0x83,0xce,0x03,0x2e,0x59,0x5d,0x70,0xa8);" ) | ||
| 6962 | cpp_quote( "DEFINE_GUID(IID_ID3D12SwapChainAssistant,0xf1df64b6,0x57fd,0x49cd,0x88,0x07,0xc0,0xeb,0x88,0xb4,0x5c,0x8f);" ) | ||
| 6963 | cpp_quote( "DEFINE_GUID(IID_ID3D12LifetimeTracker,0x3fd03d36,0x4eb1,0x424a,0xa5,0x82,0x49,0x4e,0xcb,0x8b,0xa8,0x13);" ) | ||
| 6964 | cpp_quote( "DEFINE_GUID(IID_ID3D12StateObject,0x47016943,0xfca8,0x4594,0x93,0xea,0xaf,0x25,0x8b,0x55,0x34,0x6d);" ) | ||
| 6965 | cpp_quote( "DEFINE_GUID(IID_ID3D12StateObjectProperties,0xde5fa827,0x9bf9,0x4f26,0x89,0xff,0xd7,0xf5,0x6f,0xde,0x38,0x60);" ) | ||
| 6966 | cpp_quote( "DEFINE_GUID(IID_ID3D12StateObjectProperties1,0x460caac7,0x1d24,0x446a,0xa1,0x84,0xca,0x67,0xdb,0x49,0x41,0x38);" ) | ||
| 6967 | cpp_quote( "DEFINE_GUID(IID_ID3D12StateObjectProperties2,0xd5e82917,0xf0f1,0x44cf,0xae,0x5e,0xce,0x22,0x2d,0xd0,0xb8,0x84);" ) | ||
| 6968 | cpp_quote( "DEFINE_GUID(IID_ID3D12WorkGraphProperties,0x065acf71,0xf863,0x4b89,0x82,0xf4,0x02,0xe4,0xd5,0x88,0x67,0x57);" ) | ||
| 6969 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device5,0x8b4f173b,0x2fea,0x4b80,0x8f,0x58,0x43,0x07,0x19,0x1a,0xb9,0x5d);" ) | ||
| 6970 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings,0x82BC481C,0x6B9B,0x4030,0xAE,0xDB,0x7E,0xE3,0xD1,0xDF,0x1E,0x63);" ) | ||
| 6971 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings1,0xDBD5AE51,0x3317,0x4F0A,0xAD,0xF9,0x1D,0x7C,0xED,0xCA,0xAE,0x0B);" ) | ||
| 6972 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedDataSettings2,0x61552388,0x01ab,0x4008,0xa4,0x36,0x83,0xdb,0x18,0x95,0x66,0xea);" ) | ||
| 6973 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData,0x98931D33,0x5AE8,0x4791,0xAA,0x3C,0x1A,0x73,0xA2,0x93,0x4E,0x71);" ) | ||
| 6974 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData1,0x9727A022,0xCF1D,0x4DDA,0x9E,0xBA,0xEF,0xFA,0x65,0x3F,0xC5,0x06);" ) | ||
| 6975 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceRemovedExtendedData2,0x67FC5816,0xE4CA,0x4915,0xBF,0x18,0x42,0x54,0x12,0x72,0xDA,0x54);" ) | ||
| 6976 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device6,0xc70b221b,0x40e4,0x4a17,0x89,0xaf,0x02,0x5a,0x07,0x27,0xa6,0xdc);" ) | ||
| 6977 | cpp_quote( "DEFINE_GUID(IID_ID3D12ProtectedResourceSession1,0xD6F12DD6,0x76FB,0x406E,0x89,0x61,0x42,0x96,0xEE,0xFC,0x04,0x09);" ) | ||
| 6978 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device7,0x5c014b53,0x68a1,0x4b9b,0x8b,0xd1,0xdd,0x60,0x46,0xb9,0x35,0x8b);" ) | ||
| 6979 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device8,0x9218E6BB,0xF944,0x4F7E,0xA7,0x5C,0xB1,0xB2,0xC7,0xB7,0x01,0xF3);" ) | ||
| 6980 | cpp_quote( "DEFINE_GUID(IID_ID3D12Resource1,0x9D5E227A,0x4430,0x4161,0x88,0xB3,0x3E,0xCA,0x6B,0xB1,0x6E,0x19);" ) | ||
| 6981 | cpp_quote( "DEFINE_GUID(IID_ID3D12Resource2,0xBE36EC3B,0xEA85,0x4AEB,0xA4,0x5A,0xE9,0xD7,0x64,0x04,0xA4,0x95);" ) | ||
| 6982 | cpp_quote( "DEFINE_GUID(IID_ID3D12Heap1,0x572F7389,0x2168,0x49E3,0x96,0x93,0xD6,0xDF,0x58,0x71,0xBF,0x6D);" ) | ||
| 6983 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList3,0x6FDA83A7,0xB84C,0x4E38,0x9A,0xC8,0xC7,0xBD,0x22,0x01,0x6B,0x3D);" ) | ||
| 6984 | cpp_quote( "DEFINE_GUID(IID_ID3D12MetaCommand,0xDBB84C27,0x36CE,0x4FC9,0xB8,0x01,0xF0,0x48,0xC4,0x6A,0xC5,0x70);" ) | ||
| 6985 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList4,0x8754318e,0xd3a9,0x4541,0x98,0xcf,0x64,0x5b,0x50,0xdc,0x48,0x74);" ) | ||
| 6986 | cpp_quote( "DEFINE_GUID(IID_ID3D12ShaderCacheSession,0x28e2495d,0x0f64,0x4ae4,0xa6,0xec,0x12,0x92,0x55,0xdc,0x49,0xa8);" ) | ||
| 6987 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device9,0x4c80e962,0xf032,0x4f60,0xbc,0x9e,0xeb,0xc2,0xcf,0xa1,0xd8,0x3c);" ) | ||
| 6988 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device10,0x517f8718,0xaa66,0x49f9,0xb0,0x2b,0xa7,0xab,0x89,0xc0,0x60,0x31);" ) | ||
| 6989 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device11,0x5405c344,0xd457,0x444e,0xb4,0xdd,0x23,0x66,0xe4,0x5a,0xee,0x39);" ) | ||
| 6990 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device12,0x5af5c532,0x4c91,0x4cd0,0xb5,0x41,0x15,0xa4,0x05,0x39,0x5f,0xc5);" ) | ||
| 6991 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device13,0x14eecffc,0x4df8,0x40f7,0xa1,0x18,0x5c,0x81,0x6f,0x45,0x69,0x5e);" ) | ||
| 6992 | cpp_quote( "DEFINE_GUID(IID_ID3D12Device14,0x5f6e592d,0xd895,0x44c2,0x8e,0x4a,0x88,0xad,0x49,0x26,0xd3,0x23);" ) | ||
| 6993 | cpp_quote( "DEFINE_GUID(IID_ID3D12StateObjectDatabase,0xc56060b7,0xb5fc,0x4135,0x98,0xe0,0xa1,0xe9,0x99,0x7e,0xac,0xe0);" ) | ||
| 6994 | cpp_quote( "DEFINE_GUID(IID_ID3D12VirtualizationGuestDevice,0xbc66d368,0x7373,0x4943,0x87,0x57,0xfc,0x87,0xdc,0x79,0xe4,0x76);" ) | ||
| 6995 | cpp_quote( "DEFINE_GUID(IID_ID3D12Tools,0x7071e1f0,0xe84b,0x4b33,0x97,0x4f,0x12,0xfa,0x49,0xde,0x65,0xc5);" ) | ||
| 6996 | cpp_quote( "DEFINE_GUID(IID_ID3D12Tools1,0xe4fbc019,0xdd3c,0x43e1,0x8f,0x32,0x7f,0x64,0x95,0x75,0xf0,0xa0);" ) | ||
| 6997 | cpp_quote( "DEFINE_GUID(IID_ID3D12Tools2,0x01d393c5,0xc9b0,0x42a1,0x95,0x8c,0xc2,0x6b,0x02,0xd4,0xd0,0x97);" ) | ||
| 6998 | cpp_quote( "DEFINE_GUID(IID_ID3D12PageableTools,0x8f1359db,0xd8d1,0x42f9,0xb5,0xcf,0x79,0xf4,0xcb,0xad,0x0d,0x3d);" ) | ||
| 6999 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceTools,0x2ea68e9c,0x19c3,0x4e47,0xa1,0x09,0x6c,0xda,0xdf,0xf0,0xac,0xa9);" ) | ||
| 7000 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceTools1,0xe30e9fc7,0xe641,0x4d6e,0x8a,0x81,0x9d,0xd9,0x20,0x6e,0xc4,0x7a);" ) | ||
| 7001 | cpp_quote( "DEFINE_GUID(IID_ID3D12SDKConfiguration,0xe9eb5314,0x33aa,0x42b2,0xa7,0x18,0xd7,0x7f,0x58,0xb1,0xf1,0xc7);" ) | ||
| 7002 | cpp_quote( "DEFINE_GUID(IID_ID3D12SDKConfiguration1,0x8aaf9303,0xad25,0x48b9,0x9a,0x57,0xd9,0xc3,0x7e,0x00,0x9d,0x9f);" ) | ||
| 7003 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceFactory,0x61f307d3,0xd34e,0x4e7c,0x83,0x74,0x3b,0xa4,0xde,0x23,0xcc,0xcb);" ) | ||
| 7004 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceConfiguration,0x78dbf87b,0xf766,0x422b,0xa6,0x1c,0xc8,0xc4,0x46,0xbd,0xb9,0xad);" ) | ||
| 7005 | cpp_quote( "DEFINE_GUID(IID_ID3D12DeviceConfiguration1,0xed342442,0x6343,0x4e16,0xbb,0x82,0xa3,0xa5,0x77,0x87,0x4e,0x56);" ) | ||
| 7006 | cpp_quote( "DEFINE_GUID(IID_ID3D12StateObjectDatabaseFactory,0xf5b066f0,0x648a,0x4611,0xbd,0x41,0x27,0xfd,0x09,0x48,0xb9,0xeb);" ) | ||
| 7007 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList5,0x55050859,0x4024,0x474c,0x87,0xf5,0x64,0x72,0xea,0xee,0x44,0xea);" ) | ||
| 7008 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList6,0xc3827890,0xe548,0x4cfa,0x96,0xcf,0x56,0x89,0xa9,0x37,0x0f,0x80);" ) | ||
| 7009 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList7,0xdd171223,0x8b61,0x4769,0x90,0xe3,0x16,0x0c,0xcd,0xe4,0xe2,0xc1);" ) | ||
| 7010 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList8,0xee936ef9,0x599d,0x4d28,0x93,0x8e,0x23,0xc4,0xad,0x05,0xce,0x51);" ) | ||
| 7011 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList9,0x34ed2808,0xffe6,0x4c2b,0xb1,0x1a,0xca,0xbd,0x2b,0x0c,0x59,0xe1);" ) | ||
| 7012 | cpp_quote( "DEFINE_GUID(IID_ID3D12GraphicsCommandList10,0x7013c015,0xd161,0x4b63,0xa0,0x8c,0x23,0x85,0x52,0xdd,0x8a,0xcc);" ) | ||
| 7013 | cpp_quote( "DEFINE_GUID(IID_ID3D12DSRDeviceFactory,0xf343d1a0,0xafe3,0x439f,0xb1,0x3d,0xcd,0x87,0xa4,0x3b,0x70,0xca);" ) | ||
| 7014 | cpp_quote( "DEFINE_GUID(IID_ID3D12GBVDiagnostics,0x597985ab,0x9b75,0x4dbb,0xbe,0x23,0x07,0x61,0x19,0x5b,0xeb,0xee);" ) | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compatibility.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compatibility.h new file mode 100644 index 0000000..ec9ff5f --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compatibility.h | |||
| @@ -0,0 +1,899 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | |||
| 8 | |||
| 9 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ | ||
| 10 | |||
| 11 | |||
| 12 | /* File created by MIDL compiler version 8.01.0628 */ | ||
| 13 | |||
| 14 | |||
| 15 | |||
| 16 | /* verify that the <rpcndr.h> version is high enough to compile this file*/ | ||
| 17 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | ||
| 18 | #define __REQUIRED_RPCNDR_H_VERSION__ 500 | ||
| 19 | #endif | ||
| 20 | |||
| 21 | /* verify that the <rpcsal.h> version is high enough to compile this file*/ | ||
| 22 | #ifndef __REQUIRED_RPCSAL_H_VERSION__ | ||
| 23 | #define __REQUIRED_RPCSAL_H_VERSION__ 100 | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include "rpc.h" | ||
| 27 | #include "rpcndr.h" | ||
| 28 | |||
| 29 | #ifndef __RPCNDR_H_VERSION__ | ||
| 30 | #error this stub requires an updated version of <rpcndr.h> | ||
| 31 | #endif /* __RPCNDR_H_VERSION__ */ | ||
| 32 | |||
| 33 | #ifndef COM_NO_WINDOWS_H | ||
| 34 | #include "windows.h" | ||
| 35 | #include "ole2.h" | ||
| 36 | #endif /*COM_NO_WINDOWS_H*/ | ||
| 37 | |||
| 38 | #ifndef __d3d12compatibility_h__ | ||
| 39 | #define __d3d12compatibility_h__ | ||
| 40 | |||
| 41 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) | ||
| 42 | #pragma once | ||
| 43 | #endif | ||
| 44 | |||
| 45 | #ifndef DECLSPEC_XFGVIRT | ||
| 46 | #if defined(_CONTROL_FLOW_GUARD_XFG) | ||
| 47 | #define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) | ||
| 48 | #else | ||
| 49 | #define DECLSPEC_XFGVIRT(base, func) | ||
| 50 | #endif | ||
| 51 | #endif | ||
| 52 | |||
| 53 | /* Forward Declarations */ | ||
| 54 | |||
| 55 | #ifndef __ID3D12CompatibilityDevice_FWD_DEFINED__ | ||
| 56 | #define __ID3D12CompatibilityDevice_FWD_DEFINED__ | ||
| 57 | typedef interface ID3D12CompatibilityDevice ID3D12CompatibilityDevice; | ||
| 58 | |||
| 59 | #endif /* __ID3D12CompatibilityDevice_FWD_DEFINED__ */ | ||
| 60 | |||
| 61 | |||
| 62 | #ifndef __D3D11On12CreatorID_FWD_DEFINED__ | ||
| 63 | #define __D3D11On12CreatorID_FWD_DEFINED__ | ||
| 64 | typedef interface D3D11On12CreatorID D3D11On12CreatorID; | ||
| 65 | |||
| 66 | #endif /* __D3D11On12CreatorID_FWD_DEFINED__ */ | ||
| 67 | |||
| 68 | |||
| 69 | #ifndef __D3D9On12CreatorID_FWD_DEFINED__ | ||
| 70 | #define __D3D9On12CreatorID_FWD_DEFINED__ | ||
| 71 | typedef interface D3D9On12CreatorID D3D9On12CreatorID; | ||
| 72 | |||
| 73 | #endif /* __D3D9On12CreatorID_FWD_DEFINED__ */ | ||
| 74 | |||
| 75 | |||
| 76 | #ifndef __OpenGLOn12CreatorID_FWD_DEFINED__ | ||
| 77 | #define __OpenGLOn12CreatorID_FWD_DEFINED__ | ||
| 78 | typedef interface OpenGLOn12CreatorID OpenGLOn12CreatorID; | ||
| 79 | |||
| 80 | #endif /* __OpenGLOn12CreatorID_FWD_DEFINED__ */ | ||
| 81 | |||
| 82 | |||
| 83 | #ifndef __OpenCLOn12CreatorID_FWD_DEFINED__ | ||
| 84 | #define __OpenCLOn12CreatorID_FWD_DEFINED__ | ||
| 85 | typedef interface OpenCLOn12CreatorID OpenCLOn12CreatorID; | ||
| 86 | |||
| 87 | #endif /* __OpenCLOn12CreatorID_FWD_DEFINED__ */ | ||
| 88 | |||
| 89 | |||
| 90 | #ifndef __VulkanOn12CreatorID_FWD_DEFINED__ | ||
| 91 | #define __VulkanOn12CreatorID_FWD_DEFINED__ | ||
| 92 | typedef interface VulkanOn12CreatorID VulkanOn12CreatorID; | ||
| 93 | |||
| 94 | #endif /* __VulkanOn12CreatorID_FWD_DEFINED__ */ | ||
| 95 | |||
| 96 | |||
| 97 | #ifndef __DirectMLTensorFlowCreatorID_FWD_DEFINED__ | ||
| 98 | #define __DirectMLTensorFlowCreatorID_FWD_DEFINED__ | ||
| 99 | typedef interface DirectMLTensorFlowCreatorID DirectMLTensorFlowCreatorID; | ||
| 100 | |||
| 101 | #endif /* __DirectMLTensorFlowCreatorID_FWD_DEFINED__ */ | ||
| 102 | |||
| 103 | |||
| 104 | #ifndef __DirectMLPyTorchCreatorID_FWD_DEFINED__ | ||
| 105 | #define __DirectMLPyTorchCreatorID_FWD_DEFINED__ | ||
| 106 | typedef interface DirectMLPyTorchCreatorID DirectMLPyTorchCreatorID; | ||
| 107 | |||
| 108 | #endif /* __DirectMLPyTorchCreatorID_FWD_DEFINED__ */ | ||
| 109 | |||
| 110 | |||
| 111 | #ifndef __DirectMLWebNNCreatorID_FWD_DEFINED__ | ||
| 112 | #define __DirectMLWebNNCreatorID_FWD_DEFINED__ | ||
| 113 | typedef interface DirectMLWebNNCreatorID DirectMLWebNNCreatorID; | ||
| 114 | |||
| 115 | #endif /* __DirectMLWebNNCreatorID_FWD_DEFINED__ */ | ||
| 116 | |||
| 117 | |||
| 118 | /* header files for imported files */ | ||
| 119 | #include "oaidl.h" | ||
| 120 | #include "ocidl.h" | ||
| 121 | #include "d3d11on12.h" | ||
| 122 | |||
| 123 | #ifdef __cplusplus | ||
| 124 | extern "C"{ | ||
| 125 | #endif | ||
| 126 | |||
| 127 | |||
| 128 | /* interface __MIDL_itf_d3d12compatibility_0000_0000 */ | ||
| 129 | /* [local] */ | ||
| 130 | |||
| 131 | #include <winapifamily.h> | ||
| 132 | #pragma region Desktop Family | ||
| 133 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) | ||
| 134 | typedef | ||
| 135 | enum D3D12_COMPATIBILITY_SHARED_FLAGS | ||
| 136 | { | ||
| 137 | D3D12_COMPATIBILITY_SHARED_FLAG_NONE = 0, | ||
| 138 | D3D12_COMPATIBILITY_SHARED_FLAG_NON_NT_HANDLE = 0x1, | ||
| 139 | D3D12_COMPATIBILITY_SHARED_FLAG_KEYED_MUTEX = 0x2, | ||
| 140 | D3D12_COMPATIBILITY_SHARED_FLAG_9_ON_12 = 0x4 | ||
| 141 | } D3D12_COMPATIBILITY_SHARED_FLAGS; | ||
| 142 | |||
| 143 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMPATIBILITY_SHARED_FLAGS ) | ||
| 144 | typedef | ||
| 145 | enum D3D12_REFLECT_SHARED_PROPERTY | ||
| 146 | { | ||
| 147 | D3D12_REFLECT_SHARED_PROPERTY_D3D11_RESOURCE_FLAGS = 0, | ||
| 148 | D3D12_REFELCT_SHARED_PROPERTY_COMPATIBILITY_SHARED_FLAGS = ( D3D12_REFLECT_SHARED_PROPERTY_D3D11_RESOURCE_FLAGS + 1 ) , | ||
| 149 | D3D12_REFLECT_SHARED_PROPERTY_NON_NT_SHARED_HANDLE = ( D3D12_REFELCT_SHARED_PROPERTY_COMPATIBILITY_SHARED_FLAGS + 1 ) | ||
| 150 | } D3D12_REFLECT_SHARED_PROPERTY; | ||
| 151 | |||
| 152 | |||
| 153 | |||
| 154 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0000_v0_0_c_ifspec; | ||
| 155 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0000_v0_0_s_ifspec; | ||
| 156 | |||
| 157 | #ifndef __ID3D12CompatibilityDevice_INTERFACE_DEFINED__ | ||
| 158 | #define __ID3D12CompatibilityDevice_INTERFACE_DEFINED__ | ||
| 159 | |||
| 160 | /* interface ID3D12CompatibilityDevice */ | ||
| 161 | /* [unique][local][object][uuid] */ | ||
| 162 | |||
| 163 | |||
| 164 | EXTERN_C const IID IID_ID3D12CompatibilityDevice; | ||
| 165 | |||
| 166 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 167 | |||
| 168 | MIDL_INTERFACE("8f1c0e3c-fae3-4a82-b098-bfe1708207ff") | ||
| 169 | ID3D12CompatibilityDevice : public IUnknown | ||
| 170 | { | ||
| 171 | public: | ||
| 172 | virtual HRESULT STDMETHODCALLTYPE CreateSharedResource( | ||
| 173 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 174 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 175 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 176 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 177 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 178 | _In_opt_ const D3D11_RESOURCE_FLAGS *pFlags11, | ||
| 179 | D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, | ||
| 180 | _In_opt_ ID3D12LifetimeTracker *pLifetimeTracker, | ||
| 181 | _In_opt_ ID3D12SwapChainAssistant *pOwningSwapchain, | ||
| 182 | REFIID riid, | ||
| 183 | _COM_Outptr_opt_ void **ppResource) = 0; | ||
| 184 | |||
| 185 | virtual HRESULT STDMETHODCALLTYPE CreateSharedHeap( | ||
| 186 | _In_ const D3D12_HEAP_DESC *pHeapDesc, | ||
| 187 | D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, | ||
| 188 | REFIID riid, | ||
| 189 | _COM_Outptr_opt_ void **ppHeap) = 0; | ||
| 190 | |||
| 191 | virtual HRESULT STDMETHODCALLTYPE ReflectSharedProperties( | ||
| 192 | _In_ ID3D12Object *pHeapOrResource, | ||
| 193 | D3D12_REFLECT_SHARED_PROPERTY ReflectType, | ||
| 194 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 195 | UINT DataSize) = 0; | ||
| 196 | |||
| 197 | }; | ||
| 198 | |||
| 199 | |||
| 200 | #else /* C style interface */ | ||
| 201 | |||
| 202 | typedef struct ID3D12CompatibilityDeviceVtbl | ||
| 203 | { | ||
| 204 | BEGIN_INTERFACE | ||
| 205 | |||
| 206 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 207 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 208 | ID3D12CompatibilityDevice * This, | ||
| 209 | REFIID riid, | ||
| 210 | _COM_Outptr_ void **ppvObject); | ||
| 211 | |||
| 212 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 213 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 214 | ID3D12CompatibilityDevice * This); | ||
| 215 | |||
| 216 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 217 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 218 | ID3D12CompatibilityDevice * This); | ||
| 219 | |||
| 220 | DECLSPEC_XFGVIRT(ID3D12CompatibilityDevice, CreateSharedResource) | ||
| 221 | HRESULT ( STDMETHODCALLTYPE *CreateSharedResource )( | ||
| 222 | ID3D12CompatibilityDevice * This, | ||
| 223 | _In_ const D3D12_HEAP_PROPERTIES *pHeapProperties, | ||
| 224 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 225 | _In_ const D3D12_RESOURCE_DESC *pDesc, | ||
| 226 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 227 | _In_opt_ const D3D12_CLEAR_VALUE *pOptimizedClearValue, | ||
| 228 | _In_opt_ const D3D11_RESOURCE_FLAGS *pFlags11, | ||
| 229 | D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, | ||
| 230 | _In_opt_ ID3D12LifetimeTracker *pLifetimeTracker, | ||
| 231 | _In_opt_ ID3D12SwapChainAssistant *pOwningSwapchain, | ||
| 232 | REFIID riid, | ||
| 233 | _COM_Outptr_opt_ void **ppResource); | ||
| 234 | |||
| 235 | DECLSPEC_XFGVIRT(ID3D12CompatibilityDevice, CreateSharedHeap) | ||
| 236 | HRESULT ( STDMETHODCALLTYPE *CreateSharedHeap )( | ||
| 237 | ID3D12CompatibilityDevice * This, | ||
| 238 | _In_ const D3D12_HEAP_DESC *pHeapDesc, | ||
| 239 | D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, | ||
| 240 | REFIID riid, | ||
| 241 | _COM_Outptr_opt_ void **ppHeap); | ||
| 242 | |||
| 243 | DECLSPEC_XFGVIRT(ID3D12CompatibilityDevice, ReflectSharedProperties) | ||
| 244 | HRESULT ( STDMETHODCALLTYPE *ReflectSharedProperties )( | ||
| 245 | ID3D12CompatibilityDevice * This, | ||
| 246 | _In_ ID3D12Object *pHeapOrResource, | ||
| 247 | D3D12_REFLECT_SHARED_PROPERTY ReflectType, | ||
| 248 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 249 | UINT DataSize); | ||
| 250 | |||
| 251 | END_INTERFACE | ||
| 252 | } ID3D12CompatibilityDeviceVtbl; | ||
| 253 | |||
| 254 | interface ID3D12CompatibilityDevice | ||
| 255 | { | ||
| 256 | CONST_VTBL struct ID3D12CompatibilityDeviceVtbl *lpVtbl; | ||
| 257 | }; | ||
| 258 | |||
| 259 | |||
| 260 | |||
| 261 | #ifdef COBJMACROS | ||
| 262 | |||
| 263 | |||
| 264 | #define ID3D12CompatibilityDevice_QueryInterface(This,riid,ppvObject) \ | ||
| 265 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 266 | |||
| 267 | #define ID3D12CompatibilityDevice_AddRef(This) \ | ||
| 268 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 269 | |||
| 270 | #define ID3D12CompatibilityDevice_Release(This) \ | ||
| 271 | ( (This)->lpVtbl -> Release(This) ) | ||
| 272 | |||
| 273 | |||
| 274 | #define ID3D12CompatibilityDevice_CreateSharedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pFlags11,CompatibilityFlags,pLifetimeTracker,pOwningSwapchain,riid,ppResource) \ | ||
| 275 | ( (This)->lpVtbl -> CreateSharedResource(This,pHeapProperties,HeapFlags,pDesc,InitialResourceState,pOptimizedClearValue,pFlags11,CompatibilityFlags,pLifetimeTracker,pOwningSwapchain,riid,ppResource) ) | ||
| 276 | |||
| 277 | #define ID3D12CompatibilityDevice_CreateSharedHeap(This,pHeapDesc,CompatibilityFlags,riid,ppHeap) \ | ||
| 278 | ( (This)->lpVtbl -> CreateSharedHeap(This,pHeapDesc,CompatibilityFlags,riid,ppHeap) ) | ||
| 279 | |||
| 280 | #define ID3D12CompatibilityDevice_ReflectSharedProperties(This,pHeapOrResource,ReflectType,pData,DataSize) \ | ||
| 281 | ( (This)->lpVtbl -> ReflectSharedProperties(This,pHeapOrResource,ReflectType,pData,DataSize) ) | ||
| 282 | |||
| 283 | #endif /* COBJMACROS */ | ||
| 284 | |||
| 285 | |||
| 286 | #endif /* C style interface */ | ||
| 287 | |||
| 288 | |||
| 289 | |||
| 290 | |||
| 291 | #endif /* __ID3D12CompatibilityDevice_INTERFACE_DEFINED__ */ | ||
| 292 | |||
| 293 | |||
| 294 | #ifndef __D3D11On12CreatorID_INTERFACE_DEFINED__ | ||
| 295 | #define __D3D11On12CreatorID_INTERFACE_DEFINED__ | ||
| 296 | |||
| 297 | /* interface D3D11On12CreatorID */ | ||
| 298 | /* [unique][local][object][uuid] */ | ||
| 299 | |||
| 300 | |||
| 301 | EXTERN_C const IID IID_D3D11On12CreatorID; | ||
| 302 | |||
| 303 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 304 | |||
| 305 | MIDL_INTERFACE("edbf5678-2960-4e81-8429-99d4b2630c4e") | ||
| 306 | D3D11On12CreatorID : public IUnknown | ||
| 307 | { | ||
| 308 | public: | ||
| 309 | }; | ||
| 310 | |||
| 311 | |||
| 312 | #else /* C style interface */ | ||
| 313 | |||
| 314 | typedef struct D3D11On12CreatorIDVtbl | ||
| 315 | { | ||
| 316 | BEGIN_INTERFACE | ||
| 317 | |||
| 318 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 319 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 320 | D3D11On12CreatorID * This, | ||
| 321 | REFIID riid, | ||
| 322 | _COM_Outptr_ void **ppvObject); | ||
| 323 | |||
| 324 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 325 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 326 | D3D11On12CreatorID * This); | ||
| 327 | |||
| 328 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 329 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 330 | D3D11On12CreatorID * This); | ||
| 331 | |||
| 332 | END_INTERFACE | ||
| 333 | } D3D11On12CreatorIDVtbl; | ||
| 334 | |||
| 335 | interface D3D11On12CreatorID | ||
| 336 | { | ||
| 337 | CONST_VTBL struct D3D11On12CreatorIDVtbl *lpVtbl; | ||
| 338 | }; | ||
| 339 | |||
| 340 | |||
| 341 | |||
| 342 | #ifdef COBJMACROS | ||
| 343 | |||
| 344 | |||
| 345 | #define D3D11On12CreatorID_QueryInterface(This,riid,ppvObject) \ | ||
| 346 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 347 | |||
| 348 | #define D3D11On12CreatorID_AddRef(This) \ | ||
| 349 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 350 | |||
| 351 | #define D3D11On12CreatorID_Release(This) \ | ||
| 352 | ( (This)->lpVtbl -> Release(This) ) | ||
| 353 | |||
| 354 | |||
| 355 | #endif /* COBJMACROS */ | ||
| 356 | |||
| 357 | |||
| 358 | #endif /* C style interface */ | ||
| 359 | |||
| 360 | |||
| 361 | |||
| 362 | |||
| 363 | #endif /* __D3D11On12CreatorID_INTERFACE_DEFINED__ */ | ||
| 364 | |||
| 365 | |||
| 366 | #ifndef __D3D9On12CreatorID_INTERFACE_DEFINED__ | ||
| 367 | #define __D3D9On12CreatorID_INTERFACE_DEFINED__ | ||
| 368 | |||
| 369 | /* interface D3D9On12CreatorID */ | ||
| 370 | /* [unique][local][object][uuid] */ | ||
| 371 | |||
| 372 | |||
| 373 | EXTERN_C const IID IID_D3D9On12CreatorID; | ||
| 374 | |||
| 375 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 376 | |||
| 377 | MIDL_INTERFACE("fffcbb7f-15d3-42a2-841e-9d8d32f37ddd") | ||
| 378 | D3D9On12CreatorID : public IUnknown | ||
| 379 | { | ||
| 380 | public: | ||
| 381 | }; | ||
| 382 | |||
| 383 | |||
| 384 | #else /* C style interface */ | ||
| 385 | |||
| 386 | typedef struct D3D9On12CreatorIDVtbl | ||
| 387 | { | ||
| 388 | BEGIN_INTERFACE | ||
| 389 | |||
| 390 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 391 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 392 | D3D9On12CreatorID * This, | ||
| 393 | REFIID riid, | ||
| 394 | _COM_Outptr_ void **ppvObject); | ||
| 395 | |||
| 396 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 397 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 398 | D3D9On12CreatorID * This); | ||
| 399 | |||
| 400 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 401 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 402 | D3D9On12CreatorID * This); | ||
| 403 | |||
| 404 | END_INTERFACE | ||
| 405 | } D3D9On12CreatorIDVtbl; | ||
| 406 | |||
| 407 | interface D3D9On12CreatorID | ||
| 408 | { | ||
| 409 | CONST_VTBL struct D3D9On12CreatorIDVtbl *lpVtbl; | ||
| 410 | }; | ||
| 411 | |||
| 412 | |||
| 413 | |||
| 414 | #ifdef COBJMACROS | ||
| 415 | |||
| 416 | |||
| 417 | #define D3D9On12CreatorID_QueryInterface(This,riid,ppvObject) \ | ||
| 418 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 419 | |||
| 420 | #define D3D9On12CreatorID_AddRef(This) \ | ||
| 421 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 422 | |||
| 423 | #define D3D9On12CreatorID_Release(This) \ | ||
| 424 | ( (This)->lpVtbl -> Release(This) ) | ||
| 425 | |||
| 426 | |||
| 427 | #endif /* COBJMACROS */ | ||
| 428 | |||
| 429 | |||
| 430 | #endif /* C style interface */ | ||
| 431 | |||
| 432 | |||
| 433 | |||
| 434 | |||
| 435 | #endif /* __D3D9On12CreatorID_INTERFACE_DEFINED__ */ | ||
| 436 | |||
| 437 | |||
| 438 | #ifndef __OpenGLOn12CreatorID_INTERFACE_DEFINED__ | ||
| 439 | #define __OpenGLOn12CreatorID_INTERFACE_DEFINED__ | ||
| 440 | |||
| 441 | /* interface OpenGLOn12CreatorID */ | ||
| 442 | /* [unique][local][object][uuid] */ | ||
| 443 | |||
| 444 | |||
| 445 | EXTERN_C const IID IID_OpenGLOn12CreatorID; | ||
| 446 | |||
| 447 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 448 | |||
| 449 | MIDL_INTERFACE("6bb3cd34-0d19-45ab-97ed-d720ba3dfc80") | ||
| 450 | OpenGLOn12CreatorID : public IUnknown | ||
| 451 | { | ||
| 452 | public: | ||
| 453 | }; | ||
| 454 | |||
| 455 | |||
| 456 | #else /* C style interface */ | ||
| 457 | |||
| 458 | typedef struct OpenGLOn12CreatorIDVtbl | ||
| 459 | { | ||
| 460 | BEGIN_INTERFACE | ||
| 461 | |||
| 462 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 463 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 464 | OpenGLOn12CreatorID * This, | ||
| 465 | REFIID riid, | ||
| 466 | _COM_Outptr_ void **ppvObject); | ||
| 467 | |||
| 468 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 469 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 470 | OpenGLOn12CreatorID * This); | ||
| 471 | |||
| 472 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 473 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 474 | OpenGLOn12CreatorID * This); | ||
| 475 | |||
| 476 | END_INTERFACE | ||
| 477 | } OpenGLOn12CreatorIDVtbl; | ||
| 478 | |||
| 479 | interface OpenGLOn12CreatorID | ||
| 480 | { | ||
| 481 | CONST_VTBL struct OpenGLOn12CreatorIDVtbl *lpVtbl; | ||
| 482 | }; | ||
| 483 | |||
| 484 | |||
| 485 | |||
| 486 | #ifdef COBJMACROS | ||
| 487 | |||
| 488 | |||
| 489 | #define OpenGLOn12CreatorID_QueryInterface(This,riid,ppvObject) \ | ||
| 490 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 491 | |||
| 492 | #define OpenGLOn12CreatorID_AddRef(This) \ | ||
| 493 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 494 | |||
| 495 | #define OpenGLOn12CreatorID_Release(This) \ | ||
| 496 | ( (This)->lpVtbl -> Release(This) ) | ||
| 497 | |||
| 498 | |||
| 499 | #endif /* COBJMACROS */ | ||
| 500 | |||
| 501 | |||
| 502 | #endif /* C style interface */ | ||
| 503 | |||
| 504 | |||
| 505 | |||
| 506 | |||
| 507 | #endif /* __OpenGLOn12CreatorID_INTERFACE_DEFINED__ */ | ||
| 508 | |||
| 509 | |||
| 510 | #ifndef __OpenCLOn12CreatorID_INTERFACE_DEFINED__ | ||
| 511 | #define __OpenCLOn12CreatorID_INTERFACE_DEFINED__ | ||
| 512 | |||
| 513 | /* interface OpenCLOn12CreatorID */ | ||
| 514 | /* [unique][local][object][uuid] */ | ||
| 515 | |||
| 516 | |||
| 517 | EXTERN_C const IID IID_OpenCLOn12CreatorID; | ||
| 518 | |||
| 519 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 520 | |||
| 521 | MIDL_INTERFACE("3f76bb74-91b5-4a88-b126-20ca0331cd60") | ||
| 522 | OpenCLOn12CreatorID : public IUnknown | ||
| 523 | { | ||
| 524 | public: | ||
| 525 | }; | ||
| 526 | |||
| 527 | |||
| 528 | #else /* C style interface */ | ||
| 529 | |||
| 530 | typedef struct OpenCLOn12CreatorIDVtbl | ||
| 531 | { | ||
| 532 | BEGIN_INTERFACE | ||
| 533 | |||
| 534 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 535 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 536 | OpenCLOn12CreatorID * This, | ||
| 537 | REFIID riid, | ||
| 538 | _COM_Outptr_ void **ppvObject); | ||
| 539 | |||
| 540 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 541 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 542 | OpenCLOn12CreatorID * This); | ||
| 543 | |||
| 544 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 545 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 546 | OpenCLOn12CreatorID * This); | ||
| 547 | |||
| 548 | END_INTERFACE | ||
| 549 | } OpenCLOn12CreatorIDVtbl; | ||
| 550 | |||
| 551 | interface OpenCLOn12CreatorID | ||
| 552 | { | ||
| 553 | CONST_VTBL struct OpenCLOn12CreatorIDVtbl *lpVtbl; | ||
| 554 | }; | ||
| 555 | |||
| 556 | |||
| 557 | |||
| 558 | #ifdef COBJMACROS | ||
| 559 | |||
| 560 | |||
| 561 | #define OpenCLOn12CreatorID_QueryInterface(This,riid,ppvObject) \ | ||
| 562 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 563 | |||
| 564 | #define OpenCLOn12CreatorID_AddRef(This) \ | ||
| 565 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 566 | |||
| 567 | #define OpenCLOn12CreatorID_Release(This) \ | ||
| 568 | ( (This)->lpVtbl -> Release(This) ) | ||
| 569 | |||
| 570 | |||
| 571 | #endif /* COBJMACROS */ | ||
| 572 | |||
| 573 | |||
| 574 | #endif /* C style interface */ | ||
| 575 | |||
| 576 | |||
| 577 | |||
| 578 | |||
| 579 | #endif /* __OpenCLOn12CreatorID_INTERFACE_DEFINED__ */ | ||
| 580 | |||
| 581 | |||
| 582 | #ifndef __VulkanOn12CreatorID_INTERFACE_DEFINED__ | ||
| 583 | #define __VulkanOn12CreatorID_INTERFACE_DEFINED__ | ||
| 584 | |||
| 585 | /* interface VulkanOn12CreatorID */ | ||
| 586 | /* [unique][local][object][uuid] */ | ||
| 587 | |||
| 588 | |||
| 589 | EXTERN_C const IID IID_VulkanOn12CreatorID; | ||
| 590 | |||
| 591 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 592 | |||
| 593 | MIDL_INTERFACE("bc806e01-3052-406c-a3e8-9fc07f048f98") | ||
| 594 | VulkanOn12CreatorID : public IUnknown | ||
| 595 | { | ||
| 596 | public: | ||
| 597 | }; | ||
| 598 | |||
| 599 | |||
| 600 | #else /* C style interface */ | ||
| 601 | |||
| 602 | typedef struct VulkanOn12CreatorIDVtbl | ||
| 603 | { | ||
| 604 | BEGIN_INTERFACE | ||
| 605 | |||
| 606 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 607 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 608 | VulkanOn12CreatorID * This, | ||
| 609 | REFIID riid, | ||
| 610 | _COM_Outptr_ void **ppvObject); | ||
| 611 | |||
| 612 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 613 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 614 | VulkanOn12CreatorID * This); | ||
| 615 | |||
| 616 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 617 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 618 | VulkanOn12CreatorID * This); | ||
| 619 | |||
| 620 | END_INTERFACE | ||
| 621 | } VulkanOn12CreatorIDVtbl; | ||
| 622 | |||
| 623 | interface VulkanOn12CreatorID | ||
| 624 | { | ||
| 625 | CONST_VTBL struct VulkanOn12CreatorIDVtbl *lpVtbl; | ||
| 626 | }; | ||
| 627 | |||
| 628 | |||
| 629 | |||
| 630 | #ifdef COBJMACROS | ||
| 631 | |||
| 632 | |||
| 633 | #define VulkanOn12CreatorID_QueryInterface(This,riid,ppvObject) \ | ||
| 634 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 635 | |||
| 636 | #define VulkanOn12CreatorID_AddRef(This) \ | ||
| 637 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 638 | |||
| 639 | #define VulkanOn12CreatorID_Release(This) \ | ||
| 640 | ( (This)->lpVtbl -> Release(This) ) | ||
| 641 | |||
| 642 | |||
| 643 | #endif /* COBJMACROS */ | ||
| 644 | |||
| 645 | |||
| 646 | #endif /* C style interface */ | ||
| 647 | |||
| 648 | |||
| 649 | |||
| 650 | |||
| 651 | #endif /* __VulkanOn12CreatorID_INTERFACE_DEFINED__ */ | ||
| 652 | |||
| 653 | |||
| 654 | #ifndef __DirectMLTensorFlowCreatorID_INTERFACE_DEFINED__ | ||
| 655 | #define __DirectMLTensorFlowCreatorID_INTERFACE_DEFINED__ | ||
| 656 | |||
| 657 | /* interface DirectMLTensorFlowCreatorID */ | ||
| 658 | /* [unique][local][object][uuid] */ | ||
| 659 | |||
| 660 | |||
| 661 | EXTERN_C const IID IID_DirectMLTensorFlowCreatorID; | ||
| 662 | |||
| 663 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 664 | |||
| 665 | MIDL_INTERFACE("cb7490ac-8a0f-44ec-9b7b-6f4cafe8e9ab") | ||
| 666 | DirectMLTensorFlowCreatorID : public IUnknown | ||
| 667 | { | ||
| 668 | public: | ||
| 669 | }; | ||
| 670 | |||
| 671 | |||
| 672 | #else /* C style interface */ | ||
| 673 | |||
| 674 | typedef struct DirectMLTensorFlowCreatorIDVtbl | ||
| 675 | { | ||
| 676 | BEGIN_INTERFACE | ||
| 677 | |||
| 678 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 679 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 680 | DirectMLTensorFlowCreatorID * This, | ||
| 681 | REFIID riid, | ||
| 682 | _COM_Outptr_ void **ppvObject); | ||
| 683 | |||
| 684 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 685 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 686 | DirectMLTensorFlowCreatorID * This); | ||
| 687 | |||
| 688 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 689 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 690 | DirectMLTensorFlowCreatorID * This); | ||
| 691 | |||
| 692 | END_INTERFACE | ||
| 693 | } DirectMLTensorFlowCreatorIDVtbl; | ||
| 694 | |||
| 695 | interface DirectMLTensorFlowCreatorID | ||
| 696 | { | ||
| 697 | CONST_VTBL struct DirectMLTensorFlowCreatorIDVtbl *lpVtbl; | ||
| 698 | }; | ||
| 699 | |||
| 700 | |||
| 701 | |||
| 702 | #ifdef COBJMACROS | ||
| 703 | |||
| 704 | |||
| 705 | #define DirectMLTensorFlowCreatorID_QueryInterface(This,riid,ppvObject) \ | ||
| 706 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 707 | |||
| 708 | #define DirectMLTensorFlowCreatorID_AddRef(This) \ | ||
| 709 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 710 | |||
| 711 | #define DirectMLTensorFlowCreatorID_Release(This) \ | ||
| 712 | ( (This)->lpVtbl -> Release(This) ) | ||
| 713 | |||
| 714 | |||
| 715 | #endif /* COBJMACROS */ | ||
| 716 | |||
| 717 | |||
| 718 | #endif /* C style interface */ | ||
| 719 | |||
| 720 | |||
| 721 | |||
| 722 | |||
| 723 | #endif /* __DirectMLTensorFlowCreatorID_INTERFACE_DEFINED__ */ | ||
| 724 | |||
| 725 | |||
| 726 | #ifndef __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__ | ||
| 727 | #define __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__ | ||
| 728 | |||
| 729 | /* interface DirectMLPyTorchCreatorID */ | ||
| 730 | /* [unique][local][object][uuid] */ | ||
| 731 | |||
| 732 | |||
| 733 | EXTERN_C const IID IID_DirectMLPyTorchCreatorID; | ||
| 734 | |||
| 735 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 736 | |||
| 737 | MIDL_INTERFACE("af029192-fba1-4b05-9116-235e06560354") | ||
| 738 | DirectMLPyTorchCreatorID : public IUnknown | ||
| 739 | { | ||
| 740 | public: | ||
| 741 | }; | ||
| 742 | |||
| 743 | |||
| 744 | #else /* C style interface */ | ||
| 745 | |||
| 746 | typedef struct DirectMLPyTorchCreatorIDVtbl | ||
| 747 | { | ||
| 748 | BEGIN_INTERFACE | ||
| 749 | |||
| 750 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 751 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 752 | DirectMLPyTorchCreatorID * This, | ||
| 753 | REFIID riid, | ||
| 754 | _COM_Outptr_ void **ppvObject); | ||
| 755 | |||
| 756 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 757 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 758 | DirectMLPyTorchCreatorID * This); | ||
| 759 | |||
| 760 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 761 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 762 | DirectMLPyTorchCreatorID * This); | ||
| 763 | |||
| 764 | END_INTERFACE | ||
| 765 | } DirectMLPyTorchCreatorIDVtbl; | ||
| 766 | |||
| 767 | interface DirectMLPyTorchCreatorID | ||
| 768 | { | ||
| 769 | CONST_VTBL struct DirectMLPyTorchCreatorIDVtbl *lpVtbl; | ||
| 770 | }; | ||
| 771 | |||
| 772 | |||
| 773 | |||
| 774 | #ifdef COBJMACROS | ||
| 775 | |||
| 776 | |||
| 777 | #define DirectMLPyTorchCreatorID_QueryInterface(This,riid,ppvObject) \ | ||
| 778 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 779 | |||
| 780 | #define DirectMLPyTorchCreatorID_AddRef(This) \ | ||
| 781 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 782 | |||
| 783 | #define DirectMLPyTorchCreatorID_Release(This) \ | ||
| 784 | ( (This)->lpVtbl -> Release(This) ) | ||
| 785 | |||
| 786 | |||
| 787 | #endif /* COBJMACROS */ | ||
| 788 | |||
| 789 | |||
| 790 | #endif /* C style interface */ | ||
| 791 | |||
| 792 | |||
| 793 | |||
| 794 | |||
| 795 | #endif /* __DirectMLPyTorchCreatorID_INTERFACE_DEFINED__ */ | ||
| 796 | |||
| 797 | |||
| 798 | #ifndef __DirectMLWebNNCreatorID_INTERFACE_DEFINED__ | ||
| 799 | #define __DirectMLWebNNCreatorID_INTERFACE_DEFINED__ | ||
| 800 | |||
| 801 | /* interface DirectMLWebNNCreatorID */ | ||
| 802 | /* [unique][local][object][uuid] */ | ||
| 803 | |||
| 804 | |||
| 805 | EXTERN_C const IID IID_DirectMLWebNNCreatorID; | ||
| 806 | |||
| 807 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 808 | |||
| 809 | MIDL_INTERFACE("fdf01a76-1e11-450f-902b-74f04ea08094") | ||
| 810 | DirectMLWebNNCreatorID : public IUnknown | ||
| 811 | { | ||
| 812 | public: | ||
| 813 | }; | ||
| 814 | |||
| 815 | |||
| 816 | #else /* C style interface */ | ||
| 817 | |||
| 818 | typedef struct DirectMLWebNNCreatorIDVtbl | ||
| 819 | { | ||
| 820 | BEGIN_INTERFACE | ||
| 821 | |||
| 822 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 823 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 824 | DirectMLWebNNCreatorID * This, | ||
| 825 | REFIID riid, | ||
| 826 | _COM_Outptr_ void **ppvObject); | ||
| 827 | |||
| 828 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 829 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 830 | DirectMLWebNNCreatorID * This); | ||
| 831 | |||
| 832 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 833 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 834 | DirectMLWebNNCreatorID * This); | ||
| 835 | |||
| 836 | END_INTERFACE | ||
| 837 | } DirectMLWebNNCreatorIDVtbl; | ||
| 838 | |||
| 839 | interface DirectMLWebNNCreatorID | ||
| 840 | { | ||
| 841 | CONST_VTBL struct DirectMLWebNNCreatorIDVtbl *lpVtbl; | ||
| 842 | }; | ||
| 843 | |||
| 844 | |||
| 845 | |||
| 846 | #ifdef COBJMACROS | ||
| 847 | |||
| 848 | |||
| 849 | #define DirectMLWebNNCreatorID_QueryInterface(This,riid,ppvObject) \ | ||
| 850 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 851 | |||
| 852 | #define DirectMLWebNNCreatorID_AddRef(This) \ | ||
| 853 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 854 | |||
| 855 | #define DirectMLWebNNCreatorID_Release(This) \ | ||
| 856 | ( (This)->lpVtbl -> Release(This) ) | ||
| 857 | |||
| 858 | |||
| 859 | #endif /* COBJMACROS */ | ||
| 860 | |||
| 861 | |||
| 862 | #endif /* C style interface */ | ||
| 863 | |||
| 864 | |||
| 865 | |||
| 866 | |||
| 867 | #endif /* __DirectMLWebNNCreatorID_INTERFACE_DEFINED__ */ | ||
| 868 | |||
| 869 | |||
| 870 | /* interface __MIDL_itf_d3d12compatibility_0000_0009 */ | ||
| 871 | /* [local] */ | ||
| 872 | |||
| 873 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ | ||
| 874 | #pragma endregion | ||
| 875 | DEFINE_GUID(IID_ID3D12CompatibilityDevice,0x8f1c0e3c,0xfae3,0x4a82,0xb0,0x98,0xbf,0xe1,0x70,0x82,0x07,0xff); | ||
| 876 | DEFINE_GUID(IID_D3D11On12CreatorID,0xedbf5678,0x2960,0x4e81,0x84,0x29,0x99,0xd4,0xb2,0x63,0x0c,0x4e); | ||
| 877 | DEFINE_GUID(IID_D3D9On12CreatorID,0xfffcbb7f,0x15d3,0x42a2,0x84,0x1e,0x9d,0x8d,0x32,0xf3,0x7d,0xdd); | ||
| 878 | DEFINE_GUID(IID_OpenGLOn12CreatorID,0x6bb3cd34,0x0d19,0x45ab,0x97,0xed,0xd7,0x20,0xba,0x3d,0xfc,0x80); | ||
| 879 | DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x26,0x20,0xca,0x03,0x31,0xcd,0x60); | ||
| 880 | DEFINE_GUID(IID_VulkanOn12CreatorID,0xbc806e01,0x3052,0x406c,0xa3,0xe8,0x9f,0xc0,0x7f,0x04,0x8f,0x98); | ||
| 881 | DEFINE_GUID(IID_DirectMLTensorFlowCreatorID,0xcb7490ac,0x8a0f,0x44ec,0x9b,0x7b,0x6f,0x4c,0xaf,0xe8,0xe9,0xab); | ||
| 882 | DEFINE_GUID(IID_DirectMLPyTorchCreatorID,0xaf029192,0xfba1,0x4b05,0x91,0x16,0x23,0x5e,0x06,0x56,0x03,0x54); | ||
| 883 | DEFINE_GUID(IID_DirectMLWebNNCreatorID,0xfdf01a76,0x1e11,0x450f,0x90,0x2b,0x74,0xf0,0x4e,0xa0,0x80,0x94); | ||
| 884 | |||
| 885 | |||
| 886 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0009_v0_0_c_ifspec; | ||
| 887 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compatibility_0000_0009_v0_0_s_ifspec; | ||
| 888 | |||
| 889 | /* Additional Prototypes for ALL interfaces */ | ||
| 890 | |||
| 891 | /* end of Additional Prototypes */ | ||
| 892 | |||
| 893 | #ifdef __cplusplus | ||
| 894 | } | ||
| 895 | #endif | ||
| 896 | |||
| 897 | #endif | ||
| 898 | |||
| 899 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compatibility.idl b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compatibility.idl new file mode 100644 index 0000000..019afc9 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compatibility.idl | |||
| @@ -0,0 +1,101 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | import "oaidl.idl"; | ||
| 8 | import "ocidl.idl"; | ||
| 9 | |||
| 10 | import "d3d11on12.idl"; | ||
| 11 | |||
| 12 | cpp_quote("#include <winapifamily.h>") | ||
| 13 | |||
| 14 | #pragma region Desktop Family | ||
| 15 | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") | ||
| 16 | |||
| 17 | typedef enum D3D12_COMPATIBILITY_SHARED_FLAGS | ||
| 18 | { | ||
| 19 | D3D12_COMPATIBILITY_SHARED_FLAG_NONE = 0, | ||
| 20 | D3D12_COMPATIBILITY_SHARED_FLAG_NON_NT_HANDLE = 0x1, | ||
| 21 | D3D12_COMPATIBILITY_SHARED_FLAG_KEYED_MUTEX = 0x2, | ||
| 22 | D3D12_COMPATIBILITY_SHARED_FLAG_9_ON_12 = 0x4, | ||
| 23 | |||
| 24 | } D3D12_COMPATIBILITY_SHARED_FLAGS; | ||
| 25 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMPATIBILITY_SHARED_FLAGS )" ) | ||
| 26 | |||
| 27 | typedef enum D3D12_REFLECT_SHARED_PROPERTY | ||
| 28 | { | ||
| 29 | D3D12_REFLECT_SHARED_PROPERTY_D3D11_RESOURCE_FLAGS, // D3D11_RESOURCE_FLAGS | ||
| 30 | D3D12_REFELCT_SHARED_PROPERTY_COMPATIBILITY_SHARED_FLAGS, // D3D12_COMPATIBILITY_SHARED_FLAGS | ||
| 31 | D3D12_REFLECT_SHARED_PROPERTY_NON_NT_SHARED_HANDLE, // HANDLE | ||
| 32 | } D3D12_REFLECT_SHARED_PROPERTY; | ||
| 33 | |||
| 34 | [ uuid( 8f1c0e3c-fae3-4a82-b098-bfe1708207ff ), object, local, pointer_default( unique ) ] | ||
| 35 | interface ID3D12CompatibilityDevice | ||
| 36 | : IUnknown | ||
| 37 | { | ||
| 38 | HRESULT CreateSharedResource( | ||
| 39 | [annotation("_In_")] const D3D12_HEAP_PROPERTIES* pHeapProperties, | ||
| 40 | D3D12_HEAP_FLAGS HeapFlags, | ||
| 41 | [annotation("_In_")] const D3D12_RESOURCE_DESC* pDesc, | ||
| 42 | D3D12_RESOURCE_STATES InitialResourceState, | ||
| 43 | [annotation("_In_opt_")] const D3D12_CLEAR_VALUE* pOptimizedClearValue, | ||
| 44 | [annotation("_In_opt_")] const D3D11_RESOURCE_FLAGS* pFlags11, | ||
| 45 | D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, | ||
| 46 | [annotation("_In_opt_")] ID3D12LifetimeTracker* pLifetimeTracker, | ||
| 47 | [annotation("_In_opt_")] ID3D12SwapChainAssistant* pOwningSwapchain, | ||
| 48 | REFIID riid, | ||
| 49 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppResource); | ||
| 50 | |||
| 51 | HRESULT CreateSharedHeap( | ||
| 52 | [annotation("_In_")] const D3D12_HEAP_DESC* pHeapDesc, | ||
| 53 | D3D12_COMPATIBILITY_SHARED_FLAGS CompatibilityFlags, | ||
| 54 | REFIID riid, | ||
| 55 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppHeap); | ||
| 56 | |||
| 57 | HRESULT ReflectSharedProperties( | ||
| 58 | [annotation("_In_")] ID3D12Object* pHeapOrResource, | ||
| 59 | D3D12_REFLECT_SHARED_PROPERTY ReflectType, | ||
| 60 | [annotation("_Out_writes_bytes_(DataSize)")] void* pData, | ||
| 61 | UINT DataSize); | ||
| 62 | } | ||
| 63 | |||
| 64 | [uuid(edbf5678-2960-4e81-8429-99d4b2630c4e), object, local, pointer_default(unique)] | ||
| 65 | interface D3D11On12CreatorID : IUnknown { }; | ||
| 66 | |||
| 67 | [uuid(fffcbb7f-15d3-42a2-841e-9d8d32f37ddd), object, local, pointer_default(unique)] | ||
| 68 | interface D3D9On12CreatorID : IUnknown { }; | ||
| 69 | |||
| 70 | [uuid(6bb3cd34-0d19-45ab-97ed-d720ba3dfc80), object, local, pointer_default(unique)] | ||
| 71 | interface OpenGLOn12CreatorID : IUnknown { }; | ||
| 72 | |||
| 73 | [uuid(3f76bb74-91b5-4a88-b126-20ca0331cd60), object, local, pointer_default(unique)] | ||
| 74 | interface OpenCLOn12CreatorID : IUnknown { }; | ||
| 75 | |||
| 76 | [uuid(bc806e01-3052-406c-a3e8-9fc07f048f98), object, local, pointer_default(unique)] | ||
| 77 | interface VulkanOn12CreatorID : IUnknown { }; | ||
| 78 | |||
| 79 | [uuid(cb7490ac-8a0f-44ec-9b7b-6f4cafe8e9ab), object, local, pointer_default(unique)] | ||
| 80 | interface DirectMLTensorFlowCreatorID : IUnknown { }; | ||
| 81 | |||
| 82 | [uuid(af029192-fba1-4b05-9116-235e06560354), object, local, pointer_default(unique)] | ||
| 83 | interface DirectMLPyTorchCreatorID : IUnknown { }; | ||
| 84 | |||
| 85 | [uuid(fdf01a76-1e11-450f-902b-74f04ea08094), object, local, pointer_default(unique)] | ||
| 86 | interface DirectMLWebNNCreatorID : IUnknown { }; | ||
| 87 | |||
| 88 | |||
| 89 | cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") | ||
| 90 | #pragma endregion | ||
| 91 | |||
| 92 | |||
| 93 | cpp_quote( "DEFINE_GUID(IID_ID3D12CompatibilityDevice,0x8f1c0e3c,0xfae3,0x4a82,0xb0,0x98,0xbf,0xe1,0x70,0x82,0x07,0xff);" ) | ||
| 94 | cpp_quote( "DEFINE_GUID(IID_D3D11On12CreatorID,0xedbf5678,0x2960,0x4e81,0x84,0x29,0x99,0xd4,0xb2,0x63,0x0c,0x4e);" ) | ||
| 95 | cpp_quote( "DEFINE_GUID(IID_D3D9On12CreatorID,0xfffcbb7f,0x15d3,0x42a2,0x84,0x1e,0x9d,0x8d,0x32,0xf3,0x7d,0xdd);" ) | ||
| 96 | cpp_quote( "DEFINE_GUID(IID_OpenGLOn12CreatorID,0x6bb3cd34,0x0d19,0x45ab,0x97,0xed,0xd7,0x20,0xba,0x3d,0xfc,0x80);" ) | ||
| 97 | cpp_quote( "DEFINE_GUID(IID_OpenCLOn12CreatorID,0x3f76bb74,0x91b5,0x4a88,0xb1,0x26,0x20,0xca,0x03,0x31,0xcd,0x60);" ) | ||
| 98 | cpp_quote( "DEFINE_GUID(IID_VulkanOn12CreatorID,0xbc806e01,0x3052,0x406c,0xa3,0xe8,0x9f,0xc0,0x7f,0x04,0x8f,0x98);" ) | ||
| 99 | cpp_quote( "DEFINE_GUID(IID_DirectMLTensorFlowCreatorID,0xcb7490ac,0x8a0f,0x44ec,0x9b,0x7b,0x6f,0x4c,0xaf,0xe8,0xe9,0xab);" ) | ||
| 100 | cpp_quote( "DEFINE_GUID(IID_DirectMLPyTorchCreatorID,0xaf029192,0xfba1,0x4b05,0x91,0x16,0x23,0x5e,0x06,0x56,0x03,0x54);" ) | ||
| 101 | cpp_quote( "DEFINE_GUID(IID_DirectMLWebNNCreatorID,0xfdf01a76,0x1e11,0x450f,0x90,0x2b,0x74,0xf0,0x4e,0xa0,0x80,0x94);" ) | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.h new file mode 100644 index 0000000..1d8fe3b --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.h | |||
| @@ -0,0 +1,977 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | |||
| 8 | |||
| 9 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ | ||
| 10 | |||
| 11 | |||
| 12 | /* File created by MIDL compiler version 8.01.0628 */ | ||
| 13 | |||
| 14 | |||
| 15 | |||
| 16 | /* verify that the <rpcndr.h> version is high enough to compile this file*/ | ||
| 17 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | ||
| 18 | #define __REQUIRED_RPCNDR_H_VERSION__ 500 | ||
| 19 | #endif | ||
| 20 | |||
| 21 | /* verify that the <rpcsal.h> version is high enough to compile this file*/ | ||
| 22 | #ifndef __REQUIRED_RPCSAL_H_VERSION__ | ||
| 23 | #define __REQUIRED_RPCSAL_H_VERSION__ 100 | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include "rpc.h" | ||
| 27 | #include "rpcndr.h" | ||
| 28 | |||
| 29 | #ifndef __RPCNDR_H_VERSION__ | ||
| 30 | #error this stub requires an updated version of <rpcndr.h> | ||
| 31 | #endif /* __RPCNDR_H_VERSION__ */ | ||
| 32 | |||
| 33 | #ifndef COM_NO_WINDOWS_H | ||
| 34 | #include "windows.h" | ||
| 35 | #include "ole2.h" | ||
| 36 | #endif /*COM_NO_WINDOWS_H*/ | ||
| 37 | |||
| 38 | #ifndef __d3d12compiler_h__ | ||
| 39 | #define __d3d12compiler_h__ | ||
| 40 | |||
| 41 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) | ||
| 42 | #pragma once | ||
| 43 | #endif | ||
| 44 | |||
| 45 | #ifndef DECLSPEC_XFGVIRT | ||
| 46 | #if defined(_CONTROL_FLOW_GUARD_XFG) | ||
| 47 | #define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) | ||
| 48 | #else | ||
| 49 | #define DECLSPEC_XFGVIRT(base, func) | ||
| 50 | #endif | ||
| 51 | #endif | ||
| 52 | |||
| 53 | /* Forward Declarations */ | ||
| 54 | |||
| 55 | #ifndef __ID3D12CompilerFactoryChild_FWD_DEFINED__ | ||
| 56 | #define __ID3D12CompilerFactoryChild_FWD_DEFINED__ | ||
| 57 | typedef interface ID3D12CompilerFactoryChild ID3D12CompilerFactoryChild; | ||
| 58 | |||
| 59 | #endif /* __ID3D12CompilerFactoryChild_FWD_DEFINED__ */ | ||
| 60 | |||
| 61 | |||
| 62 | #ifndef __ID3D12CompilerCacheSession_FWD_DEFINED__ | ||
| 63 | #define __ID3D12CompilerCacheSession_FWD_DEFINED__ | ||
| 64 | typedef interface ID3D12CompilerCacheSession ID3D12CompilerCacheSession; | ||
| 65 | |||
| 66 | #endif /* __ID3D12CompilerCacheSession_FWD_DEFINED__ */ | ||
| 67 | |||
| 68 | |||
| 69 | #ifndef __ID3D12CompilerStateObject_FWD_DEFINED__ | ||
| 70 | #define __ID3D12CompilerStateObject_FWD_DEFINED__ | ||
| 71 | typedef interface ID3D12CompilerStateObject ID3D12CompilerStateObject; | ||
| 72 | |||
| 73 | #endif /* __ID3D12CompilerStateObject_FWD_DEFINED__ */ | ||
| 74 | |||
| 75 | |||
| 76 | #ifndef __ID3D12Compiler_FWD_DEFINED__ | ||
| 77 | #define __ID3D12Compiler_FWD_DEFINED__ | ||
| 78 | typedef interface ID3D12Compiler ID3D12Compiler; | ||
| 79 | |||
| 80 | #endif /* __ID3D12Compiler_FWD_DEFINED__ */ | ||
| 81 | |||
| 82 | |||
| 83 | #ifndef __ID3D12CompilerFactory_FWD_DEFINED__ | ||
| 84 | #define __ID3D12CompilerFactory_FWD_DEFINED__ | ||
| 85 | typedef interface ID3D12CompilerFactory ID3D12CompilerFactory; | ||
| 86 | |||
| 87 | #endif /* __ID3D12CompilerFactory_FWD_DEFINED__ */ | ||
| 88 | |||
| 89 | |||
| 90 | /* header files for imported files */ | ||
| 91 | #include "oaidl.h" | ||
| 92 | #include "ocidl.h" | ||
| 93 | #include "dxgicommon.h" | ||
| 94 | #include "d3d12.h" | ||
| 95 | |||
| 96 | #ifdef __cplusplus | ||
| 97 | extern "C"{ | ||
| 98 | #endif | ||
| 99 | |||
| 100 | |||
| 101 | /* interface __MIDL_itf_d3d12compiler_0000_0000 */ | ||
| 102 | /* [local] */ | ||
| 103 | |||
| 104 | #include <winapifamily.h> | ||
| 105 | #pragma region App Family | ||
| 106 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) | ||
| 107 | typedef struct D3D12_ADAPTER_FAMILY | ||
| 108 | { | ||
| 109 | WCHAR szAdapterFamily[ 128 ]; | ||
| 110 | } D3D12_ADAPTER_FAMILY; | ||
| 111 | |||
| 112 | typedef HRESULT (WINAPI* PFN_D3D12_COMPILER_CREATE_FACTORY)( | ||
| 113 | _In_ LPCWSTR pPluginCompilerDllPath, | ||
| 114 | _In_ REFIID riid, | ||
| 115 | _COM_Outptr_opt_ void** ppFactory ); | ||
| 116 | |||
| 117 | HRESULT WINAPI D3D12CompilerCreateFactory( | ||
| 118 | _In_ LPCWSTR pPluginCompilerDllPath, | ||
| 119 | _In_ REFIID riid, // Expected: ID3D12CompilerFactory | ||
| 120 | _COM_Outptr_opt_ void** ppFactory ); | ||
| 121 | |||
| 122 | typedef HRESULT (WINAPI* PFN_D3D12_COMPILER_SERIALIZE_VERSIONED_ROOT_SIGNATURE)( | ||
| 123 | _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, | ||
| 124 | _Out_ ID3DBlob** ppBlob, | ||
| 125 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); | ||
| 126 | |||
| 127 | HRESULT WINAPI D3D12CompilerSerializeVersionedRootSignature( | ||
| 128 | _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature, | ||
| 129 | _Out_ ID3DBlob** ppBlob, | ||
| 130 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob); | ||
| 131 | |||
| 132 | |||
| 133 | |||
| 134 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compiler_0000_0000_v0_0_c_ifspec; | ||
| 135 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compiler_0000_0000_v0_0_s_ifspec; | ||
| 136 | |||
| 137 | #ifndef __ID3D12CompilerFactoryChild_INTERFACE_DEFINED__ | ||
| 138 | #define __ID3D12CompilerFactoryChild_INTERFACE_DEFINED__ | ||
| 139 | |||
| 140 | /* interface ID3D12CompilerFactoryChild */ | ||
| 141 | /* [unique][local][object][uuid] */ | ||
| 142 | |||
| 143 | |||
| 144 | EXTERN_C const IID IID_ID3D12CompilerFactoryChild; | ||
| 145 | |||
| 146 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 147 | |||
| 148 | MIDL_INTERFACE("e0d06420-9f31-47e8-ae9a-dd2ba25ac0bc") | ||
| 149 | ID3D12CompilerFactoryChild : public IUnknown | ||
| 150 | { | ||
| 151 | public: | ||
| 152 | virtual HRESULT STDMETHODCALLTYPE GetFactory( | ||
| 153 | _In_ REFIID riid, | ||
| 154 | _COM_Outptr_ void **ppCompilerFactory) = 0; | ||
| 155 | |||
| 156 | }; | ||
| 157 | |||
| 158 | |||
| 159 | #else /* C style interface */ | ||
| 160 | |||
| 161 | typedef struct ID3D12CompilerFactoryChildVtbl | ||
| 162 | { | ||
| 163 | BEGIN_INTERFACE | ||
| 164 | |||
| 165 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 166 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 167 | ID3D12CompilerFactoryChild * This, | ||
| 168 | REFIID riid, | ||
| 169 | _COM_Outptr_ void **ppvObject); | ||
| 170 | |||
| 171 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 172 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 173 | ID3D12CompilerFactoryChild * This); | ||
| 174 | |||
| 175 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 176 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 177 | ID3D12CompilerFactoryChild * This); | ||
| 178 | |||
| 179 | DECLSPEC_XFGVIRT(ID3D12CompilerFactoryChild, GetFactory) | ||
| 180 | HRESULT ( STDMETHODCALLTYPE *GetFactory )( | ||
| 181 | ID3D12CompilerFactoryChild * This, | ||
| 182 | _In_ REFIID riid, | ||
| 183 | _COM_Outptr_ void **ppCompilerFactory); | ||
| 184 | |||
| 185 | END_INTERFACE | ||
| 186 | } ID3D12CompilerFactoryChildVtbl; | ||
| 187 | |||
| 188 | interface ID3D12CompilerFactoryChild | ||
| 189 | { | ||
| 190 | CONST_VTBL struct ID3D12CompilerFactoryChildVtbl *lpVtbl; | ||
| 191 | }; | ||
| 192 | |||
| 193 | |||
| 194 | |||
| 195 | #ifdef COBJMACROS | ||
| 196 | |||
| 197 | |||
| 198 | #define ID3D12CompilerFactoryChild_QueryInterface(This,riid,ppvObject) \ | ||
| 199 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 200 | |||
| 201 | #define ID3D12CompilerFactoryChild_AddRef(This) \ | ||
| 202 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 203 | |||
| 204 | #define ID3D12CompilerFactoryChild_Release(This) \ | ||
| 205 | ( (This)->lpVtbl -> Release(This) ) | ||
| 206 | |||
| 207 | |||
| 208 | #define ID3D12CompilerFactoryChild_GetFactory(This,riid,ppCompilerFactory) \ | ||
| 209 | ( (This)->lpVtbl -> GetFactory(This,riid,ppCompilerFactory) ) | ||
| 210 | |||
| 211 | #endif /* COBJMACROS */ | ||
| 212 | |||
| 213 | |||
| 214 | #endif /* C style interface */ | ||
| 215 | |||
| 216 | |||
| 217 | |||
| 218 | |||
| 219 | #endif /* __ID3D12CompilerFactoryChild_INTERFACE_DEFINED__ */ | ||
| 220 | |||
| 221 | |||
| 222 | /* interface __MIDL_itf_d3d12compiler_0000_0001 */ | ||
| 223 | /* [local] */ | ||
| 224 | |||
| 225 | typedef | ||
| 226 | enum D3D12_COMPILER_VALUE_TYPE | ||
| 227 | { | ||
| 228 | D3D12_COMPILER_VALUE_TYPE_OBJECT_CODE = 0, | ||
| 229 | D3D12_COMPILER_VALUE_TYPE_METADATA = 1, | ||
| 230 | D3D12_COMPILER_VALUE_TYPE_DEBUG_PDB = 2, | ||
| 231 | D3D12_COMPILER_VALUE_TYPE_PERFORMANCE_DATA = 3 | ||
| 232 | } D3D12_COMPILER_VALUE_TYPE; | ||
| 233 | |||
| 234 | typedef | ||
| 235 | enum D3D12_COMPILER_VALUE_TYPE_FLAGS | ||
| 236 | { | ||
| 237 | D3D12_COMPILER_VALUE_TYPE_FLAGS_NONE = 0, | ||
| 238 | D3D12_COMPILER_VALUE_TYPE_FLAGS_OBJECT_CODE = ( 1 << D3D12_COMPILER_VALUE_TYPE_OBJECT_CODE ) , | ||
| 239 | D3D12_COMPILER_VALUE_TYPE_FLAGS_METADATA = ( 1 << D3D12_COMPILER_VALUE_TYPE_METADATA ) , | ||
| 240 | D3D12_COMPILER_VALUE_TYPE_FLAGS_DEBUG_PDB = ( 1 << D3D12_COMPILER_VALUE_TYPE_DEBUG_PDB ) , | ||
| 241 | D3D12_COMPILER_VALUE_TYPE_FLAGS_PERFORMANCE_DATA = ( 1 << D3D12_COMPILER_VALUE_TYPE_PERFORMANCE_DATA ) | ||
| 242 | } D3D12_COMPILER_VALUE_TYPE_FLAGS; | ||
| 243 | |||
| 244 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMPILER_VALUE_TYPE_FLAGS ) | ||
| 245 | typedef struct D3D12_COMPILER_DATABASE_PATH | ||
| 246 | { | ||
| 247 | D3D12_COMPILER_VALUE_TYPE_FLAGS Types; | ||
| 248 | LPCWSTR pPath; | ||
| 249 | } D3D12_COMPILER_DATABASE_PATH; | ||
| 250 | |||
| 251 | typedef struct D3D12_COMPILER_CACHE_GROUP_KEY | ||
| 252 | { | ||
| 253 | _Field_size_bytes_full_(KeySize) const void *pKey; | ||
| 254 | UINT KeySize; | ||
| 255 | } D3D12_COMPILER_CACHE_GROUP_KEY; | ||
| 256 | |||
| 257 | typedef struct D3D12_COMPILER_CACHE_VALUE_KEY | ||
| 258 | { | ||
| 259 | _Field_size_bytes_full_(KeySize) const void *pKey; | ||
| 260 | UINT KeySize; | ||
| 261 | } D3D12_COMPILER_CACHE_VALUE_KEY; | ||
| 262 | |||
| 263 | typedef struct D3D12_COMPILER_CACHE_VALUE | ||
| 264 | { | ||
| 265 | _Field_size_bytes_full_(ValueSize) void *pValue; | ||
| 266 | UINT ValueSize; | ||
| 267 | } D3D12_COMPILER_CACHE_VALUE; | ||
| 268 | |||
| 269 | typedef struct D3D12_COMPILER_CACHE_TYPED_VALUE | ||
| 270 | { | ||
| 271 | D3D12_COMPILER_VALUE_TYPE Type; | ||
| 272 | D3D12_COMPILER_CACHE_VALUE Value; | ||
| 273 | } D3D12_COMPILER_CACHE_TYPED_VALUE; | ||
| 274 | |||
| 275 | typedef struct D3D12_COMPILER_CACHE_CONST_VALUE | ||
| 276 | { | ||
| 277 | _Field_size_bytes_full_(ValueSize) const void *pValue; | ||
| 278 | UINT ValueSize; | ||
| 279 | } D3D12_COMPILER_CACHE_CONST_VALUE; | ||
| 280 | |||
| 281 | typedef struct D3D12_COMPILER_CACHE_TYPED_CONST_VALUE | ||
| 282 | { | ||
| 283 | D3D12_COMPILER_VALUE_TYPE Type; | ||
| 284 | D3D12_COMPILER_CACHE_CONST_VALUE Value; | ||
| 285 | } D3D12_COMPILER_CACHE_TYPED_CONST_VALUE; | ||
| 286 | |||
| 287 | typedef struct D3D12_COMPILER_TARGET | ||
| 288 | { | ||
| 289 | UINT AdapterFamilyIndex; | ||
| 290 | UINT64 ABIVersion; | ||
| 291 | } D3D12_COMPILER_TARGET; | ||
| 292 | |||
| 293 | typedef void *( __stdcall *D3D12CompilerCacheSessionAllocationFunc )( | ||
| 294 | SIZE_T SizeInBytes, | ||
| 295 | _Inout_opt_ void *pContext); | ||
| 296 | |||
| 297 | typedef void ( __stdcall *D3D12CompilerCacheSessionGroupValueKeysFunc )( | ||
| 298 | _In_ const D3D12_COMPILER_CACHE_VALUE_KEY *pValueKey, | ||
| 299 | _Inout_opt_ void *pContext); | ||
| 300 | |||
| 301 | typedef void ( __stdcall *D3D12CompilerCacheSessionGroupValuesFunc )( | ||
| 302 | UINT ValueKeyIndex, | ||
| 303 | _In_ const D3D12_COMPILER_CACHE_TYPED_CONST_VALUE *pTypedValue, | ||
| 304 | _Inout_opt_ void *pContext); | ||
| 305 | |||
| 306 | |||
| 307 | |||
| 308 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compiler_0000_0001_v0_0_c_ifspec; | ||
| 309 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compiler_0000_0001_v0_0_s_ifspec; | ||
| 310 | |||
| 311 | #ifndef __ID3D12CompilerCacheSession_INTERFACE_DEFINED__ | ||
| 312 | #define __ID3D12CompilerCacheSession_INTERFACE_DEFINED__ | ||
| 313 | |||
| 314 | /* interface ID3D12CompilerCacheSession */ | ||
| 315 | /* [unique][local][object][uuid] */ | ||
| 316 | |||
| 317 | |||
| 318 | EXTERN_C const IID IID_ID3D12CompilerCacheSession; | ||
| 319 | |||
| 320 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 321 | |||
| 322 | MIDL_INTERFACE("5704e5e6-054b-4738-b661-7b0d68d8dde2") | ||
| 323 | ID3D12CompilerCacheSession : public ID3D12CompilerFactoryChild | ||
| 324 | { | ||
| 325 | public: | ||
| 326 | virtual HRESULT STDMETHODCALLTYPE FindGroup( | ||
| 327 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 328 | _Out_opt_ UINT *pGroupVersion) = 0; | ||
| 329 | |||
| 330 | virtual HRESULT STDMETHODCALLTYPE FindGroupValueKeys( | ||
| 331 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 332 | _In_opt_ const UINT *pExpectedGroupVersion, | ||
| 333 | _In_ D3D12CompilerCacheSessionGroupValueKeysFunc CallbackFunc, | ||
| 334 | _Inout_opt_ void *pContext) = 0; | ||
| 335 | |||
| 336 | virtual HRESULT STDMETHODCALLTYPE FindGroupValues( | ||
| 337 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 338 | _In_opt_ const UINT *pExpectedGroupVersion, | ||
| 339 | D3D12_COMPILER_VALUE_TYPE_FLAGS ValueTypeFlags, | ||
| 340 | _In_opt_ D3D12CompilerCacheSessionGroupValuesFunc CallbackFunc, | ||
| 341 | _Inout_opt_ void *pContext) = 0; | ||
| 342 | |||
| 343 | virtual HRESULT STDMETHODCALLTYPE FindValue( | ||
| 344 | _In_ const D3D12_COMPILER_CACHE_VALUE_KEY *pValueKey, | ||
| 345 | _Inout_count_(NumTypedValues) D3D12_COMPILER_CACHE_TYPED_VALUE *pTypedValues, | ||
| 346 | UINT NumTypedValues, | ||
| 347 | _In_opt_ D3D12CompilerCacheSessionAllocationFunc pCallbackFunc, | ||
| 348 | _Inout_opt_ void *pContext) = 0; | ||
| 349 | |||
| 350 | virtual const D3D12_APPLICATION_DESC *STDMETHODCALLTYPE GetApplicationDesc( void) = 0; | ||
| 351 | |||
| 352 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 353 | virtual D3D12_COMPILER_TARGET STDMETHODCALLTYPE GetCompilerTarget( void) = 0; | ||
| 354 | #else | ||
| 355 | virtual D3D12_COMPILER_TARGET *STDMETHODCALLTYPE GetCompilerTarget( | ||
| 356 | D3D12_COMPILER_TARGET * RetVal) = 0; | ||
| 357 | #endif | ||
| 358 | |||
| 359 | virtual D3D12_COMPILER_VALUE_TYPE_FLAGS STDMETHODCALLTYPE GetValueTypes( void) = 0; | ||
| 360 | |||
| 361 | virtual HRESULT STDMETHODCALLTYPE StoreGroupValueKeys( | ||
| 362 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 363 | UINT GroupVersion, | ||
| 364 | _In_reads_(NumValueKeys) const D3D12_COMPILER_CACHE_VALUE_KEY *pValueKeys, | ||
| 365 | UINT NumValueKeys) = 0; | ||
| 366 | |||
| 367 | virtual HRESULT STDMETHODCALLTYPE StoreValue( | ||
| 368 | _In_ const D3D12_COMPILER_CACHE_VALUE_KEY *pValueKey, | ||
| 369 | _In_reads_(NumTypedValues) const D3D12_COMPILER_CACHE_TYPED_CONST_VALUE *pTypedValues, | ||
| 370 | UINT NumTypedValues) = 0; | ||
| 371 | |||
| 372 | }; | ||
| 373 | |||
| 374 | |||
| 375 | #else /* C style interface */ | ||
| 376 | |||
| 377 | typedef struct ID3D12CompilerCacheSessionVtbl | ||
| 378 | { | ||
| 379 | BEGIN_INTERFACE | ||
| 380 | |||
| 381 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 382 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 383 | ID3D12CompilerCacheSession * This, | ||
| 384 | REFIID riid, | ||
| 385 | _COM_Outptr_ void **ppvObject); | ||
| 386 | |||
| 387 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 388 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 389 | ID3D12CompilerCacheSession * This); | ||
| 390 | |||
| 391 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 392 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 393 | ID3D12CompilerCacheSession * This); | ||
| 394 | |||
| 395 | DECLSPEC_XFGVIRT(ID3D12CompilerFactoryChild, GetFactory) | ||
| 396 | HRESULT ( STDMETHODCALLTYPE *GetFactory )( | ||
| 397 | ID3D12CompilerCacheSession * This, | ||
| 398 | _In_ REFIID riid, | ||
| 399 | _COM_Outptr_ void **ppCompilerFactory); | ||
| 400 | |||
| 401 | DECLSPEC_XFGVIRT(ID3D12CompilerCacheSession, FindGroup) | ||
| 402 | HRESULT ( STDMETHODCALLTYPE *FindGroup )( | ||
| 403 | ID3D12CompilerCacheSession * This, | ||
| 404 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 405 | _Out_opt_ UINT *pGroupVersion); | ||
| 406 | |||
| 407 | DECLSPEC_XFGVIRT(ID3D12CompilerCacheSession, FindGroupValueKeys) | ||
| 408 | HRESULT ( STDMETHODCALLTYPE *FindGroupValueKeys )( | ||
| 409 | ID3D12CompilerCacheSession * This, | ||
| 410 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 411 | _In_opt_ const UINT *pExpectedGroupVersion, | ||
| 412 | _In_ D3D12CompilerCacheSessionGroupValueKeysFunc CallbackFunc, | ||
| 413 | _Inout_opt_ void *pContext); | ||
| 414 | |||
| 415 | DECLSPEC_XFGVIRT(ID3D12CompilerCacheSession, FindGroupValues) | ||
| 416 | HRESULT ( STDMETHODCALLTYPE *FindGroupValues )( | ||
| 417 | ID3D12CompilerCacheSession * This, | ||
| 418 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 419 | _In_opt_ const UINT *pExpectedGroupVersion, | ||
| 420 | D3D12_COMPILER_VALUE_TYPE_FLAGS ValueTypeFlags, | ||
| 421 | _In_opt_ D3D12CompilerCacheSessionGroupValuesFunc CallbackFunc, | ||
| 422 | _Inout_opt_ void *pContext); | ||
| 423 | |||
| 424 | DECLSPEC_XFGVIRT(ID3D12CompilerCacheSession, FindValue) | ||
| 425 | HRESULT ( STDMETHODCALLTYPE *FindValue )( | ||
| 426 | ID3D12CompilerCacheSession * This, | ||
| 427 | _In_ const D3D12_COMPILER_CACHE_VALUE_KEY *pValueKey, | ||
| 428 | _Inout_count_(NumTypedValues) D3D12_COMPILER_CACHE_TYPED_VALUE *pTypedValues, | ||
| 429 | UINT NumTypedValues, | ||
| 430 | _In_opt_ D3D12CompilerCacheSessionAllocationFunc pCallbackFunc, | ||
| 431 | _Inout_opt_ void *pContext); | ||
| 432 | |||
| 433 | DECLSPEC_XFGVIRT(ID3D12CompilerCacheSession, GetApplicationDesc) | ||
| 434 | const D3D12_APPLICATION_DESC *( STDMETHODCALLTYPE *GetApplicationDesc )( | ||
| 435 | ID3D12CompilerCacheSession * This); | ||
| 436 | |||
| 437 | DECLSPEC_XFGVIRT(ID3D12CompilerCacheSession, GetCompilerTarget) | ||
| 438 | #if !defined(_WIN32) | ||
| 439 | D3D12_COMPILER_TARGET ( STDMETHODCALLTYPE *GetCompilerTarget )( | ||
| 440 | ID3D12CompilerCacheSession * This); | ||
| 441 | |||
| 442 | #else | ||
| 443 | D3D12_COMPILER_TARGET *( STDMETHODCALLTYPE *GetCompilerTarget )( | ||
| 444 | ID3D12CompilerCacheSession * This, | ||
| 445 | D3D12_COMPILER_TARGET * RetVal); | ||
| 446 | |||
| 447 | #endif | ||
| 448 | |||
| 449 | DECLSPEC_XFGVIRT(ID3D12CompilerCacheSession, GetValueTypes) | ||
| 450 | D3D12_COMPILER_VALUE_TYPE_FLAGS ( STDMETHODCALLTYPE *GetValueTypes )( | ||
| 451 | ID3D12CompilerCacheSession * This); | ||
| 452 | |||
| 453 | DECLSPEC_XFGVIRT(ID3D12CompilerCacheSession, StoreGroupValueKeys) | ||
| 454 | HRESULT ( STDMETHODCALLTYPE *StoreGroupValueKeys )( | ||
| 455 | ID3D12CompilerCacheSession * This, | ||
| 456 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 457 | UINT GroupVersion, | ||
| 458 | _In_reads_(NumValueKeys) const D3D12_COMPILER_CACHE_VALUE_KEY *pValueKeys, | ||
| 459 | UINT NumValueKeys); | ||
| 460 | |||
| 461 | DECLSPEC_XFGVIRT(ID3D12CompilerCacheSession, StoreValue) | ||
| 462 | HRESULT ( STDMETHODCALLTYPE *StoreValue )( | ||
| 463 | ID3D12CompilerCacheSession * This, | ||
| 464 | _In_ const D3D12_COMPILER_CACHE_VALUE_KEY *pValueKey, | ||
| 465 | _In_reads_(NumTypedValues) const D3D12_COMPILER_CACHE_TYPED_CONST_VALUE *pTypedValues, | ||
| 466 | UINT NumTypedValues); | ||
| 467 | |||
| 468 | END_INTERFACE | ||
| 469 | } ID3D12CompilerCacheSessionVtbl; | ||
| 470 | |||
| 471 | interface ID3D12CompilerCacheSession | ||
| 472 | { | ||
| 473 | CONST_VTBL struct ID3D12CompilerCacheSessionVtbl *lpVtbl; | ||
| 474 | }; | ||
| 475 | |||
| 476 | |||
| 477 | |||
| 478 | #ifdef COBJMACROS | ||
| 479 | |||
| 480 | |||
| 481 | #define ID3D12CompilerCacheSession_QueryInterface(This,riid,ppvObject) \ | ||
| 482 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 483 | |||
| 484 | #define ID3D12CompilerCacheSession_AddRef(This) \ | ||
| 485 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 486 | |||
| 487 | #define ID3D12CompilerCacheSession_Release(This) \ | ||
| 488 | ( (This)->lpVtbl -> Release(This) ) | ||
| 489 | |||
| 490 | |||
| 491 | #define ID3D12CompilerCacheSession_GetFactory(This,riid,ppCompilerFactory) \ | ||
| 492 | ( (This)->lpVtbl -> GetFactory(This,riid,ppCompilerFactory) ) | ||
| 493 | |||
| 494 | |||
| 495 | #define ID3D12CompilerCacheSession_FindGroup(This,pGroupKey,pGroupVersion) \ | ||
| 496 | ( (This)->lpVtbl -> FindGroup(This,pGroupKey,pGroupVersion) ) | ||
| 497 | |||
| 498 | #define ID3D12CompilerCacheSession_FindGroupValueKeys(This,pGroupKey,pExpectedGroupVersion,CallbackFunc,pContext) \ | ||
| 499 | ( (This)->lpVtbl -> FindGroupValueKeys(This,pGroupKey,pExpectedGroupVersion,CallbackFunc,pContext) ) | ||
| 500 | |||
| 501 | #define ID3D12CompilerCacheSession_FindGroupValues(This,pGroupKey,pExpectedGroupVersion,ValueTypeFlags,CallbackFunc,pContext) \ | ||
| 502 | ( (This)->lpVtbl -> FindGroupValues(This,pGroupKey,pExpectedGroupVersion,ValueTypeFlags,CallbackFunc,pContext) ) | ||
| 503 | |||
| 504 | #define ID3D12CompilerCacheSession_FindValue(This,pValueKey,pTypedValues,NumTypedValues,pCallbackFunc,pContext) \ | ||
| 505 | ( (This)->lpVtbl -> FindValue(This,pValueKey,pTypedValues,NumTypedValues,pCallbackFunc,pContext) ) | ||
| 506 | |||
| 507 | #define ID3D12CompilerCacheSession_GetApplicationDesc(This) \ | ||
| 508 | ( (This)->lpVtbl -> GetApplicationDesc(This) ) | ||
| 509 | #if !defined(_WIN32) | ||
| 510 | |||
| 511 | #define ID3D12CompilerCacheSession_GetCompilerTarget(This) \ | ||
| 512 | ( (This)->lpVtbl -> GetCompilerTarget(This) ) | ||
| 513 | #else | ||
| 514 | #define ID3D12CompilerCacheSession_GetCompilerTarget(This,RetVal) \ | ||
| 515 | ( (This)->lpVtbl -> GetCompilerTarget(This,RetVal) ) | ||
| 516 | #endif | ||
| 517 | |||
| 518 | #define ID3D12CompilerCacheSession_GetValueTypes(This) \ | ||
| 519 | ( (This)->lpVtbl -> GetValueTypes(This) ) | ||
| 520 | |||
| 521 | #define ID3D12CompilerCacheSession_StoreGroupValueKeys(This,pGroupKey,GroupVersion,pValueKeys,NumValueKeys) \ | ||
| 522 | ( (This)->lpVtbl -> StoreGroupValueKeys(This,pGroupKey,GroupVersion,pValueKeys,NumValueKeys) ) | ||
| 523 | |||
| 524 | #define ID3D12CompilerCacheSession_StoreValue(This,pValueKey,pTypedValues,NumTypedValues) \ | ||
| 525 | ( (This)->lpVtbl -> StoreValue(This,pValueKey,pTypedValues,NumTypedValues) ) | ||
| 526 | |||
| 527 | #endif /* COBJMACROS */ | ||
| 528 | |||
| 529 | |||
| 530 | #endif /* C style interface */ | ||
| 531 | |||
| 532 | |||
| 533 | |||
| 534 | |||
| 535 | #endif /* __ID3D12CompilerCacheSession_INTERFACE_DEFINED__ */ | ||
| 536 | |||
| 537 | |||
| 538 | #ifndef __ID3D12CompilerStateObject_INTERFACE_DEFINED__ | ||
| 539 | #define __ID3D12CompilerStateObject_INTERFACE_DEFINED__ | ||
| 540 | |||
| 541 | /* interface ID3D12CompilerStateObject */ | ||
| 542 | /* [unique][local][object][uuid] */ | ||
| 543 | |||
| 544 | |||
| 545 | EXTERN_C const IID IID_ID3D12CompilerStateObject; | ||
| 546 | |||
| 547 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 548 | |||
| 549 | MIDL_INTERFACE("5981cca4-e8ae-44ca-9b92-4fa86f5a3a3a") | ||
| 550 | ID3D12CompilerStateObject : public IUnknown | ||
| 551 | { | ||
| 552 | public: | ||
| 553 | virtual HRESULT STDMETHODCALLTYPE GetCompiler( | ||
| 554 | _In_ REFIID riid, | ||
| 555 | _COM_Outptr_ void **ppCompiler) = 0; | ||
| 556 | |||
| 557 | }; | ||
| 558 | |||
| 559 | |||
| 560 | #else /* C style interface */ | ||
| 561 | |||
| 562 | typedef struct ID3D12CompilerStateObjectVtbl | ||
| 563 | { | ||
| 564 | BEGIN_INTERFACE | ||
| 565 | |||
| 566 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 567 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 568 | ID3D12CompilerStateObject * This, | ||
| 569 | REFIID riid, | ||
| 570 | _COM_Outptr_ void **ppvObject); | ||
| 571 | |||
| 572 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 573 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 574 | ID3D12CompilerStateObject * This); | ||
| 575 | |||
| 576 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 577 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 578 | ID3D12CompilerStateObject * This); | ||
| 579 | |||
| 580 | DECLSPEC_XFGVIRT(ID3D12CompilerStateObject, GetCompiler) | ||
| 581 | HRESULT ( STDMETHODCALLTYPE *GetCompiler )( | ||
| 582 | ID3D12CompilerStateObject * This, | ||
| 583 | _In_ REFIID riid, | ||
| 584 | _COM_Outptr_ void **ppCompiler); | ||
| 585 | |||
| 586 | END_INTERFACE | ||
| 587 | } ID3D12CompilerStateObjectVtbl; | ||
| 588 | |||
| 589 | interface ID3D12CompilerStateObject | ||
| 590 | { | ||
| 591 | CONST_VTBL struct ID3D12CompilerStateObjectVtbl *lpVtbl; | ||
| 592 | }; | ||
| 593 | |||
| 594 | |||
| 595 | |||
| 596 | #ifdef COBJMACROS | ||
| 597 | |||
| 598 | |||
| 599 | #define ID3D12CompilerStateObject_QueryInterface(This,riid,ppvObject) \ | ||
| 600 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 601 | |||
| 602 | #define ID3D12CompilerStateObject_AddRef(This) \ | ||
| 603 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 604 | |||
| 605 | #define ID3D12CompilerStateObject_Release(This) \ | ||
| 606 | ( (This)->lpVtbl -> Release(This) ) | ||
| 607 | |||
| 608 | |||
| 609 | #define ID3D12CompilerStateObject_GetCompiler(This,riid,ppCompiler) \ | ||
| 610 | ( (This)->lpVtbl -> GetCompiler(This,riid,ppCompiler) ) | ||
| 611 | |||
| 612 | #endif /* COBJMACROS */ | ||
| 613 | |||
| 614 | |||
| 615 | #endif /* C style interface */ | ||
| 616 | |||
| 617 | |||
| 618 | |||
| 619 | |||
| 620 | #endif /* __ID3D12CompilerStateObject_INTERFACE_DEFINED__ */ | ||
| 621 | |||
| 622 | |||
| 623 | /* interface __MIDL_itf_d3d12compiler_0000_0003 */ | ||
| 624 | /* [local] */ | ||
| 625 | |||
| 626 | typedef struct D3D12_COMPILER_EXISTING_COLLECTION_DESC | ||
| 627 | { | ||
| 628 | ID3D12CompilerStateObject *pExistingCollection; | ||
| 629 | UINT NumExports; | ||
| 630 | _In_reads_(NumExports) const D3D12_EXPORT_DESC *pExports; | ||
| 631 | } D3D12_COMPILER_EXISTING_COLLECTION_DESC; | ||
| 632 | |||
| 633 | |||
| 634 | |||
| 635 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compiler_0000_0003_v0_0_c_ifspec; | ||
| 636 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compiler_0000_0003_v0_0_s_ifspec; | ||
| 637 | |||
| 638 | #ifndef __ID3D12Compiler_INTERFACE_DEFINED__ | ||
| 639 | #define __ID3D12Compiler_INTERFACE_DEFINED__ | ||
| 640 | |||
| 641 | /* interface ID3D12Compiler */ | ||
| 642 | /* [unique][local][object][uuid] */ | ||
| 643 | |||
| 644 | |||
| 645 | EXTERN_C const IID IID_ID3D12Compiler; | ||
| 646 | |||
| 647 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 648 | |||
| 649 | MIDL_INTERFACE("8c403c12-993b-4583-80f1-6824138fa68e") | ||
| 650 | ID3D12Compiler : public ID3D12CompilerFactoryChild | ||
| 651 | { | ||
| 652 | public: | ||
| 653 | virtual HRESULT STDMETHODCALLTYPE CompilePipelineState( | ||
| 654 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 655 | UINT GroupVersion, | ||
| 656 | _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc) = 0; | ||
| 657 | |||
| 658 | virtual HRESULT STDMETHODCALLTYPE CompileStateObject( | ||
| 659 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 660 | UINT GroupVersion, | ||
| 661 | _In_ const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 662 | _In_ REFIID riid, | ||
| 663 | _COM_Outptr_ void **ppCompilerStateObject) = 0; | ||
| 664 | |||
| 665 | virtual HRESULT STDMETHODCALLTYPE CompileAddToStateObject( | ||
| 666 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 667 | UINT GroupVersion, | ||
| 668 | _In_ const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 669 | _In_ ID3D12CompilerStateObject *pCompilerStateObjectToGrowFrom, | ||
| 670 | _In_ REFIID riid, | ||
| 671 | _COM_Outptr_ void **ppNewCompilerStateObject) = 0; | ||
| 672 | |||
| 673 | virtual HRESULT STDMETHODCALLTYPE GetCacheSession( | ||
| 674 | _In_ REFIID riid, | ||
| 675 | _COM_Outptr_ void **ppCompilerCacheSession) = 0; | ||
| 676 | |||
| 677 | }; | ||
| 678 | |||
| 679 | |||
| 680 | #else /* C style interface */ | ||
| 681 | |||
| 682 | typedef struct ID3D12CompilerVtbl | ||
| 683 | { | ||
| 684 | BEGIN_INTERFACE | ||
| 685 | |||
| 686 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 687 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 688 | ID3D12Compiler * This, | ||
| 689 | REFIID riid, | ||
| 690 | _COM_Outptr_ void **ppvObject); | ||
| 691 | |||
| 692 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 693 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 694 | ID3D12Compiler * This); | ||
| 695 | |||
| 696 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 697 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 698 | ID3D12Compiler * This); | ||
| 699 | |||
| 700 | DECLSPEC_XFGVIRT(ID3D12CompilerFactoryChild, GetFactory) | ||
| 701 | HRESULT ( STDMETHODCALLTYPE *GetFactory )( | ||
| 702 | ID3D12Compiler * This, | ||
| 703 | _In_ REFIID riid, | ||
| 704 | _COM_Outptr_ void **ppCompilerFactory); | ||
| 705 | |||
| 706 | DECLSPEC_XFGVIRT(ID3D12Compiler, CompilePipelineState) | ||
| 707 | HRESULT ( STDMETHODCALLTYPE *CompilePipelineState )( | ||
| 708 | ID3D12Compiler * This, | ||
| 709 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 710 | UINT GroupVersion, | ||
| 711 | _In_ const D3D12_PIPELINE_STATE_STREAM_DESC *pDesc); | ||
| 712 | |||
| 713 | DECLSPEC_XFGVIRT(ID3D12Compiler, CompileStateObject) | ||
| 714 | HRESULT ( STDMETHODCALLTYPE *CompileStateObject )( | ||
| 715 | ID3D12Compiler * This, | ||
| 716 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 717 | UINT GroupVersion, | ||
| 718 | _In_ const D3D12_STATE_OBJECT_DESC *pDesc, | ||
| 719 | _In_ REFIID riid, | ||
| 720 | _COM_Outptr_ void **ppCompilerStateObject); | ||
| 721 | |||
| 722 | DECLSPEC_XFGVIRT(ID3D12Compiler, CompileAddToStateObject) | ||
| 723 | HRESULT ( STDMETHODCALLTYPE *CompileAddToStateObject )( | ||
| 724 | ID3D12Compiler * This, | ||
| 725 | _In_ const D3D12_COMPILER_CACHE_GROUP_KEY *pGroupKey, | ||
| 726 | UINT GroupVersion, | ||
| 727 | _In_ const D3D12_STATE_OBJECT_DESC *pAddition, | ||
| 728 | _In_ ID3D12CompilerStateObject *pCompilerStateObjectToGrowFrom, | ||
| 729 | _In_ REFIID riid, | ||
| 730 | _COM_Outptr_ void **ppNewCompilerStateObject); | ||
| 731 | |||
| 732 | DECLSPEC_XFGVIRT(ID3D12Compiler, GetCacheSession) | ||
| 733 | HRESULT ( STDMETHODCALLTYPE *GetCacheSession )( | ||
| 734 | ID3D12Compiler * This, | ||
| 735 | _In_ REFIID riid, | ||
| 736 | _COM_Outptr_ void **ppCompilerCacheSession); | ||
| 737 | |||
| 738 | END_INTERFACE | ||
| 739 | } ID3D12CompilerVtbl; | ||
| 740 | |||
| 741 | interface ID3D12Compiler | ||
| 742 | { | ||
| 743 | CONST_VTBL struct ID3D12CompilerVtbl *lpVtbl; | ||
| 744 | }; | ||
| 745 | |||
| 746 | |||
| 747 | |||
| 748 | #ifdef COBJMACROS | ||
| 749 | |||
| 750 | |||
| 751 | #define ID3D12Compiler_QueryInterface(This,riid,ppvObject) \ | ||
| 752 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 753 | |||
| 754 | #define ID3D12Compiler_AddRef(This) \ | ||
| 755 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 756 | |||
| 757 | #define ID3D12Compiler_Release(This) \ | ||
| 758 | ( (This)->lpVtbl -> Release(This) ) | ||
| 759 | |||
| 760 | |||
| 761 | #define ID3D12Compiler_GetFactory(This,riid,ppCompilerFactory) \ | ||
| 762 | ( (This)->lpVtbl -> GetFactory(This,riid,ppCompilerFactory) ) | ||
| 763 | |||
| 764 | |||
| 765 | #define ID3D12Compiler_CompilePipelineState(This,pGroupKey,GroupVersion,pDesc) \ | ||
| 766 | ( (This)->lpVtbl -> CompilePipelineState(This,pGroupKey,GroupVersion,pDesc) ) | ||
| 767 | |||
| 768 | #define ID3D12Compiler_CompileStateObject(This,pGroupKey,GroupVersion,pDesc,riid,ppCompilerStateObject) \ | ||
| 769 | ( (This)->lpVtbl -> CompileStateObject(This,pGroupKey,GroupVersion,pDesc,riid,ppCompilerStateObject) ) | ||
| 770 | |||
| 771 | #define ID3D12Compiler_CompileAddToStateObject(This,pGroupKey,GroupVersion,pAddition,pCompilerStateObjectToGrowFrom,riid,ppNewCompilerStateObject) \ | ||
| 772 | ( (This)->lpVtbl -> CompileAddToStateObject(This,pGroupKey,GroupVersion,pAddition,pCompilerStateObjectToGrowFrom,riid,ppNewCompilerStateObject) ) | ||
| 773 | |||
| 774 | #define ID3D12Compiler_GetCacheSession(This,riid,ppCompilerCacheSession) \ | ||
| 775 | ( (This)->lpVtbl -> GetCacheSession(This,riid,ppCompilerCacheSession) ) | ||
| 776 | |||
| 777 | #endif /* COBJMACROS */ | ||
| 778 | |||
| 779 | |||
| 780 | #endif /* C style interface */ | ||
| 781 | |||
| 782 | |||
| 783 | |||
| 784 | |||
| 785 | #endif /* __ID3D12Compiler_INTERFACE_DEFINED__ */ | ||
| 786 | |||
| 787 | |||
| 788 | #ifndef __ID3D12CompilerFactory_INTERFACE_DEFINED__ | ||
| 789 | #define __ID3D12CompilerFactory_INTERFACE_DEFINED__ | ||
| 790 | |||
| 791 | /* interface ID3D12CompilerFactory */ | ||
| 792 | /* [unique][local][object][uuid] */ | ||
| 793 | |||
| 794 | |||
| 795 | EXTERN_C const IID IID_ID3D12CompilerFactory; | ||
| 796 | |||
| 797 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 798 | |||
| 799 | MIDL_INTERFACE("c1ee4b59-3f59-47a5-9b4e-a855c858a878") | ||
| 800 | ID3D12CompilerFactory : public IUnknown | ||
| 801 | { | ||
| 802 | public: | ||
| 803 | virtual HRESULT STDMETHODCALLTYPE EnumerateAdapterFamilies( | ||
| 804 | UINT AdapterFamilyIndex, | ||
| 805 | _Out_ D3D12_ADAPTER_FAMILY *pAdapterFamily) = 0; | ||
| 806 | |||
| 807 | virtual HRESULT STDMETHODCALLTYPE EnumerateAdapterFamilyABIVersions( | ||
| 808 | UINT AdapterFamilyIndex, | ||
| 809 | _Inout_ UINT32 *pNumABIVersions, | ||
| 810 | _Out_writes_opt_(*pNumABIVersions) UINT64 *pABIVersions) = 0; | ||
| 811 | |||
| 812 | virtual HRESULT STDMETHODCALLTYPE EnumerateAdapterFamilyCompilerVersion( | ||
| 813 | UINT AdapterFamilyIndex, | ||
| 814 | _Out_ D3D12_VERSION_NUMBER *pCompilerVersion) = 0; | ||
| 815 | |||
| 816 | virtual HRESULT STDMETHODCALLTYPE GetApplicationProfileVersion( | ||
| 817 | _In_ const D3D12_COMPILER_TARGET *pTarget, | ||
| 818 | _In_ const D3D12_APPLICATION_DESC *pApplicationDesc, | ||
| 819 | _Out_ D3D12_VERSION_NUMBER *pApplicationProfileVersion) = 0; | ||
| 820 | |||
| 821 | virtual HRESULT STDMETHODCALLTYPE CreateCompilerCacheSession( | ||
| 822 | _In_reads_(NumPaths) const D3D12_COMPILER_DATABASE_PATH *pPaths, | ||
| 823 | UINT NumPaths, | ||
| 824 | _In_opt_ const D3D12_COMPILER_TARGET *pTarget, | ||
| 825 | _In_opt_ const D3D12_APPLICATION_DESC *pApplicationDesc, | ||
| 826 | _In_ REFIID riid, | ||
| 827 | _COM_Outptr_ void **ppCompilerCacheSession) = 0; | ||
| 828 | |||
| 829 | virtual HRESULT STDMETHODCALLTYPE CreateCompiler( | ||
| 830 | _In_ ID3D12CompilerCacheSession *pCompilerCacheSession, | ||
| 831 | _In_ REFIID riid, | ||
| 832 | _COM_Outptr_ void **ppCompiler) = 0; | ||
| 833 | |||
| 834 | }; | ||
| 835 | |||
| 836 | |||
| 837 | #else /* C style interface */ | ||
| 838 | |||
| 839 | typedef struct ID3D12CompilerFactoryVtbl | ||
| 840 | { | ||
| 841 | BEGIN_INTERFACE | ||
| 842 | |||
| 843 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 844 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 845 | ID3D12CompilerFactory * This, | ||
| 846 | REFIID riid, | ||
| 847 | _COM_Outptr_ void **ppvObject); | ||
| 848 | |||
| 849 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 850 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 851 | ID3D12CompilerFactory * This); | ||
| 852 | |||
| 853 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 854 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 855 | ID3D12CompilerFactory * This); | ||
| 856 | |||
| 857 | DECLSPEC_XFGVIRT(ID3D12CompilerFactory, EnumerateAdapterFamilies) | ||
| 858 | HRESULT ( STDMETHODCALLTYPE *EnumerateAdapterFamilies )( | ||
| 859 | ID3D12CompilerFactory * This, | ||
| 860 | UINT AdapterFamilyIndex, | ||
| 861 | _Out_ D3D12_ADAPTER_FAMILY *pAdapterFamily); | ||
| 862 | |||
| 863 | DECLSPEC_XFGVIRT(ID3D12CompilerFactory, EnumerateAdapterFamilyABIVersions) | ||
| 864 | HRESULT ( STDMETHODCALLTYPE *EnumerateAdapterFamilyABIVersions )( | ||
| 865 | ID3D12CompilerFactory * This, | ||
| 866 | UINT AdapterFamilyIndex, | ||
| 867 | _Inout_ UINT32 *pNumABIVersions, | ||
| 868 | _Out_writes_opt_(*pNumABIVersions) UINT64 *pABIVersions); | ||
| 869 | |||
| 870 | DECLSPEC_XFGVIRT(ID3D12CompilerFactory, EnumerateAdapterFamilyCompilerVersion) | ||
| 871 | HRESULT ( STDMETHODCALLTYPE *EnumerateAdapterFamilyCompilerVersion )( | ||
| 872 | ID3D12CompilerFactory * This, | ||
| 873 | UINT AdapterFamilyIndex, | ||
| 874 | _Out_ D3D12_VERSION_NUMBER *pCompilerVersion); | ||
| 875 | |||
| 876 | DECLSPEC_XFGVIRT(ID3D12CompilerFactory, GetApplicationProfileVersion) | ||
| 877 | HRESULT ( STDMETHODCALLTYPE *GetApplicationProfileVersion )( | ||
| 878 | ID3D12CompilerFactory * This, | ||
| 879 | _In_ const D3D12_COMPILER_TARGET *pTarget, | ||
| 880 | _In_ const D3D12_APPLICATION_DESC *pApplicationDesc, | ||
| 881 | _Out_ D3D12_VERSION_NUMBER *pApplicationProfileVersion); | ||
| 882 | |||
| 883 | DECLSPEC_XFGVIRT(ID3D12CompilerFactory, CreateCompilerCacheSession) | ||
| 884 | HRESULT ( STDMETHODCALLTYPE *CreateCompilerCacheSession )( | ||
| 885 | ID3D12CompilerFactory * This, | ||
| 886 | _In_reads_(NumPaths) const D3D12_COMPILER_DATABASE_PATH *pPaths, | ||
| 887 | UINT NumPaths, | ||
| 888 | _In_opt_ const D3D12_COMPILER_TARGET *pTarget, | ||
| 889 | _In_opt_ const D3D12_APPLICATION_DESC *pApplicationDesc, | ||
| 890 | _In_ REFIID riid, | ||
| 891 | _COM_Outptr_ void **ppCompilerCacheSession); | ||
| 892 | |||
| 893 | DECLSPEC_XFGVIRT(ID3D12CompilerFactory, CreateCompiler) | ||
| 894 | HRESULT ( STDMETHODCALLTYPE *CreateCompiler )( | ||
| 895 | ID3D12CompilerFactory * This, | ||
| 896 | _In_ ID3D12CompilerCacheSession *pCompilerCacheSession, | ||
| 897 | _In_ REFIID riid, | ||
| 898 | _COM_Outptr_ void **ppCompiler); | ||
| 899 | |||
| 900 | END_INTERFACE | ||
| 901 | } ID3D12CompilerFactoryVtbl; | ||
| 902 | |||
| 903 | interface ID3D12CompilerFactory | ||
| 904 | { | ||
| 905 | CONST_VTBL struct ID3D12CompilerFactoryVtbl *lpVtbl; | ||
| 906 | }; | ||
| 907 | |||
| 908 | |||
| 909 | |||
| 910 | #ifdef COBJMACROS | ||
| 911 | |||
| 912 | |||
| 913 | #define ID3D12CompilerFactory_QueryInterface(This,riid,ppvObject) \ | ||
| 914 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 915 | |||
| 916 | #define ID3D12CompilerFactory_AddRef(This) \ | ||
| 917 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 918 | |||
| 919 | #define ID3D12CompilerFactory_Release(This) \ | ||
| 920 | ( (This)->lpVtbl -> Release(This) ) | ||
| 921 | |||
| 922 | |||
| 923 | #define ID3D12CompilerFactory_EnumerateAdapterFamilies(This,AdapterFamilyIndex,pAdapterFamily) \ | ||
| 924 | ( (This)->lpVtbl -> EnumerateAdapterFamilies(This,AdapterFamilyIndex,pAdapterFamily) ) | ||
| 925 | |||
| 926 | #define ID3D12CompilerFactory_EnumerateAdapterFamilyABIVersions(This,AdapterFamilyIndex,pNumABIVersions,pABIVersions) \ | ||
| 927 | ( (This)->lpVtbl -> EnumerateAdapterFamilyABIVersions(This,AdapterFamilyIndex,pNumABIVersions,pABIVersions) ) | ||
| 928 | |||
| 929 | #define ID3D12CompilerFactory_EnumerateAdapterFamilyCompilerVersion(This,AdapterFamilyIndex,pCompilerVersion) \ | ||
| 930 | ( (This)->lpVtbl -> EnumerateAdapterFamilyCompilerVersion(This,AdapterFamilyIndex,pCompilerVersion) ) | ||
| 931 | |||
| 932 | #define ID3D12CompilerFactory_GetApplicationProfileVersion(This,pTarget,pApplicationDesc,pApplicationProfileVersion) \ | ||
| 933 | ( (This)->lpVtbl -> GetApplicationProfileVersion(This,pTarget,pApplicationDesc,pApplicationProfileVersion) ) | ||
| 934 | |||
| 935 | #define ID3D12CompilerFactory_CreateCompilerCacheSession(This,pPaths,NumPaths,pTarget,pApplicationDesc,riid,ppCompilerCacheSession) \ | ||
| 936 | ( (This)->lpVtbl -> CreateCompilerCacheSession(This,pPaths,NumPaths,pTarget,pApplicationDesc,riid,ppCompilerCacheSession) ) | ||
| 937 | |||
| 938 | #define ID3D12CompilerFactory_CreateCompiler(This,pCompilerCacheSession,riid,ppCompiler) \ | ||
| 939 | ( (This)->lpVtbl -> CreateCompiler(This,pCompilerCacheSession,riid,ppCompiler) ) | ||
| 940 | |||
| 941 | #endif /* COBJMACROS */ | ||
| 942 | |||
| 943 | |||
| 944 | #endif /* C style interface */ | ||
| 945 | |||
| 946 | |||
| 947 | |||
| 948 | |||
| 949 | #endif /* __ID3D12CompilerFactory_INTERFACE_DEFINED__ */ | ||
| 950 | |||
| 951 | |||
| 952 | /* interface __MIDL_itf_d3d12compiler_0000_0005 */ | ||
| 953 | /* [local] */ | ||
| 954 | |||
| 955 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ | ||
| 956 | #pragma endregion | ||
| 957 | DEFINE_GUID(IID_ID3D12CompilerFactoryChild,0xe0d06420,0x9f31,0x47e8,0xae,0x9a,0xdd,0x2b,0xa2,0x5a,0xc0,0xbc); | ||
| 958 | DEFINE_GUID(IID_ID3D12CompilerCacheSession,0x5704e5e6,0x054b,0x4738,0xb6,0x61,0x7b,0x0d,0x68,0xd8,0xdd,0xe2); | ||
| 959 | DEFINE_GUID(IID_ID3D12CompilerStateObject,0x5981cca4,0xe8ae,0x44ca,0x9b,0x92,0x4f,0xa8,0x6f,0x5a,0x3a,0x3a); | ||
| 960 | DEFINE_GUID(IID_ID3D12Compiler,0x8c403c12,0x993b,0x4583,0x80,0xf1,0x68,0x24,0x13,0x8f,0xa6,0x8e); | ||
| 961 | DEFINE_GUID(IID_ID3D12CompilerFactory,0xc1ee4b59,0x3f59,0x47a5,0x9b,0x4e,0xa8,0x55,0xc8,0x58,0xa8,0x78); | ||
| 962 | |||
| 963 | |||
| 964 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compiler_0000_0005_v0_0_c_ifspec; | ||
| 965 | extern RPC_IF_HANDLE __MIDL_itf_d3d12compiler_0000_0005_v0_0_s_ifspec; | ||
| 966 | |||
| 967 | /* Additional Prototypes for ALL interfaces */ | ||
| 968 | |||
| 969 | /* end of Additional Prototypes */ | ||
| 970 | |||
| 971 | #ifdef __cplusplus | ||
| 972 | } | ||
| 973 | #endif | ||
| 974 | |||
| 975 | #endif | ||
| 976 | |||
| 977 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.idl b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.idl new file mode 100644 index 0000000..c8ae4b4 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12compiler.idl | |||
| @@ -0,0 +1,291 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | import "oaidl.idl"; | ||
| 8 | import "ocidl.idl"; | ||
| 9 | |||
| 10 | import "dxgicommon.idl"; | ||
| 11 | import "d3d12.idl"; | ||
| 12 | |||
| 13 | cpp_quote("#include <winapifamily.h>") | ||
| 14 | |||
| 15 | #pragma region App Family | ||
| 16 | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") | ||
| 17 | |||
| 18 | |||
| 19 | typedef struct D3D12_ADAPTER_FAMILY | ||
| 20 | { | ||
| 21 | WCHAR szAdapterFamily[128]; | ||
| 22 | } D3D12_ADAPTER_FAMILY; | ||
| 23 | |||
| 24 | cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_COMPILER_CREATE_FACTORY)( ") | ||
| 25 | cpp_quote(" _In_ LPCWSTR pPluginCompilerDllPath,") | ||
| 26 | cpp_quote(" _In_ REFIID riid,") | ||
| 27 | cpp_quote(" _COM_Outptr_opt_ void** ppFactory );") | ||
| 28 | cpp_quote("") | ||
| 29 | cpp_quote("HRESULT WINAPI D3D12CompilerCreateFactory(") | ||
| 30 | cpp_quote(" _In_ LPCWSTR pPluginCompilerDllPath,") | ||
| 31 | cpp_quote(" _In_ REFIID riid, // Expected: ID3D12CompilerFactory") | ||
| 32 | cpp_quote(" _COM_Outptr_opt_ void** ppFactory );") | ||
| 33 | cpp_quote("") | ||
| 34 | cpp_quote("typedef HRESULT (WINAPI* PFN_D3D12_COMPILER_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(") | ||
| 35 | cpp_quote(" _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,") | ||
| 36 | cpp_quote(" _Out_ ID3DBlob** ppBlob,") | ||
| 37 | cpp_quote(" _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);") | ||
| 38 | cpp_quote("") | ||
| 39 | cpp_quote("HRESULT WINAPI D3D12CompilerSerializeVersionedRootSignature(") | ||
| 40 | cpp_quote(" _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignature,") | ||
| 41 | cpp_quote(" _Out_ ID3DBlob** ppBlob,") | ||
| 42 | cpp_quote(" _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob);") | ||
| 43 | cpp_quote("") | ||
| 44 | |||
| 45 | [uuid(e0d06420-9f31-47e8-ae9a-dd2ba25ac0bc), object, local, pointer_default(unique)] | ||
| 46 | interface ID3D12CompilerFactoryChild | ||
| 47 | : IUnknown | ||
| 48 | { | ||
| 49 | HRESULT GetFactory( | ||
| 50 | [annotation("_In_")] REFIID riid, // ID3D12CompilerFactory | ||
| 51 | [annotation("_COM_Outptr_")] void** ppCompilerFactory | ||
| 52 | ); | ||
| 53 | }; | ||
| 54 | |||
| 55 | typedef enum D3D12_COMPILER_VALUE_TYPE | ||
| 56 | { | ||
| 57 | D3D12_COMPILER_VALUE_TYPE_OBJECT_CODE = 0, | ||
| 58 | D3D12_COMPILER_VALUE_TYPE_METADATA = 1, | ||
| 59 | D3D12_COMPILER_VALUE_TYPE_DEBUG_PDB = 2, | ||
| 60 | D3D12_COMPILER_VALUE_TYPE_PERFORMANCE_DATA = 3, | ||
| 61 | |||
| 62 | } D3D12_COMPILER_VALUE_TYPE; | ||
| 63 | |||
| 64 | typedef enum D3D12_COMPILER_VALUE_TYPE_FLAGS | ||
| 65 | { | ||
| 66 | D3D12_COMPILER_VALUE_TYPE_FLAGS_NONE = 0x00000000, | ||
| 67 | D3D12_COMPILER_VALUE_TYPE_FLAGS_OBJECT_CODE = (1 << D3D12_COMPILER_VALUE_TYPE_OBJECT_CODE), | ||
| 68 | D3D12_COMPILER_VALUE_TYPE_FLAGS_METADATA = (1 << D3D12_COMPILER_VALUE_TYPE_METADATA), | ||
| 69 | D3D12_COMPILER_VALUE_TYPE_FLAGS_DEBUG_PDB = (1 << D3D12_COMPILER_VALUE_TYPE_DEBUG_PDB), | ||
| 70 | D3D12_COMPILER_VALUE_TYPE_FLAGS_PERFORMANCE_DATA = (1 << D3D12_COMPILER_VALUE_TYPE_PERFORMANCE_DATA), | ||
| 71 | |||
| 72 | |||
| 73 | } D3D12_COMPILER_VALUE_TYPE_FLAGS; | ||
| 74 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_COMPILER_VALUE_TYPE_FLAGS )") | ||
| 75 | |||
| 76 | typedef struct D3D12_COMPILER_DATABASE_PATH | ||
| 77 | { | ||
| 78 | D3D12_COMPILER_VALUE_TYPE_FLAGS Types; | ||
| 79 | LPCWSTR pPath; | ||
| 80 | } D3D12_COMPILER_DATABASE_PATH; | ||
| 81 | |||
| 82 | typedef struct D3D12_COMPILER_CACHE_GROUP_KEY | ||
| 83 | { | ||
| 84 | [annotation("_Field_size_bytes_full_(KeySize)")] const void* pKey; | ||
| 85 | UINT KeySize; | ||
| 86 | } D3D12_COMPILER_CACHE_GROUP_KEY; | ||
| 87 | |||
| 88 | typedef struct D3D12_COMPILER_CACHE_VALUE_KEY | ||
| 89 | { | ||
| 90 | [annotation("_Field_size_bytes_full_(KeySize)")] const void* pKey; | ||
| 91 | UINT KeySize; | ||
| 92 | } D3D12_COMPILER_CACHE_VALUE_KEY; | ||
| 93 | |||
| 94 | typedef struct D3D12_COMPILER_CACHE_VALUE | ||
| 95 | { | ||
| 96 | [annotation("_Field_size_bytes_full_(ValueSize)")] void* pValue; | ||
| 97 | UINT ValueSize; | ||
| 98 | } D3D12_COMPILER_CACHE_VALUE; | ||
| 99 | |||
| 100 | typedef struct D3D12_COMPILER_CACHE_TYPED_VALUE | ||
| 101 | { | ||
| 102 | D3D12_COMPILER_VALUE_TYPE Type; | ||
| 103 | D3D12_COMPILER_CACHE_VALUE Value; | ||
| 104 | } D3D12_COMPILER_CACHE_TYPED_VALUE; | ||
| 105 | |||
| 106 | typedef struct D3D12_COMPILER_CACHE_CONST_VALUE | ||
| 107 | { | ||
| 108 | [annotation("_Field_size_bytes_full_(ValueSize)")] const void* pValue; | ||
| 109 | UINT ValueSize; | ||
| 110 | } D3D12_COMPILER_CACHE_CONST_VALUE; | ||
| 111 | |||
| 112 | typedef struct D3D12_COMPILER_CACHE_TYPED_CONST_VALUE | ||
| 113 | { | ||
| 114 | D3D12_COMPILER_VALUE_TYPE Type; | ||
| 115 | D3D12_COMPILER_CACHE_CONST_VALUE Value; | ||
| 116 | } D3D12_COMPILER_CACHE_TYPED_CONST_VALUE; | ||
| 117 | |||
| 118 | typedef struct D3D12_COMPILER_TARGET | ||
| 119 | { | ||
| 120 | UINT AdapterFamilyIndex; | ||
| 121 | UINT64 ABIVersion; | ||
| 122 | } D3D12_COMPILER_TARGET; | ||
| 123 | |||
| 124 | typedef void* (__stdcall* D3D12CompilerCacheSessionAllocationFunc) ( | ||
| 125 | SIZE_T SizeInBytes, | ||
| 126 | [annotation("_Inout_opt_")] void* pContext | ||
| 127 | ); | ||
| 128 | |||
| 129 | typedef void(__stdcall* D3D12CompilerCacheSessionGroupValueKeysFunc) ( | ||
| 130 | [annotation("_In_")] const D3D12_COMPILER_CACHE_VALUE_KEY* pValueKey, | ||
| 131 | [annotation("_Inout_opt_")] void* pContext | ||
| 132 | ); | ||
| 133 | |||
| 134 | typedef void(__stdcall* D3D12CompilerCacheSessionGroupValuesFunc) ( | ||
| 135 | UINT ValueKeyIndex, | ||
| 136 | [annotation("_In_")] const D3D12_COMPILER_CACHE_TYPED_CONST_VALUE* pTypedValue, | ||
| 137 | [annotation("_Inout_opt_")] void* pContext | ||
| 138 | ); | ||
| 139 | |||
| 140 | [uuid(5704e5e6-054b-4738-b661-7b0d68d8dde2), object, local, pointer_default(unique)] | ||
| 141 | interface ID3D12CompilerCacheSession | ||
| 142 | : ID3D12CompilerFactoryChild | ||
| 143 | { | ||
| 144 | HRESULT FindGroup( | ||
| 145 | [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, | ||
| 146 | [annotation("_Out_opt_")] UINT* pGroupVersion | ||
| 147 | ); | ||
| 148 | |||
| 149 | HRESULT FindGroupValueKeys( | ||
| 150 | [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, | ||
| 151 | [annotation("_In_opt_")] const UINT* pExpectedGroupVersion, | ||
| 152 | [annotation("_In_")] D3D12CompilerCacheSessionGroupValueKeysFunc CallbackFunc, | ||
| 153 | [annotation("_Inout_opt_")] void* pContext | ||
| 154 | ); | ||
| 155 | |||
| 156 | HRESULT FindGroupValues( | ||
| 157 | [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, | ||
| 158 | [annotation("_In_opt_")] const UINT* pExpectedGroupVersion, | ||
| 159 | D3D12_COMPILER_VALUE_TYPE_FLAGS ValueTypeFlags, | ||
| 160 | [annotation("_In_opt_")] D3D12CompilerCacheSessionGroupValuesFunc CallbackFunc, | ||
| 161 | [annotation("_Inout_opt_")] void* pContext | ||
| 162 | ); | ||
| 163 | |||
| 164 | HRESULT FindValue( | ||
| 165 | [annotation("_In_")] const D3D12_COMPILER_CACHE_VALUE_KEY* pValueKey, | ||
| 166 | [annotation("_Inout_count_(NumTypedValues)")] D3D12_COMPILER_CACHE_TYPED_VALUE* pTypedValues, | ||
| 167 | UINT NumTypedValues, | ||
| 168 | [annotation("_In_opt_")] D3D12CompilerCacheSessionAllocationFunc pCallbackFunc, | ||
| 169 | [annotation("_Inout_opt_")] void* pContext | ||
| 170 | ); | ||
| 171 | |||
| 172 | const D3D12_APPLICATION_DESC* GetApplicationDesc(); | ||
| 173 | |||
| 174 | D3D12_COMPILER_TARGET GetCompilerTarget(); | ||
| 175 | |||
| 176 | D3D12_COMPILER_VALUE_TYPE_FLAGS GetValueTypes(); | ||
| 177 | |||
| 178 | HRESULT StoreGroupValueKeys( | ||
| 179 | [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, | ||
| 180 | UINT GroupVersion, | ||
| 181 | [annotation("_In_reads_(NumValueKeys)")] const D3D12_COMPILER_CACHE_VALUE_KEY* pValueKeys, | ||
| 182 | UINT NumValueKeys | ||
| 183 | ); | ||
| 184 | |||
| 185 | HRESULT StoreValue( | ||
| 186 | [annotation("_In_")] const D3D12_COMPILER_CACHE_VALUE_KEY* pValueKey, | ||
| 187 | [annotation("_In_reads_(NumTypedValues)")] const D3D12_COMPILER_CACHE_TYPED_CONST_VALUE* pTypedValues, | ||
| 188 | UINT NumTypedValues | ||
| 189 | ); | ||
| 190 | }; | ||
| 191 | |||
| 192 | [uuid(5981cca4-e8ae-44ca-9b92-4fa86f5a3a3a), object, local, pointer_default(unique)] | ||
| 193 | interface ID3D12CompilerStateObject | ||
| 194 | : IUnknown | ||
| 195 | { | ||
| 196 | HRESULT GetCompiler( | ||
| 197 | [annotation("_In_")] REFIID riid, // ID3D12Compiler | ||
| 198 | [annotation("_COM_Outptr_")] void** ppCompiler | ||
| 199 | ); | ||
| 200 | }; | ||
| 201 | |||
| 202 | typedef struct D3D12_COMPILER_EXISTING_COLLECTION_DESC | ||
| 203 | { | ||
| 204 | ID3D12CompilerStateObject* pExistingCollection; | ||
| 205 | UINT NumExports; // Optional, if 0 all exports in the library/collection will be surfaced | ||
| 206 | [annotation("_In_reads_(NumExports)")] const D3D12_EXPORT_DESC* pExports; | ||
| 207 | } D3D12_COMPILER_EXISTING_COLLECTION_DESC; | ||
| 208 | |||
| 209 | [uuid(8c403c12-993b-4583-80f1-6824138fa68e), object, local, pointer_default(unique)] | ||
| 210 | interface ID3D12Compiler | ||
| 211 | : ID3D12CompilerFactoryChild | ||
| 212 | { | ||
| 213 | HRESULT CompilePipelineState( | ||
| 214 | [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, | ||
| 215 | UINT GroupVersion, | ||
| 216 | [annotation("_In_")] const D3D12_PIPELINE_STATE_STREAM_DESC* pDesc | ||
| 217 | ); | ||
| 218 | |||
| 219 | HRESULT CompileStateObject( | ||
| 220 | [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, | ||
| 221 | UINT GroupVersion, | ||
| 222 | [annotation("_In_")] const D3D12_STATE_OBJECT_DESC* pDesc, | ||
| 223 | [annotation("_In_")] REFIID riid, // ID3D12CompilerStateObject | ||
| 224 | [annotation("_COM_Outptr_")] void** ppCompilerStateObject | ||
| 225 | ); | ||
| 226 | |||
| 227 | HRESULT CompileAddToStateObject( | ||
| 228 | [annotation("_In_")] const D3D12_COMPILER_CACHE_GROUP_KEY* pGroupKey, | ||
| 229 | UINT GroupVersion, | ||
| 230 | [annotation("_In_")] const D3D12_STATE_OBJECT_DESC* pAddition, | ||
| 231 | [annotation("_In_")] ID3D12CompilerStateObject* pCompilerStateObjectToGrowFrom, | ||
| 232 | [annotation("_In_")] REFIID riid, // ID3D12CompilerStateObject | ||
| 233 | [annotation("_COM_Outptr_")] void** ppNewCompilerStateObject | ||
| 234 | ); | ||
| 235 | |||
| 236 | HRESULT GetCacheSession( | ||
| 237 | [annotation("_In_")] REFIID riid, // ID3D12CompilerCacheSession | ||
| 238 | [annotation("_COM_Outptr_")] void** ppCompilerCacheSession | ||
| 239 | ); | ||
| 240 | }; | ||
| 241 | |||
| 242 | [uuid(c1ee4b59-3f59-47a5-9b4e-a855c858a878), object, local, pointer_default(unique)] | ||
| 243 | interface ID3D12CompilerFactory | ||
| 244 | : IUnknown | ||
| 245 | { | ||
| 246 | HRESULT EnumerateAdapterFamilies( | ||
| 247 | UINT AdapterFamilyIndex, | ||
| 248 | [annotation("_Out_")] D3D12_ADAPTER_FAMILY* pAdapterFamily | ||
| 249 | ); | ||
| 250 | |||
| 251 | HRESULT EnumerateAdapterFamilyABIVersions( | ||
| 252 | UINT AdapterFamilyIndex, | ||
| 253 | [annotation("_Inout_")] UINT32* pNumABIVersions, | ||
| 254 | [annotation("_Out_writes_opt_(*pNumABIVersions)")] UINT64 * pABIVersions | ||
| 255 | ); | ||
| 256 | |||
| 257 | HRESULT EnumerateAdapterFamilyCompilerVersion( | ||
| 258 | UINT AdapterFamilyIndex, | ||
| 259 | [annotation("_Out_")] D3D12_VERSION_NUMBER* pCompilerVersion | ||
| 260 | ); | ||
| 261 | |||
| 262 | HRESULT GetApplicationProfileVersion( | ||
| 263 | [annotation("_In_")] const D3D12_COMPILER_TARGET* pTarget, | ||
| 264 | [annotation("_In_")] const D3D12_APPLICATION_DESC* pApplicationDesc, | ||
| 265 | [annotation("_Out_")] D3D12_VERSION_NUMBER* pApplicationProfileVersion | ||
| 266 | ); | ||
| 267 | |||
| 268 | HRESULT CreateCompilerCacheSession( | ||
| 269 | [annotation("_In_reads_(NumPaths)")] const D3D12_COMPILER_DATABASE_PATH* pPaths, | ||
| 270 | UINT NumPaths, | ||
| 271 | [annotation("_In_opt_")] const D3D12_COMPILER_TARGET* pTarget, | ||
| 272 | [annotation("_In_opt_")] const D3D12_APPLICATION_DESC* pApplicationDesc, | ||
| 273 | [annotation("_In_")] REFIID riid, // ID3D12CompilerCacheSession | ||
| 274 | [annotation("_COM_Outptr_")] void** ppCompilerCacheSession | ||
| 275 | ); | ||
| 276 | |||
| 277 | HRESULT CreateCompiler( | ||
| 278 | [annotation("_In_")] ID3D12CompilerCacheSession* pCompilerCacheSession, | ||
| 279 | [annotation("_In_")] REFIID riid, // ID3D12Compiler | ||
| 280 | [annotation("_COM_Outptr_")] void** ppCompiler | ||
| 281 | ); | ||
| 282 | }; | ||
| 283 | |||
| 284 | cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") | ||
| 285 | #pragma endregion | ||
| 286 | |||
| 287 | cpp_quote( "DEFINE_GUID(IID_ID3D12CompilerFactoryChild,0xe0d06420,0x9f31,0x47e8,0xae,0x9a,0xdd,0x2b,0xa2,0x5a,0xc0,0xbc);" ) | ||
| 288 | cpp_quote( "DEFINE_GUID(IID_ID3D12CompilerCacheSession,0x5704e5e6,0x054b,0x4738,0xb6,0x61,0x7b,0x0d,0x68,0xd8,0xdd,0xe2);" ) | ||
| 289 | cpp_quote( "DEFINE_GUID(IID_ID3D12CompilerStateObject,0x5981cca4,0xe8ae,0x44ca,0x9b,0x92,0x4f,0xa8,0x6f,0x5a,0x3a,0x3a);" ) | ||
| 290 | cpp_quote( "DEFINE_GUID(IID_ID3D12Compiler,0x8c403c12,0x993b,0x4583,0x80,0xf1,0x68,0x24,0x13,0x8f,0xa6,0x8e);" ) | ||
| 291 | cpp_quote( "DEFINE_GUID(IID_ID3D12CompilerFactory,0xc1ee4b59,0x3f59,0x47a5,0x9b,0x4e,0xa8,0x55,0xc8,0x58,0xa8,0x78);" ) | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12sdklayers.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12sdklayers.h new file mode 100644 index 0000000..96c812b --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12sdklayers.h | |||
| @@ -0,0 +1,4280 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | |||
| 8 | |||
| 9 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ | ||
| 10 | |||
| 11 | |||
| 12 | /* File created by MIDL compiler version 8.01.0628 */ | ||
| 13 | |||
| 14 | |||
| 15 | |||
| 16 | /* verify that the <rpcndr.h> version is high enough to compile this file*/ | ||
| 17 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | ||
| 18 | #define __REQUIRED_RPCNDR_H_VERSION__ 500 | ||
| 19 | #endif | ||
| 20 | |||
| 21 | /* verify that the <rpcsal.h> version is high enough to compile this file*/ | ||
| 22 | #ifndef __REQUIRED_RPCSAL_H_VERSION__ | ||
| 23 | #define __REQUIRED_RPCSAL_H_VERSION__ 100 | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include "rpc.h" | ||
| 27 | #include "rpcndr.h" | ||
| 28 | |||
| 29 | #ifndef __RPCNDR_H_VERSION__ | ||
| 30 | #error this stub requires an updated version of <rpcndr.h> | ||
| 31 | #endif /* __RPCNDR_H_VERSION__ */ | ||
| 32 | |||
| 33 | #ifndef COM_NO_WINDOWS_H | ||
| 34 | #include "windows.h" | ||
| 35 | #include "ole2.h" | ||
| 36 | #endif /*COM_NO_WINDOWS_H*/ | ||
| 37 | |||
| 38 | #ifndef __d3d12sdklayers_h__ | ||
| 39 | #define __d3d12sdklayers_h__ | ||
| 40 | |||
| 41 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) | ||
| 42 | #pragma once | ||
| 43 | #endif | ||
| 44 | |||
| 45 | #ifndef DECLSPEC_XFGVIRT | ||
| 46 | #if defined(_CONTROL_FLOW_GUARD_XFG) | ||
| 47 | #define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) | ||
| 48 | #else | ||
| 49 | #define DECLSPEC_XFGVIRT(base, func) | ||
| 50 | #endif | ||
| 51 | #endif | ||
| 52 | |||
| 53 | /* Forward Declarations */ | ||
| 54 | |||
| 55 | #ifndef __ID3D12Debug_FWD_DEFINED__ | ||
| 56 | #define __ID3D12Debug_FWD_DEFINED__ | ||
| 57 | typedef interface ID3D12Debug ID3D12Debug; | ||
| 58 | |||
| 59 | #endif /* __ID3D12Debug_FWD_DEFINED__ */ | ||
| 60 | |||
| 61 | |||
| 62 | #ifndef __ID3D12Debug1_FWD_DEFINED__ | ||
| 63 | #define __ID3D12Debug1_FWD_DEFINED__ | ||
| 64 | typedef interface ID3D12Debug1 ID3D12Debug1; | ||
| 65 | |||
| 66 | #endif /* __ID3D12Debug1_FWD_DEFINED__ */ | ||
| 67 | |||
| 68 | |||
| 69 | #ifndef __ID3D12Debug2_FWD_DEFINED__ | ||
| 70 | #define __ID3D12Debug2_FWD_DEFINED__ | ||
| 71 | typedef interface ID3D12Debug2 ID3D12Debug2; | ||
| 72 | |||
| 73 | #endif /* __ID3D12Debug2_FWD_DEFINED__ */ | ||
| 74 | |||
| 75 | |||
| 76 | #ifndef __ID3D12Debug3_FWD_DEFINED__ | ||
| 77 | #define __ID3D12Debug3_FWD_DEFINED__ | ||
| 78 | typedef interface ID3D12Debug3 ID3D12Debug3; | ||
| 79 | |||
| 80 | #endif /* __ID3D12Debug3_FWD_DEFINED__ */ | ||
| 81 | |||
| 82 | |||
| 83 | #ifndef __ID3D12Debug4_FWD_DEFINED__ | ||
| 84 | #define __ID3D12Debug4_FWD_DEFINED__ | ||
| 85 | typedef interface ID3D12Debug4 ID3D12Debug4; | ||
| 86 | |||
| 87 | #endif /* __ID3D12Debug4_FWD_DEFINED__ */ | ||
| 88 | |||
| 89 | |||
| 90 | #ifndef __ID3D12Debug5_FWD_DEFINED__ | ||
| 91 | #define __ID3D12Debug5_FWD_DEFINED__ | ||
| 92 | typedef interface ID3D12Debug5 ID3D12Debug5; | ||
| 93 | |||
| 94 | #endif /* __ID3D12Debug5_FWD_DEFINED__ */ | ||
| 95 | |||
| 96 | |||
| 97 | #ifndef __ID3D12Debug6_FWD_DEFINED__ | ||
| 98 | #define __ID3D12Debug6_FWD_DEFINED__ | ||
| 99 | typedef interface ID3D12Debug6 ID3D12Debug6; | ||
| 100 | |||
| 101 | #endif /* __ID3D12Debug6_FWD_DEFINED__ */ | ||
| 102 | |||
| 103 | |||
| 104 | #ifndef __ID3D12DebugDevice1_FWD_DEFINED__ | ||
| 105 | #define __ID3D12DebugDevice1_FWD_DEFINED__ | ||
| 106 | typedef interface ID3D12DebugDevice1 ID3D12DebugDevice1; | ||
| 107 | |||
| 108 | #endif /* __ID3D12DebugDevice1_FWD_DEFINED__ */ | ||
| 109 | |||
| 110 | |||
| 111 | #ifndef __ID3D12DebugDevice_FWD_DEFINED__ | ||
| 112 | #define __ID3D12DebugDevice_FWD_DEFINED__ | ||
| 113 | typedef interface ID3D12DebugDevice ID3D12DebugDevice; | ||
| 114 | |||
| 115 | #endif /* __ID3D12DebugDevice_FWD_DEFINED__ */ | ||
| 116 | |||
| 117 | |||
| 118 | #ifndef __ID3D12DebugDevice2_FWD_DEFINED__ | ||
| 119 | #define __ID3D12DebugDevice2_FWD_DEFINED__ | ||
| 120 | typedef interface ID3D12DebugDevice2 ID3D12DebugDevice2; | ||
| 121 | |||
| 122 | #endif /* __ID3D12DebugDevice2_FWD_DEFINED__ */ | ||
| 123 | |||
| 124 | |||
| 125 | #ifndef __ID3D12DebugCommandQueue_FWD_DEFINED__ | ||
| 126 | #define __ID3D12DebugCommandQueue_FWD_DEFINED__ | ||
| 127 | typedef interface ID3D12DebugCommandQueue ID3D12DebugCommandQueue; | ||
| 128 | |||
| 129 | #endif /* __ID3D12DebugCommandQueue_FWD_DEFINED__ */ | ||
| 130 | |||
| 131 | |||
| 132 | #ifndef __ID3D12DebugCommandQueue1_FWD_DEFINED__ | ||
| 133 | #define __ID3D12DebugCommandQueue1_FWD_DEFINED__ | ||
| 134 | typedef interface ID3D12DebugCommandQueue1 ID3D12DebugCommandQueue1; | ||
| 135 | |||
| 136 | #endif /* __ID3D12DebugCommandQueue1_FWD_DEFINED__ */ | ||
| 137 | |||
| 138 | |||
| 139 | #ifndef __ID3D12DebugCommandList1_FWD_DEFINED__ | ||
| 140 | #define __ID3D12DebugCommandList1_FWD_DEFINED__ | ||
| 141 | typedef interface ID3D12DebugCommandList1 ID3D12DebugCommandList1; | ||
| 142 | |||
| 143 | #endif /* __ID3D12DebugCommandList1_FWD_DEFINED__ */ | ||
| 144 | |||
| 145 | |||
| 146 | #ifndef __ID3D12DebugCommandList_FWD_DEFINED__ | ||
| 147 | #define __ID3D12DebugCommandList_FWD_DEFINED__ | ||
| 148 | typedef interface ID3D12DebugCommandList ID3D12DebugCommandList; | ||
| 149 | |||
| 150 | #endif /* __ID3D12DebugCommandList_FWD_DEFINED__ */ | ||
| 151 | |||
| 152 | |||
| 153 | #ifndef __ID3D12DebugCommandList2_FWD_DEFINED__ | ||
| 154 | #define __ID3D12DebugCommandList2_FWD_DEFINED__ | ||
| 155 | typedef interface ID3D12DebugCommandList2 ID3D12DebugCommandList2; | ||
| 156 | |||
| 157 | #endif /* __ID3D12DebugCommandList2_FWD_DEFINED__ */ | ||
| 158 | |||
| 159 | |||
| 160 | #ifndef __ID3D12DebugCommandList3_FWD_DEFINED__ | ||
| 161 | #define __ID3D12DebugCommandList3_FWD_DEFINED__ | ||
| 162 | typedef interface ID3D12DebugCommandList3 ID3D12DebugCommandList3; | ||
| 163 | |||
| 164 | #endif /* __ID3D12DebugCommandList3_FWD_DEFINED__ */ | ||
| 165 | |||
| 166 | |||
| 167 | #ifndef __ID3D12SharingContract_FWD_DEFINED__ | ||
| 168 | #define __ID3D12SharingContract_FWD_DEFINED__ | ||
| 169 | typedef interface ID3D12SharingContract ID3D12SharingContract; | ||
| 170 | |||
| 171 | #endif /* __ID3D12SharingContract_FWD_DEFINED__ */ | ||
| 172 | |||
| 173 | |||
| 174 | #ifndef __ID3D12ManualWriteTrackingResource_FWD_DEFINED__ | ||
| 175 | #define __ID3D12ManualWriteTrackingResource_FWD_DEFINED__ | ||
| 176 | typedef interface ID3D12ManualWriteTrackingResource ID3D12ManualWriteTrackingResource; | ||
| 177 | |||
| 178 | #endif /* __ID3D12ManualWriteTrackingResource_FWD_DEFINED__ */ | ||
| 179 | |||
| 180 | |||
| 181 | #ifndef __ID3D12InfoQueue_FWD_DEFINED__ | ||
| 182 | #define __ID3D12InfoQueue_FWD_DEFINED__ | ||
| 183 | typedef interface ID3D12InfoQueue ID3D12InfoQueue; | ||
| 184 | |||
| 185 | #endif /* __ID3D12InfoQueue_FWD_DEFINED__ */ | ||
| 186 | |||
| 187 | |||
| 188 | #ifndef __ID3D12InfoQueue1_FWD_DEFINED__ | ||
| 189 | #define __ID3D12InfoQueue1_FWD_DEFINED__ | ||
| 190 | typedef interface ID3D12InfoQueue1 ID3D12InfoQueue1; | ||
| 191 | |||
| 192 | #endif /* __ID3D12InfoQueue1_FWD_DEFINED__ */ | ||
| 193 | |||
| 194 | |||
| 195 | /* header files for imported files */ | ||
| 196 | #include "oaidl.h" | ||
| 197 | #include "ocidl.h" | ||
| 198 | #include "d3d12.h" | ||
| 199 | |||
| 200 | #ifdef __cplusplus | ||
| 201 | extern "C"{ | ||
| 202 | #endif | ||
| 203 | |||
| 204 | |||
| 205 | /* interface __MIDL_itf_d3d12sdklayers_0000_0000 */ | ||
| 206 | /* [local] */ | ||
| 207 | |||
| 208 | #include <winapifamily.h> | ||
| 209 | #pragma region App Family | ||
| 210 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) | ||
| 211 | |||
| 212 | |||
| 213 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0000_v0_0_c_ifspec; | ||
| 214 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0000_v0_0_s_ifspec; | ||
| 215 | |||
| 216 | #ifndef __ID3D12Debug_INTERFACE_DEFINED__ | ||
| 217 | #define __ID3D12Debug_INTERFACE_DEFINED__ | ||
| 218 | |||
| 219 | /* interface ID3D12Debug */ | ||
| 220 | /* [unique][local][object][uuid] */ | ||
| 221 | |||
| 222 | |||
| 223 | EXTERN_C const IID IID_ID3D12Debug; | ||
| 224 | |||
| 225 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 226 | |||
| 227 | MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0") | ||
| 228 | ID3D12Debug : public IUnknown | ||
| 229 | { | ||
| 230 | public: | ||
| 231 | virtual void STDMETHODCALLTYPE EnableDebugLayer( void) = 0; | ||
| 232 | |||
| 233 | }; | ||
| 234 | |||
| 235 | |||
| 236 | #else /* C style interface */ | ||
| 237 | |||
| 238 | typedef struct ID3D12DebugVtbl | ||
| 239 | { | ||
| 240 | BEGIN_INTERFACE | ||
| 241 | |||
| 242 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 243 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 244 | ID3D12Debug * This, | ||
| 245 | REFIID riid, | ||
| 246 | _COM_Outptr_ void **ppvObject); | ||
| 247 | |||
| 248 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 249 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 250 | ID3D12Debug * This); | ||
| 251 | |||
| 252 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 253 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 254 | ID3D12Debug * This); | ||
| 255 | |||
| 256 | DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) | ||
| 257 | void ( STDMETHODCALLTYPE *EnableDebugLayer )( | ||
| 258 | ID3D12Debug * This); | ||
| 259 | |||
| 260 | END_INTERFACE | ||
| 261 | } ID3D12DebugVtbl; | ||
| 262 | |||
| 263 | interface ID3D12Debug | ||
| 264 | { | ||
| 265 | CONST_VTBL struct ID3D12DebugVtbl *lpVtbl; | ||
| 266 | }; | ||
| 267 | |||
| 268 | |||
| 269 | |||
| 270 | #ifdef COBJMACROS | ||
| 271 | |||
| 272 | |||
| 273 | #define ID3D12Debug_QueryInterface(This,riid,ppvObject) \ | ||
| 274 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 275 | |||
| 276 | #define ID3D12Debug_AddRef(This) \ | ||
| 277 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 278 | |||
| 279 | #define ID3D12Debug_Release(This) \ | ||
| 280 | ( (This)->lpVtbl -> Release(This) ) | ||
| 281 | |||
| 282 | |||
| 283 | #define ID3D12Debug_EnableDebugLayer(This) \ | ||
| 284 | ( (This)->lpVtbl -> EnableDebugLayer(This) ) | ||
| 285 | |||
| 286 | #endif /* COBJMACROS */ | ||
| 287 | |||
| 288 | |||
| 289 | #endif /* C style interface */ | ||
| 290 | |||
| 291 | |||
| 292 | |||
| 293 | |||
| 294 | #endif /* __ID3D12Debug_INTERFACE_DEFINED__ */ | ||
| 295 | |||
| 296 | |||
| 297 | /* interface __MIDL_itf_d3d12sdklayers_0000_0001 */ | ||
| 298 | /* [local] */ | ||
| 299 | |||
| 300 | typedef | ||
| 301 | enum D3D12_GPU_BASED_VALIDATION_FLAGS | ||
| 302 | { | ||
| 303 | D3D12_GPU_BASED_VALIDATION_FLAGS_NONE = 0, | ||
| 304 | D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING = 0x1 | ||
| 305 | } D3D12_GPU_BASED_VALIDATION_FLAGS; | ||
| 306 | |||
| 307 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS) | ||
| 308 | |||
| 309 | |||
| 310 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0001_v0_0_c_ifspec; | ||
| 311 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0001_v0_0_s_ifspec; | ||
| 312 | |||
| 313 | #ifndef __ID3D12Debug1_INTERFACE_DEFINED__ | ||
| 314 | #define __ID3D12Debug1_INTERFACE_DEFINED__ | ||
| 315 | |||
| 316 | /* interface ID3D12Debug1 */ | ||
| 317 | /* [unique][local][object][uuid] */ | ||
| 318 | |||
| 319 | |||
| 320 | EXTERN_C const IID IID_ID3D12Debug1; | ||
| 321 | |||
| 322 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 323 | |||
| 324 | MIDL_INTERFACE("affaa4ca-63fe-4d8e-b8ad-159000af4304") | ||
| 325 | ID3D12Debug1 : public IUnknown | ||
| 326 | { | ||
| 327 | public: | ||
| 328 | virtual void STDMETHODCALLTYPE EnableDebugLayer( void) = 0; | ||
| 329 | |||
| 330 | virtual void STDMETHODCALLTYPE SetEnableGPUBasedValidation( | ||
| 331 | BOOL Enable) = 0; | ||
| 332 | |||
| 333 | virtual void STDMETHODCALLTYPE SetEnableSynchronizedCommandQueueValidation( | ||
| 334 | BOOL Enable) = 0; | ||
| 335 | |||
| 336 | }; | ||
| 337 | |||
| 338 | |||
| 339 | #else /* C style interface */ | ||
| 340 | |||
| 341 | typedef struct ID3D12Debug1Vtbl | ||
| 342 | { | ||
| 343 | BEGIN_INTERFACE | ||
| 344 | |||
| 345 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 346 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 347 | ID3D12Debug1 * This, | ||
| 348 | REFIID riid, | ||
| 349 | _COM_Outptr_ void **ppvObject); | ||
| 350 | |||
| 351 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 352 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 353 | ID3D12Debug1 * This); | ||
| 354 | |||
| 355 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 356 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 357 | ID3D12Debug1 * This); | ||
| 358 | |||
| 359 | DECLSPEC_XFGVIRT(ID3D12Debug1, EnableDebugLayer) | ||
| 360 | void ( STDMETHODCALLTYPE *EnableDebugLayer )( | ||
| 361 | ID3D12Debug1 * This); | ||
| 362 | |||
| 363 | DECLSPEC_XFGVIRT(ID3D12Debug1, SetEnableGPUBasedValidation) | ||
| 364 | void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( | ||
| 365 | ID3D12Debug1 * This, | ||
| 366 | BOOL Enable); | ||
| 367 | |||
| 368 | DECLSPEC_XFGVIRT(ID3D12Debug1, SetEnableSynchronizedCommandQueueValidation) | ||
| 369 | void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( | ||
| 370 | ID3D12Debug1 * This, | ||
| 371 | BOOL Enable); | ||
| 372 | |||
| 373 | END_INTERFACE | ||
| 374 | } ID3D12Debug1Vtbl; | ||
| 375 | |||
| 376 | interface ID3D12Debug1 | ||
| 377 | { | ||
| 378 | CONST_VTBL struct ID3D12Debug1Vtbl *lpVtbl; | ||
| 379 | }; | ||
| 380 | |||
| 381 | |||
| 382 | |||
| 383 | #ifdef COBJMACROS | ||
| 384 | |||
| 385 | |||
| 386 | #define ID3D12Debug1_QueryInterface(This,riid,ppvObject) \ | ||
| 387 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 388 | |||
| 389 | #define ID3D12Debug1_AddRef(This) \ | ||
| 390 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 391 | |||
| 392 | #define ID3D12Debug1_Release(This) \ | ||
| 393 | ( (This)->lpVtbl -> Release(This) ) | ||
| 394 | |||
| 395 | |||
| 396 | #define ID3D12Debug1_EnableDebugLayer(This) \ | ||
| 397 | ( (This)->lpVtbl -> EnableDebugLayer(This) ) | ||
| 398 | |||
| 399 | #define ID3D12Debug1_SetEnableGPUBasedValidation(This,Enable) \ | ||
| 400 | ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) | ||
| 401 | |||
| 402 | #define ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ | ||
| 403 | ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) | ||
| 404 | |||
| 405 | #endif /* COBJMACROS */ | ||
| 406 | |||
| 407 | |||
| 408 | #endif /* C style interface */ | ||
| 409 | |||
| 410 | |||
| 411 | |||
| 412 | |||
| 413 | #endif /* __ID3D12Debug1_INTERFACE_DEFINED__ */ | ||
| 414 | |||
| 415 | |||
| 416 | #ifndef __ID3D12Debug2_INTERFACE_DEFINED__ | ||
| 417 | #define __ID3D12Debug2_INTERFACE_DEFINED__ | ||
| 418 | |||
| 419 | /* interface ID3D12Debug2 */ | ||
| 420 | /* [unique][local][object][uuid] */ | ||
| 421 | |||
| 422 | |||
| 423 | EXTERN_C const IID IID_ID3D12Debug2; | ||
| 424 | |||
| 425 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 426 | |||
| 427 | MIDL_INTERFACE("93a665c4-a3b2-4e5d-b692-a26ae14e3374") | ||
| 428 | ID3D12Debug2 : public IUnknown | ||
| 429 | { | ||
| 430 | public: | ||
| 431 | virtual void STDMETHODCALLTYPE SetGPUBasedValidationFlags( | ||
| 432 | D3D12_GPU_BASED_VALIDATION_FLAGS Flags) = 0; | ||
| 433 | |||
| 434 | }; | ||
| 435 | |||
| 436 | |||
| 437 | #else /* C style interface */ | ||
| 438 | |||
| 439 | typedef struct ID3D12Debug2Vtbl | ||
| 440 | { | ||
| 441 | BEGIN_INTERFACE | ||
| 442 | |||
| 443 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 444 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 445 | ID3D12Debug2 * This, | ||
| 446 | REFIID riid, | ||
| 447 | _COM_Outptr_ void **ppvObject); | ||
| 448 | |||
| 449 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 450 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 451 | ID3D12Debug2 * This); | ||
| 452 | |||
| 453 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 454 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 455 | ID3D12Debug2 * This); | ||
| 456 | |||
| 457 | DECLSPEC_XFGVIRT(ID3D12Debug2, SetGPUBasedValidationFlags) | ||
| 458 | void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( | ||
| 459 | ID3D12Debug2 * This, | ||
| 460 | D3D12_GPU_BASED_VALIDATION_FLAGS Flags); | ||
| 461 | |||
| 462 | END_INTERFACE | ||
| 463 | } ID3D12Debug2Vtbl; | ||
| 464 | |||
| 465 | interface ID3D12Debug2 | ||
| 466 | { | ||
| 467 | CONST_VTBL struct ID3D12Debug2Vtbl *lpVtbl; | ||
| 468 | }; | ||
| 469 | |||
| 470 | |||
| 471 | |||
| 472 | #ifdef COBJMACROS | ||
| 473 | |||
| 474 | |||
| 475 | #define ID3D12Debug2_QueryInterface(This,riid,ppvObject) \ | ||
| 476 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 477 | |||
| 478 | #define ID3D12Debug2_AddRef(This) \ | ||
| 479 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 480 | |||
| 481 | #define ID3D12Debug2_Release(This) \ | ||
| 482 | ( (This)->lpVtbl -> Release(This) ) | ||
| 483 | |||
| 484 | |||
| 485 | #define ID3D12Debug2_SetGPUBasedValidationFlags(This,Flags) \ | ||
| 486 | ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) | ||
| 487 | |||
| 488 | #endif /* COBJMACROS */ | ||
| 489 | |||
| 490 | |||
| 491 | #endif /* C style interface */ | ||
| 492 | |||
| 493 | |||
| 494 | |||
| 495 | |||
| 496 | #endif /* __ID3D12Debug2_INTERFACE_DEFINED__ */ | ||
| 497 | |||
| 498 | |||
| 499 | #ifndef __ID3D12Debug3_INTERFACE_DEFINED__ | ||
| 500 | #define __ID3D12Debug3_INTERFACE_DEFINED__ | ||
| 501 | |||
| 502 | /* interface ID3D12Debug3 */ | ||
| 503 | /* [unique][local][object][uuid] */ | ||
| 504 | |||
| 505 | |||
| 506 | EXTERN_C const IID IID_ID3D12Debug3; | ||
| 507 | |||
| 508 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 509 | |||
| 510 | MIDL_INTERFACE("5cf4e58f-f671-4ff1-a542-3686e3d153d1") | ||
| 511 | ID3D12Debug3 : public ID3D12Debug | ||
| 512 | { | ||
| 513 | public: | ||
| 514 | virtual void STDMETHODCALLTYPE SetEnableGPUBasedValidation( | ||
| 515 | BOOL Enable) = 0; | ||
| 516 | |||
| 517 | virtual void STDMETHODCALLTYPE SetEnableSynchronizedCommandQueueValidation( | ||
| 518 | BOOL Enable) = 0; | ||
| 519 | |||
| 520 | virtual void STDMETHODCALLTYPE SetGPUBasedValidationFlags( | ||
| 521 | D3D12_GPU_BASED_VALIDATION_FLAGS Flags) = 0; | ||
| 522 | |||
| 523 | }; | ||
| 524 | |||
| 525 | |||
| 526 | #else /* C style interface */ | ||
| 527 | |||
| 528 | typedef struct ID3D12Debug3Vtbl | ||
| 529 | { | ||
| 530 | BEGIN_INTERFACE | ||
| 531 | |||
| 532 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 533 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 534 | ID3D12Debug3 * This, | ||
| 535 | REFIID riid, | ||
| 536 | _COM_Outptr_ void **ppvObject); | ||
| 537 | |||
| 538 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 539 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 540 | ID3D12Debug3 * This); | ||
| 541 | |||
| 542 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 543 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 544 | ID3D12Debug3 * This); | ||
| 545 | |||
| 546 | DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) | ||
| 547 | void ( STDMETHODCALLTYPE *EnableDebugLayer )( | ||
| 548 | ID3D12Debug3 * This); | ||
| 549 | |||
| 550 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableGPUBasedValidation) | ||
| 551 | void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( | ||
| 552 | ID3D12Debug3 * This, | ||
| 553 | BOOL Enable); | ||
| 554 | |||
| 555 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableSynchronizedCommandQueueValidation) | ||
| 556 | void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( | ||
| 557 | ID3D12Debug3 * This, | ||
| 558 | BOOL Enable); | ||
| 559 | |||
| 560 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetGPUBasedValidationFlags) | ||
| 561 | void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( | ||
| 562 | ID3D12Debug3 * This, | ||
| 563 | D3D12_GPU_BASED_VALIDATION_FLAGS Flags); | ||
| 564 | |||
| 565 | END_INTERFACE | ||
| 566 | } ID3D12Debug3Vtbl; | ||
| 567 | |||
| 568 | interface ID3D12Debug3 | ||
| 569 | { | ||
| 570 | CONST_VTBL struct ID3D12Debug3Vtbl *lpVtbl; | ||
| 571 | }; | ||
| 572 | |||
| 573 | |||
| 574 | |||
| 575 | #ifdef COBJMACROS | ||
| 576 | |||
| 577 | |||
| 578 | #define ID3D12Debug3_QueryInterface(This,riid,ppvObject) \ | ||
| 579 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 580 | |||
| 581 | #define ID3D12Debug3_AddRef(This) \ | ||
| 582 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 583 | |||
| 584 | #define ID3D12Debug3_Release(This) \ | ||
| 585 | ( (This)->lpVtbl -> Release(This) ) | ||
| 586 | |||
| 587 | |||
| 588 | #define ID3D12Debug3_EnableDebugLayer(This) \ | ||
| 589 | ( (This)->lpVtbl -> EnableDebugLayer(This) ) | ||
| 590 | |||
| 591 | |||
| 592 | #define ID3D12Debug3_SetEnableGPUBasedValidation(This,Enable) \ | ||
| 593 | ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) | ||
| 594 | |||
| 595 | #define ID3D12Debug3_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ | ||
| 596 | ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) | ||
| 597 | |||
| 598 | #define ID3D12Debug3_SetGPUBasedValidationFlags(This,Flags) \ | ||
| 599 | ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) | ||
| 600 | |||
| 601 | #endif /* COBJMACROS */ | ||
| 602 | |||
| 603 | |||
| 604 | #endif /* C style interface */ | ||
| 605 | |||
| 606 | |||
| 607 | |||
| 608 | |||
| 609 | #endif /* __ID3D12Debug3_INTERFACE_DEFINED__ */ | ||
| 610 | |||
| 611 | |||
| 612 | #ifndef __ID3D12Debug4_INTERFACE_DEFINED__ | ||
| 613 | #define __ID3D12Debug4_INTERFACE_DEFINED__ | ||
| 614 | |||
| 615 | /* interface ID3D12Debug4 */ | ||
| 616 | /* [unique][local][object][uuid] */ | ||
| 617 | |||
| 618 | |||
| 619 | EXTERN_C const IID IID_ID3D12Debug4; | ||
| 620 | |||
| 621 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 622 | |||
| 623 | MIDL_INTERFACE("014b816e-9ec5-4a2f-a845-ffbe441ce13a") | ||
| 624 | ID3D12Debug4 : public ID3D12Debug3 | ||
| 625 | { | ||
| 626 | public: | ||
| 627 | virtual void STDMETHODCALLTYPE DisableDebugLayer( void) = 0; | ||
| 628 | |||
| 629 | }; | ||
| 630 | |||
| 631 | |||
| 632 | #else /* C style interface */ | ||
| 633 | |||
| 634 | typedef struct ID3D12Debug4Vtbl | ||
| 635 | { | ||
| 636 | BEGIN_INTERFACE | ||
| 637 | |||
| 638 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 639 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 640 | ID3D12Debug4 * This, | ||
| 641 | REFIID riid, | ||
| 642 | _COM_Outptr_ void **ppvObject); | ||
| 643 | |||
| 644 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 645 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 646 | ID3D12Debug4 * This); | ||
| 647 | |||
| 648 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 649 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 650 | ID3D12Debug4 * This); | ||
| 651 | |||
| 652 | DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) | ||
| 653 | void ( STDMETHODCALLTYPE *EnableDebugLayer )( | ||
| 654 | ID3D12Debug4 * This); | ||
| 655 | |||
| 656 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableGPUBasedValidation) | ||
| 657 | void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( | ||
| 658 | ID3D12Debug4 * This, | ||
| 659 | BOOL Enable); | ||
| 660 | |||
| 661 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableSynchronizedCommandQueueValidation) | ||
| 662 | void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( | ||
| 663 | ID3D12Debug4 * This, | ||
| 664 | BOOL Enable); | ||
| 665 | |||
| 666 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetGPUBasedValidationFlags) | ||
| 667 | void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( | ||
| 668 | ID3D12Debug4 * This, | ||
| 669 | D3D12_GPU_BASED_VALIDATION_FLAGS Flags); | ||
| 670 | |||
| 671 | DECLSPEC_XFGVIRT(ID3D12Debug4, DisableDebugLayer) | ||
| 672 | void ( STDMETHODCALLTYPE *DisableDebugLayer )( | ||
| 673 | ID3D12Debug4 * This); | ||
| 674 | |||
| 675 | END_INTERFACE | ||
| 676 | } ID3D12Debug4Vtbl; | ||
| 677 | |||
| 678 | interface ID3D12Debug4 | ||
| 679 | { | ||
| 680 | CONST_VTBL struct ID3D12Debug4Vtbl *lpVtbl; | ||
| 681 | }; | ||
| 682 | |||
| 683 | |||
| 684 | |||
| 685 | #ifdef COBJMACROS | ||
| 686 | |||
| 687 | |||
| 688 | #define ID3D12Debug4_QueryInterface(This,riid,ppvObject) \ | ||
| 689 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 690 | |||
| 691 | #define ID3D12Debug4_AddRef(This) \ | ||
| 692 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 693 | |||
| 694 | #define ID3D12Debug4_Release(This) \ | ||
| 695 | ( (This)->lpVtbl -> Release(This) ) | ||
| 696 | |||
| 697 | |||
| 698 | #define ID3D12Debug4_EnableDebugLayer(This) \ | ||
| 699 | ( (This)->lpVtbl -> EnableDebugLayer(This) ) | ||
| 700 | |||
| 701 | |||
| 702 | #define ID3D12Debug4_SetEnableGPUBasedValidation(This,Enable) \ | ||
| 703 | ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) | ||
| 704 | |||
| 705 | #define ID3D12Debug4_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ | ||
| 706 | ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) | ||
| 707 | |||
| 708 | #define ID3D12Debug4_SetGPUBasedValidationFlags(This,Flags) \ | ||
| 709 | ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) | ||
| 710 | |||
| 711 | |||
| 712 | #define ID3D12Debug4_DisableDebugLayer(This) \ | ||
| 713 | ( (This)->lpVtbl -> DisableDebugLayer(This) ) | ||
| 714 | |||
| 715 | #endif /* COBJMACROS */ | ||
| 716 | |||
| 717 | |||
| 718 | #endif /* C style interface */ | ||
| 719 | |||
| 720 | |||
| 721 | |||
| 722 | |||
| 723 | #endif /* __ID3D12Debug4_INTERFACE_DEFINED__ */ | ||
| 724 | |||
| 725 | |||
| 726 | #ifndef __ID3D12Debug5_INTERFACE_DEFINED__ | ||
| 727 | #define __ID3D12Debug5_INTERFACE_DEFINED__ | ||
| 728 | |||
| 729 | /* interface ID3D12Debug5 */ | ||
| 730 | /* [unique][local][object][uuid] */ | ||
| 731 | |||
| 732 | |||
| 733 | EXTERN_C const IID IID_ID3D12Debug5; | ||
| 734 | |||
| 735 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 736 | |||
| 737 | MIDL_INTERFACE("548d6b12-09fa-40e0-9069-5dcd589a52c9") | ||
| 738 | ID3D12Debug5 : public ID3D12Debug4 | ||
| 739 | { | ||
| 740 | public: | ||
| 741 | virtual void STDMETHODCALLTYPE SetEnableAutoName( | ||
| 742 | BOOL Enable) = 0; | ||
| 743 | |||
| 744 | }; | ||
| 745 | |||
| 746 | |||
| 747 | #else /* C style interface */ | ||
| 748 | |||
| 749 | typedef struct ID3D12Debug5Vtbl | ||
| 750 | { | ||
| 751 | BEGIN_INTERFACE | ||
| 752 | |||
| 753 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 754 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 755 | ID3D12Debug5 * This, | ||
| 756 | REFIID riid, | ||
| 757 | _COM_Outptr_ void **ppvObject); | ||
| 758 | |||
| 759 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 760 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 761 | ID3D12Debug5 * This); | ||
| 762 | |||
| 763 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 764 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 765 | ID3D12Debug5 * This); | ||
| 766 | |||
| 767 | DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) | ||
| 768 | void ( STDMETHODCALLTYPE *EnableDebugLayer )( | ||
| 769 | ID3D12Debug5 * This); | ||
| 770 | |||
| 771 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableGPUBasedValidation) | ||
| 772 | void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( | ||
| 773 | ID3D12Debug5 * This, | ||
| 774 | BOOL Enable); | ||
| 775 | |||
| 776 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableSynchronizedCommandQueueValidation) | ||
| 777 | void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( | ||
| 778 | ID3D12Debug5 * This, | ||
| 779 | BOOL Enable); | ||
| 780 | |||
| 781 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetGPUBasedValidationFlags) | ||
| 782 | void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( | ||
| 783 | ID3D12Debug5 * This, | ||
| 784 | D3D12_GPU_BASED_VALIDATION_FLAGS Flags); | ||
| 785 | |||
| 786 | DECLSPEC_XFGVIRT(ID3D12Debug4, DisableDebugLayer) | ||
| 787 | void ( STDMETHODCALLTYPE *DisableDebugLayer )( | ||
| 788 | ID3D12Debug5 * This); | ||
| 789 | |||
| 790 | DECLSPEC_XFGVIRT(ID3D12Debug5, SetEnableAutoName) | ||
| 791 | void ( STDMETHODCALLTYPE *SetEnableAutoName )( | ||
| 792 | ID3D12Debug5 * This, | ||
| 793 | BOOL Enable); | ||
| 794 | |||
| 795 | END_INTERFACE | ||
| 796 | } ID3D12Debug5Vtbl; | ||
| 797 | |||
| 798 | interface ID3D12Debug5 | ||
| 799 | { | ||
| 800 | CONST_VTBL struct ID3D12Debug5Vtbl *lpVtbl; | ||
| 801 | }; | ||
| 802 | |||
| 803 | |||
| 804 | |||
| 805 | #ifdef COBJMACROS | ||
| 806 | |||
| 807 | |||
| 808 | #define ID3D12Debug5_QueryInterface(This,riid,ppvObject) \ | ||
| 809 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 810 | |||
| 811 | #define ID3D12Debug5_AddRef(This) \ | ||
| 812 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 813 | |||
| 814 | #define ID3D12Debug5_Release(This) \ | ||
| 815 | ( (This)->lpVtbl -> Release(This) ) | ||
| 816 | |||
| 817 | |||
| 818 | #define ID3D12Debug5_EnableDebugLayer(This) \ | ||
| 819 | ( (This)->lpVtbl -> EnableDebugLayer(This) ) | ||
| 820 | |||
| 821 | |||
| 822 | #define ID3D12Debug5_SetEnableGPUBasedValidation(This,Enable) \ | ||
| 823 | ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) | ||
| 824 | |||
| 825 | #define ID3D12Debug5_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ | ||
| 826 | ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) | ||
| 827 | |||
| 828 | #define ID3D12Debug5_SetGPUBasedValidationFlags(This,Flags) \ | ||
| 829 | ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) | ||
| 830 | |||
| 831 | |||
| 832 | #define ID3D12Debug5_DisableDebugLayer(This) \ | ||
| 833 | ( (This)->lpVtbl -> DisableDebugLayer(This) ) | ||
| 834 | |||
| 835 | |||
| 836 | #define ID3D12Debug5_SetEnableAutoName(This,Enable) \ | ||
| 837 | ( (This)->lpVtbl -> SetEnableAutoName(This,Enable) ) | ||
| 838 | |||
| 839 | #endif /* COBJMACROS */ | ||
| 840 | |||
| 841 | |||
| 842 | #endif /* C style interface */ | ||
| 843 | |||
| 844 | |||
| 845 | |||
| 846 | |||
| 847 | #endif /* __ID3D12Debug5_INTERFACE_DEFINED__ */ | ||
| 848 | |||
| 849 | |||
| 850 | #ifndef __ID3D12Debug6_INTERFACE_DEFINED__ | ||
| 851 | #define __ID3D12Debug6_INTERFACE_DEFINED__ | ||
| 852 | |||
| 853 | /* interface ID3D12Debug6 */ | ||
| 854 | /* [unique][local][object][uuid] */ | ||
| 855 | |||
| 856 | |||
| 857 | EXTERN_C const IID IID_ID3D12Debug6; | ||
| 858 | |||
| 859 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 860 | |||
| 861 | MIDL_INTERFACE("82a816d6-5d01-4157-97d0-4975463fd1ed") | ||
| 862 | ID3D12Debug6 : public ID3D12Debug5 | ||
| 863 | { | ||
| 864 | public: | ||
| 865 | virtual void STDMETHODCALLTYPE SetForceLegacyBarrierValidation( | ||
| 866 | BOOL Enable) = 0; | ||
| 867 | |||
| 868 | }; | ||
| 869 | |||
| 870 | |||
| 871 | #else /* C style interface */ | ||
| 872 | |||
| 873 | typedef struct ID3D12Debug6Vtbl | ||
| 874 | { | ||
| 875 | BEGIN_INTERFACE | ||
| 876 | |||
| 877 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 878 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 879 | ID3D12Debug6 * This, | ||
| 880 | REFIID riid, | ||
| 881 | _COM_Outptr_ void **ppvObject); | ||
| 882 | |||
| 883 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 884 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 885 | ID3D12Debug6 * This); | ||
| 886 | |||
| 887 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 888 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 889 | ID3D12Debug6 * This); | ||
| 890 | |||
| 891 | DECLSPEC_XFGVIRT(ID3D12Debug, EnableDebugLayer) | ||
| 892 | void ( STDMETHODCALLTYPE *EnableDebugLayer )( | ||
| 893 | ID3D12Debug6 * This); | ||
| 894 | |||
| 895 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableGPUBasedValidation) | ||
| 896 | void ( STDMETHODCALLTYPE *SetEnableGPUBasedValidation )( | ||
| 897 | ID3D12Debug6 * This, | ||
| 898 | BOOL Enable); | ||
| 899 | |||
| 900 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetEnableSynchronizedCommandQueueValidation) | ||
| 901 | void ( STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation )( | ||
| 902 | ID3D12Debug6 * This, | ||
| 903 | BOOL Enable); | ||
| 904 | |||
| 905 | DECLSPEC_XFGVIRT(ID3D12Debug3, SetGPUBasedValidationFlags) | ||
| 906 | void ( STDMETHODCALLTYPE *SetGPUBasedValidationFlags )( | ||
| 907 | ID3D12Debug6 * This, | ||
| 908 | D3D12_GPU_BASED_VALIDATION_FLAGS Flags); | ||
| 909 | |||
| 910 | DECLSPEC_XFGVIRT(ID3D12Debug4, DisableDebugLayer) | ||
| 911 | void ( STDMETHODCALLTYPE *DisableDebugLayer )( | ||
| 912 | ID3D12Debug6 * This); | ||
| 913 | |||
| 914 | DECLSPEC_XFGVIRT(ID3D12Debug5, SetEnableAutoName) | ||
| 915 | void ( STDMETHODCALLTYPE *SetEnableAutoName )( | ||
| 916 | ID3D12Debug6 * This, | ||
| 917 | BOOL Enable); | ||
| 918 | |||
| 919 | DECLSPEC_XFGVIRT(ID3D12Debug6, SetForceLegacyBarrierValidation) | ||
| 920 | void ( STDMETHODCALLTYPE *SetForceLegacyBarrierValidation )( | ||
| 921 | ID3D12Debug6 * This, | ||
| 922 | BOOL Enable); | ||
| 923 | |||
| 924 | END_INTERFACE | ||
| 925 | } ID3D12Debug6Vtbl; | ||
| 926 | |||
| 927 | interface ID3D12Debug6 | ||
| 928 | { | ||
| 929 | CONST_VTBL struct ID3D12Debug6Vtbl *lpVtbl; | ||
| 930 | }; | ||
| 931 | |||
| 932 | |||
| 933 | |||
| 934 | #ifdef COBJMACROS | ||
| 935 | |||
| 936 | |||
| 937 | #define ID3D12Debug6_QueryInterface(This,riid,ppvObject) \ | ||
| 938 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 939 | |||
| 940 | #define ID3D12Debug6_AddRef(This) \ | ||
| 941 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 942 | |||
| 943 | #define ID3D12Debug6_Release(This) \ | ||
| 944 | ( (This)->lpVtbl -> Release(This) ) | ||
| 945 | |||
| 946 | |||
| 947 | #define ID3D12Debug6_EnableDebugLayer(This) \ | ||
| 948 | ( (This)->lpVtbl -> EnableDebugLayer(This) ) | ||
| 949 | |||
| 950 | |||
| 951 | #define ID3D12Debug6_SetEnableGPUBasedValidation(This,Enable) \ | ||
| 952 | ( (This)->lpVtbl -> SetEnableGPUBasedValidation(This,Enable) ) | ||
| 953 | |||
| 954 | #define ID3D12Debug6_SetEnableSynchronizedCommandQueueValidation(This,Enable) \ | ||
| 955 | ( (This)->lpVtbl -> SetEnableSynchronizedCommandQueueValidation(This,Enable) ) | ||
| 956 | |||
| 957 | #define ID3D12Debug6_SetGPUBasedValidationFlags(This,Flags) \ | ||
| 958 | ( (This)->lpVtbl -> SetGPUBasedValidationFlags(This,Flags) ) | ||
| 959 | |||
| 960 | |||
| 961 | #define ID3D12Debug6_DisableDebugLayer(This) \ | ||
| 962 | ( (This)->lpVtbl -> DisableDebugLayer(This) ) | ||
| 963 | |||
| 964 | |||
| 965 | #define ID3D12Debug6_SetEnableAutoName(This,Enable) \ | ||
| 966 | ( (This)->lpVtbl -> SetEnableAutoName(This,Enable) ) | ||
| 967 | |||
| 968 | |||
| 969 | #define ID3D12Debug6_SetForceLegacyBarrierValidation(This,Enable) \ | ||
| 970 | ( (This)->lpVtbl -> SetForceLegacyBarrierValidation(This,Enable) ) | ||
| 971 | |||
| 972 | #endif /* COBJMACROS */ | ||
| 973 | |||
| 974 | |||
| 975 | #endif /* C style interface */ | ||
| 976 | |||
| 977 | |||
| 978 | |||
| 979 | |||
| 980 | #endif /* __ID3D12Debug6_INTERFACE_DEFINED__ */ | ||
| 981 | |||
| 982 | |||
| 983 | /* interface __MIDL_itf_d3d12sdklayers_0000_0007 */ | ||
| 984 | /* [local] */ | ||
| 985 | |||
| 986 | DEFINE_GUID(WKPDID_D3DAutoDebugObjectNameW, 0xd4902e36, 0x757a, 0x4942, 0x95, 0x94, 0xb6, 0x76, 0x9a, 0xfa, 0x43, 0xcd); | ||
| 987 | typedef | ||
| 988 | enum D3D12_RLDO_FLAGS | ||
| 989 | { | ||
| 990 | D3D12_RLDO_NONE = 0, | ||
| 991 | D3D12_RLDO_SUMMARY = 0x1, | ||
| 992 | D3D12_RLDO_DETAIL = 0x2, | ||
| 993 | D3D12_RLDO_IGNORE_INTERNAL = 0x4 | ||
| 994 | } D3D12_RLDO_FLAGS; | ||
| 995 | |||
| 996 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_RLDO_FLAGS) | ||
| 997 | typedef | ||
| 998 | enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE | ||
| 999 | { | ||
| 1000 | D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS = 0, | ||
| 1001 | D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = ( D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS + 1 ) , | ||
| 1002 | D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR = ( D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS + 1 ) , | ||
| 1003 | D3D12_DEBUG_DEVICE_PARAMETER_BYTECODE_VALIDATION_MODE = ( D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR + 1 ) | ||
| 1004 | } D3D12_DEBUG_DEVICE_PARAMETER_TYPE; | ||
| 1005 | |||
| 1006 | typedef | ||
| 1007 | enum D3D12_DEBUG_FEATURE | ||
| 1008 | { | ||
| 1009 | D3D12_DEBUG_FEATURE_NONE = 0, | ||
| 1010 | D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x1, | ||
| 1011 | D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING = 0x2, | ||
| 1012 | D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 0x4, | ||
| 1013 | D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7 = 0x8 | ||
| 1014 | } D3D12_DEBUG_FEATURE; | ||
| 1015 | |||
| 1016 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEBUG_FEATURE) | ||
| 1017 | typedef | ||
| 1018 | enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE | ||
| 1019 | { | ||
| 1020 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE = 0, | ||
| 1021 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE + 1 ) , | ||
| 1022 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY + 1 ) , | ||
| 1023 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION + 1 ) , | ||
| 1024 | NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES = ( D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION + 1 ) | ||
| 1025 | } D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE; | ||
| 1026 | |||
| 1027 | typedef | ||
| 1028 | enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS | ||
| 1029 | { | ||
| 1030 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0, | ||
| 1031 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0x1, | ||
| 1032 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 0x2, | ||
| 1033 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 0x4, | ||
| 1034 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK = 0x7 | ||
| 1035 | } D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS; | ||
| 1036 | |||
| 1037 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS) | ||
| 1038 | typedef struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS | ||
| 1039 | { | ||
| 1040 | UINT MaxMessagesPerCommandList; | ||
| 1041 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode; | ||
| 1042 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags; | ||
| 1043 | } D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS; | ||
| 1044 | |||
| 1045 | typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR | ||
| 1046 | { | ||
| 1047 | FLOAT SlowdownFactor; | ||
| 1048 | } D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; | ||
| 1049 | |||
| 1050 | typedef | ||
| 1051 | enum D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE | ||
| 1052 | { | ||
| 1053 | D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_DISABLED = 0, | ||
| 1054 | D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED = ( D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_DISABLED + 1 ) , | ||
| 1055 | D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_ALL_BYTECODE = ( D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED + 1 ) , | ||
| 1056 | D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE_DEFAULT = D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED | ||
| 1057 | } D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE; | ||
| 1058 | |||
| 1059 | |||
| 1060 | |||
| 1061 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_c_ifspec; | ||
| 1062 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0007_v0_0_s_ifspec; | ||
| 1063 | |||
| 1064 | #ifndef __ID3D12DebugDevice1_INTERFACE_DEFINED__ | ||
| 1065 | #define __ID3D12DebugDevice1_INTERFACE_DEFINED__ | ||
| 1066 | |||
| 1067 | /* interface ID3D12DebugDevice1 */ | ||
| 1068 | /* [unique][local][object][uuid] */ | ||
| 1069 | |||
| 1070 | |||
| 1071 | EXTERN_C const IID IID_ID3D12DebugDevice1; | ||
| 1072 | |||
| 1073 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1074 | |||
| 1075 | MIDL_INTERFACE("a9b71770-d099-4a65-a698-3dee10020f88") | ||
| 1076 | ID3D12DebugDevice1 : public IUnknown | ||
| 1077 | { | ||
| 1078 | public: | ||
| 1079 | virtual HRESULT STDMETHODCALLTYPE SetDebugParameter( | ||
| 1080 | D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, | ||
| 1081 | _In_reads_bytes_(DataSize) const void *pData, | ||
| 1082 | UINT DataSize) = 0; | ||
| 1083 | |||
| 1084 | virtual HRESULT STDMETHODCALLTYPE GetDebugParameter( | ||
| 1085 | D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, | ||
| 1086 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 1087 | UINT DataSize) = 0; | ||
| 1088 | |||
| 1089 | virtual HRESULT STDMETHODCALLTYPE ReportLiveDeviceObjects( | ||
| 1090 | D3D12_RLDO_FLAGS Flags) = 0; | ||
| 1091 | |||
| 1092 | }; | ||
| 1093 | |||
| 1094 | |||
| 1095 | #else /* C style interface */ | ||
| 1096 | |||
| 1097 | typedef struct ID3D12DebugDevice1Vtbl | ||
| 1098 | { | ||
| 1099 | BEGIN_INTERFACE | ||
| 1100 | |||
| 1101 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1102 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1103 | ID3D12DebugDevice1 * This, | ||
| 1104 | REFIID riid, | ||
| 1105 | _COM_Outptr_ void **ppvObject); | ||
| 1106 | |||
| 1107 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1108 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1109 | ID3D12DebugDevice1 * This); | ||
| 1110 | |||
| 1111 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1112 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1113 | ID3D12DebugDevice1 * This); | ||
| 1114 | |||
| 1115 | DECLSPEC_XFGVIRT(ID3D12DebugDevice1, SetDebugParameter) | ||
| 1116 | HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( | ||
| 1117 | ID3D12DebugDevice1 * This, | ||
| 1118 | D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, | ||
| 1119 | _In_reads_bytes_(DataSize) const void *pData, | ||
| 1120 | UINT DataSize); | ||
| 1121 | |||
| 1122 | DECLSPEC_XFGVIRT(ID3D12DebugDevice1, GetDebugParameter) | ||
| 1123 | HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( | ||
| 1124 | ID3D12DebugDevice1 * This, | ||
| 1125 | D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, | ||
| 1126 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 1127 | UINT DataSize); | ||
| 1128 | |||
| 1129 | DECLSPEC_XFGVIRT(ID3D12DebugDevice1, ReportLiveDeviceObjects) | ||
| 1130 | HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )( | ||
| 1131 | ID3D12DebugDevice1 * This, | ||
| 1132 | D3D12_RLDO_FLAGS Flags); | ||
| 1133 | |||
| 1134 | END_INTERFACE | ||
| 1135 | } ID3D12DebugDevice1Vtbl; | ||
| 1136 | |||
| 1137 | interface ID3D12DebugDevice1 | ||
| 1138 | { | ||
| 1139 | CONST_VTBL struct ID3D12DebugDevice1Vtbl *lpVtbl; | ||
| 1140 | }; | ||
| 1141 | |||
| 1142 | |||
| 1143 | |||
| 1144 | #ifdef COBJMACROS | ||
| 1145 | |||
| 1146 | |||
| 1147 | #define ID3D12DebugDevice1_QueryInterface(This,riid,ppvObject) \ | ||
| 1148 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1149 | |||
| 1150 | #define ID3D12DebugDevice1_AddRef(This) \ | ||
| 1151 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1152 | |||
| 1153 | #define ID3D12DebugDevice1_Release(This) \ | ||
| 1154 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1155 | |||
| 1156 | |||
| 1157 | #define ID3D12DebugDevice1_SetDebugParameter(This,Type,pData,DataSize) \ | ||
| 1158 | ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) | ||
| 1159 | |||
| 1160 | #define ID3D12DebugDevice1_GetDebugParameter(This,Type,pData,DataSize) \ | ||
| 1161 | ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) | ||
| 1162 | |||
| 1163 | #define ID3D12DebugDevice1_ReportLiveDeviceObjects(This,Flags) \ | ||
| 1164 | ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) ) | ||
| 1165 | |||
| 1166 | #endif /* COBJMACROS */ | ||
| 1167 | |||
| 1168 | |||
| 1169 | #endif /* C style interface */ | ||
| 1170 | |||
| 1171 | |||
| 1172 | |||
| 1173 | |||
| 1174 | #endif /* __ID3D12DebugDevice1_INTERFACE_DEFINED__ */ | ||
| 1175 | |||
| 1176 | |||
| 1177 | #ifndef __ID3D12DebugDevice_INTERFACE_DEFINED__ | ||
| 1178 | #define __ID3D12DebugDevice_INTERFACE_DEFINED__ | ||
| 1179 | |||
| 1180 | /* interface ID3D12DebugDevice */ | ||
| 1181 | /* [unique][local][object][uuid] */ | ||
| 1182 | |||
| 1183 | |||
| 1184 | EXTERN_C const IID IID_ID3D12DebugDevice; | ||
| 1185 | |||
| 1186 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1187 | |||
| 1188 | MIDL_INTERFACE("3febd6dd-4973-4787-8194-e45f9e28923e") | ||
| 1189 | ID3D12DebugDevice : public IUnknown | ||
| 1190 | { | ||
| 1191 | public: | ||
| 1192 | virtual HRESULT STDMETHODCALLTYPE SetFeatureMask( | ||
| 1193 | D3D12_DEBUG_FEATURE Mask) = 0; | ||
| 1194 | |||
| 1195 | virtual D3D12_DEBUG_FEATURE STDMETHODCALLTYPE GetFeatureMask( void) = 0; | ||
| 1196 | |||
| 1197 | virtual HRESULT STDMETHODCALLTYPE ReportLiveDeviceObjects( | ||
| 1198 | D3D12_RLDO_FLAGS Flags) = 0; | ||
| 1199 | |||
| 1200 | }; | ||
| 1201 | |||
| 1202 | |||
| 1203 | #else /* C style interface */ | ||
| 1204 | |||
| 1205 | typedef struct ID3D12DebugDeviceVtbl | ||
| 1206 | { | ||
| 1207 | BEGIN_INTERFACE | ||
| 1208 | |||
| 1209 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1210 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1211 | ID3D12DebugDevice * This, | ||
| 1212 | REFIID riid, | ||
| 1213 | _COM_Outptr_ void **ppvObject); | ||
| 1214 | |||
| 1215 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1216 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1217 | ID3D12DebugDevice * This); | ||
| 1218 | |||
| 1219 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1220 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1221 | ID3D12DebugDevice * This); | ||
| 1222 | |||
| 1223 | DECLSPEC_XFGVIRT(ID3D12DebugDevice, SetFeatureMask) | ||
| 1224 | HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( | ||
| 1225 | ID3D12DebugDevice * This, | ||
| 1226 | D3D12_DEBUG_FEATURE Mask); | ||
| 1227 | |||
| 1228 | DECLSPEC_XFGVIRT(ID3D12DebugDevice, GetFeatureMask) | ||
| 1229 | D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( | ||
| 1230 | ID3D12DebugDevice * This); | ||
| 1231 | |||
| 1232 | DECLSPEC_XFGVIRT(ID3D12DebugDevice, ReportLiveDeviceObjects) | ||
| 1233 | HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )( | ||
| 1234 | ID3D12DebugDevice * This, | ||
| 1235 | D3D12_RLDO_FLAGS Flags); | ||
| 1236 | |||
| 1237 | END_INTERFACE | ||
| 1238 | } ID3D12DebugDeviceVtbl; | ||
| 1239 | |||
| 1240 | interface ID3D12DebugDevice | ||
| 1241 | { | ||
| 1242 | CONST_VTBL struct ID3D12DebugDeviceVtbl *lpVtbl; | ||
| 1243 | }; | ||
| 1244 | |||
| 1245 | |||
| 1246 | |||
| 1247 | #ifdef COBJMACROS | ||
| 1248 | |||
| 1249 | |||
| 1250 | #define ID3D12DebugDevice_QueryInterface(This,riid,ppvObject) \ | ||
| 1251 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1252 | |||
| 1253 | #define ID3D12DebugDevice_AddRef(This) \ | ||
| 1254 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1255 | |||
| 1256 | #define ID3D12DebugDevice_Release(This) \ | ||
| 1257 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1258 | |||
| 1259 | |||
| 1260 | #define ID3D12DebugDevice_SetFeatureMask(This,Mask) \ | ||
| 1261 | ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) | ||
| 1262 | |||
| 1263 | #define ID3D12DebugDevice_GetFeatureMask(This) \ | ||
| 1264 | ( (This)->lpVtbl -> GetFeatureMask(This) ) | ||
| 1265 | |||
| 1266 | #define ID3D12DebugDevice_ReportLiveDeviceObjects(This,Flags) \ | ||
| 1267 | ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) ) | ||
| 1268 | |||
| 1269 | #endif /* COBJMACROS */ | ||
| 1270 | |||
| 1271 | |||
| 1272 | #endif /* C style interface */ | ||
| 1273 | |||
| 1274 | |||
| 1275 | |||
| 1276 | |||
| 1277 | #endif /* __ID3D12DebugDevice_INTERFACE_DEFINED__ */ | ||
| 1278 | |||
| 1279 | |||
| 1280 | #ifndef __ID3D12DebugDevice2_INTERFACE_DEFINED__ | ||
| 1281 | #define __ID3D12DebugDevice2_INTERFACE_DEFINED__ | ||
| 1282 | |||
| 1283 | /* interface ID3D12DebugDevice2 */ | ||
| 1284 | /* [unique][local][object][uuid] */ | ||
| 1285 | |||
| 1286 | |||
| 1287 | EXTERN_C const IID IID_ID3D12DebugDevice2; | ||
| 1288 | |||
| 1289 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1290 | |||
| 1291 | MIDL_INTERFACE("60eccbc1-378d-4df1-894c-f8ac5ce4d7dd") | ||
| 1292 | ID3D12DebugDevice2 : public ID3D12DebugDevice | ||
| 1293 | { | ||
| 1294 | public: | ||
| 1295 | virtual HRESULT STDMETHODCALLTYPE SetDebugParameter( | ||
| 1296 | D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, | ||
| 1297 | _In_reads_bytes_(DataSize) const void *pData, | ||
| 1298 | UINT DataSize) = 0; | ||
| 1299 | |||
| 1300 | virtual HRESULT STDMETHODCALLTYPE GetDebugParameter( | ||
| 1301 | D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, | ||
| 1302 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 1303 | UINT DataSize) = 0; | ||
| 1304 | |||
| 1305 | }; | ||
| 1306 | |||
| 1307 | |||
| 1308 | #else /* C style interface */ | ||
| 1309 | |||
| 1310 | typedef struct ID3D12DebugDevice2Vtbl | ||
| 1311 | { | ||
| 1312 | BEGIN_INTERFACE | ||
| 1313 | |||
| 1314 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1315 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1316 | ID3D12DebugDevice2 * This, | ||
| 1317 | REFIID riid, | ||
| 1318 | _COM_Outptr_ void **ppvObject); | ||
| 1319 | |||
| 1320 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1321 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1322 | ID3D12DebugDevice2 * This); | ||
| 1323 | |||
| 1324 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1325 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1326 | ID3D12DebugDevice2 * This); | ||
| 1327 | |||
| 1328 | DECLSPEC_XFGVIRT(ID3D12DebugDevice, SetFeatureMask) | ||
| 1329 | HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( | ||
| 1330 | ID3D12DebugDevice2 * This, | ||
| 1331 | D3D12_DEBUG_FEATURE Mask); | ||
| 1332 | |||
| 1333 | DECLSPEC_XFGVIRT(ID3D12DebugDevice, GetFeatureMask) | ||
| 1334 | D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( | ||
| 1335 | ID3D12DebugDevice2 * This); | ||
| 1336 | |||
| 1337 | DECLSPEC_XFGVIRT(ID3D12DebugDevice, ReportLiveDeviceObjects) | ||
| 1338 | HRESULT ( STDMETHODCALLTYPE *ReportLiveDeviceObjects )( | ||
| 1339 | ID3D12DebugDevice2 * This, | ||
| 1340 | D3D12_RLDO_FLAGS Flags); | ||
| 1341 | |||
| 1342 | DECLSPEC_XFGVIRT(ID3D12DebugDevice2, SetDebugParameter) | ||
| 1343 | HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( | ||
| 1344 | ID3D12DebugDevice2 * This, | ||
| 1345 | D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, | ||
| 1346 | _In_reads_bytes_(DataSize) const void *pData, | ||
| 1347 | UINT DataSize); | ||
| 1348 | |||
| 1349 | DECLSPEC_XFGVIRT(ID3D12DebugDevice2, GetDebugParameter) | ||
| 1350 | HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( | ||
| 1351 | ID3D12DebugDevice2 * This, | ||
| 1352 | D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, | ||
| 1353 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 1354 | UINT DataSize); | ||
| 1355 | |||
| 1356 | END_INTERFACE | ||
| 1357 | } ID3D12DebugDevice2Vtbl; | ||
| 1358 | |||
| 1359 | interface ID3D12DebugDevice2 | ||
| 1360 | { | ||
| 1361 | CONST_VTBL struct ID3D12DebugDevice2Vtbl *lpVtbl; | ||
| 1362 | }; | ||
| 1363 | |||
| 1364 | |||
| 1365 | |||
| 1366 | #ifdef COBJMACROS | ||
| 1367 | |||
| 1368 | |||
| 1369 | #define ID3D12DebugDevice2_QueryInterface(This,riid,ppvObject) \ | ||
| 1370 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1371 | |||
| 1372 | #define ID3D12DebugDevice2_AddRef(This) \ | ||
| 1373 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1374 | |||
| 1375 | #define ID3D12DebugDevice2_Release(This) \ | ||
| 1376 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1377 | |||
| 1378 | |||
| 1379 | #define ID3D12DebugDevice2_SetFeatureMask(This,Mask) \ | ||
| 1380 | ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) | ||
| 1381 | |||
| 1382 | #define ID3D12DebugDevice2_GetFeatureMask(This) \ | ||
| 1383 | ( (This)->lpVtbl -> GetFeatureMask(This) ) | ||
| 1384 | |||
| 1385 | #define ID3D12DebugDevice2_ReportLiveDeviceObjects(This,Flags) \ | ||
| 1386 | ( (This)->lpVtbl -> ReportLiveDeviceObjects(This,Flags) ) | ||
| 1387 | |||
| 1388 | |||
| 1389 | #define ID3D12DebugDevice2_SetDebugParameter(This,Type,pData,DataSize) \ | ||
| 1390 | ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) | ||
| 1391 | |||
| 1392 | #define ID3D12DebugDevice2_GetDebugParameter(This,Type,pData,DataSize) \ | ||
| 1393 | ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) | ||
| 1394 | |||
| 1395 | #endif /* COBJMACROS */ | ||
| 1396 | |||
| 1397 | |||
| 1398 | #endif /* C style interface */ | ||
| 1399 | |||
| 1400 | |||
| 1401 | |||
| 1402 | |||
| 1403 | #endif /* __ID3D12DebugDevice2_INTERFACE_DEFINED__ */ | ||
| 1404 | |||
| 1405 | |||
| 1406 | /* interface __MIDL_itf_d3d12sdklayers_0000_0010 */ | ||
| 1407 | /* [local] */ | ||
| 1408 | |||
| 1409 | DEFINE_GUID(DXGI_DEBUG_D3D12, 0xcf59a98c, 0xa950, 0x4326, 0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95); | ||
| 1410 | |||
| 1411 | |||
| 1412 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0010_v0_0_c_ifspec; | ||
| 1413 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0010_v0_0_s_ifspec; | ||
| 1414 | |||
| 1415 | #ifndef __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ | ||
| 1416 | #define __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ | ||
| 1417 | |||
| 1418 | /* interface ID3D12DebugCommandQueue */ | ||
| 1419 | /* [unique][local][object][uuid] */ | ||
| 1420 | |||
| 1421 | |||
| 1422 | EXTERN_C const IID IID_ID3D12DebugCommandQueue; | ||
| 1423 | |||
| 1424 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1425 | |||
| 1426 | MIDL_INTERFACE("09e0bf36-54ac-484f-8847-4baeeab6053a") | ||
| 1427 | ID3D12DebugCommandQueue : public IUnknown | ||
| 1428 | { | ||
| 1429 | public: | ||
| 1430 | virtual BOOL STDMETHODCALLTYPE AssertResourceState( | ||
| 1431 | _In_ ID3D12Resource *pResource, | ||
| 1432 | UINT Subresource, | ||
| 1433 | UINT State) = 0; | ||
| 1434 | |||
| 1435 | }; | ||
| 1436 | |||
| 1437 | |||
| 1438 | #else /* C style interface */ | ||
| 1439 | |||
| 1440 | typedef struct ID3D12DebugCommandQueueVtbl | ||
| 1441 | { | ||
| 1442 | BEGIN_INTERFACE | ||
| 1443 | |||
| 1444 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1445 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1446 | ID3D12DebugCommandQueue * This, | ||
| 1447 | REFIID riid, | ||
| 1448 | _COM_Outptr_ void **ppvObject); | ||
| 1449 | |||
| 1450 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1451 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1452 | ID3D12DebugCommandQueue * This); | ||
| 1453 | |||
| 1454 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1455 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1456 | ID3D12DebugCommandQueue * This); | ||
| 1457 | |||
| 1458 | DECLSPEC_XFGVIRT(ID3D12DebugCommandQueue, AssertResourceState) | ||
| 1459 | BOOL ( STDMETHODCALLTYPE *AssertResourceState )( | ||
| 1460 | ID3D12DebugCommandQueue * This, | ||
| 1461 | _In_ ID3D12Resource *pResource, | ||
| 1462 | UINT Subresource, | ||
| 1463 | UINT State); | ||
| 1464 | |||
| 1465 | END_INTERFACE | ||
| 1466 | } ID3D12DebugCommandQueueVtbl; | ||
| 1467 | |||
| 1468 | interface ID3D12DebugCommandQueue | ||
| 1469 | { | ||
| 1470 | CONST_VTBL struct ID3D12DebugCommandQueueVtbl *lpVtbl; | ||
| 1471 | }; | ||
| 1472 | |||
| 1473 | |||
| 1474 | |||
| 1475 | #ifdef COBJMACROS | ||
| 1476 | |||
| 1477 | |||
| 1478 | #define ID3D12DebugCommandQueue_QueryInterface(This,riid,ppvObject) \ | ||
| 1479 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1480 | |||
| 1481 | #define ID3D12DebugCommandQueue_AddRef(This) \ | ||
| 1482 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1483 | |||
| 1484 | #define ID3D12DebugCommandQueue_Release(This) \ | ||
| 1485 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1486 | |||
| 1487 | |||
| 1488 | #define ID3D12DebugCommandQueue_AssertResourceState(This,pResource,Subresource,State) \ | ||
| 1489 | ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) | ||
| 1490 | |||
| 1491 | #endif /* COBJMACROS */ | ||
| 1492 | |||
| 1493 | |||
| 1494 | #endif /* C style interface */ | ||
| 1495 | |||
| 1496 | |||
| 1497 | |||
| 1498 | |||
| 1499 | #endif /* __ID3D12DebugCommandQueue_INTERFACE_DEFINED__ */ | ||
| 1500 | |||
| 1501 | |||
| 1502 | #ifndef __ID3D12DebugCommandQueue1_INTERFACE_DEFINED__ | ||
| 1503 | #define __ID3D12DebugCommandQueue1_INTERFACE_DEFINED__ | ||
| 1504 | |||
| 1505 | /* interface ID3D12DebugCommandQueue1 */ | ||
| 1506 | /* [unique][local][object][uuid] */ | ||
| 1507 | |||
| 1508 | |||
| 1509 | EXTERN_C const IID IID_ID3D12DebugCommandQueue1; | ||
| 1510 | |||
| 1511 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1512 | |||
| 1513 | MIDL_INTERFACE("16be35a2-bfd6-49f2-bcae-eaae4aff862d") | ||
| 1514 | ID3D12DebugCommandQueue1 : public ID3D12DebugCommandQueue | ||
| 1515 | { | ||
| 1516 | public: | ||
| 1517 | virtual void STDMETHODCALLTYPE AssertResourceAccess( | ||
| 1518 | _In_ ID3D12Resource *pResource, | ||
| 1519 | UINT Subresource, | ||
| 1520 | D3D12_BARRIER_ACCESS Access) = 0; | ||
| 1521 | |||
| 1522 | virtual void STDMETHODCALLTYPE AssertTextureLayout( | ||
| 1523 | _In_ ID3D12Resource *pResource, | ||
| 1524 | UINT Subresource, | ||
| 1525 | D3D12_BARRIER_LAYOUT Layout) = 0; | ||
| 1526 | |||
| 1527 | }; | ||
| 1528 | |||
| 1529 | |||
| 1530 | #else /* C style interface */ | ||
| 1531 | |||
| 1532 | typedef struct ID3D12DebugCommandQueue1Vtbl | ||
| 1533 | { | ||
| 1534 | BEGIN_INTERFACE | ||
| 1535 | |||
| 1536 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1537 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1538 | ID3D12DebugCommandQueue1 * This, | ||
| 1539 | REFIID riid, | ||
| 1540 | _COM_Outptr_ void **ppvObject); | ||
| 1541 | |||
| 1542 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1543 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1544 | ID3D12DebugCommandQueue1 * This); | ||
| 1545 | |||
| 1546 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1547 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1548 | ID3D12DebugCommandQueue1 * This); | ||
| 1549 | |||
| 1550 | DECLSPEC_XFGVIRT(ID3D12DebugCommandQueue, AssertResourceState) | ||
| 1551 | BOOL ( STDMETHODCALLTYPE *AssertResourceState )( | ||
| 1552 | ID3D12DebugCommandQueue1 * This, | ||
| 1553 | _In_ ID3D12Resource *pResource, | ||
| 1554 | UINT Subresource, | ||
| 1555 | UINT State); | ||
| 1556 | |||
| 1557 | DECLSPEC_XFGVIRT(ID3D12DebugCommandQueue1, AssertResourceAccess) | ||
| 1558 | void ( STDMETHODCALLTYPE *AssertResourceAccess )( | ||
| 1559 | ID3D12DebugCommandQueue1 * This, | ||
| 1560 | _In_ ID3D12Resource *pResource, | ||
| 1561 | UINT Subresource, | ||
| 1562 | D3D12_BARRIER_ACCESS Access); | ||
| 1563 | |||
| 1564 | DECLSPEC_XFGVIRT(ID3D12DebugCommandQueue1, AssertTextureLayout) | ||
| 1565 | void ( STDMETHODCALLTYPE *AssertTextureLayout )( | ||
| 1566 | ID3D12DebugCommandQueue1 * This, | ||
| 1567 | _In_ ID3D12Resource *pResource, | ||
| 1568 | UINT Subresource, | ||
| 1569 | D3D12_BARRIER_LAYOUT Layout); | ||
| 1570 | |||
| 1571 | END_INTERFACE | ||
| 1572 | } ID3D12DebugCommandQueue1Vtbl; | ||
| 1573 | |||
| 1574 | interface ID3D12DebugCommandQueue1 | ||
| 1575 | { | ||
| 1576 | CONST_VTBL struct ID3D12DebugCommandQueue1Vtbl *lpVtbl; | ||
| 1577 | }; | ||
| 1578 | |||
| 1579 | |||
| 1580 | |||
| 1581 | #ifdef COBJMACROS | ||
| 1582 | |||
| 1583 | |||
| 1584 | #define ID3D12DebugCommandQueue1_QueryInterface(This,riid,ppvObject) \ | ||
| 1585 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1586 | |||
| 1587 | #define ID3D12DebugCommandQueue1_AddRef(This) \ | ||
| 1588 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1589 | |||
| 1590 | #define ID3D12DebugCommandQueue1_Release(This) \ | ||
| 1591 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1592 | |||
| 1593 | |||
| 1594 | #define ID3D12DebugCommandQueue1_AssertResourceState(This,pResource,Subresource,State) \ | ||
| 1595 | ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) | ||
| 1596 | |||
| 1597 | |||
| 1598 | #define ID3D12DebugCommandQueue1_AssertResourceAccess(This,pResource,Subresource,Access) \ | ||
| 1599 | ( (This)->lpVtbl -> AssertResourceAccess(This,pResource,Subresource,Access) ) | ||
| 1600 | |||
| 1601 | #define ID3D12DebugCommandQueue1_AssertTextureLayout(This,pResource,Subresource,Layout) \ | ||
| 1602 | ( (This)->lpVtbl -> AssertTextureLayout(This,pResource,Subresource,Layout) ) | ||
| 1603 | |||
| 1604 | #endif /* COBJMACROS */ | ||
| 1605 | |||
| 1606 | |||
| 1607 | #endif /* C style interface */ | ||
| 1608 | |||
| 1609 | |||
| 1610 | |||
| 1611 | |||
| 1612 | #endif /* __ID3D12DebugCommandQueue1_INTERFACE_DEFINED__ */ | ||
| 1613 | |||
| 1614 | |||
| 1615 | /* interface __MIDL_itf_d3d12sdklayers_0000_0012 */ | ||
| 1616 | /* [local] */ | ||
| 1617 | |||
| 1618 | typedef | ||
| 1619 | enum D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE | ||
| 1620 | { | ||
| 1621 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS = 0 | ||
| 1622 | } D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE; | ||
| 1623 | |||
| 1624 | typedef struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS | ||
| 1625 | { | ||
| 1626 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE ShaderPatchMode; | ||
| 1627 | } D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS; | ||
| 1628 | |||
| 1629 | |||
| 1630 | |||
| 1631 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0012_v0_0_c_ifspec; | ||
| 1632 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0012_v0_0_s_ifspec; | ||
| 1633 | |||
| 1634 | #ifndef __ID3D12DebugCommandList1_INTERFACE_DEFINED__ | ||
| 1635 | #define __ID3D12DebugCommandList1_INTERFACE_DEFINED__ | ||
| 1636 | |||
| 1637 | /* interface ID3D12DebugCommandList1 */ | ||
| 1638 | /* [unique][local][object][uuid] */ | ||
| 1639 | |||
| 1640 | |||
| 1641 | EXTERN_C const IID IID_ID3D12DebugCommandList1; | ||
| 1642 | |||
| 1643 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1644 | |||
| 1645 | MIDL_INTERFACE("102ca951-311b-4b01-b11f-ecb83e061b37") | ||
| 1646 | ID3D12DebugCommandList1 : public IUnknown | ||
| 1647 | { | ||
| 1648 | public: | ||
| 1649 | virtual BOOL STDMETHODCALLTYPE AssertResourceState( | ||
| 1650 | _In_ ID3D12Resource *pResource, | ||
| 1651 | UINT Subresource, | ||
| 1652 | UINT State) = 0; | ||
| 1653 | |||
| 1654 | virtual HRESULT STDMETHODCALLTYPE SetDebugParameter( | ||
| 1655 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 1656 | _In_reads_bytes_(DataSize) const void *pData, | ||
| 1657 | UINT DataSize) = 0; | ||
| 1658 | |||
| 1659 | virtual HRESULT STDMETHODCALLTYPE GetDebugParameter( | ||
| 1660 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 1661 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 1662 | UINT DataSize) = 0; | ||
| 1663 | |||
| 1664 | }; | ||
| 1665 | |||
| 1666 | |||
| 1667 | #else /* C style interface */ | ||
| 1668 | |||
| 1669 | typedef struct ID3D12DebugCommandList1Vtbl | ||
| 1670 | { | ||
| 1671 | BEGIN_INTERFACE | ||
| 1672 | |||
| 1673 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1674 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1675 | ID3D12DebugCommandList1 * This, | ||
| 1676 | REFIID riid, | ||
| 1677 | _COM_Outptr_ void **ppvObject); | ||
| 1678 | |||
| 1679 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1680 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1681 | ID3D12DebugCommandList1 * This); | ||
| 1682 | |||
| 1683 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1684 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1685 | ID3D12DebugCommandList1 * This); | ||
| 1686 | |||
| 1687 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList1, AssertResourceState) | ||
| 1688 | BOOL ( STDMETHODCALLTYPE *AssertResourceState )( | ||
| 1689 | ID3D12DebugCommandList1 * This, | ||
| 1690 | _In_ ID3D12Resource *pResource, | ||
| 1691 | UINT Subresource, | ||
| 1692 | UINT State); | ||
| 1693 | |||
| 1694 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList1, SetDebugParameter) | ||
| 1695 | HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( | ||
| 1696 | ID3D12DebugCommandList1 * This, | ||
| 1697 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 1698 | _In_reads_bytes_(DataSize) const void *pData, | ||
| 1699 | UINT DataSize); | ||
| 1700 | |||
| 1701 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList1, GetDebugParameter) | ||
| 1702 | HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( | ||
| 1703 | ID3D12DebugCommandList1 * This, | ||
| 1704 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 1705 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 1706 | UINT DataSize); | ||
| 1707 | |||
| 1708 | END_INTERFACE | ||
| 1709 | } ID3D12DebugCommandList1Vtbl; | ||
| 1710 | |||
| 1711 | interface ID3D12DebugCommandList1 | ||
| 1712 | { | ||
| 1713 | CONST_VTBL struct ID3D12DebugCommandList1Vtbl *lpVtbl; | ||
| 1714 | }; | ||
| 1715 | |||
| 1716 | |||
| 1717 | |||
| 1718 | #ifdef COBJMACROS | ||
| 1719 | |||
| 1720 | |||
| 1721 | #define ID3D12DebugCommandList1_QueryInterface(This,riid,ppvObject) \ | ||
| 1722 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1723 | |||
| 1724 | #define ID3D12DebugCommandList1_AddRef(This) \ | ||
| 1725 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1726 | |||
| 1727 | #define ID3D12DebugCommandList1_Release(This) \ | ||
| 1728 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1729 | |||
| 1730 | |||
| 1731 | #define ID3D12DebugCommandList1_AssertResourceState(This,pResource,Subresource,State) \ | ||
| 1732 | ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) | ||
| 1733 | |||
| 1734 | #define ID3D12DebugCommandList1_SetDebugParameter(This,Type,pData,DataSize) \ | ||
| 1735 | ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) | ||
| 1736 | |||
| 1737 | #define ID3D12DebugCommandList1_GetDebugParameter(This,Type,pData,DataSize) \ | ||
| 1738 | ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) | ||
| 1739 | |||
| 1740 | #endif /* COBJMACROS */ | ||
| 1741 | |||
| 1742 | |||
| 1743 | #endif /* C style interface */ | ||
| 1744 | |||
| 1745 | |||
| 1746 | |||
| 1747 | |||
| 1748 | #endif /* __ID3D12DebugCommandList1_INTERFACE_DEFINED__ */ | ||
| 1749 | |||
| 1750 | |||
| 1751 | #ifndef __ID3D12DebugCommandList_INTERFACE_DEFINED__ | ||
| 1752 | #define __ID3D12DebugCommandList_INTERFACE_DEFINED__ | ||
| 1753 | |||
| 1754 | /* interface ID3D12DebugCommandList */ | ||
| 1755 | /* [unique][local][object][uuid] */ | ||
| 1756 | |||
| 1757 | |||
| 1758 | EXTERN_C const IID IID_ID3D12DebugCommandList; | ||
| 1759 | |||
| 1760 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1761 | |||
| 1762 | MIDL_INTERFACE("09e0bf36-54ac-484f-8847-4baeeab6053f") | ||
| 1763 | ID3D12DebugCommandList : public IUnknown | ||
| 1764 | { | ||
| 1765 | public: | ||
| 1766 | virtual BOOL STDMETHODCALLTYPE AssertResourceState( | ||
| 1767 | _In_ ID3D12Resource *pResource, | ||
| 1768 | UINT Subresource, | ||
| 1769 | UINT State) = 0; | ||
| 1770 | |||
| 1771 | virtual HRESULT STDMETHODCALLTYPE SetFeatureMask( | ||
| 1772 | D3D12_DEBUG_FEATURE Mask) = 0; | ||
| 1773 | |||
| 1774 | virtual D3D12_DEBUG_FEATURE STDMETHODCALLTYPE GetFeatureMask( void) = 0; | ||
| 1775 | |||
| 1776 | }; | ||
| 1777 | |||
| 1778 | |||
| 1779 | #else /* C style interface */ | ||
| 1780 | |||
| 1781 | typedef struct ID3D12DebugCommandListVtbl | ||
| 1782 | { | ||
| 1783 | BEGIN_INTERFACE | ||
| 1784 | |||
| 1785 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1786 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1787 | ID3D12DebugCommandList * This, | ||
| 1788 | REFIID riid, | ||
| 1789 | _COM_Outptr_ void **ppvObject); | ||
| 1790 | |||
| 1791 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1792 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1793 | ID3D12DebugCommandList * This); | ||
| 1794 | |||
| 1795 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1796 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1797 | ID3D12DebugCommandList * This); | ||
| 1798 | |||
| 1799 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList, AssertResourceState) | ||
| 1800 | BOOL ( STDMETHODCALLTYPE *AssertResourceState )( | ||
| 1801 | ID3D12DebugCommandList * This, | ||
| 1802 | _In_ ID3D12Resource *pResource, | ||
| 1803 | UINT Subresource, | ||
| 1804 | UINT State); | ||
| 1805 | |||
| 1806 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList, SetFeatureMask) | ||
| 1807 | HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( | ||
| 1808 | ID3D12DebugCommandList * This, | ||
| 1809 | D3D12_DEBUG_FEATURE Mask); | ||
| 1810 | |||
| 1811 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList, GetFeatureMask) | ||
| 1812 | D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( | ||
| 1813 | ID3D12DebugCommandList * This); | ||
| 1814 | |||
| 1815 | END_INTERFACE | ||
| 1816 | } ID3D12DebugCommandListVtbl; | ||
| 1817 | |||
| 1818 | interface ID3D12DebugCommandList | ||
| 1819 | { | ||
| 1820 | CONST_VTBL struct ID3D12DebugCommandListVtbl *lpVtbl; | ||
| 1821 | }; | ||
| 1822 | |||
| 1823 | |||
| 1824 | |||
| 1825 | #ifdef COBJMACROS | ||
| 1826 | |||
| 1827 | |||
| 1828 | #define ID3D12DebugCommandList_QueryInterface(This,riid,ppvObject) \ | ||
| 1829 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1830 | |||
| 1831 | #define ID3D12DebugCommandList_AddRef(This) \ | ||
| 1832 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1833 | |||
| 1834 | #define ID3D12DebugCommandList_Release(This) \ | ||
| 1835 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1836 | |||
| 1837 | |||
| 1838 | #define ID3D12DebugCommandList_AssertResourceState(This,pResource,Subresource,State) \ | ||
| 1839 | ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) | ||
| 1840 | |||
| 1841 | #define ID3D12DebugCommandList_SetFeatureMask(This,Mask) \ | ||
| 1842 | ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) | ||
| 1843 | |||
| 1844 | #define ID3D12DebugCommandList_GetFeatureMask(This) \ | ||
| 1845 | ( (This)->lpVtbl -> GetFeatureMask(This) ) | ||
| 1846 | |||
| 1847 | #endif /* COBJMACROS */ | ||
| 1848 | |||
| 1849 | |||
| 1850 | #endif /* C style interface */ | ||
| 1851 | |||
| 1852 | |||
| 1853 | |||
| 1854 | |||
| 1855 | #endif /* __ID3D12DebugCommandList_INTERFACE_DEFINED__ */ | ||
| 1856 | |||
| 1857 | |||
| 1858 | #ifndef __ID3D12DebugCommandList2_INTERFACE_DEFINED__ | ||
| 1859 | #define __ID3D12DebugCommandList2_INTERFACE_DEFINED__ | ||
| 1860 | |||
| 1861 | /* interface ID3D12DebugCommandList2 */ | ||
| 1862 | /* [unique][local][object][uuid] */ | ||
| 1863 | |||
| 1864 | |||
| 1865 | EXTERN_C const IID IID_ID3D12DebugCommandList2; | ||
| 1866 | |||
| 1867 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1868 | |||
| 1869 | MIDL_INTERFACE("aeb575cf-4e06-48be-ba3b-c450fc96652e") | ||
| 1870 | ID3D12DebugCommandList2 : public ID3D12DebugCommandList | ||
| 1871 | { | ||
| 1872 | public: | ||
| 1873 | virtual HRESULT STDMETHODCALLTYPE SetDebugParameter( | ||
| 1874 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 1875 | _In_reads_bytes_(DataSize) const void *pData, | ||
| 1876 | UINT DataSize) = 0; | ||
| 1877 | |||
| 1878 | virtual HRESULT STDMETHODCALLTYPE GetDebugParameter( | ||
| 1879 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 1880 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 1881 | UINT DataSize) = 0; | ||
| 1882 | |||
| 1883 | }; | ||
| 1884 | |||
| 1885 | |||
| 1886 | #else /* C style interface */ | ||
| 1887 | |||
| 1888 | typedef struct ID3D12DebugCommandList2Vtbl | ||
| 1889 | { | ||
| 1890 | BEGIN_INTERFACE | ||
| 1891 | |||
| 1892 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1893 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1894 | ID3D12DebugCommandList2 * This, | ||
| 1895 | REFIID riid, | ||
| 1896 | _COM_Outptr_ void **ppvObject); | ||
| 1897 | |||
| 1898 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1899 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1900 | ID3D12DebugCommandList2 * This); | ||
| 1901 | |||
| 1902 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1903 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1904 | ID3D12DebugCommandList2 * This); | ||
| 1905 | |||
| 1906 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList, AssertResourceState) | ||
| 1907 | BOOL ( STDMETHODCALLTYPE *AssertResourceState )( | ||
| 1908 | ID3D12DebugCommandList2 * This, | ||
| 1909 | _In_ ID3D12Resource *pResource, | ||
| 1910 | UINT Subresource, | ||
| 1911 | UINT State); | ||
| 1912 | |||
| 1913 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList, SetFeatureMask) | ||
| 1914 | HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( | ||
| 1915 | ID3D12DebugCommandList2 * This, | ||
| 1916 | D3D12_DEBUG_FEATURE Mask); | ||
| 1917 | |||
| 1918 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList, GetFeatureMask) | ||
| 1919 | D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( | ||
| 1920 | ID3D12DebugCommandList2 * This); | ||
| 1921 | |||
| 1922 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList2, SetDebugParameter) | ||
| 1923 | HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( | ||
| 1924 | ID3D12DebugCommandList2 * This, | ||
| 1925 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 1926 | _In_reads_bytes_(DataSize) const void *pData, | ||
| 1927 | UINT DataSize); | ||
| 1928 | |||
| 1929 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList2, GetDebugParameter) | ||
| 1930 | HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( | ||
| 1931 | ID3D12DebugCommandList2 * This, | ||
| 1932 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 1933 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 1934 | UINT DataSize); | ||
| 1935 | |||
| 1936 | END_INTERFACE | ||
| 1937 | } ID3D12DebugCommandList2Vtbl; | ||
| 1938 | |||
| 1939 | interface ID3D12DebugCommandList2 | ||
| 1940 | { | ||
| 1941 | CONST_VTBL struct ID3D12DebugCommandList2Vtbl *lpVtbl; | ||
| 1942 | }; | ||
| 1943 | |||
| 1944 | |||
| 1945 | |||
| 1946 | #ifdef COBJMACROS | ||
| 1947 | |||
| 1948 | |||
| 1949 | #define ID3D12DebugCommandList2_QueryInterface(This,riid,ppvObject) \ | ||
| 1950 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1951 | |||
| 1952 | #define ID3D12DebugCommandList2_AddRef(This) \ | ||
| 1953 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1954 | |||
| 1955 | #define ID3D12DebugCommandList2_Release(This) \ | ||
| 1956 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1957 | |||
| 1958 | |||
| 1959 | #define ID3D12DebugCommandList2_AssertResourceState(This,pResource,Subresource,State) \ | ||
| 1960 | ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) | ||
| 1961 | |||
| 1962 | #define ID3D12DebugCommandList2_SetFeatureMask(This,Mask) \ | ||
| 1963 | ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) | ||
| 1964 | |||
| 1965 | #define ID3D12DebugCommandList2_GetFeatureMask(This) \ | ||
| 1966 | ( (This)->lpVtbl -> GetFeatureMask(This) ) | ||
| 1967 | |||
| 1968 | |||
| 1969 | #define ID3D12DebugCommandList2_SetDebugParameter(This,Type,pData,DataSize) \ | ||
| 1970 | ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) | ||
| 1971 | |||
| 1972 | #define ID3D12DebugCommandList2_GetDebugParameter(This,Type,pData,DataSize) \ | ||
| 1973 | ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) | ||
| 1974 | |||
| 1975 | #endif /* COBJMACROS */ | ||
| 1976 | |||
| 1977 | |||
| 1978 | #endif /* C style interface */ | ||
| 1979 | |||
| 1980 | |||
| 1981 | |||
| 1982 | |||
| 1983 | #endif /* __ID3D12DebugCommandList2_INTERFACE_DEFINED__ */ | ||
| 1984 | |||
| 1985 | |||
| 1986 | #ifndef __ID3D12DebugCommandList3_INTERFACE_DEFINED__ | ||
| 1987 | #define __ID3D12DebugCommandList3_INTERFACE_DEFINED__ | ||
| 1988 | |||
| 1989 | /* interface ID3D12DebugCommandList3 */ | ||
| 1990 | /* [unique][local][object][uuid] */ | ||
| 1991 | |||
| 1992 | |||
| 1993 | EXTERN_C const IID IID_ID3D12DebugCommandList3; | ||
| 1994 | |||
| 1995 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1996 | |||
| 1997 | MIDL_INTERFACE("197d5e15-4d37-4d34-af78-724cd70fdb1f") | ||
| 1998 | ID3D12DebugCommandList3 : public ID3D12DebugCommandList2 | ||
| 1999 | { | ||
| 2000 | public: | ||
| 2001 | virtual void STDMETHODCALLTYPE AssertResourceAccess( | ||
| 2002 | _In_ ID3D12Resource *pResource, | ||
| 2003 | UINT Subresource, | ||
| 2004 | D3D12_BARRIER_ACCESS Access) = 0; | ||
| 2005 | |||
| 2006 | virtual void STDMETHODCALLTYPE AssertTextureLayout( | ||
| 2007 | _In_ ID3D12Resource *pResource, | ||
| 2008 | UINT Subresource, | ||
| 2009 | D3D12_BARRIER_LAYOUT Layout) = 0; | ||
| 2010 | |||
| 2011 | }; | ||
| 2012 | |||
| 2013 | |||
| 2014 | #else /* C style interface */ | ||
| 2015 | |||
| 2016 | typedef struct ID3D12DebugCommandList3Vtbl | ||
| 2017 | { | ||
| 2018 | BEGIN_INTERFACE | ||
| 2019 | |||
| 2020 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 2021 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 2022 | ID3D12DebugCommandList3 * This, | ||
| 2023 | REFIID riid, | ||
| 2024 | _COM_Outptr_ void **ppvObject); | ||
| 2025 | |||
| 2026 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 2027 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 2028 | ID3D12DebugCommandList3 * This); | ||
| 2029 | |||
| 2030 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 2031 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 2032 | ID3D12DebugCommandList3 * This); | ||
| 2033 | |||
| 2034 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList, AssertResourceState) | ||
| 2035 | BOOL ( STDMETHODCALLTYPE *AssertResourceState )( | ||
| 2036 | ID3D12DebugCommandList3 * This, | ||
| 2037 | _In_ ID3D12Resource *pResource, | ||
| 2038 | UINT Subresource, | ||
| 2039 | UINT State); | ||
| 2040 | |||
| 2041 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList, SetFeatureMask) | ||
| 2042 | HRESULT ( STDMETHODCALLTYPE *SetFeatureMask )( | ||
| 2043 | ID3D12DebugCommandList3 * This, | ||
| 2044 | D3D12_DEBUG_FEATURE Mask); | ||
| 2045 | |||
| 2046 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList, GetFeatureMask) | ||
| 2047 | D3D12_DEBUG_FEATURE ( STDMETHODCALLTYPE *GetFeatureMask )( | ||
| 2048 | ID3D12DebugCommandList3 * This); | ||
| 2049 | |||
| 2050 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList2, SetDebugParameter) | ||
| 2051 | HRESULT ( STDMETHODCALLTYPE *SetDebugParameter )( | ||
| 2052 | ID3D12DebugCommandList3 * This, | ||
| 2053 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 2054 | _In_reads_bytes_(DataSize) const void *pData, | ||
| 2055 | UINT DataSize); | ||
| 2056 | |||
| 2057 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList2, GetDebugParameter) | ||
| 2058 | HRESULT ( STDMETHODCALLTYPE *GetDebugParameter )( | ||
| 2059 | ID3D12DebugCommandList3 * This, | ||
| 2060 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, | ||
| 2061 | _Out_writes_bytes_(DataSize) void *pData, | ||
| 2062 | UINT DataSize); | ||
| 2063 | |||
| 2064 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList3, AssertResourceAccess) | ||
| 2065 | void ( STDMETHODCALLTYPE *AssertResourceAccess )( | ||
| 2066 | ID3D12DebugCommandList3 * This, | ||
| 2067 | _In_ ID3D12Resource *pResource, | ||
| 2068 | UINT Subresource, | ||
| 2069 | D3D12_BARRIER_ACCESS Access); | ||
| 2070 | |||
| 2071 | DECLSPEC_XFGVIRT(ID3D12DebugCommandList3, AssertTextureLayout) | ||
| 2072 | void ( STDMETHODCALLTYPE *AssertTextureLayout )( | ||
| 2073 | ID3D12DebugCommandList3 * This, | ||
| 2074 | _In_ ID3D12Resource *pResource, | ||
| 2075 | UINT Subresource, | ||
| 2076 | D3D12_BARRIER_LAYOUT Layout); | ||
| 2077 | |||
| 2078 | END_INTERFACE | ||
| 2079 | } ID3D12DebugCommandList3Vtbl; | ||
| 2080 | |||
| 2081 | interface ID3D12DebugCommandList3 | ||
| 2082 | { | ||
| 2083 | CONST_VTBL struct ID3D12DebugCommandList3Vtbl *lpVtbl; | ||
| 2084 | }; | ||
| 2085 | |||
| 2086 | |||
| 2087 | |||
| 2088 | #ifdef COBJMACROS | ||
| 2089 | |||
| 2090 | |||
| 2091 | #define ID3D12DebugCommandList3_QueryInterface(This,riid,ppvObject) \ | ||
| 2092 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 2093 | |||
| 2094 | #define ID3D12DebugCommandList3_AddRef(This) \ | ||
| 2095 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 2096 | |||
| 2097 | #define ID3D12DebugCommandList3_Release(This) \ | ||
| 2098 | ( (This)->lpVtbl -> Release(This) ) | ||
| 2099 | |||
| 2100 | |||
| 2101 | #define ID3D12DebugCommandList3_AssertResourceState(This,pResource,Subresource,State) \ | ||
| 2102 | ( (This)->lpVtbl -> AssertResourceState(This,pResource,Subresource,State) ) | ||
| 2103 | |||
| 2104 | #define ID3D12DebugCommandList3_SetFeatureMask(This,Mask) \ | ||
| 2105 | ( (This)->lpVtbl -> SetFeatureMask(This,Mask) ) | ||
| 2106 | |||
| 2107 | #define ID3D12DebugCommandList3_GetFeatureMask(This) \ | ||
| 2108 | ( (This)->lpVtbl -> GetFeatureMask(This) ) | ||
| 2109 | |||
| 2110 | |||
| 2111 | #define ID3D12DebugCommandList3_SetDebugParameter(This,Type,pData,DataSize) \ | ||
| 2112 | ( (This)->lpVtbl -> SetDebugParameter(This,Type,pData,DataSize) ) | ||
| 2113 | |||
| 2114 | #define ID3D12DebugCommandList3_GetDebugParameter(This,Type,pData,DataSize) \ | ||
| 2115 | ( (This)->lpVtbl -> GetDebugParameter(This,Type,pData,DataSize) ) | ||
| 2116 | |||
| 2117 | |||
| 2118 | #define ID3D12DebugCommandList3_AssertResourceAccess(This,pResource,Subresource,Access) \ | ||
| 2119 | ( (This)->lpVtbl -> AssertResourceAccess(This,pResource,Subresource,Access) ) | ||
| 2120 | |||
| 2121 | #define ID3D12DebugCommandList3_AssertTextureLayout(This,pResource,Subresource,Layout) \ | ||
| 2122 | ( (This)->lpVtbl -> AssertTextureLayout(This,pResource,Subresource,Layout) ) | ||
| 2123 | |||
| 2124 | #endif /* COBJMACROS */ | ||
| 2125 | |||
| 2126 | |||
| 2127 | #endif /* C style interface */ | ||
| 2128 | |||
| 2129 | |||
| 2130 | |||
| 2131 | |||
| 2132 | #endif /* __ID3D12DebugCommandList3_INTERFACE_DEFINED__ */ | ||
| 2133 | |||
| 2134 | |||
| 2135 | #ifndef __ID3D12SharingContract_INTERFACE_DEFINED__ | ||
| 2136 | #define __ID3D12SharingContract_INTERFACE_DEFINED__ | ||
| 2137 | |||
| 2138 | /* interface ID3D12SharingContract */ | ||
| 2139 | /* [unique][local][object][uuid] */ | ||
| 2140 | |||
| 2141 | |||
| 2142 | EXTERN_C const IID IID_ID3D12SharingContract; | ||
| 2143 | |||
| 2144 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 2145 | |||
| 2146 | MIDL_INTERFACE("0adf7d52-929c-4e61-addb-ffed30de66ef") | ||
| 2147 | ID3D12SharingContract : public IUnknown | ||
| 2148 | { | ||
| 2149 | public: | ||
| 2150 | virtual void STDMETHODCALLTYPE Present( | ||
| 2151 | _In_ ID3D12Resource *pResource, | ||
| 2152 | UINT Subresource, | ||
| 2153 | _In_ HWND window) = 0; | ||
| 2154 | |||
| 2155 | virtual void STDMETHODCALLTYPE SharedFenceSignal( | ||
| 2156 | _In_ ID3D12Fence *pFence, | ||
| 2157 | UINT64 FenceValue) = 0; | ||
| 2158 | |||
| 2159 | virtual void STDMETHODCALLTYPE BeginCapturableWork( | ||
| 2160 | _In_ REFGUID guid) = 0; | ||
| 2161 | |||
| 2162 | virtual void STDMETHODCALLTYPE EndCapturableWork( | ||
| 2163 | _In_ REFGUID guid) = 0; | ||
| 2164 | |||
| 2165 | }; | ||
| 2166 | |||
| 2167 | |||
| 2168 | #else /* C style interface */ | ||
| 2169 | |||
| 2170 | typedef struct ID3D12SharingContractVtbl | ||
| 2171 | { | ||
| 2172 | BEGIN_INTERFACE | ||
| 2173 | |||
| 2174 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 2175 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 2176 | ID3D12SharingContract * This, | ||
| 2177 | REFIID riid, | ||
| 2178 | _COM_Outptr_ void **ppvObject); | ||
| 2179 | |||
| 2180 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 2181 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 2182 | ID3D12SharingContract * This); | ||
| 2183 | |||
| 2184 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 2185 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 2186 | ID3D12SharingContract * This); | ||
| 2187 | |||
| 2188 | DECLSPEC_XFGVIRT(ID3D12SharingContract, Present) | ||
| 2189 | void ( STDMETHODCALLTYPE *Present )( | ||
| 2190 | ID3D12SharingContract * This, | ||
| 2191 | _In_ ID3D12Resource *pResource, | ||
| 2192 | UINT Subresource, | ||
| 2193 | _In_ HWND window); | ||
| 2194 | |||
| 2195 | DECLSPEC_XFGVIRT(ID3D12SharingContract, SharedFenceSignal) | ||
| 2196 | void ( STDMETHODCALLTYPE *SharedFenceSignal )( | ||
| 2197 | ID3D12SharingContract * This, | ||
| 2198 | _In_ ID3D12Fence *pFence, | ||
| 2199 | UINT64 FenceValue); | ||
| 2200 | |||
| 2201 | DECLSPEC_XFGVIRT(ID3D12SharingContract, BeginCapturableWork) | ||
| 2202 | void ( STDMETHODCALLTYPE *BeginCapturableWork )( | ||
| 2203 | ID3D12SharingContract * This, | ||
| 2204 | _In_ REFGUID guid); | ||
| 2205 | |||
| 2206 | DECLSPEC_XFGVIRT(ID3D12SharingContract, EndCapturableWork) | ||
| 2207 | void ( STDMETHODCALLTYPE *EndCapturableWork )( | ||
| 2208 | ID3D12SharingContract * This, | ||
| 2209 | _In_ REFGUID guid); | ||
| 2210 | |||
| 2211 | END_INTERFACE | ||
| 2212 | } ID3D12SharingContractVtbl; | ||
| 2213 | |||
| 2214 | interface ID3D12SharingContract | ||
| 2215 | { | ||
| 2216 | CONST_VTBL struct ID3D12SharingContractVtbl *lpVtbl; | ||
| 2217 | }; | ||
| 2218 | |||
| 2219 | |||
| 2220 | |||
| 2221 | #ifdef COBJMACROS | ||
| 2222 | |||
| 2223 | |||
| 2224 | #define ID3D12SharingContract_QueryInterface(This,riid,ppvObject) \ | ||
| 2225 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 2226 | |||
| 2227 | #define ID3D12SharingContract_AddRef(This) \ | ||
| 2228 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 2229 | |||
| 2230 | #define ID3D12SharingContract_Release(This) \ | ||
| 2231 | ( (This)->lpVtbl -> Release(This) ) | ||
| 2232 | |||
| 2233 | |||
| 2234 | #define ID3D12SharingContract_Present(This,pResource,Subresource,window) \ | ||
| 2235 | ( (This)->lpVtbl -> Present(This,pResource,Subresource,window) ) | ||
| 2236 | |||
| 2237 | #define ID3D12SharingContract_SharedFenceSignal(This,pFence,FenceValue) \ | ||
| 2238 | ( (This)->lpVtbl -> SharedFenceSignal(This,pFence,FenceValue) ) | ||
| 2239 | |||
| 2240 | #define ID3D12SharingContract_BeginCapturableWork(This,guid) \ | ||
| 2241 | ( (This)->lpVtbl -> BeginCapturableWork(This,guid) ) | ||
| 2242 | |||
| 2243 | #define ID3D12SharingContract_EndCapturableWork(This,guid) \ | ||
| 2244 | ( (This)->lpVtbl -> EndCapturableWork(This,guid) ) | ||
| 2245 | |||
| 2246 | #endif /* COBJMACROS */ | ||
| 2247 | |||
| 2248 | |||
| 2249 | #endif /* C style interface */ | ||
| 2250 | |||
| 2251 | |||
| 2252 | |||
| 2253 | |||
| 2254 | #endif /* __ID3D12SharingContract_INTERFACE_DEFINED__ */ | ||
| 2255 | |||
| 2256 | |||
| 2257 | #ifndef __ID3D12ManualWriteTrackingResource_INTERFACE_DEFINED__ | ||
| 2258 | #define __ID3D12ManualWriteTrackingResource_INTERFACE_DEFINED__ | ||
| 2259 | |||
| 2260 | /* interface ID3D12ManualWriteTrackingResource */ | ||
| 2261 | /* [unique][local][object][uuid] */ | ||
| 2262 | |||
| 2263 | |||
| 2264 | EXTERN_C const IID IID_ID3D12ManualWriteTrackingResource; | ||
| 2265 | |||
| 2266 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 2267 | |||
| 2268 | MIDL_INTERFACE("86ca3b85-49ad-4b6e-aed5-eddb18540f41") | ||
| 2269 | ID3D12ManualWriteTrackingResource : public IUnknown | ||
| 2270 | { | ||
| 2271 | public: | ||
| 2272 | virtual void STDMETHODCALLTYPE TrackWrite( | ||
| 2273 | UINT Subresource, | ||
| 2274 | _In_opt_ const D3D12_RANGE *pWrittenRange) = 0; | ||
| 2275 | |||
| 2276 | }; | ||
| 2277 | |||
| 2278 | |||
| 2279 | #else /* C style interface */ | ||
| 2280 | |||
| 2281 | typedef struct ID3D12ManualWriteTrackingResourceVtbl | ||
| 2282 | { | ||
| 2283 | BEGIN_INTERFACE | ||
| 2284 | |||
| 2285 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 2286 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 2287 | ID3D12ManualWriteTrackingResource * This, | ||
| 2288 | REFIID riid, | ||
| 2289 | _COM_Outptr_ void **ppvObject); | ||
| 2290 | |||
| 2291 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 2292 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 2293 | ID3D12ManualWriteTrackingResource * This); | ||
| 2294 | |||
| 2295 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 2296 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 2297 | ID3D12ManualWriteTrackingResource * This); | ||
| 2298 | |||
| 2299 | DECLSPEC_XFGVIRT(ID3D12ManualWriteTrackingResource, TrackWrite) | ||
| 2300 | void ( STDMETHODCALLTYPE *TrackWrite )( | ||
| 2301 | ID3D12ManualWriteTrackingResource * This, | ||
| 2302 | UINT Subresource, | ||
| 2303 | _In_opt_ const D3D12_RANGE *pWrittenRange); | ||
| 2304 | |||
| 2305 | END_INTERFACE | ||
| 2306 | } ID3D12ManualWriteTrackingResourceVtbl; | ||
| 2307 | |||
| 2308 | interface ID3D12ManualWriteTrackingResource | ||
| 2309 | { | ||
| 2310 | CONST_VTBL struct ID3D12ManualWriteTrackingResourceVtbl *lpVtbl; | ||
| 2311 | }; | ||
| 2312 | |||
| 2313 | |||
| 2314 | |||
| 2315 | #ifdef COBJMACROS | ||
| 2316 | |||
| 2317 | |||
| 2318 | #define ID3D12ManualWriteTrackingResource_QueryInterface(This,riid,ppvObject) \ | ||
| 2319 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 2320 | |||
| 2321 | #define ID3D12ManualWriteTrackingResource_AddRef(This) \ | ||
| 2322 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 2323 | |||
| 2324 | #define ID3D12ManualWriteTrackingResource_Release(This) \ | ||
| 2325 | ( (This)->lpVtbl -> Release(This) ) | ||
| 2326 | |||
| 2327 | |||
| 2328 | #define ID3D12ManualWriteTrackingResource_TrackWrite(This,Subresource,pWrittenRange) \ | ||
| 2329 | ( (This)->lpVtbl -> TrackWrite(This,Subresource,pWrittenRange) ) | ||
| 2330 | |||
| 2331 | #endif /* COBJMACROS */ | ||
| 2332 | |||
| 2333 | |||
| 2334 | #endif /* C style interface */ | ||
| 2335 | |||
| 2336 | |||
| 2337 | |||
| 2338 | |||
| 2339 | #endif /* __ID3D12ManualWriteTrackingResource_INTERFACE_DEFINED__ */ | ||
| 2340 | |||
| 2341 | |||
| 2342 | /* interface __MIDL_itf_d3d12sdklayers_0000_0018 */ | ||
| 2343 | /* [local] */ | ||
| 2344 | |||
| 2345 | typedef | ||
| 2346 | enum D3D12_MESSAGE_CATEGORY | ||
| 2347 | { | ||
| 2348 | D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0, | ||
| 2349 | D3D12_MESSAGE_CATEGORY_MISCELLANEOUS = ( D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED + 1 ) , | ||
| 2350 | D3D12_MESSAGE_CATEGORY_INITIALIZATION = ( D3D12_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) , | ||
| 2351 | D3D12_MESSAGE_CATEGORY_CLEANUP = ( D3D12_MESSAGE_CATEGORY_INITIALIZATION + 1 ) , | ||
| 2352 | D3D12_MESSAGE_CATEGORY_COMPILATION = ( D3D12_MESSAGE_CATEGORY_CLEANUP + 1 ) , | ||
| 2353 | D3D12_MESSAGE_CATEGORY_STATE_CREATION = ( D3D12_MESSAGE_CATEGORY_COMPILATION + 1 ) , | ||
| 2354 | D3D12_MESSAGE_CATEGORY_STATE_SETTING = ( D3D12_MESSAGE_CATEGORY_STATE_CREATION + 1 ) , | ||
| 2355 | D3D12_MESSAGE_CATEGORY_STATE_GETTING = ( D3D12_MESSAGE_CATEGORY_STATE_SETTING + 1 ) , | ||
| 2356 | D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = ( D3D12_MESSAGE_CATEGORY_STATE_GETTING + 1 ) , | ||
| 2357 | D3D12_MESSAGE_CATEGORY_EXECUTION = ( D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 ) , | ||
| 2358 | D3D12_MESSAGE_CATEGORY_SHADER = ( D3D12_MESSAGE_CATEGORY_EXECUTION + 1 ) | ||
| 2359 | } D3D12_MESSAGE_CATEGORY; | ||
| 2360 | |||
| 2361 | typedef | ||
| 2362 | enum D3D12_MESSAGE_SEVERITY | ||
| 2363 | { | ||
| 2364 | D3D12_MESSAGE_SEVERITY_CORRUPTION = 0, | ||
| 2365 | D3D12_MESSAGE_SEVERITY_ERROR = ( D3D12_MESSAGE_SEVERITY_CORRUPTION + 1 ) , | ||
| 2366 | D3D12_MESSAGE_SEVERITY_WARNING = ( D3D12_MESSAGE_SEVERITY_ERROR + 1 ) , | ||
| 2367 | D3D12_MESSAGE_SEVERITY_INFO = ( D3D12_MESSAGE_SEVERITY_WARNING + 1 ) , | ||
| 2368 | D3D12_MESSAGE_SEVERITY_MESSAGE = ( D3D12_MESSAGE_SEVERITY_INFO + 1 ) | ||
| 2369 | } D3D12_MESSAGE_SEVERITY; | ||
| 2370 | |||
| 2371 | typedef | ||
| 2372 | enum D3D12_MESSAGE_ID | ||
| 2373 | { | ||
| 2374 | D3D12_MESSAGE_ID_UNKNOWN = 0, | ||
| 2375 | D3D12_MESSAGE_ID_STRING_FROM_APPLICATION = 1, | ||
| 2376 | D3D12_MESSAGE_ID_CORRUPTED_THIS = 2, | ||
| 2377 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 = 3, | ||
| 2378 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 = 4, | ||
| 2379 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 = 5, | ||
| 2380 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 = 6, | ||
| 2381 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 = 7, | ||
| 2382 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 = 8, | ||
| 2383 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 = 9, | ||
| 2384 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 = 10, | ||
| 2385 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 = 11, | ||
| 2386 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 = 12, | ||
| 2387 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 = 13, | ||
| 2388 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 = 14, | ||
| 2389 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 = 15, | ||
| 2390 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 = 16, | ||
| 2391 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 = 17, | ||
| 2392 | D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING = 18, | ||
| 2393 | D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 19, | ||
| 2394 | D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 20, | ||
| 2395 | D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 21, | ||
| 2396 | D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 24, | ||
| 2397 | D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 25, | ||
| 2398 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 26, | ||
| 2399 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 27, | ||
| 2400 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 28, | ||
| 2401 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = 29, | ||
| 2402 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = 30, | ||
| 2403 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 31, | ||
| 2404 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 32, | ||
| 2405 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 35, | ||
| 2406 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 36, | ||
| 2407 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 37, | ||
| 2408 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 38, | ||
| 2409 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = 39, | ||
| 2410 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE = 40, | ||
| 2411 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 41, | ||
| 2412 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 42, | ||
| 2413 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 45, | ||
| 2414 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 46, | ||
| 2415 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 47, | ||
| 2416 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 48, | ||
| 2417 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 49, | ||
| 2418 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 52, | ||
| 2419 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 53, | ||
| 2420 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 54, | ||
| 2421 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 55, | ||
| 2422 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 56, | ||
| 2423 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 57, | ||
| 2424 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 58, | ||
| 2425 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 59, | ||
| 2426 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 60, | ||
| 2427 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 61, | ||
| 2428 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 62, | ||
| 2429 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 63, | ||
| 2430 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 64, | ||
| 2431 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 65, | ||
| 2432 | D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 66, | ||
| 2433 | D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 67, | ||
| 2434 | D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 68, | ||
| 2435 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 69, | ||
| 2436 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 70, | ||
| 2437 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 71, | ||
| 2438 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 72, | ||
| 2439 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 73, | ||
| 2440 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 74, | ||
| 2441 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 75, | ||
| 2442 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 76, | ||
| 2443 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 79, | ||
| 2444 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 80, | ||
| 2445 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 81, | ||
| 2446 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 82, | ||
| 2447 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 83, | ||
| 2448 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 84, | ||
| 2449 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 85, | ||
| 2450 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 86, | ||
| 2451 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 87, | ||
| 2452 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 88, | ||
| 2453 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 89, | ||
| 2454 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 90, | ||
| 2455 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 91, | ||
| 2456 | D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 92, | ||
| 2457 | D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 93, | ||
| 2458 | D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 94, | ||
| 2459 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 95, | ||
| 2460 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 96, | ||
| 2461 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 97, | ||
| 2462 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 98, | ||
| 2463 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 100, | ||
| 2464 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 101, | ||
| 2465 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 102, | ||
| 2466 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 103, | ||
| 2467 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 104, | ||
| 2468 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 105, | ||
| 2469 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 106, | ||
| 2470 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 107, | ||
| 2471 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 108, | ||
| 2472 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 109, | ||
| 2473 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 111, | ||
| 2474 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 112, | ||
| 2475 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 113, | ||
| 2476 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 114, | ||
| 2477 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 115, | ||
| 2478 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 116, | ||
| 2479 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 117, | ||
| 2480 | D3D12_MESSAGE_ID_GET_PROGRAM_IDENTIFIER_ERROR = 118, | ||
| 2481 | D3D12_MESSAGE_ID_GET_WORK_GRAPH_PROPERTIES_ERROR = 119, | ||
| 2482 | D3D12_MESSAGE_ID_SET_PROGRAM_ERROR = 120, | ||
| 2483 | D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 135, | ||
| 2484 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = 200, | ||
| 2485 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = 201, | ||
| 2486 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = 202, | ||
| 2487 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 209, | ||
| 2488 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = 210, | ||
| 2489 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = 211, | ||
| 2490 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = 212, | ||
| 2491 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = 213, | ||
| 2492 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = 219, | ||
| 2493 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = 221, | ||
| 2494 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = 222, | ||
| 2495 | D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 232, | ||
| 2496 | D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 233, | ||
| 2497 | D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 234, | ||
| 2498 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 239, | ||
| 2499 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 240, | ||
| 2500 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 245, | ||
| 2501 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 253, | ||
| 2502 | D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 255, | ||
| 2503 | D3D12_MESSAGE_ID_LIVE_DEVICE = 274, | ||
| 2504 | D3D12_MESSAGE_ID_LIVE_SWAPCHAIN = 275, | ||
| 2505 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 276, | ||
| 2506 | D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 277, | ||
| 2507 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 278, | ||
| 2508 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 280, | ||
| 2509 | D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 283, | ||
| 2510 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 284, | ||
| 2511 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 285, | ||
| 2512 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 286, | ||
| 2513 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 287, | ||
| 2514 | D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = 289, | ||
| 2515 | D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = 290, | ||
| 2516 | D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = 291, | ||
| 2517 | D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = 292, | ||
| 2518 | D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = 294, | ||
| 2519 | D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 295, | ||
| 2520 | D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = 296, | ||
| 2521 | D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 297, | ||
| 2522 | D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = 310, | ||
| 2523 | D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 318, | ||
| 2524 | D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = 321, | ||
| 2525 | D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 322, | ||
| 2526 | D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 323, | ||
| 2527 | D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 331, | ||
| 2528 | D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 332, | ||
| 2529 | D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 333, | ||
| 2530 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 334, | ||
| 2531 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 335, | ||
| 2532 | D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 336, | ||
| 2533 | D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 337, | ||
| 2534 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 340, | ||
| 2535 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 341, | ||
| 2536 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 342, | ||
| 2537 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = 343, | ||
| 2538 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = 344, | ||
| 2539 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 345, | ||
| 2540 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 346, | ||
| 2541 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 354, | ||
| 2542 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 401, | ||
| 2543 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = 403, | ||
| 2544 | D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 410, | ||
| 2545 | D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 412, | ||
| 2546 | D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 414, | ||
| 2547 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 416, | ||
| 2548 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 418, | ||
| 2549 | D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 420, | ||
| 2550 | D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 422, | ||
| 2551 | D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 425, | ||
| 2552 | D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 426, | ||
| 2553 | D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 427, | ||
| 2554 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 428, | ||
| 2555 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 429, | ||
| 2556 | D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 430, | ||
| 2557 | D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 431, | ||
| 2558 | D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = 447, | ||
| 2559 | D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = 448, | ||
| 2560 | D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = 493, | ||
| 2561 | D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = 494, | ||
| 2562 | D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = 506, | ||
| 2563 | D3D12_MESSAGE_ID_CREATEDEVICE_WARNING = 507, | ||
| 2564 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE = 519, | ||
| 2565 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER = 520, | ||
| 2566 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE = 521, | ||
| 2567 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS = 522, | ||
| 2568 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS = 523, | ||
| 2569 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = 524, | ||
| 2570 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES = 525, | ||
| 2571 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION = 526, | ||
| 2572 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = 527, | ||
| 2573 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE = 528, | ||
| 2574 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT = 529, | ||
| 2575 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS = 530, | ||
| 2576 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = 531, | ||
| 2577 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = 532, | ||
| 2578 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = 533, | ||
| 2579 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END = 534, | ||
| 2580 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN = 535, | ||
| 2581 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG = 536, | ||
| 2582 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = 537, | ||
| 2583 | D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE = 538, | ||
| 2584 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION = 540, | ||
| 2585 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET = 541, | ||
| 2586 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE = 542, | ||
| 2587 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET = 543, | ||
| 2588 | D3D12_MESSAGE_ID_COMMAND_LIST_OPEN = 544, | ||
| 2589 | D3D12_MESSAGE_ID_INVALID_BUNDLE_API = 546, | ||
| 2590 | D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED = 547, | ||
| 2591 | D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE = 549, | ||
| 2592 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC = 552, | ||
| 2593 | D3D12_MESSAGE_ID_COMMAND_LIST_SYNC = 553, | ||
| 2594 | D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID = 554, | ||
| 2595 | D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE = 557, | ||
| 2596 | D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR = 558, | ||
| 2597 | D3D12_MESSAGE_ID_CREATE_PIPELINESTATE = 559, | ||
| 2598 | D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 = 560, | ||
| 2599 | D3D12_MESSAGE_ID_CREATE_RESOURCE = 562, | ||
| 2600 | D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP = 563, | ||
| 2601 | D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE = 564, | ||
| 2602 | D3D12_MESSAGE_ID_CREATE_LIBRARY = 565, | ||
| 2603 | D3D12_MESSAGE_ID_CREATE_HEAP = 566, | ||
| 2604 | D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE = 567, | ||
| 2605 | D3D12_MESSAGE_ID_CREATE_QUERYHEAP = 568, | ||
| 2606 | D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE = 569, | ||
| 2607 | D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE = 570, | ||
| 2608 | D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR = 571, | ||
| 2609 | D3D12_MESSAGE_ID_LIVE_PIPELINESTATE = 572, | ||
| 2610 | D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 = 573, | ||
| 2611 | D3D12_MESSAGE_ID_LIVE_RESOURCE = 575, | ||
| 2612 | D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP = 576, | ||
| 2613 | D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE = 577, | ||
| 2614 | D3D12_MESSAGE_ID_LIVE_LIBRARY = 578, | ||
| 2615 | D3D12_MESSAGE_ID_LIVE_HEAP = 579, | ||
| 2616 | D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE = 580, | ||
| 2617 | D3D12_MESSAGE_ID_LIVE_QUERYHEAP = 581, | ||
| 2618 | D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE = 582, | ||
| 2619 | D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE = 583, | ||
| 2620 | D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR = 584, | ||
| 2621 | D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE = 585, | ||
| 2622 | D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 = 586, | ||
| 2623 | D3D12_MESSAGE_ID_DESTROY_RESOURCE = 588, | ||
| 2624 | D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP = 589, | ||
| 2625 | D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE = 590, | ||
| 2626 | D3D12_MESSAGE_ID_DESTROY_LIBRARY = 591, | ||
| 2627 | D3D12_MESSAGE_ID_DESTROY_HEAP = 592, | ||
| 2628 | D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE = 593, | ||
| 2629 | D3D12_MESSAGE_ID_DESTROY_QUERYHEAP = 594, | ||
| 2630 | D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE = 595, | ||
| 2631 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS = 597, | ||
| 2632 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS = 599, | ||
| 2633 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN = 602, | ||
| 2634 | D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN = 603, | ||
| 2635 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC = 604, | ||
| 2636 | D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE = 607, | ||
| 2637 | D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 608, | ||
| 2638 | D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 609, | ||
| 2639 | D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH = 610, | ||
| 2640 | D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = 611, | ||
| 2641 | D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = 613, | ||
| 2642 | D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 614, | ||
| 2643 | D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = 615, | ||
| 2644 | D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 616, | ||
| 2645 | D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE = 622, | ||
| 2646 | D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC = 623, | ||
| 2647 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE = 624, | ||
| 2648 | D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE = 625, | ||
| 2649 | D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 626, | ||
| 2650 | D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = 627, | ||
| 2651 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES = 628, | ||
| 2652 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT = 629, | ||
| 2653 | D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS = 630, | ||
| 2654 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS = 631, | ||
| 2655 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN = 632, | ||
| 2656 | D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN = 633, | ||
| 2657 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = 634, | ||
| 2658 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = 635, | ||
| 2659 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 636, | ||
| 2660 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = 637, | ||
| 2661 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = 638, | ||
| 2662 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = 639, | ||
| 2663 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = 640, | ||
| 2664 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN = 641, | ||
| 2665 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = 642, | ||
| 2666 | D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = 643, | ||
| 2667 | D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = 644, | ||
| 2668 | D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC = 645, | ||
| 2669 | D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE = 646, | ||
| 2670 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = 647, | ||
| 2671 | D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = 649, | ||
| 2672 | D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = 650, | ||
| 2673 | D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = 652, | ||
| 2674 | D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES = 653, | ||
| 2675 | D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = 654, | ||
| 2676 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = 655, | ||
| 2677 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = 656, | ||
| 2678 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = 657, | ||
| 2679 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = 658, | ||
| 2680 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = 659, | ||
| 2681 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = 660, | ||
| 2682 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = 661, | ||
| 2683 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = 662, | ||
| 2684 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = 663, | ||
| 2685 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 664, | ||
| 2686 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = 665, | ||
| 2687 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 666, | ||
| 2688 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = 667, | ||
| 2689 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 668, | ||
| 2690 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 669, | ||
| 2691 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 670, | ||
| 2692 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 671, | ||
| 2693 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 672, | ||
| 2694 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = 673, | ||
| 2695 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = 674, | ||
| 2696 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 675, | ||
| 2697 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 676, | ||
| 2698 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = 677, | ||
| 2699 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 678, | ||
| 2700 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = 679, | ||
| 2701 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = 680, | ||
| 2702 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = 681, | ||
| 2703 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = 682, | ||
| 2704 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = 683, | ||
| 2705 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = 684, | ||
| 2706 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = 685, | ||
| 2707 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = 686, | ||
| 2708 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = 687, | ||
| 2709 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = 688, | ||
| 2710 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = 689, | ||
| 2711 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = 690, | ||
| 2712 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = 691, | ||
| 2713 | D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE = 692, | ||
| 2714 | D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = 693, | ||
| 2715 | D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE = 694, | ||
| 2716 | D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE = 695, | ||
| 2717 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = 696, | ||
| 2718 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = 697, | ||
| 2719 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = 698, | ||
| 2720 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = 699, | ||
| 2721 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = 700, | ||
| 2722 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP = 701, | ||
| 2723 | D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = 702, | ||
| 2724 | D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY = 703, | ||
| 2725 | D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY = 705, | ||
| 2726 | D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID = 708, | ||
| 2727 | D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID = 709, | ||
| 2728 | D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = 710, | ||
| 2729 | D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = 711, | ||
| 2730 | D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = 712, | ||
| 2731 | D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC = 713, | ||
| 2732 | D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC = 715, | ||
| 2733 | D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = 717, | ||
| 2734 | D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = 718, | ||
| 2735 | D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT = 719, | ||
| 2736 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY = 720, | ||
| 2737 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT = 721, | ||
| 2738 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS = 722, | ||
| 2739 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC = 723, | ||
| 2740 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT = 724, | ||
| 2741 | D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID = 725, | ||
| 2742 | D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID = 726, | ||
| 2743 | D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID = 727, | ||
| 2744 | D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID = 728, | ||
| 2745 | D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS = 729, | ||
| 2746 | D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS = 731, | ||
| 2747 | D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY = 732, | ||
| 2748 | D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS = 733, | ||
| 2749 | D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS = 734, | ||
| 2750 | D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED = 735, | ||
| 2751 | D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT = 737, | ||
| 2752 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT = 738, | ||
| 2753 | D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE = 739, | ||
| 2754 | D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET = 740, | ||
| 2755 | D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = 739, | ||
| 2756 | D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET = 740, | ||
| 2757 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP = 741, | ||
| 2758 | D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID = 742, | ||
| 2759 | D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID = 743, | ||
| 2760 | D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS = 744, | ||
| 2761 | D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = 745, | ||
| 2762 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE = 815, | ||
| 2763 | D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = 816, | ||
| 2764 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT = 817, | ||
| 2765 | D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH = 818, | ||
| 2766 | D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = 820, | ||
| 2767 | D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = 821, | ||
| 2768 | D3D12_MESSAGE_ID_MAP_INVALIDHEAP = 822, | ||
| 2769 | D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP = 823, | ||
| 2770 | D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE = 824, | ||
| 2771 | D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE = 825, | ||
| 2772 | D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE = 826, | ||
| 2773 | D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE = 827, | ||
| 2774 | D3D12_MESSAGE_ID_MAP_INVALIDRANGE = 828, | ||
| 2775 | D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE = 829, | ||
| 2776 | D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER = 832, | ||
| 2777 | D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN = 833, | ||
| 2778 | D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN = 834, | ||
| 2779 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = 835, | ||
| 2780 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = 836, | ||
| 2781 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST = 837, | ||
| 2782 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = 838, | ||
| 2783 | D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST = 839, | ||
| 2784 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = 840, | ||
| 2785 | D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = 841, | ||
| 2786 | D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC = 842, | ||
| 2787 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = 843, | ||
| 2788 | D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = 844, | ||
| 2789 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS = 845, | ||
| 2790 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST = 846, | ||
| 2791 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = 847, | ||
| 2792 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = 848, | ||
| 2793 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE = 849, | ||
| 2794 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = 850, | ||
| 2795 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET = 851, | ||
| 2796 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = 852, | ||
| 2797 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT = 853, | ||
| 2798 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = 854, | ||
| 2799 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH = 855, | ||
| 2800 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT = 856, | ||
| 2801 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = 857, | ||
| 2802 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = 858, | ||
| 2803 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC = 859, | ||
| 2804 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = 860, | ||
| 2805 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = 861, | ||
| 2806 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE = 862, | ||
| 2807 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = 863, | ||
| 2808 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET = 864, | ||
| 2809 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = 865, | ||
| 2810 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT = 866, | ||
| 2811 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = 867, | ||
| 2812 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH = 868, | ||
| 2813 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT = 869, | ||
| 2814 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = 870, | ||
| 2815 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = 871, | ||
| 2816 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES = 872, | ||
| 2817 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX = 873, | ||
| 2818 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH = 874, | ||
| 2819 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX = 875, | ||
| 2820 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS = 876, | ||
| 2821 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = 877, | ||
| 2822 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT = 878, | ||
| 2823 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH = 879, | ||
| 2824 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = 880, | ||
| 2825 | D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = 881, | ||
| 2826 | D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = 882, | ||
| 2827 | D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = 883, | ||
| 2828 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB = 884, | ||
| 2829 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = 885, | ||
| 2830 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = 886, | ||
| 2831 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = 887, | ||
| 2832 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED = 888, | ||
| 2833 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP = 889, | ||
| 2834 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE = 890, | ||
| 2835 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX = 891, | ||
| 2836 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = 892, | ||
| 2837 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX = 893, | ||
| 2838 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP = 894, | ||
| 2839 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE = 895, | ||
| 2840 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX = 896, | ||
| 2841 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE = 897, | ||
| 2842 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX = 898, | ||
| 2843 | D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED = 899, | ||
| 2844 | D3D12_MESSAGE_ID_INVALID_NODE_INDEX = 900, | ||
| 2845 | D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE = 901, | ||
| 2846 | D3D12_MESSAGE_ID_NODE_MASK_MISMATCH = 902, | ||
| 2847 | D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY = 903, | ||
| 2848 | D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = 904, | ||
| 2849 | D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = 905, | ||
| 2850 | D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = 906, | ||
| 2851 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = 907, | ||
| 2852 | D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = 908, | ||
| 2853 | D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE = 909, | ||
| 2854 | D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS = 910, | ||
| 2855 | D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS = 911, | ||
| 2856 | D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT = 912, | ||
| 2857 | D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS = 913, | ||
| 2858 | D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = 914, | ||
| 2859 | D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE = 915, | ||
| 2860 | D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT = 916, | ||
| 2861 | D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT = 917, | ||
| 2862 | D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY = 918, | ||
| 2863 | D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE = 919, | ||
| 2864 | D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY = 920, | ||
| 2865 | D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE = 921, | ||
| 2866 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS = 922, | ||
| 2867 | D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = 923, | ||
| 2868 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = 924, | ||
| 2869 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = 925, | ||
| 2870 | D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = 926, | ||
| 2871 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = 927, | ||
| 2872 | D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY = 929, | ||
| 2873 | D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE = 930, | ||
| 2874 | D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE = 931, | ||
| 2875 | D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT = 932, | ||
| 2876 | D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT = 933, | ||
| 2877 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = 934, | ||
| 2878 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = 935, | ||
| 2879 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = 936, | ||
| 2880 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = 937, | ||
| 2881 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = 938, | ||
| 2882 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = 939, | ||
| 2883 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = 940, | ||
| 2884 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = 941, | ||
| 2885 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = 942, | ||
| 2886 | D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST = 943, | ||
| 2887 | D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE = 944, | ||
| 2888 | D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC = 945, | ||
| 2889 | D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE = 946, | ||
| 2890 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST = 947, | ||
| 2891 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = 948, | ||
| 2892 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC = 949, | ||
| 2893 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = 950, | ||
| 2894 | D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH = 951, | ||
| 2895 | D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = 952, | ||
| 2896 | D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = 953, | ||
| 2897 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS = 954, | ||
| 2898 | D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH = 955, | ||
| 2899 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = 956, | ||
| 2900 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END = 957, | ||
| 2901 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE = 958, | ||
| 2902 | D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = 959, | ||
| 2903 | D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE = 960, | ||
| 2904 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = 961, | ||
| 2905 | D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = 962, | ||
| 2906 | D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = 963, | ||
| 2907 | D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = 964, | ||
| 2908 | D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED = 965, | ||
| 2909 | D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY = 966, | ||
| 2910 | D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY = 967, | ||
| 2911 | D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY = 968, | ||
| 2912 | D3D12_MESSAGE_ID_STOREPIPELINE_NONAME = 969, | ||
| 2913 | D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME = 970, | ||
| 2914 | D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND = 971, | ||
| 2915 | D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC = 972, | ||
| 2916 | D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = 973, | ||
| 2917 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = 974, | ||
| 2918 | D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = 975, | ||
| 2919 | D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED = 976, | ||
| 2920 | D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = 977, | ||
| 2921 | D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = 978, | ||
| 2922 | D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST = 979, | ||
| 2923 | D3D12_MESSAGE_ID_CREATE_VIDEODECODER = 980, | ||
| 2924 | D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = 981, | ||
| 2925 | D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST = 982, | ||
| 2926 | D3D12_MESSAGE_ID_LIVE_VIDEODECODER = 983, | ||
| 2927 | D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = 984, | ||
| 2928 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST = 985, | ||
| 2929 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = 986, | ||
| 2930 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM = 987, | ||
| 2931 | D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS = 988, | ||
| 2932 | D3D12_MESSAGE_ID_DEPRECATED_API = 989, | ||
| 2933 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = 990, | ||
| 2934 | D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = 991, | ||
| 2935 | D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = 992, | ||
| 2936 | D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = 993, | ||
| 2937 | D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = 994, | ||
| 2938 | D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE = 995, | ||
| 2939 | D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = 996, | ||
| 2940 | D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = 997, | ||
| 2941 | D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE = 998, | ||
| 2942 | D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE = 999, | ||
| 2943 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED = 1000, | ||
| 2944 | D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE = 1001, | ||
| 2945 | D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE = 1002, | ||
| 2946 | D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE = 1003, | ||
| 2947 | D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET = 1004, | ||
| 2948 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS = 1005, | ||
| 2949 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH = 1006, | ||
| 2950 | D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS = 1007, | ||
| 2951 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS = 1008, | ||
| 2952 | D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY = 1009, | ||
| 2953 | D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS = 1013, | ||
| 2954 | D3D12_MESSAGE_ID_BEGIN_EVENT = 1014, | ||
| 2955 | D3D12_MESSAGE_ID_END_EVENT = 1015, | ||
| 2956 | D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS = 1016, | ||
| 2957 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED = 1017, | ||
| 2958 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT = 1018, | ||
| 2959 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT = 1019, | ||
| 2960 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM = 1020, | ||
| 2961 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM = 1021, | ||
| 2962 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE = 1022, | ||
| 2963 | D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH = 1023, | ||
| 2964 | D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME = 1024, | ||
| 2965 | D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME = 1025, | ||
| 2966 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE = 1026, | ||
| 2967 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST = 1027, | ||
| 2968 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION = 1028, | ||
| 2969 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS = 1029, | ||
| 2970 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC = 1030, | ||
| 2971 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION = 1031, | ||
| 2972 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS = 1032, | ||
| 2973 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT = 1033, | ||
| 2974 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES = 1034, | ||
| 2975 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES = 1035, | ||
| 2976 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE = 1036, | ||
| 2977 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE = 1037, | ||
| 2978 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS = 1038, | ||
| 2979 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS = 1039, | ||
| 2980 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES = 1040, | ||
| 2981 | D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG = 1041, | ||
| 2982 | D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE = 1042, | ||
| 2983 | D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS = 1043, | ||
| 2984 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE = 1044, | ||
| 2985 | D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET = 1045, | ||
| 2986 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH = 1046, | ||
| 2987 | D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE = 1047, | ||
| 2988 | D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED = 1048, | ||
| 2989 | D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS = 1049, | ||
| 2990 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT = 1050, | ||
| 2991 | D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE = 1051, | ||
| 2992 | D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST = 1052, | ||
| 2993 | D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE = 1053, | ||
| 2994 | D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE = 1054, | ||
| 2995 | D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST = 1055, | ||
| 2996 | D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE = 1056, | ||
| 2997 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE = 1057, | ||
| 2998 | D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST = 1058, | ||
| 2999 | D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE = 1059, | ||
| 3000 | D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR = 1060, | ||
| 3001 | D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM = 1061, | ||
| 3002 | D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR = 1062, | ||
| 3003 | D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM = 1063, | ||
| 3004 | D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = 1064, | ||
| 3005 | D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM = 1065, | ||
| 3006 | D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS = 1066, | ||
| 3007 | D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT = 1067, | ||
| 3008 | D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION = 1068, | ||
| 3009 | D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY = 1069, | ||
| 3010 | D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION = 1070, | ||
| 3011 | D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION = 1071, | ||
| 3012 | D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY = 1072, | ||
| 3013 | D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION = 1073, | ||
| 3014 | D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION = 1074, | ||
| 3015 | D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY = 1075, | ||
| 3016 | D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION = 1076, | ||
| 3017 | D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED = 1077, | ||
| 3018 | D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION = 1078, | ||
| 3019 | D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED = 1079, | ||
| 3020 | D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED = 1080, | ||
| 3021 | D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE = 1081, | ||
| 3022 | D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR = 1082, | ||
| 3023 | D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP = 1083, | ||
| 3024 | D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP = 1084, | ||
| 3025 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP = 1085, | ||
| 3026 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN = 1086, | ||
| 3027 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN = 1087, | ||
| 3028 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS = 1088, | ||
| 3029 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE = 1089, | ||
| 3030 | D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST = 1090, | ||
| 3031 | D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE = 1091, | ||
| 3032 | D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT = 1092, | ||
| 3033 | D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED = 1093, | ||
| 3034 | D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS = 1094, | ||
| 3035 | D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED = 1095, | ||
| 3036 | D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS = 1096, | ||
| 3037 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1097, | ||
| 3038 | D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1098, | ||
| 3039 | D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE = 1099, | ||
| 3040 | D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED = 1100, | ||
| 3041 | D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT = 1101, | ||
| 3042 | D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED = 1102, | ||
| 3043 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR = 1103, | ||
| 3044 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED = 1104, | ||
| 3045 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR = 1105, | ||
| 3046 | D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT = 1106, | ||
| 3047 | D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT = 1107, | ||
| 3048 | D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE = 1108, | ||
| 3049 | D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT = 1109, | ||
| 3050 | D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT = 1110, | ||
| 3051 | D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 1111, | ||
| 3052 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED = 1112, | ||
| 3053 | D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 1113, | ||
| 3054 | D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED = 1114, | ||
| 3055 | D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER = 1115, | ||
| 3056 | D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER = 1116, | ||
| 3057 | D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER = 1117, | ||
| 3058 | D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 1118, | ||
| 3059 | D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 1119, | ||
| 3060 | D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS = 1120, | ||
| 3061 | D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 1121, | ||
| 3062 | D3D12_MESSAGE_ID_CREATE_COMMANDPOOL = 1122, | ||
| 3063 | D3D12_MESSAGE_ID_LIVE_COMMANDPOOL = 1123, | ||
| 3064 | D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL = 1124, | ||
| 3065 | D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS = 1125, | ||
| 3066 | D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 1126, | ||
| 3067 | D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 1127, | ||
| 3068 | D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION = 1128, | ||
| 3069 | D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 1129, | ||
| 3070 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 1130, | ||
| 3071 | D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 1131, | ||
| 3072 | D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 1132, | ||
| 3073 | D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 1133, | ||
| 3074 | D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 1134, | ||
| 3075 | D3D12_MESSAGE_ID_COMMAND_POOL_SYNC = 1135, | ||
| 3076 | D3D12_MESSAGE_ID_EVICT_UNDERFLOW = 1136, | ||
| 3077 | D3D12_MESSAGE_ID_CREATE_META_COMMAND = 1137, | ||
| 3078 | D3D12_MESSAGE_ID_LIVE_META_COMMAND = 1138, | ||
| 3079 | D3D12_MESSAGE_ID_DESTROY_META_COMMAND = 1139, | ||
| 3080 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE = 1140, | ||
| 3081 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE = 1141, | ||
| 3082 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 1142, | ||
| 3083 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 1143, | ||
| 3084 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 1144, | ||
| 3085 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 1145, | ||
| 3086 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 1146, | ||
| 3087 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 1147, | ||
| 3088 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 1148, | ||
| 3089 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 1149, | ||
| 3090 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 1150, | ||
| 3091 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 1151, | ||
| 3092 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 1152, | ||
| 3093 | D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 1153, | ||
| 3094 | D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 1154, | ||
| 3095 | D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 1155, | ||
| 3096 | D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 1156, | ||
| 3097 | D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 1157, | ||
| 3098 | D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1158, | ||
| 3099 | D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 1159, | ||
| 3100 | D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1160, | ||
| 3101 | D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID = 1161, | ||
| 3102 | D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 1162, | ||
| 3103 | D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER = 1163, | ||
| 3104 | D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER = 1164, | ||
| 3105 | D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER = 1165, | ||
| 3106 | D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 1166, | ||
| 3107 | D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD = 1167, | ||
| 3108 | D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD = 1168, | ||
| 3109 | D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD = 1169, | ||
| 3110 | D3D12_MESSAGE_ID_RENDER_PASS_ERROR = 1170, | ||
| 3111 | D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID = 1171, | ||
| 3112 | D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS = 1172, | ||
| 3113 | D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION = 1173, | ||
| 3114 | D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH = 1174, | ||
| 3115 | D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND = 1175, | ||
| 3116 | D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 1176, | ||
| 3117 | D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST = 1177, | ||
| 3118 | D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST = 1178, | ||
| 3119 | D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST = 1179, | ||
| 3120 | D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE = 1180, | ||
| 3121 | D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE = 1181, | ||
| 3122 | D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE = 1182, | ||
| 3123 | D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR = 1183, | ||
| 3124 | D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR = 1184, | ||
| 3125 | D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR = 1185, | ||
| 3126 | D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP = 1186, | ||
| 3127 | D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP = 1187, | ||
| 3128 | D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP = 1188, | ||
| 3129 | D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS = 1189, | ||
| 3130 | D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS = 1190, | ||
| 3131 | D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 1191, | ||
| 3132 | D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD = 1192, | ||
| 3133 | D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR = 1193, | ||
| 3134 | D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR = 1194, | ||
| 3135 | D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR = 1195, | ||
| 3136 | D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR = 1196, | ||
| 3137 | D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR = 1197, | ||
| 3138 | D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR = 1198, | ||
| 3139 | D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID = 1199, | ||
| 3140 | D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 1200, | ||
| 3141 | D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 1201, | ||
| 3142 | D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER = 1202, | ||
| 3143 | D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED = 1203, | ||
| 3144 | D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 1204, | ||
| 3145 | D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 1205, | ||
| 3146 | D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 1206, | ||
| 3147 | D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 1207, | ||
| 3148 | D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 1208, | ||
| 3149 | D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 1209, | ||
| 3150 | D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 1210, | ||
| 3151 | D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 1211, | ||
| 3152 | D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED = 1212, | ||
| 3153 | D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS = 1213, | ||
| 3154 | D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE = 1214, | ||
| 3155 | D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR = 1215, | ||
| 3156 | D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL = 1216, | ||
| 3157 | D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT = 1217, | ||
| 3158 | D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT = 1218, | ||
| 3159 | D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1219, | ||
| 3160 | D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT = 1220, | ||
| 3161 | D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1221, | ||
| 3162 | D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE = 1222, | ||
| 3163 | D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT = 1223, | ||
| 3164 | D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL = 1224, | ||
| 3165 | D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND = 1225, | ||
| 3166 | D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND = 1226, | ||
| 3167 | D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND = 1227, | ||
| 3168 | D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID = 1228, | ||
| 3169 | D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT = 1229, | ||
| 3170 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY = 1230, | ||
| 3171 | D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR = 1231, | ||
| 3172 | D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1232, | ||
| 3173 | D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE = 1233, | ||
| 3174 | D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP = 1234, | ||
| 3175 | D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER = 1235, | ||
| 3176 | D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2 = 1236, | ||
| 3177 | D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1 = 1237, | ||
| 3178 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT = 1238, | ||
| 3179 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE = 1239, | ||
| 3180 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL = 1240, | ||
| 3181 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT = 1241, | ||
| 3182 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY = 1242, | ||
| 3183 | D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE = 1243, | ||
| 3184 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH = 1244, | ||
| 3185 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH = 1245, | ||
| 3186 | D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR = 1246, | ||
| 3187 | D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT = 1247, | ||
| 3188 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH = 1248, | ||
| 3189 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE = 1249, | ||
| 3190 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH = 1250, | ||
| 3191 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH = 1251, | ||
| 3192 | D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT = 1252, | ||
| 3193 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH = 1253, | ||
| 3194 | D3D12_MESSAGE_ID_EMPTY_DISPATCH = 1254, | ||
| 3195 | D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1255, | ||
| 3196 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION = 1256, | ||
| 3197 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION = 1257, | ||
| 3198 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT = 1258, | ||
| 3199 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY = 1259, | ||
| 3200 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT = 1260, | ||
| 3201 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG = 1261, | ||
| 3202 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS = 1262, | ||
| 3203 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1263, | ||
| 3204 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT = 1264, | ||
| 3205 | D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE = 1265, | ||
| 3206 | D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY = 1266, | ||
| 3207 | D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 1267, | ||
| 3208 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT = 1268, | ||
| 3209 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT = 1269, | ||
| 3210 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH = 1270, | ||
| 3211 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE = 1271, | ||
| 3212 | D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE = 1272, | ||
| 3213 | D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE = 1273, | ||
| 3214 | D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1274, | ||
| 3215 | D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1275, | ||
| 3216 | D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE = 1276, | ||
| 3217 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 1277, | ||
| 3218 | D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 1278, | ||
| 3219 | D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 1279, | ||
| 3220 | D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION = 1280, | ||
| 3221 | D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION = 1281, | ||
| 3222 | D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION = 1282, | ||
| 3223 | D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS = 1283, | ||
| 3224 | D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED = 1284, | ||
| 3225 | D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN = 1285, | ||
| 3226 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE = 1286, | ||
| 3227 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS = 1287, | ||
| 3228 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET = 1288, | ||
| 3229 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG = 1289, | ||
| 3230 | D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT = 1290, | ||
| 3231 | D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION = 1291, | ||
| 3232 | D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL = 1292, | ||
| 3233 | D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND = 1293, | ||
| 3234 | D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT = 1294, | ||
| 3235 | D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED = 1295, | ||
| 3236 | D3D12_MESSAGE_ID_OVERSIZED_DISPATCH = 1296, | ||
| 3237 | D3D12_MESSAGE_ID_CREATE_VIDEOENCODER = 1297, | ||
| 3238 | D3D12_MESSAGE_ID_LIVE_VIDEOENCODER = 1298, | ||
| 3239 | D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER = 1299, | ||
| 3240 | D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP = 1300, | ||
| 3241 | D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP = 1301, | ||
| 3242 | D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP = 1302, | ||
| 3243 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1303, | ||
| 3244 | D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1304, | ||
| 3245 | D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS = 1305, | ||
| 3246 | D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS = 1306, | ||
| 3247 | D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS = 1307, | ||
| 3248 | D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS = 1308, | ||
| 3249 | D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS = 1309, | ||
| 3250 | D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS = 1310, | ||
| 3251 | D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS = 1311, | ||
| 3252 | D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS = 1312, | ||
| 3253 | D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR = 1313, | ||
| 3254 | D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE = 1314, | ||
| 3255 | D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE = 1315, | ||
| 3256 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING = 1316, | ||
| 3257 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING = 1317, | ||
| 3258 | D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING = 1318, | ||
| 3259 | D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE = 1319, | ||
| 3260 | D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS = 1320, | ||
| 3261 | D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH = 1321, | ||
| 3262 | D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH = 1322, | ||
| 3263 | D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH = 1323, | ||
| 3264 | D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY = 1324, | ||
| 3265 | D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY = 1325, | ||
| 3266 | D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED = 1326, | ||
| 3267 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED = 1327, | ||
| 3268 | D3D12_MESSAGE_ID_CREATERESOURCE_STATE_IGNORED = 1328, | ||
| 3269 | D3D12_MESSAGE_ID_UNUSED_CROSS_EXECUTE_SPLIT_BARRIER = 1329, | ||
| 3270 | D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_HANDLE_ACCESS_DENIED = 1330, | ||
| 3271 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_VALUES = 1331, | ||
| 3272 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_ACCESS = 1332, | ||
| 3273 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_SYNC = 1333, | ||
| 3274 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT = 1334, | ||
| 3275 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_TYPE = 1335, | ||
| 3276 | D3D12_MESSAGE_ID_OUT_OF_BOUNDS_BARRIER_SUBRESOURCE_RANGE = 1336, | ||
| 3277 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_RESOURCE_DIMENSION = 1337, | ||
| 3278 | D3D12_MESSAGE_ID_SET_SCISSOR_RECTS_INVALID_RECT = 1338, | ||
| 3279 | D3D12_MESSAGE_ID_SHADING_RATE_SOURCE_REQUIRES_DIMENSION_TEXTURE2D = 1339, | ||
| 3280 | D3D12_MESSAGE_ID_BUFFER_BARRIER_SUBREGION_OUT_OF_BOUNDS = 1340, | ||
| 3281 | D3D12_MESSAGE_ID_UNSUPPORTED_BARRIER_LAYOUT = 1341, | ||
| 3282 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALID_PARAMETERS = 1342, | ||
| 3283 | D3D12_MESSAGE_ID_ENHANCED_BARRIERS_NOT_SUPPORTED = 1343, | ||
| 3284 | D3D12_MESSAGE_ID_LEGACY_BARRIER_VALIDATION_FORCED_ON = 1346, | ||
| 3285 | D3D12_MESSAGE_ID_EMPTY_ROOT_DESCRIPTOR_TABLE = 1347, | ||
| 3286 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ELEMENT_OFFSET_UNALIGNED = 1348, | ||
| 3287 | D3D12_MESSAGE_ID_ALPHA_BLEND_FACTOR_NOT_SUPPORTED = 1349, | ||
| 3288 | D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_LAYOUT = 1350, | ||
| 3289 | D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_STATE = 1351, | ||
| 3290 | D3D12_MESSAGE_ID_GRAPHICS_PIPELINE_STATE_DESC_ZERO_SAMPLE_MASK = 1352, | ||
| 3291 | D3D12_MESSAGE_ID_INDEPENDENT_STENCIL_REF_NOT_SUPPORTED = 1353, | ||
| 3292 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INDEPENDENT_MASKS_UNSUPPORTED = 1354, | ||
| 3293 | D3D12_MESSAGE_ID_TEXTURE_BARRIER_SUBRESOURCES_OUT_OF_BOUNDS = 1355, | ||
| 3294 | D3D12_MESSAGE_ID_NON_OPTIMAL_BARRIER_ONLY_EXECUTE_COMMAND_LISTS = 1356, | ||
| 3295 | D3D12_MESSAGE_ID_EXECUTE_INDIRECT_ZERO_COMMAND_COUNT = 1357, | ||
| 3296 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_TEXTURE_LAYOUT = 1358, | ||
| 3297 | D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NOT_SUPPORTED = 1359, | ||
| 3298 | D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_TRIANGLE_FANS_NOT_SUPPORTED = 1360, | ||
| 3299 | D3D12_MESSAGE_ID_CREATE_SAMPLER_COMPARISON_FUNC_IGNORED = 1361, | ||
| 3300 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDHEAPTYPE = 1362, | ||
| 3301 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPTYPE = 1363, | ||
| 3302 | D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NOT_SUPPORTED = 1364, | ||
| 3303 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NON_WHOLE_DYNAMIC_DEPTH_BIAS = 1365, | ||
| 3304 | D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_FLAG_MISSING = 1366, | ||
| 3305 | D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NO_PIPELINE = 1367, | ||
| 3306 | D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_FLAG_MISSING = 1368, | ||
| 3307 | D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NO_PIPELINE = 1369, | ||
| 3308 | D3D12_MESSAGE_ID_NONNORMALIZED_COORDINATE_SAMPLING_NOT_SUPPORTED = 1370, | ||
| 3309 | D3D12_MESSAGE_ID_INVALID_CAST_TARGET = 1371, | ||
| 3310 | D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_END_STATE = 1372, | ||
| 3311 | D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_START_STATE = 1373, | ||
| 3312 | D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_ACCESS = 1374, | ||
| 3313 | D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_LOCAL_PRESERVE_PARAMETERS = 1375, | ||
| 3314 | D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_PRESERVE_RENDER_PARAMETERS_ERROR = 1376, | ||
| 3315 | D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_DEPTH_STENCIL_ERROR = 1377, | ||
| 3316 | D3D12_MESSAGE_ID_DRAW_POTENTIALLY_OUTSIDE_OF_VALID_RENDER_AREA = 1378, | ||
| 3317 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_LINERASTERIZATIONMODE = 1379, | ||
| 3318 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT_SMALLRESOURCE = 1380, | ||
| 3319 | D3D12_MESSAGE_ID_GENERIC_DEVICE_OPERATION_UNSUPPORTED = 1381, | ||
| 3320 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDER_TARGET_WRONG_WRITE_MASK = 1382, | ||
| 3321 | D3D12_MESSAGE_ID_PROBABLE_PIX_EVENT_LEAK = 1383, | ||
| 3322 | D3D12_MESSAGE_ID_PIX_EVENT_UNDERFLOW = 1384, | ||
| 3323 | D3D12_MESSAGE_ID_RECREATEAT_INVALID_TARGET = 1385, | ||
| 3324 | D3D12_MESSAGE_ID_RECREATEAT_INSUFFICIENT_SUPPORT = 1386, | ||
| 3325 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_STRUCTURED_BUFFER_STRIDE_MISMATCH = 1387, | ||
| 3326 | D3D12_MESSAGE_ID_DISPATCH_GRAPH_INVALID = 1388, | ||
| 3327 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_TARGET_FORMAT_INVALID = 1389, | ||
| 3328 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_TARGET_DIMENSION_INVALID = 1390, | ||
| 3329 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_SOURCE_COLOR_FORMAT_INVALID = 1391, | ||
| 3330 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_SOURCE_DEPTH_FORMAT_INVALID = 1392, | ||
| 3331 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXPOSURE_SCALE_FORMAT_INVALID = 1393, | ||
| 3332 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_ENGINE_CREATE_FLAGS_INVALID = 1394, | ||
| 3333 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_LOAD_FAILURE = 1395, | ||
| 3334 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_ENGINE_CREATION_ERROR = 1396, | ||
| 3335 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_UPSCALER_CREATION_ERROR = 1397, | ||
| 3336 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_UPSCALER_EXECUTION_ERROR = 1398, | ||
| 3337 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_REGION_INVALID = 1399, | ||
| 3338 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_TIME_DELTA_INVALID = 1400, | ||
| 3339 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_REQUIRED_TEXTURE_IS_NULL = 1401, | ||
| 3340 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_MOTION_VECTORS_FORMAT_INVALID = 1402, | ||
| 3341 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_FLAGS_INVALID = 1403, | ||
| 3342 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_FORMAT_INVALID = 1404, | ||
| 3343 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_EXPOSURE_SCALE_TEXTURE_SIZE_INVALID = 1405, | ||
| 3344 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_VARIANT_INDEX_OUT_OF_BOUNDS = 1406, | ||
| 3345 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_VARIANT_ID_NOT_FOUND = 1407, | ||
| 3346 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_DUPLICATE_VARIANT_ID = 1408, | ||
| 3347 | D3D12_MESSAGE_ID_DIRECTSR_OUT_OF_MEMORY = 1409, | ||
| 3348 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_UNEXPECTED_TEXTURE_IS_IGNORED = 1410, | ||
| 3349 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EVICT_UNDERFLOW = 1411, | ||
| 3350 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_OPTIONAL_TEXTURE_IS_NULL = 1412, | ||
| 3351 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_INVALID_CAMERA_JITTER = 1413, | ||
| 3352 | D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_WARNING = 1414, | ||
| 3353 | D3D12_MESSAGE_ID_GUID_TEXTURE_LAYOUT_UNSUPPORTED = 1415, | ||
| 3354 | D3D12_MESSAGE_ID_RESOLVE_ENCODER_INPUT_PARAM_LAYOUT_INVALID_PARAMETERS = 1416, | ||
| 3355 | D3D12_MESSAGE_ID_INVALID_BARRIER_ACCESS = 1417, | ||
| 3356 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INSTANCE_COUNT_ZERO = 1418, | ||
| 3357 | D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SET_BEFORE_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1419, | ||
| 3358 | D3D12_MESSAGE_ID_DIFFERENT_DESCRIPTOR_HEAP_SET_AFTER_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1420, | ||
| 3359 | D3D12_MESSAGE_ID_APPLICATION_SPECIFIC_DRIVER_STATE_NOT_SUPPORTED = 1421, | ||
| 3360 | D3D12_MESSAGE_ID_RENDER_TARGET_OR_DEPTH_STENCIL_RESOUCE_NOT_INITIALIZED = 1422, | ||
| 3361 | D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR = 1423, | ||
| 3362 | D3D12_MESSAGE_ID_FENCE_ZERO_WAIT = 1424, | ||
| 3363 | D3D12_MESSAGE_ID_NON_COMMON_RESOURCE_IN_COPY_QUEUE = 1431, | ||
| 3364 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MULTIPLE_ROOT_SIGNATURES_DEFINED = 1435, | ||
| 3365 | D3D12_MESSAGE_ID_TEXTURE_BARRIER_INVALID_FLAGS = 1436, | ||
| 3366 | D3D12_MESSAGE_ID_D3D12_MESSAGES_END = 1442 | ||
| 3367 | } D3D12_MESSAGE_ID; | ||
| 3368 | |||
| 3369 | typedef struct D3D12_MESSAGE | ||
| 3370 | { | ||
| 3371 | D3D12_MESSAGE_CATEGORY Category; | ||
| 3372 | D3D12_MESSAGE_SEVERITY Severity; | ||
| 3373 | D3D12_MESSAGE_ID ID; | ||
| 3374 | _Field_size_(DescriptionByteLength) const char *pDescription; | ||
| 3375 | SIZE_T DescriptionByteLength; | ||
| 3376 | } D3D12_MESSAGE; | ||
| 3377 | |||
| 3378 | typedef struct D3D12_INFO_QUEUE_FILTER_DESC | ||
| 3379 | { | ||
| 3380 | UINT NumCategories; | ||
| 3381 | _Field_size_(NumCategories) D3D12_MESSAGE_CATEGORY *pCategoryList; | ||
| 3382 | UINT NumSeverities; | ||
| 3383 | _Field_size_(NumSeverities) D3D12_MESSAGE_SEVERITY *pSeverityList; | ||
| 3384 | UINT NumIDs; | ||
| 3385 | _Field_size_(NumIDs) D3D12_MESSAGE_ID *pIDList; | ||
| 3386 | } D3D12_INFO_QUEUE_FILTER_DESC; | ||
| 3387 | |||
| 3388 | typedef struct D3D12_INFO_QUEUE_FILTER | ||
| 3389 | { | ||
| 3390 | D3D12_INFO_QUEUE_FILTER_DESC AllowList; | ||
| 3391 | D3D12_INFO_QUEUE_FILTER_DESC DenyList; | ||
| 3392 | } D3D12_INFO_QUEUE_FILTER; | ||
| 3393 | |||
| 3394 | #define D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024 | ||
| 3395 | |||
| 3396 | |||
| 3397 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0018_v0_0_c_ifspec; | ||
| 3398 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0018_v0_0_s_ifspec; | ||
| 3399 | |||
| 3400 | #ifndef __ID3D12InfoQueue_INTERFACE_DEFINED__ | ||
| 3401 | #define __ID3D12InfoQueue_INTERFACE_DEFINED__ | ||
| 3402 | |||
| 3403 | /* interface ID3D12InfoQueue */ | ||
| 3404 | /* [unique][local][object][uuid] */ | ||
| 3405 | |||
| 3406 | |||
| 3407 | EXTERN_C const IID IID_ID3D12InfoQueue; | ||
| 3408 | |||
| 3409 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 3410 | |||
| 3411 | MIDL_INTERFACE("0742a90b-c387-483f-b946-30a7e4e61458") | ||
| 3412 | ID3D12InfoQueue : public IUnknown | ||
| 3413 | { | ||
| 3414 | public: | ||
| 3415 | virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit( | ||
| 3416 | _In_ UINT64 MessageCountLimit) = 0; | ||
| 3417 | |||
| 3418 | virtual void STDMETHODCALLTYPE ClearStoredMessages( void) = 0; | ||
| 3419 | |||
| 3420 | virtual HRESULT STDMETHODCALLTYPE GetMessage( | ||
| 3421 | _In_ UINT64 MessageIndex, | ||
| 3422 | _Out_writes_bytes_opt_(*pMessageByteLength) D3D12_MESSAGE *pMessage, | ||
| 3423 | _Inout_ SIZE_T *pMessageByteLength) = 0; | ||
| 3424 | |||
| 3425 | virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter( void) = 0; | ||
| 3426 | |||
| 3427 | virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter( void) = 0; | ||
| 3428 | |||
| 3429 | virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages( void) = 0; | ||
| 3430 | |||
| 3431 | virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilter( void) = 0; | ||
| 3432 | |||
| 3433 | virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit( void) = 0; | ||
| 3434 | |||
| 3435 | virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit( void) = 0; | ||
| 3436 | |||
| 3437 | virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries( | ||
| 3438 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; | ||
| 3439 | |||
| 3440 | virtual HRESULT STDMETHODCALLTYPE GetStorageFilter( | ||
| 3441 | _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, | ||
| 3442 | _Inout_ SIZE_T *pFilterByteLength) = 0; | ||
| 3443 | |||
| 3444 | virtual void STDMETHODCALLTYPE ClearStorageFilter( void) = 0; | ||
| 3445 | |||
| 3446 | virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter( void) = 0; | ||
| 3447 | |||
| 3448 | virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter( void) = 0; | ||
| 3449 | |||
| 3450 | virtual HRESULT STDMETHODCALLTYPE PushStorageFilter( | ||
| 3451 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; | ||
| 3452 | |||
| 3453 | virtual void STDMETHODCALLTYPE PopStorageFilter( void) = 0; | ||
| 3454 | |||
| 3455 | virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize( void) = 0; | ||
| 3456 | |||
| 3457 | virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries( | ||
| 3458 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; | ||
| 3459 | |||
| 3460 | virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter( | ||
| 3461 | _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, | ||
| 3462 | _Inout_ SIZE_T *pFilterByteLength) = 0; | ||
| 3463 | |||
| 3464 | virtual void STDMETHODCALLTYPE ClearRetrievalFilter( void) = 0; | ||
| 3465 | |||
| 3466 | virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter( void) = 0; | ||
| 3467 | |||
| 3468 | virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter( void) = 0; | ||
| 3469 | |||
| 3470 | virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter( | ||
| 3471 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter) = 0; | ||
| 3472 | |||
| 3473 | virtual void STDMETHODCALLTYPE PopRetrievalFilter( void) = 0; | ||
| 3474 | |||
| 3475 | virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize( void) = 0; | ||
| 3476 | |||
| 3477 | virtual HRESULT STDMETHODCALLTYPE AddMessage( | ||
| 3478 | _In_ D3D12_MESSAGE_CATEGORY Category, | ||
| 3479 | _In_ D3D12_MESSAGE_SEVERITY Severity, | ||
| 3480 | _In_ D3D12_MESSAGE_ID ID, | ||
| 3481 | _In_ LPCSTR pDescription) = 0; | ||
| 3482 | |||
| 3483 | virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage( | ||
| 3484 | _In_ D3D12_MESSAGE_SEVERITY Severity, | ||
| 3485 | _In_ LPCSTR pDescription) = 0; | ||
| 3486 | |||
| 3487 | virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory( | ||
| 3488 | _In_ D3D12_MESSAGE_CATEGORY Category, | ||
| 3489 | _In_ BOOL bEnable) = 0; | ||
| 3490 | |||
| 3491 | virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity( | ||
| 3492 | _In_ D3D12_MESSAGE_SEVERITY Severity, | ||
| 3493 | _In_ BOOL bEnable) = 0; | ||
| 3494 | |||
| 3495 | virtual HRESULT STDMETHODCALLTYPE SetBreakOnID( | ||
| 3496 | _In_ D3D12_MESSAGE_ID ID, | ||
| 3497 | _In_ BOOL bEnable) = 0; | ||
| 3498 | |||
| 3499 | virtual BOOL STDMETHODCALLTYPE GetBreakOnCategory( | ||
| 3500 | _In_ D3D12_MESSAGE_CATEGORY Category) = 0; | ||
| 3501 | |||
| 3502 | virtual BOOL STDMETHODCALLTYPE GetBreakOnSeverity( | ||
| 3503 | _In_ D3D12_MESSAGE_SEVERITY Severity) = 0; | ||
| 3504 | |||
| 3505 | virtual BOOL STDMETHODCALLTYPE GetBreakOnID( | ||
| 3506 | _In_ D3D12_MESSAGE_ID ID) = 0; | ||
| 3507 | |||
| 3508 | virtual void STDMETHODCALLTYPE SetMuteDebugOutput( | ||
| 3509 | _In_ BOOL bMute) = 0; | ||
| 3510 | |||
| 3511 | virtual BOOL STDMETHODCALLTYPE GetMuteDebugOutput( void) = 0; | ||
| 3512 | |||
| 3513 | }; | ||
| 3514 | |||
| 3515 | |||
| 3516 | #else /* C style interface */ | ||
| 3517 | |||
| 3518 | typedef struct ID3D12InfoQueueVtbl | ||
| 3519 | { | ||
| 3520 | BEGIN_INTERFACE | ||
| 3521 | |||
| 3522 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 3523 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 3524 | ID3D12InfoQueue * This, | ||
| 3525 | REFIID riid, | ||
| 3526 | _COM_Outptr_ void **ppvObject); | ||
| 3527 | |||
| 3528 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 3529 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 3530 | ID3D12InfoQueue * This); | ||
| 3531 | |||
| 3532 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 3533 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 3534 | ID3D12InfoQueue * This); | ||
| 3535 | |||
| 3536 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetMessageCountLimit) | ||
| 3537 | HRESULT ( STDMETHODCALLTYPE *SetMessageCountLimit )( | ||
| 3538 | ID3D12InfoQueue * This, | ||
| 3539 | _In_ UINT64 MessageCountLimit); | ||
| 3540 | |||
| 3541 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearStoredMessages) | ||
| 3542 | void ( STDMETHODCALLTYPE *ClearStoredMessages )( | ||
| 3543 | ID3D12InfoQueue * This); | ||
| 3544 | |||
| 3545 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMessage) | ||
| 3546 | HRESULT ( STDMETHODCALLTYPE *GetMessage )( | ||
| 3547 | ID3D12InfoQueue * This, | ||
| 3548 | _In_ UINT64 MessageIndex, | ||
| 3549 | _Out_writes_bytes_opt_(*pMessageByteLength) D3D12_MESSAGE *pMessage, | ||
| 3550 | _Inout_ SIZE_T *pMessageByteLength); | ||
| 3551 | |||
| 3552 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesAllowedByStorageFilter) | ||
| 3553 | UINT64 ( STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter )( | ||
| 3554 | ID3D12InfoQueue * This); | ||
| 3555 | |||
| 3556 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesDeniedByStorageFilter) | ||
| 3557 | UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter )( | ||
| 3558 | ID3D12InfoQueue * This); | ||
| 3559 | |||
| 3560 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumStoredMessages) | ||
| 3561 | UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessages )( | ||
| 3562 | ID3D12InfoQueue * This); | ||
| 3563 | |||
| 3564 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumStoredMessagesAllowedByRetrievalFilter) | ||
| 3565 | UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter )( | ||
| 3566 | ID3D12InfoQueue * This); | ||
| 3567 | |||
| 3568 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesDiscardedByMessageCountLimit) | ||
| 3569 | UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit )( | ||
| 3570 | ID3D12InfoQueue * This); | ||
| 3571 | |||
| 3572 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMessageCountLimit) | ||
| 3573 | UINT64 ( STDMETHODCALLTYPE *GetMessageCountLimit )( | ||
| 3574 | ID3D12InfoQueue * This); | ||
| 3575 | |||
| 3576 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddStorageFilterEntries) | ||
| 3577 | HRESULT ( STDMETHODCALLTYPE *AddStorageFilterEntries )( | ||
| 3578 | ID3D12InfoQueue * This, | ||
| 3579 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter); | ||
| 3580 | |||
| 3581 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetStorageFilter) | ||
| 3582 | HRESULT ( STDMETHODCALLTYPE *GetStorageFilter )( | ||
| 3583 | ID3D12InfoQueue * This, | ||
| 3584 | _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, | ||
| 3585 | _Inout_ SIZE_T *pFilterByteLength); | ||
| 3586 | |||
| 3587 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearStorageFilter) | ||
| 3588 | void ( STDMETHODCALLTYPE *ClearStorageFilter )( | ||
| 3589 | ID3D12InfoQueue * This); | ||
| 3590 | |||
| 3591 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushEmptyStorageFilter) | ||
| 3592 | HRESULT ( STDMETHODCALLTYPE *PushEmptyStorageFilter )( | ||
| 3593 | ID3D12InfoQueue * This); | ||
| 3594 | |||
| 3595 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushCopyOfStorageFilter) | ||
| 3596 | HRESULT ( STDMETHODCALLTYPE *PushCopyOfStorageFilter )( | ||
| 3597 | ID3D12InfoQueue * This); | ||
| 3598 | |||
| 3599 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushStorageFilter) | ||
| 3600 | HRESULT ( STDMETHODCALLTYPE *PushStorageFilter )( | ||
| 3601 | ID3D12InfoQueue * This, | ||
| 3602 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter); | ||
| 3603 | |||
| 3604 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PopStorageFilter) | ||
| 3605 | void ( STDMETHODCALLTYPE *PopStorageFilter )( | ||
| 3606 | ID3D12InfoQueue * This); | ||
| 3607 | |||
| 3608 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetStorageFilterStackSize) | ||
| 3609 | UINT ( STDMETHODCALLTYPE *GetStorageFilterStackSize )( | ||
| 3610 | ID3D12InfoQueue * This); | ||
| 3611 | |||
| 3612 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddRetrievalFilterEntries) | ||
| 3613 | HRESULT ( STDMETHODCALLTYPE *AddRetrievalFilterEntries )( | ||
| 3614 | ID3D12InfoQueue * This, | ||
| 3615 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter); | ||
| 3616 | |||
| 3617 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetRetrievalFilter) | ||
| 3618 | HRESULT ( STDMETHODCALLTYPE *GetRetrievalFilter )( | ||
| 3619 | ID3D12InfoQueue * This, | ||
| 3620 | _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, | ||
| 3621 | _Inout_ SIZE_T *pFilterByteLength); | ||
| 3622 | |||
| 3623 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearRetrievalFilter) | ||
| 3624 | void ( STDMETHODCALLTYPE *ClearRetrievalFilter )( | ||
| 3625 | ID3D12InfoQueue * This); | ||
| 3626 | |||
| 3627 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushEmptyRetrievalFilter) | ||
| 3628 | HRESULT ( STDMETHODCALLTYPE *PushEmptyRetrievalFilter )( | ||
| 3629 | ID3D12InfoQueue * This); | ||
| 3630 | |||
| 3631 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushCopyOfRetrievalFilter) | ||
| 3632 | HRESULT ( STDMETHODCALLTYPE *PushCopyOfRetrievalFilter )( | ||
| 3633 | ID3D12InfoQueue * This); | ||
| 3634 | |||
| 3635 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushRetrievalFilter) | ||
| 3636 | HRESULT ( STDMETHODCALLTYPE *PushRetrievalFilter )( | ||
| 3637 | ID3D12InfoQueue * This, | ||
| 3638 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter); | ||
| 3639 | |||
| 3640 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PopRetrievalFilter) | ||
| 3641 | void ( STDMETHODCALLTYPE *PopRetrievalFilter )( | ||
| 3642 | ID3D12InfoQueue * This); | ||
| 3643 | |||
| 3644 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetRetrievalFilterStackSize) | ||
| 3645 | UINT ( STDMETHODCALLTYPE *GetRetrievalFilterStackSize )( | ||
| 3646 | ID3D12InfoQueue * This); | ||
| 3647 | |||
| 3648 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddMessage) | ||
| 3649 | HRESULT ( STDMETHODCALLTYPE *AddMessage )( | ||
| 3650 | ID3D12InfoQueue * This, | ||
| 3651 | _In_ D3D12_MESSAGE_CATEGORY Category, | ||
| 3652 | _In_ D3D12_MESSAGE_SEVERITY Severity, | ||
| 3653 | _In_ D3D12_MESSAGE_ID ID, | ||
| 3654 | _In_ LPCSTR pDescription); | ||
| 3655 | |||
| 3656 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddApplicationMessage) | ||
| 3657 | HRESULT ( STDMETHODCALLTYPE *AddApplicationMessage )( | ||
| 3658 | ID3D12InfoQueue * This, | ||
| 3659 | _In_ D3D12_MESSAGE_SEVERITY Severity, | ||
| 3660 | _In_ LPCSTR pDescription); | ||
| 3661 | |||
| 3662 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnCategory) | ||
| 3663 | HRESULT ( STDMETHODCALLTYPE *SetBreakOnCategory )( | ||
| 3664 | ID3D12InfoQueue * This, | ||
| 3665 | _In_ D3D12_MESSAGE_CATEGORY Category, | ||
| 3666 | _In_ BOOL bEnable); | ||
| 3667 | |||
| 3668 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnSeverity) | ||
| 3669 | HRESULT ( STDMETHODCALLTYPE *SetBreakOnSeverity )( | ||
| 3670 | ID3D12InfoQueue * This, | ||
| 3671 | _In_ D3D12_MESSAGE_SEVERITY Severity, | ||
| 3672 | _In_ BOOL bEnable); | ||
| 3673 | |||
| 3674 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnID) | ||
| 3675 | HRESULT ( STDMETHODCALLTYPE *SetBreakOnID )( | ||
| 3676 | ID3D12InfoQueue * This, | ||
| 3677 | _In_ D3D12_MESSAGE_ID ID, | ||
| 3678 | _In_ BOOL bEnable); | ||
| 3679 | |||
| 3680 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnCategory) | ||
| 3681 | BOOL ( STDMETHODCALLTYPE *GetBreakOnCategory )( | ||
| 3682 | ID3D12InfoQueue * This, | ||
| 3683 | _In_ D3D12_MESSAGE_CATEGORY Category); | ||
| 3684 | |||
| 3685 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnSeverity) | ||
| 3686 | BOOL ( STDMETHODCALLTYPE *GetBreakOnSeverity )( | ||
| 3687 | ID3D12InfoQueue * This, | ||
| 3688 | _In_ D3D12_MESSAGE_SEVERITY Severity); | ||
| 3689 | |||
| 3690 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnID) | ||
| 3691 | BOOL ( STDMETHODCALLTYPE *GetBreakOnID )( | ||
| 3692 | ID3D12InfoQueue * This, | ||
| 3693 | _In_ D3D12_MESSAGE_ID ID); | ||
| 3694 | |||
| 3695 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetMuteDebugOutput) | ||
| 3696 | void ( STDMETHODCALLTYPE *SetMuteDebugOutput )( | ||
| 3697 | ID3D12InfoQueue * This, | ||
| 3698 | _In_ BOOL bMute); | ||
| 3699 | |||
| 3700 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMuteDebugOutput) | ||
| 3701 | BOOL ( STDMETHODCALLTYPE *GetMuteDebugOutput )( | ||
| 3702 | ID3D12InfoQueue * This); | ||
| 3703 | |||
| 3704 | END_INTERFACE | ||
| 3705 | } ID3D12InfoQueueVtbl; | ||
| 3706 | |||
| 3707 | interface ID3D12InfoQueue | ||
| 3708 | { | ||
| 3709 | CONST_VTBL struct ID3D12InfoQueueVtbl *lpVtbl; | ||
| 3710 | }; | ||
| 3711 | |||
| 3712 | |||
| 3713 | |||
| 3714 | #ifdef COBJMACROS | ||
| 3715 | |||
| 3716 | |||
| 3717 | #define ID3D12InfoQueue_QueryInterface(This,riid,ppvObject) \ | ||
| 3718 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 3719 | |||
| 3720 | #define ID3D12InfoQueue_AddRef(This) \ | ||
| 3721 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 3722 | |||
| 3723 | #define ID3D12InfoQueue_Release(This) \ | ||
| 3724 | ( (This)->lpVtbl -> Release(This) ) | ||
| 3725 | |||
| 3726 | |||
| 3727 | #define ID3D12InfoQueue_SetMessageCountLimit(This,MessageCountLimit) \ | ||
| 3728 | ( (This)->lpVtbl -> SetMessageCountLimit(This,MessageCountLimit) ) | ||
| 3729 | |||
| 3730 | #define ID3D12InfoQueue_ClearStoredMessages(This) \ | ||
| 3731 | ( (This)->lpVtbl -> ClearStoredMessages(This) ) | ||
| 3732 | |||
| 3733 | #define ID3D12InfoQueue_GetMessage(This,MessageIndex,pMessage,pMessageByteLength) \ | ||
| 3734 | ( (This)->lpVtbl -> GetMessage(This,MessageIndex,pMessage,pMessageByteLength) ) | ||
| 3735 | |||
| 3736 | #define ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter(This) \ | ||
| 3737 | ( (This)->lpVtbl -> GetNumMessagesAllowedByStorageFilter(This) ) | ||
| 3738 | |||
| 3739 | #define ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter(This) \ | ||
| 3740 | ( (This)->lpVtbl -> GetNumMessagesDeniedByStorageFilter(This) ) | ||
| 3741 | |||
| 3742 | #define ID3D12InfoQueue_GetNumStoredMessages(This) \ | ||
| 3743 | ( (This)->lpVtbl -> GetNumStoredMessages(This) ) | ||
| 3744 | |||
| 3745 | #define ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This) \ | ||
| 3746 | ( (This)->lpVtbl -> GetNumStoredMessagesAllowedByRetrievalFilter(This) ) | ||
| 3747 | |||
| 3748 | #define ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This) \ | ||
| 3749 | ( (This)->lpVtbl -> GetNumMessagesDiscardedByMessageCountLimit(This) ) | ||
| 3750 | |||
| 3751 | #define ID3D12InfoQueue_GetMessageCountLimit(This) \ | ||
| 3752 | ( (This)->lpVtbl -> GetMessageCountLimit(This) ) | ||
| 3753 | |||
| 3754 | #define ID3D12InfoQueue_AddStorageFilterEntries(This,pFilter) \ | ||
| 3755 | ( (This)->lpVtbl -> AddStorageFilterEntries(This,pFilter) ) | ||
| 3756 | |||
| 3757 | #define ID3D12InfoQueue_GetStorageFilter(This,pFilter,pFilterByteLength) \ | ||
| 3758 | ( (This)->lpVtbl -> GetStorageFilter(This,pFilter,pFilterByteLength) ) | ||
| 3759 | |||
| 3760 | #define ID3D12InfoQueue_ClearStorageFilter(This) \ | ||
| 3761 | ( (This)->lpVtbl -> ClearStorageFilter(This) ) | ||
| 3762 | |||
| 3763 | #define ID3D12InfoQueue_PushEmptyStorageFilter(This) \ | ||
| 3764 | ( (This)->lpVtbl -> PushEmptyStorageFilter(This) ) | ||
| 3765 | |||
| 3766 | #define ID3D12InfoQueue_PushCopyOfStorageFilter(This) \ | ||
| 3767 | ( (This)->lpVtbl -> PushCopyOfStorageFilter(This) ) | ||
| 3768 | |||
| 3769 | #define ID3D12InfoQueue_PushStorageFilter(This,pFilter) \ | ||
| 3770 | ( (This)->lpVtbl -> PushStorageFilter(This,pFilter) ) | ||
| 3771 | |||
| 3772 | #define ID3D12InfoQueue_PopStorageFilter(This) \ | ||
| 3773 | ( (This)->lpVtbl -> PopStorageFilter(This) ) | ||
| 3774 | |||
| 3775 | #define ID3D12InfoQueue_GetStorageFilterStackSize(This) \ | ||
| 3776 | ( (This)->lpVtbl -> GetStorageFilterStackSize(This) ) | ||
| 3777 | |||
| 3778 | #define ID3D12InfoQueue_AddRetrievalFilterEntries(This,pFilter) \ | ||
| 3779 | ( (This)->lpVtbl -> AddRetrievalFilterEntries(This,pFilter) ) | ||
| 3780 | |||
| 3781 | #define ID3D12InfoQueue_GetRetrievalFilter(This,pFilter,pFilterByteLength) \ | ||
| 3782 | ( (This)->lpVtbl -> GetRetrievalFilter(This,pFilter,pFilterByteLength) ) | ||
| 3783 | |||
| 3784 | #define ID3D12InfoQueue_ClearRetrievalFilter(This) \ | ||
| 3785 | ( (This)->lpVtbl -> ClearRetrievalFilter(This) ) | ||
| 3786 | |||
| 3787 | #define ID3D12InfoQueue_PushEmptyRetrievalFilter(This) \ | ||
| 3788 | ( (This)->lpVtbl -> PushEmptyRetrievalFilter(This) ) | ||
| 3789 | |||
| 3790 | #define ID3D12InfoQueue_PushCopyOfRetrievalFilter(This) \ | ||
| 3791 | ( (This)->lpVtbl -> PushCopyOfRetrievalFilter(This) ) | ||
| 3792 | |||
| 3793 | #define ID3D12InfoQueue_PushRetrievalFilter(This,pFilter) \ | ||
| 3794 | ( (This)->lpVtbl -> PushRetrievalFilter(This,pFilter) ) | ||
| 3795 | |||
| 3796 | #define ID3D12InfoQueue_PopRetrievalFilter(This) \ | ||
| 3797 | ( (This)->lpVtbl -> PopRetrievalFilter(This) ) | ||
| 3798 | |||
| 3799 | #define ID3D12InfoQueue_GetRetrievalFilterStackSize(This) \ | ||
| 3800 | ( (This)->lpVtbl -> GetRetrievalFilterStackSize(This) ) | ||
| 3801 | |||
| 3802 | #define ID3D12InfoQueue_AddMessage(This,Category,Severity,ID,pDescription) \ | ||
| 3803 | ( (This)->lpVtbl -> AddMessage(This,Category,Severity,ID,pDescription) ) | ||
| 3804 | |||
| 3805 | #define ID3D12InfoQueue_AddApplicationMessage(This,Severity,pDescription) \ | ||
| 3806 | ( (This)->lpVtbl -> AddApplicationMessage(This,Severity,pDescription) ) | ||
| 3807 | |||
| 3808 | #define ID3D12InfoQueue_SetBreakOnCategory(This,Category,bEnable) \ | ||
| 3809 | ( (This)->lpVtbl -> SetBreakOnCategory(This,Category,bEnable) ) | ||
| 3810 | |||
| 3811 | #define ID3D12InfoQueue_SetBreakOnSeverity(This,Severity,bEnable) \ | ||
| 3812 | ( (This)->lpVtbl -> SetBreakOnSeverity(This,Severity,bEnable) ) | ||
| 3813 | |||
| 3814 | #define ID3D12InfoQueue_SetBreakOnID(This,ID,bEnable) \ | ||
| 3815 | ( (This)->lpVtbl -> SetBreakOnID(This,ID,bEnable) ) | ||
| 3816 | |||
| 3817 | #define ID3D12InfoQueue_GetBreakOnCategory(This,Category) \ | ||
| 3818 | ( (This)->lpVtbl -> GetBreakOnCategory(This,Category) ) | ||
| 3819 | |||
| 3820 | #define ID3D12InfoQueue_GetBreakOnSeverity(This,Severity) \ | ||
| 3821 | ( (This)->lpVtbl -> GetBreakOnSeverity(This,Severity) ) | ||
| 3822 | |||
| 3823 | #define ID3D12InfoQueue_GetBreakOnID(This,ID) \ | ||
| 3824 | ( (This)->lpVtbl -> GetBreakOnID(This,ID) ) | ||
| 3825 | |||
| 3826 | #define ID3D12InfoQueue_SetMuteDebugOutput(This,bMute) \ | ||
| 3827 | ( (This)->lpVtbl -> SetMuteDebugOutput(This,bMute) ) | ||
| 3828 | |||
| 3829 | #define ID3D12InfoQueue_GetMuteDebugOutput(This) \ | ||
| 3830 | ( (This)->lpVtbl -> GetMuteDebugOutput(This) ) | ||
| 3831 | |||
| 3832 | #endif /* COBJMACROS */ | ||
| 3833 | |||
| 3834 | |||
| 3835 | #endif /* C style interface */ | ||
| 3836 | |||
| 3837 | |||
| 3838 | |||
| 3839 | |||
| 3840 | #endif /* __ID3D12InfoQueue_INTERFACE_DEFINED__ */ | ||
| 3841 | |||
| 3842 | |||
| 3843 | /* interface __MIDL_itf_d3d12sdklayers_0000_0019 */ | ||
| 3844 | /* [local] */ | ||
| 3845 | |||
| 3846 | typedef | ||
| 3847 | enum D3D12_MESSAGE_CALLBACK_FLAGS | ||
| 3848 | { | ||
| 3849 | D3D12_MESSAGE_CALLBACK_FLAG_NONE = 0, | ||
| 3850 | D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS = 0x1 | ||
| 3851 | } D3D12_MESSAGE_CALLBACK_FLAGS; | ||
| 3852 | |||
| 3853 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_MESSAGE_CALLBACK_FLAGS) | ||
| 3854 | typedef void ( __stdcall *D3D12MessageFunc )( | ||
| 3855 | D3D12_MESSAGE_CATEGORY Category, | ||
| 3856 | D3D12_MESSAGE_SEVERITY Severity, | ||
| 3857 | D3D12_MESSAGE_ID ID, | ||
| 3858 | LPCSTR pDescription, | ||
| 3859 | void *pContext); | ||
| 3860 | |||
| 3861 | |||
| 3862 | |||
| 3863 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0019_v0_0_c_ifspec; | ||
| 3864 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0019_v0_0_s_ifspec; | ||
| 3865 | |||
| 3866 | #ifndef __ID3D12InfoQueue1_INTERFACE_DEFINED__ | ||
| 3867 | #define __ID3D12InfoQueue1_INTERFACE_DEFINED__ | ||
| 3868 | |||
| 3869 | /* interface ID3D12InfoQueue1 */ | ||
| 3870 | /* [unique][local][object][uuid] */ | ||
| 3871 | |||
| 3872 | |||
| 3873 | EXTERN_C const IID IID_ID3D12InfoQueue1; | ||
| 3874 | |||
| 3875 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 3876 | |||
| 3877 | MIDL_INTERFACE("2852dd88-b484-4c0c-b6b1-67168500e600") | ||
| 3878 | ID3D12InfoQueue1 : public ID3D12InfoQueue | ||
| 3879 | { | ||
| 3880 | public: | ||
| 3881 | virtual HRESULT STDMETHODCALLTYPE RegisterMessageCallback( | ||
| 3882 | _In_ D3D12MessageFunc CallbackFunc, | ||
| 3883 | _In_ D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, | ||
| 3884 | _Inout_ void *pContext, | ||
| 3885 | _Inout_ DWORD *pCallbackCookie) = 0; | ||
| 3886 | |||
| 3887 | virtual HRESULT STDMETHODCALLTYPE UnregisterMessageCallback( | ||
| 3888 | _In_ DWORD CallbackCookie) = 0; | ||
| 3889 | |||
| 3890 | }; | ||
| 3891 | |||
| 3892 | |||
| 3893 | #else /* C style interface */ | ||
| 3894 | |||
| 3895 | typedef struct ID3D12InfoQueue1Vtbl | ||
| 3896 | { | ||
| 3897 | BEGIN_INTERFACE | ||
| 3898 | |||
| 3899 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 3900 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 3901 | ID3D12InfoQueue1 * This, | ||
| 3902 | REFIID riid, | ||
| 3903 | _COM_Outptr_ void **ppvObject); | ||
| 3904 | |||
| 3905 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 3906 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 3907 | ID3D12InfoQueue1 * This); | ||
| 3908 | |||
| 3909 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 3910 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 3911 | ID3D12InfoQueue1 * This); | ||
| 3912 | |||
| 3913 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetMessageCountLimit) | ||
| 3914 | HRESULT ( STDMETHODCALLTYPE *SetMessageCountLimit )( | ||
| 3915 | ID3D12InfoQueue1 * This, | ||
| 3916 | _In_ UINT64 MessageCountLimit); | ||
| 3917 | |||
| 3918 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearStoredMessages) | ||
| 3919 | void ( STDMETHODCALLTYPE *ClearStoredMessages )( | ||
| 3920 | ID3D12InfoQueue1 * This); | ||
| 3921 | |||
| 3922 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMessage) | ||
| 3923 | HRESULT ( STDMETHODCALLTYPE *GetMessage )( | ||
| 3924 | ID3D12InfoQueue1 * This, | ||
| 3925 | _In_ UINT64 MessageIndex, | ||
| 3926 | _Out_writes_bytes_opt_(*pMessageByteLength) D3D12_MESSAGE *pMessage, | ||
| 3927 | _Inout_ SIZE_T *pMessageByteLength); | ||
| 3928 | |||
| 3929 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesAllowedByStorageFilter) | ||
| 3930 | UINT64 ( STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter )( | ||
| 3931 | ID3D12InfoQueue1 * This); | ||
| 3932 | |||
| 3933 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesDeniedByStorageFilter) | ||
| 3934 | UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter )( | ||
| 3935 | ID3D12InfoQueue1 * This); | ||
| 3936 | |||
| 3937 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumStoredMessages) | ||
| 3938 | UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessages )( | ||
| 3939 | ID3D12InfoQueue1 * This); | ||
| 3940 | |||
| 3941 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumStoredMessagesAllowedByRetrievalFilter) | ||
| 3942 | UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter )( | ||
| 3943 | ID3D12InfoQueue1 * This); | ||
| 3944 | |||
| 3945 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetNumMessagesDiscardedByMessageCountLimit) | ||
| 3946 | UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit )( | ||
| 3947 | ID3D12InfoQueue1 * This); | ||
| 3948 | |||
| 3949 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMessageCountLimit) | ||
| 3950 | UINT64 ( STDMETHODCALLTYPE *GetMessageCountLimit )( | ||
| 3951 | ID3D12InfoQueue1 * This); | ||
| 3952 | |||
| 3953 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddStorageFilterEntries) | ||
| 3954 | HRESULT ( STDMETHODCALLTYPE *AddStorageFilterEntries )( | ||
| 3955 | ID3D12InfoQueue1 * This, | ||
| 3956 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter); | ||
| 3957 | |||
| 3958 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetStorageFilter) | ||
| 3959 | HRESULT ( STDMETHODCALLTYPE *GetStorageFilter )( | ||
| 3960 | ID3D12InfoQueue1 * This, | ||
| 3961 | _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, | ||
| 3962 | _Inout_ SIZE_T *pFilterByteLength); | ||
| 3963 | |||
| 3964 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearStorageFilter) | ||
| 3965 | void ( STDMETHODCALLTYPE *ClearStorageFilter )( | ||
| 3966 | ID3D12InfoQueue1 * This); | ||
| 3967 | |||
| 3968 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushEmptyStorageFilter) | ||
| 3969 | HRESULT ( STDMETHODCALLTYPE *PushEmptyStorageFilter )( | ||
| 3970 | ID3D12InfoQueue1 * This); | ||
| 3971 | |||
| 3972 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushCopyOfStorageFilter) | ||
| 3973 | HRESULT ( STDMETHODCALLTYPE *PushCopyOfStorageFilter )( | ||
| 3974 | ID3D12InfoQueue1 * This); | ||
| 3975 | |||
| 3976 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushStorageFilter) | ||
| 3977 | HRESULT ( STDMETHODCALLTYPE *PushStorageFilter )( | ||
| 3978 | ID3D12InfoQueue1 * This, | ||
| 3979 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter); | ||
| 3980 | |||
| 3981 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PopStorageFilter) | ||
| 3982 | void ( STDMETHODCALLTYPE *PopStorageFilter )( | ||
| 3983 | ID3D12InfoQueue1 * This); | ||
| 3984 | |||
| 3985 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetStorageFilterStackSize) | ||
| 3986 | UINT ( STDMETHODCALLTYPE *GetStorageFilterStackSize )( | ||
| 3987 | ID3D12InfoQueue1 * This); | ||
| 3988 | |||
| 3989 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddRetrievalFilterEntries) | ||
| 3990 | HRESULT ( STDMETHODCALLTYPE *AddRetrievalFilterEntries )( | ||
| 3991 | ID3D12InfoQueue1 * This, | ||
| 3992 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter); | ||
| 3993 | |||
| 3994 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetRetrievalFilter) | ||
| 3995 | HRESULT ( STDMETHODCALLTYPE *GetRetrievalFilter )( | ||
| 3996 | ID3D12InfoQueue1 * This, | ||
| 3997 | _Out_writes_bytes_opt_(*pFilterByteLength) D3D12_INFO_QUEUE_FILTER *pFilter, | ||
| 3998 | _Inout_ SIZE_T *pFilterByteLength); | ||
| 3999 | |||
| 4000 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, ClearRetrievalFilter) | ||
| 4001 | void ( STDMETHODCALLTYPE *ClearRetrievalFilter )( | ||
| 4002 | ID3D12InfoQueue1 * This); | ||
| 4003 | |||
| 4004 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushEmptyRetrievalFilter) | ||
| 4005 | HRESULT ( STDMETHODCALLTYPE *PushEmptyRetrievalFilter )( | ||
| 4006 | ID3D12InfoQueue1 * This); | ||
| 4007 | |||
| 4008 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushCopyOfRetrievalFilter) | ||
| 4009 | HRESULT ( STDMETHODCALLTYPE *PushCopyOfRetrievalFilter )( | ||
| 4010 | ID3D12InfoQueue1 * This); | ||
| 4011 | |||
| 4012 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PushRetrievalFilter) | ||
| 4013 | HRESULT ( STDMETHODCALLTYPE *PushRetrievalFilter )( | ||
| 4014 | ID3D12InfoQueue1 * This, | ||
| 4015 | _In_ D3D12_INFO_QUEUE_FILTER *pFilter); | ||
| 4016 | |||
| 4017 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, PopRetrievalFilter) | ||
| 4018 | void ( STDMETHODCALLTYPE *PopRetrievalFilter )( | ||
| 4019 | ID3D12InfoQueue1 * This); | ||
| 4020 | |||
| 4021 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetRetrievalFilterStackSize) | ||
| 4022 | UINT ( STDMETHODCALLTYPE *GetRetrievalFilterStackSize )( | ||
| 4023 | ID3D12InfoQueue1 * This); | ||
| 4024 | |||
| 4025 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddMessage) | ||
| 4026 | HRESULT ( STDMETHODCALLTYPE *AddMessage )( | ||
| 4027 | ID3D12InfoQueue1 * This, | ||
| 4028 | _In_ D3D12_MESSAGE_CATEGORY Category, | ||
| 4029 | _In_ D3D12_MESSAGE_SEVERITY Severity, | ||
| 4030 | _In_ D3D12_MESSAGE_ID ID, | ||
| 4031 | _In_ LPCSTR pDescription); | ||
| 4032 | |||
| 4033 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, AddApplicationMessage) | ||
| 4034 | HRESULT ( STDMETHODCALLTYPE *AddApplicationMessage )( | ||
| 4035 | ID3D12InfoQueue1 * This, | ||
| 4036 | _In_ D3D12_MESSAGE_SEVERITY Severity, | ||
| 4037 | _In_ LPCSTR pDescription); | ||
| 4038 | |||
| 4039 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnCategory) | ||
| 4040 | HRESULT ( STDMETHODCALLTYPE *SetBreakOnCategory )( | ||
| 4041 | ID3D12InfoQueue1 * This, | ||
| 4042 | _In_ D3D12_MESSAGE_CATEGORY Category, | ||
| 4043 | _In_ BOOL bEnable); | ||
| 4044 | |||
| 4045 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnSeverity) | ||
| 4046 | HRESULT ( STDMETHODCALLTYPE *SetBreakOnSeverity )( | ||
| 4047 | ID3D12InfoQueue1 * This, | ||
| 4048 | _In_ D3D12_MESSAGE_SEVERITY Severity, | ||
| 4049 | _In_ BOOL bEnable); | ||
| 4050 | |||
| 4051 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetBreakOnID) | ||
| 4052 | HRESULT ( STDMETHODCALLTYPE *SetBreakOnID )( | ||
| 4053 | ID3D12InfoQueue1 * This, | ||
| 4054 | _In_ D3D12_MESSAGE_ID ID, | ||
| 4055 | _In_ BOOL bEnable); | ||
| 4056 | |||
| 4057 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnCategory) | ||
| 4058 | BOOL ( STDMETHODCALLTYPE *GetBreakOnCategory )( | ||
| 4059 | ID3D12InfoQueue1 * This, | ||
| 4060 | _In_ D3D12_MESSAGE_CATEGORY Category); | ||
| 4061 | |||
| 4062 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnSeverity) | ||
| 4063 | BOOL ( STDMETHODCALLTYPE *GetBreakOnSeverity )( | ||
| 4064 | ID3D12InfoQueue1 * This, | ||
| 4065 | _In_ D3D12_MESSAGE_SEVERITY Severity); | ||
| 4066 | |||
| 4067 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetBreakOnID) | ||
| 4068 | BOOL ( STDMETHODCALLTYPE *GetBreakOnID )( | ||
| 4069 | ID3D12InfoQueue1 * This, | ||
| 4070 | _In_ D3D12_MESSAGE_ID ID); | ||
| 4071 | |||
| 4072 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, SetMuteDebugOutput) | ||
| 4073 | void ( STDMETHODCALLTYPE *SetMuteDebugOutput )( | ||
| 4074 | ID3D12InfoQueue1 * This, | ||
| 4075 | _In_ BOOL bMute); | ||
| 4076 | |||
| 4077 | DECLSPEC_XFGVIRT(ID3D12InfoQueue, GetMuteDebugOutput) | ||
| 4078 | BOOL ( STDMETHODCALLTYPE *GetMuteDebugOutput )( | ||
| 4079 | ID3D12InfoQueue1 * This); | ||
| 4080 | |||
| 4081 | DECLSPEC_XFGVIRT(ID3D12InfoQueue1, RegisterMessageCallback) | ||
| 4082 | HRESULT ( STDMETHODCALLTYPE *RegisterMessageCallback )( | ||
| 4083 | ID3D12InfoQueue1 * This, | ||
| 4084 | _In_ D3D12MessageFunc CallbackFunc, | ||
| 4085 | _In_ D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, | ||
| 4086 | _Inout_ void *pContext, | ||
| 4087 | _Inout_ DWORD *pCallbackCookie); | ||
| 4088 | |||
| 4089 | DECLSPEC_XFGVIRT(ID3D12InfoQueue1, UnregisterMessageCallback) | ||
| 4090 | HRESULT ( STDMETHODCALLTYPE *UnregisterMessageCallback )( | ||
| 4091 | ID3D12InfoQueue1 * This, | ||
| 4092 | _In_ DWORD CallbackCookie); | ||
| 4093 | |||
| 4094 | END_INTERFACE | ||
| 4095 | } ID3D12InfoQueue1Vtbl; | ||
| 4096 | |||
| 4097 | interface ID3D12InfoQueue1 | ||
| 4098 | { | ||
| 4099 | CONST_VTBL struct ID3D12InfoQueue1Vtbl *lpVtbl; | ||
| 4100 | }; | ||
| 4101 | |||
| 4102 | |||
| 4103 | |||
| 4104 | #ifdef COBJMACROS | ||
| 4105 | |||
| 4106 | |||
| 4107 | #define ID3D12InfoQueue1_QueryInterface(This,riid,ppvObject) \ | ||
| 4108 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4109 | |||
| 4110 | #define ID3D12InfoQueue1_AddRef(This) \ | ||
| 4111 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4112 | |||
| 4113 | #define ID3D12InfoQueue1_Release(This) \ | ||
| 4114 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4115 | |||
| 4116 | |||
| 4117 | #define ID3D12InfoQueue1_SetMessageCountLimit(This,MessageCountLimit) \ | ||
| 4118 | ( (This)->lpVtbl -> SetMessageCountLimit(This,MessageCountLimit) ) | ||
| 4119 | |||
| 4120 | #define ID3D12InfoQueue1_ClearStoredMessages(This) \ | ||
| 4121 | ( (This)->lpVtbl -> ClearStoredMessages(This) ) | ||
| 4122 | |||
| 4123 | #define ID3D12InfoQueue1_GetMessage(This,MessageIndex,pMessage,pMessageByteLength) \ | ||
| 4124 | ( (This)->lpVtbl -> GetMessage(This,MessageIndex,pMessage,pMessageByteLength) ) | ||
| 4125 | |||
| 4126 | #define ID3D12InfoQueue1_GetNumMessagesAllowedByStorageFilter(This) \ | ||
| 4127 | ( (This)->lpVtbl -> GetNumMessagesAllowedByStorageFilter(This) ) | ||
| 4128 | |||
| 4129 | #define ID3D12InfoQueue1_GetNumMessagesDeniedByStorageFilter(This) \ | ||
| 4130 | ( (This)->lpVtbl -> GetNumMessagesDeniedByStorageFilter(This) ) | ||
| 4131 | |||
| 4132 | #define ID3D12InfoQueue1_GetNumStoredMessages(This) \ | ||
| 4133 | ( (This)->lpVtbl -> GetNumStoredMessages(This) ) | ||
| 4134 | |||
| 4135 | #define ID3D12InfoQueue1_GetNumStoredMessagesAllowedByRetrievalFilter(This) \ | ||
| 4136 | ( (This)->lpVtbl -> GetNumStoredMessagesAllowedByRetrievalFilter(This) ) | ||
| 4137 | |||
| 4138 | #define ID3D12InfoQueue1_GetNumMessagesDiscardedByMessageCountLimit(This) \ | ||
| 4139 | ( (This)->lpVtbl -> GetNumMessagesDiscardedByMessageCountLimit(This) ) | ||
| 4140 | |||
| 4141 | #define ID3D12InfoQueue1_GetMessageCountLimit(This) \ | ||
| 4142 | ( (This)->lpVtbl -> GetMessageCountLimit(This) ) | ||
| 4143 | |||
| 4144 | #define ID3D12InfoQueue1_AddStorageFilterEntries(This,pFilter) \ | ||
| 4145 | ( (This)->lpVtbl -> AddStorageFilterEntries(This,pFilter) ) | ||
| 4146 | |||
| 4147 | #define ID3D12InfoQueue1_GetStorageFilter(This,pFilter,pFilterByteLength) \ | ||
| 4148 | ( (This)->lpVtbl -> GetStorageFilter(This,pFilter,pFilterByteLength) ) | ||
| 4149 | |||
| 4150 | #define ID3D12InfoQueue1_ClearStorageFilter(This) \ | ||
| 4151 | ( (This)->lpVtbl -> ClearStorageFilter(This) ) | ||
| 4152 | |||
| 4153 | #define ID3D12InfoQueue1_PushEmptyStorageFilter(This) \ | ||
| 4154 | ( (This)->lpVtbl -> PushEmptyStorageFilter(This) ) | ||
| 4155 | |||
| 4156 | #define ID3D12InfoQueue1_PushCopyOfStorageFilter(This) \ | ||
| 4157 | ( (This)->lpVtbl -> PushCopyOfStorageFilter(This) ) | ||
| 4158 | |||
| 4159 | #define ID3D12InfoQueue1_PushStorageFilter(This,pFilter) \ | ||
| 4160 | ( (This)->lpVtbl -> PushStorageFilter(This,pFilter) ) | ||
| 4161 | |||
| 4162 | #define ID3D12InfoQueue1_PopStorageFilter(This) \ | ||
| 4163 | ( (This)->lpVtbl -> PopStorageFilter(This) ) | ||
| 4164 | |||
| 4165 | #define ID3D12InfoQueue1_GetStorageFilterStackSize(This) \ | ||
| 4166 | ( (This)->lpVtbl -> GetStorageFilterStackSize(This) ) | ||
| 4167 | |||
| 4168 | #define ID3D12InfoQueue1_AddRetrievalFilterEntries(This,pFilter) \ | ||
| 4169 | ( (This)->lpVtbl -> AddRetrievalFilterEntries(This,pFilter) ) | ||
| 4170 | |||
| 4171 | #define ID3D12InfoQueue1_GetRetrievalFilter(This,pFilter,pFilterByteLength) \ | ||
| 4172 | ( (This)->lpVtbl -> GetRetrievalFilter(This,pFilter,pFilterByteLength) ) | ||
| 4173 | |||
| 4174 | #define ID3D12InfoQueue1_ClearRetrievalFilter(This) \ | ||
| 4175 | ( (This)->lpVtbl -> ClearRetrievalFilter(This) ) | ||
| 4176 | |||
| 4177 | #define ID3D12InfoQueue1_PushEmptyRetrievalFilter(This) \ | ||
| 4178 | ( (This)->lpVtbl -> PushEmptyRetrievalFilter(This) ) | ||
| 4179 | |||
| 4180 | #define ID3D12InfoQueue1_PushCopyOfRetrievalFilter(This) \ | ||
| 4181 | ( (This)->lpVtbl -> PushCopyOfRetrievalFilter(This) ) | ||
| 4182 | |||
| 4183 | #define ID3D12InfoQueue1_PushRetrievalFilter(This,pFilter) \ | ||
| 4184 | ( (This)->lpVtbl -> PushRetrievalFilter(This,pFilter) ) | ||
| 4185 | |||
| 4186 | #define ID3D12InfoQueue1_PopRetrievalFilter(This) \ | ||
| 4187 | ( (This)->lpVtbl -> PopRetrievalFilter(This) ) | ||
| 4188 | |||
| 4189 | #define ID3D12InfoQueue1_GetRetrievalFilterStackSize(This) \ | ||
| 4190 | ( (This)->lpVtbl -> GetRetrievalFilterStackSize(This) ) | ||
| 4191 | |||
| 4192 | #define ID3D12InfoQueue1_AddMessage(This,Category,Severity,ID,pDescription) \ | ||
| 4193 | ( (This)->lpVtbl -> AddMessage(This,Category,Severity,ID,pDescription) ) | ||
| 4194 | |||
| 4195 | #define ID3D12InfoQueue1_AddApplicationMessage(This,Severity,pDescription) \ | ||
| 4196 | ( (This)->lpVtbl -> AddApplicationMessage(This,Severity,pDescription) ) | ||
| 4197 | |||
| 4198 | #define ID3D12InfoQueue1_SetBreakOnCategory(This,Category,bEnable) \ | ||
| 4199 | ( (This)->lpVtbl -> SetBreakOnCategory(This,Category,bEnable) ) | ||
| 4200 | |||
| 4201 | #define ID3D12InfoQueue1_SetBreakOnSeverity(This,Severity,bEnable) \ | ||
| 4202 | ( (This)->lpVtbl -> SetBreakOnSeverity(This,Severity,bEnable) ) | ||
| 4203 | |||
| 4204 | #define ID3D12InfoQueue1_SetBreakOnID(This,ID,bEnable) \ | ||
| 4205 | ( (This)->lpVtbl -> SetBreakOnID(This,ID,bEnable) ) | ||
| 4206 | |||
| 4207 | #define ID3D12InfoQueue1_GetBreakOnCategory(This,Category) \ | ||
| 4208 | ( (This)->lpVtbl -> GetBreakOnCategory(This,Category) ) | ||
| 4209 | |||
| 4210 | #define ID3D12InfoQueue1_GetBreakOnSeverity(This,Severity) \ | ||
| 4211 | ( (This)->lpVtbl -> GetBreakOnSeverity(This,Severity) ) | ||
| 4212 | |||
| 4213 | #define ID3D12InfoQueue1_GetBreakOnID(This,ID) \ | ||
| 4214 | ( (This)->lpVtbl -> GetBreakOnID(This,ID) ) | ||
| 4215 | |||
| 4216 | #define ID3D12InfoQueue1_SetMuteDebugOutput(This,bMute) \ | ||
| 4217 | ( (This)->lpVtbl -> SetMuteDebugOutput(This,bMute) ) | ||
| 4218 | |||
| 4219 | #define ID3D12InfoQueue1_GetMuteDebugOutput(This) \ | ||
| 4220 | ( (This)->lpVtbl -> GetMuteDebugOutput(This) ) | ||
| 4221 | |||
| 4222 | |||
| 4223 | #define ID3D12InfoQueue1_RegisterMessageCallback(This,CallbackFunc,CallbackFilterFlags,pContext,pCallbackCookie) \ | ||
| 4224 | ( (This)->lpVtbl -> RegisterMessageCallback(This,CallbackFunc,CallbackFilterFlags,pContext,pCallbackCookie) ) | ||
| 4225 | |||
| 4226 | #define ID3D12InfoQueue1_UnregisterMessageCallback(This,CallbackCookie) \ | ||
| 4227 | ( (This)->lpVtbl -> UnregisterMessageCallback(This,CallbackCookie) ) | ||
| 4228 | |||
| 4229 | #endif /* COBJMACROS */ | ||
| 4230 | |||
| 4231 | |||
| 4232 | #endif /* C style interface */ | ||
| 4233 | |||
| 4234 | |||
| 4235 | |||
| 4236 | |||
| 4237 | #endif /* __ID3D12InfoQueue1_INTERFACE_DEFINED__ */ | ||
| 4238 | |||
| 4239 | |||
| 4240 | /* interface __MIDL_itf_d3d12sdklayers_0000_0020 */ | ||
| 4241 | /* [local] */ | ||
| 4242 | |||
| 4243 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ | ||
| 4244 | #pragma endregion | ||
| 4245 | DEFINE_GUID(IID_ID3D12Debug,0x344488b7,0x6846,0x474b,0xb9,0x89,0xf0,0x27,0x44,0x82,0x45,0xe0); | ||
| 4246 | DEFINE_GUID(IID_ID3D12Debug1,0xaffaa4ca,0x63fe,0x4d8e,0xb8,0xad,0x15,0x90,0x00,0xaf,0x43,0x04); | ||
| 4247 | DEFINE_GUID(IID_ID3D12Debug2,0x93a665c4,0xa3b2,0x4e5d,0xb6,0x92,0xa2,0x6a,0xe1,0x4e,0x33,0x74); | ||
| 4248 | DEFINE_GUID(IID_ID3D12Debug3,0x5cf4e58f,0xf671,0x4ff1,0xa5,0x42,0x36,0x86,0xe3,0xd1,0x53,0xd1); | ||
| 4249 | DEFINE_GUID(IID_ID3D12Debug4,0x014b816e,0x9ec5,0x4a2f,0xa8,0x45,0xff,0xbe,0x44,0x1c,0xe1,0x3a); | ||
| 4250 | DEFINE_GUID(IID_ID3D12Debug5,0x548d6b12,0x09fa,0x40e0,0x90,0x69,0x5d,0xcd,0x58,0x9a,0x52,0xc9); | ||
| 4251 | DEFINE_GUID(IID_ID3D12Debug6,0x82a816d6,0x5d01,0x4157,0x97,0xd0,0x49,0x75,0x46,0x3f,0xd1,0xed); | ||
| 4252 | DEFINE_GUID(IID_ID3D12DebugDevice1,0xa9b71770,0xd099,0x4a65,0xa6,0x98,0x3d,0xee,0x10,0x02,0x0f,0x88); | ||
| 4253 | DEFINE_GUID(IID_ID3D12DebugDevice,0x3febd6dd,0x4973,0x4787,0x81,0x94,0xe4,0x5f,0x9e,0x28,0x92,0x3e); | ||
| 4254 | DEFINE_GUID(IID_ID3D12DebugDevice2,0x60eccbc1,0x378d,0x4df1,0x89,0x4c,0xf8,0xac,0x5c,0xe4,0xd7,0xdd); | ||
| 4255 | DEFINE_GUID(IID_ID3D12DebugCommandQueue,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3a); | ||
| 4256 | DEFINE_GUID(IID_ID3D12DebugCommandQueue1,0x16be35a2,0xbfd6,0x49f2,0xbc,0xae,0xea,0xae,0x4a,0xff,0x86,0x2d); | ||
| 4257 | DEFINE_GUID(IID_ID3D12DebugCommandList1,0x102ca951,0x311b,0x4b01,0xb1,0x1f,0xec,0xb8,0x3e,0x06,0x1b,0x37); | ||
| 4258 | DEFINE_GUID(IID_ID3D12DebugCommandList,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3f); | ||
| 4259 | DEFINE_GUID(IID_ID3D12DebugCommandList2,0xaeb575cf,0x4e06,0x48be,0xba,0x3b,0xc4,0x50,0xfc,0x96,0x65,0x2e); | ||
| 4260 | DEFINE_GUID(IID_ID3D12DebugCommandList3,0x197d5e15,0x4d37,0x4d34,0xaf,0x78,0x72,0x4c,0xd7,0x0f,0xdb,0x1f); | ||
| 4261 | DEFINE_GUID(IID_ID3D12SharingContract,0x0adf7d52,0x929c,0x4e61,0xad,0xdb,0xff,0xed,0x30,0xde,0x66,0xef); | ||
| 4262 | DEFINE_GUID(IID_ID3D12ManualWriteTrackingResource,0x86ca3b85,0x49ad,0x4b6e,0xae,0xd5,0xed,0xdb,0x18,0x54,0x0f,0x41); | ||
| 4263 | DEFINE_GUID(IID_ID3D12InfoQueue,0x0742a90b,0xc387,0x483f,0xb9,0x46,0x30,0xa7,0xe4,0xe6,0x14,0x58); | ||
| 4264 | DEFINE_GUID(IID_ID3D12InfoQueue1,0x2852dd88,0xb484,0x4c0c,0xb6,0xb1,0x67,0x16,0x85,0x00,0xe6,0x00); | ||
| 4265 | |||
| 4266 | |||
| 4267 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0020_v0_0_c_ifspec; | ||
| 4268 | extern RPC_IF_HANDLE __MIDL_itf_d3d12sdklayers_0000_0020_v0_0_s_ifspec; | ||
| 4269 | |||
| 4270 | /* Additional Prototypes for ALL interfaces */ | ||
| 4271 | |||
| 4272 | /* end of Additional Prototypes */ | ||
| 4273 | |||
| 4274 | #ifdef __cplusplus | ||
| 4275 | } | ||
| 4276 | #endif | ||
| 4277 | |||
| 4278 | #endif | ||
| 4279 | |||
| 4280 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12sdklayers.idl b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12sdklayers.idl new file mode 100644 index 0000000..082565d --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12sdklayers.idl | |||
| @@ -0,0 +1,1860 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | import "oaidl.idl"; | ||
| 8 | import "ocidl.idl"; | ||
| 9 | |||
| 10 | import "d3d12.idl"; | ||
| 11 | |||
| 12 | cpp_quote("#include <winapifamily.h>") | ||
| 13 | |||
| 14 | #pragma region App Family | ||
| 15 | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") | ||
| 16 | |||
| 17 | //================================================================================================================================== | ||
| 18 | // | ||
| 19 | // Debugging Layer | ||
| 20 | // | ||
| 21 | //================================================================================================================================== | ||
| 22 | |||
| 23 | [uuid(344488b7-6846-474b-b989-f027448245e0), object, local, pointer_default(unique)] | ||
| 24 | interface ID3D12Debug | ||
| 25 | : IUnknown | ||
| 26 | { | ||
| 27 | void EnableDebugLayer(); | ||
| 28 | } | ||
| 29 | |||
| 30 | typedef enum D3D12_GPU_BASED_VALIDATION_FLAGS | ||
| 31 | { | ||
| 32 | D3D12_GPU_BASED_VALIDATION_FLAGS_NONE = 0x00, | ||
| 33 | D3D12_GPU_BASED_VALIDATION_FLAGS_DISABLE_STATE_TRACKING = 0x01, | ||
| 34 | |||
| 35 | } D3D12_GPU_BASED_VALIDATION_FLAGS; | ||
| 36 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_FLAGS)") | ||
| 37 | |||
| 38 | |||
| 39 | [uuid(affaa4ca-63fe-4d8e-b8ad-159000af4304), object, local, pointer_default(unique)] | ||
| 40 | interface ID3D12Debug1 | ||
| 41 | : IUnknown | ||
| 42 | { | ||
| 43 | void EnableDebugLayer(); | ||
| 44 | void SetEnableGPUBasedValidation(BOOL Enable); | ||
| 45 | void SetEnableSynchronizedCommandQueueValidation(BOOL Enable); | ||
| 46 | } | ||
| 47 | |||
| 48 | [uuid(93a665c4-a3b2-4e5d-b692-a26ae14e3374), object, local, pointer_default(unique)] | ||
| 49 | interface ID3D12Debug2 | ||
| 50 | : IUnknown | ||
| 51 | { | ||
| 52 | void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags); | ||
| 53 | } | ||
| 54 | |||
| 55 | [uuid(5cf4e58f-f671-4ff1-a542-3686e3d153d1), object, local, pointer_default(unique)] | ||
| 56 | interface ID3D12Debug3 | ||
| 57 | : ID3D12Debug | ||
| 58 | { | ||
| 59 | void SetEnableGPUBasedValidation(BOOL Enable); | ||
| 60 | void SetEnableSynchronizedCommandQueueValidation(BOOL Enable); | ||
| 61 | void SetGPUBasedValidationFlags(D3D12_GPU_BASED_VALIDATION_FLAGS Flags); | ||
| 62 | } | ||
| 63 | |||
| 64 | [uuid(014b816e-9ec5-4a2f-a845-ffbe441ce13a), object, local, pointer_default(unique)] | ||
| 65 | interface ID3D12Debug4 | ||
| 66 | : ID3D12Debug3 | ||
| 67 | { | ||
| 68 | void DisableDebugLayer(); | ||
| 69 | } | ||
| 70 | |||
| 71 | [uuid(548d6b12-09fa-40e0-9069-5dcd589a52c9), object, local, pointer_default(unique)] | ||
| 72 | interface ID3D12Debug5 | ||
| 73 | : ID3D12Debug4 | ||
| 74 | { | ||
| 75 | void SetEnableAutoName(BOOL Enable); | ||
| 76 | } | ||
| 77 | |||
| 78 | [uuid(82a816d6-5d01-4157-97d0-4975463fd1ed), object, local, pointer_default(unique)] | ||
| 79 | interface ID3D12Debug6 | ||
| 80 | : ID3D12Debug5 | ||
| 81 | { | ||
| 82 | void SetForceLegacyBarrierValidation(BOOL Enable); | ||
| 83 | } | ||
| 84 | |||
| 85 | cpp_quote("DEFINE_GUID(WKPDID_D3DAutoDebugObjectNameW, 0xd4902e36, 0x757a, 0x4942, 0x95, 0x94, 0xb6, 0x76, 0x9a, 0xfa, 0x43, 0xcd);") | ||
| 86 | |||
| 87 | typedef enum D3D12_RLDO_FLAGS | ||
| 88 | { | ||
| 89 | D3D12_RLDO_NONE = 0x0, | ||
| 90 | D3D12_RLDO_SUMMARY = 0x1, | ||
| 91 | D3D12_RLDO_DETAIL = 0x2, | ||
| 92 | D3D12_RLDO_IGNORE_INTERNAL = 0x4, | ||
| 93 | |||
| 94 | } D3D12_RLDO_FLAGS; | ||
| 95 | |||
| 96 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS(D3D12_RLDO_FLAGS)") | ||
| 97 | |||
| 98 | typedef enum D3D12_DEBUG_DEVICE_PARAMETER_TYPE | ||
| 99 | { | ||
| 100 | D3D12_DEBUG_DEVICE_PARAMETER_FEATURE_FLAGS, | ||
| 101 | D3D12_DEBUG_DEVICE_PARAMETER_GPU_BASED_VALIDATION_SETTINGS, | ||
| 102 | D3D12_DEBUG_DEVICE_PARAMETER_GPU_SLOWDOWN_PERFORMANCE_FACTOR, | ||
| 103 | D3D12_DEBUG_DEVICE_PARAMETER_BYTECODE_VALIDATION_MODE | ||
| 104 | } D3D12_DEBUG_DEVICE_PARAMETER_TYPE; | ||
| 105 | |||
| 106 | typedef enum D3D12_DEBUG_FEATURE | ||
| 107 | { | ||
| 108 | D3D12_DEBUG_FEATURE_NONE = 0x00, | ||
| 109 | D3D12_DEBUG_FEATURE_ALLOW_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x01, | ||
| 110 | D3D12_DEBUG_FEATURE_CONSERVATIVE_RESOURCE_STATE_TRACKING = 0x02, | ||
| 111 | D3D12_DEBUG_FEATURE_DISABLE_VIRTUALIZED_BUNDLES_VALIDATION = 0x04, | ||
| 112 | D3D12_DEBUG_FEATURE_EMULATE_WINDOWS7 = 0x08, | ||
| 113 | } D3D12_DEBUG_FEATURE; | ||
| 114 | |||
| 115 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DEBUG_FEATURE)") | ||
| 116 | |||
| 117 | typedef enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE | ||
| 118 | { | ||
| 119 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE, | ||
| 120 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY, | ||
| 121 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION, | ||
| 122 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION, | ||
| 123 | NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES | ||
| 124 | } D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE; | ||
| 125 | |||
| 126 | typedef enum D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS | ||
| 127 | { | ||
| 128 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_NONE = 0x00, | ||
| 129 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_TRACKING_ONLY_SHADERS = 0x01, | ||
| 130 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_UNGUARDED_VALIDATION_SHADERS = 0x02, | ||
| 131 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAG_FRONT_LOAD_CREATE_GUARDED_VALIDATION_SHADERS = 0x04, | ||
| 132 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS_VALID_MASK = 0x07 | ||
| 133 | } D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS; | ||
| 134 | |||
| 135 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS)") | ||
| 136 | |||
| 137 | typedef struct D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS | ||
| 138 | { | ||
| 139 | UINT MaxMessagesPerCommandList; | ||
| 140 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE DefaultShaderPatchMode; | ||
| 141 | D3D12_GPU_BASED_VALIDATION_PIPELINE_STATE_CREATE_FLAGS PipelineStateCreateFlags; | ||
| 142 | } D3D12_DEBUG_DEVICE_GPU_BASED_VALIDATION_SETTINGS; | ||
| 143 | |||
| 144 | typedef struct D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR | ||
| 145 | { | ||
| 146 | FLOAT SlowdownFactor; | ||
| 147 | } D3D12_DEBUG_DEVICE_GPU_SLOWDOWN_PERFORMANCE_FACTOR; | ||
| 148 | |||
| 149 | typedef enum D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE | ||
| 150 | { | ||
| 151 | D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_DISABLED, | ||
| 152 | D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED, | ||
| 153 | D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_ALL_BYTECODE, | ||
| 154 | D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE_DEFAULT = | ||
| 155 | D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_WHEN_HASH_BYPASSED | ||
| 156 | } D3D12_DEBUG_DEVICE_BYTECODE_VALIDATION_MODE; | ||
| 157 | |||
| 158 | [uuid(a9b71770-d099-4a65-a698-3dee10020f88), object, local, pointer_default(unique)] | ||
| 159 | interface ID3D12DebugDevice1 | ||
| 160 | : IUnknown | ||
| 161 | { | ||
| 162 | HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize); | ||
| 163 | HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize); | ||
| 164 | HRESULT ReportLiveDeviceObjects( D3D12_RLDO_FLAGS Flags ); | ||
| 165 | } | ||
| 166 | |||
| 167 | [uuid(3febd6dd-4973-4787-8194-e45f9e28923e), object, local, pointer_default(unique)] | ||
| 168 | interface ID3D12DebugDevice | ||
| 169 | : IUnknown | ||
| 170 | { | ||
| 171 | HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask); | ||
| 172 | D3D12_DEBUG_FEATURE GetFeatureMask(); | ||
| 173 | HRESULT ReportLiveDeviceObjects(D3D12_RLDO_FLAGS Flags); | ||
| 174 | } | ||
| 175 | |||
| 176 | [uuid(60eccbc1-378d-4df1-894c-f8ac5ce4d7dd), object, local, pointer_default(unique)] | ||
| 177 | interface ID3D12DebugDevice2 | ||
| 178 | : ID3D12DebugDevice | ||
| 179 | { | ||
| 180 | HRESULT SetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize); | ||
| 181 | HRESULT GetDebugParameter(D3D12_DEBUG_DEVICE_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize); | ||
| 182 | } | ||
| 183 | |||
| 184 | cpp_quote("DEFINE_GUID(DXGI_DEBUG_D3D12, 0xcf59a98c, 0xa950, 0x4326, 0x91, 0xef, 0x9b, 0xba, 0xa1, 0x7b, 0xfd, 0x95);") | ||
| 185 | |||
| 186 | |||
| 187 | [ uuid( 09e0bf36-54ac-484f-8847-4baeeab6053a ), object, local, pointer_default( unique ) ] | ||
| 188 | interface ID3D12DebugCommandQueue | ||
| 189 | : IUnknown | ||
| 190 | { | ||
| 191 | BOOL AssertResourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State ); | ||
| 192 | // TODO: Stale BOOL AssertResourceStateThroughView( [annotation("_In_")] ID3D12View* pView, UINT State ); | ||
| 193 | }; | ||
| 194 | |||
| 195 | [ uuid( 16be35a2-bfd6-49f2-bcae-eaae4aff862d ), object, local, pointer_default( unique ) ] | ||
| 196 | interface ID3D12DebugCommandQueue1 | ||
| 197 | : ID3D12DebugCommandQueue | ||
| 198 | { | ||
| 199 | void AssertResourceAccess([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, D3D12_BARRIER_ACCESS Access); | ||
| 200 | void AssertTextureLayout([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, D3D12_BARRIER_LAYOUT Layout); | ||
| 201 | }; | ||
| 202 | |||
| 203 | typedef enum D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE | ||
| 204 | { | ||
| 205 | D3D12_DEBUG_COMMAND_LIST_PARAMETER_GPU_BASED_VALIDATION_SETTINGS, | ||
| 206 | } D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE; | ||
| 207 | |||
| 208 | typedef struct D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS | ||
| 209 | { | ||
| 210 | D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE ShaderPatchMode; | ||
| 211 | } D3D12_DEBUG_COMMAND_LIST_GPU_BASED_VALIDATION_SETTINGS; | ||
| 212 | |||
| 213 | [ uuid( 102ca951-311b-4b01-b11f-ecb83e061b37 ), object, local, pointer_default( unique ) ] | ||
| 214 | interface ID3D12DebugCommandList1 | ||
| 215 | : IUnknown | ||
| 216 | { | ||
| 217 | BOOL AssertResourceState( [annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State ); | ||
| 218 | HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize); | ||
| 219 | HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize); | ||
| 220 | }; | ||
| 221 | |||
| 222 | [uuid(09e0bf36-54ac-484f-8847-4baeeab6053f), object, local, pointer_default(unique)] | ||
| 223 | interface ID3D12DebugCommandList | ||
| 224 | : IUnknown | ||
| 225 | { | ||
| 226 | BOOL AssertResourceState([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, UINT State); | ||
| 227 | HRESULT SetFeatureMask(D3D12_DEBUG_FEATURE Mask); | ||
| 228 | D3D12_DEBUG_FEATURE GetFeatureMask(); | ||
| 229 | }; | ||
| 230 | |||
| 231 | [ uuid(aeb575cf-4e06-48be-ba3b-c450fc96652e), object, local, pointer_default( unique ) ] | ||
| 232 | interface ID3D12DebugCommandList2 | ||
| 233 | : ID3D12DebugCommandList | ||
| 234 | { | ||
| 235 | HRESULT SetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_In_reads_bytes_(DataSize)")] const void *pData, UINT DataSize); | ||
| 236 | HRESULT GetDebugParameter(D3D12_DEBUG_COMMAND_LIST_PARAMETER_TYPE Type, [annotation("_Out_writes_bytes_(DataSize)")] void *pData, UINT DataSize); | ||
| 237 | }; | ||
| 238 | |||
| 239 | [ uuid(197d5e15-4d37-4d34-af78-724cd70fdb1f), object, local, pointer_default( unique ) ] | ||
| 240 | interface ID3D12DebugCommandList3 | ||
| 241 | : ID3D12DebugCommandList2 | ||
| 242 | { | ||
| 243 | void AssertResourceAccess([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, D3D12_BARRIER_ACCESS Access); | ||
| 244 | void AssertTextureLayout([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, D3D12_BARRIER_LAYOUT Layout); | ||
| 245 | }; | ||
| 246 | |||
| 247 | [uuid(0adf7d52-929c-4e61-addb-ffed30de66ef), object, local, pointer_default(unique)] | ||
| 248 | interface ID3D12SharingContract | ||
| 249 | : IUnknown | ||
| 250 | { | ||
| 251 | void Present([annotation("_In_")] ID3D12Resource* pResource, UINT Subresource, [annotation("_In_")] HWND window); | ||
| 252 | void SharedFenceSignal([annotation("_In_")] ID3D12Fence* pFence, UINT64 FenceValue); | ||
| 253 | void BeginCapturableWork([annotation("_In_")] REFGUID guid); | ||
| 254 | void EndCapturableWork([annotation("_In_")] REFGUID guid); | ||
| 255 | }; | ||
| 256 | |||
| 257 | [uuid(86ca3b85-49ad-4b6e-aed5-eddb18540f41), object, local, pointer_default(unique)] | ||
| 258 | interface ID3D12ManualWriteTrackingResource | ||
| 259 | : IUnknown | ||
| 260 | { | ||
| 261 | void TrackWrite( | ||
| 262 | UINT Subresource, | ||
| 263 | [annotation("_In_opt_")] const D3D12_RANGE* pWrittenRange); | ||
| 264 | }; | ||
| 265 | |||
| 266 | |||
| 267 | //================================================================================================================================== | ||
| 268 | // | ||
| 269 | // Info Queue | ||
| 270 | // | ||
| 271 | //================================================================================================================================== | ||
| 272 | typedef enum D3D12_MESSAGE_CATEGORY { | ||
| 273 | D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED, | ||
| 274 | D3D12_MESSAGE_CATEGORY_MISCELLANEOUS, | ||
| 275 | D3D12_MESSAGE_CATEGORY_INITIALIZATION, | ||
| 276 | D3D12_MESSAGE_CATEGORY_CLEANUP, | ||
| 277 | D3D12_MESSAGE_CATEGORY_COMPILATION, | ||
| 278 | D3D12_MESSAGE_CATEGORY_STATE_CREATION, | ||
| 279 | D3D12_MESSAGE_CATEGORY_STATE_SETTING, | ||
| 280 | D3D12_MESSAGE_CATEGORY_STATE_GETTING, | ||
| 281 | D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION, | ||
| 282 | D3D12_MESSAGE_CATEGORY_EXECUTION, | ||
| 283 | D3D12_MESSAGE_CATEGORY_SHADER, | ||
| 284 | } D3D12_MESSAGE_CATEGORY; | ||
| 285 | |||
| 286 | typedef enum D3D12_MESSAGE_SEVERITY { | ||
| 287 | D3D12_MESSAGE_SEVERITY_CORRUPTION, | ||
| 288 | D3D12_MESSAGE_SEVERITY_ERROR, | ||
| 289 | D3D12_MESSAGE_SEVERITY_WARNING, | ||
| 290 | D3D12_MESSAGE_SEVERITY_INFO, | ||
| 291 | D3D12_MESSAGE_SEVERITY_MESSAGE | ||
| 292 | } D3D12_MESSAGE_SEVERITY; | ||
| 293 | |||
| 294 | // Unique ID for every error | ||
| 295 | // CAUTION: New enum values should be appended to the list only. Inserting | ||
| 296 | // new enum values into the middle of the list results in changing the numeric | ||
| 297 | // values of some ID's from one SDK release to the next. This in-turn breaks | ||
| 298 | // PIX and customer tools/filters. | ||
| 299 | typedef enum D3D12_MESSAGE_ID { | ||
| 300 | D3D12_MESSAGE_ID_UNKNOWN = 0, | ||
| 301 | |||
| 302 | //-------------------------------------------------------------------------- | ||
| 303 | // Messages Used by Core | ||
| 304 | // Message IDs generated from core are at the beginning | ||
| 305 | // since the core changes less frequently than the debug layer. | ||
| 306 | |||
| 307 | // End of Messages used by Core | ||
| 308 | // ------------------------------------------------------------------------ | ||
| 309 | D3D12_MESSAGE_ID_STRING_FROM_APPLICATION = 1, | ||
| 310 | D3D12_MESSAGE_ID_CORRUPTED_THIS = 2, | ||
| 311 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 = 3, | ||
| 312 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 = 4, | ||
| 313 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 = 5, | ||
| 314 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 = 6, | ||
| 315 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 = 7, | ||
| 316 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 = 8, | ||
| 317 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 = 9, | ||
| 318 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 = 10, | ||
| 319 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 = 11, | ||
| 320 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 = 12, | ||
| 321 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 = 13, | ||
| 322 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 = 14, | ||
| 323 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 = 15, | ||
| 324 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 = 16, | ||
| 325 | D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 = 17, | ||
| 326 | D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING = 18, | ||
| 327 | D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 19, | ||
| 328 | |||
| 329 | D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 20, | ||
| 330 | D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 21, | ||
| 331 | D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 24, | ||
| 332 | D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 25, | ||
| 333 | |||
| 334 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 26, | ||
| 335 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 27, | ||
| 336 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 28, | ||
| 337 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = 29, | ||
| 338 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = 30, | ||
| 339 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 31, | ||
| 340 | D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 32, | ||
| 341 | |||
| 342 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 35, | ||
| 343 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 36, | ||
| 344 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 37, | ||
| 345 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 38, | ||
| 346 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = 39, | ||
| 347 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE = 40, | ||
| 348 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 41, | ||
| 349 | D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 42, | ||
| 350 | |||
| 351 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 45, | ||
| 352 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 46, | ||
| 353 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 47, | ||
| 354 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 48, | ||
| 355 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 49, | ||
| 356 | |||
| 357 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 52, | ||
| 358 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 53, | ||
| 359 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 54, | ||
| 360 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 55, | ||
| 361 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 56, | ||
| 362 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 57, | ||
| 363 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 58, | ||
| 364 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 59, | ||
| 365 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 60, | ||
| 366 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 61, | ||
| 367 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 62, | ||
| 368 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 63, | ||
| 369 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 64, | ||
| 370 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 65, | ||
| 371 | |||
| 372 | D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 66, | ||
| 373 | D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 67, | ||
| 374 | D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 68, | ||
| 375 | |||
| 376 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 69, | ||
| 377 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 70, | ||
| 378 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 71, | ||
| 379 | |||
| 380 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 72, | ||
| 381 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 73, | ||
| 382 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 74, | ||
| 383 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 75, | ||
| 384 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 76, | ||
| 385 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 79, | ||
| 386 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 80, | ||
| 387 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 81, | ||
| 388 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 82, | ||
| 389 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 83, | ||
| 390 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 84, | ||
| 391 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 85, | ||
| 392 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 86, | ||
| 393 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 87, | ||
| 394 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 88, | ||
| 395 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 89, | ||
| 396 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 90, | ||
| 397 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 91, | ||
| 398 | |||
| 399 | D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 92, | ||
| 400 | D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 93, | ||
| 401 | D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 94, | ||
| 402 | |||
| 403 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 95, | ||
| 404 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 96, | ||
| 405 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 97, | ||
| 406 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 98, | ||
| 407 | |||
| 408 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 100, | ||
| 409 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 101, | ||
| 410 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 102, | ||
| 411 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 103, | ||
| 412 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 104, | ||
| 413 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 105, | ||
| 414 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 106, | ||
| 415 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 107, | ||
| 416 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 108, | ||
| 417 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 109, | ||
| 418 | |||
| 419 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 111, | ||
| 420 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 112, | ||
| 421 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 113, | ||
| 422 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 114, | ||
| 423 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 115, | ||
| 424 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 116, | ||
| 425 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 117, | ||
| 426 | |||
| 427 | D3D12_MESSAGE_ID_GET_PROGRAM_IDENTIFIER_ERROR = 118, | ||
| 428 | D3D12_MESSAGE_ID_GET_WORK_GRAPH_PROPERTIES_ERROR = 119, | ||
| 429 | D3D12_MESSAGE_ID_SET_PROGRAM_ERROR = 120, | ||
| 430 | |||
| 431 | D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 135, | ||
| 432 | |||
| 433 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = 200, | ||
| 434 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = 201, | ||
| 435 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = 202, | ||
| 436 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 209, | ||
| 437 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = 210, | ||
| 438 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = 211, | ||
| 439 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = 212, | ||
| 440 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = 213, | ||
| 441 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = 219, | ||
| 442 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = 221, | ||
| 443 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = 222, | ||
| 444 | D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 232, | ||
| 445 | D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 233, | ||
| 446 | D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 234, | ||
| 447 | |||
| 448 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 239, | ||
| 449 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 240, | ||
| 450 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 245, | ||
| 451 | |||
| 452 | D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 253, | ||
| 453 | |||
| 454 | D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 255, | ||
| 455 | D3D12_MESSAGE_ID_LIVE_DEVICE = 274, | ||
| 456 | D3D12_MESSAGE_ID_LIVE_SWAPCHAIN = 275, | ||
| 457 | |||
| 458 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 276, | ||
| 459 | D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 277, | ||
| 460 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 278, | ||
| 461 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 280, | ||
| 462 | D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 283, | ||
| 463 | |||
| 464 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 284, | ||
| 465 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 285, | ||
| 466 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 286, | ||
| 467 | D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 287, | ||
| 468 | |||
| 469 | D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = 289, | ||
| 470 | D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = 290, | ||
| 471 | D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = 291, | ||
| 472 | D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = 292, | ||
| 473 | |||
| 474 | D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = 294, | ||
| 475 | D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 295, | ||
| 476 | D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = 296, | ||
| 477 | D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 297, | ||
| 478 | |||
| 479 | D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = 310, | ||
| 480 | |||
| 481 | D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 318, | ||
| 482 | |||
| 483 | D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = 321, | ||
| 484 | D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 322, | ||
| 485 | D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 323, | ||
| 486 | |||
| 487 | D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 331, | ||
| 488 | D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 332, | ||
| 489 | D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 333, | ||
| 490 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 334, | ||
| 491 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 335, | ||
| 492 | D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 336, | ||
| 493 | D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 337, | ||
| 494 | |||
| 495 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 340, | ||
| 496 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 341, | ||
| 497 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 342, | ||
| 498 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = 343, | ||
| 499 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = 344, | ||
| 500 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 345, | ||
| 501 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 346, | ||
| 502 | D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 354, | ||
| 503 | |||
| 504 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 401, | ||
| 505 | |||
| 506 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = 403, | ||
| 507 | |||
| 508 | D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 410, | ||
| 509 | D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 412, | ||
| 510 | D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 414, | ||
| 511 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 416, | ||
| 512 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 418, | ||
| 513 | D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 420, | ||
| 514 | D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 422, | ||
| 515 | |||
| 516 | D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 425, | ||
| 517 | D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 426, | ||
| 518 | D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 427, | ||
| 519 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 428, | ||
| 520 | D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 429, | ||
| 521 | D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 430, | ||
| 522 | D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 431, | ||
| 523 | |||
| 524 | D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = 447, | ||
| 525 | D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = 448, | ||
| 526 | |||
| 527 | D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = 493, | ||
| 528 | D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = 494, | ||
| 529 | |||
| 530 | D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = 506, | ||
| 531 | D3D12_MESSAGE_ID_CREATEDEVICE_WARNING = 507, | ||
| 532 | |||
| 533 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE = 519, | ||
| 534 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER = 520, | ||
| 535 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE = 521, | ||
| 536 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS = 522, | ||
| 537 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS = 523, | ||
| 538 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = 524, | ||
| 539 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES = 525, | ||
| 540 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION = 526, | ||
| 541 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = 527, | ||
| 542 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE = 528, | ||
| 543 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT = 529, | ||
| 544 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS = 530, | ||
| 545 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = 531, | ||
| 546 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = 532, | ||
| 547 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = 533, | ||
| 548 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END = 534, | ||
| 549 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN = 535, | ||
| 550 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG = 536, | ||
| 551 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = 537, | ||
| 552 | D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE = 538, | ||
| 553 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION = 540, | ||
| 554 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET = 541, | ||
| 555 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE = 542, | ||
| 556 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET = 543, | ||
| 557 | D3D12_MESSAGE_ID_COMMAND_LIST_OPEN = 544, | ||
| 558 | D3D12_MESSAGE_ID_INVALID_BUNDLE_API = 546, | ||
| 559 | D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED = 547, | ||
| 560 | D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE = 549, | ||
| 561 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC = 552, | ||
| 562 | D3D12_MESSAGE_ID_COMMAND_LIST_SYNC = 553, | ||
| 563 | D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID = 554, | ||
| 564 | |||
| 565 | D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE = 557, | ||
| 566 | D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR = 558, | ||
| 567 | D3D12_MESSAGE_ID_CREATE_PIPELINESTATE = 559, | ||
| 568 | D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 = 560, | ||
| 569 | D3D12_MESSAGE_ID_CREATE_RESOURCE = 562, | ||
| 570 | D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP = 563, | ||
| 571 | D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE = 564, | ||
| 572 | D3D12_MESSAGE_ID_CREATE_LIBRARY = 565, | ||
| 573 | D3D12_MESSAGE_ID_CREATE_HEAP = 566, | ||
| 574 | D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE = 567, | ||
| 575 | D3D12_MESSAGE_ID_CREATE_QUERYHEAP = 568, | ||
| 576 | D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE = 569, | ||
| 577 | |||
| 578 | D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE = 570, | ||
| 579 | D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR = 571, | ||
| 580 | D3D12_MESSAGE_ID_LIVE_PIPELINESTATE = 572, | ||
| 581 | D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 = 573, | ||
| 582 | D3D12_MESSAGE_ID_LIVE_RESOURCE = 575, | ||
| 583 | D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP = 576, | ||
| 584 | D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE = 577, | ||
| 585 | D3D12_MESSAGE_ID_LIVE_LIBRARY = 578, | ||
| 586 | D3D12_MESSAGE_ID_LIVE_HEAP = 579, | ||
| 587 | D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE = 580, | ||
| 588 | D3D12_MESSAGE_ID_LIVE_QUERYHEAP = 581, | ||
| 589 | D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE = 582, | ||
| 590 | |||
| 591 | D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE = 583, | ||
| 592 | D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR = 584, | ||
| 593 | D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE = 585, | ||
| 594 | D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 = 586, | ||
| 595 | D3D12_MESSAGE_ID_DESTROY_RESOURCE = 588, | ||
| 596 | D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP = 589, | ||
| 597 | D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE = 590, | ||
| 598 | D3D12_MESSAGE_ID_DESTROY_LIBRARY = 591, | ||
| 599 | D3D12_MESSAGE_ID_DESTROY_HEAP = 592, | ||
| 600 | D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE = 593, | ||
| 601 | D3D12_MESSAGE_ID_DESTROY_QUERYHEAP = 594, | ||
| 602 | D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE = 595, | ||
| 603 | |||
| 604 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS = 597, | ||
| 605 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS = 599, | ||
| 606 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN = 602, | ||
| 607 | D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN = 603, | ||
| 608 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC = 604, | ||
| 609 | // This was shipped, but is no longer used. Do not reuse. | ||
| 610 | //D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDINITIALSTATE = 605, | ||
| 611 | D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE = 607, | ||
| 612 | D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 608, | ||
| 613 | D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 609, | ||
| 614 | D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH = 610, | ||
| 615 | D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = 611, | ||
| 616 | D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = 613, | ||
| 617 | D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 614, | ||
| 618 | D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = 615, | ||
| 619 | D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 616, | ||
| 620 | D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE = 622, | ||
| 621 | D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC = 623, | ||
| 622 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE = 624, | ||
| 623 | D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE = 625, | ||
| 624 | D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 626, | ||
| 625 | D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = 627, | ||
| 626 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES = 628, | ||
| 627 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT = 629, | ||
| 628 | D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS = 630, | ||
| 629 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS = 631, | ||
| 630 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN = 632, | ||
| 631 | D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN = 633, | ||
| 632 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = 634, | ||
| 633 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = 635, | ||
| 634 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 636, | ||
| 635 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = 637, | ||
| 636 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = 638, | ||
| 637 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = 639, | ||
| 638 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = 640, | ||
| 639 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN = 641, | ||
| 640 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = 642, | ||
| 641 | D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = 643, | ||
| 642 | D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = 644, | ||
| 643 | D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC = 645, | ||
| 644 | D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE = 646, | ||
| 645 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = 647, | ||
| 646 | D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = 649, | ||
| 647 | D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = 650, | ||
| 648 | D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = 652, | ||
| 649 | D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES = 653, | ||
| 650 | D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = 654, | ||
| 651 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = 655, | ||
| 652 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = 656, | ||
| 653 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = 657, | ||
| 654 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = 658, | ||
| 655 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = 659, | ||
| 656 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = 660, | ||
| 657 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = 661, | ||
| 658 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = 662, | ||
| 659 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = 663, | ||
| 660 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 664, | ||
| 661 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = 665, | ||
| 662 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 666, | ||
| 663 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = 667, | ||
| 664 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 668, | ||
| 665 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 669, | ||
| 666 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 670, | ||
| 667 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 671, | ||
| 668 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 672, | ||
| 669 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = 673, | ||
| 670 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = 674, | ||
| 671 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 675, | ||
| 672 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 676, | ||
| 673 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = 677, | ||
| 674 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 678, | ||
| 675 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = 679, | ||
| 676 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = 680, | ||
| 677 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = 681, | ||
| 678 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = 682, | ||
| 679 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = 683, | ||
| 680 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = 684, | ||
| 681 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = 685, | ||
| 682 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = 686, | ||
| 683 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = 687, | ||
| 684 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = 688, | ||
| 685 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = 689, | ||
| 686 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = 690, | ||
| 687 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = 691, | ||
| 688 | D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE = 692, | ||
| 689 | D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = 693, | ||
| 690 | D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE = 694, | ||
| 691 | D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE = 695, | ||
| 692 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = 696, | ||
| 693 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = 697, | ||
| 694 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = 698, | ||
| 695 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = 699, | ||
| 696 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = 700, | ||
| 697 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP = 701, | ||
| 698 | D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = 702, | ||
| 699 | D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY = 703, | ||
| 700 | D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY = 705, | ||
| 701 | D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID = 708, | ||
| 702 | D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID = 709, | ||
| 703 | D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = 710, | ||
| 704 | D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = 711, | ||
| 705 | D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = 712, | ||
| 706 | D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC = 713, | ||
| 707 | D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC = 715, | ||
| 708 | D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = 717, | ||
| 709 | D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = 718, | ||
| 710 | D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT = 719, | ||
| 711 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY = 720, | ||
| 712 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT = 721, | ||
| 713 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS = 722, | ||
| 714 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC = 723, | ||
| 715 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT = 724, | ||
| 716 | D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID = 725, | ||
| 717 | D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID = 726, | ||
| 718 | D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID = 727, | ||
| 719 | D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID = 728, | ||
| 720 | D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS = 729, | ||
| 721 | D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS = 731, | ||
| 722 | D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY = 732, | ||
| 723 | D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS = 733, | ||
| 724 | D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS = 734, | ||
| 725 | D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED = 735, | ||
| 726 | // This was shipped, but is no longer used. Do not reuse. | ||
| 727 | //D3D12_MESSAGE_ID_UNSTABLE_POWER_STATE = 736, | ||
| 728 | D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT = 737, | ||
| 729 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT = 738, | ||
| 730 | D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE = 739, | ||
| 731 | D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET = 740, | ||
| 732 | // Note: These are the same as the above two, with the original (incorrect) name | ||
| 733 | D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = 739, | ||
| 734 | D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET = 740, | ||
| 735 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP = 741, | ||
| 736 | D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID = 742, | ||
| 737 | D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID = 743, | ||
| 738 | D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS = 744, | ||
| 739 | D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = 745, | ||
| 740 | |||
| 741 | // These values shipped, but are no longer used. Do not reuse. | ||
| 742 | //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDCONTEXTTYPE = 746, | ||
| 743 | //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_DECODENOTSUPPORTED = 747, | ||
| 744 | //D3D12_MESSAGE_ID_CREATEQUERYORPREDICATE_ENCODENOTSUPPORTED = 748, | ||
| 745 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE = 815, | ||
| 746 | D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = 816, | ||
| 747 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT = 817, | ||
| 748 | D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH = 818, | ||
| 749 | D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = 820, | ||
| 750 | D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = 821, | ||
| 751 | D3D12_MESSAGE_ID_MAP_INVALIDHEAP = 822, | ||
| 752 | D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP = 823, | ||
| 753 | D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE = 824, | ||
| 754 | D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE = 825, | ||
| 755 | D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE = 826, | ||
| 756 | D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE = 827, | ||
| 757 | D3D12_MESSAGE_ID_MAP_INVALIDRANGE = 828, | ||
| 758 | D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE = 829, | ||
| 759 | D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER = 832, | ||
| 760 | D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN = 833, | ||
| 761 | D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN = 834, | ||
| 762 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = 835, | ||
| 763 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = 836, | ||
| 764 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST = 837, | ||
| 765 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = 838, | ||
| 766 | D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST = 839, | ||
| 767 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = 840, | ||
| 768 | D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = 841, | ||
| 769 | D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC = 842, | ||
| 770 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = 843, | ||
| 771 | D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = 844, | ||
| 772 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS = 845, | ||
| 773 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST = 846, | ||
| 774 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = 847, | ||
| 775 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = 848, | ||
| 776 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE = 849, | ||
| 777 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = 850, | ||
| 778 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET = 851, | ||
| 779 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = 852, | ||
| 780 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT = 853, | ||
| 781 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = 854, | ||
| 782 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH = 855, | ||
| 783 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT = 856, | ||
| 784 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = 857, | ||
| 785 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = 858, | ||
| 786 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC = 859, | ||
| 787 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = 860, | ||
| 788 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = 861, | ||
| 789 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE = 862, | ||
| 790 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = 863, | ||
| 791 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET = 864, | ||
| 792 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = 865, | ||
| 793 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT = 866, | ||
| 794 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = 867, | ||
| 795 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH = 868, | ||
| 796 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT = 869, | ||
| 797 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = 870, | ||
| 798 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = 871, | ||
| 799 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES = 872, | ||
| 800 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX = 873, | ||
| 801 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH = 874, | ||
| 802 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX = 875, | ||
| 803 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS = 876, | ||
| 804 | |||
| 805 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = 877, | ||
| 806 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT = 878, | ||
| 807 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH = 879, | ||
| 808 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = 880, | ||
| 809 | |||
| 810 | D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = 881, | ||
| 811 | D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = 882, | ||
| 812 | D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = 883, | ||
| 813 | |||
| 814 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB = 884, | ||
| 815 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = 885, | ||
| 816 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = 886, | ||
| 817 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = 887, | ||
| 818 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED = 888, | ||
| 819 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP = 889, | ||
| 820 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE = 890, | ||
| 821 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX = 891, | ||
| 822 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = 892, | ||
| 823 | D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX = 893, | ||
| 824 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP = 894, | ||
| 825 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE = 895, | ||
| 826 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX = 896, | ||
| 827 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE = 897, | ||
| 828 | D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX = 898, | ||
| 829 | |||
| 830 | D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED = 899, | ||
| 831 | D3D12_MESSAGE_ID_INVALID_NODE_INDEX = 900, | ||
| 832 | |||
| 833 | D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE = 901, | ||
| 834 | D3D12_MESSAGE_ID_NODE_MASK_MISMATCH = 902, | ||
| 835 | D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY = 903, | ||
| 836 | D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = 904, | ||
| 837 | D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = 905, | ||
| 838 | D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = 906, | ||
| 839 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = 907, | ||
| 840 | D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = 908, | ||
| 841 | D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE = 909, | ||
| 842 | D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS = 910, | ||
| 843 | |||
| 844 | D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS = 911, | ||
| 845 | D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT = 912, | ||
| 846 | D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS = 913, | ||
| 847 | D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = 914, | ||
| 848 | D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE = 915, | ||
| 849 | D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT = 916, | ||
| 850 | D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT = 917, | ||
| 851 | D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY = 918, | ||
| 852 | D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE = 919, | ||
| 853 | D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY = 920, | ||
| 854 | |||
| 855 | D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE = 921, | ||
| 856 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS = 922, | ||
| 857 | |||
| 858 | D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = 923, | ||
| 859 | |||
| 860 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = 924, | ||
| 861 | |||
| 862 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = 925, | ||
| 863 | |||
| 864 | D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = 926, | ||
| 865 | |||
| 866 | D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = 927, | ||
| 867 | D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY = 929, | ||
| 868 | D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE = 930, | ||
| 869 | D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE = 931, | ||
| 870 | |||
| 871 | D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT = 932, | ||
| 872 | D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT = 933, | ||
| 873 | |||
| 874 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = 934, | ||
| 875 | |||
| 876 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = 935, | ||
| 877 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = 936, | ||
| 878 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = 937, | ||
| 879 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = 938, | ||
| 880 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = 939, | ||
| 881 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = 940, | ||
| 882 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = 941, | ||
| 883 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = 942, | ||
| 884 | |||
| 885 | D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST = 943, | ||
| 886 | D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE = 944, | ||
| 887 | D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC = 945, | ||
| 888 | D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE = 946, | ||
| 889 | |||
| 890 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST = 947, | ||
| 891 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = 948, | ||
| 892 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC = 949, | ||
| 893 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = 950, | ||
| 894 | |||
| 895 | D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH = 951, | ||
| 896 | D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = 952, | ||
| 897 | D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = 953, | ||
| 898 | |||
| 899 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS = 954, | ||
| 900 | |||
| 901 | D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH = 955, | ||
| 902 | |||
| 903 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = 956, | ||
| 904 | |||
| 905 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END = 957, | ||
| 906 | |||
| 907 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE = 958, | ||
| 908 | |||
| 909 | D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = 959, | ||
| 910 | |||
| 911 | D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE = 960, | ||
| 912 | |||
| 913 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = 961, | ||
| 914 | |||
| 915 | D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = 962, | ||
| 916 | D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = 963, | ||
| 917 | D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = 964, | ||
| 918 | D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED = 965, | ||
| 919 | D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY = 966, | ||
| 920 | D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY = 967, | ||
| 921 | D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY = 968, | ||
| 922 | |||
| 923 | D3D12_MESSAGE_ID_STOREPIPELINE_NONAME = 969, | ||
| 924 | D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME = 970, | ||
| 925 | D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND = 971, | ||
| 926 | D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC = 972, | ||
| 927 | D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = 973, | ||
| 928 | |||
| 929 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = 974, | ||
| 930 | |||
| 931 | D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = 975, | ||
| 932 | |||
| 933 | D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED = 976, | ||
| 934 | D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = 977, | ||
| 935 | D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = 978, | ||
| 936 | D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST = 979, | ||
| 937 | D3D12_MESSAGE_ID_CREATE_VIDEODECODER = 980, | ||
| 938 | D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = 981, | ||
| 939 | D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST = 982, | ||
| 940 | D3D12_MESSAGE_ID_LIVE_VIDEODECODER = 983, | ||
| 941 | D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = 984, | ||
| 942 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST = 985, | ||
| 943 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = 986, | ||
| 944 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM = 987, | ||
| 945 | D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS = 988, | ||
| 946 | |||
| 947 | D3D12_MESSAGE_ID_DEPRECATED_API = 989, | ||
| 948 | |||
| 949 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = 990, | ||
| 950 | |||
| 951 | D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = 991, | ||
| 952 | D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = 992, | ||
| 953 | D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = 993, | ||
| 954 | D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = 994, | ||
| 955 | |||
| 956 | D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE = 995, | ||
| 957 | D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = 996, | ||
| 958 | D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = 997, | ||
| 959 | |||
| 960 | D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE = 998, | ||
| 961 | |||
| 962 | D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE = 999, | ||
| 963 | |||
| 964 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED = 1000, | ||
| 965 | |||
| 966 | D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE = 1001, | ||
| 967 | D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE = 1002, | ||
| 968 | D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE = 1003, | ||
| 969 | D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET = 1004, | ||
| 970 | |||
| 971 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS = 1005, | ||
| 972 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH = 1006, | ||
| 973 | |||
| 974 | D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS = 1007, | ||
| 975 | |||
| 976 | D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS = 1008, | ||
| 977 | D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY = 1009, | ||
| 978 | D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS = 1013, | ||
| 979 | |||
| 980 | D3D12_MESSAGE_ID_BEGIN_EVENT = 1014, | ||
| 981 | D3D12_MESSAGE_ID_END_EVENT = 1015, | ||
| 982 | |||
| 983 | D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS = 1016, | ||
| 984 | |||
| 985 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED = 1017, | ||
| 986 | |||
| 987 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT = 1018, | ||
| 988 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT = 1019, | ||
| 989 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM = 1020, | ||
| 990 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM = 1021, | ||
| 991 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE = 1022, | ||
| 992 | |||
| 993 | D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH = 1023, | ||
| 994 | |||
| 995 | D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME = 1024, | ||
| 996 | D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME = 1025, | ||
| 997 | |||
| 998 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE = 1026, | ||
| 999 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST = 1027, | ||
| 1000 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION = 1028, | ||
| 1001 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS = 1029, | ||
| 1002 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC = 1030, | ||
| 1003 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION = 1031, | ||
| 1004 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS = 1032, | ||
| 1005 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT = 1033, | ||
| 1006 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES = 1034, | ||
| 1007 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES = 1035, | ||
| 1008 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE = 1036, | ||
| 1009 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE = 1037, | ||
| 1010 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS = 1038, | ||
| 1011 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS = 1039, | ||
| 1012 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES = 1040, | ||
| 1013 | |||
| 1014 | D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG = 1041, | ||
| 1015 | |||
| 1016 | D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE = 1042, | ||
| 1017 | |||
| 1018 | D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS = 1043, | ||
| 1019 | |||
| 1020 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE = 1044, | ||
| 1021 | |||
| 1022 | D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET = 1045, | ||
| 1023 | |||
| 1024 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH = 1046, | ||
| 1025 | |||
| 1026 | D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE = 1047, | ||
| 1027 | |||
| 1028 | D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED = 1048, | ||
| 1029 | |||
| 1030 | D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS = 1049, | ||
| 1031 | |||
| 1032 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT = 1050, | ||
| 1033 | |||
| 1034 | D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE = 1051, | ||
| 1035 | D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST = 1052, | ||
| 1036 | D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE = 1053, | ||
| 1037 | D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE = 1054, | ||
| 1038 | D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST = 1055, | ||
| 1039 | D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE = 1056, | ||
| 1040 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE = 1057, | ||
| 1041 | D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST = 1058, | ||
| 1042 | D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE = 1059, | ||
| 1043 | D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR = 1060, | ||
| 1044 | D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM = 1061, | ||
| 1045 | D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR = 1062, | ||
| 1046 | D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM = 1063, | ||
| 1047 | D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = 1064, | ||
| 1048 | D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM = 1065, | ||
| 1049 | |||
| 1050 | D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS = 1066, | ||
| 1051 | |||
| 1052 | D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT = 1067, | ||
| 1053 | |||
| 1054 | D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION = 1068, | ||
| 1055 | D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY = 1069, | ||
| 1056 | D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION = 1070, | ||
| 1057 | D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION = 1071, | ||
| 1058 | D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY = 1072, | ||
| 1059 | D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION = 1073, | ||
| 1060 | D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION = 1074, | ||
| 1061 | D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY = 1075, | ||
| 1062 | D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION = 1076, | ||
| 1063 | D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED = 1077, | ||
| 1064 | |||
| 1065 | D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION = 1078, | ||
| 1066 | |||
| 1067 | D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED = 1079, | ||
| 1068 | |||
| 1069 | D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED = 1080, | ||
| 1070 | D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE = 1081, | ||
| 1071 | D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR = 1082, | ||
| 1072 | |||
| 1073 | D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP = 1083, | ||
| 1074 | D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP = 1084, | ||
| 1075 | D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP = 1085, | ||
| 1076 | |||
| 1077 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN = 1086, | ||
| 1078 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN = 1087, | ||
| 1079 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS = 1088, | ||
| 1080 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE = 1089, | ||
| 1081 | |||
| 1082 | D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST = 1090, | ||
| 1083 | D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE = 1091, | ||
| 1084 | D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT = 1092, | ||
| 1085 | D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED = 1093, | ||
| 1086 | |||
| 1087 | D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS = 1094, | ||
| 1088 | D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED = 1095, | ||
| 1089 | D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS = 1096, | ||
| 1090 | |||
| 1091 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1097, | ||
| 1092 | D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 1098, | ||
| 1093 | |||
| 1094 | D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE = 1099, | ||
| 1095 | D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED = 1100, | ||
| 1096 | D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT = 1101, | ||
| 1097 | D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED = 1102, | ||
| 1098 | |||
| 1099 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR = 1103, | ||
| 1100 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED = 1104, | ||
| 1101 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR = 1105, | ||
| 1102 | |||
| 1103 | D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT = 1106, | ||
| 1104 | |||
| 1105 | D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT = 1107, | ||
| 1106 | D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE = 1108, | ||
| 1107 | D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT = 1109, | ||
| 1108 | |||
| 1109 | D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT = 1110, | ||
| 1110 | |||
| 1111 | D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 1111, | ||
| 1112 | D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED = 1112, | ||
| 1113 | |||
| 1114 | D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 1113, | ||
| 1115 | |||
| 1116 | D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED = 1114, | ||
| 1117 | |||
| 1118 | D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER = 1115, | ||
| 1119 | D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER = 1116, | ||
| 1120 | D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER = 1117, | ||
| 1121 | D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 1118, | ||
| 1122 | D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 1119, | ||
| 1123 | D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS = 1120, | ||
| 1124 | D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 1121, | ||
| 1125 | |||
| 1126 | D3D12_MESSAGE_ID_CREATE_COMMANDPOOL = 1122, | ||
| 1127 | D3D12_MESSAGE_ID_LIVE_COMMANDPOOL = 1123, | ||
| 1128 | D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL = 1124, | ||
| 1129 | D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS = 1125, | ||
| 1130 | |||
| 1131 | D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 1126, | ||
| 1132 | |||
| 1133 | D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 1127, | ||
| 1134 | D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION = 1128, | ||
| 1135 | |||
| 1136 | D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 1129, | ||
| 1137 | D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 1130, | ||
| 1138 | D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 1131, | ||
| 1139 | |||
| 1140 | D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 1132, | ||
| 1141 | D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 1133, | ||
| 1142 | D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 1134, | ||
| 1143 | D3D12_MESSAGE_ID_COMMAND_POOL_SYNC = 1135, | ||
| 1144 | |||
| 1145 | D3D12_MESSAGE_ID_EVICT_UNDERFLOW = 1136, | ||
| 1146 | |||
| 1147 | D3D12_MESSAGE_ID_CREATE_META_COMMAND = 1137, | ||
| 1148 | D3D12_MESSAGE_ID_LIVE_META_COMMAND = 1138, | ||
| 1149 | D3D12_MESSAGE_ID_DESTROY_META_COMMAND = 1139, | ||
| 1150 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE = 1140, | ||
| 1151 | D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE = 1141, | ||
| 1152 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 1142, | ||
| 1153 | D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 1143, | ||
| 1154 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 1144, | ||
| 1155 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 1145, | ||
| 1156 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 1146, | ||
| 1157 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 1147, | ||
| 1158 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 1148, | ||
| 1159 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 1149, | ||
| 1160 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 1150, | ||
| 1161 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 1151, | ||
| 1162 | D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 1152, | ||
| 1163 | |||
| 1164 | D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 1153, | ||
| 1165 | D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 1154, | ||
| 1166 | |||
| 1167 | D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 1155, | ||
| 1168 | |||
| 1169 | D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 1156, | ||
| 1170 | |||
| 1171 | D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 1157, | ||
| 1172 | |||
| 1173 | D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1158, | ||
| 1174 | D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 1159, | ||
| 1175 | D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 1160, | ||
| 1176 | D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID = 1161, | ||
| 1177 | D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 1162, | ||
| 1178 | |||
| 1179 | D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER = 1163, | ||
| 1180 | D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER = 1164, | ||
| 1181 | D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER = 1165, | ||
| 1182 | D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 1166, | ||
| 1183 | |||
| 1184 | D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD = 1167, | ||
| 1185 | D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD = 1168, | ||
| 1186 | D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD = 1169, | ||
| 1187 | |||
| 1188 | D3D12_MESSAGE_ID_RENDER_PASS_ERROR = 1170, | ||
| 1189 | |||
| 1190 | D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID = 1171, | ||
| 1191 | D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS = 1172, | ||
| 1192 | D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION = 1173, | ||
| 1193 | D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH = 1174, | ||
| 1194 | D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND = 1175, | ||
| 1195 | D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 1176, | ||
| 1196 | |||
| 1197 | D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST = 1177, | ||
| 1198 | D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST = 1178, | ||
| 1199 | D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST = 1179, | ||
| 1200 | |||
| 1201 | D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE = 1180, | ||
| 1202 | D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE = 1181, | ||
| 1203 | D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE = 1182, | ||
| 1204 | |||
| 1205 | D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR = 1183, | ||
| 1206 | D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR = 1184, | ||
| 1207 | D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR = 1185, | ||
| 1208 | |||
| 1209 | D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP = 1186, | ||
| 1210 | D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP = 1187, | ||
| 1211 | D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP = 1188, | ||
| 1212 | |||
| 1213 | D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS = 1189, | ||
| 1214 | D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS = 1190, | ||
| 1215 | D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 1191, | ||
| 1216 | D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD = 1192, | ||
| 1217 | D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR = 1193, | ||
| 1218 | D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR = 1194, | ||
| 1219 | D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR = 1195, | ||
| 1220 | D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR = 1196, | ||
| 1221 | D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR = 1197, | ||
| 1222 | D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR = 1198, | ||
| 1223 | D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID = 1199, | ||
| 1224 | D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 1200, | ||
| 1225 | D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 1201, | ||
| 1226 | |||
| 1227 | D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER = 1202, | ||
| 1228 | D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED = 1203, | ||
| 1229 | D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 1204, | ||
| 1230 | D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 1205, | ||
| 1231 | D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 1206, | ||
| 1232 | D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 1207, | ||
| 1233 | D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 1208, | ||
| 1234 | D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 1209, | ||
| 1235 | D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 1210, | ||
| 1236 | |||
| 1237 | D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 1211, | ||
| 1238 | D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED = 1212, | ||
| 1239 | |||
| 1240 | D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS = 1213, | ||
| 1241 | D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE = 1214, | ||
| 1242 | |||
| 1243 | D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR = 1215, | ||
| 1244 | |||
| 1245 | D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL = 1216, | ||
| 1246 | D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT = 1217, | ||
| 1247 | |||
| 1248 | D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT = 1218, | ||
| 1249 | D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1219, | ||
| 1250 | D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT = 1220, | ||
| 1251 | D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 1221, | ||
| 1252 | |||
| 1253 | D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE = 1222, | ||
| 1254 | D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT = 1223, | ||
| 1255 | D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL = 1224, | ||
| 1256 | |||
| 1257 | D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND = 1225, | ||
| 1258 | D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND = 1226, | ||
| 1259 | D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND = 1227, | ||
| 1260 | D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID = 1228, | ||
| 1261 | D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT = 1229, | ||
| 1262 | |||
| 1263 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY = 1230, | ||
| 1264 | |||
| 1265 | D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR = 1231, | ||
| 1266 | D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1232, | ||
| 1267 | D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE = 1233, | ||
| 1268 | D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP = 1234, | ||
| 1269 | D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER = 1235, | ||
| 1270 | D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2 = 1236, | ||
| 1271 | D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1 = 1237, | ||
| 1272 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT = 1238, | ||
| 1273 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE = 1239, | ||
| 1274 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL = 1240, | ||
| 1275 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT = 1241, | ||
| 1276 | D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY = 1242, | ||
| 1277 | |||
| 1278 | D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE = 1243, | ||
| 1279 | |||
| 1280 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH = 1244, | ||
| 1281 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH = 1245, | ||
| 1282 | |||
| 1283 | D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR = 1246, | ||
| 1284 | |||
| 1285 | D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT = 1247, | ||
| 1286 | |||
| 1287 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH = 1248, | ||
| 1288 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE = 1249, | ||
| 1289 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH = 1250, | ||
| 1290 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH = 1251, | ||
| 1291 | D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT = 1252, | ||
| 1292 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH = 1253, | ||
| 1293 | |||
| 1294 | D3D12_MESSAGE_ID_EMPTY_DISPATCH = 1254, | ||
| 1295 | |||
| 1296 | |||
| 1297 | D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1255, | ||
| 1298 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION = 1256, | ||
| 1299 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION = 1257, | ||
| 1300 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT = 1258, | ||
| 1301 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY = 1259, | ||
| 1302 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT = 1260, | ||
| 1303 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG = 1261, | ||
| 1304 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS = 1262, | ||
| 1305 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 1263, | ||
| 1306 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT = 1264, | ||
| 1307 | |||
| 1308 | D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE = 1265, | ||
| 1309 | D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY = 1266, | ||
| 1310 | D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 1267, | ||
| 1311 | |||
| 1312 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT = 1268, | ||
| 1313 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT = 1269, | ||
| 1314 | D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH = 1270, | ||
| 1315 | |||
| 1316 | D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE = 1271, | ||
| 1317 | |||
| 1318 | D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE = 1272, | ||
| 1319 | D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE = 1273, | ||
| 1320 | |||
| 1321 | D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1274, | ||
| 1322 | D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 1275, | ||
| 1323 | D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE = 1276, | ||
| 1324 | |||
| 1325 | D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 1277, | ||
| 1326 | |||
| 1327 | D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 1278, | ||
| 1328 | D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 1279, | ||
| 1329 | |||
| 1330 | D3D12_MESSAGE_ID_CREATE_SHADERCACHESESSION = 1280, | ||
| 1331 | D3D12_MESSAGE_ID_LIVE_SHADERCACHESESSION = 1281, | ||
| 1332 | D3D12_MESSAGE_ID_DESTROY_SHADERCACHESESSION = 1282, | ||
| 1333 | |||
| 1334 | D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_INVALIDARGS = 1283, | ||
| 1335 | D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_DISABLED = 1284, | ||
| 1336 | D3D12_MESSAGE_ID_CREATESHADERCACHESESSION_ALREADYOPEN = 1285, | ||
| 1337 | |||
| 1338 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_DEVELOPERMODE = 1286, | ||
| 1339 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_INVALIDFLAGS = 1287, | ||
| 1340 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_STATEALREADYSET = 1288, | ||
| 1341 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_IGNOREDFLAG = 1289, | ||
| 1342 | |||
| 1343 | D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_ALREADYPRESENT = 1290, | ||
| 1344 | D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_HASHCOLLISION = 1291, | ||
| 1345 | D3D12_MESSAGE_ID_SHADERCACHESESSION_STOREVALUE_CACHEFULL = 1292, | ||
| 1346 | D3D12_MESSAGE_ID_SHADERCACHESESSION_FINDVALUE_NOTFOUND = 1293, | ||
| 1347 | D3D12_MESSAGE_ID_SHADERCACHESESSION_CORRUPT = 1294, | ||
| 1348 | D3D12_MESSAGE_ID_SHADERCACHESESSION_DISABLED = 1295, | ||
| 1349 | |||
| 1350 | D3D12_MESSAGE_ID_OVERSIZED_DISPATCH = 1296, | ||
| 1351 | D3D12_MESSAGE_ID_CREATE_VIDEOENCODER = 1297, | ||
| 1352 | D3D12_MESSAGE_ID_LIVE_VIDEOENCODER = 1298, | ||
| 1353 | D3D12_MESSAGE_ID_DESTROY_VIDEOENCODER = 1299, | ||
| 1354 | D3D12_MESSAGE_ID_CREATE_VIDEOENCODERHEAP = 1300, | ||
| 1355 | D3D12_MESSAGE_ID_LIVE_VIDEOENCODERHEAP = 1301, | ||
| 1356 | D3D12_MESSAGE_ID_DESTROY_VIDEOENCODERHEAP = 1302, | ||
| 1357 | |||
| 1358 | D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1303, | ||
| 1359 | D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_ENCODE_REFERENCE_ONLY_FLAG = 1304, | ||
| 1360 | D3D12_MESSAGE_ID_ENCODE_FRAME_INVALID_PARAMETERS = 1305, | ||
| 1361 | D3D12_MESSAGE_ID_ENCODE_FRAME_UNSUPPORTED_PARAMETERS = 1306, | ||
| 1362 | D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_INVALID_PARAMETERS = 1307, | ||
| 1363 | D3D12_MESSAGE_ID_RESOLVE_ENCODER_OUTPUT_METADATA_UNSUPPORTED_PARAMETERS = 1308, | ||
| 1364 | D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_INVALID_PARAMETERS = 1309, | ||
| 1365 | D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_UNSUPPORTED_PARAMETERS = 1310, | ||
| 1366 | D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_INVALID_PARAMETERS = 1311, | ||
| 1367 | D3D12_MESSAGE_ID_CREATE_VIDEO_ENCODER_HEAP_UNSUPPORTED_PARAMETERS = 1312, | ||
| 1368 | D3D12_MESSAGE_ID_CREATECOMMANDLIST_NULL_COMMANDALLOCATOR = 1313, | ||
| 1369 | D3D12_MESSAGE_ID_CLEAR_UNORDERED_ACCESS_VIEW_INVALID_DESCRIPTOR_HANDLE = 1314, | ||
| 1370 | D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SHADER_VISIBLE = 1315, | ||
| 1371 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOP_WARNING = 1316, | ||
| 1372 | D3D12_MESSAGE_ID_CREATEBLENDSTATE_BLENDOPALPHA_WARNING = 1317, | ||
| 1373 | D3D12_MESSAGE_ID_WRITE_COMBINE_PERFORMANCE_WARNING = 1318, | ||
| 1374 | D3D12_MESSAGE_ID_RESOLVE_QUERY_INVALID_QUERY_STATE = 1319, | ||
| 1375 | D3D12_MESSAGE_ID_SETPRIVATEDATA_NO_ACCESS = 1320, | ||
| 1376 | D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_SAMPLER_MODE_MISMATCH = 1321, | ||
| 1377 | D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_UNSUPPORTED_BUFFER_WIDTH = 1322, | ||
| 1378 | D3D12_MESSAGE_ID_CREATEMESHSHADER_TOPOLOGY_MISMATCH = 1323, | ||
| 1379 | D3D12_MESSAGE_ID_VRS_SUM_COMBINER_REQUIRES_CAPABILITY = 1324, | ||
| 1380 | D3D12_MESSAGE_ID_SETTING_SHADING_RATE_FROM_MS_REQUIRES_CAPABILITY = 1325, | ||
| 1381 | D3D12_MESSAGE_ID_SHADERCACHESESSION_SHADERCACHEDELETE_NOTSUPPORTED = 1326, | ||
| 1382 | D3D12_MESSAGE_ID_SHADERCACHECONTROL_SHADERCACHECLEAR_NOTSUPPORTED = 1327, | ||
| 1383 | D3D12_MESSAGE_ID_CREATERESOURCE_STATE_IGNORED = 1328, | ||
| 1384 | D3D12_MESSAGE_ID_UNUSED_CROSS_EXECUTE_SPLIT_BARRIER = 1329, | ||
| 1385 | D3D12_MESSAGE_ID_DEVICE_OPEN_SHARED_HANDLE_ACCESS_DENIED = 1330, | ||
| 1386 | |||
| 1387 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_VALUES = 1331, | ||
| 1388 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_ACCESS = 1332, | ||
| 1389 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_SYNC = 1333, | ||
| 1390 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_LAYOUT = 1334, | ||
| 1391 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_TYPE = 1335, | ||
| 1392 | D3D12_MESSAGE_ID_OUT_OF_BOUNDS_BARRIER_SUBRESOURCE_RANGE = 1336, | ||
| 1393 | D3D12_MESSAGE_ID_INCOMPATIBLE_BARRIER_RESOURCE_DIMENSION = 1337, | ||
| 1394 | |||
| 1395 | D3D12_MESSAGE_ID_SET_SCISSOR_RECTS_INVALID_RECT = 1338, | ||
| 1396 | |||
| 1397 | D3D12_MESSAGE_ID_SHADING_RATE_SOURCE_REQUIRES_DIMENSION_TEXTURE2D = 1339, | ||
| 1398 | |||
| 1399 | D3D12_MESSAGE_ID_BUFFER_BARRIER_SUBREGION_OUT_OF_BOUNDS = 1340, | ||
| 1400 | |||
| 1401 | D3D12_MESSAGE_ID_UNSUPPORTED_BARRIER_LAYOUT = 1341, | ||
| 1402 | |||
| 1403 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALID_PARAMETERS = 1342, | ||
| 1404 | |||
| 1405 | D3D12_MESSAGE_ID_ENHANCED_BARRIERS_NOT_SUPPORTED = 1343, | ||
| 1406 | |||
| 1407 | D3D12_MESSAGE_ID_LEGACY_BARRIER_VALIDATION_FORCED_ON = 1346, | ||
| 1408 | |||
| 1409 | D3D12_MESSAGE_ID_EMPTY_ROOT_DESCRIPTOR_TABLE = 1347, | ||
| 1410 | |||
| 1411 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ELEMENT_OFFSET_UNALIGNED = 1348, | ||
| 1412 | |||
| 1413 | D3D12_MESSAGE_ID_ALPHA_BLEND_FACTOR_NOT_SUPPORTED = 1349, | ||
| 1414 | |||
| 1415 | D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_LAYOUT = 1350, | ||
| 1416 | D3D12_MESSAGE_ID_BARRIER_INTEROP_INVALID_STATE = 1351, | ||
| 1417 | |||
| 1418 | D3D12_MESSAGE_ID_GRAPHICS_PIPELINE_STATE_DESC_ZERO_SAMPLE_MASK = 1352, | ||
| 1419 | |||
| 1420 | D3D12_MESSAGE_ID_INDEPENDENT_STENCIL_REF_NOT_SUPPORTED = 1353, | ||
| 1421 | D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INDEPENDENT_MASKS_UNSUPPORTED = 1354, | ||
| 1422 | |||
| 1423 | D3D12_MESSAGE_ID_TEXTURE_BARRIER_SUBRESOURCES_OUT_OF_BOUNDS = 1355, | ||
| 1424 | |||
| 1425 | D3D12_MESSAGE_ID_NON_OPTIMAL_BARRIER_ONLY_EXECUTE_COMMAND_LISTS = 1356, | ||
| 1426 | |||
| 1427 | D3D12_MESSAGE_ID_EXECUTE_INDIRECT_ZERO_COMMAND_COUNT = 1357, | ||
| 1428 | |||
| 1429 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_TEXTURE_LAYOUT = 1358, | ||
| 1430 | |||
| 1431 | D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NOT_SUPPORTED = 1359, | ||
| 1432 | D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_TRIANGLE_FANS_NOT_SUPPORTED = 1360, | ||
| 1433 | |||
| 1434 | D3D12_MESSAGE_ID_CREATE_SAMPLER_COMPARISON_FUNC_IGNORED = 1361, | ||
| 1435 | |||
| 1436 | D3D12_MESSAGE_ID_CREATEHEAP_INVALIDHEAPTYPE = 1362, | ||
| 1437 | D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPTYPE = 1363, | ||
| 1438 | D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NOT_SUPPORTED = 1364, | ||
| 1439 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_NON_WHOLE_DYNAMIC_DEPTH_BIAS = 1365, | ||
| 1440 | |||
| 1441 | D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_FLAG_MISSING = 1366, | ||
| 1442 | D3D12_MESSAGE_ID_DYNAMIC_DEPTH_BIAS_NO_PIPELINE = 1367, | ||
| 1443 | D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_FLAG_MISSING = 1368, | ||
| 1444 | D3D12_MESSAGE_ID_DYNAMIC_INDEX_BUFFER_STRIP_CUT_NO_PIPELINE = 1369, | ||
| 1445 | |||
| 1446 | D3D12_MESSAGE_ID_NONNORMALIZED_COORDINATE_SAMPLING_NOT_SUPPORTED = 1370, | ||
| 1447 | |||
| 1448 | D3D12_MESSAGE_ID_INVALID_CAST_TARGET = 1371, | ||
| 1449 | |||
| 1450 | D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_END_STATE = 1372, | ||
| 1451 | D3D12_MESSAGE_ID_RENDER_PASS_COMMANDLIST_INVALID_START_STATE = 1373, | ||
| 1452 | D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_ACCESS = 1374, | ||
| 1453 | D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_LOCAL_PRESERVE_PARAMETERS = 1375, | ||
| 1454 | D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_PRESERVE_RENDER_PARAMETERS_ERROR = 1376, | ||
| 1455 | D3D12_MESSAGE_ID_RENDER_PASS_LOCAL_DEPTH_STENCIL_ERROR = 1377, | ||
| 1456 | |||
| 1457 | D3D12_MESSAGE_ID_DRAW_POTENTIALLY_OUTSIDE_OF_VALID_RENDER_AREA = 1378, | ||
| 1458 | D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_LINERASTERIZATIONMODE = 1379, | ||
| 1459 | |||
| 1460 | D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT_SMALLRESOURCE = 1380, | ||
| 1461 | D3D12_MESSAGE_ID_GENERIC_DEVICE_OPERATION_UNSUPPORTED = 1381, | ||
| 1462 | |||
| 1463 | D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDER_TARGET_WRONG_WRITE_MASK = 1382, | ||
| 1464 | |||
| 1465 | D3D12_MESSAGE_ID_PROBABLE_PIX_EVENT_LEAK = 1383, | ||
| 1466 | D3D12_MESSAGE_ID_PIX_EVENT_UNDERFLOW = 1384, | ||
| 1467 | |||
| 1468 | D3D12_MESSAGE_ID_RECREATEAT_INVALID_TARGET = 1385, | ||
| 1469 | D3D12_MESSAGE_ID_RECREATEAT_INSUFFICIENT_SUPPORT = 1386, | ||
| 1470 | |||
| 1471 | D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_STRUCTURED_BUFFER_STRIDE_MISMATCH = 1387, | ||
| 1472 | |||
| 1473 | D3D12_MESSAGE_ID_DISPATCH_GRAPH_INVALID = 1388, | ||
| 1474 | |||
| 1475 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_TARGET_FORMAT_INVALID = 1389, | ||
| 1476 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_TARGET_DIMENSION_INVALID = 1390, | ||
| 1477 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_SOURCE_COLOR_FORMAT_INVALID = 1391, | ||
| 1478 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_SOURCE_DEPTH_FORMAT_INVALID = 1392, | ||
| 1479 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXPOSURE_SCALE_FORMAT_INVALID = 1393, | ||
| 1480 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_ENGINE_CREATE_FLAGS_INVALID = 1394, | ||
| 1481 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_LOAD_FAILURE = 1395, | ||
| 1482 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_ENGINE_CREATION_ERROR = 1396, | ||
| 1483 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_UPSCALER_CREATION_ERROR = 1397, | ||
| 1484 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_EXTENSION_INTERNAL_UPSCALER_EXECUTION_ERROR = 1398, | ||
| 1485 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_REGION_INVALID = 1399, | ||
| 1486 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_TIME_DELTA_INVALID = 1400, | ||
| 1487 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_REQUIRED_TEXTURE_IS_NULL = 1401, | ||
| 1488 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_MOTION_VECTORS_FORMAT_INVALID = 1402, | ||
| 1489 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_FLAGS_INVALID = 1403, | ||
| 1490 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_FORMAT_INVALID = 1404, | ||
| 1491 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_EXPOSURE_SCALE_TEXTURE_SIZE_INVALID = 1405, | ||
| 1492 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_VARIANT_INDEX_OUT_OF_BOUNDS = 1406, | ||
| 1493 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_VARIANT_ID_NOT_FOUND = 1407, | ||
| 1494 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_DUPLICATE_VARIANT_ID = 1408, | ||
| 1495 | D3D12_MESSAGE_ID_DIRECTSR_OUT_OF_MEMORY = 1409, | ||
| 1496 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_UNEXPECTED_TEXTURE_IS_IGNORED = 1410, | ||
| 1497 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EVICT_UNDERFLOW = 1411, | ||
| 1498 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_OPTIONAL_TEXTURE_IS_NULL = 1412, | ||
| 1499 | D3D12_MESSAGE_ID_DIRECTSR_SUPERRES_UPSCALER_EXECUTE_INVALID_CAMERA_JITTER = 1413, | ||
| 1500 | D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_WARNING = 1414, | ||
| 1501 | D3D12_MESSAGE_ID_GUID_TEXTURE_LAYOUT_UNSUPPORTED = 1415, | ||
| 1502 | D3D12_MESSAGE_ID_RESOLVE_ENCODER_INPUT_PARAM_LAYOUT_INVALID_PARAMETERS = 1416, | ||
| 1503 | D3D12_MESSAGE_ID_INVALID_BARRIER_ACCESS = 1417, | ||
| 1504 | D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INSTANCE_COUNT_ZERO = 1418, | ||
| 1505 | D3D12_MESSAGE_ID_DESCRIPTOR_HEAP_NOT_SET_BEFORE_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1419, | ||
| 1506 | D3D12_MESSAGE_ID_DIFFERENT_DESCRIPTOR_HEAP_SET_AFTER_ROOT_SIGNATURE_WITH_DIRECTLY_INDEXED_FLAG = 1420, | ||
| 1507 | D3D12_MESSAGE_ID_APPLICATION_SPECIFIC_DRIVER_STATE_NOT_SUPPORTED = 1421, | ||
| 1508 | D3D12_MESSAGE_ID_RENDER_TARGET_OR_DEPTH_STENCIL_RESOUCE_NOT_INITIALIZED = 1422, | ||
| 1509 | D3D12_MESSAGE_ID_BYTECODE_VALIDATION_ERROR = 1423, | ||
| 1510 | D3D12_MESSAGE_ID_FENCE_ZERO_WAIT = 1424, | ||
| 1511 | D3D12_MESSAGE_ID_NON_COMMON_RESOURCE_IN_COPY_QUEUE = 1431, | ||
| 1512 | D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MULTIPLE_ROOT_SIGNATURES_DEFINED = 1435, | ||
| 1513 | D3D12_MESSAGE_ID_TEXTURE_BARRIER_INVALID_FLAGS = 1436, | ||
| 1514 | D3D12_MESSAGE_ID_D3D12_MESSAGES_END = 1442, // This must be the last entry in the enum. | ||
| 1515 | } D3D12_MESSAGE_ID; | ||
| 1516 | |||
| 1517 | typedef struct D3D12_MESSAGE | ||
| 1518 | { | ||
| 1519 | D3D12_MESSAGE_CATEGORY Category; | ||
| 1520 | D3D12_MESSAGE_SEVERITY Severity; | ||
| 1521 | D3D12_MESSAGE_ID ID; | ||
| 1522 | [annotation("_Field_size_(DescriptionByteLength)")] const char* pDescription; | ||
| 1523 | SIZE_T DescriptionByteLength; | ||
| 1524 | } D3D12_MESSAGE; | ||
| 1525 | |||
| 1526 | typedef struct D3D12_INFO_QUEUE_FILTER_DESC | ||
| 1527 | { | ||
| 1528 | UINT NumCategories; | ||
| 1529 | [annotation("_Field_size_(NumCategories)")] D3D12_MESSAGE_CATEGORY* pCategoryList; | ||
| 1530 | UINT NumSeverities; | ||
| 1531 | [annotation("_Field_size_(NumSeverities)")] D3D12_MESSAGE_SEVERITY* pSeverityList; | ||
| 1532 | UINT NumIDs; | ||
| 1533 | [annotation("_Field_size_(NumIDs)")] D3D12_MESSAGE_ID* pIDList; | ||
| 1534 | } D3D12_INFO_QUEUE_FILTER_DESC; | ||
| 1535 | |||
| 1536 | // To use, memset to 0, then fill in what you need. | ||
| 1537 | typedef struct D3D12_INFO_QUEUE_FILTER | ||
| 1538 | { | ||
| 1539 | D3D12_INFO_QUEUE_FILTER_DESC AllowList; | ||
| 1540 | D3D12_INFO_QUEUE_FILTER_DESC DenyList; | ||
| 1541 | } D3D12_INFO_QUEUE_FILTER; | ||
| 1542 | |||
| 1543 | //============================================================================= | ||
| 1544 | // ID3D12InfoQueue | ||
| 1545 | // | ||
| 1546 | // Logs D3D12 Messages. | ||
| 1547 | // This interface can be queried from ID3D12Device, as long as the device | ||
| 1548 | // was created with the debug layer. | ||
| 1549 | // | ||
| 1550 | // | ||
| 1551 | cpp_quote("#define D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024") | ||
| 1552 | [uuid(0742a90b-c387-483f-b946-30a7e4e61458), object, local, pointer_default(unique)] | ||
| 1553 | interface ID3D12InfoQueue | ||
| 1554 | : IUnknown | ||
| 1555 | { | ||
| 1556 | //========================================================================= | ||
| 1557 | // Methods for configuring how much data is stored in the queue. | ||
| 1558 | |||
| 1559 | // SetMessageCountLimit() | ||
| 1560 | // This sets how many messages are stored. When the queue is full, | ||
| 1561 | // new messages coming in push old messages out. | ||
| 1562 | // Passing -1 to SetMessageCountLimit means the queue has | ||
| 1563 | // unlimited size (go until out of memory or ClearStoredMessages()). | ||
| 1564 | // The default message count size is | ||
| 1565 | // D3D12_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT | ||
| 1566 | // Returns S_OK or E_INVALIDARG. | ||
| 1567 | HRESULT SetMessageCountLimit([annotation("_In_")] UINT64 MessageCountLimit); | ||
| 1568 | |||
| 1569 | // ClearStoredMessages | ||
| 1570 | void ClearStoredMessages(); | ||
| 1571 | |||
| 1572 | //========================================================================= | ||
| 1573 | // Methods for retrieving data or statistics from the queue. | ||
| 1574 | |||
| 1575 | // GetMessage() | ||
| 1576 | // Retrieves messages, one at a time, from the queue which pass any | ||
| 1577 | // retrieval filter currently defined. If there is no retrieval filter, | ||
| 1578 | // all messages can be retrieved. | ||
| 1579 | // The MessageIndex parameter is a 0 based index into the results passing | ||
| 1580 | // the filter. The number of results is returned by | ||
| 1581 | // GetNumStoredMessagesAllowedByRetrievalFilter(). | ||
| 1582 | // | ||
| 1583 | // Note this does not remove the message from the queue. | ||
| 1584 | // | ||
| 1585 | // pMessageByteLength inputs the size of the buffer passed in via | ||
| 1586 | // pMessage, and outputs the size of the message. pMessage can be NULL | ||
| 1587 | // when the size of the required buffer is being queried (return S_FALSE). | ||
| 1588 | // | ||
| 1589 | // NOTE: The returned buffer pMessage is NOT just the size of D3D12_MESSAGE, | ||
| 1590 | // it includes extra memory after the D3D12_MESSAGE for storing the string | ||
| 1591 | // description, which is pointed to from within D3D12_MESSAGE. Therefore | ||
| 1592 | // applications should check the size needed for pMessage as described above. | ||
| 1593 | // | ||
| 1594 | // Watch out for thread safety when making consecutive calls first to | ||
| 1595 | // determine the buffer size required and then to pass in the buffer and | ||
| 1596 | // retrieve the message, and also between calling | ||
| 1597 | // GetNumStoredMessagesAllowedByRetrievalFilter() and enumerating through | ||
| 1598 | // the results via GetMessagE(). | ||
| 1599 | // | ||
| 1600 | // Returns: S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY. | ||
| 1601 | HRESULT GetMessage( | ||
| 1602 | [annotation("_In_")] UINT64 MessageIndex, | ||
| 1603 | [annotation("_Out_writes_bytes_opt_(*pMessageByteLength)")] D3D12_MESSAGE* pMessage, | ||
| 1604 | [annotation("_Inout_")] SIZE_T* pMessageByteLength); | ||
| 1605 | |||
| 1606 | // GetNumMessagesAllowedByStorageFilter() | ||
| 1607 | // Returns how many messages sent to the queue passed | ||
| 1608 | // whatever storage filter was active upon receipt of | ||
| 1609 | // the message. | ||
| 1610 | // This can be a larger value than the message count limit, | ||
| 1611 | // returned by GetMessageCountLimit(), since old messages are discarded | ||
| 1612 | // when the queue is full to prevent overflow. | ||
| 1613 | UINT64 GetNumMessagesAllowedByStorageFilter(); | ||
| 1614 | |||
| 1615 | // GetNumMessagesDeniedByStorageFilter() | ||
| 1616 | UINT64 GetNumMessagesDeniedByStorageFilter(); | ||
| 1617 | |||
| 1618 | // GetNumStoredMessages() | ||
| 1619 | // Returns how many messages are currently stored in the queue. | ||
| 1620 | UINT64 GetNumStoredMessages(); | ||
| 1621 | |||
| 1622 | // GetNumStoredMessagesAllowedByRetrievalFilter() | ||
| 1623 | // Returns how many messages that are currently in the queue | ||
| 1624 | // pass any retrieval filter that is currently set. | ||
| 1625 | // The MessageIndex parameter to GetMessage() indexes | ||
| 1626 | // an array of this many results. | ||
| 1627 | UINT64 GetNumStoredMessagesAllowedByRetrievalFilter(); | ||
| 1628 | |||
| 1629 | // GetNumMessagesDiscardedByMessageCountLimit() | ||
| 1630 | UINT64 GetNumMessagesDiscardedByMessageCountLimit(); | ||
| 1631 | |||
| 1632 | // GetMessageCountLimit | ||
| 1633 | // This is how many messages can be stored in the queue. | ||
| 1634 | // When the queue is full, new messages coming in push old messages out. | ||
| 1635 | // -1 means there is no limit. | ||
| 1636 | UINT64 GetMessageCountLimit(); | ||
| 1637 | |||
| 1638 | //========================================================================= | ||
| 1639 | // Methods for filtering what gets stored in the queue | ||
| 1640 | |||
| 1641 | // AddStorageFilterEntries() | ||
| 1642 | // Adds to the existing entries at top of stack | ||
| 1643 | // Returns: S_OK, E_INVALIDARG or E_OUTOFMEMORY. | ||
| 1644 | HRESULT AddStorageFilterEntries( | ||
| 1645 | [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter); | ||
| 1646 | |||
| 1647 | // GetStorageFilter() | ||
| 1648 | // Gets all entries at top of stack. | ||
| 1649 | // The application must allocate the output buffer. The size required can be | ||
| 1650 | // queried by passing null for pFilter and looking at the returned | ||
| 1651 | // pFilterByteLength (HRESULT is S_FALSE). Note that D3D12_INFO_QUEUE_FILTER contains | ||
| 1652 | // pointers - these will point to locations within the same | ||
| 1653 | // contiguous buffer - *pFilterByteLength is the total storage needed for all | ||
| 1654 | // data. So the application needs to only allocate/free the memory for pFilter. | ||
| 1655 | // Returns S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY | ||
| 1656 | HRESULT GetStorageFilter( | ||
| 1657 | [annotation("_Out_writes_bytes_opt_(*pFilterByteLength)")] D3D12_INFO_QUEUE_FILTER* pFilter, | ||
| 1658 | [annotation("_Inout_")] SIZE_T* pFilterByteLength); | ||
| 1659 | |||
| 1660 | // ClearStorageFilter() | ||
| 1661 | // Clears filter at the top of the stack (if there is one) | ||
| 1662 | void ClearStorageFilter(); | ||
| 1663 | |||
| 1664 | // PushEmptyStorageFilter() | ||
| 1665 | // Push an empty storage filter on the stack to allow local filtering changes. | ||
| 1666 | // For convenience, this is automatically called by SetStorageFilter() | ||
| 1667 | // if the stack is empty. Thus if the stack is not needed, filters can be | ||
| 1668 | // defined without ever bothering to push or pop. | ||
| 1669 | // Returns S_OK or E_OUTOFMEMORY | ||
| 1670 | HRESULT PushEmptyStorageFilter(); | ||
| 1671 | |||
| 1672 | // PushCopyOfStorageFilter() | ||
| 1673 | // Push a copy of the current filter so that local modifications can be made | ||
| 1674 | // starting from what currently exists. | ||
| 1675 | // Returns S_OK or E_OUTOFMEMORY | ||
| 1676 | HRESULT PushCopyOfStorageFilter(); | ||
| 1677 | |||
| 1678 | // PushStorageFilter() | ||
| 1679 | // Push a filter passed as a parameter onto the stack. This is | ||
| 1680 | // just a helper for calling PushEmptyStorageFilter() followed | ||
| 1681 | // by AddStorageFilterEntries() | ||
| 1682 | // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY. | ||
| 1683 | HRESULT PushStorageFilter( | ||
| 1684 | [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter); | ||
| 1685 | |||
| 1686 | // PopStorageFilter() | ||
| 1687 | // Pop the current storage filter off the stack (if there is one) | ||
| 1688 | void PopStorageFilter(); | ||
| 1689 | |||
| 1690 | // GetStorageFilterStackSize() | ||
| 1691 | UINT GetStorageFilterStackSize(); | ||
| 1692 | |||
| 1693 | //========================================================================= | ||
| 1694 | // Methods for filtering what gets read out of the queue by GetMessage(). | ||
| 1695 | |||
| 1696 | // AddRetrievalFilterEntries() | ||
| 1697 | // Adds to the existing entries at top of stack | ||
| 1698 | // Returns: S_OK, E_INVALIDARG or E_OUTOFMEMORY. | ||
| 1699 | HRESULT AddRetrievalFilterEntries( | ||
| 1700 | [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter); | ||
| 1701 | |||
| 1702 | // GetRetrievalFilter() | ||
| 1703 | // Gets all entries at top of stack. | ||
| 1704 | // The application must allocate the output buffer. The size required can be | ||
| 1705 | // queried by passing null for pFilter and looking at the returned | ||
| 1706 | // pFilterByteLength (HRESULT is S_FALSE). Note that D3D12_INFO_QUEUE_FILTER contains | ||
| 1707 | // pointers - these will point to locations within the same | ||
| 1708 | // contiguous buffer - *pFilterByteLength is the total storage needed for all | ||
| 1709 | // data. So the application needs to only allocate/free the memory for pFilter. | ||
| 1710 | // Returns S_OK, S_FALSE, E_INVALIDARG or E_OUTOFMEMORY | ||
| 1711 | HRESULT GetRetrievalFilter( | ||
| 1712 | [annotation("_Out_writes_bytes_opt_(*pFilterByteLength)")] D3D12_INFO_QUEUE_FILTER* pFilter, | ||
| 1713 | [annotation("_Inout_")] SIZE_T* pFilterByteLength); | ||
| 1714 | |||
| 1715 | // ClearRetrievalFilter() | ||
| 1716 | // Clears filter at the top of the stack (if there is one) | ||
| 1717 | void ClearRetrievalFilter(); | ||
| 1718 | |||
| 1719 | // PushEmptyRetrievalFilter() | ||
| 1720 | // Push an empty storage filter on the stack to allow local filtering changes. | ||
| 1721 | // For convenience, this is automatically called by SetRetrievalFilter() | ||
| 1722 | // if the stack is empty. Thus if the stack is not needed, filters can be | ||
| 1723 | // defined without ever bothering to push or pop. | ||
| 1724 | // Returns S_OK or E_OUTOFMEMORY | ||
| 1725 | HRESULT PushEmptyRetrievalFilter(); | ||
| 1726 | |||
| 1727 | // PushCopyOfRetrievalFilter() | ||
| 1728 | // Push a copy of the current filter so that local modifications can be made | ||
| 1729 | // starting from what currently exists. | ||
| 1730 | // Returns S_OK or E_OUTOFMEMORY | ||
| 1731 | HRESULT PushCopyOfRetrievalFilter(); | ||
| 1732 | |||
| 1733 | // PushRetrievalFilter() | ||
| 1734 | // Push a filter passed as a parameter onto the stack. This is | ||
| 1735 | // just a helper for calling PushEmptyRetrievalFilter() followed | ||
| 1736 | // by AddRetrievalFilterEntries() | ||
| 1737 | // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY. | ||
| 1738 | HRESULT PushRetrievalFilter( | ||
| 1739 | [annotation("_In_")] D3D12_INFO_QUEUE_FILTER* pFilter); | ||
| 1740 | |||
| 1741 | // PopRetrievalFilter() | ||
| 1742 | // Pop the current storage filter off the stack (if there is one) | ||
| 1743 | void PopRetrievalFilter(); | ||
| 1744 | |||
| 1745 | // GetRetrievalFilterStackSize() | ||
| 1746 | UINT GetRetrievalFilterStackSize(); | ||
| 1747 | |||
| 1748 | //========================================================================= | ||
| 1749 | // Methods for adding entries to the queue. | ||
| 1750 | |||
| 1751 | // AddMessage() | ||
| 1752 | // This is used by D3D12 components to log messages. Nothing stops | ||
| 1753 | // applications from calling this, but it isn’t particularly useful. | ||
| 1754 | // If an application wishes to insert custom strings into the queue, | ||
| 1755 | // AddApplicationMessage() below is suggested. See below. | ||
| 1756 | // | ||
| 1757 | // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY | ||
| 1758 | HRESULT AddMessage( | ||
| 1759 | [annotation("_In_")] D3D12_MESSAGE_CATEGORY Category, | ||
| 1760 | [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity, | ||
| 1761 | [annotation("_In_")] D3D12_MESSAGE_ID ID, | ||
| 1762 | [annotation("_In_")] LPCSTR pDescription); | ||
| 1763 | |||
| 1764 | // AddApplicationMessage() | ||
| 1765 | // This is a convenience for applications that want | ||
| 1766 | // to insert strings of their own into the queue, perhaps to log issues | ||
| 1767 | // of its own, or to mark out points in time in the queue. This | ||
| 1768 | // has the same effect as calling AddMessage() above with the | ||
| 1769 | // following settings: | ||
| 1770 | // Category = D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED | ||
| 1771 | // Severity = <app selects from D3D12_MESSAGE_SEVERITY> | ||
| 1772 | // ID = D3D12_MESSAGE_ID_STRING_FROM_APPLICATION | ||
| 1773 | // pDescription = <application provided string> | ||
| 1774 | // | ||
| 1775 | // Returns S_OK, E_INVALIDARG or E_OUTOFMEMORY | ||
| 1776 | HRESULT AddApplicationMessage( | ||
| 1777 | [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity, | ||
| 1778 | [annotation("_In_")] LPCSTR pDescription); | ||
| 1779 | |||
| 1780 | //========================================================================= | ||
| 1781 | // Methods for breaking on errors that pass the storage filter. | ||
| 1782 | HRESULT SetBreakOnCategory( | ||
| 1783 | [annotation("_In_")] D3D12_MESSAGE_CATEGORY Category, | ||
| 1784 | [annotation("_In_")] BOOL bEnable); | ||
| 1785 | HRESULT SetBreakOnSeverity( | ||
| 1786 | [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity, | ||
| 1787 | [annotation("_In_")] BOOL bEnable); | ||
| 1788 | HRESULT SetBreakOnID( | ||
| 1789 | [annotation("_In_")] D3D12_MESSAGE_ID ID, | ||
| 1790 | [annotation("_In_")] BOOL bEnable); | ||
| 1791 | |||
| 1792 | BOOL GetBreakOnCategory( | ||
| 1793 | [annotation("_In_")] D3D12_MESSAGE_CATEGORY Category); | ||
| 1794 | BOOL GetBreakOnSeverity( | ||
| 1795 | [annotation("_In_")] D3D12_MESSAGE_SEVERITY Severity); | ||
| 1796 | BOOL GetBreakOnID( | ||
| 1797 | [annotation("_In_")] D3D12_MESSAGE_ID ID); | ||
| 1798 | |||
| 1799 | //========================================================================= | ||
| 1800 | // Methods for globally muting debug spte from the InfoQueue | ||
| 1801 | void SetMuteDebugOutput( | ||
| 1802 | [annotation("_In_")] BOOL bMute); | ||
| 1803 | BOOL GetMuteDebugOutput(); | ||
| 1804 | }; | ||
| 1805 | |||
| 1806 | typedef enum D3D12_MESSAGE_CALLBACK_FLAGS | ||
| 1807 | { | ||
| 1808 | D3D12_MESSAGE_CALLBACK_FLAG_NONE = 0x00, | ||
| 1809 | D3D12_MESSAGE_CALLBACK_IGNORE_FILTERS = 0x01, | ||
| 1810 | |||
| 1811 | } D3D12_MESSAGE_CALLBACK_FLAGS; | ||
| 1812 | |||
| 1813 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS(D3D12_MESSAGE_CALLBACK_FLAGS)") | ||
| 1814 | |||
| 1815 | typedef void (__stdcall *D3D12MessageFunc) (D3D12_MESSAGE_CATEGORY Category, | ||
| 1816 | D3D12_MESSAGE_SEVERITY Severity, | ||
| 1817 | D3D12_MESSAGE_ID ID, | ||
| 1818 | LPCSTR pDescription, | ||
| 1819 | void* pContext); | ||
| 1820 | |||
| 1821 | [ uuid( 2852dd88-b484-4c0c-b6b1-67168500e600 ), object, local, pointer_default( unique ) ] | ||
| 1822 | interface ID3D12InfoQueue1 | ||
| 1823 | : ID3D12InfoQueue | ||
| 1824 | { | ||
| 1825 | HRESULT RegisterMessageCallback( | ||
| 1826 | [annotation("_In_")] D3D12MessageFunc CallbackFunc, | ||
| 1827 | [annotation("_In_")] D3D12_MESSAGE_CALLBACK_FLAGS CallbackFilterFlags, | ||
| 1828 | [annotation("_Inout_")] void* pContext, | ||
| 1829 | [annotation("_Inout_")] DWORD *pCallbackCookie); | ||
| 1830 | |||
| 1831 | HRESULT UnregisterMessageCallback( | ||
| 1832 | [annotation("_In_")] DWORD CallbackCookie); | ||
| 1833 | }; | ||
| 1834 | |||
| 1835 | |||
| 1836 | |||
| 1837 | cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") | ||
| 1838 | #pragma endregion | ||
| 1839 | |||
| 1840 | |||
| 1841 | cpp_quote( "DEFINE_GUID(IID_ID3D12Debug,0x344488b7,0x6846,0x474b,0xb9,0x89,0xf0,0x27,0x44,0x82,0x45,0xe0);" ) | ||
| 1842 | cpp_quote( "DEFINE_GUID(IID_ID3D12Debug1,0xaffaa4ca,0x63fe,0x4d8e,0xb8,0xad,0x15,0x90,0x00,0xaf,0x43,0x04);" ) | ||
| 1843 | cpp_quote( "DEFINE_GUID(IID_ID3D12Debug2,0x93a665c4,0xa3b2,0x4e5d,0xb6,0x92,0xa2,0x6a,0xe1,0x4e,0x33,0x74);" ) | ||
| 1844 | cpp_quote( "DEFINE_GUID(IID_ID3D12Debug3,0x5cf4e58f,0xf671,0x4ff1,0xa5,0x42,0x36,0x86,0xe3,0xd1,0x53,0xd1);" ) | ||
| 1845 | cpp_quote( "DEFINE_GUID(IID_ID3D12Debug4,0x014b816e,0x9ec5,0x4a2f,0xa8,0x45,0xff,0xbe,0x44,0x1c,0xe1,0x3a);" ) | ||
| 1846 | cpp_quote( "DEFINE_GUID(IID_ID3D12Debug5,0x548d6b12,0x09fa,0x40e0,0x90,0x69,0x5d,0xcd,0x58,0x9a,0x52,0xc9);" ) | ||
| 1847 | cpp_quote( "DEFINE_GUID(IID_ID3D12Debug6,0x82a816d6,0x5d01,0x4157,0x97,0xd0,0x49,0x75,0x46,0x3f,0xd1,0xed);" ) | ||
| 1848 | cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice1,0xa9b71770,0xd099,0x4a65,0xa6,0x98,0x3d,0xee,0x10,0x02,0x0f,0x88);" ) | ||
| 1849 | cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice,0x3febd6dd,0x4973,0x4787,0x81,0x94,0xe4,0x5f,0x9e,0x28,0x92,0x3e);" ) | ||
| 1850 | cpp_quote( "DEFINE_GUID(IID_ID3D12DebugDevice2,0x60eccbc1,0x378d,0x4df1,0x89,0x4c,0xf8,0xac,0x5c,0xe4,0xd7,0xdd);" ) | ||
| 1851 | cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandQueue,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3a);" ) | ||
| 1852 | cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandQueue1,0x16be35a2,0xbfd6,0x49f2,0xbc,0xae,0xea,0xae,0x4a,0xff,0x86,0x2d);" ) | ||
| 1853 | cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList1,0x102ca951,0x311b,0x4b01,0xb1,0x1f,0xec,0xb8,0x3e,0x06,0x1b,0x37);" ) | ||
| 1854 | cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList,0x09e0bf36,0x54ac,0x484f,0x88,0x47,0x4b,0xae,0xea,0xb6,0x05,0x3f);" ) | ||
| 1855 | cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList2,0xaeb575cf,0x4e06,0x48be,0xba,0x3b,0xc4,0x50,0xfc,0x96,0x65,0x2e);" ) | ||
| 1856 | cpp_quote( "DEFINE_GUID(IID_ID3D12DebugCommandList3,0x197d5e15,0x4d37,0x4d34,0xaf,0x78,0x72,0x4c,0xd7,0x0f,0xdb,0x1f);" ) | ||
| 1857 | cpp_quote( "DEFINE_GUID(IID_ID3D12SharingContract,0x0adf7d52,0x929c,0x4e61,0xad,0xdb,0xff,0xed,0x30,0xde,0x66,0xef);" ) | ||
| 1858 | cpp_quote( "DEFINE_GUID(IID_ID3D12ManualWriteTrackingResource,0x86ca3b85,0x49ad,0x4b6e,0xae,0xd5,0xed,0xdb,0x18,0x54,0x0f,0x41);" ) | ||
| 1859 | cpp_quote( "DEFINE_GUID(IID_ID3D12InfoQueue,0x0742a90b,0xc387,0x483f,0xb9,0x46,0x30,0xa7,0xe4,0xe6,0x14,0x58);" ) | ||
| 1860 | cpp_quote( "DEFINE_GUID(IID_ID3D12InfoQueue1,0x2852dd88,0xb484,0x4c0c,0xb6,0xb1,0x67,0x16,0x85,0x00,0xe6,0x00);" ) | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12shader.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12shader.h new file mode 100644 index 0000000..56455b5 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12shader.h | |||
| @@ -0,0 +1,495 @@ | |||
| 1 | ////////////////////////////////////////////////////////////////////////////// | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT license. | ||
| 5 | // | ||
| 6 | // File: D3D12Shader.h | ||
| 7 | // Content: D3D12 Shader Types and APIs | ||
| 8 | // | ||
| 9 | ////////////////////////////////////////////////////////////////////////////// | ||
| 10 | |||
| 11 | #ifndef __D3D12SHADER_H__ | ||
| 12 | #define __D3D12SHADER_H__ | ||
| 13 | |||
| 14 | #include "d3dcommon.h" | ||
| 15 | |||
| 16 | typedef enum D3D12_SHADER_VERSION_TYPE | ||
| 17 | { | ||
| 18 | D3D12_SHVER_PIXEL_SHADER = 0, | ||
| 19 | D3D12_SHVER_VERTEX_SHADER = 1, | ||
| 20 | D3D12_SHVER_GEOMETRY_SHADER = 2, | ||
| 21 | |||
| 22 | // D3D11 Shaders | ||
| 23 | D3D12_SHVER_HULL_SHADER = 3, | ||
| 24 | D3D12_SHVER_DOMAIN_SHADER = 4, | ||
| 25 | D3D12_SHVER_COMPUTE_SHADER = 5, | ||
| 26 | |||
| 27 | // D3D12 Shaders | ||
| 28 | D3D12_SHVER_LIBRARY = 6, | ||
| 29 | |||
| 30 | D3D12_SHVER_RAY_GENERATION_SHADER = 7, | ||
| 31 | D3D12_SHVER_INTERSECTION_SHADER = 8, | ||
| 32 | D3D12_SHVER_ANY_HIT_SHADER = 9, | ||
| 33 | D3D12_SHVER_CLOSEST_HIT_SHADER = 10, | ||
| 34 | D3D12_SHVER_MISS_SHADER = 11, | ||
| 35 | D3D12_SHVER_CALLABLE_SHADER = 12, | ||
| 36 | |||
| 37 | D3D12_SHVER_MESH_SHADER = 13, | ||
| 38 | D3D12_SHVER_AMPLIFICATION_SHADER = 14, | ||
| 39 | |||
| 40 | D3D12_SHVER_NODE_SHADER = 15, | ||
| 41 | |||
| 42 | D3D12_SHVER_RESERVED0 = 0xFFF0, | ||
| 43 | } D3D12_SHADER_VERSION_TYPE; | ||
| 44 | |||
| 45 | #define D3D12_SHVER_GET_TYPE(_Version) \ | ||
| 46 | (((_Version) >> 16) & 0xffff) | ||
| 47 | #define D3D12_SHVER_GET_MAJOR(_Version) \ | ||
| 48 | (((_Version) >> 4) & 0xf) | ||
| 49 | #define D3D12_SHVER_GET_MINOR(_Version) \ | ||
| 50 | (((_Version) >> 0) & 0xf) | ||
| 51 | |||
| 52 | // Slot ID for library function return | ||
| 53 | #define D3D_RETURN_PARAMETER_INDEX (-1) | ||
| 54 | |||
| 55 | typedef D3D_RESOURCE_RETURN_TYPE D3D12_RESOURCE_RETURN_TYPE; | ||
| 56 | |||
| 57 | typedef D3D_CBUFFER_TYPE D3D12_CBUFFER_TYPE; | ||
| 58 | |||
| 59 | |||
| 60 | typedef struct _D3D12_SIGNATURE_PARAMETER_DESC | ||
| 61 | { | ||
| 62 | LPCSTR SemanticName; // Name of the semantic | ||
| 63 | UINT SemanticIndex; // Index of the semantic | ||
| 64 | UINT Register; // Number of member variables | ||
| 65 | D3D_NAME SystemValueType;// A predefined system value, or D3D_NAME_UNDEFINED if not applicable | ||
| 66 | D3D_REGISTER_COMPONENT_TYPE ComponentType; // Scalar type (e.g. uint, float, etc.) | ||
| 67 | BYTE Mask; // Mask to indicate which components of the register | ||
| 68 | // are used (combination of D3D10_COMPONENT_MASK values) | ||
| 69 | BYTE ReadWriteMask; // Mask to indicate whether a given component is | ||
| 70 | // never written (if this is an output signature) or | ||
| 71 | // always read (if this is an input signature). | ||
| 72 | // (combination of D3D_MASK_* values) | ||
| 73 | UINT Stream; // Stream index | ||
| 74 | D3D_MIN_PRECISION MinPrecision; // Minimum desired interpolation precision | ||
| 75 | } D3D12_SIGNATURE_PARAMETER_DESC; | ||
| 76 | |||
| 77 | typedef struct _D3D12_SHADER_BUFFER_DESC | ||
| 78 | { | ||
| 79 | LPCSTR Name; // Name of the constant buffer | ||
| 80 | D3D_CBUFFER_TYPE Type; // Indicates type of buffer content | ||
| 81 | UINT Variables; // Number of member variables | ||
| 82 | UINT Size; // Size of CB (in bytes) | ||
| 83 | UINT uFlags; // Buffer description flags | ||
| 84 | } D3D12_SHADER_BUFFER_DESC; | ||
| 85 | |||
| 86 | typedef struct _D3D12_SHADER_VARIABLE_DESC | ||
| 87 | { | ||
| 88 | LPCSTR Name; // Name of the variable | ||
| 89 | UINT StartOffset; // Offset in constant buffer's backing store | ||
| 90 | UINT Size; // Size of variable (in bytes) | ||
| 91 | UINT uFlags; // Variable flags | ||
| 92 | LPVOID DefaultValue; // Raw pointer to default value | ||
| 93 | UINT StartTexture; // First texture index (or -1 if no textures used) | ||
| 94 | UINT TextureSize; // Number of texture slots possibly used. | ||
| 95 | UINT StartSampler; // First sampler index (or -1 if no textures used) | ||
| 96 | UINT SamplerSize; // Number of sampler slots possibly used. | ||
| 97 | } D3D12_SHADER_VARIABLE_DESC; | ||
| 98 | |||
| 99 | typedef struct _D3D12_SHADER_TYPE_DESC | ||
| 100 | { | ||
| 101 | D3D_SHADER_VARIABLE_CLASS Class; // Variable class (e.g. object, matrix, etc.) | ||
| 102 | D3D_SHADER_VARIABLE_TYPE Type; // Variable type (e.g. float, sampler, etc.) | ||
| 103 | UINT Rows; // Number of rows (for matrices, 1 for other numeric, 0 if not applicable) | ||
| 104 | UINT Columns; // Number of columns (for vectors & matrices, 1 for other numeric, 0 if not applicable) | ||
| 105 | UINT Elements; // Number of elements (0 if not an array) | ||
| 106 | UINT Members; // Number of members (0 if not a structure) | ||
| 107 | UINT Offset; // Offset from the start of structure (0 if not a structure member) | ||
| 108 | LPCSTR Name; // Name of type, can be NULL | ||
| 109 | } D3D12_SHADER_TYPE_DESC; | ||
| 110 | |||
| 111 | typedef D3D_TESSELLATOR_DOMAIN D3D12_TESSELLATOR_DOMAIN; | ||
| 112 | |||
| 113 | typedef D3D_TESSELLATOR_PARTITIONING D3D12_TESSELLATOR_PARTITIONING; | ||
| 114 | |||
| 115 | typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D12_TESSELLATOR_OUTPUT_PRIMITIVE; | ||
| 116 | |||
| 117 | typedef struct _D3D12_SHADER_DESC | ||
| 118 | { | ||
| 119 | UINT Version; // Shader version | ||
| 120 | LPCSTR Creator; // Creator string | ||
| 121 | UINT Flags; // Shader compilation/parse flags | ||
| 122 | |||
| 123 | UINT ConstantBuffers; // Number of constant buffers | ||
| 124 | UINT BoundResources; // Number of bound resources | ||
| 125 | UINT InputParameters; // Number of parameters in the input signature | ||
| 126 | UINT OutputParameters; // Number of parameters in the output signature | ||
| 127 | |||
| 128 | UINT InstructionCount; // Number of emitted instructions | ||
| 129 | UINT TempRegisterCount; // Number of temporary registers used | ||
| 130 | UINT TempArrayCount; // Number of temporary arrays used | ||
| 131 | UINT DefCount; // Number of constant defines | ||
| 132 | UINT DclCount; // Number of declarations (input + output) | ||
| 133 | UINT TextureNormalInstructions; // Number of non-categorized texture instructions | ||
| 134 | UINT TextureLoadInstructions; // Number of texture load instructions | ||
| 135 | UINT TextureCompInstructions; // Number of texture comparison instructions | ||
| 136 | UINT TextureBiasInstructions; // Number of texture bias instructions | ||
| 137 | UINT TextureGradientInstructions; // Number of texture gradient instructions | ||
| 138 | UINT FloatInstructionCount; // Number of floating point arithmetic instructions used | ||
| 139 | UINT IntInstructionCount; // Number of signed integer arithmetic instructions used | ||
| 140 | UINT UintInstructionCount; // Number of unsigned integer arithmetic instructions used | ||
| 141 | UINT StaticFlowControlCount; // Number of static flow control instructions used | ||
| 142 | UINT DynamicFlowControlCount; // Number of dynamic flow control instructions used | ||
| 143 | UINT MacroInstructionCount; // Number of macro instructions used | ||
| 144 | UINT ArrayInstructionCount; // Number of array instructions used | ||
| 145 | UINT CutInstructionCount; // Number of cut instructions used | ||
| 146 | UINT EmitInstructionCount; // Number of emit instructions used | ||
| 147 | D3D_PRIMITIVE_TOPOLOGY GSOutputTopology; // Geometry shader output topology | ||
| 148 | UINT GSMaxOutputVertexCount; // Geometry shader maximum output vertex count | ||
| 149 | D3D_PRIMITIVE InputPrimitive; // GS/HS input primitive | ||
| 150 | UINT PatchConstantParameters; // Number of parameters in the patch constant signature | ||
| 151 | UINT cGSInstanceCount; // Number of Geometry shader instances | ||
| 152 | UINT cControlPoints; // Number of control points in the HS->DS stage | ||
| 153 | D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive; // Primitive output by the tessellator | ||
| 154 | D3D_TESSELLATOR_PARTITIONING HSPartitioning; // Partitioning mode of the tessellator | ||
| 155 | D3D_TESSELLATOR_DOMAIN TessellatorDomain; // Domain of the tessellator (quad, tri, isoline) | ||
| 156 | // instruction counts | ||
| 157 | UINT cBarrierInstructions; // Number of barrier instructions in a compute shader | ||
| 158 | UINT cInterlockedInstructions; // Number of interlocked instructions | ||
| 159 | UINT cTextureStoreInstructions; // Number of texture writes | ||
| 160 | } D3D12_SHADER_DESC; | ||
| 161 | |||
| 162 | typedef struct _D3D12_SHADER_INPUT_BIND_DESC | ||
| 163 | { | ||
| 164 | LPCSTR Name; // Name of the resource | ||
| 165 | D3D_SHADER_INPUT_TYPE Type; // Type of resource (e.g. texture, cbuffer, etc.) | ||
| 166 | UINT BindPoint; // Starting bind point | ||
| 167 | UINT BindCount; // Number of contiguous bind points (for arrays) | ||
| 168 | |||
| 169 | UINT uFlags; // Input binding flags | ||
| 170 | D3D_RESOURCE_RETURN_TYPE ReturnType; // Return type (if texture) | ||
| 171 | D3D_SRV_DIMENSION Dimension; // Dimension (if texture) | ||
| 172 | UINT NumSamples; // Number of samples (0 if not MS texture) | ||
| 173 | UINT Space; // Register space | ||
| 174 | UINT uID; // Range ID in the bytecode | ||
| 175 | } D3D12_SHADER_INPUT_BIND_DESC; | ||
| 176 | |||
| 177 | #define D3D_SHADER_REQUIRES_DOUBLES 0x00000001 | ||
| 178 | #define D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL 0x00000002 | ||
| 179 | #define D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE 0x00000004 | ||
| 180 | #define D3D_SHADER_REQUIRES_64_UAVS 0x00000008 | ||
| 181 | #define D3D_SHADER_REQUIRES_MINIMUM_PRECISION 0x00000010 | ||
| 182 | #define D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS 0x00000020 | ||
| 183 | #define D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS 0x00000040 | ||
| 184 | #define D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING 0x00000080 | ||
| 185 | #define D3D_SHADER_REQUIRES_TILED_RESOURCES 0x00000100 | ||
| 186 | #define D3D_SHADER_REQUIRES_STENCIL_REF 0x00000200 | ||
| 187 | #define D3D_SHADER_REQUIRES_INNER_COVERAGE 0x00000400 | ||
| 188 | #define D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00000800 | ||
| 189 | #define D3D_SHADER_REQUIRES_ROVS 0x00001000 | ||
| 190 | #define D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x00002000 | ||
| 191 | #define D3D_SHADER_REQUIRES_WAVE_OPS 0x00004000 | ||
| 192 | #define D3D_SHADER_REQUIRES_INT64_OPS 0x00008000 | ||
| 193 | #define D3D_SHADER_REQUIRES_VIEW_ID 0x00010000 | ||
| 194 | #define D3D_SHADER_REQUIRES_BARYCENTRICS 0x00020000 | ||
| 195 | #define D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS 0x00040000 | ||
| 196 | #define D3D_SHADER_REQUIRES_SHADING_RATE 0x00080000 | ||
| 197 | #define D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1 0x00100000 | ||
| 198 | #define D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK 0x00200000 | ||
| 199 | #define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE 0x00400000 | ||
| 200 | #define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED 0x00800000 | ||
| 201 | #define D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x01000000 | ||
| 202 | #define D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x02000000 | ||
| 203 | #define D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x04000000 | ||
| 204 | #define D3D_SHADER_REQUIRES_WAVE_MMA 0x08000000 | ||
| 205 | #define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000 | ||
| 206 | #define D3D_SHADER_REQUIRES_ADVANCED_TEXTURE_OPS 0x20000000 | ||
| 207 | #define D3D_SHADER_REQUIRES_WRITEABLE_MSAA_TEXTURES 0x40000000 | ||
| 208 | #define D3D_SHADER_REQUIRES_SAMPLE_CMP_GRADIENT_OR_BIAS 0x80000000 | ||
| 209 | #define D3D_SHADER_REQUIRES_EXTENDED_COMMAND_INFO 0x100000000ull | ||
| 210 | |||
| 211 | |||
| 212 | typedef struct _D3D12_LIBRARY_DESC | ||
| 213 | { | ||
| 214 | LPCSTR Creator; // The name of the originator of the library. | ||
| 215 | UINT Flags; // Compilation flags. | ||
| 216 | UINT FunctionCount; // Number of functions exported from the library. | ||
| 217 | } D3D12_LIBRARY_DESC; | ||
| 218 | |||
| 219 | typedef struct _D3D12_FUNCTION_DESC | ||
| 220 | { | ||
| 221 | UINT Version; // Shader version | ||
| 222 | LPCSTR Creator; // Creator string | ||
| 223 | UINT Flags; // Shader compilation/parse flags | ||
| 224 | |||
| 225 | UINT ConstantBuffers; // Number of constant buffers | ||
| 226 | UINT BoundResources; // Number of bound resources | ||
| 227 | |||
| 228 | UINT InstructionCount; // Number of emitted instructions | ||
| 229 | UINT TempRegisterCount; // Number of temporary registers used | ||
| 230 | UINT TempArrayCount; // Number of temporary arrays used | ||
| 231 | UINT DefCount; // Number of constant defines | ||
| 232 | UINT DclCount; // Number of declarations (input + output) | ||
| 233 | UINT TextureNormalInstructions; // Number of non-categorized texture instructions | ||
| 234 | UINT TextureLoadInstructions; // Number of texture load instructions | ||
| 235 | UINT TextureCompInstructions; // Number of texture comparison instructions | ||
| 236 | UINT TextureBiasInstructions; // Number of texture bias instructions | ||
| 237 | UINT TextureGradientInstructions; // Number of texture gradient instructions | ||
| 238 | UINT FloatInstructionCount; // Number of floating point arithmetic instructions used | ||
| 239 | UINT IntInstructionCount; // Number of signed integer arithmetic instructions used | ||
| 240 | UINT UintInstructionCount; // Number of unsigned integer arithmetic instructions used | ||
| 241 | UINT StaticFlowControlCount; // Number of static flow control instructions used | ||
| 242 | UINT DynamicFlowControlCount; // Number of dynamic flow control instructions used | ||
| 243 | UINT MacroInstructionCount; // Number of macro instructions used | ||
| 244 | UINT ArrayInstructionCount; // Number of array instructions used | ||
| 245 | UINT MovInstructionCount; // Number of mov instructions used | ||
| 246 | UINT MovcInstructionCount; // Number of movc instructions used | ||
| 247 | UINT ConversionInstructionCount; // Number of type conversion instructions used | ||
| 248 | UINT BitwiseInstructionCount; // Number of bitwise arithmetic instructions used | ||
| 249 | D3D_FEATURE_LEVEL MinFeatureLevel; // Min target of the function byte code | ||
| 250 | UINT64 RequiredFeatureFlags; // Required feature flags | ||
| 251 | |||
| 252 | LPCSTR Name; // Function name | ||
| 253 | INT FunctionParameterCount; // Number of logical parameters in the function signature (not including return) | ||
| 254 | BOOL HasReturn; // TRUE, if function returns a value, false - it is a subroutine | ||
| 255 | BOOL Has10Level9VertexShader; // TRUE, if there is a 10L9 VS blob | ||
| 256 | BOOL Has10Level9PixelShader; // TRUE, if there is a 10L9 PS blob | ||
| 257 | } D3D12_FUNCTION_DESC; | ||
| 258 | |||
| 259 | typedef struct _D3D12_PARAMETER_DESC | ||
| 260 | { | ||
| 261 | LPCSTR Name; // Parameter name. | ||
| 262 | LPCSTR SemanticName; // Parameter semantic name (+index). | ||
| 263 | D3D_SHADER_VARIABLE_TYPE Type; // Element type. | ||
| 264 | D3D_SHADER_VARIABLE_CLASS Class; // Scalar/Vector/Matrix. | ||
| 265 | UINT Rows; // Rows are for matrix parameters. | ||
| 266 | UINT Columns; // Components or Columns in matrix. | ||
| 267 | D3D_INTERPOLATION_MODE InterpolationMode; // Interpolation mode. | ||
| 268 | D3D_PARAMETER_FLAGS Flags; // Parameter modifiers. | ||
| 269 | |||
| 270 | UINT FirstInRegister; // The first input register for this parameter. | ||
| 271 | UINT FirstInComponent; // The first input register component for this parameter. | ||
| 272 | UINT FirstOutRegister; // The first output register for this parameter. | ||
| 273 | UINT FirstOutComponent; // The first output register component for this parameter. | ||
| 274 | } D3D12_PARAMETER_DESC; | ||
| 275 | |||
| 276 | |||
| 277 | ////////////////////////////////////////////////////////////////////////////// | ||
| 278 | // Interfaces //////////////////////////////////////////////////////////////// | ||
| 279 | ////////////////////////////////////////////////////////////////////////////// | ||
| 280 | |||
| 281 | typedef interface ID3D12ShaderReflectionType ID3D12ShaderReflectionType; | ||
| 282 | typedef interface ID3D12ShaderReflectionType *LPD3D12SHADERREFLECTIONTYPE; | ||
| 283 | |||
| 284 | typedef interface ID3D12ShaderReflectionVariable ID3D12ShaderReflectionVariable; | ||
| 285 | typedef interface ID3D12ShaderReflectionVariable *LPD3D12SHADERREFLECTIONVARIABLE; | ||
| 286 | |||
| 287 | typedef interface ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer; | ||
| 288 | typedef interface ID3D12ShaderReflectionConstantBuffer *LPD3D12SHADERREFLECTIONCONSTANTBUFFER; | ||
| 289 | |||
| 290 | typedef interface ID3D12ShaderReflection ID3D12ShaderReflection; | ||
| 291 | typedef interface ID3D12ShaderReflection *LPD3D12SHADERREFLECTION; | ||
| 292 | |||
| 293 | typedef interface ID3D12LibraryReflection ID3D12LibraryReflection; | ||
| 294 | typedef interface ID3D12LibraryReflection *LPD3D12LIBRARYREFLECTION; | ||
| 295 | |||
| 296 | typedef interface ID3D12FunctionReflection ID3D12FunctionReflection; | ||
| 297 | typedef interface ID3D12FunctionReflection *LPD3D12FUNCTIONREFLECTION; | ||
| 298 | |||
| 299 | typedef interface ID3D12FunctionParameterReflection ID3D12FunctionParameterReflection; | ||
| 300 | typedef interface ID3D12FunctionParameterReflection *LPD3D12FUNCTIONPARAMETERREFLECTION; | ||
| 301 | |||
| 302 | |||
| 303 | // {E913C351-783D-48CA-A1D1-4F306284AD56} | ||
| 304 | interface DECLSPEC_UUID("E913C351-783D-48CA-A1D1-4F306284AD56") ID3D12ShaderReflectionType; | ||
| 305 | DEFINE_GUID(IID_ID3D12ShaderReflectionType, | ||
| 306 | 0xe913c351, 0x783d, 0x48ca, 0xa1, 0xd1, 0x4f, 0x30, 0x62, 0x84, 0xad, 0x56); | ||
| 307 | |||
| 308 | #undef INTERFACE | ||
| 309 | #define INTERFACE ID3D12ShaderReflectionType | ||
| 310 | |||
| 311 | DECLARE_INTERFACE(ID3D12ShaderReflectionType) | ||
| 312 | { | ||
| 313 | STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_SHADER_TYPE_DESC *pDesc) PURE; | ||
| 314 | |||
| 315 | STDMETHOD_(ID3D12ShaderReflectionType*, GetMemberTypeByIndex)(THIS_ _In_ UINT Index) PURE; | ||
| 316 | STDMETHOD_(ID3D12ShaderReflectionType*, GetMemberTypeByName)(THIS_ _In_ LPCSTR Name) PURE; | ||
| 317 | STDMETHOD_(LPCSTR, GetMemberTypeName)(THIS_ _In_ UINT Index) PURE; | ||
| 318 | |||
| 319 | STDMETHOD(IsEqual)(THIS_ _In_ ID3D12ShaderReflectionType* pType) PURE; | ||
| 320 | STDMETHOD_(ID3D12ShaderReflectionType*, GetSubType)(THIS) PURE; | ||
| 321 | STDMETHOD_(ID3D12ShaderReflectionType*, GetBaseClass)(THIS) PURE; | ||
| 322 | STDMETHOD_(UINT, GetNumInterfaces)(THIS) PURE; | ||
| 323 | STDMETHOD_(ID3D12ShaderReflectionType*, GetInterfaceByIndex)(THIS_ _In_ UINT uIndex) PURE; | ||
| 324 | STDMETHOD(IsOfType)(THIS_ _In_ ID3D12ShaderReflectionType* pType) PURE; | ||
| 325 | STDMETHOD(ImplementsInterface)(THIS_ _In_ ID3D12ShaderReflectionType* pBase) PURE; | ||
| 326 | }; | ||
| 327 | |||
| 328 | // {8337A8A6-A216-444A-B2F4-314733A73AEA} | ||
| 329 | interface DECLSPEC_UUID("8337A8A6-A216-444A-B2F4-314733A73AEA") ID3D12ShaderReflectionVariable; | ||
| 330 | DEFINE_GUID(IID_ID3D12ShaderReflectionVariable, | ||
| 331 | 0x8337a8a6, 0xa216, 0x444a, 0xb2, 0xf4, 0x31, 0x47, 0x33, 0xa7, 0x3a, 0xea); | ||
| 332 | |||
| 333 | #undef INTERFACE | ||
| 334 | #define INTERFACE ID3D12ShaderReflectionVariable | ||
| 335 | |||
| 336 | DECLARE_INTERFACE(ID3D12ShaderReflectionVariable) | ||
| 337 | { | ||
| 338 | STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_SHADER_VARIABLE_DESC *pDesc) PURE; | ||
| 339 | |||
| 340 | STDMETHOD_(ID3D12ShaderReflectionType*, GetType)(THIS) PURE; | ||
| 341 | STDMETHOD_(ID3D12ShaderReflectionConstantBuffer*, GetBuffer)(THIS) PURE; | ||
| 342 | |||
| 343 | STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ _In_ UINT uArrayIndex) PURE; | ||
| 344 | }; | ||
| 345 | |||
| 346 | // {C59598B4-48B3-4869-B9B1-B1618B14A8B7} | ||
| 347 | interface DECLSPEC_UUID("C59598B4-48B3-4869-B9B1-B1618B14A8B7") ID3D12ShaderReflectionConstantBuffer; | ||
| 348 | DEFINE_GUID(IID_ID3D12ShaderReflectionConstantBuffer, | ||
| 349 | 0xc59598b4, 0x48b3, 0x4869, 0xb9, 0xb1, 0xb1, 0x61, 0x8b, 0x14, 0xa8, 0xb7); | ||
| 350 | |||
| 351 | #undef INTERFACE | ||
| 352 | #define INTERFACE ID3D12ShaderReflectionConstantBuffer | ||
| 353 | |||
| 354 | DECLARE_INTERFACE(ID3D12ShaderReflectionConstantBuffer) | ||
| 355 | { | ||
| 356 | STDMETHOD(GetDesc)(THIS_ D3D12_SHADER_BUFFER_DESC *pDesc) PURE; | ||
| 357 | |||
| 358 | STDMETHOD_(ID3D12ShaderReflectionVariable*, GetVariableByIndex)(THIS_ _In_ UINT Index) PURE; | ||
| 359 | STDMETHOD_(ID3D12ShaderReflectionVariable*, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE; | ||
| 360 | }; | ||
| 361 | |||
| 362 | // The ID3D12ShaderReflection IID may change from SDK version to SDK version | ||
| 363 | // if the reflection API changes. This prevents new code with the new API | ||
| 364 | // from working with an old binary. Recompiling with the new header | ||
| 365 | // will pick up the new IID. | ||
| 366 | |||
| 367 | // {5A58797D-A72C-478D-8BA2-EFC6B0EFE88E} | ||
| 368 | interface DECLSPEC_UUID("5A58797D-A72C-478D-8BA2-EFC6B0EFE88E") ID3D12ShaderReflection; | ||
| 369 | DEFINE_GUID(IID_ID3D12ShaderReflection, | ||
| 370 | 0x5a58797d, 0xa72c, 0x478d, 0x8b, 0xa2, 0xef, 0xc6, 0xb0, 0xef, 0xe8, 0x8e); | ||
| 371 | |||
| 372 | #undef INTERFACE | ||
| 373 | #define INTERFACE ID3D12ShaderReflection | ||
| 374 | |||
| 375 | DECLARE_INTERFACE_(ID3D12ShaderReflection, IUnknown) | ||
| 376 | { | ||
| 377 | STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, | ||
| 378 | _Out_ LPVOID *ppv) PURE; | ||
| 379 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | ||
| 380 | STDMETHOD_(ULONG, Release)(THIS) PURE; | ||
| 381 | |||
| 382 | STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_SHADER_DESC *pDesc) PURE; | ||
| 383 | |||
| 384 | STDMETHOD_(ID3D12ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ _In_ UINT Index) PURE; | ||
| 385 | STDMETHOD_(ID3D12ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ _In_ LPCSTR Name) PURE; | ||
| 386 | |||
| 387 | STDMETHOD(GetResourceBindingDesc)(THIS_ _In_ UINT ResourceIndex, | ||
| 388 | _Out_ D3D12_SHADER_INPUT_BIND_DESC *pDesc) PURE; | ||
| 389 | |||
| 390 | STDMETHOD(GetInputParameterDesc)(THIS_ _In_ UINT ParameterIndex, | ||
| 391 | _Out_ D3D12_SIGNATURE_PARAMETER_DESC *pDesc) PURE; | ||
| 392 | STDMETHOD(GetOutputParameterDesc)(THIS_ _In_ UINT ParameterIndex, | ||
| 393 | _Out_ D3D12_SIGNATURE_PARAMETER_DESC *pDesc) PURE; | ||
| 394 | STDMETHOD(GetPatchConstantParameterDesc)(THIS_ _In_ UINT ParameterIndex, | ||
| 395 | _Out_ D3D12_SIGNATURE_PARAMETER_DESC *pDesc) PURE; | ||
| 396 | |||
| 397 | STDMETHOD_(ID3D12ShaderReflectionVariable*, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE; | ||
| 398 | |||
| 399 | STDMETHOD(GetResourceBindingDescByName)(THIS_ _In_ LPCSTR Name, | ||
| 400 | _Out_ D3D12_SHADER_INPUT_BIND_DESC *pDesc) PURE; | ||
| 401 | |||
| 402 | STDMETHOD_(UINT, GetMovInstructionCount)(THIS) PURE; | ||
| 403 | STDMETHOD_(UINT, GetMovcInstructionCount)(THIS) PURE; | ||
| 404 | STDMETHOD_(UINT, GetConversionInstructionCount)(THIS) PURE; | ||
| 405 | STDMETHOD_(UINT, GetBitwiseInstructionCount)(THIS) PURE; | ||
| 406 | |||
| 407 | STDMETHOD_(D3D_PRIMITIVE, GetGSInputPrimitive)(THIS) PURE; | ||
| 408 | STDMETHOD_(BOOL, IsSampleFrequencyShader)(THIS) PURE; | ||
| 409 | |||
| 410 | STDMETHOD_(UINT, GetNumInterfaceSlots)(THIS) PURE; | ||
| 411 | STDMETHOD(GetMinFeatureLevel)(THIS_ _Out_ enum D3D_FEATURE_LEVEL* pLevel) PURE; | ||
| 412 | |||
| 413 | STDMETHOD_(UINT, GetThreadGroupSize)(THIS_ | ||
| 414 | _Out_opt_ UINT* pSizeX, | ||
| 415 | _Out_opt_ UINT* pSizeY, | ||
| 416 | _Out_opt_ UINT* pSizeZ) PURE; | ||
| 417 | |||
| 418 | STDMETHOD_(UINT64, GetRequiresFlags)(THIS) PURE; | ||
| 419 | }; | ||
| 420 | |||
| 421 | // {8E349D19-54DB-4A56-9DC9-119D87BDB804} | ||
| 422 | interface DECLSPEC_UUID("8E349D19-54DB-4A56-9DC9-119D87BDB804") ID3D12LibraryReflection; | ||
| 423 | DEFINE_GUID(IID_ID3D12LibraryReflection, | ||
| 424 | 0x8e349d19, 0x54db, 0x4a56, 0x9d, 0xc9, 0x11, 0x9d, 0x87, 0xbd, 0xb8, 0x4); | ||
| 425 | |||
| 426 | #undef INTERFACE | ||
| 427 | #define INTERFACE ID3D12LibraryReflection | ||
| 428 | |||
| 429 | DECLARE_INTERFACE_(ID3D12LibraryReflection, IUnknown) | ||
| 430 | { | ||
| 431 | STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, _Out_ LPVOID * ppv) PURE; | ||
| 432 | STDMETHOD_(ULONG, AddRef)(THIS) PURE; | ||
| 433 | STDMETHOD_(ULONG, Release)(THIS) PURE; | ||
| 434 | |||
| 435 | STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_LIBRARY_DESC * pDesc) PURE; | ||
| 436 | |||
| 437 | STDMETHOD_(ID3D12FunctionReflection *, GetFunctionByIndex)(THIS_ _In_ INT FunctionIndex) PURE; | ||
| 438 | }; | ||
| 439 | |||
| 440 | // {1108795C-2772-4BA9-B2A8-D464DC7E2799} | ||
| 441 | interface DECLSPEC_UUID("1108795C-2772-4BA9-B2A8-D464DC7E2799") ID3D12FunctionReflection; | ||
| 442 | DEFINE_GUID(IID_ID3D12FunctionReflection, | ||
| 443 | 0x1108795c, 0x2772, 0x4ba9, 0xb2, 0xa8, 0xd4, 0x64, 0xdc, 0x7e, 0x27, 0x99); | ||
| 444 | |||
| 445 | #undef INTERFACE | ||
| 446 | #define INTERFACE ID3D12FunctionReflection | ||
| 447 | |||
| 448 | DECLARE_INTERFACE(ID3D12FunctionReflection) | ||
| 449 | { | ||
| 450 | STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_FUNCTION_DESC * pDesc) PURE; | ||
| 451 | |||
| 452 | STDMETHOD_(ID3D12ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ _In_ UINT BufferIndex) PURE; | ||
| 453 | STDMETHOD_(ID3D12ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ _In_ LPCSTR Name) PURE; | ||
| 454 | |||
| 455 | STDMETHOD(GetResourceBindingDesc)(THIS_ _In_ UINT ResourceIndex, | ||
| 456 | _Out_ D3D12_SHADER_INPUT_BIND_DESC * pDesc) PURE; | ||
| 457 | |||
| 458 | STDMETHOD_(ID3D12ShaderReflectionVariable *, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE; | ||
| 459 | |||
| 460 | STDMETHOD(GetResourceBindingDescByName)(THIS_ _In_ LPCSTR Name, | ||
| 461 | _Out_ D3D12_SHADER_INPUT_BIND_DESC * pDesc) PURE; | ||
| 462 | |||
| 463 | // Use D3D_RETURN_PARAMETER_INDEX to get description of the return value. | ||
| 464 | STDMETHOD_(ID3D12FunctionParameterReflection *, GetFunctionParameter)(THIS_ _In_ INT ParameterIndex) PURE; | ||
| 465 | }; | ||
| 466 | |||
| 467 | // {EC25F42D-7006-4F2B-B33E-02CC3375733F} | ||
| 468 | interface DECLSPEC_UUID("EC25F42D-7006-4F2B-B33E-02CC3375733F") ID3D12FunctionParameterReflection; | ||
| 469 | DEFINE_GUID(IID_ID3D12FunctionParameterReflection, | ||
| 470 | 0xec25f42d, 0x7006, 0x4f2b, 0xb3, 0x3e, 0x2, 0xcc, 0x33, 0x75, 0x73, 0x3f); | ||
| 471 | |||
| 472 | #undef INTERFACE | ||
| 473 | #define INTERFACE ID3D12FunctionParameterReflection | ||
| 474 | |||
| 475 | DECLARE_INTERFACE(ID3D12FunctionParameterReflection) | ||
| 476 | { | ||
| 477 | STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_PARAMETER_DESC * pDesc) PURE; | ||
| 478 | }; | ||
| 479 | |||
| 480 | |||
| 481 | ////////////////////////////////////////////////////////////////////////////// | ||
| 482 | // APIs ////////////////////////////////////////////////////////////////////// | ||
| 483 | ////////////////////////////////////////////////////////////////////////////// | ||
| 484 | |||
| 485 | #ifdef __cplusplus | ||
| 486 | extern "C" { | ||
| 487 | #endif //__cplusplus | ||
| 488 | |||
| 489 | #ifdef __cplusplus | ||
| 490 | } | ||
| 491 | #endif //__cplusplus | ||
| 492 | |||
| 493 | #endif //__D3D12SHADER_H__ | ||
| 494 | |||
| 495 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12video.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12video.h new file mode 100644 index 0000000..843e78d --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12video.h | |||
| @@ -0,0 +1,10726 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | |||
| 8 | |||
| 9 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ | ||
| 10 | |||
| 11 | |||
| 12 | /* File created by MIDL compiler version 8.01.0628 */ | ||
| 13 | |||
| 14 | |||
| 15 | |||
| 16 | /* verify that the <rpcndr.h> version is high enough to compile this file*/ | ||
| 17 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | ||
| 18 | #define __REQUIRED_RPCNDR_H_VERSION__ 500 | ||
| 19 | #endif | ||
| 20 | |||
| 21 | /* verify that the <rpcsal.h> version is high enough to compile this file*/ | ||
| 22 | #ifndef __REQUIRED_RPCSAL_H_VERSION__ | ||
| 23 | #define __REQUIRED_RPCSAL_H_VERSION__ 100 | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include "rpc.h" | ||
| 27 | #include "rpcndr.h" | ||
| 28 | |||
| 29 | #ifndef __RPCNDR_H_VERSION__ | ||
| 30 | #error this stub requires an updated version of <rpcndr.h> | ||
| 31 | #endif /* __RPCNDR_H_VERSION__ */ | ||
| 32 | |||
| 33 | #ifndef COM_NO_WINDOWS_H | ||
| 34 | #include "windows.h" | ||
| 35 | #include "ole2.h" | ||
| 36 | #endif /*COM_NO_WINDOWS_H*/ | ||
| 37 | |||
| 38 | #ifndef __d3d12video_h__ | ||
| 39 | #define __d3d12video_h__ | ||
| 40 | |||
| 41 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) | ||
| 42 | #pragma once | ||
| 43 | #endif | ||
| 44 | |||
| 45 | #ifndef DECLSPEC_XFGVIRT | ||
| 46 | #if defined(_CONTROL_FLOW_GUARD_XFG) | ||
| 47 | #define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) | ||
| 48 | #else | ||
| 49 | #define DECLSPEC_XFGVIRT(base, func) | ||
| 50 | #endif | ||
| 51 | #endif | ||
| 52 | |||
| 53 | /* Forward Declarations */ | ||
| 54 | |||
| 55 | #ifndef __ID3D12VideoDecoderHeap_FWD_DEFINED__ | ||
| 56 | #define __ID3D12VideoDecoderHeap_FWD_DEFINED__ | ||
| 57 | typedef interface ID3D12VideoDecoderHeap ID3D12VideoDecoderHeap; | ||
| 58 | |||
| 59 | #endif /* __ID3D12VideoDecoderHeap_FWD_DEFINED__ */ | ||
| 60 | |||
| 61 | |||
| 62 | #ifndef __ID3D12VideoDevice_FWD_DEFINED__ | ||
| 63 | #define __ID3D12VideoDevice_FWD_DEFINED__ | ||
| 64 | typedef interface ID3D12VideoDevice ID3D12VideoDevice; | ||
| 65 | |||
| 66 | #endif /* __ID3D12VideoDevice_FWD_DEFINED__ */ | ||
| 67 | |||
| 68 | |||
| 69 | #ifndef __ID3D12VideoDecoder_FWD_DEFINED__ | ||
| 70 | #define __ID3D12VideoDecoder_FWD_DEFINED__ | ||
| 71 | typedef interface ID3D12VideoDecoder ID3D12VideoDecoder; | ||
| 72 | |||
| 73 | #endif /* __ID3D12VideoDecoder_FWD_DEFINED__ */ | ||
| 74 | |||
| 75 | |||
| 76 | #ifndef __ID3D12VideoProcessor_FWD_DEFINED__ | ||
| 77 | #define __ID3D12VideoProcessor_FWD_DEFINED__ | ||
| 78 | typedef interface ID3D12VideoProcessor ID3D12VideoProcessor; | ||
| 79 | |||
| 80 | #endif /* __ID3D12VideoProcessor_FWD_DEFINED__ */ | ||
| 81 | |||
| 82 | |||
| 83 | #ifndef __ID3D12VideoDecodeCommandList_FWD_DEFINED__ | ||
| 84 | #define __ID3D12VideoDecodeCommandList_FWD_DEFINED__ | ||
| 85 | typedef interface ID3D12VideoDecodeCommandList ID3D12VideoDecodeCommandList; | ||
| 86 | |||
| 87 | #endif /* __ID3D12VideoDecodeCommandList_FWD_DEFINED__ */ | ||
| 88 | |||
| 89 | |||
| 90 | #ifndef __ID3D12VideoProcessCommandList_FWD_DEFINED__ | ||
| 91 | #define __ID3D12VideoProcessCommandList_FWD_DEFINED__ | ||
| 92 | typedef interface ID3D12VideoProcessCommandList ID3D12VideoProcessCommandList; | ||
| 93 | |||
| 94 | #endif /* __ID3D12VideoProcessCommandList_FWD_DEFINED__ */ | ||
| 95 | |||
| 96 | |||
| 97 | #ifndef __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ | ||
| 98 | #define __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ | ||
| 99 | typedef interface ID3D12VideoDecodeCommandList1 ID3D12VideoDecodeCommandList1; | ||
| 100 | |||
| 101 | #endif /* __ID3D12VideoDecodeCommandList1_FWD_DEFINED__ */ | ||
| 102 | |||
| 103 | |||
| 104 | #ifndef __ID3D12VideoProcessCommandList1_FWD_DEFINED__ | ||
| 105 | #define __ID3D12VideoProcessCommandList1_FWD_DEFINED__ | ||
| 106 | typedef interface ID3D12VideoProcessCommandList1 ID3D12VideoProcessCommandList1; | ||
| 107 | |||
| 108 | #endif /* __ID3D12VideoProcessCommandList1_FWD_DEFINED__ */ | ||
| 109 | |||
| 110 | |||
| 111 | #ifndef __ID3D12VideoMotionEstimator_FWD_DEFINED__ | ||
| 112 | #define __ID3D12VideoMotionEstimator_FWD_DEFINED__ | ||
| 113 | typedef interface ID3D12VideoMotionEstimator ID3D12VideoMotionEstimator; | ||
| 114 | |||
| 115 | #endif /* __ID3D12VideoMotionEstimator_FWD_DEFINED__ */ | ||
| 116 | |||
| 117 | |||
| 118 | #ifndef __ID3D12VideoMotionVectorHeap_FWD_DEFINED__ | ||
| 119 | #define __ID3D12VideoMotionVectorHeap_FWD_DEFINED__ | ||
| 120 | typedef interface ID3D12VideoMotionVectorHeap ID3D12VideoMotionVectorHeap; | ||
| 121 | |||
| 122 | #endif /* __ID3D12VideoMotionVectorHeap_FWD_DEFINED__ */ | ||
| 123 | |||
| 124 | |||
| 125 | #ifndef __ID3D12VideoDevice1_FWD_DEFINED__ | ||
| 126 | #define __ID3D12VideoDevice1_FWD_DEFINED__ | ||
| 127 | typedef interface ID3D12VideoDevice1 ID3D12VideoDevice1; | ||
| 128 | |||
| 129 | #endif /* __ID3D12VideoDevice1_FWD_DEFINED__ */ | ||
| 130 | |||
| 131 | |||
| 132 | #ifndef __ID3D12VideoEncodeCommandList_FWD_DEFINED__ | ||
| 133 | #define __ID3D12VideoEncodeCommandList_FWD_DEFINED__ | ||
| 134 | typedef interface ID3D12VideoEncodeCommandList ID3D12VideoEncodeCommandList; | ||
| 135 | |||
| 136 | #endif /* __ID3D12VideoEncodeCommandList_FWD_DEFINED__ */ | ||
| 137 | |||
| 138 | |||
| 139 | #ifndef __ID3D12VideoDecoder1_FWD_DEFINED__ | ||
| 140 | #define __ID3D12VideoDecoder1_FWD_DEFINED__ | ||
| 141 | typedef interface ID3D12VideoDecoder1 ID3D12VideoDecoder1; | ||
| 142 | |||
| 143 | #endif /* __ID3D12VideoDecoder1_FWD_DEFINED__ */ | ||
| 144 | |||
| 145 | |||
| 146 | #ifndef __ID3D12VideoDecoderHeap1_FWD_DEFINED__ | ||
| 147 | #define __ID3D12VideoDecoderHeap1_FWD_DEFINED__ | ||
| 148 | typedef interface ID3D12VideoDecoderHeap1 ID3D12VideoDecoderHeap1; | ||
| 149 | |||
| 150 | #endif /* __ID3D12VideoDecoderHeap1_FWD_DEFINED__ */ | ||
| 151 | |||
| 152 | |||
| 153 | #ifndef __ID3D12VideoProcessor1_FWD_DEFINED__ | ||
| 154 | #define __ID3D12VideoProcessor1_FWD_DEFINED__ | ||
| 155 | typedef interface ID3D12VideoProcessor1 ID3D12VideoProcessor1; | ||
| 156 | |||
| 157 | #endif /* __ID3D12VideoProcessor1_FWD_DEFINED__ */ | ||
| 158 | |||
| 159 | |||
| 160 | #ifndef __ID3D12VideoExtensionCommand_FWD_DEFINED__ | ||
| 161 | #define __ID3D12VideoExtensionCommand_FWD_DEFINED__ | ||
| 162 | typedef interface ID3D12VideoExtensionCommand ID3D12VideoExtensionCommand; | ||
| 163 | |||
| 164 | #endif /* __ID3D12VideoExtensionCommand_FWD_DEFINED__ */ | ||
| 165 | |||
| 166 | |||
| 167 | #ifndef __ID3D12VideoDevice2_FWD_DEFINED__ | ||
| 168 | #define __ID3D12VideoDevice2_FWD_DEFINED__ | ||
| 169 | typedef interface ID3D12VideoDevice2 ID3D12VideoDevice2; | ||
| 170 | |||
| 171 | #endif /* __ID3D12VideoDevice2_FWD_DEFINED__ */ | ||
| 172 | |||
| 173 | |||
| 174 | #ifndef __ID3D12VideoDecodeCommandList2_FWD_DEFINED__ | ||
| 175 | #define __ID3D12VideoDecodeCommandList2_FWD_DEFINED__ | ||
| 176 | typedef interface ID3D12VideoDecodeCommandList2 ID3D12VideoDecodeCommandList2; | ||
| 177 | |||
| 178 | #endif /* __ID3D12VideoDecodeCommandList2_FWD_DEFINED__ */ | ||
| 179 | |||
| 180 | |||
| 181 | #ifndef __ID3D12VideoDecodeCommandList3_FWD_DEFINED__ | ||
| 182 | #define __ID3D12VideoDecodeCommandList3_FWD_DEFINED__ | ||
| 183 | typedef interface ID3D12VideoDecodeCommandList3 ID3D12VideoDecodeCommandList3; | ||
| 184 | |||
| 185 | #endif /* __ID3D12VideoDecodeCommandList3_FWD_DEFINED__ */ | ||
| 186 | |||
| 187 | |||
| 188 | #ifndef __ID3D12VideoProcessCommandList2_FWD_DEFINED__ | ||
| 189 | #define __ID3D12VideoProcessCommandList2_FWD_DEFINED__ | ||
| 190 | typedef interface ID3D12VideoProcessCommandList2 ID3D12VideoProcessCommandList2; | ||
| 191 | |||
| 192 | #endif /* __ID3D12VideoProcessCommandList2_FWD_DEFINED__ */ | ||
| 193 | |||
| 194 | |||
| 195 | #ifndef __ID3D12VideoProcessCommandList3_FWD_DEFINED__ | ||
| 196 | #define __ID3D12VideoProcessCommandList3_FWD_DEFINED__ | ||
| 197 | typedef interface ID3D12VideoProcessCommandList3 ID3D12VideoProcessCommandList3; | ||
| 198 | |||
| 199 | #endif /* __ID3D12VideoProcessCommandList3_FWD_DEFINED__ */ | ||
| 200 | |||
| 201 | |||
| 202 | #ifndef __ID3D12VideoEncodeCommandList1_FWD_DEFINED__ | ||
| 203 | #define __ID3D12VideoEncodeCommandList1_FWD_DEFINED__ | ||
| 204 | typedef interface ID3D12VideoEncodeCommandList1 ID3D12VideoEncodeCommandList1; | ||
| 205 | |||
| 206 | #endif /* __ID3D12VideoEncodeCommandList1_FWD_DEFINED__ */ | ||
| 207 | |||
| 208 | |||
| 209 | #ifndef __ID3D12VideoEncoder_FWD_DEFINED__ | ||
| 210 | #define __ID3D12VideoEncoder_FWD_DEFINED__ | ||
| 211 | typedef interface ID3D12VideoEncoder ID3D12VideoEncoder; | ||
| 212 | |||
| 213 | #endif /* __ID3D12VideoEncoder_FWD_DEFINED__ */ | ||
| 214 | |||
| 215 | |||
| 216 | #ifndef __ID3D12VideoEncoderHeap_FWD_DEFINED__ | ||
| 217 | #define __ID3D12VideoEncoderHeap_FWD_DEFINED__ | ||
| 218 | typedef interface ID3D12VideoEncoderHeap ID3D12VideoEncoderHeap; | ||
| 219 | |||
| 220 | #endif /* __ID3D12VideoEncoderHeap_FWD_DEFINED__ */ | ||
| 221 | |||
| 222 | |||
| 223 | #ifndef __ID3D12VideoDevice3_FWD_DEFINED__ | ||
| 224 | #define __ID3D12VideoDevice3_FWD_DEFINED__ | ||
| 225 | typedef interface ID3D12VideoDevice3 ID3D12VideoDevice3; | ||
| 226 | |||
| 227 | #endif /* __ID3D12VideoDevice3_FWD_DEFINED__ */ | ||
| 228 | |||
| 229 | |||
| 230 | #ifndef __ID3D12VideoEncodeCommandList2_FWD_DEFINED__ | ||
| 231 | #define __ID3D12VideoEncodeCommandList2_FWD_DEFINED__ | ||
| 232 | typedef interface ID3D12VideoEncodeCommandList2 ID3D12VideoEncodeCommandList2; | ||
| 233 | |||
| 234 | #endif /* __ID3D12VideoEncodeCommandList2_FWD_DEFINED__ */ | ||
| 235 | |||
| 236 | |||
| 237 | #ifndef __ID3D12VideoEncodeCommandList3_FWD_DEFINED__ | ||
| 238 | #define __ID3D12VideoEncodeCommandList3_FWD_DEFINED__ | ||
| 239 | typedef interface ID3D12VideoEncodeCommandList3 ID3D12VideoEncodeCommandList3; | ||
| 240 | |||
| 241 | #endif /* __ID3D12VideoEncodeCommandList3_FWD_DEFINED__ */ | ||
| 242 | |||
| 243 | |||
| 244 | #ifndef __ID3D12VideoEncoderHeap1_FWD_DEFINED__ | ||
| 245 | #define __ID3D12VideoEncoderHeap1_FWD_DEFINED__ | ||
| 246 | typedef interface ID3D12VideoEncoderHeap1 ID3D12VideoEncoderHeap1; | ||
| 247 | |||
| 248 | #endif /* __ID3D12VideoEncoderHeap1_FWD_DEFINED__ */ | ||
| 249 | |||
| 250 | |||
| 251 | #ifndef __ID3D12VideoDevice4_FWD_DEFINED__ | ||
| 252 | #define __ID3D12VideoDevice4_FWD_DEFINED__ | ||
| 253 | typedef interface ID3D12VideoDevice4 ID3D12VideoDevice4; | ||
| 254 | |||
| 255 | #endif /* __ID3D12VideoDevice4_FWD_DEFINED__ */ | ||
| 256 | |||
| 257 | |||
| 258 | #ifndef __ID3D12VideoEncodeCommandList4_FWD_DEFINED__ | ||
| 259 | #define __ID3D12VideoEncodeCommandList4_FWD_DEFINED__ | ||
| 260 | typedef interface ID3D12VideoEncodeCommandList4 ID3D12VideoEncodeCommandList4; | ||
| 261 | |||
| 262 | #endif /* __ID3D12VideoEncodeCommandList4_FWD_DEFINED__ */ | ||
| 263 | |||
| 264 | |||
| 265 | /* header files for imported files */ | ||
| 266 | #include "oaidl.h" | ||
| 267 | #include "ocidl.h" | ||
| 268 | #include "dxgicommon.h" | ||
| 269 | #include "d3d12.h" | ||
| 270 | |||
| 271 | #ifdef __cplusplus | ||
| 272 | extern "C"{ | ||
| 273 | #endif | ||
| 274 | |||
| 275 | |||
| 276 | /* interface __MIDL_itf_d3d12video_0000_0000 */ | ||
| 277 | /* [local] */ | ||
| 278 | |||
| 279 | #include <winapifamily.h> | ||
| 280 | #pragma region App Family | ||
| 281 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) | ||
| 282 | typedef | ||
| 283 | enum D3D12_VIDEO_FIELD_TYPE | ||
| 284 | { | ||
| 285 | D3D12_VIDEO_FIELD_TYPE_NONE = 0, | ||
| 286 | D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1, | ||
| 287 | D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2 | ||
| 288 | } D3D12_VIDEO_FIELD_TYPE; | ||
| 289 | |||
| 290 | typedef | ||
| 291 | enum D3D12_VIDEO_FRAME_STEREO_FORMAT | ||
| 292 | { | ||
| 293 | D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0, | ||
| 294 | D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1, | ||
| 295 | D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2, | ||
| 296 | D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3, | ||
| 297 | D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4 | ||
| 298 | } D3D12_VIDEO_FRAME_STEREO_FORMAT; | ||
| 299 | |||
| 300 | typedef struct D3D12_VIDEO_FORMAT | ||
| 301 | { | ||
| 302 | DXGI_FORMAT Format; | ||
| 303 | DXGI_COLOR_SPACE_TYPE ColorSpace; | ||
| 304 | } D3D12_VIDEO_FORMAT; | ||
| 305 | |||
| 306 | typedef struct D3D12_VIDEO_SAMPLE | ||
| 307 | { | ||
| 308 | UINT Width; | ||
| 309 | UINT Height; | ||
| 310 | D3D12_VIDEO_FORMAT Format; | ||
| 311 | } D3D12_VIDEO_SAMPLE; | ||
| 312 | |||
| 313 | typedef | ||
| 314 | enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE | ||
| 315 | { | ||
| 316 | D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0, | ||
| 317 | D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1 | ||
| 318 | } D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE; | ||
| 319 | |||
| 320 | typedef | ||
| 321 | enum D3D12_FEATURE_VIDEO | ||
| 322 | { | ||
| 323 | D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0, | ||
| 324 | D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1, | ||
| 325 | D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2, | ||
| 326 | D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3, | ||
| 327 | D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5, | ||
| 328 | D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6, | ||
| 329 | D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7, | ||
| 330 | D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8, | ||
| 331 | D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9, | ||
| 332 | D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10, | ||
| 333 | D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11, | ||
| 334 | D3D12_FEATURE_VIDEO_ARCHITECTURE = 17, | ||
| 335 | D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18, | ||
| 336 | D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19, | ||
| 337 | D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20, | ||
| 338 | D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21, | ||
| 339 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22, | ||
| 340 | D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23, | ||
| 341 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24, | ||
| 342 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25, | ||
| 343 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26, | ||
| 344 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27, | ||
| 345 | D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28, | ||
| 346 | D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29, | ||
| 347 | D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30, | ||
| 348 | D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31, | ||
| 349 | D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32, | ||
| 350 | D3D12_FEATURE_VIDEO_ENCODER_CODEC = 33, | ||
| 351 | D3D12_FEATURE_VIDEO_ENCODER_PROFILE_LEVEL = 34, | ||
| 352 | D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = 35, | ||
| 353 | D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION = 36, | ||
| 354 | D3D12_FEATURE_VIDEO_ENCODER_INPUT_FORMAT = 37, | ||
| 355 | D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_MODE = 38, | ||
| 356 | D3D12_FEATURE_VIDEO_ENCODER_INTRA_REFRESH_MODE = 39, | ||
| 357 | D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = 40, | ||
| 358 | D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE = 41, | ||
| 359 | D3D12_FEATURE_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT = 42, | ||
| 360 | D3D12_FEATURE_VIDEO_ENCODER_SUPPORT = 43, | ||
| 361 | D3D12_FEATURE_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = 44, | ||
| 362 | D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS = 45, | ||
| 363 | D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG = 46, | ||
| 364 | D3D12_FEATURE_VIDEO_ENCODER_SUPPORT1 = 47, | ||
| 365 | D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 = 48, | ||
| 366 | D3D12_FEATURE_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT = 49, | ||
| 367 | D3D12_FEATURE_VIDEO_ENCODER_QPMAP_INPUT = 50, | ||
| 368 | D3D12_FEATURE_VIDEO_ENCODER_DIRTY_REGIONS = 51, | ||
| 369 | D3D12_FEATURE_VIDEO_ENCODER_MOTION_SEARCH = 52, | ||
| 370 | D3D12_FEATURE_VIDEO_ENCODER_SUPPORT2 = 55, | ||
| 371 | D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE1 = 56, | ||
| 372 | D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS = 57 | ||
| 373 | } D3D12_FEATURE_VIDEO; | ||
| 374 | |||
| 375 | typedef | ||
| 376 | enum D3D12_BITSTREAM_ENCRYPTION_TYPE | ||
| 377 | { | ||
| 378 | D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0 | ||
| 379 | } D3D12_BITSTREAM_ENCRYPTION_TYPE; | ||
| 380 | |||
| 381 | typedef struct D3D12_VIDEO_DECODE_CONFIGURATION | ||
| 382 | { | ||
| 383 | GUID DecodeProfile; | ||
| 384 | D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption; | ||
| 385 | D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType; | ||
| 386 | } D3D12_VIDEO_DECODE_CONFIGURATION; | ||
| 387 | |||
| 388 | typedef struct D3D12_VIDEO_DECODER_DESC | ||
| 389 | { | ||
| 390 | UINT NodeMask; | ||
| 391 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
| 392 | } D3D12_VIDEO_DECODER_DESC; | ||
| 393 | |||
| 394 | typedef struct D3D12_VIDEO_DECODER_HEAP_DESC | ||
| 395 | { | ||
| 396 | UINT NodeMask; | ||
| 397 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
| 398 | UINT DecodeWidth; | ||
| 399 | UINT DecodeHeight; | ||
| 400 | DXGI_FORMAT Format; | ||
| 401 | DXGI_RATIONAL FrameRate; | ||
| 402 | UINT BitRate; | ||
| 403 | UINT MaxDecodePictureBufferCount; | ||
| 404 | } D3D12_VIDEO_DECODER_HEAP_DESC; | ||
| 405 | |||
| 406 | typedef struct D3D12_VIDEO_SIZE_RANGE | ||
| 407 | { | ||
| 408 | UINT MaxWidth; | ||
| 409 | UINT MaxHeight; | ||
| 410 | UINT MinWidth; | ||
| 411 | UINT MinHeight; | ||
| 412 | } D3D12_VIDEO_SIZE_RANGE; | ||
| 413 | |||
| 414 | typedef | ||
| 415 | enum D3D12_VIDEO_PROCESS_FILTER | ||
| 416 | { | ||
| 417 | D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0, | ||
| 418 | D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1, | ||
| 419 | D3D12_VIDEO_PROCESS_FILTER_HUE = 2, | ||
| 420 | D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3, | ||
| 421 | D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4, | ||
| 422 | D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5, | ||
| 423 | D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6, | ||
| 424 | D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7 | ||
| 425 | } D3D12_VIDEO_PROCESS_FILTER; | ||
| 426 | |||
| 427 | typedef | ||
| 428 | enum D3D12_VIDEO_PROCESS_FILTER_FLAGS | ||
| 429 | { | ||
| 430 | D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0, | ||
| 431 | D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = ( 1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS ) , | ||
| 432 | D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = ( 1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST ) , | ||
| 433 | D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = ( 1 << D3D12_VIDEO_PROCESS_FILTER_HUE ) , | ||
| 434 | D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION ) , | ||
| 435 | D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = ( 1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION ) , | ||
| 436 | D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT ) , | ||
| 437 | D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = ( 1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING ) , | ||
| 438 | D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = ( 1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT ) | ||
| 439 | } D3D12_VIDEO_PROCESS_FILTER_FLAGS; | ||
| 440 | |||
| 441 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS ) | ||
| 442 | typedef | ||
| 443 | enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS | ||
| 444 | { | ||
| 445 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0, | ||
| 446 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1, | ||
| 447 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000 | ||
| 448 | } D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS; | ||
| 449 | |||
| 450 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS ) | ||
| 451 | typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING | ||
| 452 | { | ||
| 453 | BOOL Enable; | ||
| 454 | FLOAT Alpha; | ||
| 455 | } D3D12_VIDEO_PROCESS_ALPHA_BLENDING; | ||
| 456 | |||
| 457 | typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY | ||
| 458 | { | ||
| 459 | BOOL Enable; | ||
| 460 | FLOAT Lower; | ||
| 461 | FLOAT Upper; | ||
| 462 | } D3D12_VIDEO_PROCESS_LUMA_KEY; | ||
| 463 | |||
| 464 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC | ||
| 465 | { | ||
| 466 | DXGI_FORMAT Format; | ||
| 467 | DXGI_COLOR_SPACE_TYPE ColorSpace; | ||
| 468 | DXGI_RATIONAL SourceAspectRatio; | ||
| 469 | DXGI_RATIONAL DestinationAspectRatio; | ||
| 470 | DXGI_RATIONAL FrameRate; | ||
| 471 | D3D12_VIDEO_SIZE_RANGE SourceSizeRange; | ||
| 472 | D3D12_VIDEO_SIZE_RANGE DestinationSizeRange; | ||
| 473 | BOOL EnableOrientation; | ||
| 474 | D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags; | ||
| 475 | D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat; | ||
| 476 | D3D12_VIDEO_FIELD_TYPE FieldType; | ||
| 477 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; | ||
| 478 | BOOL EnableAlphaBlending; | ||
| 479 | D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey; | ||
| 480 | UINT NumPastFrames; | ||
| 481 | UINT NumFutureFrames; | ||
| 482 | BOOL EnableAutoProcessing; | ||
| 483 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC; | ||
| 484 | |||
| 485 | typedef | ||
| 486 | enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE | ||
| 487 | { | ||
| 488 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0, | ||
| 489 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1, | ||
| 490 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2, | ||
| 491 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3 | ||
| 492 | } D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE; | ||
| 493 | |||
| 494 | typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC | ||
| 495 | { | ||
| 496 | DXGI_FORMAT Format; | ||
| 497 | DXGI_COLOR_SPACE_TYPE ColorSpace; | ||
| 498 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode; | ||
| 499 | UINT AlphaFillModeSourceStreamIndex; | ||
| 500 | FLOAT BackgroundColor[ 4 ]; | ||
| 501 | DXGI_RATIONAL FrameRate; | ||
| 502 | BOOL EnableStereo; | ||
| 503 | } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC; | ||
| 504 | |||
| 505 | |||
| 506 | |||
| 507 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_c_ifspec; | ||
| 508 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0000_v0_0_s_ifspec; | ||
| 509 | |||
| 510 | #ifndef __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ | ||
| 511 | #define __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ | ||
| 512 | |||
| 513 | /* interface ID3D12VideoDecoderHeap */ | ||
| 514 | /* [unique][local][object][uuid] */ | ||
| 515 | |||
| 516 | |||
| 517 | EXTERN_C const IID IID_ID3D12VideoDecoderHeap; | ||
| 518 | |||
| 519 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 520 | |||
| 521 | MIDL_INTERFACE("0946B7C9-EBF6-4047-BB73-8683E27DBB1F") | ||
| 522 | ID3D12VideoDecoderHeap : public ID3D12Pageable | ||
| 523 | { | ||
| 524 | public: | ||
| 525 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 526 | virtual D3D12_VIDEO_DECODER_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 527 | #else | ||
| 528 | virtual D3D12_VIDEO_DECODER_HEAP_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 529 | D3D12_VIDEO_DECODER_HEAP_DESC * RetVal) = 0; | ||
| 530 | #endif | ||
| 531 | |||
| 532 | }; | ||
| 533 | |||
| 534 | |||
| 535 | #else /* C style interface */ | ||
| 536 | |||
| 537 | typedef struct ID3D12VideoDecoderHeapVtbl | ||
| 538 | { | ||
| 539 | BEGIN_INTERFACE | ||
| 540 | |||
| 541 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 542 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 543 | ID3D12VideoDecoderHeap * This, | ||
| 544 | REFIID riid, | ||
| 545 | _COM_Outptr_ void **ppvObject); | ||
| 546 | |||
| 547 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 548 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 549 | ID3D12VideoDecoderHeap * This); | ||
| 550 | |||
| 551 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 552 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 553 | ID3D12VideoDecoderHeap * This); | ||
| 554 | |||
| 555 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 556 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 557 | ID3D12VideoDecoderHeap * This, | ||
| 558 | _In_ REFGUID guid, | ||
| 559 | _Inout_ UINT *pDataSize, | ||
| 560 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 561 | |||
| 562 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 563 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 564 | ID3D12VideoDecoderHeap * This, | ||
| 565 | _In_ REFGUID guid, | ||
| 566 | _In_ UINT DataSize, | ||
| 567 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 568 | |||
| 569 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 570 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 571 | ID3D12VideoDecoderHeap * This, | ||
| 572 | _In_ REFGUID guid, | ||
| 573 | _In_opt_ const IUnknown *pData); | ||
| 574 | |||
| 575 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 576 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 577 | ID3D12VideoDecoderHeap * This, | ||
| 578 | _In_z_ LPCWSTR Name); | ||
| 579 | |||
| 580 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 581 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 582 | ID3D12VideoDecoderHeap * This, | ||
| 583 | REFIID riid, | ||
| 584 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 585 | |||
| 586 | DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc) | ||
| 587 | #if !defined(_WIN32) | ||
| 588 | D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 589 | ID3D12VideoDecoderHeap * This); | ||
| 590 | |||
| 591 | #else | ||
| 592 | D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 593 | ID3D12VideoDecoderHeap * This, | ||
| 594 | D3D12_VIDEO_DECODER_HEAP_DESC * RetVal); | ||
| 595 | |||
| 596 | #endif | ||
| 597 | |||
| 598 | END_INTERFACE | ||
| 599 | } ID3D12VideoDecoderHeapVtbl; | ||
| 600 | |||
| 601 | interface ID3D12VideoDecoderHeap | ||
| 602 | { | ||
| 603 | CONST_VTBL struct ID3D12VideoDecoderHeapVtbl *lpVtbl; | ||
| 604 | }; | ||
| 605 | |||
| 606 | |||
| 607 | |||
| 608 | #ifdef COBJMACROS | ||
| 609 | |||
| 610 | |||
| 611 | #define ID3D12VideoDecoderHeap_QueryInterface(This,riid,ppvObject) \ | ||
| 612 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 613 | |||
| 614 | #define ID3D12VideoDecoderHeap_AddRef(This) \ | ||
| 615 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 616 | |||
| 617 | #define ID3D12VideoDecoderHeap_Release(This) \ | ||
| 618 | ( (This)->lpVtbl -> Release(This) ) | ||
| 619 | |||
| 620 | |||
| 621 | #define ID3D12VideoDecoderHeap_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 622 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 623 | |||
| 624 | #define ID3D12VideoDecoderHeap_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 625 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 626 | |||
| 627 | #define ID3D12VideoDecoderHeap_SetPrivateDataInterface(This,guid,pData) \ | ||
| 628 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 629 | |||
| 630 | #define ID3D12VideoDecoderHeap_SetName(This,Name) \ | ||
| 631 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 632 | |||
| 633 | |||
| 634 | #define ID3D12VideoDecoderHeap_GetDevice(This,riid,ppvDevice) \ | ||
| 635 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 636 | |||
| 637 | |||
| 638 | #if !defined(_WIN32) | ||
| 639 | |||
| 640 | #define ID3D12VideoDecoderHeap_GetDesc(This) \ | ||
| 641 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 642 | #else | ||
| 643 | #define ID3D12VideoDecoderHeap_GetDesc(This,RetVal) \ | ||
| 644 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 645 | #endif | ||
| 646 | |||
| 647 | #endif /* COBJMACROS */ | ||
| 648 | |||
| 649 | |||
| 650 | #endif /* C style interface */ | ||
| 651 | |||
| 652 | |||
| 653 | |||
| 654 | |||
| 655 | #endif /* __ID3D12VideoDecoderHeap_INTERFACE_DEFINED__ */ | ||
| 656 | |||
| 657 | |||
| 658 | #ifndef __ID3D12VideoDevice_INTERFACE_DEFINED__ | ||
| 659 | #define __ID3D12VideoDevice_INTERFACE_DEFINED__ | ||
| 660 | |||
| 661 | /* interface ID3D12VideoDevice */ | ||
| 662 | /* [unique][local][object][uuid] */ | ||
| 663 | |||
| 664 | |||
| 665 | EXTERN_C const IID IID_ID3D12VideoDevice; | ||
| 666 | |||
| 667 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 668 | |||
| 669 | MIDL_INTERFACE("1F052807-0B46-4ACC-8A89-364F793718A4") | ||
| 670 | ID3D12VideoDevice : public IUnknown | ||
| 671 | { | ||
| 672 | public: | ||
| 673 | virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport( | ||
| 674 | D3D12_FEATURE_VIDEO FeatureVideo, | ||
| 675 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 676 | UINT FeatureSupportDataSize) = 0; | ||
| 677 | |||
| 678 | virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( | ||
| 679 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 680 | _In_ REFIID riid, | ||
| 681 | _COM_Outptr_ void **ppVideoDecoder) = 0; | ||
| 682 | |||
| 683 | virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap( | ||
| 684 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 685 | _In_ REFIID riid, | ||
| 686 | _COM_Outptr_ void **ppVideoDecoderHeap) = 0; | ||
| 687 | |||
| 688 | virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( | ||
| 689 | UINT NodeMask, | ||
| 690 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 691 | UINT NumInputStreamDescs, | ||
| 692 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 693 | _In_ REFIID riid, | ||
| 694 | _COM_Outptr_ void **ppVideoProcessor) = 0; | ||
| 695 | |||
| 696 | }; | ||
| 697 | |||
| 698 | |||
| 699 | #else /* C style interface */ | ||
| 700 | |||
| 701 | typedef struct ID3D12VideoDeviceVtbl | ||
| 702 | { | ||
| 703 | BEGIN_INTERFACE | ||
| 704 | |||
| 705 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 706 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 707 | ID3D12VideoDevice * This, | ||
| 708 | REFIID riid, | ||
| 709 | _COM_Outptr_ void **ppvObject); | ||
| 710 | |||
| 711 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 712 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 713 | ID3D12VideoDevice * This); | ||
| 714 | |||
| 715 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 716 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 717 | ID3D12VideoDevice * This); | ||
| 718 | |||
| 719 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport) | ||
| 720 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 721 | ID3D12VideoDevice * This, | ||
| 722 | D3D12_FEATURE_VIDEO FeatureVideo, | ||
| 723 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 724 | UINT FeatureSupportDataSize); | ||
| 725 | |||
| 726 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder) | ||
| 727 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( | ||
| 728 | ID3D12VideoDevice * This, | ||
| 729 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 730 | _In_ REFIID riid, | ||
| 731 | _COM_Outptr_ void **ppVideoDecoder); | ||
| 732 | |||
| 733 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap) | ||
| 734 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( | ||
| 735 | ID3D12VideoDevice * This, | ||
| 736 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 737 | _In_ REFIID riid, | ||
| 738 | _COM_Outptr_ void **ppVideoDecoderHeap); | ||
| 739 | |||
| 740 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor) | ||
| 741 | HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( | ||
| 742 | ID3D12VideoDevice * This, | ||
| 743 | UINT NodeMask, | ||
| 744 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 745 | UINT NumInputStreamDescs, | ||
| 746 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 747 | _In_ REFIID riid, | ||
| 748 | _COM_Outptr_ void **ppVideoProcessor); | ||
| 749 | |||
| 750 | END_INTERFACE | ||
| 751 | } ID3D12VideoDeviceVtbl; | ||
| 752 | |||
| 753 | interface ID3D12VideoDevice | ||
| 754 | { | ||
| 755 | CONST_VTBL struct ID3D12VideoDeviceVtbl *lpVtbl; | ||
| 756 | }; | ||
| 757 | |||
| 758 | |||
| 759 | |||
| 760 | #ifdef COBJMACROS | ||
| 761 | |||
| 762 | |||
| 763 | #define ID3D12VideoDevice_QueryInterface(This,riid,ppvObject) \ | ||
| 764 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 765 | |||
| 766 | #define ID3D12VideoDevice_AddRef(This) \ | ||
| 767 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 768 | |||
| 769 | #define ID3D12VideoDevice_Release(This) \ | ||
| 770 | ( (This)->lpVtbl -> Release(This) ) | ||
| 771 | |||
| 772 | |||
| 773 | #define ID3D12VideoDevice_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 774 | ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 775 | |||
| 776 | #define ID3D12VideoDevice_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ | ||
| 777 | ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) | ||
| 778 | |||
| 779 | #define ID3D12VideoDevice_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ | ||
| 780 | ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) | ||
| 781 | |||
| 782 | #define ID3D12VideoDevice_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ | ||
| 783 | ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) | ||
| 784 | |||
| 785 | #endif /* COBJMACROS */ | ||
| 786 | |||
| 787 | |||
| 788 | #endif /* C style interface */ | ||
| 789 | |||
| 790 | |||
| 791 | |||
| 792 | |||
| 793 | #endif /* __ID3D12VideoDevice_INTERFACE_DEFINED__ */ | ||
| 794 | |||
| 795 | |||
| 796 | #ifndef __ID3D12VideoDecoder_INTERFACE_DEFINED__ | ||
| 797 | #define __ID3D12VideoDecoder_INTERFACE_DEFINED__ | ||
| 798 | |||
| 799 | /* interface ID3D12VideoDecoder */ | ||
| 800 | /* [unique][local][object][uuid] */ | ||
| 801 | |||
| 802 | |||
| 803 | EXTERN_C const IID IID_ID3D12VideoDecoder; | ||
| 804 | |||
| 805 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 806 | |||
| 807 | MIDL_INTERFACE("C59B6BDC-7720-4074-A136-17A156037470") | ||
| 808 | ID3D12VideoDecoder : public ID3D12Pageable | ||
| 809 | { | ||
| 810 | public: | ||
| 811 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 812 | virtual D3D12_VIDEO_DECODER_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 813 | #else | ||
| 814 | virtual D3D12_VIDEO_DECODER_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 815 | D3D12_VIDEO_DECODER_DESC * RetVal) = 0; | ||
| 816 | #endif | ||
| 817 | |||
| 818 | }; | ||
| 819 | |||
| 820 | |||
| 821 | #else /* C style interface */ | ||
| 822 | |||
| 823 | typedef struct ID3D12VideoDecoderVtbl | ||
| 824 | { | ||
| 825 | BEGIN_INTERFACE | ||
| 826 | |||
| 827 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 828 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 829 | ID3D12VideoDecoder * This, | ||
| 830 | REFIID riid, | ||
| 831 | _COM_Outptr_ void **ppvObject); | ||
| 832 | |||
| 833 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 834 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 835 | ID3D12VideoDecoder * This); | ||
| 836 | |||
| 837 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 838 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 839 | ID3D12VideoDecoder * This); | ||
| 840 | |||
| 841 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 842 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 843 | ID3D12VideoDecoder * This, | ||
| 844 | _In_ REFGUID guid, | ||
| 845 | _Inout_ UINT *pDataSize, | ||
| 846 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 847 | |||
| 848 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 849 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 850 | ID3D12VideoDecoder * This, | ||
| 851 | _In_ REFGUID guid, | ||
| 852 | _In_ UINT DataSize, | ||
| 853 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 854 | |||
| 855 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 856 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 857 | ID3D12VideoDecoder * This, | ||
| 858 | _In_ REFGUID guid, | ||
| 859 | _In_opt_ const IUnknown *pData); | ||
| 860 | |||
| 861 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 862 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 863 | ID3D12VideoDecoder * This, | ||
| 864 | _In_z_ LPCWSTR Name); | ||
| 865 | |||
| 866 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 867 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 868 | ID3D12VideoDecoder * This, | ||
| 869 | REFIID riid, | ||
| 870 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 871 | |||
| 872 | DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc) | ||
| 873 | #if !defined(_WIN32) | ||
| 874 | D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 875 | ID3D12VideoDecoder * This); | ||
| 876 | |||
| 877 | #else | ||
| 878 | D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 879 | ID3D12VideoDecoder * This, | ||
| 880 | D3D12_VIDEO_DECODER_DESC * RetVal); | ||
| 881 | |||
| 882 | #endif | ||
| 883 | |||
| 884 | END_INTERFACE | ||
| 885 | } ID3D12VideoDecoderVtbl; | ||
| 886 | |||
| 887 | interface ID3D12VideoDecoder | ||
| 888 | { | ||
| 889 | CONST_VTBL struct ID3D12VideoDecoderVtbl *lpVtbl; | ||
| 890 | }; | ||
| 891 | |||
| 892 | |||
| 893 | |||
| 894 | #ifdef COBJMACROS | ||
| 895 | |||
| 896 | |||
| 897 | #define ID3D12VideoDecoder_QueryInterface(This,riid,ppvObject) \ | ||
| 898 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 899 | |||
| 900 | #define ID3D12VideoDecoder_AddRef(This) \ | ||
| 901 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 902 | |||
| 903 | #define ID3D12VideoDecoder_Release(This) \ | ||
| 904 | ( (This)->lpVtbl -> Release(This) ) | ||
| 905 | |||
| 906 | |||
| 907 | #define ID3D12VideoDecoder_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 908 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 909 | |||
| 910 | #define ID3D12VideoDecoder_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 911 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 912 | |||
| 913 | #define ID3D12VideoDecoder_SetPrivateDataInterface(This,guid,pData) \ | ||
| 914 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 915 | |||
| 916 | #define ID3D12VideoDecoder_SetName(This,Name) \ | ||
| 917 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 918 | |||
| 919 | |||
| 920 | #define ID3D12VideoDecoder_GetDevice(This,riid,ppvDevice) \ | ||
| 921 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 922 | |||
| 923 | |||
| 924 | #if !defined(_WIN32) | ||
| 925 | |||
| 926 | #define ID3D12VideoDecoder_GetDesc(This) \ | ||
| 927 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 928 | #else | ||
| 929 | #define ID3D12VideoDecoder_GetDesc(This,RetVal) \ | ||
| 930 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 931 | #endif | ||
| 932 | |||
| 933 | #endif /* COBJMACROS */ | ||
| 934 | |||
| 935 | |||
| 936 | #endif /* C style interface */ | ||
| 937 | |||
| 938 | |||
| 939 | |||
| 940 | |||
| 941 | #endif /* __ID3D12VideoDecoder_INTERFACE_DEFINED__ */ | ||
| 942 | |||
| 943 | |||
| 944 | /* interface __MIDL_itf_d3d12video_0000_0003 */ | ||
| 945 | /* [local] */ | ||
| 946 | |||
| 947 | typedef | ||
| 948 | enum D3D12_VIDEO_DECODE_TIER | ||
| 949 | { | ||
| 950 | D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0, | ||
| 951 | D3D12_VIDEO_DECODE_TIER_1 = 1, | ||
| 952 | D3D12_VIDEO_DECODE_TIER_2 = 2, | ||
| 953 | D3D12_VIDEO_DECODE_TIER_3 = 3 | ||
| 954 | } D3D12_VIDEO_DECODE_TIER; | ||
| 955 | |||
| 956 | typedef | ||
| 957 | enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS | ||
| 958 | { | ||
| 959 | D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0, | ||
| 960 | D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1 | ||
| 961 | } D3D12_VIDEO_DECODE_SUPPORT_FLAGS; | ||
| 962 | |||
| 963 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS ) | ||
| 964 | typedef | ||
| 965 | enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS | ||
| 966 | { | ||
| 967 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0, | ||
| 968 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1, | ||
| 969 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2, | ||
| 970 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4, | ||
| 971 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8 | ||
| 972 | } D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS; | ||
| 973 | |||
| 974 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ) | ||
| 975 | typedef | ||
| 976 | enum D3D12_VIDEO_DECODE_STATUS | ||
| 977 | { | ||
| 978 | D3D12_VIDEO_DECODE_STATUS_OK = 0, | ||
| 979 | D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1, | ||
| 980 | D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2, | ||
| 981 | D3D12_VIDEO_DECODE_STATUS_RESTART = 3, | ||
| 982 | D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4 | ||
| 983 | } D3D12_VIDEO_DECODE_STATUS; | ||
| 984 | |||
| 985 | typedef | ||
| 986 | enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE | ||
| 987 | { | ||
| 988 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0, | ||
| 989 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1, | ||
| 990 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2, | ||
| 991 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_HUFFMAN_TABLE = 3 | ||
| 992 | } D3D12_VIDEO_DECODE_ARGUMENT_TYPE; | ||
| 993 | |||
| 994 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT | ||
| 995 | { | ||
| 996 | UINT NodeIndex; | ||
| 997 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
| 998 | UINT Width; | ||
| 999 | UINT Height; | ||
| 1000 | DXGI_FORMAT DecodeFormat; | ||
| 1001 | DXGI_RATIONAL FrameRate; | ||
| 1002 | UINT BitRate; | ||
| 1003 | D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags; | ||
| 1004 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags; | ||
| 1005 | D3D12_VIDEO_DECODE_TIER DecodeTier; | ||
| 1006 | } D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT; | ||
| 1007 | |||
| 1008 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT | ||
| 1009 | { | ||
| 1010 | UINT NodeIndex; | ||
| 1011 | UINT ProfileCount; | ||
| 1012 | } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT; | ||
| 1013 | |||
| 1014 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES | ||
| 1015 | { | ||
| 1016 | UINT NodeIndex; | ||
| 1017 | UINT ProfileCount; | ||
| 1018 | _Field_size_full_(ProfileCount) GUID *pProfiles; | ||
| 1019 | } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES; | ||
| 1020 | |||
| 1021 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT | ||
| 1022 | { | ||
| 1023 | UINT NodeIndex; | ||
| 1024 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
| 1025 | UINT FormatCount; | ||
| 1026 | } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT; | ||
| 1027 | |||
| 1028 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS | ||
| 1029 | { | ||
| 1030 | UINT NodeIndex; | ||
| 1031 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
| 1032 | UINT FormatCount; | ||
| 1033 | _Field_size_full_(FormatCount) DXGI_FORMAT *pOutputFormats; | ||
| 1034 | } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS; | ||
| 1035 | |||
| 1036 | typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE | ||
| 1037 | { | ||
| 1038 | BOOL IOCoherent; | ||
| 1039 | } D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE; | ||
| 1040 | |||
| 1041 | typedef | ||
| 1042 | enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT | ||
| 1043 | { | ||
| 1044 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0, | ||
| 1045 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1, | ||
| 1046 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2, | ||
| 1047 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0, | ||
| 1048 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1, | ||
| 1049 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2, | ||
| 1050 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 3 | ||
| 1051 | } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT; | ||
| 1052 | |||
| 1053 | typedef | ||
| 1054 | enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS | ||
| 1055 | { | ||
| 1056 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0, | ||
| 1057 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y ) , | ||
| 1058 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U ) , | ||
| 1059 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V ) , | ||
| 1060 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R ) , | ||
| 1061 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G ) , | ||
| 1062 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B ) , | ||
| 1063 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = ( 1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A ) | ||
| 1064 | } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS; | ||
| 1065 | |||
| 1066 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS ) | ||
| 1067 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM | ||
| 1068 | { | ||
| 1069 | UINT NodeIndex; | ||
| 1070 | GUID DecodeProfile; | ||
| 1071 | UINT Width; | ||
| 1072 | UINT Height; | ||
| 1073 | DXGI_FORMAT DecodeFormat; | ||
| 1074 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components; | ||
| 1075 | UINT BinCount; | ||
| 1076 | UINT CounterBitDepth; | ||
| 1077 | } D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM; | ||
| 1078 | |||
| 1079 | typedef | ||
| 1080 | enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS | ||
| 1081 | { | ||
| 1082 | D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0, | ||
| 1083 | D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x1 | ||
| 1084 | } D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS; | ||
| 1085 | |||
| 1086 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS ) | ||
| 1087 | typedef | ||
| 1088 | enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS | ||
| 1089 | { | ||
| 1090 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0, | ||
| 1091 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1, | ||
| 1092 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2, | ||
| 1093 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_DPB_ENCODER_RESOURCES = 0x4 | ||
| 1094 | } D3D12_VIDEO_SCALE_SUPPORT_FLAGS; | ||
| 1095 | |||
| 1096 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS ) | ||
| 1097 | typedef struct D3D12_VIDEO_SCALE_SUPPORT | ||
| 1098 | { | ||
| 1099 | D3D12_VIDEO_SIZE_RANGE OutputSizeRange; | ||
| 1100 | D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags; | ||
| 1101 | } D3D12_VIDEO_SCALE_SUPPORT; | ||
| 1102 | |||
| 1103 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT | ||
| 1104 | { | ||
| 1105 | UINT NodeIndex; | ||
| 1106 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
| 1107 | D3D12_VIDEO_SAMPLE DecodeSample; | ||
| 1108 | D3D12_VIDEO_FORMAT OutputFormat; | ||
| 1109 | DXGI_RATIONAL FrameRate; | ||
| 1110 | UINT BitRate; | ||
| 1111 | D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags; | ||
| 1112 | D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; | ||
| 1113 | } D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT; | ||
| 1114 | |||
| 1115 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE | ||
| 1116 | { | ||
| 1117 | D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; | ||
| 1118 | UINT64 MemoryPoolL0Size; | ||
| 1119 | UINT64 MemoryPoolL1Size; | ||
| 1120 | } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE; | ||
| 1121 | |||
| 1122 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE | ||
| 1123 | { | ||
| 1124 | UINT NodeMask; | ||
| 1125 | const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc; | ||
| 1126 | UINT NumInputStreamDescs; | ||
| 1127 | const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; | ||
| 1128 | UINT64 MemoryPoolL0Size; | ||
| 1129 | UINT64 MemoryPoolL1Size; | ||
| 1130 | } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE; | ||
| 1131 | |||
| 1132 | typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS | ||
| 1133 | { | ||
| 1134 | UINT64 Status; | ||
| 1135 | UINT64 NumMacroblocksAffected; | ||
| 1136 | DXGI_RATIONAL FrameRate; | ||
| 1137 | UINT BitRate; | ||
| 1138 | } D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS; | ||
| 1139 | |||
| 1140 | typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT | ||
| 1141 | { | ||
| 1142 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type; | ||
| 1143 | UINT Size; | ||
| 1144 | _Field_size_bytes_full_(Size) void *pData; | ||
| 1145 | } D3D12_VIDEO_DECODE_FRAME_ARGUMENT; | ||
| 1146 | |||
| 1147 | typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES | ||
| 1148 | { | ||
| 1149 | UINT NumTexture2Ds; | ||
| 1150 | _Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds; | ||
| 1151 | _Field_size_full_(NumTexture2Ds) UINT *pSubresources; | ||
| 1152 | _Field_size_full_opt_(NumTexture2Ds) ID3D12VideoDecoderHeap **ppHeaps; | ||
| 1153 | } D3D12_VIDEO_DECODE_REFERENCE_FRAMES; | ||
| 1154 | |||
| 1155 | typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM | ||
| 1156 | { | ||
| 1157 | ID3D12Resource *pBuffer; | ||
| 1158 | UINT64 Offset; | ||
| 1159 | UINT64 Size; | ||
| 1160 | } D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM; | ||
| 1161 | |||
| 1162 | typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS | ||
| 1163 | { | ||
| 1164 | BOOL Enable; | ||
| 1165 | ID3D12Resource *pReferenceTexture2D; | ||
| 1166 | UINT ReferenceSubresource; | ||
| 1167 | DXGI_COLOR_SPACE_TYPE OutputColorSpace; | ||
| 1168 | DXGI_COLOR_SPACE_TYPE DecodeColorSpace; | ||
| 1169 | } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS; | ||
| 1170 | |||
| 1171 | typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS | ||
| 1172 | { | ||
| 1173 | UINT NumFrameArguments; | ||
| 1174 | D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[ 10 ]; | ||
| 1175 | D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames; | ||
| 1176 | D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream; | ||
| 1177 | ID3D12VideoDecoderHeap *pHeap; | ||
| 1178 | } D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS; | ||
| 1179 | |||
| 1180 | typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS | ||
| 1181 | { | ||
| 1182 | ID3D12Resource *pOutputTexture2D; | ||
| 1183 | UINT OutputSubresource; | ||
| 1184 | D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments; | ||
| 1185 | } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS; | ||
| 1186 | |||
| 1187 | |||
| 1188 | |||
| 1189 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_c_ifspec; | ||
| 1190 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0003_v0_0_s_ifspec; | ||
| 1191 | |||
| 1192 | #ifndef __ID3D12VideoProcessor_INTERFACE_DEFINED__ | ||
| 1193 | #define __ID3D12VideoProcessor_INTERFACE_DEFINED__ | ||
| 1194 | |||
| 1195 | /* interface ID3D12VideoProcessor */ | ||
| 1196 | /* [unique][local][object][uuid] */ | ||
| 1197 | |||
| 1198 | |||
| 1199 | EXTERN_C const IID IID_ID3D12VideoProcessor; | ||
| 1200 | |||
| 1201 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1202 | |||
| 1203 | MIDL_INTERFACE("304FDB32-BEDE-410A-8545-943AC6A46138") | ||
| 1204 | ID3D12VideoProcessor : public ID3D12Pageable | ||
| 1205 | { | ||
| 1206 | public: | ||
| 1207 | virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0; | ||
| 1208 | |||
| 1209 | virtual UINT STDMETHODCALLTYPE GetNumInputStreamDescs( void) = 0; | ||
| 1210 | |||
| 1211 | virtual HRESULT STDMETHODCALLTYPE GetInputStreamDescs( | ||
| 1212 | UINT NumInputStreamDescs, | ||
| 1213 | _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs) = 0; | ||
| 1214 | |||
| 1215 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 1216 | virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC STDMETHODCALLTYPE GetOutputStreamDesc( void) = 0; | ||
| 1217 | #else | ||
| 1218 | virtual D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *STDMETHODCALLTYPE GetOutputStreamDesc( | ||
| 1219 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal) = 0; | ||
| 1220 | #endif | ||
| 1221 | |||
| 1222 | }; | ||
| 1223 | |||
| 1224 | |||
| 1225 | #else /* C style interface */ | ||
| 1226 | |||
| 1227 | typedef struct ID3D12VideoProcessorVtbl | ||
| 1228 | { | ||
| 1229 | BEGIN_INTERFACE | ||
| 1230 | |||
| 1231 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1232 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1233 | ID3D12VideoProcessor * This, | ||
| 1234 | REFIID riid, | ||
| 1235 | _COM_Outptr_ void **ppvObject); | ||
| 1236 | |||
| 1237 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1238 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1239 | ID3D12VideoProcessor * This); | ||
| 1240 | |||
| 1241 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1242 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1243 | ID3D12VideoProcessor * This); | ||
| 1244 | |||
| 1245 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 1246 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 1247 | ID3D12VideoProcessor * This, | ||
| 1248 | _In_ REFGUID guid, | ||
| 1249 | _Inout_ UINT *pDataSize, | ||
| 1250 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 1251 | |||
| 1252 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 1253 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 1254 | ID3D12VideoProcessor * This, | ||
| 1255 | _In_ REFGUID guid, | ||
| 1256 | _In_ UINT DataSize, | ||
| 1257 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 1258 | |||
| 1259 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 1260 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 1261 | ID3D12VideoProcessor * This, | ||
| 1262 | _In_ REFGUID guid, | ||
| 1263 | _In_opt_ const IUnknown *pData); | ||
| 1264 | |||
| 1265 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 1266 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 1267 | ID3D12VideoProcessor * This, | ||
| 1268 | _In_z_ LPCWSTR Name); | ||
| 1269 | |||
| 1270 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 1271 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 1272 | ID3D12VideoProcessor * This, | ||
| 1273 | REFIID riid, | ||
| 1274 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 1275 | |||
| 1276 | DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask) | ||
| 1277 | UINT ( STDMETHODCALLTYPE *GetNodeMask )( | ||
| 1278 | ID3D12VideoProcessor * This); | ||
| 1279 | |||
| 1280 | DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs) | ||
| 1281 | UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )( | ||
| 1282 | ID3D12VideoProcessor * This); | ||
| 1283 | |||
| 1284 | DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs) | ||
| 1285 | HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )( | ||
| 1286 | ID3D12VideoProcessor * This, | ||
| 1287 | UINT NumInputStreamDescs, | ||
| 1288 | _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs); | ||
| 1289 | |||
| 1290 | DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc) | ||
| 1291 | #if !defined(_WIN32) | ||
| 1292 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )( | ||
| 1293 | ID3D12VideoProcessor * This); | ||
| 1294 | |||
| 1295 | #else | ||
| 1296 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )( | ||
| 1297 | ID3D12VideoProcessor * This, | ||
| 1298 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal); | ||
| 1299 | |||
| 1300 | #endif | ||
| 1301 | |||
| 1302 | END_INTERFACE | ||
| 1303 | } ID3D12VideoProcessorVtbl; | ||
| 1304 | |||
| 1305 | interface ID3D12VideoProcessor | ||
| 1306 | { | ||
| 1307 | CONST_VTBL struct ID3D12VideoProcessorVtbl *lpVtbl; | ||
| 1308 | }; | ||
| 1309 | |||
| 1310 | |||
| 1311 | |||
| 1312 | #ifdef COBJMACROS | ||
| 1313 | |||
| 1314 | |||
| 1315 | #define ID3D12VideoProcessor_QueryInterface(This,riid,ppvObject) \ | ||
| 1316 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1317 | |||
| 1318 | #define ID3D12VideoProcessor_AddRef(This) \ | ||
| 1319 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1320 | |||
| 1321 | #define ID3D12VideoProcessor_Release(This) \ | ||
| 1322 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1323 | |||
| 1324 | |||
| 1325 | #define ID3D12VideoProcessor_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 1326 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 1327 | |||
| 1328 | #define ID3D12VideoProcessor_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 1329 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 1330 | |||
| 1331 | #define ID3D12VideoProcessor_SetPrivateDataInterface(This,guid,pData) \ | ||
| 1332 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 1333 | |||
| 1334 | #define ID3D12VideoProcessor_SetName(This,Name) \ | ||
| 1335 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 1336 | |||
| 1337 | |||
| 1338 | #define ID3D12VideoProcessor_GetDevice(This,riid,ppvDevice) \ | ||
| 1339 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 1340 | |||
| 1341 | |||
| 1342 | |||
| 1343 | #define ID3D12VideoProcessor_GetNodeMask(This) \ | ||
| 1344 | ( (This)->lpVtbl -> GetNodeMask(This) ) | ||
| 1345 | |||
| 1346 | #define ID3D12VideoProcessor_GetNumInputStreamDescs(This) \ | ||
| 1347 | ( (This)->lpVtbl -> GetNumInputStreamDescs(This) ) | ||
| 1348 | |||
| 1349 | #define ID3D12VideoProcessor_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \ | ||
| 1350 | ( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) ) | ||
| 1351 | #if !defined(_WIN32) | ||
| 1352 | |||
| 1353 | #define ID3D12VideoProcessor_GetOutputStreamDesc(This) \ | ||
| 1354 | ( (This)->lpVtbl -> GetOutputStreamDesc(This) ) | ||
| 1355 | #else | ||
| 1356 | #define ID3D12VideoProcessor_GetOutputStreamDesc(This,RetVal) \ | ||
| 1357 | ( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) ) | ||
| 1358 | #endif | ||
| 1359 | |||
| 1360 | #endif /* COBJMACROS */ | ||
| 1361 | |||
| 1362 | |||
| 1363 | #endif /* C style interface */ | ||
| 1364 | |||
| 1365 | |||
| 1366 | |||
| 1367 | |||
| 1368 | #endif /* __ID3D12VideoProcessor_INTERFACE_DEFINED__ */ | ||
| 1369 | |||
| 1370 | |||
| 1371 | /* interface __MIDL_itf_d3d12video_0000_0004 */ | ||
| 1372 | /* [local] */ | ||
| 1373 | |||
| 1374 | typedef | ||
| 1375 | enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS | ||
| 1376 | { | ||
| 1377 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0, | ||
| 1378 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1, | ||
| 1379 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2, | ||
| 1380 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4, | ||
| 1381 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8, | ||
| 1382 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10, | ||
| 1383 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20, | ||
| 1384 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x40 | ||
| 1385 | } D3D12_VIDEO_PROCESS_FEATURE_FLAGS; | ||
| 1386 | |||
| 1387 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS ) | ||
| 1388 | typedef | ||
| 1389 | enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS | ||
| 1390 | { | ||
| 1391 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0, | ||
| 1392 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x1, | ||
| 1393 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x2, | ||
| 1394 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x4, | ||
| 1395 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x8, | ||
| 1396 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10, | ||
| 1397 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20, | ||
| 1398 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40, | ||
| 1399 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80, | ||
| 1400 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x80000000 | ||
| 1401 | } D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS; | ||
| 1402 | |||
| 1403 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS ) | ||
| 1404 | typedef | ||
| 1405 | enum D3D12_VIDEO_PROCESS_ORIENTATION | ||
| 1406 | { | ||
| 1407 | D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0, | ||
| 1408 | D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1, | ||
| 1409 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2, | ||
| 1410 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3, | ||
| 1411 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4, | ||
| 1412 | D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5, | ||
| 1413 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6, | ||
| 1414 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 7 | ||
| 1415 | } D3D12_VIDEO_PROCESS_ORIENTATION; | ||
| 1416 | |||
| 1417 | typedef | ||
| 1418 | enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS | ||
| 1419 | { | ||
| 1420 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0, | ||
| 1421 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1, | ||
| 1422 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x2 | ||
| 1423 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS; | ||
| 1424 | |||
| 1425 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS ) | ||
| 1426 | typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE | ||
| 1427 | { | ||
| 1428 | INT Minimum; | ||
| 1429 | INT Maximum; | ||
| 1430 | INT Default; | ||
| 1431 | FLOAT Multiplier; | ||
| 1432 | } D3D12_VIDEO_PROCESS_FILTER_RANGE; | ||
| 1433 | |||
| 1434 | typedef | ||
| 1435 | enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS | ||
| 1436 | { | ||
| 1437 | D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0, | ||
| 1438 | D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x1 | ||
| 1439 | } D3D12_VIDEO_PROCESS_SUPPORT_FLAGS; | ||
| 1440 | |||
| 1441 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS ) | ||
| 1442 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT | ||
| 1443 | { | ||
| 1444 | UINT NodeIndex; | ||
| 1445 | D3D12_VIDEO_SAMPLE InputSample; | ||
| 1446 | D3D12_VIDEO_FIELD_TYPE InputFieldType; | ||
| 1447 | D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat; | ||
| 1448 | DXGI_RATIONAL InputFrameRate; | ||
| 1449 | D3D12_VIDEO_FORMAT OutputFormat; | ||
| 1450 | D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat; | ||
| 1451 | DXGI_RATIONAL OutputFrameRate; | ||
| 1452 | D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags; | ||
| 1453 | D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; | ||
| 1454 | D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; | ||
| 1455 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport; | ||
| 1456 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport; | ||
| 1457 | D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport; | ||
| 1458 | D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[ 32 ]; | ||
| 1459 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT; | ||
| 1460 | |||
| 1461 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS | ||
| 1462 | { | ||
| 1463 | UINT NodeIndex; | ||
| 1464 | UINT MaxInputStreams; | ||
| 1465 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS; | ||
| 1466 | |||
| 1467 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO | ||
| 1468 | { | ||
| 1469 | UINT NodeIndex; | ||
| 1470 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; | ||
| 1471 | D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters; | ||
| 1472 | D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; | ||
| 1473 | DXGI_RATIONAL InputFrameRate; | ||
| 1474 | DXGI_RATIONAL OutputFrameRate; | ||
| 1475 | BOOL EnableAutoProcessing; | ||
| 1476 | UINT PastFrames; | ||
| 1477 | UINT FutureFrames; | ||
| 1478 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO; | ||
| 1479 | |||
| 1480 | typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET | ||
| 1481 | { | ||
| 1482 | UINT NumPastFrames; | ||
| 1483 | ID3D12Resource **ppPastFrames; | ||
| 1484 | UINT *pPastSubresources; | ||
| 1485 | UINT NumFutureFrames; | ||
| 1486 | ID3D12Resource **ppFutureFrames; | ||
| 1487 | UINT *pFutureSubresources; | ||
| 1488 | } D3D12_VIDEO_PROCESS_REFERENCE_SET; | ||
| 1489 | |||
| 1490 | typedef struct D3D12_VIDEO_PROCESS_TRANSFORM | ||
| 1491 | { | ||
| 1492 | D3D12_RECT SourceRectangle; | ||
| 1493 | D3D12_RECT DestinationRectangle; | ||
| 1494 | D3D12_VIDEO_PROCESS_ORIENTATION Orientation; | ||
| 1495 | } D3D12_VIDEO_PROCESS_TRANSFORM; | ||
| 1496 | |||
| 1497 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE | ||
| 1498 | { | ||
| 1499 | UINT OutputIndex; | ||
| 1500 | UINT InputFrameOrField; | ||
| 1501 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE; | ||
| 1502 | |||
| 1503 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM | ||
| 1504 | { | ||
| 1505 | ID3D12Resource *pTexture2D; | ||
| 1506 | UINT Subresource; | ||
| 1507 | D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet; | ||
| 1508 | } D3D12_VIDEO_PROCESS_INPUT_STREAM; | ||
| 1509 | |||
| 1510 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS | ||
| 1511 | { | ||
| 1512 | D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ]; | ||
| 1513 | D3D12_VIDEO_PROCESS_TRANSFORM Transform; | ||
| 1514 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; | ||
| 1515 | D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; | ||
| 1516 | INT FilterLevels[ 32 ]; | ||
| 1517 | D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; | ||
| 1518 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS; | ||
| 1519 | |||
| 1520 | typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM | ||
| 1521 | { | ||
| 1522 | ID3D12Resource *pTexture2D; | ||
| 1523 | UINT Subresource; | ||
| 1524 | } D3D12_VIDEO_PROCESS_OUTPUT_STREAM; | ||
| 1525 | |||
| 1526 | typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS | ||
| 1527 | { | ||
| 1528 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[ 2 ]; | ||
| 1529 | D3D12_RECT TargetRectangle; | ||
| 1530 | } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS; | ||
| 1531 | |||
| 1532 | |||
| 1533 | |||
| 1534 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_c_ifspec; | ||
| 1535 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0004_v0_0_s_ifspec; | ||
| 1536 | |||
| 1537 | #ifndef __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ | ||
| 1538 | #define __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ | ||
| 1539 | |||
| 1540 | /* interface ID3D12VideoDecodeCommandList */ | ||
| 1541 | /* [unique][local][object][uuid] */ | ||
| 1542 | |||
| 1543 | |||
| 1544 | EXTERN_C const IID IID_ID3D12VideoDecodeCommandList; | ||
| 1545 | |||
| 1546 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1547 | |||
| 1548 | MIDL_INTERFACE("3B60536E-AD29-4E64-A269-F853837E5E53") | ||
| 1549 | ID3D12VideoDecodeCommandList : public ID3D12CommandList | ||
| 1550 | { | ||
| 1551 | public: | ||
| 1552 | virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; | ||
| 1553 | |||
| 1554 | virtual HRESULT STDMETHODCALLTYPE Reset( | ||
| 1555 | _In_ ID3D12CommandAllocator *pAllocator) = 0; | ||
| 1556 | |||
| 1557 | virtual void STDMETHODCALLTYPE ClearState( void) = 0; | ||
| 1558 | |||
| 1559 | virtual void STDMETHODCALLTYPE ResourceBarrier( | ||
| 1560 | _In_ UINT NumBarriers, | ||
| 1561 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; | ||
| 1562 | |||
| 1563 | virtual void STDMETHODCALLTYPE DiscardResource( | ||
| 1564 | _In_ ID3D12Resource *pResource, | ||
| 1565 | _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; | ||
| 1566 | |||
| 1567 | virtual void STDMETHODCALLTYPE BeginQuery( | ||
| 1568 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 1569 | _In_ D3D12_QUERY_TYPE Type, | ||
| 1570 | _In_ UINT Index) = 0; | ||
| 1571 | |||
| 1572 | virtual void STDMETHODCALLTYPE EndQuery( | ||
| 1573 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 1574 | _In_ D3D12_QUERY_TYPE Type, | ||
| 1575 | _In_ UINT Index) = 0; | ||
| 1576 | |||
| 1577 | virtual void STDMETHODCALLTYPE ResolveQueryData( | ||
| 1578 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 1579 | _In_ D3D12_QUERY_TYPE Type, | ||
| 1580 | _In_ UINT StartIndex, | ||
| 1581 | _In_ UINT NumQueries, | ||
| 1582 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 1583 | _In_ UINT64 AlignedDestinationBufferOffset) = 0; | ||
| 1584 | |||
| 1585 | virtual void STDMETHODCALLTYPE SetPredication( | ||
| 1586 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 1587 | _In_ UINT64 AlignedBufferOffset, | ||
| 1588 | _In_ D3D12_PREDICATION_OP Operation) = 0; | ||
| 1589 | |||
| 1590 | virtual void STDMETHODCALLTYPE SetMarker( | ||
| 1591 | UINT Metadata, | ||
| 1592 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 1593 | UINT Size) = 0; | ||
| 1594 | |||
| 1595 | virtual void STDMETHODCALLTYPE BeginEvent( | ||
| 1596 | UINT Metadata, | ||
| 1597 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 1598 | UINT Size) = 0; | ||
| 1599 | |||
| 1600 | virtual void STDMETHODCALLTYPE EndEvent( void) = 0; | ||
| 1601 | |||
| 1602 | virtual void STDMETHODCALLTYPE DecodeFrame( | ||
| 1603 | _In_ ID3D12VideoDecoder *pDecoder, | ||
| 1604 | _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 1605 | _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0; | ||
| 1606 | |||
| 1607 | virtual void STDMETHODCALLTYPE WriteBufferImmediate( | ||
| 1608 | UINT Count, | ||
| 1609 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 1610 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; | ||
| 1611 | |||
| 1612 | }; | ||
| 1613 | |||
| 1614 | |||
| 1615 | #else /* C style interface */ | ||
| 1616 | |||
| 1617 | typedef struct ID3D12VideoDecodeCommandListVtbl | ||
| 1618 | { | ||
| 1619 | BEGIN_INTERFACE | ||
| 1620 | |||
| 1621 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1622 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1623 | ID3D12VideoDecodeCommandList * This, | ||
| 1624 | REFIID riid, | ||
| 1625 | _COM_Outptr_ void **ppvObject); | ||
| 1626 | |||
| 1627 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1628 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1629 | ID3D12VideoDecodeCommandList * This); | ||
| 1630 | |||
| 1631 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1632 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1633 | ID3D12VideoDecodeCommandList * This); | ||
| 1634 | |||
| 1635 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 1636 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 1637 | ID3D12VideoDecodeCommandList * This, | ||
| 1638 | _In_ REFGUID guid, | ||
| 1639 | _Inout_ UINT *pDataSize, | ||
| 1640 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 1641 | |||
| 1642 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 1643 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 1644 | ID3D12VideoDecodeCommandList * This, | ||
| 1645 | _In_ REFGUID guid, | ||
| 1646 | _In_ UINT DataSize, | ||
| 1647 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 1648 | |||
| 1649 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 1650 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 1651 | ID3D12VideoDecodeCommandList * This, | ||
| 1652 | _In_ REFGUID guid, | ||
| 1653 | _In_opt_ const IUnknown *pData); | ||
| 1654 | |||
| 1655 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 1656 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 1657 | ID3D12VideoDecodeCommandList * This, | ||
| 1658 | _In_z_ LPCWSTR Name); | ||
| 1659 | |||
| 1660 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 1661 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 1662 | ID3D12VideoDecodeCommandList * This, | ||
| 1663 | REFIID riid, | ||
| 1664 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 1665 | |||
| 1666 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 1667 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 1668 | ID3D12VideoDecodeCommandList * This); | ||
| 1669 | |||
| 1670 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close) | ||
| 1671 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 1672 | ID3D12VideoDecodeCommandList * This); | ||
| 1673 | |||
| 1674 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset) | ||
| 1675 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 1676 | ID3D12VideoDecodeCommandList * This, | ||
| 1677 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 1678 | |||
| 1679 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState) | ||
| 1680 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 1681 | ID3D12VideoDecodeCommandList * This); | ||
| 1682 | |||
| 1683 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier) | ||
| 1684 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 1685 | ID3D12VideoDecodeCommandList * This, | ||
| 1686 | _In_ UINT NumBarriers, | ||
| 1687 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 1688 | |||
| 1689 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource) | ||
| 1690 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 1691 | ID3D12VideoDecodeCommandList * This, | ||
| 1692 | _In_ ID3D12Resource *pResource, | ||
| 1693 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 1694 | |||
| 1695 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery) | ||
| 1696 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 1697 | ID3D12VideoDecodeCommandList * This, | ||
| 1698 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 1699 | _In_ D3D12_QUERY_TYPE Type, | ||
| 1700 | _In_ UINT Index); | ||
| 1701 | |||
| 1702 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery) | ||
| 1703 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 1704 | ID3D12VideoDecodeCommandList * This, | ||
| 1705 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 1706 | _In_ D3D12_QUERY_TYPE Type, | ||
| 1707 | _In_ UINT Index); | ||
| 1708 | |||
| 1709 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData) | ||
| 1710 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 1711 | ID3D12VideoDecodeCommandList * This, | ||
| 1712 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 1713 | _In_ D3D12_QUERY_TYPE Type, | ||
| 1714 | _In_ UINT StartIndex, | ||
| 1715 | _In_ UINT NumQueries, | ||
| 1716 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 1717 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 1718 | |||
| 1719 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication) | ||
| 1720 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 1721 | ID3D12VideoDecodeCommandList * This, | ||
| 1722 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 1723 | _In_ UINT64 AlignedBufferOffset, | ||
| 1724 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 1725 | |||
| 1726 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker) | ||
| 1727 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 1728 | ID3D12VideoDecodeCommandList * This, | ||
| 1729 | UINT Metadata, | ||
| 1730 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 1731 | UINT Size); | ||
| 1732 | |||
| 1733 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent) | ||
| 1734 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 1735 | ID3D12VideoDecodeCommandList * This, | ||
| 1736 | UINT Metadata, | ||
| 1737 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 1738 | UINT Size); | ||
| 1739 | |||
| 1740 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent) | ||
| 1741 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 1742 | ID3D12VideoDecodeCommandList * This); | ||
| 1743 | |||
| 1744 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame) | ||
| 1745 | void ( STDMETHODCALLTYPE *DecodeFrame )( | ||
| 1746 | ID3D12VideoDecodeCommandList * This, | ||
| 1747 | _In_ ID3D12VideoDecoder *pDecoder, | ||
| 1748 | _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 1749 | _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 1750 | |||
| 1751 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate) | ||
| 1752 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 1753 | ID3D12VideoDecodeCommandList * This, | ||
| 1754 | UINT Count, | ||
| 1755 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 1756 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 1757 | |||
| 1758 | END_INTERFACE | ||
| 1759 | } ID3D12VideoDecodeCommandListVtbl; | ||
| 1760 | |||
| 1761 | interface ID3D12VideoDecodeCommandList | ||
| 1762 | { | ||
| 1763 | CONST_VTBL struct ID3D12VideoDecodeCommandListVtbl *lpVtbl; | ||
| 1764 | }; | ||
| 1765 | |||
| 1766 | |||
| 1767 | |||
| 1768 | #ifdef COBJMACROS | ||
| 1769 | |||
| 1770 | |||
| 1771 | #define ID3D12VideoDecodeCommandList_QueryInterface(This,riid,ppvObject) \ | ||
| 1772 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 1773 | |||
| 1774 | #define ID3D12VideoDecodeCommandList_AddRef(This) \ | ||
| 1775 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 1776 | |||
| 1777 | #define ID3D12VideoDecodeCommandList_Release(This) \ | ||
| 1778 | ( (This)->lpVtbl -> Release(This) ) | ||
| 1779 | |||
| 1780 | |||
| 1781 | #define ID3D12VideoDecodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 1782 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 1783 | |||
| 1784 | #define ID3D12VideoDecodeCommandList_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 1785 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 1786 | |||
| 1787 | #define ID3D12VideoDecodeCommandList_SetPrivateDataInterface(This,guid,pData) \ | ||
| 1788 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 1789 | |||
| 1790 | #define ID3D12VideoDecodeCommandList_SetName(This,Name) \ | ||
| 1791 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 1792 | |||
| 1793 | |||
| 1794 | #define ID3D12VideoDecodeCommandList_GetDevice(This,riid,ppvDevice) \ | ||
| 1795 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 1796 | |||
| 1797 | |||
| 1798 | #define ID3D12VideoDecodeCommandList_GetType(This) \ | ||
| 1799 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 1800 | |||
| 1801 | |||
| 1802 | #define ID3D12VideoDecodeCommandList_Close(This) \ | ||
| 1803 | ( (This)->lpVtbl -> Close(This) ) | ||
| 1804 | |||
| 1805 | #define ID3D12VideoDecodeCommandList_Reset(This,pAllocator) \ | ||
| 1806 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 1807 | |||
| 1808 | #define ID3D12VideoDecodeCommandList_ClearState(This) \ | ||
| 1809 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 1810 | |||
| 1811 | #define ID3D12VideoDecodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 1812 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 1813 | |||
| 1814 | #define ID3D12VideoDecodeCommandList_DiscardResource(This,pResource,pRegion) \ | ||
| 1815 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 1816 | |||
| 1817 | #define ID3D12VideoDecodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 1818 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 1819 | |||
| 1820 | #define ID3D12VideoDecodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 1821 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 1822 | |||
| 1823 | #define ID3D12VideoDecodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 1824 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 1825 | |||
| 1826 | #define ID3D12VideoDecodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 1827 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 1828 | |||
| 1829 | #define ID3D12VideoDecodeCommandList_SetMarker(This,Metadata,pData,Size) \ | ||
| 1830 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 1831 | |||
| 1832 | #define ID3D12VideoDecodeCommandList_BeginEvent(This,Metadata,pData,Size) \ | ||
| 1833 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 1834 | |||
| 1835 | #define ID3D12VideoDecodeCommandList_EndEvent(This) \ | ||
| 1836 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 1837 | |||
| 1838 | #define ID3D12VideoDecodeCommandList_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ | ||
| 1839 | ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) | ||
| 1840 | |||
| 1841 | #define ID3D12VideoDecodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 1842 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 1843 | |||
| 1844 | #endif /* COBJMACROS */ | ||
| 1845 | |||
| 1846 | |||
| 1847 | #endif /* C style interface */ | ||
| 1848 | |||
| 1849 | |||
| 1850 | |||
| 1851 | |||
| 1852 | #endif /* __ID3D12VideoDecodeCommandList_INTERFACE_DEFINED__ */ | ||
| 1853 | |||
| 1854 | |||
| 1855 | #ifndef __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ | ||
| 1856 | #define __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ | ||
| 1857 | |||
| 1858 | /* interface ID3D12VideoProcessCommandList */ | ||
| 1859 | /* [unique][local][object][uuid] */ | ||
| 1860 | |||
| 1861 | |||
| 1862 | EXTERN_C const IID IID_ID3D12VideoProcessCommandList; | ||
| 1863 | |||
| 1864 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 1865 | |||
| 1866 | MIDL_INTERFACE("AEB2543A-167F-4682-ACC8-D159ED4A6209") | ||
| 1867 | ID3D12VideoProcessCommandList : public ID3D12CommandList | ||
| 1868 | { | ||
| 1869 | public: | ||
| 1870 | virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; | ||
| 1871 | |||
| 1872 | virtual HRESULT STDMETHODCALLTYPE Reset( | ||
| 1873 | _In_ ID3D12CommandAllocator *pAllocator) = 0; | ||
| 1874 | |||
| 1875 | virtual void STDMETHODCALLTYPE ClearState( void) = 0; | ||
| 1876 | |||
| 1877 | virtual void STDMETHODCALLTYPE ResourceBarrier( | ||
| 1878 | _In_ UINT NumBarriers, | ||
| 1879 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; | ||
| 1880 | |||
| 1881 | virtual void STDMETHODCALLTYPE DiscardResource( | ||
| 1882 | _In_ ID3D12Resource *pResource, | ||
| 1883 | _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; | ||
| 1884 | |||
| 1885 | virtual void STDMETHODCALLTYPE BeginQuery( | ||
| 1886 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 1887 | _In_ D3D12_QUERY_TYPE Type, | ||
| 1888 | _In_ UINT Index) = 0; | ||
| 1889 | |||
| 1890 | virtual void STDMETHODCALLTYPE EndQuery( | ||
| 1891 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 1892 | _In_ D3D12_QUERY_TYPE Type, | ||
| 1893 | _In_ UINT Index) = 0; | ||
| 1894 | |||
| 1895 | virtual void STDMETHODCALLTYPE ResolveQueryData( | ||
| 1896 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 1897 | _In_ D3D12_QUERY_TYPE Type, | ||
| 1898 | _In_ UINT StartIndex, | ||
| 1899 | _In_ UINT NumQueries, | ||
| 1900 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 1901 | _In_ UINT64 AlignedDestinationBufferOffset) = 0; | ||
| 1902 | |||
| 1903 | virtual void STDMETHODCALLTYPE SetPredication( | ||
| 1904 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 1905 | _In_ UINT64 AlignedBufferOffset, | ||
| 1906 | _In_ D3D12_PREDICATION_OP Operation) = 0; | ||
| 1907 | |||
| 1908 | virtual void STDMETHODCALLTYPE SetMarker( | ||
| 1909 | UINT Metadata, | ||
| 1910 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 1911 | UINT Size) = 0; | ||
| 1912 | |||
| 1913 | virtual void STDMETHODCALLTYPE BeginEvent( | ||
| 1914 | UINT Metadata, | ||
| 1915 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 1916 | UINT Size) = 0; | ||
| 1917 | |||
| 1918 | virtual void STDMETHODCALLTYPE EndEvent( void) = 0; | ||
| 1919 | |||
| 1920 | virtual void STDMETHODCALLTYPE ProcessFrames( | ||
| 1921 | _In_ ID3D12VideoProcessor *pVideoProcessor, | ||
| 1922 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 1923 | UINT NumInputStreams, | ||
| 1924 | _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0; | ||
| 1925 | |||
| 1926 | virtual void STDMETHODCALLTYPE WriteBufferImmediate( | ||
| 1927 | UINT Count, | ||
| 1928 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 1929 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; | ||
| 1930 | |||
| 1931 | }; | ||
| 1932 | |||
| 1933 | |||
| 1934 | #else /* C style interface */ | ||
| 1935 | |||
| 1936 | typedef struct ID3D12VideoProcessCommandListVtbl | ||
| 1937 | { | ||
| 1938 | BEGIN_INTERFACE | ||
| 1939 | |||
| 1940 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 1941 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 1942 | ID3D12VideoProcessCommandList * This, | ||
| 1943 | REFIID riid, | ||
| 1944 | _COM_Outptr_ void **ppvObject); | ||
| 1945 | |||
| 1946 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 1947 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 1948 | ID3D12VideoProcessCommandList * This); | ||
| 1949 | |||
| 1950 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 1951 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 1952 | ID3D12VideoProcessCommandList * This); | ||
| 1953 | |||
| 1954 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 1955 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 1956 | ID3D12VideoProcessCommandList * This, | ||
| 1957 | _In_ REFGUID guid, | ||
| 1958 | _Inout_ UINT *pDataSize, | ||
| 1959 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 1960 | |||
| 1961 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 1962 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 1963 | ID3D12VideoProcessCommandList * This, | ||
| 1964 | _In_ REFGUID guid, | ||
| 1965 | _In_ UINT DataSize, | ||
| 1966 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 1967 | |||
| 1968 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 1969 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 1970 | ID3D12VideoProcessCommandList * This, | ||
| 1971 | _In_ REFGUID guid, | ||
| 1972 | _In_opt_ const IUnknown *pData); | ||
| 1973 | |||
| 1974 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 1975 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 1976 | ID3D12VideoProcessCommandList * This, | ||
| 1977 | _In_z_ LPCWSTR Name); | ||
| 1978 | |||
| 1979 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 1980 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 1981 | ID3D12VideoProcessCommandList * This, | ||
| 1982 | REFIID riid, | ||
| 1983 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 1984 | |||
| 1985 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 1986 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 1987 | ID3D12VideoProcessCommandList * This); | ||
| 1988 | |||
| 1989 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close) | ||
| 1990 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 1991 | ID3D12VideoProcessCommandList * This); | ||
| 1992 | |||
| 1993 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset) | ||
| 1994 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 1995 | ID3D12VideoProcessCommandList * This, | ||
| 1996 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 1997 | |||
| 1998 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState) | ||
| 1999 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 2000 | ID3D12VideoProcessCommandList * This); | ||
| 2001 | |||
| 2002 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier) | ||
| 2003 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 2004 | ID3D12VideoProcessCommandList * This, | ||
| 2005 | _In_ UINT NumBarriers, | ||
| 2006 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 2007 | |||
| 2008 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource) | ||
| 2009 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 2010 | ID3D12VideoProcessCommandList * This, | ||
| 2011 | _In_ ID3D12Resource *pResource, | ||
| 2012 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 2013 | |||
| 2014 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery) | ||
| 2015 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 2016 | ID3D12VideoProcessCommandList * This, | ||
| 2017 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 2018 | _In_ D3D12_QUERY_TYPE Type, | ||
| 2019 | _In_ UINT Index); | ||
| 2020 | |||
| 2021 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery) | ||
| 2022 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 2023 | ID3D12VideoProcessCommandList * This, | ||
| 2024 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 2025 | _In_ D3D12_QUERY_TYPE Type, | ||
| 2026 | _In_ UINT Index); | ||
| 2027 | |||
| 2028 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData) | ||
| 2029 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 2030 | ID3D12VideoProcessCommandList * This, | ||
| 2031 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 2032 | _In_ D3D12_QUERY_TYPE Type, | ||
| 2033 | _In_ UINT StartIndex, | ||
| 2034 | _In_ UINT NumQueries, | ||
| 2035 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 2036 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 2037 | |||
| 2038 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication) | ||
| 2039 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 2040 | ID3D12VideoProcessCommandList * This, | ||
| 2041 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 2042 | _In_ UINT64 AlignedBufferOffset, | ||
| 2043 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 2044 | |||
| 2045 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker) | ||
| 2046 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 2047 | ID3D12VideoProcessCommandList * This, | ||
| 2048 | UINT Metadata, | ||
| 2049 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 2050 | UINT Size); | ||
| 2051 | |||
| 2052 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent) | ||
| 2053 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 2054 | ID3D12VideoProcessCommandList * This, | ||
| 2055 | UINT Metadata, | ||
| 2056 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 2057 | UINT Size); | ||
| 2058 | |||
| 2059 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent) | ||
| 2060 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 2061 | ID3D12VideoProcessCommandList * This); | ||
| 2062 | |||
| 2063 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames) | ||
| 2064 | void ( STDMETHODCALLTYPE *ProcessFrames )( | ||
| 2065 | ID3D12VideoProcessCommandList * This, | ||
| 2066 | _In_ ID3D12VideoProcessor *pVideoProcessor, | ||
| 2067 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 2068 | UINT NumInputStreams, | ||
| 2069 | _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 2070 | |||
| 2071 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate) | ||
| 2072 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 2073 | ID3D12VideoProcessCommandList * This, | ||
| 2074 | UINT Count, | ||
| 2075 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 2076 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 2077 | |||
| 2078 | END_INTERFACE | ||
| 2079 | } ID3D12VideoProcessCommandListVtbl; | ||
| 2080 | |||
| 2081 | interface ID3D12VideoProcessCommandList | ||
| 2082 | { | ||
| 2083 | CONST_VTBL struct ID3D12VideoProcessCommandListVtbl *lpVtbl; | ||
| 2084 | }; | ||
| 2085 | |||
| 2086 | |||
| 2087 | |||
| 2088 | #ifdef COBJMACROS | ||
| 2089 | |||
| 2090 | |||
| 2091 | #define ID3D12VideoProcessCommandList_QueryInterface(This,riid,ppvObject) \ | ||
| 2092 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 2093 | |||
| 2094 | #define ID3D12VideoProcessCommandList_AddRef(This) \ | ||
| 2095 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 2096 | |||
| 2097 | #define ID3D12VideoProcessCommandList_Release(This) \ | ||
| 2098 | ( (This)->lpVtbl -> Release(This) ) | ||
| 2099 | |||
| 2100 | |||
| 2101 | #define ID3D12VideoProcessCommandList_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 2102 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 2103 | |||
| 2104 | #define ID3D12VideoProcessCommandList_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 2105 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 2106 | |||
| 2107 | #define ID3D12VideoProcessCommandList_SetPrivateDataInterface(This,guid,pData) \ | ||
| 2108 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 2109 | |||
| 2110 | #define ID3D12VideoProcessCommandList_SetName(This,Name) \ | ||
| 2111 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 2112 | |||
| 2113 | |||
| 2114 | #define ID3D12VideoProcessCommandList_GetDevice(This,riid,ppvDevice) \ | ||
| 2115 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 2116 | |||
| 2117 | |||
| 2118 | #define ID3D12VideoProcessCommandList_GetType(This) \ | ||
| 2119 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 2120 | |||
| 2121 | |||
| 2122 | #define ID3D12VideoProcessCommandList_Close(This) \ | ||
| 2123 | ( (This)->lpVtbl -> Close(This) ) | ||
| 2124 | |||
| 2125 | #define ID3D12VideoProcessCommandList_Reset(This,pAllocator) \ | ||
| 2126 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 2127 | |||
| 2128 | #define ID3D12VideoProcessCommandList_ClearState(This) \ | ||
| 2129 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 2130 | |||
| 2131 | #define ID3D12VideoProcessCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 2132 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 2133 | |||
| 2134 | #define ID3D12VideoProcessCommandList_DiscardResource(This,pResource,pRegion) \ | ||
| 2135 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 2136 | |||
| 2137 | #define ID3D12VideoProcessCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 2138 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 2139 | |||
| 2140 | #define ID3D12VideoProcessCommandList_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 2141 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 2142 | |||
| 2143 | #define ID3D12VideoProcessCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 2144 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 2145 | |||
| 2146 | #define ID3D12VideoProcessCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 2147 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 2148 | |||
| 2149 | #define ID3D12VideoProcessCommandList_SetMarker(This,Metadata,pData,Size) \ | ||
| 2150 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 2151 | |||
| 2152 | #define ID3D12VideoProcessCommandList_BeginEvent(This,Metadata,pData,Size) \ | ||
| 2153 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 2154 | |||
| 2155 | #define ID3D12VideoProcessCommandList_EndEvent(This) \ | ||
| 2156 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 2157 | |||
| 2158 | #define ID3D12VideoProcessCommandList_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ | ||
| 2159 | ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) | ||
| 2160 | |||
| 2161 | #define ID3D12VideoProcessCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 2162 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 2163 | |||
| 2164 | #endif /* COBJMACROS */ | ||
| 2165 | |||
| 2166 | |||
| 2167 | #endif /* C style interface */ | ||
| 2168 | |||
| 2169 | |||
| 2170 | |||
| 2171 | |||
| 2172 | #endif /* __ID3D12VideoProcessCommandList_INTERFACE_DEFINED__ */ | ||
| 2173 | |||
| 2174 | |||
| 2175 | /* interface __MIDL_itf_d3d12video_0000_0006 */ | ||
| 2176 | /* [local] */ | ||
| 2177 | |||
| 2178 | typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM | ||
| 2179 | { | ||
| 2180 | UINT64 Offset; | ||
| 2181 | ID3D12Resource *pBuffer; | ||
| 2182 | } D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM; | ||
| 2183 | |||
| 2184 | typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 | ||
| 2185 | { | ||
| 2186 | BOOL Enable; | ||
| 2187 | ID3D12Resource *pReferenceTexture2D; | ||
| 2188 | UINT ReferenceSubresource; | ||
| 2189 | DXGI_COLOR_SPACE_TYPE OutputColorSpace; | ||
| 2190 | DXGI_COLOR_SPACE_TYPE DecodeColorSpace; | ||
| 2191 | UINT OutputWidth; | ||
| 2192 | UINT OutputHeight; | ||
| 2193 | } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1; | ||
| 2194 | |||
| 2195 | typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 | ||
| 2196 | { | ||
| 2197 | ID3D12Resource *pOutputTexture2D; | ||
| 2198 | UINT OutputSubresource; | ||
| 2199 | D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments; | ||
| 2200 | D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[ 4 ]; | ||
| 2201 | } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1; | ||
| 2202 | |||
| 2203 | |||
| 2204 | |||
| 2205 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_c_ifspec; | ||
| 2206 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0006_v0_0_s_ifspec; | ||
| 2207 | |||
| 2208 | #ifndef __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ | ||
| 2209 | #define __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ | ||
| 2210 | |||
| 2211 | /* interface ID3D12VideoDecodeCommandList1 */ | ||
| 2212 | /* [unique][local][object][uuid] */ | ||
| 2213 | |||
| 2214 | |||
| 2215 | EXTERN_C const IID IID_ID3D12VideoDecodeCommandList1; | ||
| 2216 | |||
| 2217 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 2218 | |||
| 2219 | MIDL_INTERFACE("D52F011B-B56E-453C-A05A-A7F311C8F472") | ||
| 2220 | ID3D12VideoDecodeCommandList1 : public ID3D12VideoDecodeCommandList | ||
| 2221 | { | ||
| 2222 | public: | ||
| 2223 | virtual void STDMETHODCALLTYPE DecodeFrame1( | ||
| 2224 | _In_ ID3D12VideoDecoder *pDecoder, | ||
| 2225 | _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, | ||
| 2226 | _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments) = 0; | ||
| 2227 | |||
| 2228 | }; | ||
| 2229 | |||
| 2230 | |||
| 2231 | #else /* C style interface */ | ||
| 2232 | |||
| 2233 | typedef struct ID3D12VideoDecodeCommandList1Vtbl | ||
| 2234 | { | ||
| 2235 | BEGIN_INTERFACE | ||
| 2236 | |||
| 2237 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 2238 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 2239 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2240 | REFIID riid, | ||
| 2241 | _COM_Outptr_ void **ppvObject); | ||
| 2242 | |||
| 2243 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 2244 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 2245 | ID3D12VideoDecodeCommandList1 * This); | ||
| 2246 | |||
| 2247 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 2248 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 2249 | ID3D12VideoDecodeCommandList1 * This); | ||
| 2250 | |||
| 2251 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 2252 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 2253 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2254 | _In_ REFGUID guid, | ||
| 2255 | _Inout_ UINT *pDataSize, | ||
| 2256 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 2257 | |||
| 2258 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 2259 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 2260 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2261 | _In_ REFGUID guid, | ||
| 2262 | _In_ UINT DataSize, | ||
| 2263 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 2264 | |||
| 2265 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 2266 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 2267 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2268 | _In_ REFGUID guid, | ||
| 2269 | _In_opt_ const IUnknown *pData); | ||
| 2270 | |||
| 2271 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 2272 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 2273 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2274 | _In_z_ LPCWSTR Name); | ||
| 2275 | |||
| 2276 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 2277 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 2278 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2279 | REFIID riid, | ||
| 2280 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 2281 | |||
| 2282 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 2283 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 2284 | ID3D12VideoDecodeCommandList1 * This); | ||
| 2285 | |||
| 2286 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close) | ||
| 2287 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 2288 | ID3D12VideoDecodeCommandList1 * This); | ||
| 2289 | |||
| 2290 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset) | ||
| 2291 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 2292 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2293 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 2294 | |||
| 2295 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState) | ||
| 2296 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 2297 | ID3D12VideoDecodeCommandList1 * This); | ||
| 2298 | |||
| 2299 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier) | ||
| 2300 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 2301 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2302 | _In_ UINT NumBarriers, | ||
| 2303 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 2304 | |||
| 2305 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource) | ||
| 2306 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 2307 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2308 | _In_ ID3D12Resource *pResource, | ||
| 2309 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 2310 | |||
| 2311 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery) | ||
| 2312 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 2313 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2314 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 2315 | _In_ D3D12_QUERY_TYPE Type, | ||
| 2316 | _In_ UINT Index); | ||
| 2317 | |||
| 2318 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery) | ||
| 2319 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 2320 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2321 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 2322 | _In_ D3D12_QUERY_TYPE Type, | ||
| 2323 | _In_ UINT Index); | ||
| 2324 | |||
| 2325 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData) | ||
| 2326 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 2327 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2328 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 2329 | _In_ D3D12_QUERY_TYPE Type, | ||
| 2330 | _In_ UINT StartIndex, | ||
| 2331 | _In_ UINT NumQueries, | ||
| 2332 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 2333 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 2334 | |||
| 2335 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication) | ||
| 2336 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 2337 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2338 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 2339 | _In_ UINT64 AlignedBufferOffset, | ||
| 2340 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 2341 | |||
| 2342 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker) | ||
| 2343 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 2344 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2345 | UINT Metadata, | ||
| 2346 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 2347 | UINT Size); | ||
| 2348 | |||
| 2349 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent) | ||
| 2350 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 2351 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2352 | UINT Metadata, | ||
| 2353 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 2354 | UINT Size); | ||
| 2355 | |||
| 2356 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent) | ||
| 2357 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 2358 | ID3D12VideoDecodeCommandList1 * This); | ||
| 2359 | |||
| 2360 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame) | ||
| 2361 | void ( STDMETHODCALLTYPE *DecodeFrame )( | ||
| 2362 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2363 | _In_ ID3D12VideoDecoder *pDecoder, | ||
| 2364 | _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 2365 | _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 2366 | |||
| 2367 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate) | ||
| 2368 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 2369 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2370 | UINT Count, | ||
| 2371 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 2372 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 2373 | |||
| 2374 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1) | ||
| 2375 | void ( STDMETHODCALLTYPE *DecodeFrame1 )( | ||
| 2376 | ID3D12VideoDecodeCommandList1 * This, | ||
| 2377 | _In_ ID3D12VideoDecoder *pDecoder, | ||
| 2378 | _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, | ||
| 2379 | _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 2380 | |||
| 2381 | END_INTERFACE | ||
| 2382 | } ID3D12VideoDecodeCommandList1Vtbl; | ||
| 2383 | |||
| 2384 | interface ID3D12VideoDecodeCommandList1 | ||
| 2385 | { | ||
| 2386 | CONST_VTBL struct ID3D12VideoDecodeCommandList1Vtbl *lpVtbl; | ||
| 2387 | }; | ||
| 2388 | |||
| 2389 | |||
| 2390 | |||
| 2391 | #ifdef COBJMACROS | ||
| 2392 | |||
| 2393 | |||
| 2394 | #define ID3D12VideoDecodeCommandList1_QueryInterface(This,riid,ppvObject) \ | ||
| 2395 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 2396 | |||
| 2397 | #define ID3D12VideoDecodeCommandList1_AddRef(This) \ | ||
| 2398 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 2399 | |||
| 2400 | #define ID3D12VideoDecodeCommandList1_Release(This) \ | ||
| 2401 | ( (This)->lpVtbl -> Release(This) ) | ||
| 2402 | |||
| 2403 | |||
| 2404 | #define ID3D12VideoDecodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 2405 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 2406 | |||
| 2407 | #define ID3D12VideoDecodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 2408 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 2409 | |||
| 2410 | #define ID3D12VideoDecodeCommandList1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 2411 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 2412 | |||
| 2413 | #define ID3D12VideoDecodeCommandList1_SetName(This,Name) \ | ||
| 2414 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 2415 | |||
| 2416 | |||
| 2417 | #define ID3D12VideoDecodeCommandList1_GetDevice(This,riid,ppvDevice) \ | ||
| 2418 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 2419 | |||
| 2420 | |||
| 2421 | #define ID3D12VideoDecodeCommandList1_GetType(This) \ | ||
| 2422 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 2423 | |||
| 2424 | |||
| 2425 | #define ID3D12VideoDecodeCommandList1_Close(This) \ | ||
| 2426 | ( (This)->lpVtbl -> Close(This) ) | ||
| 2427 | |||
| 2428 | #define ID3D12VideoDecodeCommandList1_Reset(This,pAllocator) \ | ||
| 2429 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 2430 | |||
| 2431 | #define ID3D12VideoDecodeCommandList1_ClearState(This) \ | ||
| 2432 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 2433 | |||
| 2434 | #define ID3D12VideoDecodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 2435 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 2436 | |||
| 2437 | #define ID3D12VideoDecodeCommandList1_DiscardResource(This,pResource,pRegion) \ | ||
| 2438 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 2439 | |||
| 2440 | #define ID3D12VideoDecodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 2441 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 2442 | |||
| 2443 | #define ID3D12VideoDecodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 2444 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 2445 | |||
| 2446 | #define ID3D12VideoDecodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 2447 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 2448 | |||
| 2449 | #define ID3D12VideoDecodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 2450 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 2451 | |||
| 2452 | #define ID3D12VideoDecodeCommandList1_SetMarker(This,Metadata,pData,Size) \ | ||
| 2453 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 2454 | |||
| 2455 | #define ID3D12VideoDecodeCommandList1_BeginEvent(This,Metadata,pData,Size) \ | ||
| 2456 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 2457 | |||
| 2458 | #define ID3D12VideoDecodeCommandList1_EndEvent(This) \ | ||
| 2459 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 2460 | |||
| 2461 | #define ID3D12VideoDecodeCommandList1_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ | ||
| 2462 | ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) | ||
| 2463 | |||
| 2464 | #define ID3D12VideoDecodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 2465 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 2466 | |||
| 2467 | |||
| 2468 | #define ID3D12VideoDecodeCommandList1_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \ | ||
| 2469 | ( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) ) | ||
| 2470 | |||
| 2471 | #endif /* COBJMACROS */ | ||
| 2472 | |||
| 2473 | |||
| 2474 | #endif /* C style interface */ | ||
| 2475 | |||
| 2476 | |||
| 2477 | |||
| 2478 | |||
| 2479 | #endif /* __ID3D12VideoDecodeCommandList1_INTERFACE_DEFINED__ */ | ||
| 2480 | |||
| 2481 | |||
| 2482 | /* interface __MIDL_itf_d3d12video_0000_0007 */ | ||
| 2483 | /* [local] */ | ||
| 2484 | |||
| 2485 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 | ||
| 2486 | { | ||
| 2487 | D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[ 2 ]; | ||
| 2488 | D3D12_VIDEO_PROCESS_TRANSFORM Transform; | ||
| 2489 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; | ||
| 2490 | D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; | ||
| 2491 | INT FilterLevels[ 32 ]; | ||
| 2492 | D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; | ||
| 2493 | D3D12_VIDEO_FIELD_TYPE FieldType; | ||
| 2494 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1; | ||
| 2495 | |||
| 2496 | |||
| 2497 | |||
| 2498 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_c_ifspec; | ||
| 2499 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0007_v0_0_s_ifspec; | ||
| 2500 | |||
| 2501 | #ifndef __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ | ||
| 2502 | #define __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ | ||
| 2503 | |||
| 2504 | /* interface ID3D12VideoProcessCommandList1 */ | ||
| 2505 | /* [unique][local][object][uuid] */ | ||
| 2506 | |||
| 2507 | |||
| 2508 | EXTERN_C const IID IID_ID3D12VideoProcessCommandList1; | ||
| 2509 | |||
| 2510 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 2511 | |||
| 2512 | MIDL_INTERFACE("542C5C4D-7596-434F-8C93-4EFA6766F267") | ||
| 2513 | ID3D12VideoProcessCommandList1 : public ID3D12VideoProcessCommandList | ||
| 2514 | { | ||
| 2515 | public: | ||
| 2516 | virtual void STDMETHODCALLTYPE ProcessFrames1( | ||
| 2517 | _In_ ID3D12VideoProcessor *pVideoProcessor, | ||
| 2518 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 2519 | UINT NumInputStreams, | ||
| 2520 | _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments) = 0; | ||
| 2521 | |||
| 2522 | }; | ||
| 2523 | |||
| 2524 | |||
| 2525 | #else /* C style interface */ | ||
| 2526 | |||
| 2527 | typedef struct ID3D12VideoProcessCommandList1Vtbl | ||
| 2528 | { | ||
| 2529 | BEGIN_INTERFACE | ||
| 2530 | |||
| 2531 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 2532 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 2533 | ID3D12VideoProcessCommandList1 * This, | ||
| 2534 | REFIID riid, | ||
| 2535 | _COM_Outptr_ void **ppvObject); | ||
| 2536 | |||
| 2537 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 2538 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 2539 | ID3D12VideoProcessCommandList1 * This); | ||
| 2540 | |||
| 2541 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 2542 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 2543 | ID3D12VideoProcessCommandList1 * This); | ||
| 2544 | |||
| 2545 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 2546 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 2547 | ID3D12VideoProcessCommandList1 * This, | ||
| 2548 | _In_ REFGUID guid, | ||
| 2549 | _Inout_ UINT *pDataSize, | ||
| 2550 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 2551 | |||
| 2552 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 2553 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 2554 | ID3D12VideoProcessCommandList1 * This, | ||
| 2555 | _In_ REFGUID guid, | ||
| 2556 | _In_ UINT DataSize, | ||
| 2557 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 2558 | |||
| 2559 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 2560 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 2561 | ID3D12VideoProcessCommandList1 * This, | ||
| 2562 | _In_ REFGUID guid, | ||
| 2563 | _In_opt_ const IUnknown *pData); | ||
| 2564 | |||
| 2565 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 2566 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 2567 | ID3D12VideoProcessCommandList1 * This, | ||
| 2568 | _In_z_ LPCWSTR Name); | ||
| 2569 | |||
| 2570 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 2571 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 2572 | ID3D12VideoProcessCommandList1 * This, | ||
| 2573 | REFIID riid, | ||
| 2574 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 2575 | |||
| 2576 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 2577 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 2578 | ID3D12VideoProcessCommandList1 * This); | ||
| 2579 | |||
| 2580 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close) | ||
| 2581 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 2582 | ID3D12VideoProcessCommandList1 * This); | ||
| 2583 | |||
| 2584 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset) | ||
| 2585 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 2586 | ID3D12VideoProcessCommandList1 * This, | ||
| 2587 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 2588 | |||
| 2589 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState) | ||
| 2590 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 2591 | ID3D12VideoProcessCommandList1 * This); | ||
| 2592 | |||
| 2593 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier) | ||
| 2594 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 2595 | ID3D12VideoProcessCommandList1 * This, | ||
| 2596 | _In_ UINT NumBarriers, | ||
| 2597 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 2598 | |||
| 2599 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource) | ||
| 2600 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 2601 | ID3D12VideoProcessCommandList1 * This, | ||
| 2602 | _In_ ID3D12Resource *pResource, | ||
| 2603 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 2604 | |||
| 2605 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery) | ||
| 2606 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 2607 | ID3D12VideoProcessCommandList1 * This, | ||
| 2608 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 2609 | _In_ D3D12_QUERY_TYPE Type, | ||
| 2610 | _In_ UINT Index); | ||
| 2611 | |||
| 2612 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery) | ||
| 2613 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 2614 | ID3D12VideoProcessCommandList1 * This, | ||
| 2615 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 2616 | _In_ D3D12_QUERY_TYPE Type, | ||
| 2617 | _In_ UINT Index); | ||
| 2618 | |||
| 2619 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData) | ||
| 2620 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 2621 | ID3D12VideoProcessCommandList1 * This, | ||
| 2622 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 2623 | _In_ D3D12_QUERY_TYPE Type, | ||
| 2624 | _In_ UINT StartIndex, | ||
| 2625 | _In_ UINT NumQueries, | ||
| 2626 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 2627 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 2628 | |||
| 2629 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication) | ||
| 2630 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 2631 | ID3D12VideoProcessCommandList1 * This, | ||
| 2632 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 2633 | _In_ UINT64 AlignedBufferOffset, | ||
| 2634 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 2635 | |||
| 2636 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker) | ||
| 2637 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 2638 | ID3D12VideoProcessCommandList1 * This, | ||
| 2639 | UINT Metadata, | ||
| 2640 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 2641 | UINT Size); | ||
| 2642 | |||
| 2643 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent) | ||
| 2644 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 2645 | ID3D12VideoProcessCommandList1 * This, | ||
| 2646 | UINT Metadata, | ||
| 2647 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 2648 | UINT Size); | ||
| 2649 | |||
| 2650 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent) | ||
| 2651 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 2652 | ID3D12VideoProcessCommandList1 * This); | ||
| 2653 | |||
| 2654 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames) | ||
| 2655 | void ( STDMETHODCALLTYPE *ProcessFrames )( | ||
| 2656 | ID3D12VideoProcessCommandList1 * This, | ||
| 2657 | _In_ ID3D12VideoProcessor *pVideoProcessor, | ||
| 2658 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 2659 | UINT NumInputStreams, | ||
| 2660 | _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 2661 | |||
| 2662 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate) | ||
| 2663 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 2664 | ID3D12VideoProcessCommandList1 * This, | ||
| 2665 | UINT Count, | ||
| 2666 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 2667 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 2668 | |||
| 2669 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1) | ||
| 2670 | void ( STDMETHODCALLTYPE *ProcessFrames1 )( | ||
| 2671 | ID3D12VideoProcessCommandList1 * This, | ||
| 2672 | _In_ ID3D12VideoProcessor *pVideoProcessor, | ||
| 2673 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 2674 | UINT NumInputStreams, | ||
| 2675 | _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments); | ||
| 2676 | |||
| 2677 | END_INTERFACE | ||
| 2678 | } ID3D12VideoProcessCommandList1Vtbl; | ||
| 2679 | |||
| 2680 | interface ID3D12VideoProcessCommandList1 | ||
| 2681 | { | ||
| 2682 | CONST_VTBL struct ID3D12VideoProcessCommandList1Vtbl *lpVtbl; | ||
| 2683 | }; | ||
| 2684 | |||
| 2685 | |||
| 2686 | |||
| 2687 | #ifdef COBJMACROS | ||
| 2688 | |||
| 2689 | |||
| 2690 | #define ID3D12VideoProcessCommandList1_QueryInterface(This,riid,ppvObject) \ | ||
| 2691 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 2692 | |||
| 2693 | #define ID3D12VideoProcessCommandList1_AddRef(This) \ | ||
| 2694 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 2695 | |||
| 2696 | #define ID3D12VideoProcessCommandList1_Release(This) \ | ||
| 2697 | ( (This)->lpVtbl -> Release(This) ) | ||
| 2698 | |||
| 2699 | |||
| 2700 | #define ID3D12VideoProcessCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 2701 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 2702 | |||
| 2703 | #define ID3D12VideoProcessCommandList1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 2704 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 2705 | |||
| 2706 | #define ID3D12VideoProcessCommandList1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 2707 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 2708 | |||
| 2709 | #define ID3D12VideoProcessCommandList1_SetName(This,Name) \ | ||
| 2710 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 2711 | |||
| 2712 | |||
| 2713 | #define ID3D12VideoProcessCommandList1_GetDevice(This,riid,ppvDevice) \ | ||
| 2714 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 2715 | |||
| 2716 | |||
| 2717 | #define ID3D12VideoProcessCommandList1_GetType(This) \ | ||
| 2718 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 2719 | |||
| 2720 | |||
| 2721 | #define ID3D12VideoProcessCommandList1_Close(This) \ | ||
| 2722 | ( (This)->lpVtbl -> Close(This) ) | ||
| 2723 | |||
| 2724 | #define ID3D12VideoProcessCommandList1_Reset(This,pAllocator) \ | ||
| 2725 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 2726 | |||
| 2727 | #define ID3D12VideoProcessCommandList1_ClearState(This) \ | ||
| 2728 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 2729 | |||
| 2730 | #define ID3D12VideoProcessCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 2731 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 2732 | |||
| 2733 | #define ID3D12VideoProcessCommandList1_DiscardResource(This,pResource,pRegion) \ | ||
| 2734 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 2735 | |||
| 2736 | #define ID3D12VideoProcessCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 2737 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 2738 | |||
| 2739 | #define ID3D12VideoProcessCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 2740 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 2741 | |||
| 2742 | #define ID3D12VideoProcessCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 2743 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 2744 | |||
| 2745 | #define ID3D12VideoProcessCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 2746 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 2747 | |||
| 2748 | #define ID3D12VideoProcessCommandList1_SetMarker(This,Metadata,pData,Size) \ | ||
| 2749 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 2750 | |||
| 2751 | #define ID3D12VideoProcessCommandList1_BeginEvent(This,Metadata,pData,Size) \ | ||
| 2752 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 2753 | |||
| 2754 | #define ID3D12VideoProcessCommandList1_EndEvent(This) \ | ||
| 2755 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 2756 | |||
| 2757 | #define ID3D12VideoProcessCommandList1_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ | ||
| 2758 | ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) | ||
| 2759 | |||
| 2760 | #define ID3D12VideoProcessCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 2761 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 2762 | |||
| 2763 | |||
| 2764 | #define ID3D12VideoProcessCommandList1_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ | ||
| 2765 | ( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) | ||
| 2766 | |||
| 2767 | #endif /* COBJMACROS */ | ||
| 2768 | |||
| 2769 | |||
| 2770 | #endif /* C style interface */ | ||
| 2771 | |||
| 2772 | |||
| 2773 | |||
| 2774 | |||
| 2775 | #endif /* __ID3D12VideoProcessCommandList1_INTERFACE_DEFINED__ */ | ||
| 2776 | |||
| 2777 | |||
| 2778 | /* interface __MIDL_itf_d3d12video_0000_0008 */ | ||
| 2779 | /* [local] */ | ||
| 2780 | |||
| 2781 | typedef | ||
| 2782 | enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE | ||
| 2783 | { | ||
| 2784 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0, | ||
| 2785 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 1 | ||
| 2786 | } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE; | ||
| 2787 | |||
| 2788 | typedef | ||
| 2789 | enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS | ||
| 2790 | { | ||
| 2791 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0, | ||
| 2792 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 ) , | ||
| 2793 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 ) | ||
| 2794 | } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS; | ||
| 2795 | |||
| 2796 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS ) | ||
| 2797 | typedef | ||
| 2798 | enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION | ||
| 2799 | { | ||
| 2800 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 0 | ||
| 2801 | } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION; | ||
| 2802 | |||
| 2803 | typedef | ||
| 2804 | enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS | ||
| 2805 | { | ||
| 2806 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0, | ||
| 2807 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = ( 1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL ) | ||
| 2808 | } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS; | ||
| 2809 | |||
| 2810 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS ) | ||
| 2811 | typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT | ||
| 2812 | { | ||
| 2813 | UINT NodeIndex; | ||
| 2814 | BOOL VideoDecodeSupport; | ||
| 2815 | BOOL VideoProcessSupport; | ||
| 2816 | BOOL VideoEncodeSupport; | ||
| 2817 | } D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT; | ||
| 2818 | |||
| 2819 | typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR | ||
| 2820 | { | ||
| 2821 | UINT NodeIndex; | ||
| 2822 | DXGI_FORMAT InputFormat; | ||
| 2823 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags; | ||
| 2824 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags; | ||
| 2825 | D3D12_VIDEO_SIZE_RANGE SizeRange; | ||
| 2826 | } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR; | ||
| 2827 | |||
| 2828 | typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE | ||
| 2829 | { | ||
| 2830 | UINT NodeIndex; | ||
| 2831 | DXGI_FORMAT InputFormat; | ||
| 2832 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; | ||
| 2833 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; | ||
| 2834 | D3D12_VIDEO_SIZE_RANGE SizeRange; | ||
| 2835 | BOOL Protected; | ||
| 2836 | UINT64 MotionVectorHeapMemoryPoolL0Size; | ||
| 2837 | UINT64 MotionVectorHeapMemoryPoolL1Size; | ||
| 2838 | UINT64 MotionEstimatorMemoryPoolL0Size; | ||
| 2839 | UINT64 MotionEstimatorMemoryPoolL1Size; | ||
| 2840 | } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE; | ||
| 2841 | |||
| 2842 | typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC | ||
| 2843 | { | ||
| 2844 | UINT NodeMask; | ||
| 2845 | DXGI_FORMAT InputFormat; | ||
| 2846 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; | ||
| 2847 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; | ||
| 2848 | D3D12_VIDEO_SIZE_RANGE SizeRange; | ||
| 2849 | } D3D12_VIDEO_MOTION_ESTIMATOR_DESC; | ||
| 2850 | |||
| 2851 | |||
| 2852 | |||
| 2853 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_c_ifspec; | ||
| 2854 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0008_v0_0_s_ifspec; | ||
| 2855 | |||
| 2856 | #ifndef __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ | ||
| 2857 | #define __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ | ||
| 2858 | |||
| 2859 | /* interface ID3D12VideoMotionEstimator */ | ||
| 2860 | /* [unique][local][object][uuid] */ | ||
| 2861 | |||
| 2862 | |||
| 2863 | EXTERN_C const IID IID_ID3D12VideoMotionEstimator; | ||
| 2864 | |||
| 2865 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 2866 | |||
| 2867 | MIDL_INTERFACE("33FDAE0E-098B-428F-87BB-34B695DE08F8") | ||
| 2868 | ID3D12VideoMotionEstimator : public ID3D12Pageable | ||
| 2869 | { | ||
| 2870 | public: | ||
| 2871 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 2872 | virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 2873 | #else | ||
| 2874 | virtual D3D12_VIDEO_MOTION_ESTIMATOR_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 2875 | D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal) = 0; | ||
| 2876 | #endif | ||
| 2877 | |||
| 2878 | virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( | ||
| 2879 | REFIID riid, | ||
| 2880 | _COM_Outptr_opt_ void **ppProtectedSession) = 0; | ||
| 2881 | |||
| 2882 | }; | ||
| 2883 | |||
| 2884 | |||
| 2885 | #else /* C style interface */ | ||
| 2886 | |||
| 2887 | typedef struct ID3D12VideoMotionEstimatorVtbl | ||
| 2888 | { | ||
| 2889 | BEGIN_INTERFACE | ||
| 2890 | |||
| 2891 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 2892 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 2893 | ID3D12VideoMotionEstimator * This, | ||
| 2894 | REFIID riid, | ||
| 2895 | _COM_Outptr_ void **ppvObject); | ||
| 2896 | |||
| 2897 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 2898 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 2899 | ID3D12VideoMotionEstimator * This); | ||
| 2900 | |||
| 2901 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 2902 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 2903 | ID3D12VideoMotionEstimator * This); | ||
| 2904 | |||
| 2905 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 2906 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 2907 | ID3D12VideoMotionEstimator * This, | ||
| 2908 | _In_ REFGUID guid, | ||
| 2909 | _Inout_ UINT *pDataSize, | ||
| 2910 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 2911 | |||
| 2912 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 2913 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 2914 | ID3D12VideoMotionEstimator * This, | ||
| 2915 | _In_ REFGUID guid, | ||
| 2916 | _In_ UINT DataSize, | ||
| 2917 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 2918 | |||
| 2919 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 2920 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 2921 | ID3D12VideoMotionEstimator * This, | ||
| 2922 | _In_ REFGUID guid, | ||
| 2923 | _In_opt_ const IUnknown *pData); | ||
| 2924 | |||
| 2925 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 2926 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 2927 | ID3D12VideoMotionEstimator * This, | ||
| 2928 | _In_z_ LPCWSTR Name); | ||
| 2929 | |||
| 2930 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 2931 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 2932 | ID3D12VideoMotionEstimator * This, | ||
| 2933 | REFIID riid, | ||
| 2934 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 2935 | |||
| 2936 | DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetDesc) | ||
| 2937 | #if !defined(_WIN32) | ||
| 2938 | D3D12_VIDEO_MOTION_ESTIMATOR_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 2939 | ID3D12VideoMotionEstimator * This); | ||
| 2940 | |||
| 2941 | #else | ||
| 2942 | D3D12_VIDEO_MOTION_ESTIMATOR_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 2943 | ID3D12VideoMotionEstimator * This, | ||
| 2944 | D3D12_VIDEO_MOTION_ESTIMATOR_DESC * RetVal); | ||
| 2945 | |||
| 2946 | #endif | ||
| 2947 | |||
| 2948 | DECLSPEC_XFGVIRT(ID3D12VideoMotionEstimator, GetProtectedResourceSession) | ||
| 2949 | HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( | ||
| 2950 | ID3D12VideoMotionEstimator * This, | ||
| 2951 | REFIID riid, | ||
| 2952 | _COM_Outptr_opt_ void **ppProtectedSession); | ||
| 2953 | |||
| 2954 | END_INTERFACE | ||
| 2955 | } ID3D12VideoMotionEstimatorVtbl; | ||
| 2956 | |||
| 2957 | interface ID3D12VideoMotionEstimator | ||
| 2958 | { | ||
| 2959 | CONST_VTBL struct ID3D12VideoMotionEstimatorVtbl *lpVtbl; | ||
| 2960 | }; | ||
| 2961 | |||
| 2962 | |||
| 2963 | |||
| 2964 | #ifdef COBJMACROS | ||
| 2965 | |||
| 2966 | |||
| 2967 | #define ID3D12VideoMotionEstimator_QueryInterface(This,riid,ppvObject) \ | ||
| 2968 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 2969 | |||
| 2970 | #define ID3D12VideoMotionEstimator_AddRef(This) \ | ||
| 2971 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 2972 | |||
| 2973 | #define ID3D12VideoMotionEstimator_Release(This) \ | ||
| 2974 | ( (This)->lpVtbl -> Release(This) ) | ||
| 2975 | |||
| 2976 | |||
| 2977 | #define ID3D12VideoMotionEstimator_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 2978 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 2979 | |||
| 2980 | #define ID3D12VideoMotionEstimator_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 2981 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 2982 | |||
| 2983 | #define ID3D12VideoMotionEstimator_SetPrivateDataInterface(This,guid,pData) \ | ||
| 2984 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 2985 | |||
| 2986 | #define ID3D12VideoMotionEstimator_SetName(This,Name) \ | ||
| 2987 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 2988 | |||
| 2989 | |||
| 2990 | #define ID3D12VideoMotionEstimator_GetDevice(This,riid,ppvDevice) \ | ||
| 2991 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 2992 | |||
| 2993 | |||
| 2994 | #if !defined(_WIN32) | ||
| 2995 | |||
| 2996 | #define ID3D12VideoMotionEstimator_GetDesc(This) \ | ||
| 2997 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 2998 | #else | ||
| 2999 | #define ID3D12VideoMotionEstimator_GetDesc(This,RetVal) \ | ||
| 3000 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 3001 | #endif | ||
| 3002 | |||
| 3003 | #define ID3D12VideoMotionEstimator_GetProtectedResourceSession(This,riid,ppProtectedSession) \ | ||
| 3004 | ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) | ||
| 3005 | |||
| 3006 | #endif /* COBJMACROS */ | ||
| 3007 | |||
| 3008 | |||
| 3009 | #endif /* C style interface */ | ||
| 3010 | |||
| 3011 | |||
| 3012 | |||
| 3013 | |||
| 3014 | #endif /* __ID3D12VideoMotionEstimator_INTERFACE_DEFINED__ */ | ||
| 3015 | |||
| 3016 | |||
| 3017 | /* interface __MIDL_itf_d3d12video_0000_0009 */ | ||
| 3018 | /* [local] */ | ||
| 3019 | |||
| 3020 | typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC | ||
| 3021 | { | ||
| 3022 | UINT NodeMask; | ||
| 3023 | DXGI_FORMAT InputFormat; | ||
| 3024 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; | ||
| 3025 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; | ||
| 3026 | D3D12_VIDEO_SIZE_RANGE SizeRange; | ||
| 3027 | } D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC; | ||
| 3028 | |||
| 3029 | |||
| 3030 | |||
| 3031 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_c_ifspec; | ||
| 3032 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0009_v0_0_s_ifspec; | ||
| 3033 | |||
| 3034 | #ifndef __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ | ||
| 3035 | #define __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ | ||
| 3036 | |||
| 3037 | /* interface ID3D12VideoMotionVectorHeap */ | ||
| 3038 | /* [unique][local][object][uuid] */ | ||
| 3039 | |||
| 3040 | |||
| 3041 | EXTERN_C const IID IID_ID3D12VideoMotionVectorHeap; | ||
| 3042 | |||
| 3043 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 3044 | |||
| 3045 | MIDL_INTERFACE("5BE17987-743A-4061-834B-23D22DAEA505") | ||
| 3046 | ID3D12VideoMotionVectorHeap : public ID3D12Pageable | ||
| 3047 | { | ||
| 3048 | public: | ||
| 3049 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 3050 | virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 3051 | #else | ||
| 3052 | virtual D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 3053 | D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal) = 0; | ||
| 3054 | #endif | ||
| 3055 | |||
| 3056 | virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( | ||
| 3057 | REFIID riid, | ||
| 3058 | _COM_Outptr_opt_ void **ppProtectedSession) = 0; | ||
| 3059 | |||
| 3060 | }; | ||
| 3061 | |||
| 3062 | |||
| 3063 | #else /* C style interface */ | ||
| 3064 | |||
| 3065 | typedef struct ID3D12VideoMotionVectorHeapVtbl | ||
| 3066 | { | ||
| 3067 | BEGIN_INTERFACE | ||
| 3068 | |||
| 3069 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 3070 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 3071 | ID3D12VideoMotionVectorHeap * This, | ||
| 3072 | REFIID riid, | ||
| 3073 | _COM_Outptr_ void **ppvObject); | ||
| 3074 | |||
| 3075 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 3076 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 3077 | ID3D12VideoMotionVectorHeap * This); | ||
| 3078 | |||
| 3079 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 3080 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 3081 | ID3D12VideoMotionVectorHeap * This); | ||
| 3082 | |||
| 3083 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 3084 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 3085 | ID3D12VideoMotionVectorHeap * This, | ||
| 3086 | _In_ REFGUID guid, | ||
| 3087 | _Inout_ UINT *pDataSize, | ||
| 3088 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 3089 | |||
| 3090 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 3091 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 3092 | ID3D12VideoMotionVectorHeap * This, | ||
| 3093 | _In_ REFGUID guid, | ||
| 3094 | _In_ UINT DataSize, | ||
| 3095 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 3096 | |||
| 3097 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 3098 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 3099 | ID3D12VideoMotionVectorHeap * This, | ||
| 3100 | _In_ REFGUID guid, | ||
| 3101 | _In_opt_ const IUnknown *pData); | ||
| 3102 | |||
| 3103 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 3104 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 3105 | ID3D12VideoMotionVectorHeap * This, | ||
| 3106 | _In_z_ LPCWSTR Name); | ||
| 3107 | |||
| 3108 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 3109 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 3110 | ID3D12VideoMotionVectorHeap * This, | ||
| 3111 | REFIID riid, | ||
| 3112 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 3113 | |||
| 3114 | DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetDesc) | ||
| 3115 | #if !defined(_WIN32) | ||
| 3116 | D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 3117 | ID3D12VideoMotionVectorHeap * This); | ||
| 3118 | |||
| 3119 | #else | ||
| 3120 | D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 3121 | ID3D12VideoMotionVectorHeap * This, | ||
| 3122 | D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC * RetVal); | ||
| 3123 | |||
| 3124 | #endif | ||
| 3125 | |||
| 3126 | DECLSPEC_XFGVIRT(ID3D12VideoMotionVectorHeap, GetProtectedResourceSession) | ||
| 3127 | HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( | ||
| 3128 | ID3D12VideoMotionVectorHeap * This, | ||
| 3129 | REFIID riid, | ||
| 3130 | _COM_Outptr_opt_ void **ppProtectedSession); | ||
| 3131 | |||
| 3132 | END_INTERFACE | ||
| 3133 | } ID3D12VideoMotionVectorHeapVtbl; | ||
| 3134 | |||
| 3135 | interface ID3D12VideoMotionVectorHeap | ||
| 3136 | { | ||
| 3137 | CONST_VTBL struct ID3D12VideoMotionVectorHeapVtbl *lpVtbl; | ||
| 3138 | }; | ||
| 3139 | |||
| 3140 | |||
| 3141 | |||
| 3142 | #ifdef COBJMACROS | ||
| 3143 | |||
| 3144 | |||
| 3145 | #define ID3D12VideoMotionVectorHeap_QueryInterface(This,riid,ppvObject) \ | ||
| 3146 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 3147 | |||
| 3148 | #define ID3D12VideoMotionVectorHeap_AddRef(This) \ | ||
| 3149 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 3150 | |||
| 3151 | #define ID3D12VideoMotionVectorHeap_Release(This) \ | ||
| 3152 | ( (This)->lpVtbl -> Release(This) ) | ||
| 3153 | |||
| 3154 | |||
| 3155 | #define ID3D12VideoMotionVectorHeap_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 3156 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 3157 | |||
| 3158 | #define ID3D12VideoMotionVectorHeap_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 3159 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 3160 | |||
| 3161 | #define ID3D12VideoMotionVectorHeap_SetPrivateDataInterface(This,guid,pData) \ | ||
| 3162 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 3163 | |||
| 3164 | #define ID3D12VideoMotionVectorHeap_SetName(This,Name) \ | ||
| 3165 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 3166 | |||
| 3167 | |||
| 3168 | #define ID3D12VideoMotionVectorHeap_GetDevice(This,riid,ppvDevice) \ | ||
| 3169 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 3170 | |||
| 3171 | |||
| 3172 | #if !defined(_WIN32) | ||
| 3173 | |||
| 3174 | #define ID3D12VideoMotionVectorHeap_GetDesc(This) \ | ||
| 3175 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 3176 | #else | ||
| 3177 | #define ID3D12VideoMotionVectorHeap_GetDesc(This,RetVal) \ | ||
| 3178 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 3179 | #endif | ||
| 3180 | |||
| 3181 | #define ID3D12VideoMotionVectorHeap_GetProtectedResourceSession(This,riid,ppProtectedSession) \ | ||
| 3182 | ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) | ||
| 3183 | |||
| 3184 | #endif /* COBJMACROS */ | ||
| 3185 | |||
| 3186 | |||
| 3187 | #endif /* C style interface */ | ||
| 3188 | |||
| 3189 | |||
| 3190 | |||
| 3191 | |||
| 3192 | #endif /* __ID3D12VideoMotionVectorHeap_INTERFACE_DEFINED__ */ | ||
| 3193 | |||
| 3194 | |||
| 3195 | #ifndef __ID3D12VideoDevice1_INTERFACE_DEFINED__ | ||
| 3196 | #define __ID3D12VideoDevice1_INTERFACE_DEFINED__ | ||
| 3197 | |||
| 3198 | /* interface ID3D12VideoDevice1 */ | ||
| 3199 | /* [unique][local][object][uuid] */ | ||
| 3200 | |||
| 3201 | |||
| 3202 | EXTERN_C const IID IID_ID3D12VideoDevice1; | ||
| 3203 | |||
| 3204 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 3205 | |||
| 3206 | MIDL_INTERFACE("981611AD-A144-4C83-9890-F30E26D658AB") | ||
| 3207 | ID3D12VideoDevice1 : public ID3D12VideoDevice | ||
| 3208 | { | ||
| 3209 | public: | ||
| 3210 | virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionEstimator( | ||
| 3211 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc, | ||
| 3212 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 3213 | _In_ REFIID riid, | ||
| 3214 | _COM_Outptr_ void **ppVideoMotionEstimator) = 0; | ||
| 3215 | |||
| 3216 | virtual HRESULT STDMETHODCALLTYPE CreateVideoMotionVectorHeap( | ||
| 3217 | _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc, | ||
| 3218 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 3219 | _In_ REFIID riid, | ||
| 3220 | _COM_Outptr_ void **ppVideoMotionVectorHeap) = 0; | ||
| 3221 | |||
| 3222 | }; | ||
| 3223 | |||
| 3224 | |||
| 3225 | #else /* C style interface */ | ||
| 3226 | |||
| 3227 | typedef struct ID3D12VideoDevice1Vtbl | ||
| 3228 | { | ||
| 3229 | BEGIN_INTERFACE | ||
| 3230 | |||
| 3231 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 3232 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 3233 | ID3D12VideoDevice1 * This, | ||
| 3234 | REFIID riid, | ||
| 3235 | _COM_Outptr_ void **ppvObject); | ||
| 3236 | |||
| 3237 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 3238 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 3239 | ID3D12VideoDevice1 * This); | ||
| 3240 | |||
| 3241 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 3242 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 3243 | ID3D12VideoDevice1 * This); | ||
| 3244 | |||
| 3245 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport) | ||
| 3246 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 3247 | ID3D12VideoDevice1 * This, | ||
| 3248 | D3D12_FEATURE_VIDEO FeatureVideo, | ||
| 3249 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 3250 | UINT FeatureSupportDataSize); | ||
| 3251 | |||
| 3252 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder) | ||
| 3253 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( | ||
| 3254 | ID3D12VideoDevice1 * This, | ||
| 3255 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 3256 | _In_ REFIID riid, | ||
| 3257 | _COM_Outptr_ void **ppVideoDecoder); | ||
| 3258 | |||
| 3259 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap) | ||
| 3260 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( | ||
| 3261 | ID3D12VideoDevice1 * This, | ||
| 3262 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 3263 | _In_ REFIID riid, | ||
| 3264 | _COM_Outptr_ void **ppVideoDecoderHeap); | ||
| 3265 | |||
| 3266 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor) | ||
| 3267 | HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( | ||
| 3268 | ID3D12VideoDevice1 * This, | ||
| 3269 | UINT NodeMask, | ||
| 3270 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 3271 | UINT NumInputStreamDescs, | ||
| 3272 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 3273 | _In_ REFIID riid, | ||
| 3274 | _COM_Outptr_ void **ppVideoProcessor); | ||
| 3275 | |||
| 3276 | DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator) | ||
| 3277 | HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )( | ||
| 3278 | ID3D12VideoDevice1 * This, | ||
| 3279 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc, | ||
| 3280 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 3281 | _In_ REFIID riid, | ||
| 3282 | _COM_Outptr_ void **ppVideoMotionEstimator); | ||
| 3283 | |||
| 3284 | DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap) | ||
| 3285 | HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )( | ||
| 3286 | ID3D12VideoDevice1 * This, | ||
| 3287 | _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc, | ||
| 3288 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 3289 | _In_ REFIID riid, | ||
| 3290 | _COM_Outptr_ void **ppVideoMotionVectorHeap); | ||
| 3291 | |||
| 3292 | END_INTERFACE | ||
| 3293 | } ID3D12VideoDevice1Vtbl; | ||
| 3294 | |||
| 3295 | interface ID3D12VideoDevice1 | ||
| 3296 | { | ||
| 3297 | CONST_VTBL struct ID3D12VideoDevice1Vtbl *lpVtbl; | ||
| 3298 | }; | ||
| 3299 | |||
| 3300 | |||
| 3301 | |||
| 3302 | #ifdef COBJMACROS | ||
| 3303 | |||
| 3304 | |||
| 3305 | #define ID3D12VideoDevice1_QueryInterface(This,riid,ppvObject) \ | ||
| 3306 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 3307 | |||
| 3308 | #define ID3D12VideoDevice1_AddRef(This) \ | ||
| 3309 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 3310 | |||
| 3311 | #define ID3D12VideoDevice1_Release(This) \ | ||
| 3312 | ( (This)->lpVtbl -> Release(This) ) | ||
| 3313 | |||
| 3314 | |||
| 3315 | #define ID3D12VideoDevice1_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 3316 | ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 3317 | |||
| 3318 | #define ID3D12VideoDevice1_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ | ||
| 3319 | ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) | ||
| 3320 | |||
| 3321 | #define ID3D12VideoDevice1_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ | ||
| 3322 | ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) | ||
| 3323 | |||
| 3324 | #define ID3D12VideoDevice1_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ | ||
| 3325 | ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) | ||
| 3326 | |||
| 3327 | |||
| 3328 | #define ID3D12VideoDevice1_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \ | ||
| 3329 | ( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) ) | ||
| 3330 | |||
| 3331 | #define ID3D12VideoDevice1_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \ | ||
| 3332 | ( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) ) | ||
| 3333 | |||
| 3334 | #endif /* COBJMACROS */ | ||
| 3335 | |||
| 3336 | |||
| 3337 | #endif /* C style interface */ | ||
| 3338 | |||
| 3339 | |||
| 3340 | |||
| 3341 | |||
| 3342 | #endif /* __ID3D12VideoDevice1_INTERFACE_DEFINED__ */ | ||
| 3343 | |||
| 3344 | |||
| 3345 | /* interface __MIDL_itf_d3d12video_0000_0011 */ | ||
| 3346 | /* [local] */ | ||
| 3347 | |||
| 3348 | typedef struct D3D12_RESOURCE_COORDINATE | ||
| 3349 | { | ||
| 3350 | UINT64 X; | ||
| 3351 | UINT Y; | ||
| 3352 | UINT Z; | ||
| 3353 | UINT SubresourceIndex; | ||
| 3354 | } D3D12_RESOURCE_COORDINATE; | ||
| 3355 | |||
| 3356 | typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT | ||
| 3357 | { | ||
| 3358 | ID3D12VideoMotionVectorHeap *pMotionVectorHeap; | ||
| 3359 | } D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT; | ||
| 3360 | |||
| 3361 | typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT | ||
| 3362 | { | ||
| 3363 | ID3D12Resource *pInputTexture2D; | ||
| 3364 | UINT InputSubresourceIndex; | ||
| 3365 | ID3D12Resource *pReferenceTexture2D; | ||
| 3366 | UINT ReferenceSubresourceIndex; | ||
| 3367 | ID3D12VideoMotionVectorHeap *pHintMotionVectorHeap; | ||
| 3368 | } D3D12_VIDEO_MOTION_ESTIMATOR_INPUT; | ||
| 3369 | |||
| 3370 | typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT | ||
| 3371 | { | ||
| 3372 | ID3D12Resource *pMotionVectorTexture2D; | ||
| 3373 | D3D12_RESOURCE_COORDINATE MotionVectorCoordinate; | ||
| 3374 | } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT; | ||
| 3375 | |||
| 3376 | typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT | ||
| 3377 | { | ||
| 3378 | ID3D12VideoMotionVectorHeap *pMotionVectorHeap; | ||
| 3379 | UINT PixelWidth; | ||
| 3380 | UINT PixelHeight; | ||
| 3381 | } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT; | ||
| 3382 | |||
| 3383 | |||
| 3384 | |||
| 3385 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_c_ifspec; | ||
| 3386 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0011_v0_0_s_ifspec; | ||
| 3387 | |||
| 3388 | #ifndef __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ | ||
| 3389 | #define __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ | ||
| 3390 | |||
| 3391 | /* interface ID3D12VideoEncodeCommandList */ | ||
| 3392 | /* [unique][local][object][uuid] */ | ||
| 3393 | |||
| 3394 | |||
| 3395 | EXTERN_C const IID IID_ID3D12VideoEncodeCommandList; | ||
| 3396 | |||
| 3397 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 3398 | |||
| 3399 | MIDL_INTERFACE("8455293A-0CBD-4831-9B39-FBDBAB724723") | ||
| 3400 | ID3D12VideoEncodeCommandList : public ID3D12CommandList | ||
| 3401 | { | ||
| 3402 | public: | ||
| 3403 | virtual HRESULT STDMETHODCALLTYPE Close( void) = 0; | ||
| 3404 | |||
| 3405 | virtual HRESULT STDMETHODCALLTYPE Reset( | ||
| 3406 | _In_ ID3D12CommandAllocator *pAllocator) = 0; | ||
| 3407 | |||
| 3408 | virtual void STDMETHODCALLTYPE ClearState( void) = 0; | ||
| 3409 | |||
| 3410 | virtual void STDMETHODCALLTYPE ResourceBarrier( | ||
| 3411 | _In_ UINT NumBarriers, | ||
| 3412 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers) = 0; | ||
| 3413 | |||
| 3414 | virtual void STDMETHODCALLTYPE DiscardResource( | ||
| 3415 | _In_ ID3D12Resource *pResource, | ||
| 3416 | _In_opt_ const D3D12_DISCARD_REGION *pRegion) = 0; | ||
| 3417 | |||
| 3418 | virtual void STDMETHODCALLTYPE BeginQuery( | ||
| 3419 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 3420 | _In_ D3D12_QUERY_TYPE Type, | ||
| 3421 | _In_ UINT Index) = 0; | ||
| 3422 | |||
| 3423 | virtual void STDMETHODCALLTYPE EndQuery( | ||
| 3424 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 3425 | _In_ D3D12_QUERY_TYPE Type, | ||
| 3426 | _In_ UINT Index) = 0; | ||
| 3427 | |||
| 3428 | virtual void STDMETHODCALLTYPE ResolveQueryData( | ||
| 3429 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 3430 | _In_ D3D12_QUERY_TYPE Type, | ||
| 3431 | _In_ UINT StartIndex, | ||
| 3432 | _In_ UINT NumQueries, | ||
| 3433 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 3434 | _In_ UINT64 AlignedDestinationBufferOffset) = 0; | ||
| 3435 | |||
| 3436 | virtual void STDMETHODCALLTYPE SetPredication( | ||
| 3437 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 3438 | _In_ UINT64 AlignedBufferOffset, | ||
| 3439 | _In_ D3D12_PREDICATION_OP Operation) = 0; | ||
| 3440 | |||
| 3441 | virtual void STDMETHODCALLTYPE SetMarker( | ||
| 3442 | UINT Metadata, | ||
| 3443 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 3444 | UINT Size) = 0; | ||
| 3445 | |||
| 3446 | virtual void STDMETHODCALLTYPE BeginEvent( | ||
| 3447 | UINT Metadata, | ||
| 3448 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 3449 | UINT Size) = 0; | ||
| 3450 | |||
| 3451 | virtual void STDMETHODCALLTYPE EndEvent( void) = 0; | ||
| 3452 | |||
| 3453 | virtual void STDMETHODCALLTYPE EstimateMotion( | ||
| 3454 | _In_ ID3D12VideoMotionEstimator *pMotionEstimator, | ||
| 3455 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments, | ||
| 3456 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments) = 0; | ||
| 3457 | |||
| 3458 | virtual void STDMETHODCALLTYPE ResolveMotionVectorHeap( | ||
| 3459 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments, | ||
| 3460 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments) = 0; | ||
| 3461 | |||
| 3462 | virtual void STDMETHODCALLTYPE WriteBufferImmediate( | ||
| 3463 | UINT Count, | ||
| 3464 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 3465 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes) = 0; | ||
| 3466 | |||
| 3467 | virtual void STDMETHODCALLTYPE SetProtectedResourceSession( | ||
| 3468 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0; | ||
| 3469 | |||
| 3470 | }; | ||
| 3471 | |||
| 3472 | |||
| 3473 | #else /* C style interface */ | ||
| 3474 | |||
| 3475 | typedef struct ID3D12VideoEncodeCommandListVtbl | ||
| 3476 | { | ||
| 3477 | BEGIN_INTERFACE | ||
| 3478 | |||
| 3479 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 3480 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 3481 | ID3D12VideoEncodeCommandList * This, | ||
| 3482 | REFIID riid, | ||
| 3483 | _COM_Outptr_ void **ppvObject); | ||
| 3484 | |||
| 3485 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 3486 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 3487 | ID3D12VideoEncodeCommandList * This); | ||
| 3488 | |||
| 3489 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 3490 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 3491 | ID3D12VideoEncodeCommandList * This); | ||
| 3492 | |||
| 3493 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 3494 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 3495 | ID3D12VideoEncodeCommandList * This, | ||
| 3496 | _In_ REFGUID guid, | ||
| 3497 | _Inout_ UINT *pDataSize, | ||
| 3498 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 3499 | |||
| 3500 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 3501 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 3502 | ID3D12VideoEncodeCommandList * This, | ||
| 3503 | _In_ REFGUID guid, | ||
| 3504 | _In_ UINT DataSize, | ||
| 3505 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 3506 | |||
| 3507 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 3508 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 3509 | ID3D12VideoEncodeCommandList * This, | ||
| 3510 | _In_ REFGUID guid, | ||
| 3511 | _In_opt_ const IUnknown *pData); | ||
| 3512 | |||
| 3513 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 3514 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 3515 | ID3D12VideoEncodeCommandList * This, | ||
| 3516 | _In_z_ LPCWSTR Name); | ||
| 3517 | |||
| 3518 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 3519 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 3520 | ID3D12VideoEncodeCommandList * This, | ||
| 3521 | REFIID riid, | ||
| 3522 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 3523 | |||
| 3524 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 3525 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 3526 | ID3D12VideoEncodeCommandList * This); | ||
| 3527 | |||
| 3528 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) | ||
| 3529 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 3530 | ID3D12VideoEncodeCommandList * This); | ||
| 3531 | |||
| 3532 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) | ||
| 3533 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 3534 | ID3D12VideoEncodeCommandList * This, | ||
| 3535 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 3536 | |||
| 3537 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) | ||
| 3538 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 3539 | ID3D12VideoEncodeCommandList * This); | ||
| 3540 | |||
| 3541 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) | ||
| 3542 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 3543 | ID3D12VideoEncodeCommandList * This, | ||
| 3544 | _In_ UINT NumBarriers, | ||
| 3545 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 3546 | |||
| 3547 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) | ||
| 3548 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 3549 | ID3D12VideoEncodeCommandList * This, | ||
| 3550 | _In_ ID3D12Resource *pResource, | ||
| 3551 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 3552 | |||
| 3553 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) | ||
| 3554 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 3555 | ID3D12VideoEncodeCommandList * This, | ||
| 3556 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 3557 | _In_ D3D12_QUERY_TYPE Type, | ||
| 3558 | _In_ UINT Index); | ||
| 3559 | |||
| 3560 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) | ||
| 3561 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 3562 | ID3D12VideoEncodeCommandList * This, | ||
| 3563 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 3564 | _In_ D3D12_QUERY_TYPE Type, | ||
| 3565 | _In_ UINT Index); | ||
| 3566 | |||
| 3567 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) | ||
| 3568 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 3569 | ID3D12VideoEncodeCommandList * This, | ||
| 3570 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 3571 | _In_ D3D12_QUERY_TYPE Type, | ||
| 3572 | _In_ UINT StartIndex, | ||
| 3573 | _In_ UINT NumQueries, | ||
| 3574 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 3575 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 3576 | |||
| 3577 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication) | ||
| 3578 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 3579 | ID3D12VideoEncodeCommandList * This, | ||
| 3580 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 3581 | _In_ UINT64 AlignedBufferOffset, | ||
| 3582 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 3583 | |||
| 3584 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) | ||
| 3585 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 3586 | ID3D12VideoEncodeCommandList * This, | ||
| 3587 | UINT Metadata, | ||
| 3588 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 3589 | UINT Size); | ||
| 3590 | |||
| 3591 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) | ||
| 3592 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 3593 | ID3D12VideoEncodeCommandList * This, | ||
| 3594 | UINT Metadata, | ||
| 3595 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 3596 | UINT Size); | ||
| 3597 | |||
| 3598 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) | ||
| 3599 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 3600 | ID3D12VideoEncodeCommandList * This); | ||
| 3601 | |||
| 3602 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) | ||
| 3603 | void ( STDMETHODCALLTYPE *EstimateMotion )( | ||
| 3604 | ID3D12VideoEncodeCommandList * This, | ||
| 3605 | _In_ ID3D12VideoMotionEstimator *pMotionEstimator, | ||
| 3606 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments, | ||
| 3607 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments); | ||
| 3608 | |||
| 3609 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap) | ||
| 3610 | void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )( | ||
| 3611 | ID3D12VideoEncodeCommandList * This, | ||
| 3612 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments, | ||
| 3613 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments); | ||
| 3614 | |||
| 3615 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate) | ||
| 3616 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 3617 | ID3D12VideoEncodeCommandList * This, | ||
| 3618 | UINT Count, | ||
| 3619 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 3620 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 3621 | |||
| 3622 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession) | ||
| 3623 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 3624 | ID3D12VideoEncodeCommandList * This, | ||
| 3625 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 3626 | |||
| 3627 | END_INTERFACE | ||
| 3628 | } ID3D12VideoEncodeCommandListVtbl; | ||
| 3629 | |||
| 3630 | interface ID3D12VideoEncodeCommandList | ||
| 3631 | { | ||
| 3632 | CONST_VTBL struct ID3D12VideoEncodeCommandListVtbl *lpVtbl; | ||
| 3633 | }; | ||
| 3634 | |||
| 3635 | |||
| 3636 | |||
| 3637 | #ifdef COBJMACROS | ||
| 3638 | |||
| 3639 | |||
| 3640 | #define ID3D12VideoEncodeCommandList_QueryInterface(This,riid,ppvObject) \ | ||
| 3641 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 3642 | |||
| 3643 | #define ID3D12VideoEncodeCommandList_AddRef(This) \ | ||
| 3644 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 3645 | |||
| 3646 | #define ID3D12VideoEncodeCommandList_Release(This) \ | ||
| 3647 | ( (This)->lpVtbl -> Release(This) ) | ||
| 3648 | |||
| 3649 | |||
| 3650 | #define ID3D12VideoEncodeCommandList_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 3651 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 3652 | |||
| 3653 | #define ID3D12VideoEncodeCommandList_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 3654 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 3655 | |||
| 3656 | #define ID3D12VideoEncodeCommandList_SetPrivateDataInterface(This,guid,pData) \ | ||
| 3657 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 3658 | |||
| 3659 | #define ID3D12VideoEncodeCommandList_SetName(This,Name) \ | ||
| 3660 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 3661 | |||
| 3662 | |||
| 3663 | #define ID3D12VideoEncodeCommandList_GetDevice(This,riid,ppvDevice) \ | ||
| 3664 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 3665 | |||
| 3666 | |||
| 3667 | #define ID3D12VideoEncodeCommandList_GetType(This) \ | ||
| 3668 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 3669 | |||
| 3670 | |||
| 3671 | #define ID3D12VideoEncodeCommandList_Close(This) \ | ||
| 3672 | ( (This)->lpVtbl -> Close(This) ) | ||
| 3673 | |||
| 3674 | #define ID3D12VideoEncodeCommandList_Reset(This,pAllocator) \ | ||
| 3675 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 3676 | |||
| 3677 | #define ID3D12VideoEncodeCommandList_ClearState(This) \ | ||
| 3678 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 3679 | |||
| 3680 | #define ID3D12VideoEncodeCommandList_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 3681 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 3682 | |||
| 3683 | #define ID3D12VideoEncodeCommandList_DiscardResource(This,pResource,pRegion) \ | ||
| 3684 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 3685 | |||
| 3686 | #define ID3D12VideoEncodeCommandList_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 3687 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 3688 | |||
| 3689 | #define ID3D12VideoEncodeCommandList_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 3690 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 3691 | |||
| 3692 | #define ID3D12VideoEncodeCommandList_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 3693 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 3694 | |||
| 3695 | #define ID3D12VideoEncodeCommandList_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 3696 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 3697 | |||
| 3698 | #define ID3D12VideoEncodeCommandList_SetMarker(This,Metadata,pData,Size) \ | ||
| 3699 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 3700 | |||
| 3701 | #define ID3D12VideoEncodeCommandList_BeginEvent(This,Metadata,pData,Size) \ | ||
| 3702 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 3703 | |||
| 3704 | #define ID3D12VideoEncodeCommandList_EndEvent(This) \ | ||
| 3705 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 3706 | |||
| 3707 | #define ID3D12VideoEncodeCommandList_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ | ||
| 3708 | ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) | ||
| 3709 | |||
| 3710 | #define ID3D12VideoEncodeCommandList_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ | ||
| 3711 | ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) | ||
| 3712 | |||
| 3713 | #define ID3D12VideoEncodeCommandList_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 3714 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 3715 | |||
| 3716 | #define ID3D12VideoEncodeCommandList_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 3717 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 3718 | |||
| 3719 | #endif /* COBJMACROS */ | ||
| 3720 | |||
| 3721 | |||
| 3722 | #endif /* C style interface */ | ||
| 3723 | |||
| 3724 | |||
| 3725 | |||
| 3726 | |||
| 3727 | #endif /* __ID3D12VideoEncodeCommandList_INTERFACE_DEFINED__ */ | ||
| 3728 | |||
| 3729 | |||
| 3730 | /* interface __MIDL_itf_d3d12video_0000_0012 */ | ||
| 3731 | /* [local] */ | ||
| 3732 | |||
| 3733 | typedef | ||
| 3734 | enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS | ||
| 3735 | { | ||
| 3736 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0, | ||
| 3737 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x1 | ||
| 3738 | } D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS; | ||
| 3739 | |||
| 3740 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS ) | ||
| 3741 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES | ||
| 3742 | { | ||
| 3743 | UINT NodeIndex; | ||
| 3744 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
| 3745 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; | ||
| 3746 | } D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES; | ||
| 3747 | |||
| 3748 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES | ||
| 3749 | { | ||
| 3750 | UINT NodeIndex; | ||
| 3751 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; | ||
| 3752 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES; | ||
| 3753 | |||
| 3754 | typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES | ||
| 3755 | { | ||
| 3756 | UINT NodeIndex; | ||
| 3757 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; | ||
| 3758 | } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES; | ||
| 3759 | |||
| 3760 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1 | ||
| 3761 | { | ||
| 3762 | D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; | ||
| 3763 | BOOL Protected; | ||
| 3764 | UINT64 MemoryPoolL0Size; | ||
| 3765 | UINT64 MemoryPoolL1Size; | ||
| 3766 | } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1; | ||
| 3767 | |||
| 3768 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1 | ||
| 3769 | { | ||
| 3770 | UINT NodeMask; | ||
| 3771 | const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc; | ||
| 3772 | UINT NumInputStreamDescs; | ||
| 3773 | const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; | ||
| 3774 | BOOL Protected; | ||
| 3775 | UINT64 MemoryPoolL0Size; | ||
| 3776 | UINT64 MemoryPoolL1Size; | ||
| 3777 | } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1; | ||
| 3778 | |||
| 3779 | typedef | ||
| 3780 | enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE | ||
| 3781 | { | ||
| 3782 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0, | ||
| 3783 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, | ||
| 3784 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2, | ||
| 3785 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3, | ||
| 3786 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4, | ||
| 3787 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5, | ||
| 3788 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 6 | ||
| 3789 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE; | ||
| 3790 | |||
| 3791 | typedef | ||
| 3792 | enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE | ||
| 3793 | { | ||
| 3794 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0, | ||
| 3795 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1, | ||
| 3796 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2, | ||
| 3797 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3, | ||
| 3798 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4, | ||
| 3799 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5, | ||
| 3800 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6, | ||
| 3801 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7, | ||
| 3802 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8, | ||
| 3803 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9, | ||
| 3804 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 10 | ||
| 3805 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE; | ||
| 3806 | |||
| 3807 | typedef | ||
| 3808 | enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS | ||
| 3809 | { | ||
| 3810 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0, | ||
| 3811 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x1, | ||
| 3812 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x2 | ||
| 3813 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS; | ||
| 3814 | |||
| 3815 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS ) | ||
| 3816 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT | ||
| 3817 | { | ||
| 3818 | UINT NodeIndex; | ||
| 3819 | UINT CommandCount; | ||
| 3820 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT; | ||
| 3821 | |||
| 3822 | typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO | ||
| 3823 | { | ||
| 3824 | GUID CommandId; | ||
| 3825 | LPCWSTR Name; | ||
| 3826 | D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags; | ||
| 3827 | } D3D12_VIDEO_EXTENSION_COMMAND_INFO; | ||
| 3828 | |||
| 3829 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS | ||
| 3830 | { | ||
| 3831 | UINT NodeIndex; | ||
| 3832 | UINT CommandCount; | ||
| 3833 | _Field_size_full_(CommandCount) D3D12_VIDEO_EXTENSION_COMMAND_INFO *pCommandInfos; | ||
| 3834 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS; | ||
| 3835 | |||
| 3836 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT | ||
| 3837 | { | ||
| 3838 | GUID CommandId; | ||
| 3839 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; | ||
| 3840 | UINT ParameterCount; | ||
| 3841 | UINT ParameterPacking; | ||
| 3842 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT; | ||
| 3843 | |||
| 3844 | typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO | ||
| 3845 | { | ||
| 3846 | LPCWSTR Name; | ||
| 3847 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type; | ||
| 3848 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags; | ||
| 3849 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO; | ||
| 3850 | |||
| 3851 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS | ||
| 3852 | { | ||
| 3853 | GUID CommandId; | ||
| 3854 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; | ||
| 3855 | UINT ParameterCount; | ||
| 3856 | _Field_size_full_(ParameterCount) D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO *pParameterInfos; | ||
| 3857 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS; | ||
| 3858 | |||
| 3859 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT | ||
| 3860 | { | ||
| 3861 | UINT NodeIndex; | ||
| 3862 | GUID CommandId; | ||
| 3863 | _Field_size_bytes_full_opt_(InputDataSizeInBytes) const void *pInputData; | ||
| 3864 | SIZE_T InputDataSizeInBytes; | ||
| 3865 | _Field_size_bytes_full_opt_(OutputDataSizeInBytes) void *pOutputData; | ||
| 3866 | SIZE_T OutputDataSizeInBytes; | ||
| 3867 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT; | ||
| 3868 | |||
| 3869 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE | ||
| 3870 | { | ||
| 3871 | UINT NodeIndex; | ||
| 3872 | GUID CommandId; | ||
| 3873 | _Field_size_bytes_full_(CreationParametersDataSizeInBytes) const void *pCreationParameters; | ||
| 3874 | SIZE_T CreationParametersSizeInBytes; | ||
| 3875 | UINT64 MemoryPoolL0Size; | ||
| 3876 | UINT64 MemoryPoolL1Size; | ||
| 3877 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE; | ||
| 3878 | |||
| 3879 | typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC | ||
| 3880 | { | ||
| 3881 | UINT NodeMask; | ||
| 3882 | GUID CommandId; | ||
| 3883 | } D3D12_VIDEO_EXTENSION_COMMAND_DESC; | ||
| 3884 | |||
| 3885 | |||
| 3886 | |||
| 3887 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_c_ifspec; | ||
| 3888 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0012_v0_0_s_ifspec; | ||
| 3889 | |||
| 3890 | #ifndef __ID3D12VideoDecoder1_INTERFACE_DEFINED__ | ||
| 3891 | #define __ID3D12VideoDecoder1_INTERFACE_DEFINED__ | ||
| 3892 | |||
| 3893 | /* interface ID3D12VideoDecoder1 */ | ||
| 3894 | /* [unique][local][object][uuid] */ | ||
| 3895 | |||
| 3896 | |||
| 3897 | EXTERN_C const IID IID_ID3D12VideoDecoder1; | ||
| 3898 | |||
| 3899 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 3900 | |||
| 3901 | MIDL_INTERFACE("79A2E5FB-CCD2-469A-9FDE-195D10951F7E") | ||
| 3902 | ID3D12VideoDecoder1 : public ID3D12VideoDecoder | ||
| 3903 | { | ||
| 3904 | public: | ||
| 3905 | virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( | ||
| 3906 | REFIID riid, | ||
| 3907 | _COM_Outptr_opt_ void **ppProtectedSession) = 0; | ||
| 3908 | |||
| 3909 | }; | ||
| 3910 | |||
| 3911 | |||
| 3912 | #else /* C style interface */ | ||
| 3913 | |||
| 3914 | typedef struct ID3D12VideoDecoder1Vtbl | ||
| 3915 | { | ||
| 3916 | BEGIN_INTERFACE | ||
| 3917 | |||
| 3918 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 3919 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 3920 | ID3D12VideoDecoder1 * This, | ||
| 3921 | REFIID riid, | ||
| 3922 | _COM_Outptr_ void **ppvObject); | ||
| 3923 | |||
| 3924 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 3925 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 3926 | ID3D12VideoDecoder1 * This); | ||
| 3927 | |||
| 3928 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 3929 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 3930 | ID3D12VideoDecoder1 * This); | ||
| 3931 | |||
| 3932 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 3933 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 3934 | ID3D12VideoDecoder1 * This, | ||
| 3935 | _In_ REFGUID guid, | ||
| 3936 | _Inout_ UINT *pDataSize, | ||
| 3937 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 3938 | |||
| 3939 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 3940 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 3941 | ID3D12VideoDecoder1 * This, | ||
| 3942 | _In_ REFGUID guid, | ||
| 3943 | _In_ UINT DataSize, | ||
| 3944 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 3945 | |||
| 3946 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 3947 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 3948 | ID3D12VideoDecoder1 * This, | ||
| 3949 | _In_ REFGUID guid, | ||
| 3950 | _In_opt_ const IUnknown *pData); | ||
| 3951 | |||
| 3952 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 3953 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 3954 | ID3D12VideoDecoder1 * This, | ||
| 3955 | _In_z_ LPCWSTR Name); | ||
| 3956 | |||
| 3957 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 3958 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 3959 | ID3D12VideoDecoder1 * This, | ||
| 3960 | REFIID riid, | ||
| 3961 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 3962 | |||
| 3963 | DECLSPEC_XFGVIRT(ID3D12VideoDecoder, GetDesc) | ||
| 3964 | #if !defined(_WIN32) | ||
| 3965 | D3D12_VIDEO_DECODER_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 3966 | ID3D12VideoDecoder1 * This); | ||
| 3967 | |||
| 3968 | #else | ||
| 3969 | D3D12_VIDEO_DECODER_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 3970 | ID3D12VideoDecoder1 * This, | ||
| 3971 | D3D12_VIDEO_DECODER_DESC * RetVal); | ||
| 3972 | |||
| 3973 | #endif | ||
| 3974 | |||
| 3975 | DECLSPEC_XFGVIRT(ID3D12VideoDecoder1, GetProtectedResourceSession) | ||
| 3976 | HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( | ||
| 3977 | ID3D12VideoDecoder1 * This, | ||
| 3978 | REFIID riid, | ||
| 3979 | _COM_Outptr_opt_ void **ppProtectedSession); | ||
| 3980 | |||
| 3981 | END_INTERFACE | ||
| 3982 | } ID3D12VideoDecoder1Vtbl; | ||
| 3983 | |||
| 3984 | interface ID3D12VideoDecoder1 | ||
| 3985 | { | ||
| 3986 | CONST_VTBL struct ID3D12VideoDecoder1Vtbl *lpVtbl; | ||
| 3987 | }; | ||
| 3988 | |||
| 3989 | |||
| 3990 | |||
| 3991 | #ifdef COBJMACROS | ||
| 3992 | |||
| 3993 | |||
| 3994 | #define ID3D12VideoDecoder1_QueryInterface(This,riid,ppvObject) \ | ||
| 3995 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 3996 | |||
| 3997 | #define ID3D12VideoDecoder1_AddRef(This) \ | ||
| 3998 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 3999 | |||
| 4000 | #define ID3D12VideoDecoder1_Release(This) \ | ||
| 4001 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4002 | |||
| 4003 | |||
| 4004 | #define ID3D12VideoDecoder1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 4005 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 4006 | |||
| 4007 | #define ID3D12VideoDecoder1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 4008 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 4009 | |||
| 4010 | #define ID3D12VideoDecoder1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 4011 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 4012 | |||
| 4013 | #define ID3D12VideoDecoder1_SetName(This,Name) \ | ||
| 4014 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 4015 | |||
| 4016 | |||
| 4017 | #define ID3D12VideoDecoder1_GetDevice(This,riid,ppvDevice) \ | ||
| 4018 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 4019 | |||
| 4020 | |||
| 4021 | #if !defined(_WIN32) | ||
| 4022 | |||
| 4023 | #define ID3D12VideoDecoder1_GetDesc(This) \ | ||
| 4024 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 4025 | #else | ||
| 4026 | #define ID3D12VideoDecoder1_GetDesc(This,RetVal) \ | ||
| 4027 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 4028 | #endif | ||
| 4029 | |||
| 4030 | |||
| 4031 | #define ID3D12VideoDecoder1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ | ||
| 4032 | ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) | ||
| 4033 | |||
| 4034 | #endif /* COBJMACROS */ | ||
| 4035 | |||
| 4036 | |||
| 4037 | #endif /* C style interface */ | ||
| 4038 | |||
| 4039 | |||
| 4040 | |||
| 4041 | |||
| 4042 | #endif /* __ID3D12VideoDecoder1_INTERFACE_DEFINED__ */ | ||
| 4043 | |||
| 4044 | |||
| 4045 | #ifndef __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ | ||
| 4046 | #define __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ | ||
| 4047 | |||
| 4048 | /* interface ID3D12VideoDecoderHeap1 */ | ||
| 4049 | /* [unique][local][object][uuid] */ | ||
| 4050 | |||
| 4051 | |||
| 4052 | EXTERN_C const IID IID_ID3D12VideoDecoderHeap1; | ||
| 4053 | |||
| 4054 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 4055 | |||
| 4056 | MIDL_INTERFACE("DA1D98C5-539F-41B2-BF6B-1198A03B6D26") | ||
| 4057 | ID3D12VideoDecoderHeap1 : public ID3D12VideoDecoderHeap | ||
| 4058 | { | ||
| 4059 | public: | ||
| 4060 | virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( | ||
| 4061 | REFIID riid, | ||
| 4062 | _COM_Outptr_opt_ void **ppProtectedSession) = 0; | ||
| 4063 | |||
| 4064 | }; | ||
| 4065 | |||
| 4066 | |||
| 4067 | #else /* C style interface */ | ||
| 4068 | |||
| 4069 | typedef struct ID3D12VideoDecoderHeap1Vtbl | ||
| 4070 | { | ||
| 4071 | BEGIN_INTERFACE | ||
| 4072 | |||
| 4073 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 4074 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 4075 | ID3D12VideoDecoderHeap1 * This, | ||
| 4076 | REFIID riid, | ||
| 4077 | _COM_Outptr_ void **ppvObject); | ||
| 4078 | |||
| 4079 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 4080 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 4081 | ID3D12VideoDecoderHeap1 * This); | ||
| 4082 | |||
| 4083 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 4084 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 4085 | ID3D12VideoDecoderHeap1 * This); | ||
| 4086 | |||
| 4087 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 4088 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 4089 | ID3D12VideoDecoderHeap1 * This, | ||
| 4090 | _In_ REFGUID guid, | ||
| 4091 | _Inout_ UINT *pDataSize, | ||
| 4092 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 4093 | |||
| 4094 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 4095 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 4096 | ID3D12VideoDecoderHeap1 * This, | ||
| 4097 | _In_ REFGUID guid, | ||
| 4098 | _In_ UINT DataSize, | ||
| 4099 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 4100 | |||
| 4101 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 4102 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 4103 | ID3D12VideoDecoderHeap1 * This, | ||
| 4104 | _In_ REFGUID guid, | ||
| 4105 | _In_opt_ const IUnknown *pData); | ||
| 4106 | |||
| 4107 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 4108 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 4109 | ID3D12VideoDecoderHeap1 * This, | ||
| 4110 | _In_z_ LPCWSTR Name); | ||
| 4111 | |||
| 4112 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 4113 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 4114 | ID3D12VideoDecoderHeap1 * This, | ||
| 4115 | REFIID riid, | ||
| 4116 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 4117 | |||
| 4118 | DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap, GetDesc) | ||
| 4119 | #if !defined(_WIN32) | ||
| 4120 | D3D12_VIDEO_DECODER_HEAP_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 4121 | ID3D12VideoDecoderHeap1 * This); | ||
| 4122 | |||
| 4123 | #else | ||
| 4124 | D3D12_VIDEO_DECODER_HEAP_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 4125 | ID3D12VideoDecoderHeap1 * This, | ||
| 4126 | D3D12_VIDEO_DECODER_HEAP_DESC * RetVal); | ||
| 4127 | |||
| 4128 | #endif | ||
| 4129 | |||
| 4130 | DECLSPEC_XFGVIRT(ID3D12VideoDecoderHeap1, GetProtectedResourceSession) | ||
| 4131 | HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( | ||
| 4132 | ID3D12VideoDecoderHeap1 * This, | ||
| 4133 | REFIID riid, | ||
| 4134 | _COM_Outptr_opt_ void **ppProtectedSession); | ||
| 4135 | |||
| 4136 | END_INTERFACE | ||
| 4137 | } ID3D12VideoDecoderHeap1Vtbl; | ||
| 4138 | |||
| 4139 | interface ID3D12VideoDecoderHeap1 | ||
| 4140 | { | ||
| 4141 | CONST_VTBL struct ID3D12VideoDecoderHeap1Vtbl *lpVtbl; | ||
| 4142 | }; | ||
| 4143 | |||
| 4144 | |||
| 4145 | |||
| 4146 | #ifdef COBJMACROS | ||
| 4147 | |||
| 4148 | |||
| 4149 | #define ID3D12VideoDecoderHeap1_QueryInterface(This,riid,ppvObject) \ | ||
| 4150 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4151 | |||
| 4152 | #define ID3D12VideoDecoderHeap1_AddRef(This) \ | ||
| 4153 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4154 | |||
| 4155 | #define ID3D12VideoDecoderHeap1_Release(This) \ | ||
| 4156 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4157 | |||
| 4158 | |||
| 4159 | #define ID3D12VideoDecoderHeap1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 4160 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 4161 | |||
| 4162 | #define ID3D12VideoDecoderHeap1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 4163 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 4164 | |||
| 4165 | #define ID3D12VideoDecoderHeap1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 4166 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 4167 | |||
| 4168 | #define ID3D12VideoDecoderHeap1_SetName(This,Name) \ | ||
| 4169 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 4170 | |||
| 4171 | |||
| 4172 | #define ID3D12VideoDecoderHeap1_GetDevice(This,riid,ppvDevice) \ | ||
| 4173 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 4174 | |||
| 4175 | |||
| 4176 | #if !defined(_WIN32) | ||
| 4177 | |||
| 4178 | #define ID3D12VideoDecoderHeap1_GetDesc(This) \ | ||
| 4179 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 4180 | #else | ||
| 4181 | #define ID3D12VideoDecoderHeap1_GetDesc(This,RetVal) \ | ||
| 4182 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 4183 | #endif | ||
| 4184 | |||
| 4185 | |||
| 4186 | #define ID3D12VideoDecoderHeap1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ | ||
| 4187 | ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) | ||
| 4188 | |||
| 4189 | #endif /* COBJMACROS */ | ||
| 4190 | |||
| 4191 | |||
| 4192 | #endif /* C style interface */ | ||
| 4193 | |||
| 4194 | |||
| 4195 | |||
| 4196 | |||
| 4197 | #endif /* __ID3D12VideoDecoderHeap1_INTERFACE_DEFINED__ */ | ||
| 4198 | |||
| 4199 | |||
| 4200 | #ifndef __ID3D12VideoProcessor1_INTERFACE_DEFINED__ | ||
| 4201 | #define __ID3D12VideoProcessor1_INTERFACE_DEFINED__ | ||
| 4202 | |||
| 4203 | /* interface ID3D12VideoProcessor1 */ | ||
| 4204 | /* [unique][local][object][uuid] */ | ||
| 4205 | |||
| 4206 | |||
| 4207 | EXTERN_C const IID IID_ID3D12VideoProcessor1; | ||
| 4208 | |||
| 4209 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 4210 | |||
| 4211 | MIDL_INTERFACE("F3CFE615-553F-425C-86D8-EE8C1B1FB01C") | ||
| 4212 | ID3D12VideoProcessor1 : public ID3D12VideoProcessor | ||
| 4213 | { | ||
| 4214 | public: | ||
| 4215 | virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( | ||
| 4216 | REFIID riid, | ||
| 4217 | _COM_Outptr_opt_ void **ppProtectedSession) = 0; | ||
| 4218 | |||
| 4219 | }; | ||
| 4220 | |||
| 4221 | |||
| 4222 | #else /* C style interface */ | ||
| 4223 | |||
| 4224 | typedef struct ID3D12VideoProcessor1Vtbl | ||
| 4225 | { | ||
| 4226 | BEGIN_INTERFACE | ||
| 4227 | |||
| 4228 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 4229 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 4230 | ID3D12VideoProcessor1 * This, | ||
| 4231 | REFIID riid, | ||
| 4232 | _COM_Outptr_ void **ppvObject); | ||
| 4233 | |||
| 4234 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 4235 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 4236 | ID3D12VideoProcessor1 * This); | ||
| 4237 | |||
| 4238 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 4239 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 4240 | ID3D12VideoProcessor1 * This); | ||
| 4241 | |||
| 4242 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 4243 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 4244 | ID3D12VideoProcessor1 * This, | ||
| 4245 | _In_ REFGUID guid, | ||
| 4246 | _Inout_ UINT *pDataSize, | ||
| 4247 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 4248 | |||
| 4249 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 4250 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 4251 | ID3D12VideoProcessor1 * This, | ||
| 4252 | _In_ REFGUID guid, | ||
| 4253 | _In_ UINT DataSize, | ||
| 4254 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 4255 | |||
| 4256 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 4257 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 4258 | ID3D12VideoProcessor1 * This, | ||
| 4259 | _In_ REFGUID guid, | ||
| 4260 | _In_opt_ const IUnknown *pData); | ||
| 4261 | |||
| 4262 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 4263 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 4264 | ID3D12VideoProcessor1 * This, | ||
| 4265 | _In_z_ LPCWSTR Name); | ||
| 4266 | |||
| 4267 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 4268 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 4269 | ID3D12VideoProcessor1 * This, | ||
| 4270 | REFIID riid, | ||
| 4271 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 4272 | |||
| 4273 | DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNodeMask) | ||
| 4274 | UINT ( STDMETHODCALLTYPE *GetNodeMask )( | ||
| 4275 | ID3D12VideoProcessor1 * This); | ||
| 4276 | |||
| 4277 | DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetNumInputStreamDescs) | ||
| 4278 | UINT ( STDMETHODCALLTYPE *GetNumInputStreamDescs )( | ||
| 4279 | ID3D12VideoProcessor1 * This); | ||
| 4280 | |||
| 4281 | DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetInputStreamDescs) | ||
| 4282 | HRESULT ( STDMETHODCALLTYPE *GetInputStreamDescs )( | ||
| 4283 | ID3D12VideoProcessor1 * This, | ||
| 4284 | UINT NumInputStreamDescs, | ||
| 4285 | _Out_writes_(NumInputStreamDescs) D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs); | ||
| 4286 | |||
| 4287 | DECLSPEC_XFGVIRT(ID3D12VideoProcessor, GetOutputStreamDesc) | ||
| 4288 | #if !defined(_WIN32) | ||
| 4289 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC ( STDMETHODCALLTYPE *GetOutputStreamDesc )( | ||
| 4290 | ID3D12VideoProcessor1 * This); | ||
| 4291 | |||
| 4292 | #else | ||
| 4293 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *( STDMETHODCALLTYPE *GetOutputStreamDesc )( | ||
| 4294 | ID3D12VideoProcessor1 * This, | ||
| 4295 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC * RetVal); | ||
| 4296 | |||
| 4297 | #endif | ||
| 4298 | |||
| 4299 | DECLSPEC_XFGVIRT(ID3D12VideoProcessor1, GetProtectedResourceSession) | ||
| 4300 | HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( | ||
| 4301 | ID3D12VideoProcessor1 * This, | ||
| 4302 | REFIID riid, | ||
| 4303 | _COM_Outptr_opt_ void **ppProtectedSession); | ||
| 4304 | |||
| 4305 | END_INTERFACE | ||
| 4306 | } ID3D12VideoProcessor1Vtbl; | ||
| 4307 | |||
| 4308 | interface ID3D12VideoProcessor1 | ||
| 4309 | { | ||
| 4310 | CONST_VTBL struct ID3D12VideoProcessor1Vtbl *lpVtbl; | ||
| 4311 | }; | ||
| 4312 | |||
| 4313 | |||
| 4314 | |||
| 4315 | #ifdef COBJMACROS | ||
| 4316 | |||
| 4317 | |||
| 4318 | #define ID3D12VideoProcessor1_QueryInterface(This,riid,ppvObject) \ | ||
| 4319 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4320 | |||
| 4321 | #define ID3D12VideoProcessor1_AddRef(This) \ | ||
| 4322 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4323 | |||
| 4324 | #define ID3D12VideoProcessor1_Release(This) \ | ||
| 4325 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4326 | |||
| 4327 | |||
| 4328 | #define ID3D12VideoProcessor1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 4329 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 4330 | |||
| 4331 | #define ID3D12VideoProcessor1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 4332 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 4333 | |||
| 4334 | #define ID3D12VideoProcessor1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 4335 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 4336 | |||
| 4337 | #define ID3D12VideoProcessor1_SetName(This,Name) \ | ||
| 4338 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 4339 | |||
| 4340 | |||
| 4341 | #define ID3D12VideoProcessor1_GetDevice(This,riid,ppvDevice) \ | ||
| 4342 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 4343 | |||
| 4344 | |||
| 4345 | |||
| 4346 | #define ID3D12VideoProcessor1_GetNodeMask(This) \ | ||
| 4347 | ( (This)->lpVtbl -> GetNodeMask(This) ) | ||
| 4348 | |||
| 4349 | #define ID3D12VideoProcessor1_GetNumInputStreamDescs(This) \ | ||
| 4350 | ( (This)->lpVtbl -> GetNumInputStreamDescs(This) ) | ||
| 4351 | |||
| 4352 | #define ID3D12VideoProcessor1_GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) \ | ||
| 4353 | ( (This)->lpVtbl -> GetInputStreamDescs(This,NumInputStreamDescs,pInputStreamDescs) ) | ||
| 4354 | #if !defined(_WIN32) | ||
| 4355 | |||
| 4356 | #define ID3D12VideoProcessor1_GetOutputStreamDesc(This) \ | ||
| 4357 | ( (This)->lpVtbl -> GetOutputStreamDesc(This) ) | ||
| 4358 | #else | ||
| 4359 | #define ID3D12VideoProcessor1_GetOutputStreamDesc(This,RetVal) \ | ||
| 4360 | ( (This)->lpVtbl -> GetOutputStreamDesc(This,RetVal) ) | ||
| 4361 | #endif | ||
| 4362 | |||
| 4363 | |||
| 4364 | #define ID3D12VideoProcessor1_GetProtectedResourceSession(This,riid,ppProtectedSession) \ | ||
| 4365 | ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) | ||
| 4366 | |||
| 4367 | #endif /* COBJMACROS */ | ||
| 4368 | |||
| 4369 | |||
| 4370 | #endif /* C style interface */ | ||
| 4371 | |||
| 4372 | |||
| 4373 | |||
| 4374 | |||
| 4375 | #endif /* __ID3D12VideoProcessor1_INTERFACE_DEFINED__ */ | ||
| 4376 | |||
| 4377 | |||
| 4378 | #ifndef __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ | ||
| 4379 | #define __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ | ||
| 4380 | |||
| 4381 | /* interface ID3D12VideoExtensionCommand */ | ||
| 4382 | /* [unique][local][object][uuid] */ | ||
| 4383 | |||
| 4384 | |||
| 4385 | EXTERN_C const IID IID_ID3D12VideoExtensionCommand; | ||
| 4386 | |||
| 4387 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 4388 | |||
| 4389 | MIDL_INTERFACE("554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4") | ||
| 4390 | ID3D12VideoExtensionCommand : public ID3D12Pageable | ||
| 4391 | { | ||
| 4392 | public: | ||
| 4393 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 4394 | virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC STDMETHODCALLTYPE GetDesc( void) = 0; | ||
| 4395 | #else | ||
| 4396 | virtual D3D12_VIDEO_EXTENSION_COMMAND_DESC *STDMETHODCALLTYPE GetDesc( | ||
| 4397 | D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal) = 0; | ||
| 4398 | #endif | ||
| 4399 | |||
| 4400 | virtual HRESULT STDMETHODCALLTYPE GetProtectedResourceSession( | ||
| 4401 | REFIID riid, | ||
| 4402 | _COM_Outptr_opt_ void **ppProtectedSession) = 0; | ||
| 4403 | |||
| 4404 | }; | ||
| 4405 | |||
| 4406 | |||
| 4407 | #else /* C style interface */ | ||
| 4408 | |||
| 4409 | typedef struct ID3D12VideoExtensionCommandVtbl | ||
| 4410 | { | ||
| 4411 | BEGIN_INTERFACE | ||
| 4412 | |||
| 4413 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 4414 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 4415 | ID3D12VideoExtensionCommand * This, | ||
| 4416 | REFIID riid, | ||
| 4417 | _COM_Outptr_ void **ppvObject); | ||
| 4418 | |||
| 4419 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 4420 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 4421 | ID3D12VideoExtensionCommand * This); | ||
| 4422 | |||
| 4423 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 4424 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 4425 | ID3D12VideoExtensionCommand * This); | ||
| 4426 | |||
| 4427 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 4428 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 4429 | ID3D12VideoExtensionCommand * This, | ||
| 4430 | _In_ REFGUID guid, | ||
| 4431 | _Inout_ UINT *pDataSize, | ||
| 4432 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 4433 | |||
| 4434 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 4435 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 4436 | ID3D12VideoExtensionCommand * This, | ||
| 4437 | _In_ REFGUID guid, | ||
| 4438 | _In_ UINT DataSize, | ||
| 4439 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 4440 | |||
| 4441 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 4442 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 4443 | ID3D12VideoExtensionCommand * This, | ||
| 4444 | _In_ REFGUID guid, | ||
| 4445 | _In_opt_ const IUnknown *pData); | ||
| 4446 | |||
| 4447 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 4448 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 4449 | ID3D12VideoExtensionCommand * This, | ||
| 4450 | _In_z_ LPCWSTR Name); | ||
| 4451 | |||
| 4452 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 4453 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 4454 | ID3D12VideoExtensionCommand * This, | ||
| 4455 | REFIID riid, | ||
| 4456 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 4457 | |||
| 4458 | DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetDesc) | ||
| 4459 | #if !defined(_WIN32) | ||
| 4460 | D3D12_VIDEO_EXTENSION_COMMAND_DESC ( STDMETHODCALLTYPE *GetDesc )( | ||
| 4461 | ID3D12VideoExtensionCommand * This); | ||
| 4462 | |||
| 4463 | #else | ||
| 4464 | D3D12_VIDEO_EXTENSION_COMMAND_DESC *( STDMETHODCALLTYPE *GetDesc )( | ||
| 4465 | ID3D12VideoExtensionCommand * This, | ||
| 4466 | D3D12_VIDEO_EXTENSION_COMMAND_DESC * RetVal); | ||
| 4467 | |||
| 4468 | #endif | ||
| 4469 | |||
| 4470 | DECLSPEC_XFGVIRT(ID3D12VideoExtensionCommand, GetProtectedResourceSession) | ||
| 4471 | HRESULT ( STDMETHODCALLTYPE *GetProtectedResourceSession )( | ||
| 4472 | ID3D12VideoExtensionCommand * This, | ||
| 4473 | REFIID riid, | ||
| 4474 | _COM_Outptr_opt_ void **ppProtectedSession); | ||
| 4475 | |||
| 4476 | END_INTERFACE | ||
| 4477 | } ID3D12VideoExtensionCommandVtbl; | ||
| 4478 | |||
| 4479 | interface ID3D12VideoExtensionCommand | ||
| 4480 | { | ||
| 4481 | CONST_VTBL struct ID3D12VideoExtensionCommandVtbl *lpVtbl; | ||
| 4482 | }; | ||
| 4483 | |||
| 4484 | |||
| 4485 | |||
| 4486 | #ifdef COBJMACROS | ||
| 4487 | |||
| 4488 | |||
| 4489 | #define ID3D12VideoExtensionCommand_QueryInterface(This,riid,ppvObject) \ | ||
| 4490 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4491 | |||
| 4492 | #define ID3D12VideoExtensionCommand_AddRef(This) \ | ||
| 4493 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4494 | |||
| 4495 | #define ID3D12VideoExtensionCommand_Release(This) \ | ||
| 4496 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4497 | |||
| 4498 | |||
| 4499 | #define ID3D12VideoExtensionCommand_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 4500 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 4501 | |||
| 4502 | #define ID3D12VideoExtensionCommand_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 4503 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 4504 | |||
| 4505 | #define ID3D12VideoExtensionCommand_SetPrivateDataInterface(This,guid,pData) \ | ||
| 4506 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 4507 | |||
| 4508 | #define ID3D12VideoExtensionCommand_SetName(This,Name) \ | ||
| 4509 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 4510 | |||
| 4511 | |||
| 4512 | #define ID3D12VideoExtensionCommand_GetDevice(This,riid,ppvDevice) \ | ||
| 4513 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 4514 | |||
| 4515 | |||
| 4516 | #if !defined(_WIN32) | ||
| 4517 | |||
| 4518 | #define ID3D12VideoExtensionCommand_GetDesc(This) \ | ||
| 4519 | ( (This)->lpVtbl -> GetDesc(This) ) | ||
| 4520 | #else | ||
| 4521 | #define ID3D12VideoExtensionCommand_GetDesc(This,RetVal) \ | ||
| 4522 | ( (This)->lpVtbl -> GetDesc(This,RetVal) ) | ||
| 4523 | #endif | ||
| 4524 | |||
| 4525 | #define ID3D12VideoExtensionCommand_GetProtectedResourceSession(This,riid,ppProtectedSession) \ | ||
| 4526 | ( (This)->lpVtbl -> GetProtectedResourceSession(This,riid,ppProtectedSession) ) | ||
| 4527 | |||
| 4528 | #endif /* COBJMACROS */ | ||
| 4529 | |||
| 4530 | |||
| 4531 | #endif /* C style interface */ | ||
| 4532 | |||
| 4533 | |||
| 4534 | |||
| 4535 | |||
| 4536 | #endif /* __ID3D12VideoExtensionCommand_INTERFACE_DEFINED__ */ | ||
| 4537 | |||
| 4538 | |||
| 4539 | #ifndef __ID3D12VideoDevice2_INTERFACE_DEFINED__ | ||
| 4540 | #define __ID3D12VideoDevice2_INTERFACE_DEFINED__ | ||
| 4541 | |||
| 4542 | /* interface ID3D12VideoDevice2 */ | ||
| 4543 | /* [unique][local][object][uuid] */ | ||
| 4544 | |||
| 4545 | |||
| 4546 | EXTERN_C const IID IID_ID3D12VideoDevice2; | ||
| 4547 | |||
| 4548 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 4549 | |||
| 4550 | MIDL_INTERFACE("F019AC49-F838-4A95-9B17-579437C8F513") | ||
| 4551 | ID3D12VideoDevice2 : public ID3D12VideoDevice1 | ||
| 4552 | { | ||
| 4553 | public: | ||
| 4554 | virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder1( | ||
| 4555 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 4556 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4557 | _In_ REFIID riid, | ||
| 4558 | _COM_Outptr_ void **ppVideoDecoder) = 0; | ||
| 4559 | |||
| 4560 | virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoderHeap1( | ||
| 4561 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 4562 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4563 | _In_ REFIID riid, | ||
| 4564 | _COM_Outptr_ void **ppVideoDecoderHeap) = 0; | ||
| 4565 | |||
| 4566 | virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor1( | ||
| 4567 | UINT NodeMask, | ||
| 4568 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 4569 | UINT NumInputStreamDescs, | ||
| 4570 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 4571 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4572 | _In_ REFIID riid, | ||
| 4573 | _COM_Outptr_ void **ppVideoProcessor) = 0; | ||
| 4574 | |||
| 4575 | virtual HRESULT STDMETHODCALLTYPE CreateVideoExtensionCommand( | ||
| 4576 | _In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc, | ||
| 4577 | _In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters, | ||
| 4578 | SIZE_T CreationParametersDataSizeInBytes, | ||
| 4579 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4580 | _In_ REFIID riid, | ||
| 4581 | _COM_Outptr_ void **ppVideoExtensionCommand) = 0; | ||
| 4582 | |||
| 4583 | virtual HRESULT STDMETHODCALLTYPE ExecuteExtensionCommand( | ||
| 4584 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 4585 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 4586 | SIZE_T ExecutionParametersSizeInBytes, | ||
| 4587 | _Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData, | ||
| 4588 | SIZE_T OutputDataSizeInBytes) = 0; | ||
| 4589 | |||
| 4590 | }; | ||
| 4591 | |||
| 4592 | |||
| 4593 | #else /* C style interface */ | ||
| 4594 | |||
| 4595 | typedef struct ID3D12VideoDevice2Vtbl | ||
| 4596 | { | ||
| 4597 | BEGIN_INTERFACE | ||
| 4598 | |||
| 4599 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 4600 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 4601 | ID3D12VideoDevice2 * This, | ||
| 4602 | REFIID riid, | ||
| 4603 | _COM_Outptr_ void **ppvObject); | ||
| 4604 | |||
| 4605 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 4606 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 4607 | ID3D12VideoDevice2 * This); | ||
| 4608 | |||
| 4609 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 4610 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 4611 | ID3D12VideoDevice2 * This); | ||
| 4612 | |||
| 4613 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport) | ||
| 4614 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 4615 | ID3D12VideoDevice2 * This, | ||
| 4616 | D3D12_FEATURE_VIDEO FeatureVideo, | ||
| 4617 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 4618 | UINT FeatureSupportDataSize); | ||
| 4619 | |||
| 4620 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder) | ||
| 4621 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( | ||
| 4622 | ID3D12VideoDevice2 * This, | ||
| 4623 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 4624 | _In_ REFIID riid, | ||
| 4625 | _COM_Outptr_ void **ppVideoDecoder); | ||
| 4626 | |||
| 4627 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap) | ||
| 4628 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( | ||
| 4629 | ID3D12VideoDevice2 * This, | ||
| 4630 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 4631 | _In_ REFIID riid, | ||
| 4632 | _COM_Outptr_ void **ppVideoDecoderHeap); | ||
| 4633 | |||
| 4634 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor) | ||
| 4635 | HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( | ||
| 4636 | ID3D12VideoDevice2 * This, | ||
| 4637 | UINT NodeMask, | ||
| 4638 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 4639 | UINT NumInputStreamDescs, | ||
| 4640 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 4641 | _In_ REFIID riid, | ||
| 4642 | _COM_Outptr_ void **ppVideoProcessor); | ||
| 4643 | |||
| 4644 | DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator) | ||
| 4645 | HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )( | ||
| 4646 | ID3D12VideoDevice2 * This, | ||
| 4647 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc, | ||
| 4648 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4649 | _In_ REFIID riid, | ||
| 4650 | _COM_Outptr_ void **ppVideoMotionEstimator); | ||
| 4651 | |||
| 4652 | DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap) | ||
| 4653 | HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )( | ||
| 4654 | ID3D12VideoDevice2 * This, | ||
| 4655 | _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc, | ||
| 4656 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4657 | _In_ REFIID riid, | ||
| 4658 | _COM_Outptr_ void **ppVideoMotionVectorHeap); | ||
| 4659 | |||
| 4660 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1) | ||
| 4661 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )( | ||
| 4662 | ID3D12VideoDevice2 * This, | ||
| 4663 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 4664 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4665 | _In_ REFIID riid, | ||
| 4666 | _COM_Outptr_ void **ppVideoDecoder); | ||
| 4667 | |||
| 4668 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1) | ||
| 4669 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )( | ||
| 4670 | ID3D12VideoDevice2 * This, | ||
| 4671 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 4672 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4673 | _In_ REFIID riid, | ||
| 4674 | _COM_Outptr_ void **ppVideoDecoderHeap); | ||
| 4675 | |||
| 4676 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1) | ||
| 4677 | HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )( | ||
| 4678 | ID3D12VideoDevice2 * This, | ||
| 4679 | UINT NodeMask, | ||
| 4680 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 4681 | UINT NumInputStreamDescs, | ||
| 4682 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 4683 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4684 | _In_ REFIID riid, | ||
| 4685 | _COM_Outptr_ void **ppVideoProcessor); | ||
| 4686 | |||
| 4687 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand) | ||
| 4688 | HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )( | ||
| 4689 | ID3D12VideoDevice2 * This, | ||
| 4690 | _In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc, | ||
| 4691 | _In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters, | ||
| 4692 | SIZE_T CreationParametersDataSizeInBytes, | ||
| 4693 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 4694 | _In_ REFIID riid, | ||
| 4695 | _COM_Outptr_ void **ppVideoExtensionCommand); | ||
| 4696 | |||
| 4697 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand) | ||
| 4698 | HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 4699 | ID3D12VideoDevice2 * This, | ||
| 4700 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 4701 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 4702 | SIZE_T ExecutionParametersSizeInBytes, | ||
| 4703 | _Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData, | ||
| 4704 | SIZE_T OutputDataSizeInBytes); | ||
| 4705 | |||
| 4706 | END_INTERFACE | ||
| 4707 | } ID3D12VideoDevice2Vtbl; | ||
| 4708 | |||
| 4709 | interface ID3D12VideoDevice2 | ||
| 4710 | { | ||
| 4711 | CONST_VTBL struct ID3D12VideoDevice2Vtbl *lpVtbl; | ||
| 4712 | }; | ||
| 4713 | |||
| 4714 | |||
| 4715 | |||
| 4716 | #ifdef COBJMACROS | ||
| 4717 | |||
| 4718 | |||
| 4719 | #define ID3D12VideoDevice2_QueryInterface(This,riid,ppvObject) \ | ||
| 4720 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4721 | |||
| 4722 | #define ID3D12VideoDevice2_AddRef(This) \ | ||
| 4723 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4724 | |||
| 4725 | #define ID3D12VideoDevice2_Release(This) \ | ||
| 4726 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4727 | |||
| 4728 | |||
| 4729 | #define ID3D12VideoDevice2_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 4730 | ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 4731 | |||
| 4732 | #define ID3D12VideoDevice2_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ | ||
| 4733 | ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) | ||
| 4734 | |||
| 4735 | #define ID3D12VideoDevice2_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ | ||
| 4736 | ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) | ||
| 4737 | |||
| 4738 | #define ID3D12VideoDevice2_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ | ||
| 4739 | ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) | ||
| 4740 | |||
| 4741 | |||
| 4742 | #define ID3D12VideoDevice2_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \ | ||
| 4743 | ( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) ) | ||
| 4744 | |||
| 4745 | #define ID3D12VideoDevice2_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \ | ||
| 4746 | ( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) ) | ||
| 4747 | |||
| 4748 | |||
| 4749 | #define ID3D12VideoDevice2_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \ | ||
| 4750 | ( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) ) | ||
| 4751 | |||
| 4752 | #define ID3D12VideoDevice2_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \ | ||
| 4753 | ( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) ) | ||
| 4754 | |||
| 4755 | #define ID3D12VideoDevice2_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \ | ||
| 4756 | ( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) ) | ||
| 4757 | |||
| 4758 | #define ID3D12VideoDevice2_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \ | ||
| 4759 | ( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) ) | ||
| 4760 | |||
| 4761 | #define ID3D12VideoDevice2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \ | ||
| 4762 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) ) | ||
| 4763 | |||
| 4764 | #endif /* COBJMACROS */ | ||
| 4765 | |||
| 4766 | |||
| 4767 | #endif /* C style interface */ | ||
| 4768 | |||
| 4769 | |||
| 4770 | |||
| 4771 | |||
| 4772 | #endif /* __ID3D12VideoDevice2_INTERFACE_DEFINED__ */ | ||
| 4773 | |||
| 4774 | |||
| 4775 | #ifndef __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ | ||
| 4776 | #define __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ | ||
| 4777 | |||
| 4778 | /* interface ID3D12VideoDecodeCommandList2 */ | ||
| 4779 | /* [unique][local][object][uuid] */ | ||
| 4780 | |||
| 4781 | |||
| 4782 | EXTERN_C const IID IID_ID3D12VideoDecodeCommandList2; | ||
| 4783 | |||
| 4784 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 4785 | |||
| 4786 | MIDL_INTERFACE("6e120880-c114-4153-8036-d247051e1729") | ||
| 4787 | ID3D12VideoDecodeCommandList2 : public ID3D12VideoDecodeCommandList1 | ||
| 4788 | { | ||
| 4789 | public: | ||
| 4790 | virtual void STDMETHODCALLTYPE SetProtectedResourceSession( | ||
| 4791 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0; | ||
| 4792 | |||
| 4793 | virtual void STDMETHODCALLTYPE InitializeExtensionCommand( | ||
| 4794 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 4795 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 4796 | SIZE_T InitializationParametersSizeInBytes) = 0; | ||
| 4797 | |||
| 4798 | virtual void STDMETHODCALLTYPE ExecuteExtensionCommand( | ||
| 4799 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 4800 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 4801 | SIZE_T ExecutionParametersSizeInBytes) = 0; | ||
| 4802 | |||
| 4803 | }; | ||
| 4804 | |||
| 4805 | |||
| 4806 | #else /* C style interface */ | ||
| 4807 | |||
| 4808 | typedef struct ID3D12VideoDecodeCommandList2Vtbl | ||
| 4809 | { | ||
| 4810 | BEGIN_INTERFACE | ||
| 4811 | |||
| 4812 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 4813 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 4814 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4815 | REFIID riid, | ||
| 4816 | _COM_Outptr_ void **ppvObject); | ||
| 4817 | |||
| 4818 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 4819 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 4820 | ID3D12VideoDecodeCommandList2 * This); | ||
| 4821 | |||
| 4822 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 4823 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 4824 | ID3D12VideoDecodeCommandList2 * This); | ||
| 4825 | |||
| 4826 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 4827 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 4828 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4829 | _In_ REFGUID guid, | ||
| 4830 | _Inout_ UINT *pDataSize, | ||
| 4831 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 4832 | |||
| 4833 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 4834 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 4835 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4836 | _In_ REFGUID guid, | ||
| 4837 | _In_ UINT DataSize, | ||
| 4838 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 4839 | |||
| 4840 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 4841 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 4842 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4843 | _In_ REFGUID guid, | ||
| 4844 | _In_opt_ const IUnknown *pData); | ||
| 4845 | |||
| 4846 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 4847 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 4848 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4849 | _In_z_ LPCWSTR Name); | ||
| 4850 | |||
| 4851 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 4852 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 4853 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4854 | REFIID riid, | ||
| 4855 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 4856 | |||
| 4857 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 4858 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 4859 | ID3D12VideoDecodeCommandList2 * This); | ||
| 4860 | |||
| 4861 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close) | ||
| 4862 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 4863 | ID3D12VideoDecodeCommandList2 * This); | ||
| 4864 | |||
| 4865 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset) | ||
| 4866 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 4867 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4868 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 4869 | |||
| 4870 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState) | ||
| 4871 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 4872 | ID3D12VideoDecodeCommandList2 * This); | ||
| 4873 | |||
| 4874 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier) | ||
| 4875 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 4876 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4877 | _In_ UINT NumBarriers, | ||
| 4878 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 4879 | |||
| 4880 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource) | ||
| 4881 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 4882 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4883 | _In_ ID3D12Resource *pResource, | ||
| 4884 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 4885 | |||
| 4886 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery) | ||
| 4887 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 4888 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4889 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 4890 | _In_ D3D12_QUERY_TYPE Type, | ||
| 4891 | _In_ UINT Index); | ||
| 4892 | |||
| 4893 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery) | ||
| 4894 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 4895 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4896 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 4897 | _In_ D3D12_QUERY_TYPE Type, | ||
| 4898 | _In_ UINT Index); | ||
| 4899 | |||
| 4900 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData) | ||
| 4901 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 4902 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4903 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 4904 | _In_ D3D12_QUERY_TYPE Type, | ||
| 4905 | _In_ UINT StartIndex, | ||
| 4906 | _In_ UINT NumQueries, | ||
| 4907 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 4908 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 4909 | |||
| 4910 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication) | ||
| 4911 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 4912 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4913 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 4914 | _In_ UINT64 AlignedBufferOffset, | ||
| 4915 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 4916 | |||
| 4917 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker) | ||
| 4918 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 4919 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4920 | UINT Metadata, | ||
| 4921 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 4922 | UINT Size); | ||
| 4923 | |||
| 4924 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent) | ||
| 4925 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 4926 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4927 | UINT Metadata, | ||
| 4928 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 4929 | UINT Size); | ||
| 4930 | |||
| 4931 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent) | ||
| 4932 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 4933 | ID3D12VideoDecodeCommandList2 * This); | ||
| 4934 | |||
| 4935 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame) | ||
| 4936 | void ( STDMETHODCALLTYPE *DecodeFrame )( | ||
| 4937 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4938 | _In_ ID3D12VideoDecoder *pDecoder, | ||
| 4939 | _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 4940 | _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 4941 | |||
| 4942 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate) | ||
| 4943 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 4944 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4945 | UINT Count, | ||
| 4946 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 4947 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 4948 | |||
| 4949 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1) | ||
| 4950 | void ( STDMETHODCALLTYPE *DecodeFrame1 )( | ||
| 4951 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4952 | _In_ ID3D12VideoDecoder *pDecoder, | ||
| 4953 | _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, | ||
| 4954 | _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 4955 | |||
| 4956 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession) | ||
| 4957 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 4958 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4959 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 4960 | |||
| 4961 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand) | ||
| 4962 | void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( | ||
| 4963 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4964 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 4965 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 4966 | SIZE_T InitializationParametersSizeInBytes); | ||
| 4967 | |||
| 4968 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand) | ||
| 4969 | void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 4970 | ID3D12VideoDecodeCommandList2 * This, | ||
| 4971 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 4972 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 4973 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 4974 | |||
| 4975 | END_INTERFACE | ||
| 4976 | } ID3D12VideoDecodeCommandList2Vtbl; | ||
| 4977 | |||
| 4978 | interface ID3D12VideoDecodeCommandList2 | ||
| 4979 | { | ||
| 4980 | CONST_VTBL struct ID3D12VideoDecodeCommandList2Vtbl *lpVtbl; | ||
| 4981 | }; | ||
| 4982 | |||
| 4983 | |||
| 4984 | |||
| 4985 | #ifdef COBJMACROS | ||
| 4986 | |||
| 4987 | |||
| 4988 | #define ID3D12VideoDecodeCommandList2_QueryInterface(This,riid,ppvObject) \ | ||
| 4989 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 4990 | |||
| 4991 | #define ID3D12VideoDecodeCommandList2_AddRef(This) \ | ||
| 4992 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 4993 | |||
| 4994 | #define ID3D12VideoDecodeCommandList2_Release(This) \ | ||
| 4995 | ( (This)->lpVtbl -> Release(This) ) | ||
| 4996 | |||
| 4997 | |||
| 4998 | #define ID3D12VideoDecodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 4999 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5000 | |||
| 5001 | #define ID3D12VideoDecodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5002 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5003 | |||
| 5004 | #define ID3D12VideoDecodeCommandList2_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5005 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5006 | |||
| 5007 | #define ID3D12VideoDecodeCommandList2_SetName(This,Name) \ | ||
| 5008 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5009 | |||
| 5010 | |||
| 5011 | #define ID3D12VideoDecodeCommandList2_GetDevice(This,riid,ppvDevice) \ | ||
| 5012 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5013 | |||
| 5014 | |||
| 5015 | #define ID3D12VideoDecodeCommandList2_GetType(This) \ | ||
| 5016 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 5017 | |||
| 5018 | |||
| 5019 | #define ID3D12VideoDecodeCommandList2_Close(This) \ | ||
| 5020 | ( (This)->lpVtbl -> Close(This) ) | ||
| 5021 | |||
| 5022 | #define ID3D12VideoDecodeCommandList2_Reset(This,pAllocator) \ | ||
| 5023 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 5024 | |||
| 5025 | #define ID3D12VideoDecodeCommandList2_ClearState(This) \ | ||
| 5026 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 5027 | |||
| 5028 | #define ID3D12VideoDecodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 5029 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 5030 | |||
| 5031 | #define ID3D12VideoDecodeCommandList2_DiscardResource(This,pResource,pRegion) \ | ||
| 5032 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 5033 | |||
| 5034 | #define ID3D12VideoDecodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 5035 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 5036 | |||
| 5037 | #define ID3D12VideoDecodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 5038 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 5039 | |||
| 5040 | #define ID3D12VideoDecodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 5041 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 5042 | |||
| 5043 | #define ID3D12VideoDecodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 5044 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 5045 | |||
| 5046 | #define ID3D12VideoDecodeCommandList2_SetMarker(This,Metadata,pData,Size) \ | ||
| 5047 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 5048 | |||
| 5049 | #define ID3D12VideoDecodeCommandList2_BeginEvent(This,Metadata,pData,Size) \ | ||
| 5050 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 5051 | |||
| 5052 | #define ID3D12VideoDecodeCommandList2_EndEvent(This) \ | ||
| 5053 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 5054 | |||
| 5055 | #define ID3D12VideoDecodeCommandList2_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ | ||
| 5056 | ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) | ||
| 5057 | |||
| 5058 | #define ID3D12VideoDecodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 5059 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 5060 | |||
| 5061 | |||
| 5062 | #define ID3D12VideoDecodeCommandList2_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \ | ||
| 5063 | ( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) ) | ||
| 5064 | |||
| 5065 | |||
| 5066 | #define ID3D12VideoDecodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 5067 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 5068 | |||
| 5069 | #define ID3D12VideoDecodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ | ||
| 5070 | ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) | ||
| 5071 | |||
| 5072 | #define ID3D12VideoDecodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ | ||
| 5073 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) | ||
| 5074 | |||
| 5075 | #endif /* COBJMACROS */ | ||
| 5076 | |||
| 5077 | |||
| 5078 | #endif /* C style interface */ | ||
| 5079 | |||
| 5080 | |||
| 5081 | |||
| 5082 | |||
| 5083 | #endif /* __ID3D12VideoDecodeCommandList2_INTERFACE_DEFINED__ */ | ||
| 5084 | |||
| 5085 | |||
| 5086 | #ifndef __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__ | ||
| 5087 | #define __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__ | ||
| 5088 | |||
| 5089 | /* interface ID3D12VideoDecodeCommandList3 */ | ||
| 5090 | /* [unique][local][object][uuid] */ | ||
| 5091 | |||
| 5092 | |||
| 5093 | EXTERN_C const IID IID_ID3D12VideoDecodeCommandList3; | ||
| 5094 | |||
| 5095 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5096 | |||
| 5097 | MIDL_INTERFACE("2aee8c37-9562-42da-8abf-61efeb2e4513") | ||
| 5098 | ID3D12VideoDecodeCommandList3 : public ID3D12VideoDecodeCommandList2 | ||
| 5099 | { | ||
| 5100 | public: | ||
| 5101 | virtual void STDMETHODCALLTYPE Barrier( | ||
| 5102 | UINT32 NumBarrierGroups, | ||
| 5103 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0; | ||
| 5104 | |||
| 5105 | }; | ||
| 5106 | |||
| 5107 | |||
| 5108 | #else /* C style interface */ | ||
| 5109 | |||
| 5110 | typedef struct ID3D12VideoDecodeCommandList3Vtbl | ||
| 5111 | { | ||
| 5112 | BEGIN_INTERFACE | ||
| 5113 | |||
| 5114 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 5115 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 5116 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5117 | REFIID riid, | ||
| 5118 | _COM_Outptr_ void **ppvObject); | ||
| 5119 | |||
| 5120 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 5121 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 5122 | ID3D12VideoDecodeCommandList3 * This); | ||
| 5123 | |||
| 5124 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 5125 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 5126 | ID3D12VideoDecodeCommandList3 * This); | ||
| 5127 | |||
| 5128 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 5129 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 5130 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5131 | _In_ REFGUID guid, | ||
| 5132 | _Inout_ UINT *pDataSize, | ||
| 5133 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 5134 | |||
| 5135 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 5136 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 5137 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5138 | _In_ REFGUID guid, | ||
| 5139 | _In_ UINT DataSize, | ||
| 5140 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 5141 | |||
| 5142 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 5143 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 5144 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5145 | _In_ REFGUID guid, | ||
| 5146 | _In_opt_ const IUnknown *pData); | ||
| 5147 | |||
| 5148 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 5149 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 5150 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5151 | _In_z_ LPCWSTR Name); | ||
| 5152 | |||
| 5153 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 5154 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 5155 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5156 | REFIID riid, | ||
| 5157 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 5158 | |||
| 5159 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 5160 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 5161 | ID3D12VideoDecodeCommandList3 * This); | ||
| 5162 | |||
| 5163 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Close) | ||
| 5164 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 5165 | ID3D12VideoDecodeCommandList3 * This); | ||
| 5166 | |||
| 5167 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, Reset) | ||
| 5168 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 5169 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5170 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 5171 | |||
| 5172 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ClearState) | ||
| 5173 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 5174 | ID3D12VideoDecodeCommandList3 * This); | ||
| 5175 | |||
| 5176 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResourceBarrier) | ||
| 5177 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 5178 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5179 | _In_ UINT NumBarriers, | ||
| 5180 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 5181 | |||
| 5182 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DiscardResource) | ||
| 5183 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 5184 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5185 | _In_ ID3D12Resource *pResource, | ||
| 5186 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 5187 | |||
| 5188 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginQuery) | ||
| 5189 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 5190 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5191 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 5192 | _In_ D3D12_QUERY_TYPE Type, | ||
| 5193 | _In_ UINT Index); | ||
| 5194 | |||
| 5195 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndQuery) | ||
| 5196 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 5197 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5198 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 5199 | _In_ D3D12_QUERY_TYPE Type, | ||
| 5200 | _In_ UINT Index); | ||
| 5201 | |||
| 5202 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, ResolveQueryData) | ||
| 5203 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 5204 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5205 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 5206 | _In_ D3D12_QUERY_TYPE Type, | ||
| 5207 | _In_ UINT StartIndex, | ||
| 5208 | _In_ UINT NumQueries, | ||
| 5209 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 5210 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 5211 | |||
| 5212 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetPredication) | ||
| 5213 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 5214 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5215 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 5216 | _In_ UINT64 AlignedBufferOffset, | ||
| 5217 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 5218 | |||
| 5219 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, SetMarker) | ||
| 5220 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 5221 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5222 | UINT Metadata, | ||
| 5223 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 5224 | UINT Size); | ||
| 5225 | |||
| 5226 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, BeginEvent) | ||
| 5227 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 5228 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5229 | UINT Metadata, | ||
| 5230 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 5231 | UINT Size); | ||
| 5232 | |||
| 5233 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, EndEvent) | ||
| 5234 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 5235 | ID3D12VideoDecodeCommandList3 * This); | ||
| 5236 | |||
| 5237 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, DecodeFrame) | ||
| 5238 | void ( STDMETHODCALLTYPE *DecodeFrame )( | ||
| 5239 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5240 | _In_ ID3D12VideoDecoder *pDecoder, | ||
| 5241 | _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 5242 | _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 5243 | |||
| 5244 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList, WriteBufferImmediate) | ||
| 5245 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 5246 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5247 | UINT Count, | ||
| 5248 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 5249 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 5250 | |||
| 5251 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList1, DecodeFrame1) | ||
| 5252 | void ( STDMETHODCALLTYPE *DecodeFrame1 )( | ||
| 5253 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5254 | _In_ ID3D12VideoDecoder *pDecoder, | ||
| 5255 | _In_ const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, | ||
| 5256 | _In_ const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 5257 | |||
| 5258 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, SetProtectedResourceSession) | ||
| 5259 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 5260 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5261 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 5262 | |||
| 5263 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, InitializeExtensionCommand) | ||
| 5264 | void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( | ||
| 5265 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5266 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 5267 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 5268 | SIZE_T InitializationParametersSizeInBytes); | ||
| 5269 | |||
| 5270 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList2, ExecuteExtensionCommand) | ||
| 5271 | void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 5272 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5273 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 5274 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 5275 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 5276 | |||
| 5277 | DECLSPEC_XFGVIRT(ID3D12VideoDecodeCommandList3, Barrier) | ||
| 5278 | void ( STDMETHODCALLTYPE *Barrier )( | ||
| 5279 | ID3D12VideoDecodeCommandList3 * This, | ||
| 5280 | UINT32 NumBarrierGroups, | ||
| 5281 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); | ||
| 5282 | |||
| 5283 | END_INTERFACE | ||
| 5284 | } ID3D12VideoDecodeCommandList3Vtbl; | ||
| 5285 | |||
| 5286 | interface ID3D12VideoDecodeCommandList3 | ||
| 5287 | { | ||
| 5288 | CONST_VTBL struct ID3D12VideoDecodeCommandList3Vtbl *lpVtbl; | ||
| 5289 | }; | ||
| 5290 | |||
| 5291 | |||
| 5292 | |||
| 5293 | #ifdef COBJMACROS | ||
| 5294 | |||
| 5295 | |||
| 5296 | #define ID3D12VideoDecodeCommandList3_QueryInterface(This,riid,ppvObject) \ | ||
| 5297 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 5298 | |||
| 5299 | #define ID3D12VideoDecodeCommandList3_AddRef(This) \ | ||
| 5300 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 5301 | |||
| 5302 | #define ID3D12VideoDecodeCommandList3_Release(This) \ | ||
| 5303 | ( (This)->lpVtbl -> Release(This) ) | ||
| 5304 | |||
| 5305 | |||
| 5306 | #define ID3D12VideoDecodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 5307 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5308 | |||
| 5309 | #define ID3D12VideoDecodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5310 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5311 | |||
| 5312 | #define ID3D12VideoDecodeCommandList3_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5313 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5314 | |||
| 5315 | #define ID3D12VideoDecodeCommandList3_SetName(This,Name) \ | ||
| 5316 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5317 | |||
| 5318 | |||
| 5319 | #define ID3D12VideoDecodeCommandList3_GetDevice(This,riid,ppvDevice) \ | ||
| 5320 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5321 | |||
| 5322 | |||
| 5323 | #define ID3D12VideoDecodeCommandList3_GetType(This) \ | ||
| 5324 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 5325 | |||
| 5326 | |||
| 5327 | #define ID3D12VideoDecodeCommandList3_Close(This) \ | ||
| 5328 | ( (This)->lpVtbl -> Close(This) ) | ||
| 5329 | |||
| 5330 | #define ID3D12VideoDecodeCommandList3_Reset(This,pAllocator) \ | ||
| 5331 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 5332 | |||
| 5333 | #define ID3D12VideoDecodeCommandList3_ClearState(This) \ | ||
| 5334 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 5335 | |||
| 5336 | #define ID3D12VideoDecodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 5337 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 5338 | |||
| 5339 | #define ID3D12VideoDecodeCommandList3_DiscardResource(This,pResource,pRegion) \ | ||
| 5340 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 5341 | |||
| 5342 | #define ID3D12VideoDecodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 5343 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 5344 | |||
| 5345 | #define ID3D12VideoDecodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 5346 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 5347 | |||
| 5348 | #define ID3D12VideoDecodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 5349 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 5350 | |||
| 5351 | #define ID3D12VideoDecodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 5352 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 5353 | |||
| 5354 | #define ID3D12VideoDecodeCommandList3_SetMarker(This,Metadata,pData,Size) \ | ||
| 5355 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 5356 | |||
| 5357 | #define ID3D12VideoDecodeCommandList3_BeginEvent(This,Metadata,pData,Size) \ | ||
| 5358 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 5359 | |||
| 5360 | #define ID3D12VideoDecodeCommandList3_EndEvent(This) \ | ||
| 5361 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 5362 | |||
| 5363 | #define ID3D12VideoDecodeCommandList3_DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) \ | ||
| 5364 | ( (This)->lpVtbl -> DecodeFrame(This,pDecoder,pOutputArguments,pInputArguments) ) | ||
| 5365 | |||
| 5366 | #define ID3D12VideoDecodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 5367 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 5368 | |||
| 5369 | |||
| 5370 | #define ID3D12VideoDecodeCommandList3_DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) \ | ||
| 5371 | ( (This)->lpVtbl -> DecodeFrame1(This,pDecoder,pOutputArguments,pInputArguments) ) | ||
| 5372 | |||
| 5373 | |||
| 5374 | #define ID3D12VideoDecodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 5375 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 5376 | |||
| 5377 | #define ID3D12VideoDecodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ | ||
| 5378 | ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) | ||
| 5379 | |||
| 5380 | #define ID3D12VideoDecodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ | ||
| 5381 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) | ||
| 5382 | |||
| 5383 | |||
| 5384 | #define ID3D12VideoDecodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \ | ||
| 5385 | ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) | ||
| 5386 | |||
| 5387 | #endif /* COBJMACROS */ | ||
| 5388 | |||
| 5389 | |||
| 5390 | #endif /* C style interface */ | ||
| 5391 | |||
| 5392 | |||
| 5393 | |||
| 5394 | |||
| 5395 | #endif /* __ID3D12VideoDecodeCommandList3_INTERFACE_DEFINED__ */ | ||
| 5396 | |||
| 5397 | |||
| 5398 | #ifndef __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ | ||
| 5399 | #define __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ | ||
| 5400 | |||
| 5401 | /* interface ID3D12VideoProcessCommandList2 */ | ||
| 5402 | /* [unique][local][object][uuid] */ | ||
| 5403 | |||
| 5404 | |||
| 5405 | EXTERN_C const IID IID_ID3D12VideoProcessCommandList2; | ||
| 5406 | |||
| 5407 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5408 | |||
| 5409 | MIDL_INTERFACE("db525ae4-6ad6-473c-baa7-59b2e37082e4") | ||
| 5410 | ID3D12VideoProcessCommandList2 : public ID3D12VideoProcessCommandList1 | ||
| 5411 | { | ||
| 5412 | public: | ||
| 5413 | virtual void STDMETHODCALLTYPE SetProtectedResourceSession( | ||
| 5414 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession) = 0; | ||
| 5415 | |||
| 5416 | virtual void STDMETHODCALLTYPE InitializeExtensionCommand( | ||
| 5417 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 5418 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 5419 | SIZE_T InitializationParametersSizeInBytes) = 0; | ||
| 5420 | |||
| 5421 | virtual void STDMETHODCALLTYPE ExecuteExtensionCommand( | ||
| 5422 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 5423 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 5424 | SIZE_T ExecutionParametersSizeInBytes) = 0; | ||
| 5425 | |||
| 5426 | }; | ||
| 5427 | |||
| 5428 | |||
| 5429 | #else /* C style interface */ | ||
| 5430 | |||
| 5431 | typedef struct ID3D12VideoProcessCommandList2Vtbl | ||
| 5432 | { | ||
| 5433 | BEGIN_INTERFACE | ||
| 5434 | |||
| 5435 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 5436 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 5437 | ID3D12VideoProcessCommandList2 * This, | ||
| 5438 | REFIID riid, | ||
| 5439 | _COM_Outptr_ void **ppvObject); | ||
| 5440 | |||
| 5441 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 5442 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 5443 | ID3D12VideoProcessCommandList2 * This); | ||
| 5444 | |||
| 5445 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 5446 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 5447 | ID3D12VideoProcessCommandList2 * This); | ||
| 5448 | |||
| 5449 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 5450 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 5451 | ID3D12VideoProcessCommandList2 * This, | ||
| 5452 | _In_ REFGUID guid, | ||
| 5453 | _Inout_ UINT *pDataSize, | ||
| 5454 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 5455 | |||
| 5456 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 5457 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 5458 | ID3D12VideoProcessCommandList2 * This, | ||
| 5459 | _In_ REFGUID guid, | ||
| 5460 | _In_ UINT DataSize, | ||
| 5461 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 5462 | |||
| 5463 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 5464 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 5465 | ID3D12VideoProcessCommandList2 * This, | ||
| 5466 | _In_ REFGUID guid, | ||
| 5467 | _In_opt_ const IUnknown *pData); | ||
| 5468 | |||
| 5469 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 5470 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 5471 | ID3D12VideoProcessCommandList2 * This, | ||
| 5472 | _In_z_ LPCWSTR Name); | ||
| 5473 | |||
| 5474 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 5475 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 5476 | ID3D12VideoProcessCommandList2 * This, | ||
| 5477 | REFIID riid, | ||
| 5478 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 5479 | |||
| 5480 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 5481 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 5482 | ID3D12VideoProcessCommandList2 * This); | ||
| 5483 | |||
| 5484 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close) | ||
| 5485 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 5486 | ID3D12VideoProcessCommandList2 * This); | ||
| 5487 | |||
| 5488 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset) | ||
| 5489 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 5490 | ID3D12VideoProcessCommandList2 * This, | ||
| 5491 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 5492 | |||
| 5493 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState) | ||
| 5494 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 5495 | ID3D12VideoProcessCommandList2 * This); | ||
| 5496 | |||
| 5497 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier) | ||
| 5498 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 5499 | ID3D12VideoProcessCommandList2 * This, | ||
| 5500 | _In_ UINT NumBarriers, | ||
| 5501 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 5502 | |||
| 5503 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource) | ||
| 5504 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 5505 | ID3D12VideoProcessCommandList2 * This, | ||
| 5506 | _In_ ID3D12Resource *pResource, | ||
| 5507 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 5508 | |||
| 5509 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery) | ||
| 5510 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 5511 | ID3D12VideoProcessCommandList2 * This, | ||
| 5512 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 5513 | _In_ D3D12_QUERY_TYPE Type, | ||
| 5514 | _In_ UINT Index); | ||
| 5515 | |||
| 5516 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery) | ||
| 5517 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 5518 | ID3D12VideoProcessCommandList2 * This, | ||
| 5519 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 5520 | _In_ D3D12_QUERY_TYPE Type, | ||
| 5521 | _In_ UINT Index); | ||
| 5522 | |||
| 5523 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData) | ||
| 5524 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 5525 | ID3D12VideoProcessCommandList2 * This, | ||
| 5526 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 5527 | _In_ D3D12_QUERY_TYPE Type, | ||
| 5528 | _In_ UINT StartIndex, | ||
| 5529 | _In_ UINT NumQueries, | ||
| 5530 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 5531 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 5532 | |||
| 5533 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication) | ||
| 5534 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 5535 | ID3D12VideoProcessCommandList2 * This, | ||
| 5536 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 5537 | _In_ UINT64 AlignedBufferOffset, | ||
| 5538 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 5539 | |||
| 5540 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker) | ||
| 5541 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 5542 | ID3D12VideoProcessCommandList2 * This, | ||
| 5543 | UINT Metadata, | ||
| 5544 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 5545 | UINT Size); | ||
| 5546 | |||
| 5547 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent) | ||
| 5548 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 5549 | ID3D12VideoProcessCommandList2 * This, | ||
| 5550 | UINT Metadata, | ||
| 5551 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 5552 | UINT Size); | ||
| 5553 | |||
| 5554 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent) | ||
| 5555 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 5556 | ID3D12VideoProcessCommandList2 * This); | ||
| 5557 | |||
| 5558 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames) | ||
| 5559 | void ( STDMETHODCALLTYPE *ProcessFrames )( | ||
| 5560 | ID3D12VideoProcessCommandList2 * This, | ||
| 5561 | _In_ ID3D12VideoProcessor *pVideoProcessor, | ||
| 5562 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 5563 | UINT NumInputStreams, | ||
| 5564 | _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 5565 | |||
| 5566 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate) | ||
| 5567 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 5568 | ID3D12VideoProcessCommandList2 * This, | ||
| 5569 | UINT Count, | ||
| 5570 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 5571 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 5572 | |||
| 5573 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1) | ||
| 5574 | void ( STDMETHODCALLTYPE *ProcessFrames1 )( | ||
| 5575 | ID3D12VideoProcessCommandList2 * This, | ||
| 5576 | _In_ ID3D12VideoProcessor *pVideoProcessor, | ||
| 5577 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 5578 | UINT NumInputStreams, | ||
| 5579 | _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments); | ||
| 5580 | |||
| 5581 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession) | ||
| 5582 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 5583 | ID3D12VideoProcessCommandList2 * This, | ||
| 5584 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 5585 | |||
| 5586 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand) | ||
| 5587 | void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( | ||
| 5588 | ID3D12VideoProcessCommandList2 * This, | ||
| 5589 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 5590 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 5591 | SIZE_T InitializationParametersSizeInBytes); | ||
| 5592 | |||
| 5593 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand) | ||
| 5594 | void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 5595 | ID3D12VideoProcessCommandList2 * This, | ||
| 5596 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 5597 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 5598 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 5599 | |||
| 5600 | END_INTERFACE | ||
| 5601 | } ID3D12VideoProcessCommandList2Vtbl; | ||
| 5602 | |||
| 5603 | interface ID3D12VideoProcessCommandList2 | ||
| 5604 | { | ||
| 5605 | CONST_VTBL struct ID3D12VideoProcessCommandList2Vtbl *lpVtbl; | ||
| 5606 | }; | ||
| 5607 | |||
| 5608 | |||
| 5609 | |||
| 5610 | #ifdef COBJMACROS | ||
| 5611 | |||
| 5612 | |||
| 5613 | #define ID3D12VideoProcessCommandList2_QueryInterface(This,riid,ppvObject) \ | ||
| 5614 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 5615 | |||
| 5616 | #define ID3D12VideoProcessCommandList2_AddRef(This) \ | ||
| 5617 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 5618 | |||
| 5619 | #define ID3D12VideoProcessCommandList2_Release(This) \ | ||
| 5620 | ( (This)->lpVtbl -> Release(This) ) | ||
| 5621 | |||
| 5622 | |||
| 5623 | #define ID3D12VideoProcessCommandList2_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 5624 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5625 | |||
| 5626 | #define ID3D12VideoProcessCommandList2_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5627 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5628 | |||
| 5629 | #define ID3D12VideoProcessCommandList2_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5630 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5631 | |||
| 5632 | #define ID3D12VideoProcessCommandList2_SetName(This,Name) \ | ||
| 5633 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5634 | |||
| 5635 | |||
| 5636 | #define ID3D12VideoProcessCommandList2_GetDevice(This,riid,ppvDevice) \ | ||
| 5637 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5638 | |||
| 5639 | |||
| 5640 | #define ID3D12VideoProcessCommandList2_GetType(This) \ | ||
| 5641 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 5642 | |||
| 5643 | |||
| 5644 | #define ID3D12VideoProcessCommandList2_Close(This) \ | ||
| 5645 | ( (This)->lpVtbl -> Close(This) ) | ||
| 5646 | |||
| 5647 | #define ID3D12VideoProcessCommandList2_Reset(This,pAllocator) \ | ||
| 5648 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 5649 | |||
| 5650 | #define ID3D12VideoProcessCommandList2_ClearState(This) \ | ||
| 5651 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 5652 | |||
| 5653 | #define ID3D12VideoProcessCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 5654 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 5655 | |||
| 5656 | #define ID3D12VideoProcessCommandList2_DiscardResource(This,pResource,pRegion) \ | ||
| 5657 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 5658 | |||
| 5659 | #define ID3D12VideoProcessCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 5660 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 5661 | |||
| 5662 | #define ID3D12VideoProcessCommandList2_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 5663 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 5664 | |||
| 5665 | #define ID3D12VideoProcessCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 5666 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 5667 | |||
| 5668 | #define ID3D12VideoProcessCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 5669 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 5670 | |||
| 5671 | #define ID3D12VideoProcessCommandList2_SetMarker(This,Metadata,pData,Size) \ | ||
| 5672 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 5673 | |||
| 5674 | #define ID3D12VideoProcessCommandList2_BeginEvent(This,Metadata,pData,Size) \ | ||
| 5675 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 5676 | |||
| 5677 | #define ID3D12VideoProcessCommandList2_EndEvent(This) \ | ||
| 5678 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 5679 | |||
| 5680 | #define ID3D12VideoProcessCommandList2_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ | ||
| 5681 | ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) | ||
| 5682 | |||
| 5683 | #define ID3D12VideoProcessCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 5684 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 5685 | |||
| 5686 | |||
| 5687 | #define ID3D12VideoProcessCommandList2_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ | ||
| 5688 | ( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) | ||
| 5689 | |||
| 5690 | |||
| 5691 | #define ID3D12VideoProcessCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 5692 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 5693 | |||
| 5694 | #define ID3D12VideoProcessCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ | ||
| 5695 | ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) | ||
| 5696 | |||
| 5697 | #define ID3D12VideoProcessCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ | ||
| 5698 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) | ||
| 5699 | |||
| 5700 | #endif /* COBJMACROS */ | ||
| 5701 | |||
| 5702 | |||
| 5703 | #endif /* C style interface */ | ||
| 5704 | |||
| 5705 | |||
| 5706 | |||
| 5707 | |||
| 5708 | #endif /* __ID3D12VideoProcessCommandList2_INTERFACE_DEFINED__ */ | ||
| 5709 | |||
| 5710 | |||
| 5711 | #ifndef __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__ | ||
| 5712 | #define __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__ | ||
| 5713 | |||
| 5714 | /* interface ID3D12VideoProcessCommandList3 */ | ||
| 5715 | /* [unique][local][object][uuid] */ | ||
| 5716 | |||
| 5717 | |||
| 5718 | EXTERN_C const IID IID_ID3D12VideoProcessCommandList3; | ||
| 5719 | |||
| 5720 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 5721 | |||
| 5722 | MIDL_INTERFACE("1a0a4ca4-9f08-40ce-9558-b411fd2666ff") | ||
| 5723 | ID3D12VideoProcessCommandList3 : public ID3D12VideoProcessCommandList2 | ||
| 5724 | { | ||
| 5725 | public: | ||
| 5726 | virtual void STDMETHODCALLTYPE Barrier( | ||
| 5727 | UINT32 NumBarrierGroups, | ||
| 5728 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0; | ||
| 5729 | |||
| 5730 | }; | ||
| 5731 | |||
| 5732 | |||
| 5733 | #else /* C style interface */ | ||
| 5734 | |||
| 5735 | typedef struct ID3D12VideoProcessCommandList3Vtbl | ||
| 5736 | { | ||
| 5737 | BEGIN_INTERFACE | ||
| 5738 | |||
| 5739 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 5740 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 5741 | ID3D12VideoProcessCommandList3 * This, | ||
| 5742 | REFIID riid, | ||
| 5743 | _COM_Outptr_ void **ppvObject); | ||
| 5744 | |||
| 5745 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 5746 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 5747 | ID3D12VideoProcessCommandList3 * This); | ||
| 5748 | |||
| 5749 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 5750 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 5751 | ID3D12VideoProcessCommandList3 * This); | ||
| 5752 | |||
| 5753 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 5754 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 5755 | ID3D12VideoProcessCommandList3 * This, | ||
| 5756 | _In_ REFGUID guid, | ||
| 5757 | _Inout_ UINT *pDataSize, | ||
| 5758 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 5759 | |||
| 5760 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 5761 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 5762 | ID3D12VideoProcessCommandList3 * This, | ||
| 5763 | _In_ REFGUID guid, | ||
| 5764 | _In_ UINT DataSize, | ||
| 5765 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 5766 | |||
| 5767 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 5768 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 5769 | ID3D12VideoProcessCommandList3 * This, | ||
| 5770 | _In_ REFGUID guid, | ||
| 5771 | _In_opt_ const IUnknown *pData); | ||
| 5772 | |||
| 5773 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 5774 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 5775 | ID3D12VideoProcessCommandList3 * This, | ||
| 5776 | _In_z_ LPCWSTR Name); | ||
| 5777 | |||
| 5778 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 5779 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 5780 | ID3D12VideoProcessCommandList3 * This, | ||
| 5781 | REFIID riid, | ||
| 5782 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 5783 | |||
| 5784 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 5785 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 5786 | ID3D12VideoProcessCommandList3 * This); | ||
| 5787 | |||
| 5788 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Close) | ||
| 5789 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 5790 | ID3D12VideoProcessCommandList3 * This); | ||
| 5791 | |||
| 5792 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, Reset) | ||
| 5793 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 5794 | ID3D12VideoProcessCommandList3 * This, | ||
| 5795 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 5796 | |||
| 5797 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ClearState) | ||
| 5798 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 5799 | ID3D12VideoProcessCommandList3 * This); | ||
| 5800 | |||
| 5801 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResourceBarrier) | ||
| 5802 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 5803 | ID3D12VideoProcessCommandList3 * This, | ||
| 5804 | _In_ UINT NumBarriers, | ||
| 5805 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 5806 | |||
| 5807 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, DiscardResource) | ||
| 5808 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 5809 | ID3D12VideoProcessCommandList3 * This, | ||
| 5810 | _In_ ID3D12Resource *pResource, | ||
| 5811 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 5812 | |||
| 5813 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginQuery) | ||
| 5814 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 5815 | ID3D12VideoProcessCommandList3 * This, | ||
| 5816 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 5817 | _In_ D3D12_QUERY_TYPE Type, | ||
| 5818 | _In_ UINT Index); | ||
| 5819 | |||
| 5820 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndQuery) | ||
| 5821 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 5822 | ID3D12VideoProcessCommandList3 * This, | ||
| 5823 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 5824 | _In_ D3D12_QUERY_TYPE Type, | ||
| 5825 | _In_ UINT Index); | ||
| 5826 | |||
| 5827 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ResolveQueryData) | ||
| 5828 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 5829 | ID3D12VideoProcessCommandList3 * This, | ||
| 5830 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 5831 | _In_ D3D12_QUERY_TYPE Type, | ||
| 5832 | _In_ UINT StartIndex, | ||
| 5833 | _In_ UINT NumQueries, | ||
| 5834 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 5835 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 5836 | |||
| 5837 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetPredication) | ||
| 5838 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 5839 | ID3D12VideoProcessCommandList3 * This, | ||
| 5840 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 5841 | _In_ UINT64 AlignedBufferOffset, | ||
| 5842 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 5843 | |||
| 5844 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, SetMarker) | ||
| 5845 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 5846 | ID3D12VideoProcessCommandList3 * This, | ||
| 5847 | UINT Metadata, | ||
| 5848 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 5849 | UINT Size); | ||
| 5850 | |||
| 5851 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, BeginEvent) | ||
| 5852 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 5853 | ID3D12VideoProcessCommandList3 * This, | ||
| 5854 | UINT Metadata, | ||
| 5855 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 5856 | UINT Size); | ||
| 5857 | |||
| 5858 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, EndEvent) | ||
| 5859 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 5860 | ID3D12VideoProcessCommandList3 * This); | ||
| 5861 | |||
| 5862 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, ProcessFrames) | ||
| 5863 | void ( STDMETHODCALLTYPE *ProcessFrames )( | ||
| 5864 | ID3D12VideoProcessCommandList3 * This, | ||
| 5865 | _In_ ID3D12VideoProcessor *pVideoProcessor, | ||
| 5866 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 5867 | UINT NumInputStreams, | ||
| 5868 | _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments); | ||
| 5869 | |||
| 5870 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList, WriteBufferImmediate) | ||
| 5871 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 5872 | ID3D12VideoProcessCommandList3 * This, | ||
| 5873 | UINT Count, | ||
| 5874 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 5875 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 5876 | |||
| 5877 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList1, ProcessFrames1) | ||
| 5878 | void ( STDMETHODCALLTYPE *ProcessFrames1 )( | ||
| 5879 | ID3D12VideoProcessCommandList3 * This, | ||
| 5880 | _In_ ID3D12VideoProcessor *pVideoProcessor, | ||
| 5881 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 5882 | UINT NumInputStreams, | ||
| 5883 | _In_reads_(NumInputStreams) const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments); | ||
| 5884 | |||
| 5885 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, SetProtectedResourceSession) | ||
| 5886 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 5887 | ID3D12VideoProcessCommandList3 * This, | ||
| 5888 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 5889 | |||
| 5890 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, InitializeExtensionCommand) | ||
| 5891 | void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( | ||
| 5892 | ID3D12VideoProcessCommandList3 * This, | ||
| 5893 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 5894 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 5895 | SIZE_T InitializationParametersSizeInBytes); | ||
| 5896 | |||
| 5897 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList2, ExecuteExtensionCommand) | ||
| 5898 | void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 5899 | ID3D12VideoProcessCommandList3 * This, | ||
| 5900 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 5901 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 5902 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 5903 | |||
| 5904 | DECLSPEC_XFGVIRT(ID3D12VideoProcessCommandList3, Barrier) | ||
| 5905 | void ( STDMETHODCALLTYPE *Barrier )( | ||
| 5906 | ID3D12VideoProcessCommandList3 * This, | ||
| 5907 | UINT32 NumBarrierGroups, | ||
| 5908 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); | ||
| 5909 | |||
| 5910 | END_INTERFACE | ||
| 5911 | } ID3D12VideoProcessCommandList3Vtbl; | ||
| 5912 | |||
| 5913 | interface ID3D12VideoProcessCommandList3 | ||
| 5914 | { | ||
| 5915 | CONST_VTBL struct ID3D12VideoProcessCommandList3Vtbl *lpVtbl; | ||
| 5916 | }; | ||
| 5917 | |||
| 5918 | |||
| 5919 | |||
| 5920 | #ifdef COBJMACROS | ||
| 5921 | |||
| 5922 | |||
| 5923 | #define ID3D12VideoProcessCommandList3_QueryInterface(This,riid,ppvObject) \ | ||
| 5924 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 5925 | |||
| 5926 | #define ID3D12VideoProcessCommandList3_AddRef(This) \ | ||
| 5927 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 5928 | |||
| 5929 | #define ID3D12VideoProcessCommandList3_Release(This) \ | ||
| 5930 | ( (This)->lpVtbl -> Release(This) ) | ||
| 5931 | |||
| 5932 | |||
| 5933 | #define ID3D12VideoProcessCommandList3_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 5934 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 5935 | |||
| 5936 | #define ID3D12VideoProcessCommandList3_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 5937 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 5938 | |||
| 5939 | #define ID3D12VideoProcessCommandList3_SetPrivateDataInterface(This,guid,pData) \ | ||
| 5940 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 5941 | |||
| 5942 | #define ID3D12VideoProcessCommandList3_SetName(This,Name) \ | ||
| 5943 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 5944 | |||
| 5945 | |||
| 5946 | #define ID3D12VideoProcessCommandList3_GetDevice(This,riid,ppvDevice) \ | ||
| 5947 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 5948 | |||
| 5949 | |||
| 5950 | #define ID3D12VideoProcessCommandList3_GetType(This) \ | ||
| 5951 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 5952 | |||
| 5953 | |||
| 5954 | #define ID3D12VideoProcessCommandList3_Close(This) \ | ||
| 5955 | ( (This)->lpVtbl -> Close(This) ) | ||
| 5956 | |||
| 5957 | #define ID3D12VideoProcessCommandList3_Reset(This,pAllocator) \ | ||
| 5958 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 5959 | |||
| 5960 | #define ID3D12VideoProcessCommandList3_ClearState(This) \ | ||
| 5961 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 5962 | |||
| 5963 | #define ID3D12VideoProcessCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 5964 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 5965 | |||
| 5966 | #define ID3D12VideoProcessCommandList3_DiscardResource(This,pResource,pRegion) \ | ||
| 5967 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 5968 | |||
| 5969 | #define ID3D12VideoProcessCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 5970 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 5971 | |||
| 5972 | #define ID3D12VideoProcessCommandList3_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 5973 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 5974 | |||
| 5975 | #define ID3D12VideoProcessCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 5976 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 5977 | |||
| 5978 | #define ID3D12VideoProcessCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 5979 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 5980 | |||
| 5981 | #define ID3D12VideoProcessCommandList3_SetMarker(This,Metadata,pData,Size) \ | ||
| 5982 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 5983 | |||
| 5984 | #define ID3D12VideoProcessCommandList3_BeginEvent(This,Metadata,pData,Size) \ | ||
| 5985 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 5986 | |||
| 5987 | #define ID3D12VideoProcessCommandList3_EndEvent(This) \ | ||
| 5988 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 5989 | |||
| 5990 | #define ID3D12VideoProcessCommandList3_ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ | ||
| 5991 | ( (This)->lpVtbl -> ProcessFrames(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) | ||
| 5992 | |||
| 5993 | #define ID3D12VideoProcessCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 5994 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 5995 | |||
| 5996 | |||
| 5997 | #define ID3D12VideoProcessCommandList3_ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) \ | ||
| 5998 | ( (This)->lpVtbl -> ProcessFrames1(This,pVideoProcessor,pOutputArguments,NumInputStreams,pInputArguments) ) | ||
| 5999 | |||
| 6000 | |||
| 6001 | #define ID3D12VideoProcessCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 6002 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 6003 | |||
| 6004 | #define ID3D12VideoProcessCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ | ||
| 6005 | ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) | ||
| 6006 | |||
| 6007 | #define ID3D12VideoProcessCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ | ||
| 6008 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) | ||
| 6009 | |||
| 6010 | |||
| 6011 | #define ID3D12VideoProcessCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \ | ||
| 6012 | ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) | ||
| 6013 | |||
| 6014 | #endif /* COBJMACROS */ | ||
| 6015 | |||
| 6016 | |||
| 6017 | #endif /* C style interface */ | ||
| 6018 | |||
| 6019 | |||
| 6020 | |||
| 6021 | |||
| 6022 | #endif /* __ID3D12VideoProcessCommandList3_INTERFACE_DEFINED__ */ | ||
| 6023 | |||
| 6024 | |||
| 6025 | #ifndef __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ | ||
| 6026 | #define __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ | ||
| 6027 | |||
| 6028 | /* interface ID3D12VideoEncodeCommandList1 */ | ||
| 6029 | /* [unique][local][object][uuid] */ | ||
| 6030 | |||
| 6031 | |||
| 6032 | EXTERN_C const IID IID_ID3D12VideoEncodeCommandList1; | ||
| 6033 | |||
| 6034 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 6035 | |||
| 6036 | MIDL_INTERFACE("94971eca-2bdb-4769-88cf-3675ea757ebc") | ||
| 6037 | ID3D12VideoEncodeCommandList1 : public ID3D12VideoEncodeCommandList | ||
| 6038 | { | ||
| 6039 | public: | ||
| 6040 | virtual void STDMETHODCALLTYPE InitializeExtensionCommand( | ||
| 6041 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 6042 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 6043 | SIZE_T InitializationParametersSizeInBytes) = 0; | ||
| 6044 | |||
| 6045 | virtual void STDMETHODCALLTYPE ExecuteExtensionCommand( | ||
| 6046 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 6047 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 6048 | SIZE_T ExecutionParametersSizeInBytes) = 0; | ||
| 6049 | |||
| 6050 | }; | ||
| 6051 | |||
| 6052 | |||
| 6053 | #else /* C style interface */ | ||
| 6054 | |||
| 6055 | typedef struct ID3D12VideoEncodeCommandList1Vtbl | ||
| 6056 | { | ||
| 6057 | BEGIN_INTERFACE | ||
| 6058 | |||
| 6059 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 6060 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 6061 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6062 | REFIID riid, | ||
| 6063 | _COM_Outptr_ void **ppvObject); | ||
| 6064 | |||
| 6065 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 6066 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 6067 | ID3D12VideoEncodeCommandList1 * This); | ||
| 6068 | |||
| 6069 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 6070 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 6071 | ID3D12VideoEncodeCommandList1 * This); | ||
| 6072 | |||
| 6073 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 6074 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 6075 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6076 | _In_ REFGUID guid, | ||
| 6077 | _Inout_ UINT *pDataSize, | ||
| 6078 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 6079 | |||
| 6080 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 6081 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 6082 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6083 | _In_ REFGUID guid, | ||
| 6084 | _In_ UINT DataSize, | ||
| 6085 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 6086 | |||
| 6087 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 6088 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 6089 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6090 | _In_ REFGUID guid, | ||
| 6091 | _In_opt_ const IUnknown *pData); | ||
| 6092 | |||
| 6093 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 6094 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 6095 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6096 | _In_z_ LPCWSTR Name); | ||
| 6097 | |||
| 6098 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 6099 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 6100 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6101 | REFIID riid, | ||
| 6102 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 6103 | |||
| 6104 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 6105 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 6106 | ID3D12VideoEncodeCommandList1 * This); | ||
| 6107 | |||
| 6108 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) | ||
| 6109 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 6110 | ID3D12VideoEncodeCommandList1 * This); | ||
| 6111 | |||
| 6112 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) | ||
| 6113 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 6114 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6115 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 6116 | |||
| 6117 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) | ||
| 6118 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 6119 | ID3D12VideoEncodeCommandList1 * This); | ||
| 6120 | |||
| 6121 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) | ||
| 6122 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 6123 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6124 | _In_ UINT NumBarriers, | ||
| 6125 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 6126 | |||
| 6127 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) | ||
| 6128 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 6129 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6130 | _In_ ID3D12Resource *pResource, | ||
| 6131 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 6132 | |||
| 6133 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) | ||
| 6134 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 6135 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6136 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 6137 | _In_ D3D12_QUERY_TYPE Type, | ||
| 6138 | _In_ UINT Index); | ||
| 6139 | |||
| 6140 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) | ||
| 6141 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 6142 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6143 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 6144 | _In_ D3D12_QUERY_TYPE Type, | ||
| 6145 | _In_ UINT Index); | ||
| 6146 | |||
| 6147 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) | ||
| 6148 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 6149 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6150 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 6151 | _In_ D3D12_QUERY_TYPE Type, | ||
| 6152 | _In_ UINT StartIndex, | ||
| 6153 | _In_ UINT NumQueries, | ||
| 6154 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 6155 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 6156 | |||
| 6157 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication) | ||
| 6158 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 6159 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6160 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 6161 | _In_ UINT64 AlignedBufferOffset, | ||
| 6162 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 6163 | |||
| 6164 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) | ||
| 6165 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 6166 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6167 | UINT Metadata, | ||
| 6168 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 6169 | UINT Size); | ||
| 6170 | |||
| 6171 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) | ||
| 6172 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 6173 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6174 | UINT Metadata, | ||
| 6175 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 6176 | UINT Size); | ||
| 6177 | |||
| 6178 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) | ||
| 6179 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 6180 | ID3D12VideoEncodeCommandList1 * This); | ||
| 6181 | |||
| 6182 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) | ||
| 6183 | void ( STDMETHODCALLTYPE *EstimateMotion )( | ||
| 6184 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6185 | _In_ ID3D12VideoMotionEstimator *pMotionEstimator, | ||
| 6186 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments, | ||
| 6187 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments); | ||
| 6188 | |||
| 6189 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap) | ||
| 6190 | void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )( | ||
| 6191 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6192 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments, | ||
| 6193 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments); | ||
| 6194 | |||
| 6195 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate) | ||
| 6196 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 6197 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6198 | UINT Count, | ||
| 6199 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 6200 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 6201 | |||
| 6202 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession) | ||
| 6203 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 6204 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6205 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 6206 | |||
| 6207 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand) | ||
| 6208 | void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( | ||
| 6209 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6210 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 6211 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 6212 | SIZE_T InitializationParametersSizeInBytes); | ||
| 6213 | |||
| 6214 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand) | ||
| 6215 | void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 6216 | ID3D12VideoEncodeCommandList1 * This, | ||
| 6217 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 6218 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 6219 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 6220 | |||
| 6221 | END_INTERFACE | ||
| 6222 | } ID3D12VideoEncodeCommandList1Vtbl; | ||
| 6223 | |||
| 6224 | interface ID3D12VideoEncodeCommandList1 | ||
| 6225 | { | ||
| 6226 | CONST_VTBL struct ID3D12VideoEncodeCommandList1Vtbl *lpVtbl; | ||
| 6227 | }; | ||
| 6228 | |||
| 6229 | |||
| 6230 | |||
| 6231 | #ifdef COBJMACROS | ||
| 6232 | |||
| 6233 | |||
| 6234 | #define ID3D12VideoEncodeCommandList1_QueryInterface(This,riid,ppvObject) \ | ||
| 6235 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 6236 | |||
| 6237 | #define ID3D12VideoEncodeCommandList1_AddRef(This) \ | ||
| 6238 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 6239 | |||
| 6240 | #define ID3D12VideoEncodeCommandList1_Release(This) \ | ||
| 6241 | ( (This)->lpVtbl -> Release(This) ) | ||
| 6242 | |||
| 6243 | |||
| 6244 | #define ID3D12VideoEncodeCommandList1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 6245 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 6246 | |||
| 6247 | #define ID3D12VideoEncodeCommandList1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 6248 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 6249 | |||
| 6250 | #define ID3D12VideoEncodeCommandList1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 6251 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 6252 | |||
| 6253 | #define ID3D12VideoEncodeCommandList1_SetName(This,Name) \ | ||
| 6254 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 6255 | |||
| 6256 | |||
| 6257 | #define ID3D12VideoEncodeCommandList1_GetDevice(This,riid,ppvDevice) \ | ||
| 6258 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 6259 | |||
| 6260 | |||
| 6261 | #define ID3D12VideoEncodeCommandList1_GetType(This) \ | ||
| 6262 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 6263 | |||
| 6264 | |||
| 6265 | #define ID3D12VideoEncodeCommandList1_Close(This) \ | ||
| 6266 | ( (This)->lpVtbl -> Close(This) ) | ||
| 6267 | |||
| 6268 | #define ID3D12VideoEncodeCommandList1_Reset(This,pAllocator) \ | ||
| 6269 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 6270 | |||
| 6271 | #define ID3D12VideoEncodeCommandList1_ClearState(This) \ | ||
| 6272 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 6273 | |||
| 6274 | #define ID3D12VideoEncodeCommandList1_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 6275 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 6276 | |||
| 6277 | #define ID3D12VideoEncodeCommandList1_DiscardResource(This,pResource,pRegion) \ | ||
| 6278 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 6279 | |||
| 6280 | #define ID3D12VideoEncodeCommandList1_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 6281 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 6282 | |||
| 6283 | #define ID3D12VideoEncodeCommandList1_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 6284 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 6285 | |||
| 6286 | #define ID3D12VideoEncodeCommandList1_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 6287 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 6288 | |||
| 6289 | #define ID3D12VideoEncodeCommandList1_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 6290 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 6291 | |||
| 6292 | #define ID3D12VideoEncodeCommandList1_SetMarker(This,Metadata,pData,Size) \ | ||
| 6293 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 6294 | |||
| 6295 | #define ID3D12VideoEncodeCommandList1_BeginEvent(This,Metadata,pData,Size) \ | ||
| 6296 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 6297 | |||
| 6298 | #define ID3D12VideoEncodeCommandList1_EndEvent(This) \ | ||
| 6299 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 6300 | |||
| 6301 | #define ID3D12VideoEncodeCommandList1_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ | ||
| 6302 | ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) | ||
| 6303 | |||
| 6304 | #define ID3D12VideoEncodeCommandList1_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ | ||
| 6305 | ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) | ||
| 6306 | |||
| 6307 | #define ID3D12VideoEncodeCommandList1_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 6308 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 6309 | |||
| 6310 | #define ID3D12VideoEncodeCommandList1_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 6311 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 6312 | |||
| 6313 | |||
| 6314 | #define ID3D12VideoEncodeCommandList1_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ | ||
| 6315 | ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) | ||
| 6316 | |||
| 6317 | #define ID3D12VideoEncodeCommandList1_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ | ||
| 6318 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) | ||
| 6319 | |||
| 6320 | #endif /* COBJMACROS */ | ||
| 6321 | |||
| 6322 | |||
| 6323 | #endif /* C style interface */ | ||
| 6324 | |||
| 6325 | |||
| 6326 | |||
| 6327 | |||
| 6328 | #endif /* __ID3D12VideoEncodeCommandList1_INTERFACE_DEFINED__ */ | ||
| 6329 | |||
| 6330 | |||
| 6331 | /* interface __MIDL_itf_d3d12video_0000_0022 */ | ||
| 6332 | /* [local] */ | ||
| 6333 | |||
| 6334 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9); | ||
| 6335 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60); | ||
| 6336 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | ||
| 6337 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d); | ||
| 6338 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52); | ||
| 6339 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c); | ||
| 6340 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | ||
| 6341 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | ||
| 6342 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19); | ||
| 6343 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e); | ||
| 6344 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0); | ||
| 6345 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13); | ||
| 6346 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME, 0x0685b993, 0x3d8c, 0x43a0, 0x8b, 0x28, 0xd7, 0x4c, 0x2d, 0x68, 0x99, 0xa4); | ||
| 6347 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME10, 0x142a1d0f, 0x69dd, 0x4ec9, 0x85, 0x91, 0xb1, 0x2f, 0xfc, 0xb9, 0x1a, 0x29); | ||
| 6348 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12, 0x1a72925f, 0x0c2c, 0x4f15, 0x96, 0xfb, 0xb1, 0x7d, 0x14, 0x73, 0x60, 0x3f); | ||
| 6349 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_422, 0x0bac4fe5, 0x1532, 0x4429, 0xa8, 0x54, 0xf8, 0x4d, 0xe0, 0x49, 0x53, 0xdb); | ||
| 6350 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_422, 0x55bcac81, 0xf311, 0x4093, 0xa7, 0xd0, 0x1c, 0xbc, 0x0b, 0x84, 0x9b, 0xee); | ||
| 6351 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN_444, 0x4008018f, 0xf537, 0x4b36, 0x98, 0xcf, 0x61, 0xaf, 0x8a, 0x2c, 0x1a, 0x33); | ||
| 6352 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_EXT, 0x9cc55490, 0xe37c, 0x4932, 0x86, 0x84, 0x49, 0x20, 0xf9, 0xf6, 0x40, 0x9c); | ||
| 6353 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_444, 0x0dabeffa, 0x4458, 0x4602, 0xbc, 0x03, 0x07, 0x95, 0x65, 0x9d, 0x61, 0x7c); | ||
| 6354 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_444, 0x9798634d, 0xfe9d, 0x48e5, 0xb4, 0xda, 0xdb, 0xec, 0x45, 0xb3, 0xdf, 0x01); | ||
| 6355 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN16, 0xa4fbdbb0, 0xa113, 0x482b, 0xa2, 0x32, 0x63, 0x5c, 0xc0, 0x69, 0x7f, 0x6d); | ||
| 6356 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e); | ||
| 6357 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7); | ||
| 6358 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7); | ||
| 6359 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a); | ||
| 6360 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08); | ||
| 6361 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8); | ||
| 6362 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0); | ||
| 6363 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8); | ||
| 6364 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_420, 0x725cb506, 0xc29, 0x43c4, 0x94, 0x40, 0x8e, 0x93, 0x97, 0x90, 0x3a, 0x4); | ||
| 6365 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_422, 0x5b77b9cd, 0x1a35, 0x4c30, 0x9f, 0xd8, 0xef, 0x4b, 0x60, 0xc0, 0x35, 0xdd); | ||
| 6366 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_444, 0xd95161f9, 0xd44, 0x47e6, 0xbc, 0xf5, 0x1b, 0xfb, 0xfb, 0x26, 0x8f, 0x97); | ||
| 6367 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_4444, 0xc91748d5, 0xfd18, 0x4aca, 0x9d, 0xb3, 0x3a, 0x66, 0x34, 0xab, 0x54, 0x7d); | ||
| 6368 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_420, 0xcf782c83, 0xbef5, 0x4a2c, 0x87, 0xcb, 0x60, 0x19, 0xe7, 0xb1, 0x75, 0xac); | ||
| 6369 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_422, 0xf04df417, 0xeee2, 0x4067, 0xa7, 0x78, 0xf3, 0x5c, 0x15, 0xab, 0x97, 0x21); | ||
| 6370 | DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_444, 0x4cd00e17, 0x89ba, 0x48ef, 0xb9, 0xf9, 0xed, 0xcb, 0x82, 0x71, 0x3f, 0x65); | ||
| 6371 | typedef | ||
| 6372 | enum D3D12_VIDEO_ENCODER_AV1_PROFILE | ||
| 6373 | { | ||
| 6374 | D3D12_VIDEO_ENCODER_AV1_PROFILE_MAIN = 0, | ||
| 6375 | D3D12_VIDEO_ENCODER_AV1_PROFILE_HIGH = 1, | ||
| 6376 | D3D12_VIDEO_ENCODER_AV1_PROFILE_PROFESSIONAL = 2 | ||
| 6377 | } D3D12_VIDEO_ENCODER_AV1_PROFILE; | ||
| 6378 | |||
| 6379 | typedef | ||
| 6380 | enum D3D12_VIDEO_ENCODER_AV1_LEVELS | ||
| 6381 | { | ||
| 6382 | D3D12_VIDEO_ENCODER_AV1_LEVELS_2_0 = 0, | ||
| 6383 | D3D12_VIDEO_ENCODER_AV1_LEVELS_2_1 = 1, | ||
| 6384 | D3D12_VIDEO_ENCODER_AV1_LEVELS_2_2 = 2, | ||
| 6385 | D3D12_VIDEO_ENCODER_AV1_LEVELS_2_3 = 3, | ||
| 6386 | D3D12_VIDEO_ENCODER_AV1_LEVELS_3_0 = 4, | ||
| 6387 | D3D12_VIDEO_ENCODER_AV1_LEVELS_3_1 = 5, | ||
| 6388 | D3D12_VIDEO_ENCODER_AV1_LEVELS_3_2 = 6, | ||
| 6389 | D3D12_VIDEO_ENCODER_AV1_LEVELS_3_3 = 7, | ||
| 6390 | D3D12_VIDEO_ENCODER_AV1_LEVELS_4_0 = 8, | ||
| 6391 | D3D12_VIDEO_ENCODER_AV1_LEVELS_4_1 = 9, | ||
| 6392 | D3D12_VIDEO_ENCODER_AV1_LEVELS_4_2 = 10, | ||
| 6393 | D3D12_VIDEO_ENCODER_AV1_LEVELS_4_3 = 11, | ||
| 6394 | D3D12_VIDEO_ENCODER_AV1_LEVELS_5_0 = 12, | ||
| 6395 | D3D12_VIDEO_ENCODER_AV1_LEVELS_5_1 = 13, | ||
| 6396 | D3D12_VIDEO_ENCODER_AV1_LEVELS_5_2 = 14, | ||
| 6397 | D3D12_VIDEO_ENCODER_AV1_LEVELS_5_3 = 15, | ||
| 6398 | D3D12_VIDEO_ENCODER_AV1_LEVELS_6_0 = 16, | ||
| 6399 | D3D12_VIDEO_ENCODER_AV1_LEVELS_6_1 = 17, | ||
| 6400 | D3D12_VIDEO_ENCODER_AV1_LEVELS_6_2 = 18, | ||
| 6401 | D3D12_VIDEO_ENCODER_AV1_LEVELS_6_3 = 19, | ||
| 6402 | D3D12_VIDEO_ENCODER_AV1_LEVELS_7_0 = 20, | ||
| 6403 | D3D12_VIDEO_ENCODER_AV1_LEVELS_7_1 = 21, | ||
| 6404 | D3D12_VIDEO_ENCODER_AV1_LEVELS_7_2 = 22, | ||
| 6405 | D3D12_VIDEO_ENCODER_AV1_LEVELS_7_3 = 23 | ||
| 6406 | } D3D12_VIDEO_ENCODER_AV1_LEVELS; | ||
| 6407 | |||
| 6408 | typedef | ||
| 6409 | enum D3D12_VIDEO_ENCODER_AV1_TIER | ||
| 6410 | { | ||
| 6411 | D3D12_VIDEO_ENCODER_AV1_TIER_MAIN = 0, | ||
| 6412 | D3D12_VIDEO_ENCODER_AV1_TIER_HIGH = 1 | ||
| 6413 | } D3D12_VIDEO_ENCODER_AV1_TIER; | ||
| 6414 | |||
| 6415 | typedef struct D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS | ||
| 6416 | { | ||
| 6417 | D3D12_VIDEO_ENCODER_AV1_LEVELS Level; | ||
| 6418 | D3D12_VIDEO_ENCODER_AV1_TIER Tier; | ||
| 6419 | } D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS; | ||
| 6420 | |||
| 6421 | typedef | ||
| 6422 | enum D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS | ||
| 6423 | { | ||
| 6424 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_NONE = 0, | ||
| 6425 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_128x128_SUPERBLOCK = 0x1, | ||
| 6426 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FILTER_INTRA = 0x2, | ||
| 6427 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_EDGE_FILTER = 0x4, | ||
| 6428 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTERINTRA_COMPOUND = 0x8, | ||
| 6429 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MASKED_COMPOUND = 0x10, | ||
| 6430 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_WARPED_MOTION = 0x20, | ||
| 6431 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DUAL_FILTER = 0x40, | ||
| 6432 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_JNT_COMP = 0x80, | ||
| 6433 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FORCED_INTEGER_MOTION_VECTORS = 0x100, | ||
| 6434 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SUPER_RESOLUTION = 0x200, | ||
| 6435 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_RESTORATION_FILTER = 0x400, | ||
| 6436 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_PALETTE_ENCODING = 0x800, | ||
| 6437 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CDEF_FILTERING = 0x1000, | ||
| 6438 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_BLOCK_COPY = 0x2000, | ||
| 6439 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x4000, | ||
| 6440 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ORDER_HINT_TOOLS = 0x8000, | ||
| 6441 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_AUTO_SEGMENTATION = 0x10000, | ||
| 6442 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CUSTOM_SEGMENTATION = 0x20000, | ||
| 6443 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_FILTER_DELTAS = 0x40000, | ||
| 6444 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_DELTAS = 0x80000, | ||
| 6445 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_MATRIX = 0x100000, | ||
| 6446 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_REDUCED_TX_SET = 0x200000, | ||
| 6447 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MOTION_MODE_SWITCHABLE = 0x400000, | ||
| 6448 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ALLOW_HIGH_PRECISION_MV = 0x800000, | ||
| 6449 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SKIP_MODE_PRESENT = 0x1000000, | ||
| 6450 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DELTA_LF_PARAMS = 0x2000000 | ||
| 6451 | } D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS; | ||
| 6452 | |||
| 6453 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS) | ||
| 6454 | typedef | ||
| 6455 | enum D3D12_VIDEO_ENCODER_AV1_TX_MODE | ||
| 6456 | { | ||
| 6457 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 = 0, | ||
| 6458 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST = 1, | ||
| 6459 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT = 2 | ||
| 6460 | } D3D12_VIDEO_ENCODER_AV1_TX_MODE; | ||
| 6461 | |||
| 6462 | typedef | ||
| 6463 | enum D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS | ||
| 6464 | { | ||
| 6465 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_NONE = 0, | ||
| 6466 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_ONLY4x4 = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 ) , | ||
| 6467 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_LARGEST = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST ) , | ||
| 6468 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_SELECT = ( 1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT ) | ||
| 6469 | } D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS; | ||
| 6470 | |||
| 6471 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS) | ||
| 6472 | typedef | ||
| 6473 | enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS | ||
| 6474 | { | ||
| 6475 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP = 0, | ||
| 6476 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH = 1, | ||
| 6477 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP = 2, | ||
| 6478 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR = 3, | ||
| 6479 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE = 4 | ||
| 6480 | } D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS; | ||
| 6481 | |||
| 6482 | typedef | ||
| 6483 | enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS | ||
| 6484 | { | ||
| 6485 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_NONE = 0, | ||
| 6486 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP ) , | ||
| 6487 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SMOOTH = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH ) , | ||
| 6488 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SHARP = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP ) , | ||
| 6489 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_BILINEAR = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR ) , | ||
| 6490 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_SWITCHABLE = ( 1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE ) | ||
| 6491 | } D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS; | ||
| 6492 | |||
| 6493 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS) | ||
| 6494 | typedef | ||
| 6495 | enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE | ||
| 6496 | { | ||
| 6497 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_4x4 = 0, | ||
| 6498 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_8x8 = 1, | ||
| 6499 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_16x16 = 2, | ||
| 6500 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_32x32 = 3, | ||
| 6501 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_64x64 = 4 | ||
| 6502 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE; | ||
| 6503 | |||
| 6504 | typedef | ||
| 6505 | enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE | ||
| 6506 | { | ||
| 6507 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED = 0, | ||
| 6508 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q = 1, | ||
| 6509 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V = 2, | ||
| 6510 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H = 3, | ||
| 6511 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U = 4, | ||
| 6512 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V = 5, | ||
| 6513 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME = 6, | ||
| 6514 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP = 7, | ||
| 6515 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV = 8 | ||
| 6516 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE; | ||
| 6517 | |||
| 6518 | typedef | ||
| 6519 | enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS | ||
| 6520 | { | ||
| 6521 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_NONE = 0, | ||
| 6522 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_DISABLED = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED ) , | ||
| 6523 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_Q = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q ) , | ||
| 6524 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V ) , | ||
| 6525 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_H = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H ) , | ||
| 6526 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_U = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U ) , | ||
| 6527 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_V = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V ) , | ||
| 6528 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_REF_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME ) , | ||
| 6529 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_SKIP = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP ) , | ||
| 6530 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_GLOBALMV = ( 1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV ) | ||
| 6531 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS; | ||
| 6532 | |||
| 6533 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS) | ||
| 6534 | typedef | ||
| 6535 | enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE | ||
| 6536 | { | ||
| 6537 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_DISABLED = 0, | ||
| 6538 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SWITCHABLE = 1, | ||
| 6539 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_WIENER = 2, | ||
| 6540 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SGRPROJ = 3 | ||
| 6541 | } D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE; | ||
| 6542 | |||
| 6543 | typedef | ||
| 6544 | enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE | ||
| 6545 | { | ||
| 6546 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_DISABLED = 0, | ||
| 6547 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_32x32 = 1, | ||
| 6548 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_64x64 = 2, | ||
| 6549 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_128x128 = 3, | ||
| 6550 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_256x256 = 4 | ||
| 6551 | } D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE; | ||
| 6552 | |||
| 6553 | typedef | ||
| 6554 | enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS | ||
| 6555 | { | ||
| 6556 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_NOT_SUPPORTED = 0, | ||
| 6557 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_32x32 = 0x1, | ||
| 6558 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_64x64 = 0x2, | ||
| 6559 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_128x128 = 0x4, | ||
| 6560 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_256x256 = 0x8 | ||
| 6561 | } D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS; | ||
| 6562 | |||
| 6563 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS) | ||
| 6564 | typedef | ||
| 6565 | enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION | ||
| 6566 | { | ||
| 6567 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY = 0, | ||
| 6568 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION = 1, | ||
| 6569 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM = 2, | ||
| 6570 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE = 3 | ||
| 6571 | } D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION; | ||
| 6572 | |||
| 6573 | typedef | ||
| 6574 | enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS | ||
| 6575 | { | ||
| 6576 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_NONE = 0, | ||
| 6577 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_IDENTITY = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY ) , | ||
| 6578 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_TRANSLATION = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION ) , | ||
| 6579 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_ROTZOOM = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM ) , | ||
| 6580 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_AFFINE = ( 1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE ) | ||
| 6581 | } D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS; | ||
| 6582 | |||
| 6583 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS) | ||
| 6584 | typedef | ||
| 6585 | enum D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS | ||
| 6586 | { | ||
| 6587 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_NONE = 0, | ||
| 6588 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION = 0x1, | ||
| 6589 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION_DELTA = 0x2, | ||
| 6590 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER = 0x4, | ||
| 6591 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER_DELTA = 0x8, | ||
| 6592 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CDEF_DATA = 0x10, | ||
| 6593 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CONTEXT_UPDATE_TILE_ID = 0x20, | ||
| 6594 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_COMPOUND_PREDICTION_MODE = 0x40, | ||
| 6595 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_PRIMARY_REF_FRAME = 0x80, | ||
| 6596 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_REFERENCE_INDICES = 0x100 | ||
| 6597 | } D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS; | ||
| 6598 | |||
| 6599 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS) | ||
| 6600 | typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT | ||
| 6601 | { | ||
| 6602 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS SupportedFeatureFlags; | ||
| 6603 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS RequiredFeatureFlags; | ||
| 6604 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS SupportedInterpolationFilters; | ||
| 6605 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS SupportedRestorationParams[ 3 ][ 3 ]; | ||
| 6606 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS SupportedSegmentationModes; | ||
| 6607 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS SupportedTxModes[ 4 ]; | ||
| 6608 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE SegmentationBlockSize; | ||
| 6609 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS PostEncodeValuesFlags; | ||
| 6610 | UINT MaxTemporalLayers; | ||
| 6611 | UINT MaxSpatialLayers; | ||
| 6612 | } D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT; | ||
| 6613 | |||
| 6614 | typedef | ||
| 6615 | enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE | ||
| 6616 | { | ||
| 6617 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME = 0, | ||
| 6618 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME = 1, | ||
| 6619 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME = 2, | ||
| 6620 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME = 3 | ||
| 6621 | } D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE; | ||
| 6622 | |||
| 6623 | typedef | ||
| 6624 | enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS | ||
| 6625 | { | ||
| 6626 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_NONE = 0, | ||
| 6627 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_KEY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME ) , | ||
| 6628 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTER_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME ) , | ||
| 6629 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTRA_ONLY_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME ) , | ||
| 6630 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_SWITCH_FRAME = ( 1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME ) | ||
| 6631 | } D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS; | ||
| 6632 | |||
| 6633 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS) | ||
| 6634 | typedef | ||
| 6635 | enum D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE | ||
| 6636 | { | ||
| 6637 | D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_SINGLE_REFERENCE = 0, | ||
| 6638 | D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_COMPOUND_REFERENCE = 1 | ||
| 6639 | } D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE; | ||
| 6640 | |||
| 6641 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT | ||
| 6642 | { | ||
| 6643 | D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE PredictionMode; | ||
| 6644 | UINT MaxUniqueReferencesPerFrame; | ||
| 6645 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS SupportedFrameTypes; | ||
| 6646 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS SupportedReferenceWarpedMotionFlags; | ||
| 6647 | } D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT; | ||
| 6648 | |||
| 6649 | typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION | ||
| 6650 | { | ||
| 6651 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS FeatureFlags; | ||
| 6652 | UINT OrderHintBitsMinus1; | ||
| 6653 | } D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION; | ||
| 6654 | |||
| 6655 | typedef struct D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE | ||
| 6656 | { | ||
| 6657 | UINT IntraDistance; | ||
| 6658 | UINT InterFramePeriod; | ||
| 6659 | } D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE; | ||
| 6660 | |||
| 6661 | typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO | ||
| 6662 | { | ||
| 6663 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION TransformationType; | ||
| 6664 | INT TransformationMatrix[ 8 ]; | ||
| 6665 | BOOL InvalidAffineSet; | ||
| 6666 | } D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO; | ||
| 6667 | |||
| 6668 | typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR | ||
| 6669 | { | ||
| 6670 | UINT ReconstructedPictureResourceIndex; | ||
| 6671 | UINT TemporalLayerIndexPlus1; | ||
| 6672 | UINT SpatialLayerIndexPlus1; | ||
| 6673 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType; | ||
| 6674 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO WarpedMotionInfo; | ||
| 6675 | UINT OrderHint; | ||
| 6676 | UINT PictureIndex; | ||
| 6677 | } D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR; | ||
| 6678 | |||
| 6679 | typedef | ||
| 6680 | enum D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS | ||
| 6681 | { | ||
| 6682 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_NONE = 0, | ||
| 6683 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_ERROR_RESILIENT_MODE = 0x1, | ||
| 6684 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_CDF_UPDATE = 0x2, | ||
| 6685 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_PALETTE_ENCODING = 0x4, | ||
| 6686 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_SKIP_MODE = 0x8, | ||
| 6687 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x10, | ||
| 6688 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FORCE_INTEGER_MOTION_VECTORS = 0x20, | ||
| 6689 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_INTRA_BLOCK_COPY = 0x40, | ||
| 6690 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_USE_SUPER_RESOLUTION = 0x80, | ||
| 6691 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_FRAME_END_UPDATE_CDF = 0x100, | ||
| 6692 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_AUTO = 0x200, | ||
| 6693 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_CUSTOM = 0x400, | ||
| 6694 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_WARPED_MOTION = 0x800, | ||
| 6695 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_REDUCED_TX_SET = 0x1000, | ||
| 6696 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_MOTION_MODE_SWITCHABLE = 0x2000, | ||
| 6697 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_HIGH_PRECISION_MV = 0x4000 | ||
| 6698 | } D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS; | ||
| 6699 | |||
| 6700 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS) | ||
| 6701 | typedef struct D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG | ||
| 6702 | { | ||
| 6703 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE FrameRestorationType[ 3 ]; | ||
| 6704 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE LoopRestorationPixelSize[ 3 ]; | ||
| 6705 | } D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG; | ||
| 6706 | |||
| 6707 | typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA | ||
| 6708 | { | ||
| 6709 | UINT64 EnabledFeatures; | ||
| 6710 | INT64 FeatureValue[ 8 ]; | ||
| 6711 | } D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA; | ||
| 6712 | |||
| 6713 | typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG | ||
| 6714 | { | ||
| 6715 | UINT64 UpdateMap; | ||
| 6716 | UINT64 TemporalUpdate; | ||
| 6717 | UINT64 UpdateData; | ||
| 6718 | UINT64 NumSegments; | ||
| 6719 | D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA SegmentsData[ 8 ]; | ||
| 6720 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG; | ||
| 6721 | |||
| 6722 | typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP | ||
| 6723 | { | ||
| 6724 | UINT SegmentsMapByteSize; | ||
| 6725 | UINT8 *pSegmentsMap; | ||
| 6726 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP; | ||
| 6727 | |||
| 6728 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG | ||
| 6729 | { | ||
| 6730 | UINT64 LoopFilterLevel[ 2 ]; | ||
| 6731 | UINT64 LoopFilterLevelU; | ||
| 6732 | UINT64 LoopFilterLevelV; | ||
| 6733 | UINT64 LoopFilterSharpnessLevel; | ||
| 6734 | UINT64 LoopFilterDeltaEnabled; | ||
| 6735 | UINT64 UpdateRefDelta; | ||
| 6736 | INT64 RefDeltas[ 8 ]; | ||
| 6737 | UINT64 UpdateModeDelta; | ||
| 6738 | INT64 ModeDeltas[ 2 ]; | ||
| 6739 | } D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG; | ||
| 6740 | |||
| 6741 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG | ||
| 6742 | { | ||
| 6743 | UINT64 DeltaLFPresent; | ||
| 6744 | UINT64 DeltaLFMulti; | ||
| 6745 | UINT64 DeltaLFRes; | ||
| 6746 | } D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG; | ||
| 6747 | |||
| 6748 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG | ||
| 6749 | { | ||
| 6750 | UINT64 BaseQIndex; | ||
| 6751 | INT64 YDCDeltaQ; | ||
| 6752 | INT64 UDCDeltaQ; | ||
| 6753 | INT64 UACDeltaQ; | ||
| 6754 | INT64 VDCDeltaQ; | ||
| 6755 | INT64 VACDeltaQ; | ||
| 6756 | UINT64 UsingQMatrix; | ||
| 6757 | UINT64 QMY; | ||
| 6758 | UINT64 QMU; | ||
| 6759 | UINT64 QMV; | ||
| 6760 | } D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG; | ||
| 6761 | |||
| 6762 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG | ||
| 6763 | { | ||
| 6764 | UINT64 DeltaQPresent; | ||
| 6765 | UINT64 DeltaQRes; | ||
| 6766 | } D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG; | ||
| 6767 | |||
| 6768 | typedef struct D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG | ||
| 6769 | { | ||
| 6770 | UINT64 CdefBits; | ||
| 6771 | UINT64 CdefDampingMinus3; | ||
| 6772 | UINT64 CdefYPriStrength[ 8 ]; | ||
| 6773 | UINT64 CdefUVPriStrength[ 8 ]; | ||
| 6774 | UINT64 CdefYSecStrength[ 8 ]; | ||
| 6775 | UINT64 CdefUVSecStrength[ 8 ]; | ||
| 6776 | } D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG; | ||
| 6777 | |||
| 6778 | typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA | ||
| 6779 | { | ||
| 6780 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS Flags; | ||
| 6781 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType; | ||
| 6782 | D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE CompoundPredictionType; | ||
| 6783 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS InterpolationFilter; | ||
| 6784 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG FrameRestorationConfig; | ||
| 6785 | D3D12_VIDEO_ENCODER_AV1_TX_MODE TxMode; | ||
| 6786 | UINT SuperResDenominator; | ||
| 6787 | UINT OrderHint; | ||
| 6788 | UINT PictureIndex; | ||
| 6789 | UINT TemporalLayerIndexPlus1; | ||
| 6790 | UINT SpatialLayerIndexPlus1; | ||
| 6791 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR ReferenceFramesReconPictureDescriptors[ 8 ]; | ||
| 6792 | UINT ReferenceIndices[ 7 ]; | ||
| 6793 | UINT PrimaryRefFrame; | ||
| 6794 | UINT RefreshFrameFlags; | ||
| 6795 | D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter; | ||
| 6796 | D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta; | ||
| 6797 | D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization; | ||
| 6798 | D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta; | ||
| 6799 | D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF; | ||
| 6800 | UINT QPMapValuesCount; | ||
| 6801 | _Field_size_full_(QPMapValuesCount) INT16 *pRateControlQPMap; | ||
| 6802 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG CustomSegmentation; | ||
| 6803 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP CustomSegmentsMap; | ||
| 6804 | } D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA; | ||
| 6805 | |||
| 6806 | typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES | ||
| 6807 | { | ||
| 6808 | UINT64 RowCount; | ||
| 6809 | UINT64 ColCount; | ||
| 6810 | UINT64 RowHeights[ 64 ]; | ||
| 6811 | UINT64 ColWidths[ 64 ]; | ||
| 6812 | UINT64 ContextUpdateTileId; | ||
| 6813 | } D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES; | ||
| 6814 | |||
| 6815 | typedef struct D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES | ||
| 6816 | { | ||
| 6817 | UINT64 CompoundPredictionType; | ||
| 6818 | D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter; | ||
| 6819 | D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta; | ||
| 6820 | D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization; | ||
| 6821 | D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta; | ||
| 6822 | D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF; | ||
| 6823 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG SegmentationConfig; | ||
| 6824 | UINT64 PrimaryRefFrame; | ||
| 6825 | UINT64 ReferenceIndices[ 7 ]; | ||
| 6826 | } D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES; | ||
| 6827 | |||
| 6828 | typedef | ||
| 6829 | enum D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE | ||
| 6830 | { | ||
| 6831 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_ABSOLUTE_QP_MAP = 0, | ||
| 6832 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CQP = 1, | ||
| 6833 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CBR = 2, | ||
| 6834 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_VBR = 3, | ||
| 6835 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_QVBR = 4 | ||
| 6836 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE; | ||
| 6837 | |||
| 6838 | typedef | ||
| 6839 | enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS | ||
| 6840 | { | ||
| 6841 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_NONE = 0, | ||
| 6842 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_DELTA_QP = 0x1, | ||
| 6843 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_FRAME_ANALYSIS = 0x2, | ||
| 6844 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE = 0x4, | ||
| 6845 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_INITIAL_QP = 0x8, | ||
| 6846 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE = 0x10, | ||
| 6847 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES = 0x20, | ||
| 6848 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_EXTENSION1_SUPPORT = 0x40, | ||
| 6849 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QUALITY_VS_SPEED = 0x80, | ||
| 6850 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_SPATIAL_ADAPTIVE_QP = 0x100 | ||
| 6851 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS; | ||
| 6852 | |||
| 6853 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS) | ||
| 6854 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP | ||
| 6855 | { | ||
| 6856 | UINT ConstantQP_FullIntracodedFrame; | ||
| 6857 | UINT ConstantQP_InterPredictedFrame_PrevRefOnly; | ||
| 6858 | UINT ConstantQP_InterPredictedFrame_BiDirectionalRef; | ||
| 6859 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP; | ||
| 6860 | |||
| 6861 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1 | ||
| 6862 | { | ||
| 6863 | UINT ConstantQP_FullIntracodedFrame; | ||
| 6864 | UINT ConstantQP_InterPredictedFrame_PrevRefOnly; | ||
| 6865 | UINT ConstantQP_InterPredictedFrame_BiDirectionalRef; | ||
| 6866 | UINT QualityVsSpeed; | ||
| 6867 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1; | ||
| 6868 | |||
| 6869 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR | ||
| 6870 | { | ||
| 6871 | UINT InitialQP; | ||
| 6872 | UINT MinQP; | ||
| 6873 | UINT MaxQP; | ||
| 6874 | UINT64 MaxFrameBitSize; | ||
| 6875 | UINT64 TargetBitRate; | ||
| 6876 | UINT64 VBVCapacity; | ||
| 6877 | UINT64 InitialVBVFullness; | ||
| 6878 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR; | ||
| 6879 | |||
| 6880 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1 | ||
| 6881 | { | ||
| 6882 | UINT InitialQP; | ||
| 6883 | UINT MinQP; | ||
| 6884 | UINT MaxQP; | ||
| 6885 | UINT64 MaxFrameBitSize; | ||
| 6886 | UINT64 TargetBitRate; | ||
| 6887 | UINT64 VBVCapacity; | ||
| 6888 | UINT64 InitialVBVFullness; | ||
| 6889 | UINT QualityVsSpeed; | ||
| 6890 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1; | ||
| 6891 | |||
| 6892 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR | ||
| 6893 | { | ||
| 6894 | UINT InitialQP; | ||
| 6895 | UINT MinQP; | ||
| 6896 | UINT MaxQP; | ||
| 6897 | UINT64 MaxFrameBitSize; | ||
| 6898 | UINT64 TargetAvgBitRate; | ||
| 6899 | UINT64 PeakBitRate; | ||
| 6900 | UINT64 VBVCapacity; | ||
| 6901 | UINT64 InitialVBVFullness; | ||
| 6902 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR; | ||
| 6903 | |||
| 6904 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1 | ||
| 6905 | { | ||
| 6906 | UINT InitialQP; | ||
| 6907 | UINT MinQP; | ||
| 6908 | UINT MaxQP; | ||
| 6909 | UINT64 MaxFrameBitSize; | ||
| 6910 | UINT64 TargetAvgBitRate; | ||
| 6911 | UINT64 PeakBitRate; | ||
| 6912 | UINT64 VBVCapacity; | ||
| 6913 | UINT64 InitialVBVFullness; | ||
| 6914 | UINT QualityVsSpeed; | ||
| 6915 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1; | ||
| 6916 | |||
| 6917 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR | ||
| 6918 | { | ||
| 6919 | UINT InitialQP; | ||
| 6920 | UINT MinQP; | ||
| 6921 | UINT MaxQP; | ||
| 6922 | UINT64 MaxFrameBitSize; | ||
| 6923 | UINT64 TargetAvgBitRate; | ||
| 6924 | UINT64 PeakBitRate; | ||
| 6925 | UINT ConstantQualityTarget; | ||
| 6926 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR; | ||
| 6927 | |||
| 6928 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1 | ||
| 6929 | { | ||
| 6930 | UINT InitialQP; | ||
| 6931 | UINT MinQP; | ||
| 6932 | UINT MaxQP; | ||
| 6933 | UINT64 MaxFrameBitSize; | ||
| 6934 | UINT64 TargetAvgBitRate; | ||
| 6935 | UINT64 PeakBitRate; | ||
| 6936 | UINT ConstantQualityTarget; | ||
| 6937 | UINT64 VBVCapacity; | ||
| 6938 | UINT64 InitialVBVFullness; | ||
| 6939 | UINT QualityVsSpeed; | ||
| 6940 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1; | ||
| 6941 | |||
| 6942 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP | ||
| 6943 | { | ||
| 6944 | UINT QualityVsSpeed; | ||
| 6945 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP; | ||
| 6946 | |||
| 6947 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS | ||
| 6948 | { | ||
| 6949 | UINT DataSize; | ||
| 6950 | union | ||
| 6951 | { | ||
| 6952 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP *pConfiguration_CQP; | ||
| 6953 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR *pConfiguration_CBR; | ||
| 6954 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR *pConfiguration_VBR; | ||
| 6955 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR *pConfiguration_QVBR; | ||
| 6956 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1 *pConfiguration_CQP1; | ||
| 6957 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1 *pConfiguration_CBR1; | ||
| 6958 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1 *pConfiguration_VBR1; | ||
| 6959 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1 *pConfiguration_QVBR1; | ||
| 6960 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP *pConfiguration_AbsoluteQPMap; | ||
| 6961 | } ; | ||
| 6962 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS; | ||
| 6963 | |||
| 6964 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL | ||
| 6965 | { | ||
| 6966 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE Mode; | ||
| 6967 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS Flags; | ||
| 6968 | D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS ConfigParams; | ||
| 6969 | DXGI_RATIONAL TargetFrameRate; | ||
| 6970 | } D3D12_VIDEO_ENCODER_RATE_CONTROL; | ||
| 6971 | |||
| 6972 | typedef | ||
| 6973 | enum D3D12_VIDEO_ENCODER_CODEC | ||
| 6974 | { | ||
| 6975 | D3D12_VIDEO_ENCODER_CODEC_H264 = 0, | ||
| 6976 | D3D12_VIDEO_ENCODER_CODEC_HEVC = 1, | ||
| 6977 | D3D12_VIDEO_ENCODER_CODEC_AV1 = 2 | ||
| 6978 | } D3D12_VIDEO_ENCODER_CODEC; | ||
| 6979 | |||
| 6980 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC | ||
| 6981 | { | ||
| 6982 | UINT NodeIndex; | ||
| 6983 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 6984 | BOOL IsSupported; | ||
| 6985 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC; | ||
| 6986 | |||
| 6987 | typedef | ||
| 6988 | enum D3D12_VIDEO_ENCODER_PROFILE_H264 | ||
| 6989 | { | ||
| 6990 | D3D12_VIDEO_ENCODER_PROFILE_H264_MAIN = 0, | ||
| 6991 | D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH = 1, | ||
| 6992 | D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH_10 = 2 | ||
| 6993 | } D3D12_VIDEO_ENCODER_PROFILE_H264; | ||
| 6994 | |||
| 6995 | typedef | ||
| 6996 | enum D3D12_VIDEO_ENCODER_PROFILE_HEVC | ||
| 6997 | { | ||
| 6998 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN = 0, | ||
| 6999 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10 = 1, | ||
| 7000 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12 = 2, | ||
| 7001 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_422 = 3, | ||
| 7002 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_422 = 4, | ||
| 7003 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN_444 = 5, | ||
| 7004 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_444 = 6, | ||
| 7005 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_444 = 7, | ||
| 7006 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN16_444 = 8 | ||
| 7007 | } D3D12_VIDEO_ENCODER_PROFILE_HEVC; | ||
| 7008 | |||
| 7009 | typedef struct D3D12_VIDEO_ENCODER_PROFILE_DESC | ||
| 7010 | { | ||
| 7011 | UINT DataSize; | ||
| 7012 | union | ||
| 7013 | { | ||
| 7014 | D3D12_VIDEO_ENCODER_PROFILE_H264 *pH264Profile; | ||
| 7015 | D3D12_VIDEO_ENCODER_PROFILE_HEVC *pHEVCProfile; | ||
| 7016 | D3D12_VIDEO_ENCODER_AV1_PROFILE *pAV1Profile; | ||
| 7017 | } ; | ||
| 7018 | } D3D12_VIDEO_ENCODER_PROFILE_DESC; | ||
| 7019 | |||
| 7020 | typedef | ||
| 7021 | enum D3D12_VIDEO_ENCODER_LEVELS_H264 | ||
| 7022 | { | ||
| 7023 | D3D12_VIDEO_ENCODER_LEVELS_H264_1 = 0, | ||
| 7024 | D3D12_VIDEO_ENCODER_LEVELS_H264_1b = 1, | ||
| 7025 | D3D12_VIDEO_ENCODER_LEVELS_H264_11 = 2, | ||
| 7026 | D3D12_VIDEO_ENCODER_LEVELS_H264_12 = 3, | ||
| 7027 | D3D12_VIDEO_ENCODER_LEVELS_H264_13 = 4, | ||
| 7028 | D3D12_VIDEO_ENCODER_LEVELS_H264_2 = 5, | ||
| 7029 | D3D12_VIDEO_ENCODER_LEVELS_H264_21 = 6, | ||
| 7030 | D3D12_VIDEO_ENCODER_LEVELS_H264_22 = 7, | ||
| 7031 | D3D12_VIDEO_ENCODER_LEVELS_H264_3 = 8, | ||
| 7032 | D3D12_VIDEO_ENCODER_LEVELS_H264_31 = 9, | ||
| 7033 | D3D12_VIDEO_ENCODER_LEVELS_H264_32 = 10, | ||
| 7034 | D3D12_VIDEO_ENCODER_LEVELS_H264_4 = 11, | ||
| 7035 | D3D12_VIDEO_ENCODER_LEVELS_H264_41 = 12, | ||
| 7036 | D3D12_VIDEO_ENCODER_LEVELS_H264_42 = 13, | ||
| 7037 | D3D12_VIDEO_ENCODER_LEVELS_H264_5 = 14, | ||
| 7038 | D3D12_VIDEO_ENCODER_LEVELS_H264_51 = 15, | ||
| 7039 | D3D12_VIDEO_ENCODER_LEVELS_H264_52 = 16, | ||
| 7040 | D3D12_VIDEO_ENCODER_LEVELS_H264_6 = 17, | ||
| 7041 | D3D12_VIDEO_ENCODER_LEVELS_H264_61 = 18, | ||
| 7042 | D3D12_VIDEO_ENCODER_LEVELS_H264_62 = 19 | ||
| 7043 | } D3D12_VIDEO_ENCODER_LEVELS_H264; | ||
| 7044 | |||
| 7045 | typedef | ||
| 7046 | enum D3D12_VIDEO_ENCODER_TIER_HEVC | ||
| 7047 | { | ||
| 7048 | D3D12_VIDEO_ENCODER_TIER_HEVC_MAIN = 0, | ||
| 7049 | D3D12_VIDEO_ENCODER_TIER_HEVC_HIGH = 1 | ||
| 7050 | } D3D12_VIDEO_ENCODER_TIER_HEVC; | ||
| 7051 | |||
| 7052 | typedef | ||
| 7053 | enum D3D12_VIDEO_ENCODER_LEVELS_HEVC | ||
| 7054 | { | ||
| 7055 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_1 = 0, | ||
| 7056 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_2 = 1, | ||
| 7057 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_21 = 2, | ||
| 7058 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_3 = 3, | ||
| 7059 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_31 = 4, | ||
| 7060 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_4 = 5, | ||
| 7061 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_41 = 6, | ||
| 7062 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_5 = 7, | ||
| 7063 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_51 = 8, | ||
| 7064 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_52 = 9, | ||
| 7065 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_6 = 10, | ||
| 7066 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_61 = 11, | ||
| 7067 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_62 = 12 | ||
| 7068 | } D3D12_VIDEO_ENCODER_LEVELS_HEVC; | ||
| 7069 | |||
| 7070 | typedef struct D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC | ||
| 7071 | { | ||
| 7072 | D3D12_VIDEO_ENCODER_LEVELS_HEVC Level; | ||
| 7073 | D3D12_VIDEO_ENCODER_TIER_HEVC Tier; | ||
| 7074 | } D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC; | ||
| 7075 | |||
| 7076 | typedef struct D3D12_VIDEO_ENCODER_LEVEL_SETTING | ||
| 7077 | { | ||
| 7078 | UINT DataSize; | ||
| 7079 | union | ||
| 7080 | { | ||
| 7081 | D3D12_VIDEO_ENCODER_LEVELS_H264 *pH264LevelSetting; | ||
| 7082 | D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC *pHEVCLevelSetting; | ||
| 7083 | D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS *pAV1LevelSetting; | ||
| 7084 | } ; | ||
| 7085 | } D3D12_VIDEO_ENCODER_LEVEL_SETTING; | ||
| 7086 | |||
| 7087 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL | ||
| 7088 | { | ||
| 7089 | UINT NodeIndex; | ||
| 7090 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7091 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 7092 | BOOL IsSupported; | ||
| 7093 | D3D12_VIDEO_ENCODER_LEVEL_SETTING MinSupportedLevel; | ||
| 7094 | D3D12_VIDEO_ENCODER_LEVEL_SETTING MaxSupportedLevel; | ||
| 7095 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL; | ||
| 7096 | |||
| 7097 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC | ||
| 7098 | { | ||
| 7099 | UINT Width; | ||
| 7100 | UINT Height; | ||
| 7101 | } D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC; | ||
| 7102 | |||
| 7103 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC | ||
| 7104 | { | ||
| 7105 | UINT WidthRatio; | ||
| 7106 | UINT HeightRatio; | ||
| 7107 | } D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC; | ||
| 7108 | |||
| 7109 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT | ||
| 7110 | { | ||
| 7111 | UINT NodeIndex; | ||
| 7112 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7113 | UINT ResolutionRatiosCount; | ||
| 7114 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT; | ||
| 7115 | |||
| 7116 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION | ||
| 7117 | { | ||
| 7118 | UINT NodeIndex; | ||
| 7119 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7120 | UINT ResolutionRatiosCount; | ||
| 7121 | BOOL IsSupported; | ||
| 7122 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MinResolutionSupported; | ||
| 7123 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MaxResolutionSupported; | ||
| 7124 | UINT ResolutionWidthMultipleRequirement; | ||
| 7125 | UINT ResolutionHeightMultipleRequirement; | ||
| 7126 | _Field_size_full_(ResolutionRatiosCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC *pResolutionRatios; | ||
| 7127 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION; | ||
| 7128 | |||
| 7129 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT | ||
| 7130 | { | ||
| 7131 | UINT NodeIndex; | ||
| 7132 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7133 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 7134 | DXGI_FORMAT Format; | ||
| 7135 | BOOL IsSupported; | ||
| 7136 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT; | ||
| 7137 | |||
| 7138 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE | ||
| 7139 | { | ||
| 7140 | UINT NodeIndex; | ||
| 7141 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7142 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE RateControlMode; | ||
| 7143 | BOOL IsSupported; | ||
| 7144 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE; | ||
| 7145 | |||
| 7146 | typedef | ||
| 7147 | enum D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE | ||
| 7148 | { | ||
| 7149 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE = 0, | ||
| 7150 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ROW_BASED = 1 | ||
| 7151 | } D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE; | ||
| 7152 | |||
| 7153 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE | ||
| 7154 | { | ||
| 7155 | UINT NodeIndex; | ||
| 7156 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7157 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 7158 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; | ||
| 7159 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefreshMode; | ||
| 7160 | BOOL IsSupported; | ||
| 7161 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE; | ||
| 7162 | |||
| 7163 | typedef | ||
| 7164 | enum D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE | ||
| 7165 | { | ||
| 7166 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_FULL_FRAME = 0, | ||
| 7167 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION = 1, | ||
| 7168 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED = 2, | ||
| 7169 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_ROWS_PER_SUBREGION = 3, | ||
| 7170 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME = 4, | ||
| 7171 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_GRID_PARTITION = 5, | ||
| 7172 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_CONFIGURABLE_GRID_PARTITION = 6, | ||
| 7173 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_AUTO = 7 | ||
| 7174 | } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE; | ||
| 7175 | |||
| 7176 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE | ||
| 7177 | { | ||
| 7178 | UINT NodeIndex; | ||
| 7179 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7180 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 7181 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; | ||
| 7182 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode; | ||
| 7183 | BOOL IsSupported; | ||
| 7184 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE; | ||
| 7185 | |||
| 7186 | typedef | ||
| 7187 | enum D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS | ||
| 7188 | { | ||
| 7189 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NONE = 0, | ||
| 7190 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NOT_SPECIFIED = 0x1, | ||
| 7191 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_CODEC_CONSTRAINT = 0x2, | ||
| 7192 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_HARDWARE_CONSTRAINT = 0x4, | ||
| 7193 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_ROWS_COUNT = 0x8, | ||
| 7194 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_COLS_COUNT = 0x10, | ||
| 7195 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_WIDTH = 0x20, | ||
| 7196 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_AREA = 0x40, | ||
| 7197 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_TOTAL_TILES = 0x80 | ||
| 7198 | } D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS; | ||
| 7199 | |||
| 7200 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS) | ||
| 7201 | typedef struct D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT | ||
| 7202 | { | ||
| 7203 | BOOL Use128SuperBlocks; | ||
| 7204 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES TilesConfiguration; | ||
| 7205 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS ValidationFlags; | ||
| 7206 | UINT MinTileRows; | ||
| 7207 | UINT MaxTileRows; | ||
| 7208 | UINT MinTileCols; | ||
| 7209 | UINT MaxTileCols; | ||
| 7210 | UINT MinTileWidth; | ||
| 7211 | UINT MaxTileWidth; | ||
| 7212 | UINT MinTileArea; | ||
| 7213 | UINT MaxTileArea; | ||
| 7214 | UINT TileSizeBytesMinus1; | ||
| 7215 | } D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT; | ||
| 7216 | |||
| 7217 | typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT | ||
| 7218 | { | ||
| 7219 | UINT DataSize; | ||
| 7220 | union | ||
| 7221 | { | ||
| 7222 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT *pAV1Support; | ||
| 7223 | } ; | ||
| 7224 | } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT; | ||
| 7225 | |||
| 7226 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG | ||
| 7227 | { | ||
| 7228 | UINT NodeIndex; | ||
| 7229 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7230 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 7231 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; | ||
| 7232 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode; | ||
| 7233 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC FrameResolution; | ||
| 7234 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT CodecSupport; | ||
| 7235 | BOOL IsSupported; | ||
| 7236 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG; | ||
| 7237 | |||
| 7238 | typedef | ||
| 7239 | enum D3D12_VIDEO_ENCODER_HEAP_FLAGS | ||
| 7240 | { | ||
| 7241 | D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = 0, | ||
| 7242 | D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS = 0x1, | ||
| 7243 | D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_SINGLE_BUFFER = 0x2, | ||
| 7244 | D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_DIRTY_REGIONS = 0x4, | ||
| 7245 | D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_RATE_CONTROL_FRAME_ANALYSIS = 0x8 | ||
| 7246 | } D3D12_VIDEO_ENCODER_HEAP_FLAGS; | ||
| 7247 | |||
| 7248 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS) | ||
| 7249 | typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC | ||
| 7250 | { | ||
| 7251 | UINT NodeMask; | ||
| 7252 | D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags; | ||
| 7253 | D3D12_VIDEO_ENCODER_CODEC EncodeCodec; | ||
| 7254 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; | ||
| 7255 | D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel; | ||
| 7256 | UINT ResolutionsListCount; | ||
| 7257 | _Field_size_full_(ResolutionsListCount) const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList; | ||
| 7258 | } D3D12_VIDEO_ENCODER_HEAP_DESC; | ||
| 7259 | |||
| 7260 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE | ||
| 7261 | { | ||
| 7262 | D3D12_VIDEO_ENCODER_HEAP_DESC HeapDesc; | ||
| 7263 | BOOL IsSupported; | ||
| 7264 | UINT64 MemoryPoolL0Size; | ||
| 7265 | UINT64 MemoryPoolL1Size; | ||
| 7266 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE; | ||
| 7267 | |||
| 7268 | typedef | ||
| 7269 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS | ||
| 7270 | { | ||
| 7271 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NONE = 0, | ||
| 7272 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CABAC_ENCODING_SUPPORT = 0x1, | ||
| 7273 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2, | ||
| 7274 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x4, | ||
| 7275 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT = 0x8, | ||
| 7276 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_SPATIAL_ENCODING_SUPPORT = 0x10, | ||
| 7277 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_TEMPORAL_ENCODING_SUPPORT = 0x20, | ||
| 7278 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x40, | ||
| 7279 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x80 | ||
| 7280 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS; | ||
| 7281 | |||
| 7282 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS) | ||
| 7283 | typedef | ||
| 7284 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES | ||
| 7285 | { | ||
| 7286 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = 0, | ||
| 7287 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES = 1, | ||
| 7288 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = 2, | ||
| 7289 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING = 3, | ||
| 7290 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES = 4, | ||
| 7291 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = 5, | ||
| 7292 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = 6 | ||
| 7293 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES; | ||
| 7294 | |||
| 7295 | typedef | ||
| 7296 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS | ||
| 7297 | { | ||
| 7298 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_NONE = 0, | ||
| 7299 | 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 ) , | ||
| 7300 | 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 ) , | ||
| 7301 | 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 ) , | ||
| 7302 | 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 ) , | ||
| 7303 | 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 ) , | ||
| 7304 | 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 ) , | ||
| 7305 | 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 ) | ||
| 7306 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS; | ||
| 7307 | |||
| 7308 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS) | ||
| 7309 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 | ||
| 7310 | { | ||
| 7311 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS SupportFlags; | ||
| 7312 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS DisableDeblockingFilterSupportedModes; | ||
| 7313 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264; | ||
| 7314 | |||
| 7315 | typedef | ||
| 7316 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS | ||
| 7317 | { | ||
| 7318 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NONE = 0, | ||
| 7319 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x1, | ||
| 7320 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2, | ||
| 7321 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x4, | ||
| 7322 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_SAO_FILTER_SUPPORT = 0x8, | ||
| 7323 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_SUPPORT = 0x10, | ||
| 7324 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_REQUIRED = 0x20, | ||
| 7325 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_SUPPORT = 0x40, | ||
| 7326 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT = 0x80, | ||
| 7327 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES = 0x100, | ||
| 7328 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x200, | ||
| 7329 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_SUPPORT = 0x400, | ||
| 7330 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_REQUIRED = 0x800, | ||
| 7331 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_SUPPORT = 0x1000, | ||
| 7332 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_REQUIRED = 0x2000, | ||
| 7333 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_SUPPORT = 0x4000, | ||
| 7334 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_REQUIRED = 0x8000, | ||
| 7335 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_SUPPORT = 0x10000, | ||
| 7336 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_REQUIRED = 0x20000, | ||
| 7337 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_SUPPORT = 0x40000, | ||
| 7338 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_REQUIRED = 0x80000, | ||
| 7339 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_SUPPORT = 0x100000, | ||
| 7340 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_REQUIRED = 0x200000, | ||
| 7341 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_SUPPORT = 0x400000, | ||
| 7342 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_REQUIRED = 0x800000, | ||
| 7343 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_SUPPORT = 0x1000000, | ||
| 7344 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_REQUIRED = 0x2000000, | ||
| 7345 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_SUPPORT = 0x4000000, | ||
| 7346 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_REQUIRED = 0x8000000, | ||
| 7347 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_SUPPORT = 0x10000000, | ||
| 7348 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_REQUIRED = 0x20000000, | ||
| 7349 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_SUPPORT = 0x40000000, | ||
| 7350 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_REQUIRED = 0x80000000 | ||
| 7351 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS; | ||
| 7352 | |||
| 7353 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS) | ||
| 7354 | typedef | ||
| 7355 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE | ||
| 7356 | { | ||
| 7357 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_8x8 = 0, | ||
| 7358 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_16x16 = 1, | ||
| 7359 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_32x32 = 2, | ||
| 7360 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_64x64 = 3 | ||
| 7361 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE; | ||
| 7362 | |||
| 7363 | typedef | ||
| 7364 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE | ||
| 7365 | { | ||
| 7366 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_4x4 = 0, | ||
| 7367 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_8x8 = 1, | ||
| 7368 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_16x16 = 2, | ||
| 7369 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_32x32 = 3 | ||
| 7370 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE; | ||
| 7371 | |||
| 7372 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC | ||
| 7373 | { | ||
| 7374 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags; | ||
| 7375 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; | ||
| 7376 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; | ||
| 7377 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; | ||
| 7378 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; | ||
| 7379 | UCHAR max_transform_hierarchy_depth_inter; | ||
| 7380 | UCHAR max_transform_hierarchy_depth_intra; | ||
| 7381 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC; | ||
| 7382 | |||
| 7383 | typedef | ||
| 7384 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1 | ||
| 7385 | { | ||
| 7386 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_NONE = 0, | ||
| 7387 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_SUPPORT = 0x1, | ||
| 7388 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_REQUIRED = 0x2 | ||
| 7389 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1; | ||
| 7390 | |||
| 7391 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1) | ||
| 7392 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1 | ||
| 7393 | { | ||
| 7394 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags; | ||
| 7395 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; | ||
| 7396 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; | ||
| 7397 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; | ||
| 7398 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; | ||
| 7399 | UCHAR max_transform_hierarchy_depth_inter; | ||
| 7400 | UCHAR max_transform_hierarchy_depth_intra; | ||
| 7401 | UINT allowed_diff_cu_chroma_qp_offset_depth_values; | ||
| 7402 | UINT allowed_log2_sao_offset_scale_luma_values; | ||
| 7403 | UINT allowed_log2_sao_offset_scale_chroma_values; | ||
| 7404 | UINT allowed_log2_max_transform_skip_block_size_minus2_values; | ||
| 7405 | UINT allowed_chroma_qp_offset_list_len_minus1_values; | ||
| 7406 | UINT allowed_cb_qp_offset_list_values[ 6 ]; | ||
| 7407 | UINT allowed_cr_qp_offset_list_values[ 6 ]; | ||
| 7408 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1 SupportFlags1; | ||
| 7409 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1; | ||
| 7410 | |||
| 7411 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT | ||
| 7412 | { | ||
| 7413 | UINT DataSize; | ||
| 7414 | union | ||
| 7415 | { | ||
| 7416 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 *pH264Support; | ||
| 7417 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC *pHEVCSupport; | ||
| 7418 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1 *pHEVCSupport1; | ||
| 7419 | D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT *pAV1Support; | ||
| 7420 | } ; | ||
| 7421 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT; | ||
| 7422 | |||
| 7423 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT | ||
| 7424 | { | ||
| 7425 | UINT NodeIndex; | ||
| 7426 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7427 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 7428 | BOOL IsSupported; | ||
| 7429 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT CodecSupportLimits; | ||
| 7430 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT; | ||
| 7431 | |||
| 7432 | typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 | ||
| 7433 | { | ||
| 7434 | UINT MaxL0ReferencesForP; | ||
| 7435 | UINT MaxL0ReferencesForB; | ||
| 7436 | UINT MaxL1ReferencesForB; | ||
| 7437 | UINT MaxLongTermReferences; | ||
| 7438 | UINT MaxDPBCapacity; | ||
| 7439 | } D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264; | ||
| 7440 | |||
| 7441 | typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC | ||
| 7442 | { | ||
| 7443 | UINT MaxL0ReferencesForP; | ||
| 7444 | UINT MaxL0ReferencesForB; | ||
| 7445 | UINT MaxL1ReferencesForB; | ||
| 7446 | UINT MaxLongTermReferences; | ||
| 7447 | UINT MaxDPBCapacity; | ||
| 7448 | } D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC; | ||
| 7449 | |||
| 7450 | typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT | ||
| 7451 | { | ||
| 7452 | UINT DataSize; | ||
| 7453 | union | ||
| 7454 | { | ||
| 7455 | D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 *pH264Support; | ||
| 7456 | D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC *pHEVCSupport; | ||
| 7457 | D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT *pAV1Support; | ||
| 7458 | } ; | ||
| 7459 | } D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT; | ||
| 7460 | |||
| 7461 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT | ||
| 7462 | { | ||
| 7463 | UINT NodeIndex; | ||
| 7464 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7465 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 7466 | BOOL IsSupported; | ||
| 7467 | D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT PictureSupport; | ||
| 7468 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT; | ||
| 7469 | |||
| 7470 | typedef | ||
| 7471 | enum D3D12_VIDEO_ENCODER_SUPPORT_FLAGS | ||
| 7472 | { | ||
| 7473 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_NONE = 0, | ||
| 7474 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK = 0x1, | ||
| 7475 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE = 0x2, | ||
| 7476 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE = 0x4, | ||
| 7477 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE = 0x8, | ||
| 7478 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE = 0x10, | ||
| 7479 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS = 0x20, | ||
| 7480 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE = 0x40, | ||
| 7481 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE = 0x80, | ||
| 7482 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE = 0x100, | ||
| 7483 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_INITIAL_QP_AVAILABLE = 0x200, | ||
| 7484 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE = 0x400, | ||
| 7485 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE = 0x800, | ||
| 7486 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE = 0x1000, | ||
| 7487 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_EXTENSION1_SUPPORT = 0x2000, | ||
| 7488 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_QUALITY_VS_SPEED_AVAILABLE = 0x4000, | ||
| 7489 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_READABLE_RECONSTRUCTED_PICTURE_LAYOUT_AVAILABLE = 0x8000, | ||
| 7490 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_QP_MAP_METADATA_AVAILABLE = 0x10000, | ||
| 7491 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_SATD_MAP_METADATA_AVAILABLE = 0x20000, | ||
| 7492 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_RC_BIT_ALLOCATION_MAP_METADATA_AVAILABLE = 0x40000, | ||
| 7493 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS_AVAILABLE = 0x80000, | ||
| 7494 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_SINGLE_BUFFER_AVAILABLE = 0x100000, | ||
| 7495 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_FRAME_PSNR_METADATA_AVAILABLE = 0x200000, | ||
| 7496 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGIONS_PSNR_METADATA_AVAILABLE = 0x400000, | ||
| 7497 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_SPATIAL_ADAPTIVE_QP_AVAILABLE = 0x800000 | ||
| 7498 | } D3D12_VIDEO_ENCODER_SUPPORT_FLAGS; | ||
| 7499 | |||
| 7500 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS) | ||
| 7501 | typedef | ||
| 7502 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS | ||
| 7503 | { | ||
| 7504 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_NONE = 0, | ||
| 7505 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x1, | ||
| 7506 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_ADAPTIVE_8x8_TRANSFORM = 0x2, | ||
| 7507 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ENABLE_CABAC_ENCODING = 0x4, | ||
| 7508 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x8 | ||
| 7509 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS; | ||
| 7510 | |||
| 7511 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS) | ||
| 7512 | typedef | ||
| 7513 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES | ||
| 7514 | { | ||
| 7515 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_DISABLED = 0, | ||
| 7516 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_TEMPORAL = 1, | ||
| 7517 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_SPATIAL = 2 | ||
| 7518 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES; | ||
| 7519 | |||
| 7520 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 | ||
| 7521 | { | ||
| 7522 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS ConfigurationFlags; | ||
| 7523 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES DirectModeConfig; | ||
| 7524 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES DisableDeblockingFilterConfig; | ||
| 7525 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264; | ||
| 7526 | |||
| 7527 | typedef | ||
| 7528 | enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS | ||
| 7529 | { | ||
| 7530 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_NONE = 0, | ||
| 7531 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES = 0x1, | ||
| 7532 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x2, | ||
| 7533 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_SAO_FILTER = 0x4, | ||
| 7534 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_LONG_TERM_REFERENCES = 0x8, | ||
| 7535 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_ASYMETRIC_MOTION_PARTITION = 0x10, | ||
| 7536 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_TRANSFORM_SKIPPING = 0x20, | ||
| 7537 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x40, | ||
| 7538 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_ROTATION = 0x80, | ||
| 7539 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT = 0x100, | ||
| 7540 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_IMPLICIT_RDPCM = 0x200, | ||
| 7541 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXPLICIT_RDPCM = 0x400, | ||
| 7542 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING = 0x800, | ||
| 7543 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_INTRA_SMOOTHING_DISABLED = 0x1000, | ||
| 7544 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_HIGH_PRECISION_OFFSETS = 0x2000, | ||
| 7545 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION = 0x4000, | ||
| 7546 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT = 0x8000, | ||
| 7547 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_SEPARATE_COLOUR_PLANE = 0x10000 | ||
| 7548 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS; | ||
| 7549 | |||
| 7550 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS) | ||
| 7551 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC | ||
| 7552 | { | ||
| 7553 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS ConfigurationFlags; | ||
| 7554 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; | ||
| 7555 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; | ||
| 7556 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; | ||
| 7557 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; | ||
| 7558 | UCHAR max_transform_hierarchy_depth_inter; | ||
| 7559 | UCHAR max_transform_hierarchy_depth_intra; | ||
| 7560 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC; | ||
| 7561 | |||
| 7562 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION | ||
| 7563 | { | ||
| 7564 | UINT DataSize; | ||
| 7565 | union | ||
| 7566 | { | ||
| 7567 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 *pH264Config; | ||
| 7568 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC *pHEVCConfig; | ||
| 7569 | D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION *pAV1Config; | ||
| 7570 | } ; | ||
| 7571 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION; | ||
| 7572 | |||
| 7573 | typedef struct D3D12_VIDEO_ENCODER_INTRA_REFRESH | ||
| 7574 | { | ||
| 7575 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE Mode; | ||
| 7576 | UINT IntraRefreshDuration; | ||
| 7577 | } D3D12_VIDEO_ENCODER_INTRA_REFRESH; | ||
| 7578 | |||
| 7579 | typedef | ||
| 7580 | enum D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE | ||
| 7581 | { | ||
| 7582 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM = 0, | ||
| 7583 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_FULL_PIXEL = 1, | ||
| 7584 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_HALF_PIXEL = 2, | ||
| 7585 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL = 3, | ||
| 7586 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_EIGHTH_PIXEL = 4 | ||
| 7587 | } D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE; | ||
| 7588 | |||
| 7589 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS | ||
| 7590 | { | ||
| 7591 | UINT MaxSubregionsNumber; | ||
| 7592 | UINT MaxIntraRefreshFrameDuration; | ||
| 7593 | UINT SubregionBlockPixelsSize; | ||
| 7594 | UINT QPMapRegionPixelsSize; | ||
| 7595 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS; | ||
| 7596 | |||
| 7597 | typedef | ||
| 7598 | enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS | ||
| 7599 | { | ||
| 7600 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_NONE = 0, | ||
| 7601 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_NOT_SUPPORTED = 0x1, | ||
| 7602 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INPUT_FORMAT_NOT_SUPPORTED = 0x8, | ||
| 7603 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_CONFIGURATION_NOT_SUPPORTED = 0x10, | ||
| 7604 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_MODE_NOT_SUPPORTED = 0x20, | ||
| 7605 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED = 0x40, | ||
| 7606 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INTRA_REFRESH_MODE_NOT_SUPPORTED = 0x80, | ||
| 7607 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_MODE_NOT_SUPPORTED = 0x100, | ||
| 7608 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = 0x200, | ||
| 7609 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = 0x800, | ||
| 7610 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000, | ||
| 7611 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_QPMAP_NOT_SUPPORTED = 0x2000, | ||
| 7612 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_DIRTY_REGIONS_NOT_SUPPORTED = 0x4000, | ||
| 7613 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_MOTION_SEARCH_NOT_SUPPORTED = 0x8000, | ||
| 7614 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_FRAME_ANALYSIS_NOT_SUPPORTED = 0x10000 | ||
| 7615 | } D3D12_VIDEO_ENCODER_VALIDATION_FLAGS; | ||
| 7616 | |||
| 7617 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS) | ||
| 7618 | typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 | ||
| 7619 | { | ||
| 7620 | UINT GOPLength; | ||
| 7621 | UINT PPicturePeriod; | ||
| 7622 | UCHAR pic_order_cnt_type; | ||
| 7623 | UCHAR log2_max_frame_num_minus4; | ||
| 7624 | UCHAR log2_max_pic_order_cnt_lsb_minus4; | ||
| 7625 | } D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264; | ||
| 7626 | |||
| 7627 | typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC | ||
| 7628 | { | ||
| 7629 | UINT GOPLength; | ||
| 7630 | UINT PPicturePeriod; | ||
| 7631 | UCHAR log2_max_pic_order_cnt_lsb_minus4; | ||
| 7632 | } D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC; | ||
| 7633 | |||
| 7634 | typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE | ||
| 7635 | { | ||
| 7636 | UINT DataSize; | ||
| 7637 | union | ||
| 7638 | { | ||
| 7639 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 *pH264GroupOfPictures; | ||
| 7640 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC *pHEVCGroupOfPictures; | ||
| 7641 | D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE *pAV1SequenceStructure; | ||
| 7642 | } ; | ||
| 7643 | } D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE; | ||
| 7644 | |||
| 7645 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT | ||
| 7646 | { | ||
| 7647 | UINT NodeIndex; | ||
| 7648 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7649 | DXGI_FORMAT InputFormat; | ||
| 7650 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 7651 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; | ||
| 7652 | D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; | ||
| 7653 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh; | ||
| 7654 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 7655 | UINT ResolutionsListCount; | ||
| 7656 | const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList; | ||
| 7657 | UINT MaxReferenceFramesInDPB; | ||
| 7658 | D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; | ||
| 7659 | D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; | ||
| 7660 | D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; | ||
| 7661 | D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; | ||
| 7662 | _Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS *pResolutionDependentSupport; | ||
| 7663 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT; | ||
| 7664 | |||
| 7665 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES | ||
| 7666 | { | ||
| 7667 | union | ||
| 7668 | { | ||
| 7669 | UINT MaxBytesPerSlice; | ||
| 7670 | UINT NumberOfCodingUnitsPerSlice; | ||
| 7671 | UINT NumberOfRowsPerSlice; | ||
| 7672 | UINT NumberOfSlicesPerFrame; | ||
| 7673 | } ; | ||
| 7674 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES; | ||
| 7675 | |||
| 7676 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA | ||
| 7677 | { | ||
| 7678 | UINT DataSize; | ||
| 7679 | union | ||
| 7680 | { | ||
| 7681 | const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_H264; | ||
| 7682 | const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES *pSlicesPartition_HEVC; | ||
| 7683 | const D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES *pTilesPartition_AV1; | ||
| 7684 | } ; | ||
| 7685 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA; | ||
| 7686 | |||
| 7687 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1 | ||
| 7688 | { | ||
| 7689 | UINT NodeIndex; | ||
| 7690 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7691 | DXGI_FORMAT InputFormat; | ||
| 7692 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 7693 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; | ||
| 7694 | D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; | ||
| 7695 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh; | ||
| 7696 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 7697 | UINT ResolutionsListCount; | ||
| 7698 | const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList; | ||
| 7699 | UINT MaxReferenceFramesInDPB; | ||
| 7700 | D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; | ||
| 7701 | D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; | ||
| 7702 | D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; | ||
| 7703 | D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; | ||
| 7704 | _Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS *pResolutionDependentSupport; | ||
| 7705 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; | ||
| 7706 | UINT MaxQualityVsSpeed; | ||
| 7707 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1; | ||
| 7708 | |||
| 7709 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS | ||
| 7710 | { | ||
| 7711 | UINT NodeIndex; | ||
| 7712 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 7713 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 7714 | DXGI_FORMAT InputFormat; | ||
| 7715 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; | ||
| 7716 | BOOL IsSupported; | ||
| 7717 | UINT CompressedBitstreamBufferAccessAlignment; | ||
| 7718 | UINT EncoderMetadataBufferAccessAlignment; | ||
| 7719 | UINT MaxEncoderOutputMetadataBufferSize; | ||
| 7720 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS; | ||
| 7721 | |||
| 7722 | typedef | ||
| 7723 | enum D3D12_VIDEO_ENCODER_FLAGS | ||
| 7724 | { | ||
| 7725 | D3D12_VIDEO_ENCODER_FLAG_NONE = 0 | ||
| 7726 | } D3D12_VIDEO_ENCODER_FLAGS; | ||
| 7727 | |||
| 7728 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_FLAGS) | ||
| 7729 | typedef struct D3D12_VIDEO_ENCODER_DESC | ||
| 7730 | { | ||
| 7731 | UINT NodeMask; | ||
| 7732 | D3D12_VIDEO_ENCODER_FLAGS Flags; | ||
| 7733 | D3D12_VIDEO_ENCODER_CODEC EncodeCodec; | ||
| 7734 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; | ||
| 7735 | DXGI_FORMAT InputFormat; | ||
| 7736 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 7737 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE MaxMotionEstimationPrecision; | ||
| 7738 | } D3D12_VIDEO_ENCODER_DESC; | ||
| 7739 | |||
| 7740 | |||
| 7741 | |||
| 7742 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_c_ifspec; | ||
| 7743 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0022_v0_0_s_ifspec; | ||
| 7744 | |||
| 7745 | #ifndef __ID3D12VideoEncoder_INTERFACE_DEFINED__ | ||
| 7746 | #define __ID3D12VideoEncoder_INTERFACE_DEFINED__ | ||
| 7747 | |||
| 7748 | /* interface ID3D12VideoEncoder */ | ||
| 7749 | /* [unique][local][object][uuid] */ | ||
| 7750 | |||
| 7751 | |||
| 7752 | EXTERN_C const IID IID_ID3D12VideoEncoder; | ||
| 7753 | |||
| 7754 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 7755 | |||
| 7756 | MIDL_INTERFACE("2E0D212D-8DF9-44A6-A770-BB289B182737") | ||
| 7757 | ID3D12VideoEncoder : public ID3D12Pageable | ||
| 7758 | { | ||
| 7759 | public: | ||
| 7760 | virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0; | ||
| 7761 | |||
| 7762 | virtual D3D12_VIDEO_ENCODER_FLAGS STDMETHODCALLTYPE GetEncoderFlags( void) = 0; | ||
| 7763 | |||
| 7764 | virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0; | ||
| 7765 | |||
| 7766 | virtual HRESULT STDMETHODCALLTYPE GetCodecProfile( | ||
| 7767 | _Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0; | ||
| 7768 | |||
| 7769 | virtual HRESULT STDMETHODCALLTYPE GetCodecConfiguration( | ||
| 7770 | _Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig) = 0; | ||
| 7771 | |||
| 7772 | virtual DXGI_FORMAT STDMETHODCALLTYPE GetInputFormat( void) = 0; | ||
| 7773 | |||
| 7774 | virtual D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE STDMETHODCALLTYPE GetMaxMotionEstimationPrecision( void) = 0; | ||
| 7775 | |||
| 7776 | }; | ||
| 7777 | |||
| 7778 | |||
| 7779 | #else /* C style interface */ | ||
| 7780 | |||
| 7781 | typedef struct ID3D12VideoEncoderVtbl | ||
| 7782 | { | ||
| 7783 | BEGIN_INTERFACE | ||
| 7784 | |||
| 7785 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 7786 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 7787 | ID3D12VideoEncoder * This, | ||
| 7788 | REFIID riid, | ||
| 7789 | _COM_Outptr_ void **ppvObject); | ||
| 7790 | |||
| 7791 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 7792 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 7793 | ID3D12VideoEncoder * This); | ||
| 7794 | |||
| 7795 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 7796 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 7797 | ID3D12VideoEncoder * This); | ||
| 7798 | |||
| 7799 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 7800 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 7801 | ID3D12VideoEncoder * This, | ||
| 7802 | _In_ REFGUID guid, | ||
| 7803 | _Inout_ UINT *pDataSize, | ||
| 7804 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 7805 | |||
| 7806 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 7807 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 7808 | ID3D12VideoEncoder * This, | ||
| 7809 | _In_ REFGUID guid, | ||
| 7810 | _In_ UINT DataSize, | ||
| 7811 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 7812 | |||
| 7813 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 7814 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 7815 | ID3D12VideoEncoder * This, | ||
| 7816 | _In_ REFGUID guid, | ||
| 7817 | _In_opt_ const IUnknown *pData); | ||
| 7818 | |||
| 7819 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 7820 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 7821 | ID3D12VideoEncoder * This, | ||
| 7822 | _In_z_ LPCWSTR Name); | ||
| 7823 | |||
| 7824 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 7825 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 7826 | ID3D12VideoEncoder * This, | ||
| 7827 | REFIID riid, | ||
| 7828 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 7829 | |||
| 7830 | DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetNodeMask) | ||
| 7831 | UINT ( STDMETHODCALLTYPE *GetNodeMask )( | ||
| 7832 | ID3D12VideoEncoder * This); | ||
| 7833 | |||
| 7834 | DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetEncoderFlags) | ||
| 7835 | D3D12_VIDEO_ENCODER_FLAGS ( STDMETHODCALLTYPE *GetEncoderFlags )( | ||
| 7836 | ID3D12VideoEncoder * This); | ||
| 7837 | |||
| 7838 | DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodec) | ||
| 7839 | D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )( | ||
| 7840 | ID3D12VideoEncoder * This); | ||
| 7841 | |||
| 7842 | DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecProfile) | ||
| 7843 | HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )( | ||
| 7844 | ID3D12VideoEncoder * This, | ||
| 7845 | _Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile); | ||
| 7846 | |||
| 7847 | DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetCodecConfiguration) | ||
| 7848 | HRESULT ( STDMETHODCALLTYPE *GetCodecConfiguration )( | ||
| 7849 | ID3D12VideoEncoder * This, | ||
| 7850 | _Inout_ D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig); | ||
| 7851 | |||
| 7852 | DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetInputFormat) | ||
| 7853 | DXGI_FORMAT ( STDMETHODCALLTYPE *GetInputFormat )( | ||
| 7854 | ID3D12VideoEncoder * This); | ||
| 7855 | |||
| 7856 | DECLSPEC_XFGVIRT(ID3D12VideoEncoder, GetMaxMotionEstimationPrecision) | ||
| 7857 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE ( STDMETHODCALLTYPE *GetMaxMotionEstimationPrecision )( | ||
| 7858 | ID3D12VideoEncoder * This); | ||
| 7859 | |||
| 7860 | END_INTERFACE | ||
| 7861 | } ID3D12VideoEncoderVtbl; | ||
| 7862 | |||
| 7863 | interface ID3D12VideoEncoder | ||
| 7864 | { | ||
| 7865 | CONST_VTBL struct ID3D12VideoEncoderVtbl *lpVtbl; | ||
| 7866 | }; | ||
| 7867 | |||
| 7868 | |||
| 7869 | |||
| 7870 | #ifdef COBJMACROS | ||
| 7871 | |||
| 7872 | |||
| 7873 | #define ID3D12VideoEncoder_QueryInterface(This,riid,ppvObject) \ | ||
| 7874 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 7875 | |||
| 7876 | #define ID3D12VideoEncoder_AddRef(This) \ | ||
| 7877 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 7878 | |||
| 7879 | #define ID3D12VideoEncoder_Release(This) \ | ||
| 7880 | ( (This)->lpVtbl -> Release(This) ) | ||
| 7881 | |||
| 7882 | |||
| 7883 | #define ID3D12VideoEncoder_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 7884 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 7885 | |||
| 7886 | #define ID3D12VideoEncoder_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 7887 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 7888 | |||
| 7889 | #define ID3D12VideoEncoder_SetPrivateDataInterface(This,guid,pData) \ | ||
| 7890 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 7891 | |||
| 7892 | #define ID3D12VideoEncoder_SetName(This,Name) \ | ||
| 7893 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 7894 | |||
| 7895 | |||
| 7896 | #define ID3D12VideoEncoder_GetDevice(This,riid,ppvDevice) \ | ||
| 7897 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 7898 | |||
| 7899 | |||
| 7900 | |||
| 7901 | #define ID3D12VideoEncoder_GetNodeMask(This) \ | ||
| 7902 | ( (This)->lpVtbl -> GetNodeMask(This) ) | ||
| 7903 | |||
| 7904 | #define ID3D12VideoEncoder_GetEncoderFlags(This) \ | ||
| 7905 | ( (This)->lpVtbl -> GetEncoderFlags(This) ) | ||
| 7906 | |||
| 7907 | #define ID3D12VideoEncoder_GetCodec(This) \ | ||
| 7908 | ( (This)->lpVtbl -> GetCodec(This) ) | ||
| 7909 | |||
| 7910 | #define ID3D12VideoEncoder_GetCodecProfile(This,dstProfile) \ | ||
| 7911 | ( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) ) | ||
| 7912 | |||
| 7913 | #define ID3D12VideoEncoder_GetCodecConfiguration(This,dstCodecConfig) \ | ||
| 7914 | ( (This)->lpVtbl -> GetCodecConfiguration(This,dstCodecConfig) ) | ||
| 7915 | |||
| 7916 | #define ID3D12VideoEncoder_GetInputFormat(This) \ | ||
| 7917 | ( (This)->lpVtbl -> GetInputFormat(This) ) | ||
| 7918 | |||
| 7919 | #define ID3D12VideoEncoder_GetMaxMotionEstimationPrecision(This) \ | ||
| 7920 | ( (This)->lpVtbl -> GetMaxMotionEstimationPrecision(This) ) | ||
| 7921 | |||
| 7922 | #endif /* COBJMACROS */ | ||
| 7923 | |||
| 7924 | |||
| 7925 | #endif /* C style interface */ | ||
| 7926 | |||
| 7927 | |||
| 7928 | |||
| 7929 | |||
| 7930 | #endif /* __ID3D12VideoEncoder_INTERFACE_DEFINED__ */ | ||
| 7931 | |||
| 7932 | |||
| 7933 | #ifndef __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__ | ||
| 7934 | #define __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__ | ||
| 7935 | |||
| 7936 | /* interface ID3D12VideoEncoderHeap */ | ||
| 7937 | /* [unique][local][object][uuid] */ | ||
| 7938 | |||
| 7939 | |||
| 7940 | EXTERN_C const IID IID_ID3D12VideoEncoderHeap; | ||
| 7941 | |||
| 7942 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 7943 | |||
| 7944 | MIDL_INTERFACE("22B35D96-876A-44C0-B25E-FB8C9C7F1C4A") | ||
| 7945 | ID3D12VideoEncoderHeap : public ID3D12Pageable | ||
| 7946 | { | ||
| 7947 | public: | ||
| 7948 | virtual UINT STDMETHODCALLTYPE GetNodeMask( void) = 0; | ||
| 7949 | |||
| 7950 | virtual D3D12_VIDEO_ENCODER_HEAP_FLAGS STDMETHODCALLTYPE GetEncoderHeapFlags( void) = 0; | ||
| 7951 | |||
| 7952 | virtual D3D12_VIDEO_ENCODER_CODEC STDMETHODCALLTYPE GetCodec( void) = 0; | ||
| 7953 | |||
| 7954 | virtual HRESULT STDMETHODCALLTYPE GetCodecProfile( | ||
| 7955 | _Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile) = 0; | ||
| 7956 | |||
| 7957 | virtual HRESULT STDMETHODCALLTYPE GetCodecLevel( | ||
| 7958 | _Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel) = 0; | ||
| 7959 | |||
| 7960 | virtual UINT STDMETHODCALLTYPE GetResolutionListCount( void) = 0; | ||
| 7961 | |||
| 7962 | virtual HRESULT STDMETHODCALLTYPE GetResolutionList( | ||
| 7963 | const UINT ResolutionsListCount, | ||
| 7964 | _Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList) = 0; | ||
| 7965 | |||
| 7966 | }; | ||
| 7967 | |||
| 7968 | |||
| 7969 | #else /* C style interface */ | ||
| 7970 | |||
| 7971 | typedef struct ID3D12VideoEncoderHeapVtbl | ||
| 7972 | { | ||
| 7973 | BEGIN_INTERFACE | ||
| 7974 | |||
| 7975 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 7976 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 7977 | ID3D12VideoEncoderHeap * This, | ||
| 7978 | REFIID riid, | ||
| 7979 | _COM_Outptr_ void **ppvObject); | ||
| 7980 | |||
| 7981 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 7982 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 7983 | ID3D12VideoEncoderHeap * This); | ||
| 7984 | |||
| 7985 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 7986 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 7987 | ID3D12VideoEncoderHeap * This); | ||
| 7988 | |||
| 7989 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 7990 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 7991 | ID3D12VideoEncoderHeap * This, | ||
| 7992 | _In_ REFGUID guid, | ||
| 7993 | _Inout_ UINT *pDataSize, | ||
| 7994 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 7995 | |||
| 7996 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 7997 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 7998 | ID3D12VideoEncoderHeap * This, | ||
| 7999 | _In_ REFGUID guid, | ||
| 8000 | _In_ UINT DataSize, | ||
| 8001 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 8002 | |||
| 8003 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 8004 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 8005 | ID3D12VideoEncoderHeap * This, | ||
| 8006 | _In_ REFGUID guid, | ||
| 8007 | _In_opt_ const IUnknown *pData); | ||
| 8008 | |||
| 8009 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 8010 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 8011 | ID3D12VideoEncoderHeap * This, | ||
| 8012 | _In_z_ LPCWSTR Name); | ||
| 8013 | |||
| 8014 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 8015 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 8016 | ID3D12VideoEncoderHeap * This, | ||
| 8017 | REFIID riid, | ||
| 8018 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 8019 | |||
| 8020 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetNodeMask) | ||
| 8021 | UINT ( STDMETHODCALLTYPE *GetNodeMask )( | ||
| 8022 | ID3D12VideoEncoderHeap * This); | ||
| 8023 | |||
| 8024 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetEncoderHeapFlags) | ||
| 8025 | D3D12_VIDEO_ENCODER_HEAP_FLAGS ( STDMETHODCALLTYPE *GetEncoderHeapFlags )( | ||
| 8026 | ID3D12VideoEncoderHeap * This); | ||
| 8027 | |||
| 8028 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodec) | ||
| 8029 | D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )( | ||
| 8030 | ID3D12VideoEncoderHeap * This); | ||
| 8031 | |||
| 8032 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecProfile) | ||
| 8033 | HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )( | ||
| 8034 | ID3D12VideoEncoderHeap * This, | ||
| 8035 | _Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile); | ||
| 8036 | |||
| 8037 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecLevel) | ||
| 8038 | HRESULT ( STDMETHODCALLTYPE *GetCodecLevel )( | ||
| 8039 | ID3D12VideoEncoderHeap * This, | ||
| 8040 | _Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel); | ||
| 8041 | |||
| 8042 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionListCount) | ||
| 8043 | UINT ( STDMETHODCALLTYPE *GetResolutionListCount )( | ||
| 8044 | ID3D12VideoEncoderHeap * This); | ||
| 8045 | |||
| 8046 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionList) | ||
| 8047 | HRESULT ( STDMETHODCALLTYPE *GetResolutionList )( | ||
| 8048 | ID3D12VideoEncoderHeap * This, | ||
| 8049 | const UINT ResolutionsListCount, | ||
| 8050 | _Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList); | ||
| 8051 | |||
| 8052 | END_INTERFACE | ||
| 8053 | } ID3D12VideoEncoderHeapVtbl; | ||
| 8054 | |||
| 8055 | interface ID3D12VideoEncoderHeap | ||
| 8056 | { | ||
| 8057 | CONST_VTBL struct ID3D12VideoEncoderHeapVtbl *lpVtbl; | ||
| 8058 | }; | ||
| 8059 | |||
| 8060 | |||
| 8061 | |||
| 8062 | #ifdef COBJMACROS | ||
| 8063 | |||
| 8064 | |||
| 8065 | #define ID3D12VideoEncoderHeap_QueryInterface(This,riid,ppvObject) \ | ||
| 8066 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 8067 | |||
| 8068 | #define ID3D12VideoEncoderHeap_AddRef(This) \ | ||
| 8069 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 8070 | |||
| 8071 | #define ID3D12VideoEncoderHeap_Release(This) \ | ||
| 8072 | ( (This)->lpVtbl -> Release(This) ) | ||
| 8073 | |||
| 8074 | |||
| 8075 | #define ID3D12VideoEncoderHeap_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 8076 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 8077 | |||
| 8078 | #define ID3D12VideoEncoderHeap_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 8079 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 8080 | |||
| 8081 | #define ID3D12VideoEncoderHeap_SetPrivateDataInterface(This,guid,pData) \ | ||
| 8082 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 8083 | |||
| 8084 | #define ID3D12VideoEncoderHeap_SetName(This,Name) \ | ||
| 8085 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 8086 | |||
| 8087 | |||
| 8088 | #define ID3D12VideoEncoderHeap_GetDevice(This,riid,ppvDevice) \ | ||
| 8089 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 8090 | |||
| 8091 | |||
| 8092 | |||
| 8093 | #define ID3D12VideoEncoderHeap_GetNodeMask(This) \ | ||
| 8094 | ( (This)->lpVtbl -> GetNodeMask(This) ) | ||
| 8095 | |||
| 8096 | #define ID3D12VideoEncoderHeap_GetEncoderHeapFlags(This) \ | ||
| 8097 | ( (This)->lpVtbl -> GetEncoderHeapFlags(This) ) | ||
| 8098 | |||
| 8099 | #define ID3D12VideoEncoderHeap_GetCodec(This) \ | ||
| 8100 | ( (This)->lpVtbl -> GetCodec(This) ) | ||
| 8101 | |||
| 8102 | #define ID3D12VideoEncoderHeap_GetCodecProfile(This,dstProfile) \ | ||
| 8103 | ( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) ) | ||
| 8104 | |||
| 8105 | #define ID3D12VideoEncoderHeap_GetCodecLevel(This,dstLevel) \ | ||
| 8106 | ( (This)->lpVtbl -> GetCodecLevel(This,dstLevel) ) | ||
| 8107 | |||
| 8108 | #define ID3D12VideoEncoderHeap_GetResolutionListCount(This) \ | ||
| 8109 | ( (This)->lpVtbl -> GetResolutionListCount(This) ) | ||
| 8110 | |||
| 8111 | #define ID3D12VideoEncoderHeap_GetResolutionList(This,ResolutionsListCount,pResolutionList) \ | ||
| 8112 | ( (This)->lpVtbl -> GetResolutionList(This,ResolutionsListCount,pResolutionList) ) | ||
| 8113 | |||
| 8114 | #endif /* COBJMACROS */ | ||
| 8115 | |||
| 8116 | |||
| 8117 | #endif /* C style interface */ | ||
| 8118 | |||
| 8119 | |||
| 8120 | |||
| 8121 | |||
| 8122 | #endif /* __ID3D12VideoEncoderHeap_INTERFACE_DEFINED__ */ | ||
| 8123 | |||
| 8124 | |||
| 8125 | #ifndef __ID3D12VideoDevice3_INTERFACE_DEFINED__ | ||
| 8126 | #define __ID3D12VideoDevice3_INTERFACE_DEFINED__ | ||
| 8127 | |||
| 8128 | /* interface ID3D12VideoDevice3 */ | ||
| 8129 | /* [unique][local][object][uuid] */ | ||
| 8130 | |||
| 8131 | |||
| 8132 | EXTERN_C const IID IID_ID3D12VideoDevice3; | ||
| 8133 | |||
| 8134 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 8135 | |||
| 8136 | MIDL_INTERFACE("4243ADB4-3A32-4666-973C-0CCC5625DC44") | ||
| 8137 | ID3D12VideoDevice3 : public ID3D12VideoDevice2 | ||
| 8138 | { | ||
| 8139 | public: | ||
| 8140 | virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoder( | ||
| 8141 | _In_ const D3D12_VIDEO_ENCODER_DESC *pDesc, | ||
| 8142 | _In_ REFIID riid, | ||
| 8143 | _COM_Outptr_ void **ppVideoEncoder) = 0; | ||
| 8144 | |||
| 8145 | virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoderHeap( | ||
| 8146 | _In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc, | ||
| 8147 | _In_ REFIID riid, | ||
| 8148 | _COM_Outptr_ void **ppVideoEncoderHeap) = 0; | ||
| 8149 | |||
| 8150 | }; | ||
| 8151 | |||
| 8152 | |||
| 8153 | #else /* C style interface */ | ||
| 8154 | |||
| 8155 | typedef struct ID3D12VideoDevice3Vtbl | ||
| 8156 | { | ||
| 8157 | BEGIN_INTERFACE | ||
| 8158 | |||
| 8159 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 8160 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 8161 | ID3D12VideoDevice3 * This, | ||
| 8162 | REFIID riid, | ||
| 8163 | _COM_Outptr_ void **ppvObject); | ||
| 8164 | |||
| 8165 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 8166 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 8167 | ID3D12VideoDevice3 * This); | ||
| 8168 | |||
| 8169 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 8170 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 8171 | ID3D12VideoDevice3 * This); | ||
| 8172 | |||
| 8173 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport) | ||
| 8174 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 8175 | ID3D12VideoDevice3 * This, | ||
| 8176 | D3D12_FEATURE_VIDEO FeatureVideo, | ||
| 8177 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 8178 | UINT FeatureSupportDataSize); | ||
| 8179 | |||
| 8180 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder) | ||
| 8181 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( | ||
| 8182 | ID3D12VideoDevice3 * This, | ||
| 8183 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 8184 | _In_ REFIID riid, | ||
| 8185 | _COM_Outptr_ void **ppVideoDecoder); | ||
| 8186 | |||
| 8187 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap) | ||
| 8188 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( | ||
| 8189 | ID3D12VideoDevice3 * This, | ||
| 8190 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 8191 | _In_ REFIID riid, | ||
| 8192 | _COM_Outptr_ void **ppVideoDecoderHeap); | ||
| 8193 | |||
| 8194 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor) | ||
| 8195 | HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( | ||
| 8196 | ID3D12VideoDevice3 * This, | ||
| 8197 | UINT NodeMask, | ||
| 8198 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 8199 | UINT NumInputStreamDescs, | ||
| 8200 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 8201 | _In_ REFIID riid, | ||
| 8202 | _COM_Outptr_ void **ppVideoProcessor); | ||
| 8203 | |||
| 8204 | DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator) | ||
| 8205 | HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )( | ||
| 8206 | ID3D12VideoDevice3 * This, | ||
| 8207 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc, | ||
| 8208 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 8209 | _In_ REFIID riid, | ||
| 8210 | _COM_Outptr_ void **ppVideoMotionEstimator); | ||
| 8211 | |||
| 8212 | DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap) | ||
| 8213 | HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )( | ||
| 8214 | ID3D12VideoDevice3 * This, | ||
| 8215 | _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc, | ||
| 8216 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 8217 | _In_ REFIID riid, | ||
| 8218 | _COM_Outptr_ void **ppVideoMotionVectorHeap); | ||
| 8219 | |||
| 8220 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1) | ||
| 8221 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )( | ||
| 8222 | ID3D12VideoDevice3 * This, | ||
| 8223 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 8224 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 8225 | _In_ REFIID riid, | ||
| 8226 | _COM_Outptr_ void **ppVideoDecoder); | ||
| 8227 | |||
| 8228 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1) | ||
| 8229 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )( | ||
| 8230 | ID3D12VideoDevice3 * This, | ||
| 8231 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 8232 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 8233 | _In_ REFIID riid, | ||
| 8234 | _COM_Outptr_ void **ppVideoDecoderHeap); | ||
| 8235 | |||
| 8236 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1) | ||
| 8237 | HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )( | ||
| 8238 | ID3D12VideoDevice3 * This, | ||
| 8239 | UINT NodeMask, | ||
| 8240 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 8241 | UINT NumInputStreamDescs, | ||
| 8242 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 8243 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 8244 | _In_ REFIID riid, | ||
| 8245 | _COM_Outptr_ void **ppVideoProcessor); | ||
| 8246 | |||
| 8247 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand) | ||
| 8248 | HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )( | ||
| 8249 | ID3D12VideoDevice3 * This, | ||
| 8250 | _In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc, | ||
| 8251 | _In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters, | ||
| 8252 | SIZE_T CreationParametersDataSizeInBytes, | ||
| 8253 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 8254 | _In_ REFIID riid, | ||
| 8255 | _COM_Outptr_ void **ppVideoExtensionCommand); | ||
| 8256 | |||
| 8257 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand) | ||
| 8258 | HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 8259 | ID3D12VideoDevice3 * This, | ||
| 8260 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 8261 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 8262 | SIZE_T ExecutionParametersSizeInBytes, | ||
| 8263 | _Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData, | ||
| 8264 | SIZE_T OutputDataSizeInBytes); | ||
| 8265 | |||
| 8266 | DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoder) | ||
| 8267 | HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoder )( | ||
| 8268 | ID3D12VideoDevice3 * This, | ||
| 8269 | _In_ const D3D12_VIDEO_ENCODER_DESC *pDesc, | ||
| 8270 | _In_ REFIID riid, | ||
| 8271 | _COM_Outptr_ void **ppVideoEncoder); | ||
| 8272 | |||
| 8273 | DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoderHeap) | ||
| 8274 | HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoderHeap )( | ||
| 8275 | ID3D12VideoDevice3 * This, | ||
| 8276 | _In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc, | ||
| 8277 | _In_ REFIID riid, | ||
| 8278 | _COM_Outptr_ void **ppVideoEncoderHeap); | ||
| 8279 | |||
| 8280 | END_INTERFACE | ||
| 8281 | } ID3D12VideoDevice3Vtbl; | ||
| 8282 | |||
| 8283 | interface ID3D12VideoDevice3 | ||
| 8284 | { | ||
| 8285 | CONST_VTBL struct ID3D12VideoDevice3Vtbl *lpVtbl; | ||
| 8286 | }; | ||
| 8287 | |||
| 8288 | |||
| 8289 | |||
| 8290 | #ifdef COBJMACROS | ||
| 8291 | |||
| 8292 | |||
| 8293 | #define ID3D12VideoDevice3_QueryInterface(This,riid,ppvObject) \ | ||
| 8294 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 8295 | |||
| 8296 | #define ID3D12VideoDevice3_AddRef(This) \ | ||
| 8297 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 8298 | |||
| 8299 | #define ID3D12VideoDevice3_Release(This) \ | ||
| 8300 | ( (This)->lpVtbl -> Release(This) ) | ||
| 8301 | |||
| 8302 | |||
| 8303 | #define ID3D12VideoDevice3_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 8304 | ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 8305 | |||
| 8306 | #define ID3D12VideoDevice3_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ | ||
| 8307 | ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) | ||
| 8308 | |||
| 8309 | #define ID3D12VideoDevice3_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ | ||
| 8310 | ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) | ||
| 8311 | |||
| 8312 | #define ID3D12VideoDevice3_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ | ||
| 8313 | ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) | ||
| 8314 | |||
| 8315 | |||
| 8316 | #define ID3D12VideoDevice3_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \ | ||
| 8317 | ( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) ) | ||
| 8318 | |||
| 8319 | #define ID3D12VideoDevice3_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \ | ||
| 8320 | ( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) ) | ||
| 8321 | |||
| 8322 | |||
| 8323 | #define ID3D12VideoDevice3_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \ | ||
| 8324 | ( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) ) | ||
| 8325 | |||
| 8326 | #define ID3D12VideoDevice3_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \ | ||
| 8327 | ( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) ) | ||
| 8328 | |||
| 8329 | #define ID3D12VideoDevice3_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \ | ||
| 8330 | ( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) ) | ||
| 8331 | |||
| 8332 | #define ID3D12VideoDevice3_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \ | ||
| 8333 | ( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) ) | ||
| 8334 | |||
| 8335 | #define ID3D12VideoDevice3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \ | ||
| 8336 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) ) | ||
| 8337 | |||
| 8338 | |||
| 8339 | #define ID3D12VideoDevice3_CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) \ | ||
| 8340 | ( (This)->lpVtbl -> CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) ) | ||
| 8341 | |||
| 8342 | #define ID3D12VideoDevice3_CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) \ | ||
| 8343 | ( (This)->lpVtbl -> CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) ) | ||
| 8344 | |||
| 8345 | #endif /* COBJMACROS */ | ||
| 8346 | |||
| 8347 | |||
| 8348 | #endif /* C style interface */ | ||
| 8349 | |||
| 8350 | |||
| 8351 | |||
| 8352 | |||
| 8353 | #endif /* __ID3D12VideoDevice3_INTERFACE_DEFINED__ */ | ||
| 8354 | |||
| 8355 | |||
| 8356 | /* interface __MIDL_itf_d3d12video_0000_0025 */ | ||
| 8357 | /* [local] */ | ||
| 8358 | |||
| 8359 | typedef | ||
| 8360 | enum D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 | ||
| 8361 | { | ||
| 8362 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_I_FRAME = 0, | ||
| 8363 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_P_FRAME = 1, | ||
| 8364 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_B_FRAME = 2, | ||
| 8365 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_IDR_FRAME = 3 | ||
| 8366 | } D3D12_VIDEO_ENCODER_FRAME_TYPE_H264; | ||
| 8367 | |||
| 8368 | typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 | ||
| 8369 | { | ||
| 8370 | UINT ReconstructedPictureResourceIndex; | ||
| 8371 | BOOL IsLongTermReference; | ||
| 8372 | UINT LongTermPictureIdx; | ||
| 8373 | UINT PictureOrderCountNumber; | ||
| 8374 | UINT FrameDecodingOrderNumber; | ||
| 8375 | UINT TemporalLayerIndex; | ||
| 8376 | } D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264; | ||
| 8377 | |||
| 8378 | typedef | ||
| 8379 | enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS | ||
| 8380 | { | ||
| 8381 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_NONE = 0, | ||
| 8382 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1, | ||
| 8383 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x2 | ||
| 8384 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS; | ||
| 8385 | |||
| 8386 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS) | ||
| 8387 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION | ||
| 8388 | { | ||
| 8389 | UCHAR memory_management_control_operation; | ||
| 8390 | UINT difference_of_pic_nums_minus1; | ||
| 8391 | UINT long_term_pic_num; | ||
| 8392 | UINT long_term_frame_idx; | ||
| 8393 | UINT max_long_term_frame_idx_plus1; | ||
| 8394 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION; | ||
| 8395 | |||
| 8396 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION | ||
| 8397 | { | ||
| 8398 | UCHAR modification_of_pic_nums_idc; | ||
| 8399 | UINT abs_diff_pic_num_minus1; | ||
| 8400 | UINT long_term_pic_num; | ||
| 8401 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION; | ||
| 8402 | |||
| 8403 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 | ||
| 8404 | { | ||
| 8405 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS Flags; | ||
| 8406 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 FrameType; | ||
| 8407 | UINT pic_parameter_set_id; | ||
| 8408 | UINT idr_pic_id; | ||
| 8409 | UINT PictureOrderCountNumber; | ||
| 8410 | UINT FrameDecodingOrderNumber; | ||
| 8411 | UINT TemporalLayerIndex; | ||
| 8412 | UINT List0ReferenceFramesCount; | ||
| 8413 | _Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames; | ||
| 8414 | UINT List1ReferenceFramesCount; | ||
| 8415 | _Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames; | ||
| 8416 | UINT ReferenceFramesReconPictureDescriptorsCount; | ||
| 8417 | _Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 *pReferenceFramesReconPictureDescriptors; | ||
| 8418 | UCHAR adaptive_ref_pic_marking_mode_flag; | ||
| 8419 | UINT RefPicMarkingOperationsCommandsCount; | ||
| 8420 | _Field_size_full_(RefPicMarkingOperationsCommandsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION *pRefPicMarkingOperationsCommands; | ||
| 8421 | UINT List0RefPicModificationsCount; | ||
| 8422 | _Field_size_full_(List0RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList0RefPicModifications; | ||
| 8423 | UINT List1RefPicModificationsCount; | ||
| 8424 | _Field_size_full_(List1RefPicModificationsCount) D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION *pList1RefPicModifications; | ||
| 8425 | UINT QPMapValuesCount; | ||
| 8426 | _Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap; | ||
| 8427 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264; | ||
| 8428 | |||
| 8429 | typedef | ||
| 8430 | enum D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC | ||
| 8431 | { | ||
| 8432 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_I_FRAME = 0, | ||
| 8433 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_P_FRAME = 1, | ||
| 8434 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_B_FRAME = 2, | ||
| 8435 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_IDR_FRAME = 3 | ||
| 8436 | } D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC; | ||
| 8437 | |||
| 8438 | typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC | ||
| 8439 | { | ||
| 8440 | UINT ReconstructedPictureResourceIndex; | ||
| 8441 | BOOL IsRefUsedByCurrentPic; | ||
| 8442 | BOOL IsLongTermReference; | ||
| 8443 | UINT PictureOrderCountNumber; | ||
| 8444 | UINT TemporalLayerIndex; | ||
| 8445 | } D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC; | ||
| 8446 | |||
| 8447 | typedef | ||
| 8448 | enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS | ||
| 8449 | { | ||
| 8450 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_NONE = 0, | ||
| 8451 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1, | ||
| 8452 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x2, | ||
| 8453 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CROSS_COMPONENT_PREDICTION = 0x4, | ||
| 8454 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CHROMA_QP_OFFSET_LIST = 0x8 | ||
| 8455 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS; | ||
| 8456 | |||
| 8457 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS) | ||
| 8458 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC | ||
| 8459 | { | ||
| 8460 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; | ||
| 8461 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; | ||
| 8462 | UINT slice_pic_parameter_set_id; | ||
| 8463 | UINT PictureOrderCountNumber; | ||
| 8464 | UINT TemporalLayerIndex; | ||
| 8465 | UINT List0ReferenceFramesCount; | ||
| 8466 | _Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames; | ||
| 8467 | UINT List1ReferenceFramesCount; | ||
| 8468 | _Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames; | ||
| 8469 | UINT ReferenceFramesReconPictureDescriptorsCount; | ||
| 8470 | _Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors; | ||
| 8471 | UINT List0RefPicModificationsCount; | ||
| 8472 | _Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications; | ||
| 8473 | UINT List1RefPicModificationsCount; | ||
| 8474 | _Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications; | ||
| 8475 | UINT QPMapValuesCount; | ||
| 8476 | _Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap; | ||
| 8477 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC; | ||
| 8478 | |||
| 8479 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1 | ||
| 8480 | { | ||
| 8481 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; | ||
| 8482 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; | ||
| 8483 | UINT slice_pic_parameter_set_id; | ||
| 8484 | UINT PictureOrderCountNumber; | ||
| 8485 | UINT TemporalLayerIndex; | ||
| 8486 | UINT List0ReferenceFramesCount; | ||
| 8487 | _Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames; | ||
| 8488 | UINT List1ReferenceFramesCount; | ||
| 8489 | _Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames; | ||
| 8490 | UINT ReferenceFramesReconPictureDescriptorsCount; | ||
| 8491 | _Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors; | ||
| 8492 | UINT List0RefPicModificationsCount; | ||
| 8493 | _Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications; | ||
| 8494 | UINT List1RefPicModificationsCount; | ||
| 8495 | _Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications; | ||
| 8496 | UINT QPMapValuesCount; | ||
| 8497 | _Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap; | ||
| 8498 | UCHAR diff_cu_chroma_qp_offset_depth; | ||
| 8499 | UCHAR log2_sao_offset_scale_luma; | ||
| 8500 | UCHAR log2_sao_offset_scale_chroma; | ||
| 8501 | UCHAR log2_max_transform_skip_block_size_minus2; | ||
| 8502 | UCHAR chroma_qp_offset_list_len_minus1; | ||
| 8503 | CHAR cb_qp_offset_list[ 6 ]; | ||
| 8504 | CHAR cr_qp_offset_list[ 6 ]; | ||
| 8505 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1; | ||
| 8506 | |||
| 8507 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA | ||
| 8508 | { | ||
| 8509 | UINT DataSize; | ||
| 8510 | union | ||
| 8511 | { | ||
| 8512 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 *pH264PicData; | ||
| 8513 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC *pHEVCPicData; | ||
| 8514 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1 *pHEVCPicData1; | ||
| 8515 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA *pAV1PicData; | ||
| 8516 | } ; | ||
| 8517 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA; | ||
| 8518 | |||
| 8519 | typedef struct D3D12_VIDEO_ENCODE_REFERENCE_FRAMES | ||
| 8520 | { | ||
| 8521 | UINT NumTexture2Ds; | ||
| 8522 | _Field_size_full_(NumTexture2Ds) ID3D12Resource **ppTexture2Ds; | ||
| 8523 | _Field_size_full_(NumTexture2Ds) UINT *pSubresources; | ||
| 8524 | } D3D12_VIDEO_ENCODE_REFERENCE_FRAMES; | ||
| 8525 | |||
| 8526 | typedef | ||
| 8527 | enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS | ||
| 8528 | { | ||
| 8529 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_NONE = 0, | ||
| 8530 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTURE = 0x1, | ||
| 8531 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_QUANTIZATION_MATRIX_INPUT = 0x2, | ||
| 8532 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_DIRTY_REGIONS_INPUT = 0x4, | ||
| 8533 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_MOTION_VECTORS_INPUT = 0x8 | ||
| 8534 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS; | ||
| 8535 | |||
| 8536 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS) | ||
| 8537 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC | ||
| 8538 | { | ||
| 8539 | UINT IntraRefreshFrameIndex; | ||
| 8540 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags; | ||
| 8541 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData; | ||
| 8542 | D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames; | ||
| 8543 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC; | ||
| 8544 | |||
| 8545 | typedef | ||
| 8546 | enum D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS | ||
| 8547 | { | ||
| 8548 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_NONE = 0, | ||
| 8549 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RESOLUTION_CHANGE = 0x1, | ||
| 8550 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RATE_CONTROL_CHANGE = 0x2, | ||
| 8551 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_SUBREGION_LAYOUT_CHANGE = 0x4, | ||
| 8552 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH = 0x8, | ||
| 8553 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_GOP_SEQUENCE_CHANGE = 0x10 | ||
| 8554 | } D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS; | ||
| 8555 | |||
| 8556 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS) | ||
| 8557 | typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC | ||
| 8558 | { | ||
| 8559 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS Flags; | ||
| 8560 | D3D12_VIDEO_ENCODER_INTRA_REFRESH IntraRefreshConfig; | ||
| 8561 | D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; | ||
| 8562 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; | ||
| 8563 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SelectedLayoutMode; | ||
| 8564 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData; | ||
| 8565 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; | ||
| 8566 | } D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC; | ||
| 8567 | |||
| 8568 | typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS | ||
| 8569 | { | ||
| 8570 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc; | ||
| 8571 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC PictureControlDesc; | ||
| 8572 | ID3D12Resource *pInputFrame; | ||
| 8573 | UINT InputFrameSubresource; | ||
| 8574 | UINT CurrentFrameBitstreamMetadataSize; | ||
| 8575 | } D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS; | ||
| 8576 | |||
| 8577 | typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM | ||
| 8578 | { | ||
| 8579 | ID3D12Resource *pBuffer; | ||
| 8580 | UINT64 FrameStartOffset; | ||
| 8581 | } D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM; | ||
| 8582 | |||
| 8583 | typedef struct D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE | ||
| 8584 | { | ||
| 8585 | ID3D12Resource *pReconstructedPicture; | ||
| 8586 | UINT ReconstructedPictureSubresource; | ||
| 8587 | } D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE; | ||
| 8588 | |||
| 8589 | typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA | ||
| 8590 | { | ||
| 8591 | UINT64 bSize; | ||
| 8592 | UINT64 bStartOffset; | ||
| 8593 | UINT64 bHeaderSize; | ||
| 8594 | } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA; | ||
| 8595 | |||
| 8596 | typedef | ||
| 8597 | enum D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS | ||
| 8598 | { | ||
| 8599 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_NO_ERROR = 0, | ||
| 8600 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_CODEC_PICTURE_CONTROL_NOT_SUPPORTED = 0x1, | ||
| 8601 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED = 0x2, | ||
| 8602 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_REFERENCE_PICTURES = 0x4, | ||
| 8603 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_RECONFIGURATION_REQUEST_NOT_SUPPORTED = 0x8, | ||
| 8604 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_METADATA_BUFFER_SOURCE = 0x10 | ||
| 8605 | } D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS; | ||
| 8606 | |||
| 8607 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS) | ||
| 8608 | typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS | ||
| 8609 | { | ||
| 8610 | UINT64 AverageQP; | ||
| 8611 | UINT64 IntraCodingUnitsCount; | ||
| 8612 | UINT64 InterCodingUnitsCount; | ||
| 8613 | UINT64 SkipCodingUnitsCount; | ||
| 8614 | UINT64 AverageMotionEstimationXDirection; | ||
| 8615 | UINT64 AverageMotionEstimationYDirection; | ||
| 8616 | } D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS; | ||
| 8617 | |||
| 8618 | typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA | ||
| 8619 | { | ||
| 8620 | UINT64 EncodeErrorFlags; | ||
| 8621 | D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS EncodeStats; | ||
| 8622 | UINT64 EncodedBitstreamWrittenBytesCount; | ||
| 8623 | UINT64 WrittenSubregionsCount; | ||
| 8624 | } D3D12_VIDEO_ENCODER_OUTPUT_METADATA; | ||
| 8625 | |||
| 8626 | typedef struct D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER | ||
| 8627 | { | ||
| 8628 | ID3D12Resource *pBuffer; | ||
| 8629 | UINT64 Offset; | ||
| 8630 | } D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER; | ||
| 8631 | |||
| 8632 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS | ||
| 8633 | { | ||
| 8634 | D3D12_VIDEO_ENCODER_CODEC EncoderCodec; | ||
| 8635 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile; | ||
| 8636 | DXGI_FORMAT EncoderInputFormat; | ||
| 8637 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution; | ||
| 8638 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata; | ||
| 8639 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS; | ||
| 8640 | |||
| 8641 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS | ||
| 8642 | { | ||
| 8643 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata; | ||
| 8644 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS; | ||
| 8645 | |||
| 8646 | typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS | ||
| 8647 | { | ||
| 8648 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM Bitstream; | ||
| 8649 | D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture; | ||
| 8650 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata; | ||
| 8651 | } D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS; | ||
| 8652 | |||
| 8653 | |||
| 8654 | |||
| 8655 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_c_ifspec; | ||
| 8656 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0025_v0_0_s_ifspec; | ||
| 8657 | |||
| 8658 | #ifndef __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__ | ||
| 8659 | #define __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__ | ||
| 8660 | |||
| 8661 | /* interface ID3D12VideoEncodeCommandList2 */ | ||
| 8662 | /* [unique][local][object][uuid] */ | ||
| 8663 | |||
| 8664 | |||
| 8665 | EXTERN_C const IID IID_ID3D12VideoEncodeCommandList2; | ||
| 8666 | |||
| 8667 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 8668 | |||
| 8669 | MIDL_INTERFACE("895491e2-e701-46a9-9a1f-8d3480ed867a") | ||
| 8670 | ID3D12VideoEncodeCommandList2 : public ID3D12VideoEncodeCommandList1 | ||
| 8671 | { | ||
| 8672 | public: | ||
| 8673 | virtual void STDMETHODCALLTYPE EncodeFrame( | ||
| 8674 | _In_ ID3D12VideoEncoder *pEncoder, | ||
| 8675 | _In_ ID3D12VideoEncoderHeap *pHeap, | ||
| 8676 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments, | ||
| 8677 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments) = 0; | ||
| 8678 | |||
| 8679 | virtual void STDMETHODCALLTYPE ResolveEncoderOutputMetadata( | ||
| 8680 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments, | ||
| 8681 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments) = 0; | ||
| 8682 | |||
| 8683 | }; | ||
| 8684 | |||
| 8685 | |||
| 8686 | #else /* C style interface */ | ||
| 8687 | |||
| 8688 | typedef struct ID3D12VideoEncodeCommandList2Vtbl | ||
| 8689 | { | ||
| 8690 | BEGIN_INTERFACE | ||
| 8691 | |||
| 8692 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 8693 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 8694 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8695 | REFIID riid, | ||
| 8696 | _COM_Outptr_ void **ppvObject); | ||
| 8697 | |||
| 8698 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 8699 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 8700 | ID3D12VideoEncodeCommandList2 * This); | ||
| 8701 | |||
| 8702 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 8703 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 8704 | ID3D12VideoEncodeCommandList2 * This); | ||
| 8705 | |||
| 8706 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 8707 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 8708 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8709 | _In_ REFGUID guid, | ||
| 8710 | _Inout_ UINT *pDataSize, | ||
| 8711 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 8712 | |||
| 8713 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 8714 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 8715 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8716 | _In_ REFGUID guid, | ||
| 8717 | _In_ UINT DataSize, | ||
| 8718 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 8719 | |||
| 8720 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 8721 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 8722 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8723 | _In_ REFGUID guid, | ||
| 8724 | _In_opt_ const IUnknown *pData); | ||
| 8725 | |||
| 8726 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 8727 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 8728 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8729 | _In_z_ LPCWSTR Name); | ||
| 8730 | |||
| 8731 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 8732 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 8733 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8734 | REFIID riid, | ||
| 8735 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 8736 | |||
| 8737 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 8738 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 8739 | ID3D12VideoEncodeCommandList2 * This); | ||
| 8740 | |||
| 8741 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) | ||
| 8742 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 8743 | ID3D12VideoEncodeCommandList2 * This); | ||
| 8744 | |||
| 8745 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) | ||
| 8746 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 8747 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8748 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 8749 | |||
| 8750 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) | ||
| 8751 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 8752 | ID3D12VideoEncodeCommandList2 * This); | ||
| 8753 | |||
| 8754 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) | ||
| 8755 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 8756 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8757 | _In_ UINT NumBarriers, | ||
| 8758 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 8759 | |||
| 8760 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) | ||
| 8761 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 8762 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8763 | _In_ ID3D12Resource *pResource, | ||
| 8764 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 8765 | |||
| 8766 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) | ||
| 8767 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 8768 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8769 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 8770 | _In_ D3D12_QUERY_TYPE Type, | ||
| 8771 | _In_ UINT Index); | ||
| 8772 | |||
| 8773 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) | ||
| 8774 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 8775 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8776 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 8777 | _In_ D3D12_QUERY_TYPE Type, | ||
| 8778 | _In_ UINT Index); | ||
| 8779 | |||
| 8780 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) | ||
| 8781 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 8782 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8783 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 8784 | _In_ D3D12_QUERY_TYPE Type, | ||
| 8785 | _In_ UINT StartIndex, | ||
| 8786 | _In_ UINT NumQueries, | ||
| 8787 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 8788 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 8789 | |||
| 8790 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication) | ||
| 8791 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 8792 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8793 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 8794 | _In_ UINT64 AlignedBufferOffset, | ||
| 8795 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 8796 | |||
| 8797 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) | ||
| 8798 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 8799 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8800 | UINT Metadata, | ||
| 8801 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 8802 | UINT Size); | ||
| 8803 | |||
| 8804 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) | ||
| 8805 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 8806 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8807 | UINT Metadata, | ||
| 8808 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 8809 | UINT Size); | ||
| 8810 | |||
| 8811 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) | ||
| 8812 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 8813 | ID3D12VideoEncodeCommandList2 * This); | ||
| 8814 | |||
| 8815 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) | ||
| 8816 | void ( STDMETHODCALLTYPE *EstimateMotion )( | ||
| 8817 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8818 | _In_ ID3D12VideoMotionEstimator *pMotionEstimator, | ||
| 8819 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments, | ||
| 8820 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments); | ||
| 8821 | |||
| 8822 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap) | ||
| 8823 | void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )( | ||
| 8824 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8825 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments, | ||
| 8826 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments); | ||
| 8827 | |||
| 8828 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate) | ||
| 8829 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 8830 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8831 | UINT Count, | ||
| 8832 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 8833 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 8834 | |||
| 8835 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession) | ||
| 8836 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 8837 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8838 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 8839 | |||
| 8840 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand) | ||
| 8841 | void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( | ||
| 8842 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8843 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 8844 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 8845 | SIZE_T InitializationParametersSizeInBytes); | ||
| 8846 | |||
| 8847 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand) | ||
| 8848 | void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 8849 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8850 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 8851 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 8852 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 8853 | |||
| 8854 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame) | ||
| 8855 | void ( STDMETHODCALLTYPE *EncodeFrame )( | ||
| 8856 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8857 | _In_ ID3D12VideoEncoder *pEncoder, | ||
| 8858 | _In_ ID3D12VideoEncoderHeap *pHeap, | ||
| 8859 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments, | ||
| 8860 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments); | ||
| 8861 | |||
| 8862 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata) | ||
| 8863 | void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )( | ||
| 8864 | ID3D12VideoEncodeCommandList2 * This, | ||
| 8865 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments, | ||
| 8866 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments); | ||
| 8867 | |||
| 8868 | END_INTERFACE | ||
| 8869 | } ID3D12VideoEncodeCommandList2Vtbl; | ||
| 8870 | |||
| 8871 | interface ID3D12VideoEncodeCommandList2 | ||
| 8872 | { | ||
| 8873 | CONST_VTBL struct ID3D12VideoEncodeCommandList2Vtbl *lpVtbl; | ||
| 8874 | }; | ||
| 8875 | |||
| 8876 | |||
| 8877 | |||
| 8878 | #ifdef COBJMACROS | ||
| 8879 | |||
| 8880 | |||
| 8881 | #define ID3D12VideoEncodeCommandList2_QueryInterface(This,riid,ppvObject) \ | ||
| 8882 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 8883 | |||
| 8884 | #define ID3D12VideoEncodeCommandList2_AddRef(This) \ | ||
| 8885 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 8886 | |||
| 8887 | #define ID3D12VideoEncodeCommandList2_Release(This) \ | ||
| 8888 | ( (This)->lpVtbl -> Release(This) ) | ||
| 8889 | |||
| 8890 | |||
| 8891 | #define ID3D12VideoEncodeCommandList2_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 8892 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 8893 | |||
| 8894 | #define ID3D12VideoEncodeCommandList2_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 8895 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 8896 | |||
| 8897 | #define ID3D12VideoEncodeCommandList2_SetPrivateDataInterface(This,guid,pData) \ | ||
| 8898 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 8899 | |||
| 8900 | #define ID3D12VideoEncodeCommandList2_SetName(This,Name) \ | ||
| 8901 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 8902 | |||
| 8903 | |||
| 8904 | #define ID3D12VideoEncodeCommandList2_GetDevice(This,riid,ppvDevice) \ | ||
| 8905 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 8906 | |||
| 8907 | |||
| 8908 | #define ID3D12VideoEncodeCommandList2_GetType(This) \ | ||
| 8909 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 8910 | |||
| 8911 | |||
| 8912 | #define ID3D12VideoEncodeCommandList2_Close(This) \ | ||
| 8913 | ( (This)->lpVtbl -> Close(This) ) | ||
| 8914 | |||
| 8915 | #define ID3D12VideoEncodeCommandList2_Reset(This,pAllocator) \ | ||
| 8916 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 8917 | |||
| 8918 | #define ID3D12VideoEncodeCommandList2_ClearState(This) \ | ||
| 8919 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 8920 | |||
| 8921 | #define ID3D12VideoEncodeCommandList2_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 8922 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 8923 | |||
| 8924 | #define ID3D12VideoEncodeCommandList2_DiscardResource(This,pResource,pRegion) \ | ||
| 8925 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 8926 | |||
| 8927 | #define ID3D12VideoEncodeCommandList2_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 8928 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 8929 | |||
| 8930 | #define ID3D12VideoEncodeCommandList2_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 8931 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 8932 | |||
| 8933 | #define ID3D12VideoEncodeCommandList2_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 8934 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 8935 | |||
| 8936 | #define ID3D12VideoEncodeCommandList2_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 8937 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 8938 | |||
| 8939 | #define ID3D12VideoEncodeCommandList2_SetMarker(This,Metadata,pData,Size) \ | ||
| 8940 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 8941 | |||
| 8942 | #define ID3D12VideoEncodeCommandList2_BeginEvent(This,Metadata,pData,Size) \ | ||
| 8943 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 8944 | |||
| 8945 | #define ID3D12VideoEncodeCommandList2_EndEvent(This) \ | ||
| 8946 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 8947 | |||
| 8948 | #define ID3D12VideoEncodeCommandList2_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ | ||
| 8949 | ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) | ||
| 8950 | |||
| 8951 | #define ID3D12VideoEncodeCommandList2_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ | ||
| 8952 | ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) | ||
| 8953 | |||
| 8954 | #define ID3D12VideoEncodeCommandList2_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 8955 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 8956 | |||
| 8957 | #define ID3D12VideoEncodeCommandList2_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 8958 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 8959 | |||
| 8960 | |||
| 8961 | #define ID3D12VideoEncodeCommandList2_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ | ||
| 8962 | ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) | ||
| 8963 | |||
| 8964 | #define ID3D12VideoEncodeCommandList2_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ | ||
| 8965 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) | ||
| 8966 | |||
| 8967 | |||
| 8968 | #define ID3D12VideoEncodeCommandList2_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \ | ||
| 8969 | ( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) ) | ||
| 8970 | |||
| 8971 | #define ID3D12VideoEncodeCommandList2_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \ | ||
| 8972 | ( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) ) | ||
| 8973 | |||
| 8974 | #endif /* COBJMACROS */ | ||
| 8975 | |||
| 8976 | |||
| 8977 | #endif /* C style interface */ | ||
| 8978 | |||
| 8979 | |||
| 8980 | |||
| 8981 | |||
| 8982 | #endif /* __ID3D12VideoEncodeCommandList2_INTERFACE_DEFINED__ */ | ||
| 8983 | |||
| 8984 | |||
| 8985 | #ifndef __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__ | ||
| 8986 | #define __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__ | ||
| 8987 | |||
| 8988 | /* interface ID3D12VideoEncodeCommandList3 */ | ||
| 8989 | /* [unique][local][object][uuid] */ | ||
| 8990 | |||
| 8991 | |||
| 8992 | EXTERN_C const IID IID_ID3D12VideoEncodeCommandList3; | ||
| 8993 | |||
| 8994 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 8995 | |||
| 8996 | MIDL_INTERFACE("7f027b22-1515-4e85-aa0d-026486580576") | ||
| 8997 | ID3D12VideoEncodeCommandList3 : public ID3D12VideoEncodeCommandList2 | ||
| 8998 | { | ||
| 8999 | public: | ||
| 9000 | virtual void STDMETHODCALLTYPE Barrier( | ||
| 9001 | UINT32 NumBarrierGroups, | ||
| 9002 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups) = 0; | ||
| 9003 | |||
| 9004 | }; | ||
| 9005 | |||
| 9006 | |||
| 9007 | #else /* C style interface */ | ||
| 9008 | |||
| 9009 | typedef struct ID3D12VideoEncodeCommandList3Vtbl | ||
| 9010 | { | ||
| 9011 | BEGIN_INTERFACE | ||
| 9012 | |||
| 9013 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 9014 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 9015 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9016 | REFIID riid, | ||
| 9017 | _COM_Outptr_ void **ppvObject); | ||
| 9018 | |||
| 9019 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 9020 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 9021 | ID3D12VideoEncodeCommandList3 * This); | ||
| 9022 | |||
| 9023 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 9024 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 9025 | ID3D12VideoEncodeCommandList3 * This); | ||
| 9026 | |||
| 9027 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 9028 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 9029 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9030 | _In_ REFGUID guid, | ||
| 9031 | _Inout_ UINT *pDataSize, | ||
| 9032 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 9033 | |||
| 9034 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 9035 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 9036 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9037 | _In_ REFGUID guid, | ||
| 9038 | _In_ UINT DataSize, | ||
| 9039 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 9040 | |||
| 9041 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 9042 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 9043 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9044 | _In_ REFGUID guid, | ||
| 9045 | _In_opt_ const IUnknown *pData); | ||
| 9046 | |||
| 9047 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 9048 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 9049 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9050 | _In_z_ LPCWSTR Name); | ||
| 9051 | |||
| 9052 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 9053 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 9054 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9055 | REFIID riid, | ||
| 9056 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 9057 | |||
| 9058 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 9059 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 9060 | ID3D12VideoEncodeCommandList3 * This); | ||
| 9061 | |||
| 9062 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) | ||
| 9063 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 9064 | ID3D12VideoEncodeCommandList3 * This); | ||
| 9065 | |||
| 9066 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) | ||
| 9067 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 9068 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9069 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 9070 | |||
| 9071 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) | ||
| 9072 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 9073 | ID3D12VideoEncodeCommandList3 * This); | ||
| 9074 | |||
| 9075 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) | ||
| 9076 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 9077 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9078 | _In_ UINT NumBarriers, | ||
| 9079 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 9080 | |||
| 9081 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) | ||
| 9082 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 9083 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9084 | _In_ ID3D12Resource *pResource, | ||
| 9085 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 9086 | |||
| 9087 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) | ||
| 9088 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 9089 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9090 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 9091 | _In_ D3D12_QUERY_TYPE Type, | ||
| 9092 | _In_ UINT Index); | ||
| 9093 | |||
| 9094 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) | ||
| 9095 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 9096 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9097 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 9098 | _In_ D3D12_QUERY_TYPE Type, | ||
| 9099 | _In_ UINT Index); | ||
| 9100 | |||
| 9101 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) | ||
| 9102 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 9103 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9104 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 9105 | _In_ D3D12_QUERY_TYPE Type, | ||
| 9106 | _In_ UINT StartIndex, | ||
| 9107 | _In_ UINT NumQueries, | ||
| 9108 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 9109 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 9110 | |||
| 9111 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication) | ||
| 9112 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 9113 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9114 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 9115 | _In_ UINT64 AlignedBufferOffset, | ||
| 9116 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 9117 | |||
| 9118 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) | ||
| 9119 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 9120 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9121 | UINT Metadata, | ||
| 9122 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 9123 | UINT Size); | ||
| 9124 | |||
| 9125 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) | ||
| 9126 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 9127 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9128 | UINT Metadata, | ||
| 9129 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 9130 | UINT Size); | ||
| 9131 | |||
| 9132 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) | ||
| 9133 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 9134 | ID3D12VideoEncodeCommandList3 * This); | ||
| 9135 | |||
| 9136 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) | ||
| 9137 | void ( STDMETHODCALLTYPE *EstimateMotion )( | ||
| 9138 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9139 | _In_ ID3D12VideoMotionEstimator *pMotionEstimator, | ||
| 9140 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments, | ||
| 9141 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments); | ||
| 9142 | |||
| 9143 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap) | ||
| 9144 | void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )( | ||
| 9145 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9146 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments, | ||
| 9147 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments); | ||
| 9148 | |||
| 9149 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate) | ||
| 9150 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 9151 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9152 | UINT Count, | ||
| 9153 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 9154 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 9155 | |||
| 9156 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession) | ||
| 9157 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 9158 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9159 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 9160 | |||
| 9161 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand) | ||
| 9162 | void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( | ||
| 9163 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9164 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 9165 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 9166 | SIZE_T InitializationParametersSizeInBytes); | ||
| 9167 | |||
| 9168 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand) | ||
| 9169 | void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 9170 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9171 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 9172 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 9173 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 9174 | |||
| 9175 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame) | ||
| 9176 | void ( STDMETHODCALLTYPE *EncodeFrame )( | ||
| 9177 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9178 | _In_ ID3D12VideoEncoder *pEncoder, | ||
| 9179 | _In_ ID3D12VideoEncoderHeap *pHeap, | ||
| 9180 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments, | ||
| 9181 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments); | ||
| 9182 | |||
| 9183 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata) | ||
| 9184 | void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )( | ||
| 9185 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9186 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments, | ||
| 9187 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments); | ||
| 9188 | |||
| 9189 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList3, Barrier) | ||
| 9190 | void ( STDMETHODCALLTYPE *Barrier )( | ||
| 9191 | ID3D12VideoEncodeCommandList3 * This, | ||
| 9192 | UINT32 NumBarrierGroups, | ||
| 9193 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); | ||
| 9194 | |||
| 9195 | END_INTERFACE | ||
| 9196 | } ID3D12VideoEncodeCommandList3Vtbl; | ||
| 9197 | |||
| 9198 | interface ID3D12VideoEncodeCommandList3 | ||
| 9199 | { | ||
| 9200 | CONST_VTBL struct ID3D12VideoEncodeCommandList3Vtbl *lpVtbl; | ||
| 9201 | }; | ||
| 9202 | |||
| 9203 | |||
| 9204 | |||
| 9205 | #ifdef COBJMACROS | ||
| 9206 | |||
| 9207 | |||
| 9208 | #define ID3D12VideoEncodeCommandList3_QueryInterface(This,riid,ppvObject) \ | ||
| 9209 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 9210 | |||
| 9211 | #define ID3D12VideoEncodeCommandList3_AddRef(This) \ | ||
| 9212 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 9213 | |||
| 9214 | #define ID3D12VideoEncodeCommandList3_Release(This) \ | ||
| 9215 | ( (This)->lpVtbl -> Release(This) ) | ||
| 9216 | |||
| 9217 | |||
| 9218 | #define ID3D12VideoEncodeCommandList3_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 9219 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 9220 | |||
| 9221 | #define ID3D12VideoEncodeCommandList3_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 9222 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 9223 | |||
| 9224 | #define ID3D12VideoEncodeCommandList3_SetPrivateDataInterface(This,guid,pData) \ | ||
| 9225 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 9226 | |||
| 9227 | #define ID3D12VideoEncodeCommandList3_SetName(This,Name) \ | ||
| 9228 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 9229 | |||
| 9230 | |||
| 9231 | #define ID3D12VideoEncodeCommandList3_GetDevice(This,riid,ppvDevice) \ | ||
| 9232 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 9233 | |||
| 9234 | |||
| 9235 | #define ID3D12VideoEncodeCommandList3_GetType(This) \ | ||
| 9236 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 9237 | |||
| 9238 | |||
| 9239 | #define ID3D12VideoEncodeCommandList3_Close(This) \ | ||
| 9240 | ( (This)->lpVtbl -> Close(This) ) | ||
| 9241 | |||
| 9242 | #define ID3D12VideoEncodeCommandList3_Reset(This,pAllocator) \ | ||
| 9243 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 9244 | |||
| 9245 | #define ID3D12VideoEncodeCommandList3_ClearState(This) \ | ||
| 9246 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 9247 | |||
| 9248 | #define ID3D12VideoEncodeCommandList3_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 9249 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 9250 | |||
| 9251 | #define ID3D12VideoEncodeCommandList3_DiscardResource(This,pResource,pRegion) \ | ||
| 9252 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 9253 | |||
| 9254 | #define ID3D12VideoEncodeCommandList3_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 9255 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 9256 | |||
| 9257 | #define ID3D12VideoEncodeCommandList3_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 9258 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 9259 | |||
| 9260 | #define ID3D12VideoEncodeCommandList3_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 9261 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 9262 | |||
| 9263 | #define ID3D12VideoEncodeCommandList3_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 9264 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 9265 | |||
| 9266 | #define ID3D12VideoEncodeCommandList3_SetMarker(This,Metadata,pData,Size) \ | ||
| 9267 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 9268 | |||
| 9269 | #define ID3D12VideoEncodeCommandList3_BeginEvent(This,Metadata,pData,Size) \ | ||
| 9270 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 9271 | |||
| 9272 | #define ID3D12VideoEncodeCommandList3_EndEvent(This) \ | ||
| 9273 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 9274 | |||
| 9275 | #define ID3D12VideoEncodeCommandList3_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ | ||
| 9276 | ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) | ||
| 9277 | |||
| 9278 | #define ID3D12VideoEncodeCommandList3_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ | ||
| 9279 | ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) | ||
| 9280 | |||
| 9281 | #define ID3D12VideoEncodeCommandList3_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 9282 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 9283 | |||
| 9284 | #define ID3D12VideoEncodeCommandList3_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 9285 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 9286 | |||
| 9287 | |||
| 9288 | #define ID3D12VideoEncodeCommandList3_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ | ||
| 9289 | ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) | ||
| 9290 | |||
| 9291 | #define ID3D12VideoEncodeCommandList3_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ | ||
| 9292 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) | ||
| 9293 | |||
| 9294 | |||
| 9295 | #define ID3D12VideoEncodeCommandList3_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \ | ||
| 9296 | ( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) ) | ||
| 9297 | |||
| 9298 | #define ID3D12VideoEncodeCommandList3_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \ | ||
| 9299 | ( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) ) | ||
| 9300 | |||
| 9301 | |||
| 9302 | #define ID3D12VideoEncodeCommandList3_Barrier(This,NumBarrierGroups,pBarrierGroups) \ | ||
| 9303 | ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) | ||
| 9304 | |||
| 9305 | #endif /* COBJMACROS */ | ||
| 9306 | |||
| 9307 | |||
| 9308 | #endif /* C style interface */ | ||
| 9309 | |||
| 9310 | |||
| 9311 | |||
| 9312 | |||
| 9313 | #endif /* __ID3D12VideoEncodeCommandList3_INTERFACE_DEFINED__ */ | ||
| 9314 | |||
| 9315 | |||
| 9316 | /* interface __MIDL_itf_d3d12video_0000_0027 */ | ||
| 9317 | /* [local] */ | ||
| 9318 | |||
| 9319 | typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC1 | ||
| 9320 | { | ||
| 9321 | UINT NodeMask; | ||
| 9322 | D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags; | ||
| 9323 | D3D12_VIDEO_ENCODER_CODEC EncodeCodec; | ||
| 9324 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; | ||
| 9325 | D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel; | ||
| 9326 | UINT ResolutionsListCount; | ||
| 9327 | _Field_size_full_(ResolutionsListCount) const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList; | ||
| 9328 | UINT Pow2DownscaleFactor; | ||
| 9329 | } D3D12_VIDEO_ENCODER_HEAP_DESC1; | ||
| 9330 | |||
| 9331 | |||
| 9332 | |||
| 9333 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_c_ifspec; | ||
| 9334 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0027_v0_0_s_ifspec; | ||
| 9335 | |||
| 9336 | #ifndef __ID3D12VideoEncoderHeap1_INTERFACE_DEFINED__ | ||
| 9337 | #define __ID3D12VideoEncoderHeap1_INTERFACE_DEFINED__ | ||
| 9338 | |||
| 9339 | /* interface ID3D12VideoEncoderHeap1 */ | ||
| 9340 | /* [unique][local][object][uuid] */ | ||
| 9341 | |||
| 9342 | |||
| 9343 | EXTERN_C const IID IID_ID3D12VideoEncoderHeap1; | ||
| 9344 | |||
| 9345 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 9346 | |||
| 9347 | MIDL_INTERFACE("ea8f1968-4aa0-43a4-9d30-ba86ec84d4f9") | ||
| 9348 | ID3D12VideoEncoderHeap1 : public ID3D12VideoEncoderHeap | ||
| 9349 | { | ||
| 9350 | public: | ||
| 9351 | virtual UINT STDMETHODCALLTYPE GetPow2DownscaleFactor( void) = 0; | ||
| 9352 | |||
| 9353 | }; | ||
| 9354 | |||
| 9355 | |||
| 9356 | #else /* C style interface */ | ||
| 9357 | |||
| 9358 | typedef struct ID3D12VideoEncoderHeap1Vtbl | ||
| 9359 | { | ||
| 9360 | BEGIN_INTERFACE | ||
| 9361 | |||
| 9362 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 9363 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 9364 | ID3D12VideoEncoderHeap1 * This, | ||
| 9365 | REFIID riid, | ||
| 9366 | _COM_Outptr_ void **ppvObject); | ||
| 9367 | |||
| 9368 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 9369 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 9370 | ID3D12VideoEncoderHeap1 * This); | ||
| 9371 | |||
| 9372 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 9373 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 9374 | ID3D12VideoEncoderHeap1 * This); | ||
| 9375 | |||
| 9376 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 9377 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 9378 | ID3D12VideoEncoderHeap1 * This, | ||
| 9379 | _In_ REFGUID guid, | ||
| 9380 | _Inout_ UINT *pDataSize, | ||
| 9381 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 9382 | |||
| 9383 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 9384 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 9385 | ID3D12VideoEncoderHeap1 * This, | ||
| 9386 | _In_ REFGUID guid, | ||
| 9387 | _In_ UINT DataSize, | ||
| 9388 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 9389 | |||
| 9390 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 9391 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 9392 | ID3D12VideoEncoderHeap1 * This, | ||
| 9393 | _In_ REFGUID guid, | ||
| 9394 | _In_opt_ const IUnknown *pData); | ||
| 9395 | |||
| 9396 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 9397 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 9398 | ID3D12VideoEncoderHeap1 * This, | ||
| 9399 | _In_z_ LPCWSTR Name); | ||
| 9400 | |||
| 9401 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 9402 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 9403 | ID3D12VideoEncoderHeap1 * This, | ||
| 9404 | REFIID riid, | ||
| 9405 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 9406 | |||
| 9407 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetNodeMask) | ||
| 9408 | UINT ( STDMETHODCALLTYPE *GetNodeMask )( | ||
| 9409 | ID3D12VideoEncoderHeap1 * This); | ||
| 9410 | |||
| 9411 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetEncoderHeapFlags) | ||
| 9412 | D3D12_VIDEO_ENCODER_HEAP_FLAGS ( STDMETHODCALLTYPE *GetEncoderHeapFlags )( | ||
| 9413 | ID3D12VideoEncoderHeap1 * This); | ||
| 9414 | |||
| 9415 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodec) | ||
| 9416 | D3D12_VIDEO_ENCODER_CODEC ( STDMETHODCALLTYPE *GetCodec )( | ||
| 9417 | ID3D12VideoEncoderHeap1 * This); | ||
| 9418 | |||
| 9419 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecProfile) | ||
| 9420 | HRESULT ( STDMETHODCALLTYPE *GetCodecProfile )( | ||
| 9421 | ID3D12VideoEncoderHeap1 * This, | ||
| 9422 | _Inout_ D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile); | ||
| 9423 | |||
| 9424 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetCodecLevel) | ||
| 9425 | HRESULT ( STDMETHODCALLTYPE *GetCodecLevel )( | ||
| 9426 | ID3D12VideoEncoderHeap1 * This, | ||
| 9427 | _Inout_ D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel); | ||
| 9428 | |||
| 9429 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionListCount) | ||
| 9430 | UINT ( STDMETHODCALLTYPE *GetResolutionListCount )( | ||
| 9431 | ID3D12VideoEncoderHeap1 * This); | ||
| 9432 | |||
| 9433 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap, GetResolutionList) | ||
| 9434 | HRESULT ( STDMETHODCALLTYPE *GetResolutionList )( | ||
| 9435 | ID3D12VideoEncoderHeap1 * This, | ||
| 9436 | const UINT ResolutionsListCount, | ||
| 9437 | _Out_writes_(ResolutionsListCount) D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList); | ||
| 9438 | |||
| 9439 | DECLSPEC_XFGVIRT(ID3D12VideoEncoderHeap1, GetPow2DownscaleFactor) | ||
| 9440 | UINT ( STDMETHODCALLTYPE *GetPow2DownscaleFactor )( | ||
| 9441 | ID3D12VideoEncoderHeap1 * This); | ||
| 9442 | |||
| 9443 | END_INTERFACE | ||
| 9444 | } ID3D12VideoEncoderHeap1Vtbl; | ||
| 9445 | |||
| 9446 | interface ID3D12VideoEncoderHeap1 | ||
| 9447 | { | ||
| 9448 | CONST_VTBL struct ID3D12VideoEncoderHeap1Vtbl *lpVtbl; | ||
| 9449 | }; | ||
| 9450 | |||
| 9451 | |||
| 9452 | |||
| 9453 | #ifdef COBJMACROS | ||
| 9454 | |||
| 9455 | |||
| 9456 | #define ID3D12VideoEncoderHeap1_QueryInterface(This,riid,ppvObject) \ | ||
| 9457 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 9458 | |||
| 9459 | #define ID3D12VideoEncoderHeap1_AddRef(This) \ | ||
| 9460 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 9461 | |||
| 9462 | #define ID3D12VideoEncoderHeap1_Release(This) \ | ||
| 9463 | ( (This)->lpVtbl -> Release(This) ) | ||
| 9464 | |||
| 9465 | |||
| 9466 | #define ID3D12VideoEncoderHeap1_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 9467 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 9468 | |||
| 9469 | #define ID3D12VideoEncoderHeap1_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 9470 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 9471 | |||
| 9472 | #define ID3D12VideoEncoderHeap1_SetPrivateDataInterface(This,guid,pData) \ | ||
| 9473 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 9474 | |||
| 9475 | #define ID3D12VideoEncoderHeap1_SetName(This,Name) \ | ||
| 9476 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 9477 | |||
| 9478 | |||
| 9479 | #define ID3D12VideoEncoderHeap1_GetDevice(This,riid,ppvDevice) \ | ||
| 9480 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 9481 | |||
| 9482 | |||
| 9483 | |||
| 9484 | #define ID3D12VideoEncoderHeap1_GetNodeMask(This) \ | ||
| 9485 | ( (This)->lpVtbl -> GetNodeMask(This) ) | ||
| 9486 | |||
| 9487 | #define ID3D12VideoEncoderHeap1_GetEncoderHeapFlags(This) \ | ||
| 9488 | ( (This)->lpVtbl -> GetEncoderHeapFlags(This) ) | ||
| 9489 | |||
| 9490 | #define ID3D12VideoEncoderHeap1_GetCodec(This) \ | ||
| 9491 | ( (This)->lpVtbl -> GetCodec(This) ) | ||
| 9492 | |||
| 9493 | #define ID3D12VideoEncoderHeap1_GetCodecProfile(This,dstProfile) \ | ||
| 9494 | ( (This)->lpVtbl -> GetCodecProfile(This,dstProfile) ) | ||
| 9495 | |||
| 9496 | #define ID3D12VideoEncoderHeap1_GetCodecLevel(This,dstLevel) \ | ||
| 9497 | ( (This)->lpVtbl -> GetCodecLevel(This,dstLevel) ) | ||
| 9498 | |||
| 9499 | #define ID3D12VideoEncoderHeap1_GetResolutionListCount(This) \ | ||
| 9500 | ( (This)->lpVtbl -> GetResolutionListCount(This) ) | ||
| 9501 | |||
| 9502 | #define ID3D12VideoEncoderHeap1_GetResolutionList(This,ResolutionsListCount,pResolutionList) \ | ||
| 9503 | ( (This)->lpVtbl -> GetResolutionList(This,ResolutionsListCount,pResolutionList) ) | ||
| 9504 | |||
| 9505 | |||
| 9506 | #define ID3D12VideoEncoderHeap1_GetPow2DownscaleFactor(This) \ | ||
| 9507 | ( (This)->lpVtbl -> GetPow2DownscaleFactor(This) ) | ||
| 9508 | |||
| 9509 | #endif /* COBJMACROS */ | ||
| 9510 | |||
| 9511 | |||
| 9512 | #endif /* C style interface */ | ||
| 9513 | |||
| 9514 | |||
| 9515 | |||
| 9516 | |||
| 9517 | #endif /* __ID3D12VideoEncoderHeap1_INTERFACE_DEFINED__ */ | ||
| 9518 | |||
| 9519 | |||
| 9520 | #ifndef __ID3D12VideoDevice4_INTERFACE_DEFINED__ | ||
| 9521 | #define __ID3D12VideoDevice4_INTERFACE_DEFINED__ | ||
| 9522 | |||
| 9523 | /* interface ID3D12VideoDevice4 */ | ||
| 9524 | /* [unique][local][object][uuid] */ | ||
| 9525 | |||
| 9526 | |||
| 9527 | EXTERN_C const IID IID_ID3D12VideoDevice4; | ||
| 9528 | |||
| 9529 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 9530 | |||
| 9531 | MIDL_INTERFACE("e59ad09e-f1ae-42bb-8983-9f6e5586c4eb") | ||
| 9532 | ID3D12VideoDevice4 : public ID3D12VideoDevice3 | ||
| 9533 | { | ||
| 9534 | public: | ||
| 9535 | virtual HRESULT STDMETHODCALLTYPE CreateVideoEncoderHeap1( | ||
| 9536 | _In_ const D3D12_VIDEO_ENCODER_HEAP_DESC1 *pDesc, | ||
| 9537 | _In_ REFIID riid, | ||
| 9538 | _COM_Outptr_ void **ppVideoEncoderHeap) = 0; | ||
| 9539 | |||
| 9540 | }; | ||
| 9541 | |||
| 9542 | |||
| 9543 | #else /* C style interface */ | ||
| 9544 | |||
| 9545 | typedef struct ID3D12VideoDevice4Vtbl | ||
| 9546 | { | ||
| 9547 | BEGIN_INTERFACE | ||
| 9548 | |||
| 9549 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 9550 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 9551 | ID3D12VideoDevice4 * This, | ||
| 9552 | REFIID riid, | ||
| 9553 | _COM_Outptr_ void **ppvObject); | ||
| 9554 | |||
| 9555 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 9556 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 9557 | ID3D12VideoDevice4 * This); | ||
| 9558 | |||
| 9559 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 9560 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 9561 | ID3D12VideoDevice4 * This); | ||
| 9562 | |||
| 9563 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CheckFeatureSupport) | ||
| 9564 | HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( | ||
| 9565 | ID3D12VideoDevice4 * This, | ||
| 9566 | D3D12_FEATURE_VIDEO FeatureVideo, | ||
| 9567 | _Inout_updates_bytes_(FeatureSupportDataSize) void *pFeatureSupportData, | ||
| 9568 | UINT FeatureSupportDataSize); | ||
| 9569 | |||
| 9570 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoder) | ||
| 9571 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder )( | ||
| 9572 | ID3D12VideoDevice4 * This, | ||
| 9573 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 9574 | _In_ REFIID riid, | ||
| 9575 | _COM_Outptr_ void **ppVideoDecoder); | ||
| 9576 | |||
| 9577 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoDecoderHeap) | ||
| 9578 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap )( | ||
| 9579 | ID3D12VideoDevice4 * This, | ||
| 9580 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 9581 | _In_ REFIID riid, | ||
| 9582 | _COM_Outptr_ void **ppVideoDecoderHeap); | ||
| 9583 | |||
| 9584 | DECLSPEC_XFGVIRT(ID3D12VideoDevice, CreateVideoProcessor) | ||
| 9585 | HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor )( | ||
| 9586 | ID3D12VideoDevice4 * This, | ||
| 9587 | UINT NodeMask, | ||
| 9588 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 9589 | UINT NumInputStreamDescs, | ||
| 9590 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 9591 | _In_ REFIID riid, | ||
| 9592 | _COM_Outptr_ void **ppVideoProcessor); | ||
| 9593 | |||
| 9594 | DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionEstimator) | ||
| 9595 | HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionEstimator )( | ||
| 9596 | ID3D12VideoDevice4 * This, | ||
| 9597 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_DESC *pDesc, | ||
| 9598 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 9599 | _In_ REFIID riid, | ||
| 9600 | _COM_Outptr_ void **ppVideoMotionEstimator); | ||
| 9601 | |||
| 9602 | DECLSPEC_XFGVIRT(ID3D12VideoDevice1, CreateVideoMotionVectorHeap) | ||
| 9603 | HRESULT ( STDMETHODCALLTYPE *CreateVideoMotionVectorHeap )( | ||
| 9604 | ID3D12VideoDevice4 * This, | ||
| 9605 | _In_ const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC *pDesc, | ||
| 9606 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 9607 | _In_ REFIID riid, | ||
| 9608 | _COM_Outptr_ void **ppVideoMotionVectorHeap); | ||
| 9609 | |||
| 9610 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoder1) | ||
| 9611 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoder1 )( | ||
| 9612 | ID3D12VideoDevice4 * This, | ||
| 9613 | _In_ const D3D12_VIDEO_DECODER_DESC *pDesc, | ||
| 9614 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 9615 | _In_ REFIID riid, | ||
| 9616 | _COM_Outptr_ void **ppVideoDecoder); | ||
| 9617 | |||
| 9618 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoDecoderHeap1) | ||
| 9619 | HRESULT ( STDMETHODCALLTYPE *CreateVideoDecoderHeap1 )( | ||
| 9620 | ID3D12VideoDevice4 * This, | ||
| 9621 | _In_ const D3D12_VIDEO_DECODER_HEAP_DESC *pVideoDecoderHeapDesc, | ||
| 9622 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 9623 | _In_ REFIID riid, | ||
| 9624 | _COM_Outptr_ void **ppVideoDecoderHeap); | ||
| 9625 | |||
| 9626 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoProcessor1) | ||
| 9627 | HRESULT ( STDMETHODCALLTYPE *CreateVideoProcessor1 )( | ||
| 9628 | ID3D12VideoDevice4 * This, | ||
| 9629 | UINT NodeMask, | ||
| 9630 | _In_ const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC *pOutputStreamDesc, | ||
| 9631 | UINT NumInputStreamDescs, | ||
| 9632 | _In_reads_(NumInputStreamDescs) const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 9633 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 9634 | _In_ REFIID riid, | ||
| 9635 | _COM_Outptr_ void **ppVideoProcessor); | ||
| 9636 | |||
| 9637 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, CreateVideoExtensionCommand) | ||
| 9638 | HRESULT ( STDMETHODCALLTYPE *CreateVideoExtensionCommand )( | ||
| 9639 | ID3D12VideoDevice4 * This, | ||
| 9640 | _In_ const D3D12_VIDEO_EXTENSION_COMMAND_DESC *pDesc, | ||
| 9641 | _In_reads_bytes_(CreationParametersDataSizeInBytes) const void *pCreationParameters, | ||
| 9642 | SIZE_T CreationParametersDataSizeInBytes, | ||
| 9643 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 9644 | _In_ REFIID riid, | ||
| 9645 | _COM_Outptr_ void **ppVideoExtensionCommand); | ||
| 9646 | |||
| 9647 | DECLSPEC_XFGVIRT(ID3D12VideoDevice2, ExecuteExtensionCommand) | ||
| 9648 | HRESULT ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 9649 | ID3D12VideoDevice4 * This, | ||
| 9650 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 9651 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 9652 | SIZE_T ExecutionParametersSizeInBytes, | ||
| 9653 | _Out_writes_bytes_(OutputDataSizeInBytes) void *pOutputData, | ||
| 9654 | SIZE_T OutputDataSizeInBytes); | ||
| 9655 | |||
| 9656 | DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoder) | ||
| 9657 | HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoder )( | ||
| 9658 | ID3D12VideoDevice4 * This, | ||
| 9659 | _In_ const D3D12_VIDEO_ENCODER_DESC *pDesc, | ||
| 9660 | _In_ REFIID riid, | ||
| 9661 | _COM_Outptr_ void **ppVideoEncoder); | ||
| 9662 | |||
| 9663 | DECLSPEC_XFGVIRT(ID3D12VideoDevice3, CreateVideoEncoderHeap) | ||
| 9664 | HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoderHeap )( | ||
| 9665 | ID3D12VideoDevice4 * This, | ||
| 9666 | _In_ const D3D12_VIDEO_ENCODER_HEAP_DESC *pDesc, | ||
| 9667 | _In_ REFIID riid, | ||
| 9668 | _COM_Outptr_ void **ppVideoEncoderHeap); | ||
| 9669 | |||
| 9670 | DECLSPEC_XFGVIRT(ID3D12VideoDevice4, CreateVideoEncoderHeap1) | ||
| 9671 | HRESULT ( STDMETHODCALLTYPE *CreateVideoEncoderHeap1 )( | ||
| 9672 | ID3D12VideoDevice4 * This, | ||
| 9673 | _In_ const D3D12_VIDEO_ENCODER_HEAP_DESC1 *pDesc, | ||
| 9674 | _In_ REFIID riid, | ||
| 9675 | _COM_Outptr_ void **ppVideoEncoderHeap); | ||
| 9676 | |||
| 9677 | END_INTERFACE | ||
| 9678 | } ID3D12VideoDevice4Vtbl; | ||
| 9679 | |||
| 9680 | interface ID3D12VideoDevice4 | ||
| 9681 | { | ||
| 9682 | CONST_VTBL struct ID3D12VideoDevice4Vtbl *lpVtbl; | ||
| 9683 | }; | ||
| 9684 | |||
| 9685 | |||
| 9686 | |||
| 9687 | #ifdef COBJMACROS | ||
| 9688 | |||
| 9689 | |||
| 9690 | #define ID3D12VideoDevice4_QueryInterface(This,riid,ppvObject) \ | ||
| 9691 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 9692 | |||
| 9693 | #define ID3D12VideoDevice4_AddRef(This) \ | ||
| 9694 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 9695 | |||
| 9696 | #define ID3D12VideoDevice4_Release(This) \ | ||
| 9697 | ( (This)->lpVtbl -> Release(This) ) | ||
| 9698 | |||
| 9699 | |||
| 9700 | #define ID3D12VideoDevice4_CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) \ | ||
| 9701 | ( (This)->lpVtbl -> CheckFeatureSupport(This,FeatureVideo,pFeatureSupportData,FeatureSupportDataSize) ) | ||
| 9702 | |||
| 9703 | #define ID3D12VideoDevice4_CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) \ | ||
| 9704 | ( (This)->lpVtbl -> CreateVideoDecoder(This,pDesc,riid,ppVideoDecoder) ) | ||
| 9705 | |||
| 9706 | #define ID3D12VideoDevice4_CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) \ | ||
| 9707 | ( (This)->lpVtbl -> CreateVideoDecoderHeap(This,pVideoDecoderHeapDesc,riid,ppVideoDecoderHeap) ) | ||
| 9708 | |||
| 9709 | #define ID3D12VideoDevice4_CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) \ | ||
| 9710 | ( (This)->lpVtbl -> CreateVideoProcessor(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,riid,ppVideoProcessor) ) | ||
| 9711 | |||
| 9712 | |||
| 9713 | #define ID3D12VideoDevice4_CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) \ | ||
| 9714 | ( (This)->lpVtbl -> CreateVideoMotionEstimator(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionEstimator) ) | ||
| 9715 | |||
| 9716 | #define ID3D12VideoDevice4_CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) \ | ||
| 9717 | ( (This)->lpVtbl -> CreateVideoMotionVectorHeap(This,pDesc,pProtectedResourceSession,riid,ppVideoMotionVectorHeap) ) | ||
| 9718 | |||
| 9719 | |||
| 9720 | #define ID3D12VideoDevice4_CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) \ | ||
| 9721 | ( (This)->lpVtbl -> CreateVideoDecoder1(This,pDesc,pProtectedResourceSession,riid,ppVideoDecoder) ) | ||
| 9722 | |||
| 9723 | #define ID3D12VideoDevice4_CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) \ | ||
| 9724 | ( (This)->lpVtbl -> CreateVideoDecoderHeap1(This,pVideoDecoderHeapDesc,pProtectedResourceSession,riid,ppVideoDecoderHeap) ) | ||
| 9725 | |||
| 9726 | #define ID3D12VideoDevice4_CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) \ | ||
| 9727 | ( (This)->lpVtbl -> CreateVideoProcessor1(This,NodeMask,pOutputStreamDesc,NumInputStreamDescs,pInputStreamDescs,pProtectedResourceSession,riid,ppVideoProcessor) ) | ||
| 9728 | |||
| 9729 | #define ID3D12VideoDevice4_CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) \ | ||
| 9730 | ( (This)->lpVtbl -> CreateVideoExtensionCommand(This,pDesc,pCreationParameters,CreationParametersDataSizeInBytes,pProtectedResourceSession,riid,ppVideoExtensionCommand) ) | ||
| 9731 | |||
| 9732 | #define ID3D12VideoDevice4_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) \ | ||
| 9733 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes,pOutputData,OutputDataSizeInBytes) ) | ||
| 9734 | |||
| 9735 | |||
| 9736 | #define ID3D12VideoDevice4_CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) \ | ||
| 9737 | ( (This)->lpVtbl -> CreateVideoEncoder(This,pDesc,riid,ppVideoEncoder) ) | ||
| 9738 | |||
| 9739 | #define ID3D12VideoDevice4_CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) \ | ||
| 9740 | ( (This)->lpVtbl -> CreateVideoEncoderHeap(This,pDesc,riid,ppVideoEncoderHeap) ) | ||
| 9741 | |||
| 9742 | |||
| 9743 | #define ID3D12VideoDevice4_CreateVideoEncoderHeap1(This,pDesc,riid,ppVideoEncoderHeap) \ | ||
| 9744 | ( (This)->lpVtbl -> CreateVideoEncoderHeap1(This,pDesc,riid,ppVideoEncoderHeap) ) | ||
| 9745 | |||
| 9746 | #endif /* COBJMACROS */ | ||
| 9747 | |||
| 9748 | |||
| 9749 | #endif /* C style interface */ | ||
| 9750 | |||
| 9751 | |||
| 9752 | |||
| 9753 | |||
| 9754 | #endif /* __ID3D12VideoDevice4_INTERFACE_DEFINED__ */ | ||
| 9755 | |||
| 9756 | |||
| 9757 | /* interface __MIDL_itf_d3d12video_0000_0029 */ | ||
| 9758 | /* [local] */ | ||
| 9759 | |||
| 9760 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE1 | ||
| 9761 | { | ||
| 9762 | D3D12_VIDEO_ENCODER_HEAP_DESC1 HeapDesc; | ||
| 9763 | BOOL IsSupported; | ||
| 9764 | UINT64 MemoryPoolL0Size; | ||
| 9765 | UINT64 MemoryPoolL1Size; | ||
| 9766 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE1; | ||
| 9767 | |||
| 9768 | typedef | ||
| 9769 | enum D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS | ||
| 9770 | { | ||
| 9771 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_NONE = 0, | ||
| 9772 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_QP_MAP = 0x1, | ||
| 9773 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_SATD_MAP = 0x2, | ||
| 9774 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_RC_BIT_ALLOCATION_MAP = 0x4, | ||
| 9775 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_FRAME_PSNR = 0x8, | ||
| 9776 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_SUBREGIONS_PSNR = 0x10 | ||
| 9777 | } D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS; | ||
| 9778 | |||
| 9779 | DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS ) | ||
| 9780 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 | ||
| 9781 | { | ||
| 9782 | UINT NodeIndex; | ||
| 9783 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 9784 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 9785 | DXGI_FORMAT InputFormat; | ||
| 9786 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; | ||
| 9787 | BOOL IsSupported; | ||
| 9788 | UINT CompressedBitstreamBufferAccessAlignment; | ||
| 9789 | UINT EncoderMetadataBufferAccessAlignment; | ||
| 9790 | UINT MaxEncoderOutputMetadataBufferSize; | ||
| 9791 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; | ||
| 9792 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 9793 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataQPMapTextureDimensions; | ||
| 9794 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataSATDMapTextureDimensions; | ||
| 9795 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataBitAllocationMapTextureDimensions; | ||
| 9796 | UINT EncoderOutputMetadataFramePSNRComponentsNumber; | ||
| 9797 | UINT EncoderOutputMetadataSubregionsPSNRComponentsNumber; | ||
| 9798 | UINT EncoderOutputMetadataSubregionsPSNRResolvedMetadataBufferSize; | ||
| 9799 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1; | ||
| 9800 | |||
| 9801 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_PSNR_RESOLVED_LAYOUT | ||
| 9802 | { | ||
| 9803 | float PSNRY; | ||
| 9804 | float PSNRU; | ||
| 9805 | float PSNRV; | ||
| 9806 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_PSNR_RESOLVED_LAYOUT; | ||
| 9807 | |||
| 9808 | typedef | ||
| 9809 | enum D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE | ||
| 9810 | { | ||
| 9811 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_CPU_BUFFER = 0, | ||
| 9812 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_GPU_TEXTURE = 1 | ||
| 9813 | } D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE; | ||
| 9814 | |||
| 9815 | typedef | ||
| 9816 | enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE | ||
| 9817 | { | ||
| 9818 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_DIRTY = 0, | ||
| 9819 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_SKIP = 1 | ||
| 9820 | } D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE; | ||
| 9821 | |||
| 9822 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO | ||
| 9823 | { | ||
| 9824 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 9825 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 9826 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; | ||
| 9827 | DXGI_FORMAT InputFormat; | ||
| 9828 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution; | ||
| 9829 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 9830 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 9831 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; | ||
| 9832 | } D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO; | ||
| 9833 | |||
| 9834 | typedef | ||
| 9835 | enum D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE | ||
| 9836 | { | ||
| 9837 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_QUANTIZATION_MATRIX = 0, | ||
| 9838 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_DIRTY_REGIONS = 1, | ||
| 9839 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_MOTION_VECTORS = 2 | ||
| 9840 | } D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE; | ||
| 9841 | |||
| 9842 | typedef | ||
| 9843 | enum D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE | ||
| 9844 | { | ||
| 9845 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_FULL_SEARCH = 0, | ||
| 9846 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT = 1, | ||
| 9847 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT_LIMITED_DISTANCE = 2 | ||
| 9848 | } D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE; | ||
| 9849 | |||
| 9850 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT | ||
| 9851 | { | ||
| 9852 | UINT NodeIndex; | ||
| 9853 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 9854 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 9855 | BOOL IsSupported; | ||
| 9856 | UINT MapSourcePreferenceRanking; | ||
| 9857 | UINT BlockSize; | ||
| 9858 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT; | ||
| 9859 | |||
| 9860 | typedef | ||
| 9861 | enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS | ||
| 9862 | { | ||
| 9863 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_NONE = 0, | ||
| 9864 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_REPEAT_FRAME = 0x1, | ||
| 9865 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS = 0x2, | ||
| 9866 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS_REQUIRE_FULL_ROW = 0x4 | ||
| 9867 | } D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS; | ||
| 9868 | |||
| 9869 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS ) | ||
| 9870 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS | ||
| 9871 | { | ||
| 9872 | UINT NodeIndex; | ||
| 9873 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 9874 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 9875 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; | ||
| 9876 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS SupportFlags; | ||
| 9877 | UINT MapSourcePreferenceRanking; | ||
| 9878 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS; | ||
| 9879 | |||
| 9880 | typedef | ||
| 9881 | enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION | ||
| 9882 | { | ||
| 9883 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL = 0, | ||
| 9884 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL = 1, | ||
| 9885 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL = 2 | ||
| 9886 | } D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION; | ||
| 9887 | |||
| 9888 | typedef | ||
| 9889 | enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS | ||
| 9890 | { | ||
| 9891 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_NONE = 0, | ||
| 9892 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_FULL_PIXEL = ( 1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL ) , | ||
| 9893 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_HALF_PIXEL = ( 1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL ) , | ||
| 9894 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_QUARTER_PIXEL = ( 1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL ) | ||
| 9895 | } D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS; | ||
| 9896 | |||
| 9897 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS ) | ||
| 9898 | typedef | ||
| 9899 | enum D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS | ||
| 9900 | { | ||
| 9901 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_NONE = 0, | ||
| 9902 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
| 9903 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_MULTIPLE_HINTS = 0x2, | ||
| 9904 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_GPU_TEXTURE_MULTIPLE_REFERENCES = 0x4 | ||
| 9905 | } D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS; | ||
| 9906 | |||
| 9907 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS ) | ||
| 9908 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH | ||
| 9909 | { | ||
| 9910 | UINT NodeIndex; | ||
| 9911 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 9912 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; | ||
| 9913 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 9914 | BOOL BidirectionalRefFrameEnabled; | ||
| 9915 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; | ||
| 9916 | UINT MaxMotionHints; | ||
| 9917 | UINT MinDeviation; | ||
| 9918 | UINT MaxDeviation; | ||
| 9919 | UINT MapSourcePreferenceRanking; | ||
| 9920 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupport; | ||
| 9921 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH; | ||
| 9922 | |||
| 9923 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT | ||
| 9924 | { | ||
| 9925 | UINT NodeIndex; | ||
| 9926 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 9927 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; | ||
| 9928 | BOOL IsSupported; | ||
| 9929 | UINT64 MaxResolvedBufferAllocationSize; | ||
| 9930 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT; | ||
| 9931 | |||
| 9932 | typedef struct D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION | ||
| 9933 | { | ||
| 9934 | BOOL Enabled; | ||
| 9935 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 9936 | } D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION; | ||
| 9937 | |||
| 9938 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP | ||
| 9939 | { | ||
| 9940 | UINT MapSourcePreferenceRanking; | ||
| 9941 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP; | ||
| 9942 | |||
| 9943 | typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION | ||
| 9944 | { | ||
| 9945 | BOOL Enabled; | ||
| 9946 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 9947 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; | ||
| 9948 | } D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION; | ||
| 9949 | |||
| 9950 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS | ||
| 9951 | { | ||
| 9952 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS DirtyRegionsSupportFlags; | ||
| 9953 | UINT MapSourcePreferenceRanking; | ||
| 9954 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS; | ||
| 9955 | |||
| 9956 | typedef struct D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION | ||
| 9957 | { | ||
| 9958 | BOOL Enabled; | ||
| 9959 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 9960 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; | ||
| 9961 | BOOL BidirectionalRefFrameEnabled; | ||
| 9962 | } D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION; | ||
| 9963 | |||
| 9964 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH | ||
| 9965 | { | ||
| 9966 | UINT MaxMotionHints; | ||
| 9967 | UINT MinDeviation; | ||
| 9968 | UINT MaxDeviation; | ||
| 9969 | UINT MapSourcePreferenceRanking; | ||
| 9970 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupportFlags; | ||
| 9971 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; | ||
| 9972 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH; | ||
| 9973 | |||
| 9974 | typedef | ||
| 9975 | enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS | ||
| 9976 | { | ||
| 9977 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_NONE = 0, | ||
| 9978 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_INTRACODED_FRAME_SUPPORTED = 0x1, | ||
| 9979 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_UNIDIR_INTER_FRAME_SUPPORTED = 0x2, | ||
| 9980 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_BIDIR_INTER_FRAME_SUPPORTED = 0x4, | ||
| 9981 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_EXTERNAL_DPB_DOWNSCALING = 0x8, | ||
| 9982 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_DYNAMIC_1ST_PASS_SKIP = 0x10, | ||
| 9983 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_DYNAMIC_DOWNSCALE_FACTOR_CHANGE_KEY_FRAME = 0x20, | ||
| 9984 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_SUPPORTED = ( ( D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_INTRACODED_FRAME_SUPPORTED | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_UNIDIR_INTER_FRAME_SUPPORTED ) | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_BIDIR_INTER_FRAME_SUPPORTED ) | ||
| 9985 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS; | ||
| 9986 | |||
| 9987 | DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS ) | ||
| 9988 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS | ||
| 9989 | { | ||
| 9990 | UINT NodeIndex; | ||
| 9991 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 9992 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 9993 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; | ||
| 9994 | DXGI_FORMAT InputFormat; | ||
| 9995 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution; | ||
| 9996 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 9997 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 9998 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; | ||
| 9999 | D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap; | ||
| 10000 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions; | ||
| 10001 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch; | ||
| 10002 | UINT Pow2DownscaleFactor; | ||
| 10003 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS SupportFlags; | ||
| 10004 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS; | ||
| 10005 | |||
| 10006 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS | ||
| 10007 | { | ||
| 10008 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS SupportFlags; | ||
| 10009 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS; | ||
| 10010 | |||
| 10011 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 | ||
| 10012 | { | ||
| 10013 | UINT MaxSubregionsNumber; | ||
| 10014 | UINT MaxIntraRefreshFrameDuration; | ||
| 10015 | UINT SubregionBlockPixelsSize; | ||
| 10016 | UINT QPMapRegionPixelsSize; | ||
| 10017 | D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP QPMap; | ||
| 10018 | D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS DirtyRegions; | ||
| 10019 | D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH MotionSearch; | ||
| 10020 | D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS FrameAnalysis; | ||
| 10021 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1; | ||
| 10022 | |||
| 10023 | typedef struct D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION | ||
| 10024 | { | ||
| 10025 | BOOL Enabled; | ||
| 10026 | UINT Pow2DownscaleFactor; | ||
| 10027 | } D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION; | ||
| 10028 | |||
| 10029 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2 | ||
| 10030 | { | ||
| 10031 | UINT NodeIndex; | ||
| 10032 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 10033 | DXGI_FORMAT InputFormat; | ||
| 10034 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 10035 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; | ||
| 10036 | D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; | ||
| 10037 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh; | ||
| 10038 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 10039 | UINT ResolutionsListCount; | ||
| 10040 | const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC *pResolutionList; | ||
| 10041 | UINT MaxReferenceFramesInDPB; | ||
| 10042 | D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; | ||
| 10043 | D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; | ||
| 10044 | D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; | ||
| 10045 | D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; | ||
| 10046 | _Field_size_full_(ResolutionsListCount) D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 *pResolutionDependentSupport; | ||
| 10047 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; | ||
| 10048 | UINT MaxQualityVsSpeed; | ||
| 10049 | D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap; | ||
| 10050 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions; | ||
| 10051 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch; | ||
| 10052 | D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION FrameAnalysis; | ||
| 10053 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2; | ||
| 10054 | |||
| 10055 | typedef struct D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO | ||
| 10056 | { | ||
| 10057 | BOOL FullFrameIdentical; | ||
| 10058 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; | ||
| 10059 | UINT NumDirtyRects; | ||
| 10060 | _Field_size_full_(NumDirtyRects) RECT *pDirtyRects; | ||
| 10061 | UINT SourceDPBFrameReference; | ||
| 10062 | } D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO; | ||
| 10063 | |||
| 10064 | typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS | ||
| 10065 | { | ||
| 10066 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 10067 | union | ||
| 10068 | { | ||
| 10069 | ID3D12Resource *pOpaqueLayoutBuffer; | ||
| 10070 | D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO *pCPUBuffer; | ||
| 10071 | } ; | ||
| 10072 | } D3D12_VIDEO_ENCODER_DIRTY_REGIONS; | ||
| 10073 | |||
| 10074 | typedef struct D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP | ||
| 10075 | { | ||
| 10076 | ID3D12Resource *pOpaqueQuantizationMap; | ||
| 10077 | } D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP; | ||
| 10078 | |||
| 10079 | typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG | ||
| 10080 | { | ||
| 10081 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; | ||
| 10082 | UINT SearchDeviationLimit; | ||
| 10083 | } D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG; | ||
| 10084 | |||
| 10085 | typedef struct D3D12_VIDEO_ENCODER_MOVE_RECT | ||
| 10086 | { | ||
| 10087 | POINT SourcePoint; | ||
| 10088 | RECT DestRect; | ||
| 10089 | } D3D12_VIDEO_ENCODER_MOVE_RECT; | ||
| 10090 | |||
| 10091 | typedef | ||
| 10092 | enum D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS | ||
| 10093 | { | ||
| 10094 | D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_NONE = 0, | ||
| 10095 | D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_MULTIPLE_HINTS = 0x1 | ||
| 10096 | } D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS; | ||
| 10097 | |||
| 10098 | typedef struct D3D12_VIDEO_ENCODER_MOVEREGION_INFO | ||
| 10099 | { | ||
| 10100 | UINT NumMoveRegions; | ||
| 10101 | _Field_size_full_(NumMoveRegions) D3D12_VIDEO_ENCODER_MOVE_RECT *pMoveRegions; | ||
| 10102 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; | ||
| 10103 | UINT SourceDPBFrameReference; | ||
| 10104 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; | ||
| 10105 | D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS Flags; | ||
| 10106 | } D3D12_VIDEO_ENCODER_MOVEREGION_INFO; | ||
| 10107 | |||
| 10108 | typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS | ||
| 10109 | { | ||
| 10110 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 10111 | union | ||
| 10112 | { | ||
| 10113 | ID3D12Resource *pOpaqueLayoutBuffer; | ||
| 10114 | D3D12_VIDEO_ENCODER_MOVEREGION_INFO *pCPUBuffer; | ||
| 10115 | } ; | ||
| 10116 | } D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS; | ||
| 10117 | |||
| 10118 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC2 | ||
| 10119 | { | ||
| 10120 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; | ||
| 10121 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; | ||
| 10122 | UINT slice_pic_parameter_set_id; | ||
| 10123 | UINT PictureOrderCountNumber; | ||
| 10124 | UINT TemporalLayerIndex; | ||
| 10125 | UINT List0ReferenceFramesCount; | ||
| 10126 | _Field_size_full_(List0ReferenceFramesCount) UINT *pList0ReferenceFrames; | ||
| 10127 | UINT List1ReferenceFramesCount; | ||
| 10128 | _Field_size_full_(List1ReferenceFramesCount) UINT *pList1ReferenceFrames; | ||
| 10129 | UINT ReferenceFramesReconPictureDescriptorsCount; | ||
| 10130 | _Field_size_full_(ReferenceFramesReconPictureDescriptorsCount) D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC *pReferenceFramesReconPictureDescriptors; | ||
| 10131 | UINT List0RefPicModificationsCount; | ||
| 10132 | _Field_size_full_(List0RefPicModificationsCount) UINT *pList0RefPicModifications; | ||
| 10133 | UINT List1RefPicModificationsCount; | ||
| 10134 | _Field_size_full_(List1RefPicModificationsCount) UINT *pList1RefPicModifications; | ||
| 10135 | UINT QPMapValuesCount; | ||
| 10136 | _Field_size_full_(QPMapValuesCount) INT8 *pRateControlQPMap; | ||
| 10137 | UCHAR diff_cu_chroma_qp_offset_depth; | ||
| 10138 | UCHAR log2_sao_offset_scale_luma; | ||
| 10139 | UCHAR log2_sao_offset_scale_chroma; | ||
| 10140 | UCHAR log2_max_transform_skip_block_size_minus2; | ||
| 10141 | UCHAR chroma_qp_offset_list_len_minus1; | ||
| 10142 | CHAR cb_qp_offset_list[ 6 ]; | ||
| 10143 | CHAR cr_qp_offset_list[ 6 ]; | ||
| 10144 | UINT num_ref_idx_l0_active_minus1; | ||
| 10145 | UINT num_ref_idx_l1_active_minus1; | ||
| 10146 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC2; | ||
| 10147 | |||
| 10148 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 | ||
| 10149 | { | ||
| 10150 | UINT DataSize; | ||
| 10151 | union | ||
| 10152 | { | ||
| 10153 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 *pH264PicData; | ||
| 10154 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC2 *pHEVCPicData; | ||
| 10155 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA *pAV1PicData; | ||
| 10156 | } ; | ||
| 10157 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1; | ||
| 10158 | |||
| 10159 | typedef struct D3D12_VIDEO_ENCODER_FRAME_ANALYSIS | ||
| 10160 | { | ||
| 10161 | ID3D12Resource *pDownscaledFrame; | ||
| 10162 | UINT64 Subresource; | ||
| 10163 | D3D12_VIDEO_ENCODE_REFERENCE_FRAMES DownscaledReferences; | ||
| 10164 | } D3D12_VIDEO_ENCODER_FRAME_ANALYSIS; | ||
| 10165 | |||
| 10166 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 | ||
| 10167 | { | ||
| 10168 | UINT IntraRefreshFrameIndex; | ||
| 10169 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags; | ||
| 10170 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 PictureControlCodecData; | ||
| 10171 | D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames; | ||
| 10172 | D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS MotionVectors; | ||
| 10173 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS DirtyRects; | ||
| 10174 | D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP QuantizationTextureMap; | ||
| 10175 | D3D12_VIDEO_ENCODER_FRAME_ANALYSIS FrameAnalysis; | ||
| 10176 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1; | ||
| 10177 | |||
| 10178 | typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 | ||
| 10179 | { | ||
| 10180 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc; | ||
| 10181 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 PictureControlDesc; | ||
| 10182 | ID3D12Resource *pInputFrame; | ||
| 10183 | UINT InputFrameSubresource; | ||
| 10184 | UINT CurrentFrameBitstreamMetadataSize; | ||
| 10185 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; | ||
| 10186 | } D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1; | ||
| 10187 | |||
| 10188 | typedef | ||
| 10189 | enum D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE | ||
| 10190 | { | ||
| 10191 | D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_ARRAY_OF_BUFFERS = 0, | ||
| 10192 | D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_SINGLE_BUFFER = 1 | ||
| 10193 | } D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE; | ||
| 10194 | |||
| 10195 | typedef struct D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM | ||
| 10196 | { | ||
| 10197 | D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE BufferMode; | ||
| 10198 | UINT ExpectedSubregionCount; | ||
| 10199 | UINT64 *pSubregionBitstreamsBaseOffsets; | ||
| 10200 | ID3D12Resource **ppSubregionBitstreams; | ||
| 10201 | ID3D12Resource **ppSubregionSizes; | ||
| 10202 | ID3D12Resource **ppSubregionOffsets; | ||
| 10203 | ID3D12Fence **ppSubregionFences; | ||
| 10204 | UINT64 *pSubregionFenceValues; | ||
| 10205 | } D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM; | ||
| 10206 | |||
| 10207 | typedef | ||
| 10208 | enum D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE | ||
| 10209 | { | ||
| 10210 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_FULL_FRAME = 0, | ||
| 10211 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_SUBREGIONS = 1 | ||
| 10212 | } D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE; | ||
| 10213 | |||
| 10214 | typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 | ||
| 10215 | { | ||
| 10216 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE NotificationMode; | ||
| 10217 | union | ||
| 10218 | { | ||
| 10219 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM FrameOutputBuffer; | ||
| 10220 | D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM SubregionOutputBuffers; | ||
| 10221 | } ; | ||
| 10222 | } D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1; | ||
| 10223 | |||
| 10224 | typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 | ||
| 10225 | { | ||
| 10226 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 Bitstream; | ||
| 10227 | D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture; | ||
| 10228 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata; | ||
| 10229 | D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE FrameAnalysisReconstructedPicture; | ||
| 10230 | } D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1; | ||
| 10231 | |||
| 10232 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 | ||
| 10233 | { | ||
| 10234 | D3D12_VIDEO_ENCODER_CODEC EncoderCodec; | ||
| 10235 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile; | ||
| 10236 | DXGI_FORMAT EncoderInputFormat; | ||
| 10237 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution; | ||
| 10238 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata; | ||
| 10239 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; | ||
| 10240 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 10241 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1; | ||
| 10242 | |||
| 10243 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 | ||
| 10244 | { | ||
| 10245 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata; | ||
| 10246 | ID3D12Resource *pOutputQPMap; | ||
| 10247 | ID3D12Resource *pOutputSATDMap; | ||
| 10248 | ID3D12Resource *pOutputBitAllocationMap; | ||
| 10249 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedFramePSNRData; | ||
| 10250 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedSubregionsPSNRData; | ||
| 10251 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1; | ||
| 10252 | |||
| 10253 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX | ||
| 10254 | { | ||
| 10255 | ID3D12Resource *pQuantizationMap; | ||
| 10256 | } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX; | ||
| 10257 | |||
| 10258 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS | ||
| 10259 | { | ||
| 10260 | BOOL FullFrameIdentical; | ||
| 10261 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; | ||
| 10262 | ID3D12Resource *pDirtyRegionsMap; | ||
| 10263 | UINT SourceDPBFrameReference; | ||
| 10264 | } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS; | ||
| 10265 | |||
| 10266 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS | ||
| 10267 | { | ||
| 10268 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; | ||
| 10269 | UINT NumHintsPerPixel; | ||
| 10270 | _Field_size_full_(NumHintsPerPixel) ID3D12Resource **ppMotionVectorMaps; | ||
| 10271 | _Field_size_full_(NumHintsPerPixel) UINT *pMotionVectorMapsSubresources; | ||
| 10272 | _Field_size_full_(NumHintsPerPixel) ID3D12Resource **ppMotionVectorMapsMetadata; | ||
| 10273 | _Field_size_full_(NumHintsPerPixel) UINT *pMotionVectorMapsMetadataSubresources; | ||
| 10274 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; | ||
| 10275 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 PictureControlConfiguration; | ||
| 10276 | } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS; | ||
| 10277 | |||
| 10278 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA | ||
| 10279 | { | ||
| 10280 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; | ||
| 10281 | union | ||
| 10282 | { | ||
| 10283 | D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX Quantization; | ||
| 10284 | D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS DirtyRegions; | ||
| 10285 | D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS MotionVectors; | ||
| 10286 | } ; | ||
| 10287 | } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA; | ||
| 10288 | |||
| 10289 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS | ||
| 10290 | { | ||
| 10291 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 10292 | D3D12_VIDEO_ENCODER_INPUT_MAP_DATA InputData; | ||
| 10293 | } D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS; | ||
| 10294 | |||
| 10295 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS | ||
| 10296 | { | ||
| 10297 | ID3D12Resource *pOpaqueLayoutBuffer; | ||
| 10298 | } D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS; | ||
| 10299 | |||
| 10300 | |||
| 10301 | |||
| 10302 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0029_v0_0_c_ifspec; | ||
| 10303 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0029_v0_0_s_ifspec; | ||
| 10304 | |||
| 10305 | #ifndef __ID3D12VideoEncodeCommandList4_INTERFACE_DEFINED__ | ||
| 10306 | #define __ID3D12VideoEncodeCommandList4_INTERFACE_DEFINED__ | ||
| 10307 | |||
| 10308 | /* interface ID3D12VideoEncodeCommandList4 */ | ||
| 10309 | /* [unique][local][object][uuid] */ | ||
| 10310 | |||
| 10311 | |||
| 10312 | EXTERN_C const IID IID_ID3D12VideoEncodeCommandList4; | ||
| 10313 | |||
| 10314 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 10315 | |||
| 10316 | MIDL_INTERFACE("69aeb5b7-55f2-4012-8b73-3a88d65a204c") | ||
| 10317 | ID3D12VideoEncodeCommandList4 : public ID3D12VideoEncodeCommandList3 | ||
| 10318 | { | ||
| 10319 | public: | ||
| 10320 | virtual void STDMETHODCALLTYPE EncodeFrame1( | ||
| 10321 | _In_ ID3D12VideoEncoder *pEncoder, | ||
| 10322 | _In_ ID3D12VideoEncoderHeap1 *pHeap, | ||
| 10323 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 *pInputArguments, | ||
| 10324 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 *pOutputArguments) = 0; | ||
| 10325 | |||
| 10326 | virtual void STDMETHODCALLTYPE ResolveEncoderOutputMetadata1( | ||
| 10327 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 *pInputArguments, | ||
| 10328 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 *pOutputArguments) = 0; | ||
| 10329 | |||
| 10330 | virtual void STDMETHODCALLTYPE ResolveInputParamLayout( | ||
| 10331 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS *pInputArguments, | ||
| 10332 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS *pOutputArguments) = 0; | ||
| 10333 | |||
| 10334 | }; | ||
| 10335 | |||
| 10336 | |||
| 10337 | #else /* C style interface */ | ||
| 10338 | |||
| 10339 | typedef struct ID3D12VideoEncodeCommandList4Vtbl | ||
| 10340 | { | ||
| 10341 | BEGIN_INTERFACE | ||
| 10342 | |||
| 10343 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 10344 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 10345 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10346 | REFIID riid, | ||
| 10347 | _COM_Outptr_ void **ppvObject); | ||
| 10348 | |||
| 10349 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 10350 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 10351 | ID3D12VideoEncodeCommandList4 * This); | ||
| 10352 | |||
| 10353 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 10354 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 10355 | ID3D12VideoEncodeCommandList4 * This); | ||
| 10356 | |||
| 10357 | DECLSPEC_XFGVIRT(ID3D12Object, GetPrivateData) | ||
| 10358 | HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( | ||
| 10359 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10360 | _In_ REFGUID guid, | ||
| 10361 | _Inout_ UINT *pDataSize, | ||
| 10362 | _Out_writes_bytes_opt_( *pDataSize ) void *pData); | ||
| 10363 | |||
| 10364 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateData) | ||
| 10365 | HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( | ||
| 10366 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10367 | _In_ REFGUID guid, | ||
| 10368 | _In_ UINT DataSize, | ||
| 10369 | _In_reads_bytes_opt_( DataSize ) const void *pData); | ||
| 10370 | |||
| 10371 | DECLSPEC_XFGVIRT(ID3D12Object, SetPrivateDataInterface) | ||
| 10372 | HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( | ||
| 10373 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10374 | _In_ REFGUID guid, | ||
| 10375 | _In_opt_ const IUnknown *pData); | ||
| 10376 | |||
| 10377 | DECLSPEC_XFGVIRT(ID3D12Object, SetName) | ||
| 10378 | HRESULT ( STDMETHODCALLTYPE *SetName )( | ||
| 10379 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10380 | _In_z_ LPCWSTR Name); | ||
| 10381 | |||
| 10382 | DECLSPEC_XFGVIRT(ID3D12DeviceChild, GetDevice) | ||
| 10383 | HRESULT ( STDMETHODCALLTYPE *GetDevice )( | ||
| 10384 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10385 | REFIID riid, | ||
| 10386 | _COM_Outptr_opt_ void **ppvDevice); | ||
| 10387 | |||
| 10388 | DECLSPEC_XFGVIRT(ID3D12CommandList, GetType) | ||
| 10389 | D3D12_COMMAND_LIST_TYPE ( STDMETHODCALLTYPE *GetType )( | ||
| 10390 | ID3D12VideoEncodeCommandList4 * This); | ||
| 10391 | |||
| 10392 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Close) | ||
| 10393 | HRESULT ( STDMETHODCALLTYPE *Close )( | ||
| 10394 | ID3D12VideoEncodeCommandList4 * This); | ||
| 10395 | |||
| 10396 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, Reset) | ||
| 10397 | HRESULT ( STDMETHODCALLTYPE *Reset )( | ||
| 10398 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10399 | _In_ ID3D12CommandAllocator *pAllocator); | ||
| 10400 | |||
| 10401 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ClearState) | ||
| 10402 | void ( STDMETHODCALLTYPE *ClearState )( | ||
| 10403 | ID3D12VideoEncodeCommandList4 * This); | ||
| 10404 | |||
| 10405 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResourceBarrier) | ||
| 10406 | void ( STDMETHODCALLTYPE *ResourceBarrier )( | ||
| 10407 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10408 | _In_ UINT NumBarriers, | ||
| 10409 | _In_reads_(NumBarriers) const D3D12_RESOURCE_BARRIER *pBarriers); | ||
| 10410 | |||
| 10411 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, DiscardResource) | ||
| 10412 | void ( STDMETHODCALLTYPE *DiscardResource )( | ||
| 10413 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10414 | _In_ ID3D12Resource *pResource, | ||
| 10415 | _In_opt_ const D3D12_DISCARD_REGION *pRegion); | ||
| 10416 | |||
| 10417 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginQuery) | ||
| 10418 | void ( STDMETHODCALLTYPE *BeginQuery )( | ||
| 10419 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10420 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 10421 | _In_ D3D12_QUERY_TYPE Type, | ||
| 10422 | _In_ UINT Index); | ||
| 10423 | |||
| 10424 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndQuery) | ||
| 10425 | void ( STDMETHODCALLTYPE *EndQuery )( | ||
| 10426 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10427 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 10428 | _In_ D3D12_QUERY_TYPE Type, | ||
| 10429 | _In_ UINT Index); | ||
| 10430 | |||
| 10431 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveQueryData) | ||
| 10432 | void ( STDMETHODCALLTYPE *ResolveQueryData )( | ||
| 10433 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10434 | _In_ ID3D12QueryHeap *pQueryHeap, | ||
| 10435 | _In_ D3D12_QUERY_TYPE Type, | ||
| 10436 | _In_ UINT StartIndex, | ||
| 10437 | _In_ UINT NumQueries, | ||
| 10438 | _In_ ID3D12Resource *pDestinationBuffer, | ||
| 10439 | _In_ UINT64 AlignedDestinationBufferOffset); | ||
| 10440 | |||
| 10441 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetPredication) | ||
| 10442 | void ( STDMETHODCALLTYPE *SetPredication )( | ||
| 10443 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10444 | _In_opt_ ID3D12Resource *pBuffer, | ||
| 10445 | _In_ UINT64 AlignedBufferOffset, | ||
| 10446 | _In_ D3D12_PREDICATION_OP Operation); | ||
| 10447 | |||
| 10448 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetMarker) | ||
| 10449 | void ( STDMETHODCALLTYPE *SetMarker )( | ||
| 10450 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10451 | UINT Metadata, | ||
| 10452 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 10453 | UINT Size); | ||
| 10454 | |||
| 10455 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, BeginEvent) | ||
| 10456 | void ( STDMETHODCALLTYPE *BeginEvent )( | ||
| 10457 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10458 | UINT Metadata, | ||
| 10459 | _In_reads_bytes_opt_(Size) const void *pData, | ||
| 10460 | UINT Size); | ||
| 10461 | |||
| 10462 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EndEvent) | ||
| 10463 | void ( STDMETHODCALLTYPE *EndEvent )( | ||
| 10464 | ID3D12VideoEncodeCommandList4 * This); | ||
| 10465 | |||
| 10466 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, EstimateMotion) | ||
| 10467 | void ( STDMETHODCALLTYPE *EstimateMotion )( | ||
| 10468 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10469 | _In_ ID3D12VideoMotionEstimator *pMotionEstimator, | ||
| 10470 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT *pOutputArguments, | ||
| 10471 | _In_ const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT *pInputArguments); | ||
| 10472 | |||
| 10473 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, ResolveMotionVectorHeap) | ||
| 10474 | void ( STDMETHODCALLTYPE *ResolveMotionVectorHeap )( | ||
| 10475 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10476 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT *pOutputArguments, | ||
| 10477 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT *pInputArguments); | ||
| 10478 | |||
| 10479 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, WriteBufferImmediate) | ||
| 10480 | void ( STDMETHODCALLTYPE *WriteBufferImmediate )( | ||
| 10481 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10482 | UINT Count, | ||
| 10483 | _In_reads_(Count) const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 10484 | _In_reads_opt_(Count) const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes); | ||
| 10485 | |||
| 10486 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList, SetProtectedResourceSession) | ||
| 10487 | void ( STDMETHODCALLTYPE *SetProtectedResourceSession )( | ||
| 10488 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10489 | _In_opt_ ID3D12ProtectedResourceSession *pProtectedResourceSession); | ||
| 10490 | |||
| 10491 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, InitializeExtensionCommand) | ||
| 10492 | void ( STDMETHODCALLTYPE *InitializeExtensionCommand )( | ||
| 10493 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10494 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 10495 | _In_reads_bytes_(InitializationParametersSizeInBytes) const void *pInitializationParameters, | ||
| 10496 | SIZE_T InitializationParametersSizeInBytes); | ||
| 10497 | |||
| 10498 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList1, ExecuteExtensionCommand) | ||
| 10499 | void ( STDMETHODCALLTYPE *ExecuteExtensionCommand )( | ||
| 10500 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10501 | _In_ ID3D12VideoExtensionCommand *pExtensionCommand, | ||
| 10502 | _In_reads_bytes_(ExecutionParametersSizeInBytes) const void *pExecutionParameters, | ||
| 10503 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 10504 | |||
| 10505 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, EncodeFrame) | ||
| 10506 | void ( STDMETHODCALLTYPE *EncodeFrame )( | ||
| 10507 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10508 | _In_ ID3D12VideoEncoder *pEncoder, | ||
| 10509 | _In_ ID3D12VideoEncoderHeap *pHeap, | ||
| 10510 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments, | ||
| 10511 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments); | ||
| 10512 | |||
| 10513 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList2, ResolveEncoderOutputMetadata) | ||
| 10514 | void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata )( | ||
| 10515 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10516 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS *pInputArguments, | ||
| 10517 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS *pOutputArguments); | ||
| 10518 | |||
| 10519 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList3, Barrier) | ||
| 10520 | void ( STDMETHODCALLTYPE *Barrier )( | ||
| 10521 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10522 | UINT32 NumBarrierGroups, | ||
| 10523 | _In_reads_(NumBarrierGroups) const D3D12_BARRIER_GROUP *pBarrierGroups); | ||
| 10524 | |||
| 10525 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList4, EncodeFrame1) | ||
| 10526 | void ( STDMETHODCALLTYPE *EncodeFrame1 )( | ||
| 10527 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10528 | _In_ ID3D12VideoEncoder *pEncoder, | ||
| 10529 | _In_ ID3D12VideoEncoderHeap1 *pHeap, | ||
| 10530 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 *pInputArguments, | ||
| 10531 | _In_ const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 *pOutputArguments); | ||
| 10532 | |||
| 10533 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList4, ResolveEncoderOutputMetadata1) | ||
| 10534 | void ( STDMETHODCALLTYPE *ResolveEncoderOutputMetadata1 )( | ||
| 10535 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10536 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 *pInputArguments, | ||
| 10537 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 *pOutputArguments); | ||
| 10538 | |||
| 10539 | DECLSPEC_XFGVIRT(ID3D12VideoEncodeCommandList4, ResolveInputParamLayout) | ||
| 10540 | void ( STDMETHODCALLTYPE *ResolveInputParamLayout )( | ||
| 10541 | ID3D12VideoEncodeCommandList4 * This, | ||
| 10542 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS *pInputArguments, | ||
| 10543 | _In_ const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS *pOutputArguments); | ||
| 10544 | |||
| 10545 | END_INTERFACE | ||
| 10546 | } ID3D12VideoEncodeCommandList4Vtbl; | ||
| 10547 | |||
| 10548 | interface ID3D12VideoEncodeCommandList4 | ||
| 10549 | { | ||
| 10550 | CONST_VTBL struct ID3D12VideoEncodeCommandList4Vtbl *lpVtbl; | ||
| 10551 | }; | ||
| 10552 | |||
| 10553 | |||
| 10554 | |||
| 10555 | #ifdef COBJMACROS | ||
| 10556 | |||
| 10557 | |||
| 10558 | #define ID3D12VideoEncodeCommandList4_QueryInterface(This,riid,ppvObject) \ | ||
| 10559 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 10560 | |||
| 10561 | #define ID3D12VideoEncodeCommandList4_AddRef(This) \ | ||
| 10562 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 10563 | |||
| 10564 | #define ID3D12VideoEncodeCommandList4_Release(This) \ | ||
| 10565 | ( (This)->lpVtbl -> Release(This) ) | ||
| 10566 | |||
| 10567 | |||
| 10568 | #define ID3D12VideoEncodeCommandList4_GetPrivateData(This,guid,pDataSize,pData) \ | ||
| 10569 | ( (This)->lpVtbl -> GetPrivateData(This,guid,pDataSize,pData) ) | ||
| 10570 | |||
| 10571 | #define ID3D12VideoEncodeCommandList4_SetPrivateData(This,guid,DataSize,pData) \ | ||
| 10572 | ( (This)->lpVtbl -> SetPrivateData(This,guid,DataSize,pData) ) | ||
| 10573 | |||
| 10574 | #define ID3D12VideoEncodeCommandList4_SetPrivateDataInterface(This,guid,pData) \ | ||
| 10575 | ( (This)->lpVtbl -> SetPrivateDataInterface(This,guid,pData) ) | ||
| 10576 | |||
| 10577 | #define ID3D12VideoEncodeCommandList4_SetName(This,Name) \ | ||
| 10578 | ( (This)->lpVtbl -> SetName(This,Name) ) | ||
| 10579 | |||
| 10580 | |||
| 10581 | #define ID3D12VideoEncodeCommandList4_GetDevice(This,riid,ppvDevice) \ | ||
| 10582 | ( (This)->lpVtbl -> GetDevice(This,riid,ppvDevice) ) | ||
| 10583 | |||
| 10584 | |||
| 10585 | #define ID3D12VideoEncodeCommandList4_GetType(This) \ | ||
| 10586 | ( (This)->lpVtbl -> GetType(This) ) | ||
| 10587 | |||
| 10588 | |||
| 10589 | #define ID3D12VideoEncodeCommandList4_Close(This) \ | ||
| 10590 | ( (This)->lpVtbl -> Close(This) ) | ||
| 10591 | |||
| 10592 | #define ID3D12VideoEncodeCommandList4_Reset(This,pAllocator) \ | ||
| 10593 | ( (This)->lpVtbl -> Reset(This,pAllocator) ) | ||
| 10594 | |||
| 10595 | #define ID3D12VideoEncodeCommandList4_ClearState(This) \ | ||
| 10596 | ( (This)->lpVtbl -> ClearState(This) ) | ||
| 10597 | |||
| 10598 | #define ID3D12VideoEncodeCommandList4_ResourceBarrier(This,NumBarriers,pBarriers) \ | ||
| 10599 | ( (This)->lpVtbl -> ResourceBarrier(This,NumBarriers,pBarriers) ) | ||
| 10600 | |||
| 10601 | #define ID3D12VideoEncodeCommandList4_DiscardResource(This,pResource,pRegion) \ | ||
| 10602 | ( (This)->lpVtbl -> DiscardResource(This,pResource,pRegion) ) | ||
| 10603 | |||
| 10604 | #define ID3D12VideoEncodeCommandList4_BeginQuery(This,pQueryHeap,Type,Index) \ | ||
| 10605 | ( (This)->lpVtbl -> BeginQuery(This,pQueryHeap,Type,Index) ) | ||
| 10606 | |||
| 10607 | #define ID3D12VideoEncodeCommandList4_EndQuery(This,pQueryHeap,Type,Index) \ | ||
| 10608 | ( (This)->lpVtbl -> EndQuery(This,pQueryHeap,Type,Index) ) | ||
| 10609 | |||
| 10610 | #define ID3D12VideoEncodeCommandList4_ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) \ | ||
| 10611 | ( (This)->lpVtbl -> ResolveQueryData(This,pQueryHeap,Type,StartIndex,NumQueries,pDestinationBuffer,AlignedDestinationBufferOffset) ) | ||
| 10612 | |||
| 10613 | #define ID3D12VideoEncodeCommandList4_SetPredication(This,pBuffer,AlignedBufferOffset,Operation) \ | ||
| 10614 | ( (This)->lpVtbl -> SetPredication(This,pBuffer,AlignedBufferOffset,Operation) ) | ||
| 10615 | |||
| 10616 | #define ID3D12VideoEncodeCommandList4_SetMarker(This,Metadata,pData,Size) \ | ||
| 10617 | ( (This)->lpVtbl -> SetMarker(This,Metadata,pData,Size) ) | ||
| 10618 | |||
| 10619 | #define ID3D12VideoEncodeCommandList4_BeginEvent(This,Metadata,pData,Size) \ | ||
| 10620 | ( (This)->lpVtbl -> BeginEvent(This,Metadata,pData,Size) ) | ||
| 10621 | |||
| 10622 | #define ID3D12VideoEncodeCommandList4_EndEvent(This) \ | ||
| 10623 | ( (This)->lpVtbl -> EndEvent(This) ) | ||
| 10624 | |||
| 10625 | #define ID3D12VideoEncodeCommandList4_EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) \ | ||
| 10626 | ( (This)->lpVtbl -> EstimateMotion(This,pMotionEstimator,pOutputArguments,pInputArguments) ) | ||
| 10627 | |||
| 10628 | #define ID3D12VideoEncodeCommandList4_ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) \ | ||
| 10629 | ( (This)->lpVtbl -> ResolveMotionVectorHeap(This,pOutputArguments,pInputArguments) ) | ||
| 10630 | |||
| 10631 | #define ID3D12VideoEncodeCommandList4_WriteBufferImmediate(This,Count,pParams,pModes) \ | ||
| 10632 | ( (This)->lpVtbl -> WriteBufferImmediate(This,Count,pParams,pModes) ) | ||
| 10633 | |||
| 10634 | #define ID3D12VideoEncodeCommandList4_SetProtectedResourceSession(This,pProtectedResourceSession) \ | ||
| 10635 | ( (This)->lpVtbl -> SetProtectedResourceSession(This,pProtectedResourceSession) ) | ||
| 10636 | |||
| 10637 | |||
| 10638 | #define ID3D12VideoEncodeCommandList4_InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) \ | ||
| 10639 | ( (This)->lpVtbl -> InitializeExtensionCommand(This,pExtensionCommand,pInitializationParameters,InitializationParametersSizeInBytes) ) | ||
| 10640 | |||
| 10641 | #define ID3D12VideoEncodeCommandList4_ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) \ | ||
| 10642 | ( (This)->lpVtbl -> ExecuteExtensionCommand(This,pExtensionCommand,pExecutionParameters,ExecutionParametersSizeInBytes) ) | ||
| 10643 | |||
| 10644 | |||
| 10645 | #define ID3D12VideoEncodeCommandList4_EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \ | ||
| 10646 | ( (This)->lpVtbl -> EncodeFrame(This,pEncoder,pHeap,pInputArguments,pOutputArguments) ) | ||
| 10647 | |||
| 10648 | #define ID3D12VideoEncodeCommandList4_ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) \ | ||
| 10649 | ( (This)->lpVtbl -> ResolveEncoderOutputMetadata(This,pInputArguments,pOutputArguments) ) | ||
| 10650 | |||
| 10651 | |||
| 10652 | #define ID3D12VideoEncodeCommandList4_Barrier(This,NumBarrierGroups,pBarrierGroups) \ | ||
| 10653 | ( (This)->lpVtbl -> Barrier(This,NumBarrierGroups,pBarrierGroups) ) | ||
| 10654 | |||
| 10655 | |||
| 10656 | #define ID3D12VideoEncodeCommandList4_EncodeFrame1(This,pEncoder,pHeap,pInputArguments,pOutputArguments) \ | ||
| 10657 | ( (This)->lpVtbl -> EncodeFrame1(This,pEncoder,pHeap,pInputArguments,pOutputArguments) ) | ||
| 10658 | |||
| 10659 | #define ID3D12VideoEncodeCommandList4_ResolveEncoderOutputMetadata1(This,pInputArguments,pOutputArguments) \ | ||
| 10660 | ( (This)->lpVtbl -> ResolveEncoderOutputMetadata1(This,pInputArguments,pOutputArguments) ) | ||
| 10661 | |||
| 10662 | #define ID3D12VideoEncodeCommandList4_ResolveInputParamLayout(This,pInputArguments,pOutputArguments) \ | ||
| 10663 | ( (This)->lpVtbl -> ResolveInputParamLayout(This,pInputArguments,pOutputArguments) ) | ||
| 10664 | |||
| 10665 | #endif /* COBJMACROS */ | ||
| 10666 | |||
| 10667 | |||
| 10668 | #endif /* C style interface */ | ||
| 10669 | |||
| 10670 | |||
| 10671 | |||
| 10672 | |||
| 10673 | #endif /* __ID3D12VideoEncodeCommandList4_INTERFACE_DEFINED__ */ | ||
| 10674 | |||
| 10675 | |||
| 10676 | /* interface __MIDL_itf_d3d12video_0000_0030 */ | ||
| 10677 | /* [local] */ | ||
| 10678 | |||
| 10679 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */ | ||
| 10680 | #pragma endregion | ||
| 10681 | DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F); | ||
| 10682 | DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4); | ||
| 10683 | DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70); | ||
| 10684 | DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38); | ||
| 10685 | DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53); | ||
| 10686 | DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09); | ||
| 10687 | DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72); | ||
| 10688 | DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67); | ||
| 10689 | DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8); | ||
| 10690 | DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05); | ||
| 10691 | DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB); | ||
| 10692 | DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23); | ||
| 10693 | DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E); | ||
| 10694 | DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26); | ||
| 10695 | DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C); | ||
| 10696 | DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4); | ||
| 10697 | DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13); | ||
| 10698 | DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29); | ||
| 10699 | DEFINE_GUID(IID_ID3D12VideoDecodeCommandList3,0x2aee8c37,0x9562,0x42da,0x8a,0xbf,0x61,0xef,0xeb,0x2e,0x45,0x13); | ||
| 10700 | DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4); | ||
| 10701 | DEFINE_GUID(IID_ID3D12VideoProcessCommandList3,0x1a0a4ca4,0x9f08,0x40ce,0x95,0x58,0xb4,0x11,0xfd,0x26,0x66,0xff); | ||
| 10702 | DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc); | ||
| 10703 | DEFINE_GUID(IID_ID3D12VideoEncoder,0x2E0D212D,0x8DF9,0x44A6,0xA7,0x70,0xBB,0x28,0x9B,0x18,0x27,0x37); | ||
| 10704 | DEFINE_GUID(IID_ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0x8C,0x9C,0x7F,0x1C,0x4A); | ||
| 10705 | DEFINE_GUID(IID_ID3D12VideoDevice3,0x4243ADB4,0x3A32,0x4666,0x97,0x3C,0x0C,0xCC,0x56,0x25,0xDC,0x44); | ||
| 10706 | DEFINE_GUID(IID_ID3D12VideoEncodeCommandList2,0x895491e2,0xe701,0x46a9,0x9a,0x1f,0x8d,0x34,0x80,0xed,0x86,0x7a); | ||
| 10707 | DEFINE_GUID(IID_ID3D12VideoEncodeCommandList3,0x7f027b22,0x1515,0x4e85,0xaa,0x0d,0x02,0x64,0x86,0x58,0x05,0x76); | ||
| 10708 | DEFINE_GUID(IID_ID3D12VideoEncoderHeap1,0xea8f1968,0x4aa0,0x43a4,0x9d,0x30,0xba,0x86,0xec,0x84,0xd4,0xf9); | ||
| 10709 | DEFINE_GUID(IID_ID3D12VideoDevice4,0xe59ad09e,0xf1ae,0x42bb,0x89,0x83,0x9f,0x6e,0x55,0x86,0xc4,0xeb); | ||
| 10710 | DEFINE_GUID(IID_ID3D12VideoEncodeCommandList4,0x69aeb5b7,0x55f2,0x4012,0x8b,0x73,0x3a,0x88,0xd6,0x5a,0x20,0x4c); | ||
| 10711 | |||
| 10712 | |||
| 10713 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0030_v0_0_c_ifspec; | ||
| 10714 | extern RPC_IF_HANDLE __MIDL_itf_d3d12video_0000_0030_v0_0_s_ifspec; | ||
| 10715 | |||
| 10716 | /* Additional Prototypes for ALL interfaces */ | ||
| 10717 | |||
| 10718 | /* end of Additional Prototypes */ | ||
| 10719 | |||
| 10720 | #ifdef __cplusplus | ||
| 10721 | } | ||
| 10722 | #endif | ||
| 10723 | |||
| 10724 | #endif | ||
| 10725 | |||
| 10726 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3d12video.idl b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12video.idl new file mode 100644 index 0000000..b2c930b --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3d12video.idl | |||
| @@ -0,0 +1,3818 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | import "oaidl.idl"; | ||
| 8 | import "ocidl.idl"; | ||
| 9 | |||
| 10 | import "dxgicommon.idl"; | ||
| 11 | import "d3d12.idl"; | ||
| 12 | |||
| 13 | cpp_quote("#include <winapifamily.h>") | ||
| 14 | |||
| 15 | #pragma region App Family | ||
| 16 | cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES)") | ||
| 17 | |||
| 18 | typedef enum D3D12_VIDEO_FIELD_TYPE | ||
| 19 | { | ||
| 20 | D3D12_VIDEO_FIELD_TYPE_NONE = 0, | ||
| 21 | D3D12_VIDEO_FIELD_TYPE_INTERLACED_TOP_FIELD_FIRST = 1, | ||
| 22 | D3D12_VIDEO_FIELD_TYPE_INTERLACED_BOTTOM_FIELD_FIRST = 2, | ||
| 23 | } D3D12_VIDEO_FIELD_TYPE; | ||
| 24 | |||
| 25 | typedef enum D3D12_VIDEO_FRAME_STEREO_FORMAT | ||
| 26 | { | ||
| 27 | D3D12_VIDEO_FRAME_STEREO_FORMAT_NONE = 0, | ||
| 28 | D3D12_VIDEO_FRAME_STEREO_FORMAT_MONO = 1, | ||
| 29 | D3D12_VIDEO_FRAME_STEREO_FORMAT_HORIZONTAL = 2, | ||
| 30 | D3D12_VIDEO_FRAME_STEREO_FORMAT_VERTICAL = 3, | ||
| 31 | D3D12_VIDEO_FRAME_STEREO_FORMAT_SEPARATE = 4, | ||
| 32 | } D3D12_VIDEO_FRAME_STEREO_FORMAT; | ||
| 33 | |||
| 34 | typedef struct D3D12_VIDEO_FORMAT | ||
| 35 | { | ||
| 36 | DXGI_FORMAT Format; | ||
| 37 | DXGI_COLOR_SPACE_TYPE ColorSpace; | ||
| 38 | } D3D12_VIDEO_FORMAT; | ||
| 39 | |||
| 40 | typedef struct D3D12_VIDEO_SAMPLE | ||
| 41 | { | ||
| 42 | UINT Width; | ||
| 43 | UINT Height; | ||
| 44 | D3D12_VIDEO_FORMAT Format; | ||
| 45 | } D3D12_VIDEO_SAMPLE; | ||
| 46 | |||
| 47 | typedef enum D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE | ||
| 48 | { | ||
| 49 | D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_NONE = 0, | ||
| 50 | D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE_FIELD_BASED = 1, | ||
| 51 | } D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE; | ||
| 52 | |||
| 53 | typedef enum D3D12_FEATURE_VIDEO | ||
| 54 | { | ||
| 55 | D3D12_FEATURE_VIDEO_DECODE_SUPPORT = 0, | ||
| 56 | D3D12_FEATURE_VIDEO_DECODE_PROFILES = 1, | ||
| 57 | D3D12_FEATURE_VIDEO_DECODE_FORMATS = 2, | ||
| 58 | D3D12_FEATURE_VIDEO_DECODE_CONVERSION_SUPPORT = 3, | ||
| 59 | D3D12_FEATURE_VIDEO_PROCESS_SUPPORT = 5, | ||
| 60 | D3D12_FEATURE_VIDEO_PROCESS_MAX_INPUT_STREAMS = 6, | ||
| 61 | D3D12_FEATURE_VIDEO_PROCESS_REFERENCE_INFO = 7, | ||
| 62 | D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE = 8, | ||
| 63 | D3D12_FEATURE_VIDEO_PROCESSOR_SIZE = 9, | ||
| 64 | D3D12_FEATURE_VIDEO_DECODE_PROFILE_COUNT = 10, | ||
| 65 | D3D12_FEATURE_VIDEO_DECODE_FORMAT_COUNT = 11, | ||
| 66 | D3D12_FEATURE_VIDEO_ARCHITECTURE = 17, | ||
| 67 | D3D12_FEATURE_VIDEO_DECODE_HISTOGRAM = 18, | ||
| 68 | D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT = 19, | ||
| 69 | D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR = 20, | ||
| 70 | D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE = 21, | ||
| 71 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_COUNT = 22, | ||
| 72 | D3D12_FEATURE_VIDEO_EXTENSION_COMMANDS = 23, | ||
| 73 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT = 24, | ||
| 74 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_PARAMETERS = 25, | ||
| 75 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SUPPORT = 26, | ||
| 76 | D3D12_FEATURE_VIDEO_EXTENSION_COMMAND_SIZE = 27, | ||
| 77 | D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES = 28, | ||
| 78 | D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES = 29, | ||
| 79 | D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES = 30, | ||
| 80 | D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 = 31, | ||
| 81 | D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 = 32, | ||
| 82 | D3D12_FEATURE_VIDEO_ENCODER_CODEC = 33, | ||
| 83 | D3D12_FEATURE_VIDEO_ENCODER_PROFILE_LEVEL = 34, | ||
| 84 | D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT = 35, | ||
| 85 | D3D12_FEATURE_VIDEO_ENCODER_OUTPUT_RESOLUTION = 36, | ||
| 86 | D3D12_FEATURE_VIDEO_ENCODER_INPUT_FORMAT = 37, | ||
| 87 | D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_MODE = 38, | ||
| 88 | D3D12_FEATURE_VIDEO_ENCODER_INTRA_REFRESH_MODE = 39, | ||
| 89 | D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE = 40, | ||
| 90 | D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE = 41, | ||
| 91 | D3D12_FEATURE_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT = 42, | ||
| 92 | D3D12_FEATURE_VIDEO_ENCODER_SUPPORT = 43, | ||
| 93 | D3D12_FEATURE_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT = 44, | ||
| 94 | D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS = 45, | ||
| 95 | D3D12_FEATURE_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG = 46, | ||
| 96 | D3D12_FEATURE_VIDEO_ENCODER_SUPPORT1 = 47, | ||
| 97 | D3D12_FEATURE_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 = 48, | ||
| 98 | D3D12_FEATURE_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT = 49, | ||
| 99 | D3D12_FEATURE_VIDEO_ENCODER_QPMAP_INPUT = 50, | ||
| 100 | D3D12_FEATURE_VIDEO_ENCODER_DIRTY_REGIONS = 51, | ||
| 101 | D3D12_FEATURE_VIDEO_ENCODER_MOTION_SEARCH = 52, | ||
| 102 | D3D12_FEATURE_VIDEO_ENCODER_SUPPORT2 = 55, | ||
| 103 | D3D12_FEATURE_VIDEO_ENCODER_HEAP_SIZE1 = 56, | ||
| 104 | D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS = 57, | ||
| 105 | |||
| 106 | } D3D12_FEATURE_VIDEO; | ||
| 107 | |||
| 108 | typedef enum D3D12_BITSTREAM_ENCRYPTION_TYPE | ||
| 109 | { | ||
| 110 | D3D12_BITSTREAM_ENCRYPTION_TYPE_NONE = 0, | ||
| 111 | } D3D12_BITSTREAM_ENCRYPTION_TYPE; | ||
| 112 | |||
| 113 | typedef struct D3D12_VIDEO_DECODE_CONFIGURATION | ||
| 114 | { | ||
| 115 | GUID DecodeProfile; | ||
| 116 | D3D12_BITSTREAM_ENCRYPTION_TYPE BitstreamEncryption; | ||
| 117 | D3D12_VIDEO_FRAME_CODED_INTERLACE_TYPE InterlaceType; | ||
| 118 | } D3D12_VIDEO_DECODE_CONFIGURATION; | ||
| 119 | |||
| 120 | typedef struct D3D12_VIDEO_DECODER_DESC | ||
| 121 | { | ||
| 122 | UINT NodeMask; | ||
| 123 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
| 124 | } D3D12_VIDEO_DECODER_DESC; | ||
| 125 | |||
| 126 | typedef struct D3D12_VIDEO_DECODER_HEAP_DESC | ||
| 127 | { | ||
| 128 | UINT NodeMask; | ||
| 129 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; | ||
| 130 | UINT DecodeWidth; | ||
| 131 | UINT DecodeHeight; | ||
| 132 | DXGI_FORMAT Format; | ||
| 133 | DXGI_RATIONAL FrameRate; | ||
| 134 | UINT BitRate; | ||
| 135 | UINT MaxDecodePictureBufferCount; | ||
| 136 | } D3D12_VIDEO_DECODER_HEAP_DESC; | ||
| 137 | |||
| 138 | typedef struct D3D12_VIDEO_SIZE_RANGE | ||
| 139 | { | ||
| 140 | UINT MaxWidth; | ||
| 141 | UINT MaxHeight; | ||
| 142 | UINT MinWidth; | ||
| 143 | UINT MinHeight; | ||
| 144 | } D3D12_VIDEO_SIZE_RANGE; | ||
| 145 | |||
| 146 | typedef enum D3D12_VIDEO_PROCESS_FILTER | ||
| 147 | { | ||
| 148 | D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS = 0, | ||
| 149 | D3D12_VIDEO_PROCESS_FILTER_CONTRAST = 1, | ||
| 150 | D3D12_VIDEO_PROCESS_FILTER_HUE = 2, | ||
| 151 | D3D12_VIDEO_PROCESS_FILTER_SATURATION = 3, | ||
| 152 | D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION = 4, | ||
| 153 | D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT = 5, | ||
| 154 | D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING = 6, | ||
| 155 | D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT = 7, | ||
| 156 | } D3D12_VIDEO_PROCESS_FILTER; | ||
| 157 | |||
| 158 | typedef enum D3D12_VIDEO_PROCESS_FILTER_FLAGS | ||
| 159 | { | ||
| 160 | D3D12_VIDEO_PROCESS_FILTER_FLAG_NONE = 0x0, | ||
| 161 | D3D12_VIDEO_PROCESS_FILTER_FLAG_BRIGHTNESS = (1 << D3D12_VIDEO_PROCESS_FILTER_BRIGHTNESS), | ||
| 162 | D3D12_VIDEO_PROCESS_FILTER_FLAG_CONTRAST = (1 << D3D12_VIDEO_PROCESS_FILTER_CONTRAST), | ||
| 163 | D3D12_VIDEO_PROCESS_FILTER_FLAG_HUE = (1 << D3D12_VIDEO_PROCESS_FILTER_HUE), | ||
| 164 | D3D12_VIDEO_PROCESS_FILTER_FLAG_SATURATION = (1 << D3D12_VIDEO_PROCESS_FILTER_SATURATION), | ||
| 165 | D3D12_VIDEO_PROCESS_FILTER_FLAG_NOISE_REDUCTION = (1 << D3D12_VIDEO_PROCESS_FILTER_NOISE_REDUCTION), | ||
| 166 | D3D12_VIDEO_PROCESS_FILTER_FLAG_EDGE_ENHANCEMENT = (1 << D3D12_VIDEO_PROCESS_FILTER_EDGE_ENHANCEMENT), | ||
| 167 | D3D12_VIDEO_PROCESS_FILTER_FLAG_ANAMORPHIC_SCALING = (1 << D3D12_VIDEO_PROCESS_FILTER_ANAMORPHIC_SCALING), | ||
| 168 | D3D12_VIDEO_PROCESS_FILTER_FLAG_STEREO_ADJUSTMENT = (1 << D3D12_VIDEO_PROCESS_FILTER_STEREO_ADJUSTMENT), | ||
| 169 | |||
| 170 | } D3D12_VIDEO_PROCESS_FILTER_FLAGS; | ||
| 171 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FILTER_FLAGS )") | ||
| 172 | |||
| 173 | typedef enum D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS | ||
| 174 | { | ||
| 175 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_NONE = 0x0, | ||
| 176 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_BOB = 0x1, | ||
| 177 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAG_CUSTOM = 0x80000000, | ||
| 178 | |||
| 179 | } D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS; | ||
| 180 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS )") | ||
| 181 | |||
| 182 | typedef struct D3D12_VIDEO_PROCESS_ALPHA_BLENDING | ||
| 183 | { | ||
| 184 | BOOL Enable; | ||
| 185 | FLOAT Alpha; | ||
| 186 | } D3D12_VIDEO_PROCESS_ALPHA_BLENDING; | ||
| 187 | |||
| 188 | typedef struct D3D12_VIDEO_PROCESS_LUMA_KEY | ||
| 189 | { | ||
| 190 | BOOL Enable; | ||
| 191 | FLOAT Lower; | ||
| 192 | FLOAT Upper; | ||
| 193 | } D3D12_VIDEO_PROCESS_LUMA_KEY; | ||
| 194 | |||
| 195 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC | ||
| 196 | { | ||
| 197 | DXGI_FORMAT Format; | ||
| 198 | DXGI_COLOR_SPACE_TYPE ColorSpace; | ||
| 199 | DXGI_RATIONAL SourceAspectRatio; | ||
| 200 | DXGI_RATIONAL DestinationAspectRatio; | ||
| 201 | DXGI_RATIONAL FrameRate; | ||
| 202 | D3D12_VIDEO_SIZE_RANGE SourceSizeRange; | ||
| 203 | D3D12_VIDEO_SIZE_RANGE DestinationSizeRange; | ||
| 204 | BOOL EnableOrientation; | ||
| 205 | D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterFlags; | ||
| 206 | D3D12_VIDEO_FRAME_STEREO_FORMAT StereoFormat; | ||
| 207 | D3D12_VIDEO_FIELD_TYPE FieldType; | ||
| 208 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; | ||
| 209 | BOOL EnableAlphaBlending; | ||
| 210 | D3D12_VIDEO_PROCESS_LUMA_KEY LumaKey; | ||
| 211 | UINT NumPastFrames; | ||
| 212 | UINT NumFutureFrames; | ||
| 213 | BOOL EnableAutoProcessing; | ||
| 214 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC; | ||
| 215 | |||
| 216 | typedef enum D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE | ||
| 217 | { | ||
| 218 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_OPAQUE = 0, | ||
| 219 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_BACKGROUND = 1, | ||
| 220 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_DESTINATION = 2, | ||
| 221 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE_SOURCE_STREAM = 3, | ||
| 222 | } D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE; | ||
| 223 | |||
| 224 | typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC | ||
| 225 | { | ||
| 226 | DXGI_FORMAT Format; | ||
| 227 | DXGI_COLOR_SPACE_TYPE ColorSpace; | ||
| 228 | D3D12_VIDEO_PROCESS_ALPHA_FILL_MODE AlphaFillMode; | ||
| 229 | UINT AlphaFillModeSourceStreamIndex; | ||
| 230 | FLOAT BackgroundColor[4]; | ||
| 231 | DXGI_RATIONAL FrameRate; | ||
| 232 | BOOL EnableStereo; | ||
| 233 | } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC; | ||
| 234 | |||
| 235 | [uuid(0946B7C9-EBF6-4047-BB73-8683E27DBB1F), object, local, pointer_default(unique)] | ||
| 236 | interface ID3D12VideoDecoderHeap | ||
| 237 | : ID3D12Pageable | ||
| 238 | { | ||
| 239 | D3D12_VIDEO_DECODER_HEAP_DESC GetDesc(); | ||
| 240 | } | ||
| 241 | |||
| 242 | [uuid(1F052807-0B46-4ACC-8A89-364F793718A4), object, local, pointer_default(unique)] | ||
| 243 | interface ID3D12VideoDevice | ||
| 244 | : IUnknown | ||
| 245 | { | ||
| 246 | HRESULT CheckFeatureSupport( | ||
| 247 | D3D12_FEATURE_VIDEO FeatureVideo, | ||
| 248 | [annotation("_Inout_updates_bytes_(FeatureSupportDataSize)")] void* pFeatureSupportData, | ||
| 249 | UINT FeatureSupportDataSize | ||
| 250 | ); | ||
| 251 | |||
| 252 | HRESULT CreateVideoDecoder( | ||
| 253 | [annotation("_In_")] const D3D12_VIDEO_DECODER_DESC* pDesc, | ||
| 254 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoder, | ||
| 255 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoder | ||
| 256 | ); | ||
| 257 | |||
| 258 | HRESULT CreateVideoDecoderHeap( | ||
| 259 | [annotation("_In_")]const D3D12_VIDEO_DECODER_HEAP_DESC* pVideoDecoderHeapDesc, | ||
| 260 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoderHeap, | ||
| 261 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoderHeap | ||
| 262 | ); | ||
| 263 | |||
| 264 | HRESULT CreateVideoProcessor( | ||
| 265 | UINT NodeMask, | ||
| 266 | [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc, | ||
| 267 | UINT NumInputStreamDescs, | ||
| 268 | [annotation("_In_reads_(NumInputStreamDescs)")]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 269 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoProcessor, | ||
| 270 | [out, iid_is(riid), annotation("_COM_Outptr_")] void **ppVideoProcessor | ||
| 271 | ); | ||
| 272 | } | ||
| 273 | |||
| 274 | [uuid(C59B6BDC-7720-4074-A136-17A156037470), object, local, pointer_default(unique)] | ||
| 275 | interface ID3D12VideoDecoder | ||
| 276 | : ID3D12Pageable | ||
| 277 | { | ||
| 278 | D3D12_VIDEO_DECODER_DESC GetDesc(); | ||
| 279 | } | ||
| 280 | |||
| 281 | typedef enum D3D12_VIDEO_DECODE_TIER | ||
| 282 | { | ||
| 283 | D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED = 0, | ||
| 284 | D3D12_VIDEO_DECODE_TIER_1 = 1, | ||
| 285 | D3D12_VIDEO_DECODE_TIER_2 = 2, | ||
| 286 | D3D12_VIDEO_DECODE_TIER_3 = 3, | ||
| 287 | } D3D12_VIDEO_DECODE_TIER; | ||
| 288 | |||
| 289 | typedef enum D3D12_VIDEO_DECODE_SUPPORT_FLAGS | ||
| 290 | { | ||
| 291 | D3D12_VIDEO_DECODE_SUPPORT_FLAG_NONE = 0x0, | ||
| 292 | D3D12_VIDEO_DECODE_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
| 293 | |||
| 294 | } D3D12_VIDEO_DECODE_SUPPORT_FLAGS; | ||
| 295 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_SUPPORT_FLAGS )") | ||
| 296 | |||
| 297 | typedef enum D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS | ||
| 298 | { | ||
| 299 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_NONE = 0x0, | ||
| 300 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_HEIGHT_ALIGNMENT_MULTIPLE_32_REQUIRED = 0x1, | ||
| 301 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_POST_PROCESSING_SUPPORTED = 0x2, | ||
| 302 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED = 0x4, | ||
| 303 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_ALLOW_RESOLUTION_CHANGE_ON_NON_KEY_FRAME = 0x8, | ||
| 304 | |||
| 305 | } D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS; | ||
| 306 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS )") | ||
| 307 | |||
| 308 | typedef enum D3D12_VIDEO_DECODE_STATUS | ||
| 309 | { | ||
| 310 | D3D12_VIDEO_DECODE_STATUS_OK = 0, | ||
| 311 | D3D12_VIDEO_DECODE_STATUS_CONTINUE = 1, | ||
| 312 | D3D12_VIDEO_DECODE_STATUS_CONTINUE_SKIP_DISPLAY = 2, | ||
| 313 | D3D12_VIDEO_DECODE_STATUS_RESTART = 3, | ||
| 314 | D3D12_VIDEO_DECODE_STATUS_RATE_EXCEEDED = 4, | ||
| 315 | } D3D12_VIDEO_DECODE_STATUS; | ||
| 316 | |||
| 317 | typedef enum D3D12_VIDEO_DECODE_ARGUMENT_TYPE | ||
| 318 | { | ||
| 319 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_PICTURE_PARAMETERS = 0, | ||
| 320 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_INVERSE_QUANTIZATION_MATRIX = 1, | ||
| 321 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_SLICE_CONTROL = 2, | ||
| 322 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE_HUFFMAN_TABLE = 3, | ||
| 323 | } D3D12_VIDEO_DECODE_ARGUMENT_TYPE; | ||
| 324 | |||
| 325 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT | ||
| 326 | { | ||
| 327 | UINT NodeIndex; // input | ||
| 328 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
| 329 | UINT Width; // input | ||
| 330 | UINT Height; // input | ||
| 331 | DXGI_FORMAT DecodeFormat; // input | ||
| 332 | DXGI_RATIONAL FrameRate; // input | ||
| 333 | UINT BitRate; // input | ||
| 334 | D3D12_VIDEO_DECODE_SUPPORT_FLAGS SupportFlags; // output | ||
| 335 | D3D12_VIDEO_DECODE_CONFIGURATION_FLAGS ConfigurationFlags; // output | ||
| 336 | D3D12_VIDEO_DECODE_TIER DecodeTier; // output | ||
| 337 | } D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT; | ||
| 338 | |||
| 339 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT | ||
| 340 | { | ||
| 341 | UINT NodeIndex; // input | ||
| 342 | UINT ProfileCount; // output | ||
| 343 | } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILE_COUNT; | ||
| 344 | |||
| 345 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES | ||
| 346 | { | ||
| 347 | UINT NodeIndex; // input | ||
| 348 | UINT ProfileCount; // input | ||
| 349 | [annotation("_Field_size_full_(ProfileCount)")] GUID *pProfiles; // output. The list of supported profiles. The caller allocates storage for the profile list before calling CheckFeatureSupport. | ||
| 350 | } D3D12_FEATURE_DATA_VIDEO_DECODE_PROFILES; | ||
| 351 | |||
| 352 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT | ||
| 353 | { | ||
| 354 | UINT NodeIndex; // input | ||
| 355 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
| 356 | UINT FormatCount; // output | ||
| 357 | } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMAT_COUNT; | ||
| 358 | |||
| 359 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS | ||
| 360 | { | ||
| 361 | UINT NodeIndex; // input | ||
| 362 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
| 363 | UINT FormatCount; // input | ||
| 364 | [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. | ||
| 365 | } D3D12_FEATURE_DATA_VIDEO_DECODE_FORMATS; | ||
| 366 | |||
| 367 | typedef struct D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE | ||
| 368 | { | ||
| 369 | BOOL IOCoherent; | ||
| 370 | } D3D12_FEATURE_DATA_VIDEO_ARCHITECTURE; | ||
| 371 | |||
| 372 | typedef enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT | ||
| 373 | { | ||
| 374 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y = 0, | ||
| 375 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U = 1, | ||
| 376 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V = 2, | ||
| 377 | |||
| 378 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R = 0, | ||
| 379 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G = 1, | ||
| 380 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B = 2, | ||
| 381 | |||
| 382 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A = 3, | ||
| 383 | } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT; | ||
| 384 | |||
| 385 | typedef enum D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS | ||
| 386 | { | ||
| 387 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_NONE = 0x0, | ||
| 388 | |||
| 389 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_Y = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_Y), | ||
| 390 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_U = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_U), | ||
| 391 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_V = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_V), | ||
| 392 | |||
| 393 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_R = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_R), | ||
| 394 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_G = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_G), | ||
| 395 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_B = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_B), | ||
| 396 | |||
| 397 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAG_A = (1 << D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_A), | ||
| 398 | } D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS; | ||
| 399 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS )") | ||
| 400 | |||
| 401 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM | ||
| 402 | { | ||
| 403 | UINT NodeIndex; // in | ||
| 404 | GUID DecodeProfile; // in | ||
| 405 | UINT Width; // in | ||
| 406 | UINT Height; // in | ||
| 407 | DXGI_FORMAT DecodeFormat; // in | ||
| 408 | D3D12_VIDEO_DECODE_HISTOGRAM_COMPONENT_FLAGS Components; // out | ||
| 409 | UINT BinCount; // out | ||
| 410 | UINT CounterBitDepth; // out | ||
| 411 | } D3D12_FEATURE_DATA_VIDEO_DECODE_HISTOGRAM; | ||
| 412 | |||
| 413 | typedef enum D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS | ||
| 414 | { | ||
| 415 | D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_NONE = 0x0, | ||
| 416 | D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
| 417 | |||
| 418 | } D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS; | ||
| 419 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS )") | ||
| 420 | |||
| 421 | typedef enum D3D12_VIDEO_SCALE_SUPPORT_FLAGS | ||
| 422 | { | ||
| 423 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_NONE = 0x0, | ||
| 424 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_POW2_ONLY = 0x1, | ||
| 425 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_EVEN_DIMENSIONS_ONLY = 0x2, | ||
| 426 | D3D12_VIDEO_SCALE_SUPPORT_FLAG_DPB_ENCODER_RESOURCES = 0x4, | ||
| 427 | |||
| 428 | } D3D12_VIDEO_SCALE_SUPPORT_FLAGS; | ||
| 429 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_SCALE_SUPPORT_FLAGS )") | ||
| 430 | |||
| 431 | typedef struct D3D12_VIDEO_SCALE_SUPPORT | ||
| 432 | { | ||
| 433 | D3D12_VIDEO_SIZE_RANGE OutputSizeRange; | ||
| 434 | D3D12_VIDEO_SCALE_SUPPORT_FLAGS Flags; | ||
| 435 | } D3D12_VIDEO_SCALE_SUPPORT; | ||
| 436 | |||
| 437 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT | ||
| 438 | { | ||
| 439 | UINT NodeIndex; // input | ||
| 440 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
| 441 | D3D12_VIDEO_SAMPLE DecodeSample; // input | ||
| 442 | D3D12_VIDEO_FORMAT OutputFormat; // input | ||
| 443 | DXGI_RATIONAL FrameRate; // input | ||
| 444 | UINT BitRate; // input | ||
| 445 | D3D12_VIDEO_DECODE_CONVERSION_SUPPORT_FLAGS SupportFlags; // output | ||
| 446 | D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; // output | ||
| 447 | } D3D12_FEATURE_DATA_VIDEO_DECODE_CONVERSION_SUPPORT; | ||
| 448 | |||
| 449 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE | ||
| 450 | { | ||
| 451 | D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; // input | ||
| 452 | UINT64 MemoryPoolL0Size; // output | ||
| 453 | UINT64 MemoryPoolL1Size; // output | ||
| 454 | } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE; | ||
| 455 | |||
| 456 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE | ||
| 457 | { | ||
| 458 | UINT NodeMask; | ||
| 459 | const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc; // input | ||
| 460 | UINT NumInputStreamDescs; // input | ||
| 461 | const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; // input | ||
| 462 | UINT64 MemoryPoolL0Size; // output | ||
| 463 | UINT64 MemoryPoolL1Size; // output | ||
| 464 | } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE; | ||
| 465 | |||
| 466 | typedef struct D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS | ||
| 467 | { | ||
| 468 | UINT64 Status; // see D3D12_VIDEO_DECODE_STATUS | ||
| 469 | UINT64 NumMacroblocksAffected; | ||
| 470 | DXGI_RATIONAL FrameRate; | ||
| 471 | UINT BitRate; | ||
| 472 | } D3D12_QUERY_DATA_VIDEO_DECODE_STATISTICS; | ||
| 473 | |||
| 474 | typedef struct D3D12_VIDEO_DECODE_FRAME_ARGUMENT | ||
| 475 | { | ||
| 476 | D3D12_VIDEO_DECODE_ARGUMENT_TYPE Type; | ||
| 477 | UINT Size; | ||
| 478 | [annotation("_Field_size_bytes_full_(Size)")] void *pData; | ||
| 479 | } D3D12_VIDEO_DECODE_FRAME_ARGUMENT; | ||
| 480 | |||
| 481 | typedef struct D3D12_VIDEO_DECODE_REFERENCE_FRAMES | ||
| 482 | { | ||
| 483 | UINT NumTexture2Ds; | ||
| 484 | [annotation("_Field_size_full_(NumTexture2Ds)")] ID3D12Resource** ppTexture2Ds; | ||
| 485 | [annotation("_Field_size_full_(NumTexture2Ds)")] UINT* pSubresources; | ||
| 486 | [annotation("_Field_size_full_opt_(NumTexture2Ds)")] ID3D12VideoDecoderHeap** ppHeaps; // If null, assume single decoder heap from input args. | ||
| 487 | } D3D12_VIDEO_DECODE_REFERENCE_FRAMES; | ||
| 488 | |||
| 489 | typedef struct D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM | ||
| 490 | { | ||
| 491 | ID3D12Resource* pBuffer; | ||
| 492 | UINT64 Offset; | ||
| 493 | UINT64 Size; | ||
| 494 | } D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM; | ||
| 495 | |||
| 496 | typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS | ||
| 497 | { | ||
| 498 | BOOL Enable; | ||
| 499 | ID3D12Resource* pReferenceTexture2D; | ||
| 500 | UINT ReferenceSubresource; | ||
| 501 | DXGI_COLOR_SPACE_TYPE OutputColorSpace; | ||
| 502 | DXGI_COLOR_SPACE_TYPE DecodeColorSpace; | ||
| 503 | } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS; | ||
| 504 | |||
| 505 | typedef struct D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS | ||
| 506 | { | ||
| 507 | UINT NumFrameArguments; | ||
| 508 | D3D12_VIDEO_DECODE_FRAME_ARGUMENT FrameArguments[D3D12_VIDEO_DECODE_MAX_ARGUMENTS]; | ||
| 509 | D3D12_VIDEO_DECODE_REFERENCE_FRAMES ReferenceFrames; | ||
| 510 | D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM CompressedBitstream; | ||
| 511 | ID3D12VideoDecoderHeap *pHeap; | ||
| 512 | } D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS; | ||
| 513 | |||
| 514 | typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS | ||
| 515 | { | ||
| 516 | ID3D12Resource* pOutputTexture2D; | ||
| 517 | UINT OutputSubresource; | ||
| 518 | D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS ConversionArguments; | ||
| 519 | } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS; | ||
| 520 | |||
| 521 | [uuid(304FDB32-BEDE-410A-8545-943AC6A46138), object, local, pointer_default(unique)] | ||
| 522 | interface ID3D12VideoProcessor | ||
| 523 | : ID3D12Pageable | ||
| 524 | { | ||
| 525 | UINT GetNodeMask(); | ||
| 526 | UINT GetNumInputStreamDescs(); | ||
| 527 | HRESULT GetInputStreamDescs(UINT NumInputStreamDescs, [annotation("_Out_writes_(NumInputStreamDescs)")] D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs); | ||
| 528 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC GetOutputStreamDesc(); | ||
| 529 | } | ||
| 530 | |||
| 531 | typedef enum D3D12_VIDEO_PROCESS_FEATURE_FLAGS | ||
| 532 | { | ||
| 533 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_NONE = 0x0, | ||
| 534 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_FILL = 0x1, | ||
| 535 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_LUMA_KEY = 0x2, | ||
| 536 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_STEREO = 0x4, | ||
| 537 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_ROTATION = 0x8, | ||
| 538 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_FLIP = 0x10, | ||
| 539 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_ALPHA_BLENDING = 0x20, | ||
| 540 | D3D12_VIDEO_PROCESS_FEATURE_FLAG_PIXEL_ASPECT_RATIO = 0x40, | ||
| 541 | |||
| 542 | } D3D12_VIDEO_PROCESS_FEATURE_FLAGS; | ||
| 543 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_FEATURE_FLAGS )") | ||
| 544 | |||
| 545 | typedef enum D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS | ||
| 546 | { | ||
| 547 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_NONE = 0x0, | ||
| 548 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DENOISE = 0x01, | ||
| 549 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_DERINGING = 0x02, | ||
| 550 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_EDGE_ENHANCEMENT = 0x04, | ||
| 551 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_COLOR_CORRECTION = 0x08, | ||
| 552 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_FLESH_TONE_MAPPING = 0x10, | ||
| 553 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_IMAGE_STABILIZATION = 0x20, | ||
| 554 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_SUPER_RESOLUTION = 0x40, | ||
| 555 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_ANAMORPHIC_SCALING = 0x80, | ||
| 556 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAG_CUSTOM = 0x80000000, | ||
| 557 | |||
| 558 | } D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS; | ||
| 559 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS )") | ||
| 560 | |||
| 561 | typedef enum D3D12_VIDEO_PROCESS_ORIENTATION | ||
| 562 | { | ||
| 563 | D3D12_VIDEO_PROCESS_ORIENTATION_DEFAULT = 0, | ||
| 564 | D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_HORIZONTAL = 1, | ||
| 565 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90 = 2, | ||
| 566 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_90_FLIP_HORIZONTAL = 3, | ||
| 567 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_180 = 4, | ||
| 568 | D3D12_VIDEO_PROCESS_ORIENTATION_FLIP_VERTICAL = 5, | ||
| 569 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270 = 6, | ||
| 570 | D3D12_VIDEO_PROCESS_ORIENTATION_CLOCKWISE_270_FLIP_HORIZONTAL = 7, | ||
| 571 | } D3D12_VIDEO_PROCESS_ORIENTATION; | ||
| 572 | |||
| 573 | typedef enum D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS | ||
| 574 | { | ||
| 575 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_NONE = 0x0, | ||
| 576 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_DISCONTINUITY = 0x1, | ||
| 577 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAG_FRAME_REPEAT = 0x2, | ||
| 578 | |||
| 579 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS; | ||
| 580 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS )") | ||
| 581 | |||
| 582 | typedef struct D3D12_VIDEO_PROCESS_FILTER_RANGE | ||
| 583 | { | ||
| 584 | INT Minimum; | ||
| 585 | INT Maximum; | ||
| 586 | INT Default; | ||
| 587 | FLOAT Multiplier; | ||
| 588 | } D3D12_VIDEO_PROCESS_FILTER_RANGE; | ||
| 589 | |||
| 590 | typedef enum D3D12_VIDEO_PROCESS_SUPPORT_FLAGS | ||
| 591 | { | ||
| 592 | D3D12_VIDEO_PROCESS_SUPPORT_FLAG_NONE = 0x0, | ||
| 593 | D3D12_VIDEO_PROCESS_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
| 594 | |||
| 595 | } D3D12_VIDEO_PROCESS_SUPPORT_FLAGS; | ||
| 596 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROCESS_SUPPORT_FLAGS )") | ||
| 597 | |||
| 598 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT | ||
| 599 | { | ||
| 600 | UINT NodeIndex; // input | ||
| 601 | D3D12_VIDEO_SAMPLE InputSample; // input | ||
| 602 | D3D12_VIDEO_FIELD_TYPE InputFieldType; // input | ||
| 603 | D3D12_VIDEO_FRAME_STEREO_FORMAT InputStereoFormat; // input | ||
| 604 | DXGI_RATIONAL InputFrameRate; // input | ||
| 605 | D3D12_VIDEO_FORMAT OutputFormat; // input | ||
| 606 | D3D12_VIDEO_FRAME_STEREO_FORMAT OutputStereoFormat; // input | ||
| 607 | DXGI_RATIONAL OutputFrameRate; // input | ||
| 608 | D3D12_VIDEO_PROCESS_SUPPORT_FLAGS SupportFlags; // output | ||
| 609 | D3D12_VIDEO_SCALE_SUPPORT ScaleSupport; // output | ||
| 610 | D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; // output | ||
| 611 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceSupport; // output | ||
| 612 | D3D12_VIDEO_PROCESS_AUTO_PROCESSING_FLAGS AutoProcessingSupport; // output | ||
| 613 | D3D12_VIDEO_PROCESS_FILTER_FLAGS FilterSupport; // output | ||
| 614 | D3D12_VIDEO_PROCESS_FILTER_RANGE FilterRangeSupport[D3D12_VIDEO_PROCESS_MAX_FILTERS]; // output | ||
| 615 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_SUPPORT; | ||
| 616 | |||
| 617 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS | ||
| 618 | { | ||
| 619 | UINT NodeIndex; // input | ||
| 620 | UINT MaxInputStreams; // output | ||
| 621 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_MAX_INPUT_STREAMS; | ||
| 622 | |||
| 623 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO | ||
| 624 | { | ||
| 625 | UINT NodeIndex; // input | ||
| 626 | D3D12_VIDEO_PROCESS_DEINTERLACE_FLAGS DeinterlaceMode; // input | ||
| 627 | D3D12_VIDEO_PROCESS_FILTER_FLAGS Filters; // input | ||
| 628 | D3D12_VIDEO_PROCESS_FEATURE_FLAGS FeatureSupport; // input | ||
| 629 | DXGI_RATIONAL InputFrameRate; // input | ||
| 630 | DXGI_RATIONAL OutputFrameRate; // input | ||
| 631 | BOOL EnableAutoProcessing; // input | ||
| 632 | UINT PastFrames; // output | ||
| 633 | UINT FutureFrames; // output | ||
| 634 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_REFERENCE_INFO; | ||
| 635 | |||
| 636 | typedef struct D3D12_VIDEO_PROCESS_REFERENCE_SET | ||
| 637 | { | ||
| 638 | UINT NumPastFrames; | ||
| 639 | ID3D12Resource **ppPastFrames; | ||
| 640 | UINT *pPastSubresources; | ||
| 641 | UINT NumFutureFrames; | ||
| 642 | ID3D12Resource **ppFutureFrames; | ||
| 643 | UINT *pFutureSubresources; | ||
| 644 | } D3D12_VIDEO_PROCESS_REFERENCE_SET; | ||
| 645 | |||
| 646 | typedef struct D3D12_VIDEO_PROCESS_TRANSFORM | ||
| 647 | { | ||
| 648 | D3D12_RECT SourceRectangle; | ||
| 649 | D3D12_RECT DestinationRectangle; | ||
| 650 | D3D12_VIDEO_PROCESS_ORIENTATION Orientation; | ||
| 651 | } D3D12_VIDEO_PROCESS_TRANSFORM; | ||
| 652 | |||
| 653 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE | ||
| 654 | { | ||
| 655 | UINT OutputIndex; | ||
| 656 | UINT InputFrameOrField; | ||
| 657 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE; | ||
| 658 | |||
| 659 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM | ||
| 660 | { | ||
| 661 | ID3D12Resource *pTexture2D; | ||
| 662 | UINT Subresource; | ||
| 663 | D3D12_VIDEO_PROCESS_REFERENCE_SET ReferenceSet; | ||
| 664 | } D3D12_VIDEO_PROCESS_INPUT_STREAM; | ||
| 665 | |||
| 666 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS | ||
| 667 | { | ||
| 668 | D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS]; | ||
| 669 | D3D12_VIDEO_PROCESS_TRANSFORM Transform; | ||
| 670 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; | ||
| 671 | D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; | ||
| 672 | INT FilterLevels[D3D12_VIDEO_PROCESS_MAX_FILTERS]; | ||
| 673 | D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; | ||
| 674 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS; | ||
| 675 | |||
| 676 | typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM | ||
| 677 | { | ||
| 678 | ID3D12Resource* pTexture2D; | ||
| 679 | UINT Subresource; | ||
| 680 | } D3D12_VIDEO_PROCESS_OUTPUT_STREAM; | ||
| 681 | |||
| 682 | typedef struct D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS | ||
| 683 | { | ||
| 684 | D3D12_VIDEO_PROCESS_OUTPUT_STREAM OutputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS]; | ||
| 685 | D3D12_RECT TargetRectangle; | ||
| 686 | } D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS; | ||
| 687 | |||
| 688 | [uuid(3B60536E-AD29-4E64-A269-F853837E5E53), object, local, pointer_default(unique)] | ||
| 689 | interface ID3D12VideoDecodeCommandList | ||
| 690 | : ID3D12CommandList | ||
| 691 | { | ||
| 692 | HRESULT Close(); | ||
| 693 | |||
| 694 | HRESULT Reset( | ||
| 695 | [annotation("_In_")] ID3D12CommandAllocator* pAllocator | ||
| 696 | ); | ||
| 697 | |||
| 698 | void ClearState(); | ||
| 699 | |||
| 700 | void ResourceBarrier( | ||
| 701 | [annotation("_In_")] UINT NumBarriers, | ||
| 702 | [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers | ||
| 703 | ); | ||
| 704 | |||
| 705 | void DiscardResource( | ||
| 706 | [annotation("_In_")] ID3D12Resource* pResource, | ||
| 707 | [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion | ||
| 708 | ); | ||
| 709 | |||
| 710 | void BeginQuery( | ||
| 711 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 712 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 713 | [annotation("_In_")] UINT Index | ||
| 714 | ); | ||
| 715 | |||
| 716 | void EndQuery( | ||
| 717 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 718 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 719 | [annotation("_In_")] UINT Index | ||
| 720 | ); | ||
| 721 | |||
| 722 | void ResolveQueryData( | ||
| 723 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 724 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 725 | [annotation("_In_")] UINT StartIndex, | ||
| 726 | [annotation("_In_")] UINT NumQueries, | ||
| 727 | [annotation("_In_")] ID3D12Resource* pDestinationBuffer, | ||
| 728 | [annotation("_In_")] UINT64 AlignedDestinationBufferOffset | ||
| 729 | ); | ||
| 730 | |||
| 731 | void SetPredication( | ||
| 732 | [annotation("_In_opt_")] ID3D12Resource* pBuffer, | ||
| 733 | [annotation("_In_")] UINT64 AlignedBufferOffset, | ||
| 734 | [annotation("_In_")] D3D12_PREDICATION_OP Operation | ||
| 735 | ); | ||
| 736 | |||
| 737 | void SetMarker( | ||
| 738 | UINT Metadata, | ||
| 739 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
| 740 | UINT Size); | ||
| 741 | |||
| 742 | void BeginEvent( | ||
| 743 | UINT Metadata, | ||
| 744 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
| 745 | UINT Size); | ||
| 746 | |||
| 747 | void EndEvent(); | ||
| 748 | |||
| 749 | void DecodeFrame( | ||
| 750 | [annotation("_In_")] ID3D12VideoDecoder* pDecoder, | ||
| 751 | [annotation("_In_")] const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 752 | [annotation("_In_")] const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments | ||
| 753 | ); | ||
| 754 | |||
| 755 | void WriteBufferImmediate( | ||
| 756 | UINT Count, | ||
| 757 | [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 758 | [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes | ||
| 759 | ); | ||
| 760 | } | ||
| 761 | |||
| 762 | [uuid(AEB2543A-167F-4682-ACC8-D159ED4A6209), object, local, pointer_default(unique)] | ||
| 763 | interface ID3D12VideoProcessCommandList | ||
| 764 | : ID3D12CommandList | ||
| 765 | { | ||
| 766 | HRESULT Close(); | ||
| 767 | |||
| 768 | HRESULT Reset( | ||
| 769 | [annotation("_In_")] ID3D12CommandAllocator* pAllocator | ||
| 770 | ); | ||
| 771 | |||
| 772 | void ClearState(); | ||
| 773 | |||
| 774 | void ResourceBarrier( | ||
| 775 | [annotation("_In_")] UINT NumBarriers, | ||
| 776 | [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers | ||
| 777 | ); | ||
| 778 | |||
| 779 | void DiscardResource( | ||
| 780 | [annotation("_In_")] ID3D12Resource* pResource, | ||
| 781 | [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion | ||
| 782 | ); | ||
| 783 | |||
| 784 | void BeginQuery( | ||
| 785 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 786 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 787 | [annotation("_In_")] UINT Index | ||
| 788 | ); | ||
| 789 | |||
| 790 | void EndQuery( | ||
| 791 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 792 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 793 | [annotation("_In_")] UINT Index | ||
| 794 | ); | ||
| 795 | |||
| 796 | void ResolveQueryData( | ||
| 797 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 798 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 799 | [annotation("_In_")] UINT StartIndex, | ||
| 800 | [annotation("_In_")] UINT NumQueries, | ||
| 801 | [annotation("_In_")] ID3D12Resource* pDestinationBuffer, | ||
| 802 | [annotation("_In_")] UINT64 AlignedDestinationBufferOffset | ||
| 803 | ); | ||
| 804 | |||
| 805 | void SetPredication( | ||
| 806 | [annotation("_In_opt_")] ID3D12Resource* pBuffer, | ||
| 807 | [annotation("_In_")] UINT64 AlignedBufferOffset, | ||
| 808 | [annotation("_In_")] D3D12_PREDICATION_OP Operation | ||
| 809 | ); | ||
| 810 | |||
| 811 | void SetMarker( | ||
| 812 | UINT Metadata, | ||
| 813 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
| 814 | UINT Size); | ||
| 815 | |||
| 816 | void BeginEvent( | ||
| 817 | UINT Metadata, | ||
| 818 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
| 819 | UINT Size); | ||
| 820 | |||
| 821 | void EndEvent(); | ||
| 822 | |||
| 823 | void ProcessFrames( | ||
| 824 | [annotation("_In_")] ID3D12VideoProcessor* pVideoProcessor, | ||
| 825 | [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 826 | UINT NumInputStreams, | ||
| 827 | [annotation("_In_reads_(NumInputStreams)")] const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS *pInputArguments | ||
| 828 | ); | ||
| 829 | |||
| 830 | void WriteBufferImmediate( | ||
| 831 | UINT Count, | ||
| 832 | [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 833 | [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes | ||
| 834 | ); | ||
| 835 | } | ||
| 836 | |||
| 837 | typedef struct D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM | ||
| 838 | { | ||
| 839 | UINT64 Offset; | ||
| 840 | ID3D12Resource* pBuffer; | ||
| 841 | } D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM; | ||
| 842 | |||
| 843 | typedef struct D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 | ||
| 844 | { | ||
| 845 | BOOL Enable; | ||
| 846 | ID3D12Resource* pReferenceTexture2D; | ||
| 847 | UINT ReferenceSubresource; | ||
| 848 | DXGI_COLOR_SPACE_TYPE OutputColorSpace; | ||
| 849 | DXGI_COLOR_SPACE_TYPE DecodeColorSpace; | ||
| 850 | UINT OutputWidth; | ||
| 851 | UINT OutputHeight; | ||
| 852 | } D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1; | ||
| 853 | |||
| 854 | typedef struct D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 | ||
| 855 | { | ||
| 856 | ID3D12Resource* pOutputTexture2D; | ||
| 857 | UINT OutputSubresource; | ||
| 858 | D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS1 ConversionArguments; | ||
| 859 | D3D12_VIDEO_DECODE_OUTPUT_HISTOGRAM Histograms[D3D12_VIDEO_DECODE_MAX_HISTOGRAM_COMPONENTS]; | ||
| 860 | } D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1; | ||
| 861 | |||
| 862 | [uuid(D52F011B-B56E-453C-A05A-A7F311C8F472), object, local, pointer_default(unique)] | ||
| 863 | interface ID3D12VideoDecodeCommandList1 | ||
| 864 | : ID3D12VideoDecodeCommandList | ||
| 865 | { | ||
| 866 | void DecodeFrame1( | ||
| 867 | [annotation("_In_")] ID3D12VideoDecoder* pDecoder, | ||
| 868 | [annotation("_In_")] const D3D12_VIDEO_DECODE_OUTPUT_STREAM_ARGUMENTS1 *pOutputArguments, | ||
| 869 | [annotation("_In_")] const D3D12_VIDEO_DECODE_INPUT_STREAM_ARGUMENTS *pInputArguments | ||
| 870 | ); | ||
| 871 | } | ||
| 872 | |||
| 873 | typedef struct D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 | ||
| 874 | { | ||
| 875 | D3D12_VIDEO_PROCESS_INPUT_STREAM InputStream[D3D12_VIDEO_PROCESS_STEREO_VIEWS]; | ||
| 876 | D3D12_VIDEO_PROCESS_TRANSFORM Transform; | ||
| 877 | D3D12_VIDEO_PROCESS_INPUT_STREAM_FLAGS Flags; | ||
| 878 | D3D12_VIDEO_PROCESS_INPUT_STREAM_RATE RateInfo; | ||
| 879 | INT FilterLevels[D3D12_VIDEO_PROCESS_MAX_FILTERS]; | ||
| 880 | D3D12_VIDEO_PROCESS_ALPHA_BLENDING AlphaBlending; | ||
| 881 | D3D12_VIDEO_FIELD_TYPE FieldType; | ||
| 882 | } D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1; | ||
| 883 | |||
| 884 | [uuid(542C5C4D-7596-434F-8C93-4EFA6766F267), object, local, pointer_default(unique)] | ||
| 885 | interface ID3D12VideoProcessCommandList1 : ID3D12VideoProcessCommandList | ||
| 886 | { | ||
| 887 | void ProcessFrames1( | ||
| 888 | [annotation("_In_")] ID3D12VideoProcessor* pVideoProcessor, | ||
| 889 | [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_ARGUMENTS *pOutputArguments, | ||
| 890 | UINT NumInputStreams, | ||
| 891 | [annotation("_In_reads_(NumInputStreams)")] const D3D12_VIDEO_PROCESS_INPUT_STREAM_ARGUMENTS1 *pInputArguments | ||
| 892 | ); | ||
| 893 | } | ||
| 894 | |||
| 895 | typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE | ||
| 896 | { | ||
| 897 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8 = 0, | ||
| 898 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16 = 1, | ||
| 899 | } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE; | ||
| 900 | |||
| 901 | typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS | ||
| 902 | { | ||
| 903 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_NONE = 0, | ||
| 904 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_8X8 = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_8X8), | ||
| 905 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAG_16X16 = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_16X16), | ||
| 906 | |||
| 907 | } D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS; | ||
| 908 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS )" ) | ||
| 909 | |||
| 910 | typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION | ||
| 911 | { | ||
| 912 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL = 0, | ||
| 913 | } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION; | ||
| 914 | |||
| 915 | typedef enum D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS | ||
| 916 | { | ||
| 917 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_NONE = 0, | ||
| 918 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAG_QUARTER_PEL = (1 << D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_QUARTER_PEL), | ||
| 919 | |||
| 920 | } D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS; | ||
| 921 | cpp_quote( "DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS )" ) | ||
| 922 | |||
| 923 | // D3D12_FEATURE_VIDEO_FEATURE_AREA_SUPPORT | ||
| 924 | typedef struct D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT | ||
| 925 | { | ||
| 926 | UINT NodeIndex; // input | ||
| 927 | BOOL VideoDecodeSupport; // output | ||
| 928 | BOOL VideoProcessSupport; // output | ||
| 929 | BOOL VideoEncodeSupport; // output | ||
| 930 | } D3D12_FEATURE_DATA_VIDEO_FEATURE_AREA_SUPPORT; | ||
| 931 | |||
| 932 | // D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR | ||
| 933 | typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR | ||
| 934 | { | ||
| 935 | UINT NodeIndex; // input | ||
| 936 | DXGI_FORMAT InputFormat; // input | ||
| 937 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE_FLAGS BlockSizeFlags; // output | ||
| 938 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION_FLAGS PrecisionFlags; // output | ||
| 939 | D3D12_VIDEO_SIZE_RANGE SizeRange; // output | ||
| 940 | } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR; | ||
| 941 | |||
| 942 | // D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_SIZE | ||
| 943 | typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE | ||
| 944 | { | ||
| 945 | UINT NodeIndex; // input | ||
| 946 | DXGI_FORMAT InputFormat; // input | ||
| 947 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; // input | ||
| 948 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; // input | ||
| 949 | D3D12_VIDEO_SIZE_RANGE SizeRange; // input | ||
| 950 | BOOL Protected; // input | ||
| 951 | UINT64 MotionVectorHeapMemoryPoolL0Size; // output | ||
| 952 | UINT64 MotionVectorHeapMemoryPoolL1Size; // output | ||
| 953 | UINT64 MotionEstimatorMemoryPoolL0Size; // output | ||
| 954 | UINT64 MotionEstimatorMemoryPoolL1Size; // output | ||
| 955 | } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_SIZE; | ||
| 956 | |||
| 957 | typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_DESC | ||
| 958 | { | ||
| 959 | UINT NodeMask; | ||
| 960 | DXGI_FORMAT InputFormat; | ||
| 961 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; | ||
| 962 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; | ||
| 963 | D3D12_VIDEO_SIZE_RANGE SizeRange; | ||
| 964 | |||
| 965 | } D3D12_VIDEO_MOTION_ESTIMATOR_DESC; | ||
| 966 | |||
| 967 | [uuid(33FDAE0E-098B-428F-87BB-34B695DE08F8), object, local, pointer_default(unique)] | ||
| 968 | interface ID3D12VideoMotionEstimator | ||
| 969 | : ID3D12Pageable | ||
| 970 | { | ||
| 971 | D3D12_VIDEO_MOTION_ESTIMATOR_DESC GetDesc(); | ||
| 972 | |||
| 973 | HRESULT GetProtectedResourceSession( | ||
| 974 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
| 975 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
| 976 | } | ||
| 977 | |||
| 978 | typedef struct D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC | ||
| 979 | { | ||
| 980 | UINT NodeMask; | ||
| 981 | DXGI_FORMAT InputFormat; | ||
| 982 | D3D12_VIDEO_MOTION_ESTIMATOR_SEARCH_BLOCK_SIZE BlockSize; | ||
| 983 | D3D12_VIDEO_MOTION_ESTIMATOR_VECTOR_PRECISION Precision; | ||
| 984 | D3D12_VIDEO_SIZE_RANGE SizeRange; | ||
| 985 | |||
| 986 | } D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC; | ||
| 987 | |||
| 988 | [uuid(5BE17987-743A-4061-834B-23D22DAEA505), object, local, pointer_default(unique)] | ||
| 989 | interface ID3D12VideoMotionVectorHeap | ||
| 990 | : ID3D12Pageable | ||
| 991 | { | ||
| 992 | D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC GetDesc(); | ||
| 993 | |||
| 994 | HRESULT GetProtectedResourceSession( | ||
| 995 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
| 996 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
| 997 | } | ||
| 998 | |||
| 999 | [uuid(981611AD-A144-4C83-9890-F30E26D658AB), object, local, pointer_default(unique)] | ||
| 1000 | interface ID3D12VideoDevice1 | ||
| 1001 | : ID3D12VideoDevice | ||
| 1002 | { | ||
| 1003 | HRESULT CreateVideoMotionEstimator( | ||
| 1004 | [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_DESC* pDesc, | ||
| 1005 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 1006 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoMotionEstimator, | ||
| 1007 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoMotionEstimator | ||
| 1008 | ); | ||
| 1009 | |||
| 1010 | HRESULT CreateVideoMotionVectorHeap( | ||
| 1011 | [annotation("_In_")] const D3D12_VIDEO_MOTION_VECTOR_HEAP_DESC* pDesc, | ||
| 1012 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 1013 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoMotionVectorHeap, | ||
| 1014 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoMotionVectorHeap | ||
| 1015 | ); | ||
| 1016 | } | ||
| 1017 | |||
| 1018 | typedef struct D3D12_RESOURCE_COORDINATE | ||
| 1019 | { | ||
| 1020 | // Coordinate values below index pixels. | ||
| 1021 | UINT64 X; // Used for buffer, 1D, 2D, 3D | ||
| 1022 | UINT Y; // Used for 2D, 3D | ||
| 1023 | UINT Z; // Used for 3D | ||
| 1024 | UINT SubresourceIndex; // indexes into mips, arrays, and planes. Used for 1D, 2D, 3D | ||
| 1025 | } D3D12_RESOURCE_COORDINATE; | ||
| 1026 | |||
| 1027 | typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT | ||
| 1028 | { | ||
| 1029 | ID3D12VideoMotionVectorHeap* pMotionVectorHeap; | ||
| 1030 | } D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT; | ||
| 1031 | |||
| 1032 | typedef struct D3D12_VIDEO_MOTION_ESTIMATOR_INPUT | ||
| 1033 | { | ||
| 1034 | ID3D12Resource* pInputTexture2D; | ||
| 1035 | UINT InputSubresourceIndex; | ||
| 1036 | ID3D12Resource* pReferenceTexture2D; | ||
| 1037 | UINT ReferenceSubresourceIndex; | ||
| 1038 | ID3D12VideoMotionVectorHeap* pHintMotionVectorHeap; | ||
| 1039 | } D3D12_VIDEO_MOTION_ESTIMATOR_INPUT; | ||
| 1040 | |||
| 1041 | typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT | ||
| 1042 | { | ||
| 1043 | ID3D12Resource* pMotionVectorTexture2D; | ||
| 1044 | D3D12_RESOURCE_COORDINATE MotionVectorCoordinate; | ||
| 1045 | } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT; | ||
| 1046 | |||
| 1047 | typedef struct D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT | ||
| 1048 | { | ||
| 1049 | ID3D12VideoMotionVectorHeap* pMotionVectorHeap; | ||
| 1050 | UINT PixelWidth; | ||
| 1051 | UINT PixelHeight; | ||
| 1052 | } D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT; | ||
| 1053 | |||
| 1054 | [uuid(8455293A-0CBD-4831-9B39-FBDBAB724723), object, local, pointer_default(unique)] | ||
| 1055 | interface ID3D12VideoEncodeCommandList | ||
| 1056 | : ID3D12CommandList | ||
| 1057 | { | ||
| 1058 | HRESULT Close(); | ||
| 1059 | |||
| 1060 | HRESULT Reset( | ||
| 1061 | [annotation("_In_")] ID3D12CommandAllocator* pAllocator | ||
| 1062 | ); | ||
| 1063 | |||
| 1064 | void ClearState(); | ||
| 1065 | |||
| 1066 | void ResourceBarrier( | ||
| 1067 | [annotation("_In_")] UINT NumBarriers, | ||
| 1068 | [annotation("_In_reads_(NumBarriers)")] const D3D12_RESOURCE_BARRIER* pBarriers | ||
| 1069 | ); | ||
| 1070 | |||
| 1071 | void DiscardResource( | ||
| 1072 | [annotation("_In_")] ID3D12Resource* pResource, | ||
| 1073 | [annotation("_In_opt_")] const D3D12_DISCARD_REGION* pRegion | ||
| 1074 | ); | ||
| 1075 | |||
| 1076 | void BeginQuery( | ||
| 1077 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 1078 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 1079 | [annotation("_In_")] UINT Index | ||
| 1080 | ); | ||
| 1081 | |||
| 1082 | void EndQuery( | ||
| 1083 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 1084 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 1085 | [annotation("_In_")] UINT Index | ||
| 1086 | ); | ||
| 1087 | |||
| 1088 | void ResolveQueryData( | ||
| 1089 | [annotation("_In_")] ID3D12QueryHeap* pQueryHeap, | ||
| 1090 | [annotation("_In_")] D3D12_QUERY_TYPE Type, | ||
| 1091 | [annotation("_In_")] UINT StartIndex, | ||
| 1092 | [annotation("_In_")] UINT NumQueries, | ||
| 1093 | [annotation("_In_")] ID3D12Resource* pDestinationBuffer, | ||
| 1094 | [annotation("_In_")] UINT64 AlignedDestinationBufferOffset | ||
| 1095 | ); | ||
| 1096 | |||
| 1097 | void SetPredication( | ||
| 1098 | [annotation("_In_opt_")] ID3D12Resource* pBuffer, | ||
| 1099 | [annotation("_In_")] UINT64 AlignedBufferOffset, | ||
| 1100 | [annotation("_In_")] D3D12_PREDICATION_OP Operation | ||
| 1101 | ); | ||
| 1102 | |||
| 1103 | void SetMarker( | ||
| 1104 | UINT Metadata, | ||
| 1105 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
| 1106 | UINT Size); | ||
| 1107 | |||
| 1108 | void BeginEvent( | ||
| 1109 | UINT Metadata, | ||
| 1110 | [annotation("_In_reads_bytes_opt_(Size)")] const void* pData, | ||
| 1111 | UINT Size); | ||
| 1112 | |||
| 1113 | void EndEvent(); | ||
| 1114 | |||
| 1115 | void EstimateMotion( | ||
| 1116 | [annotation("_In_")] ID3D12VideoMotionEstimator* pMotionEstimator, | ||
| 1117 | [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_OUTPUT* pOutputArguments, | ||
| 1118 | [annotation("_In_")] const D3D12_VIDEO_MOTION_ESTIMATOR_INPUT* pInputArguments | ||
| 1119 | ); | ||
| 1120 | |||
| 1121 | void ResolveMotionVectorHeap( | ||
| 1122 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_OUTPUT* pOutputArguments, | ||
| 1123 | const D3D12_RESOLVE_VIDEO_MOTION_VECTOR_HEAP_INPUT* pInputArguments | ||
| 1124 | ); | ||
| 1125 | |||
| 1126 | void WriteBufferImmediate( | ||
| 1127 | UINT Count, | ||
| 1128 | [annotation("_In_reads_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *pParams, | ||
| 1129 | [annotation("_In_reads_opt_(Count)")] const D3D12_WRITEBUFFERIMMEDIATE_MODE *pModes | ||
| 1130 | ); | ||
| 1131 | |||
| 1132 | void SetProtectedResourceSession( | ||
| 1133 | [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession | ||
| 1134 | ); | ||
| 1135 | } | ||
| 1136 | |||
| 1137 | typedef enum D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS | ||
| 1138 | { | ||
| 1139 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_NONE = 0x0, | ||
| 1140 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
| 1141 | |||
| 1142 | } D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS; | ||
| 1143 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS )") | ||
| 1144 | |||
| 1145 | // D3D12_FEATURE_VIDEO_DECODE_PROTECTED_RESOURCES | ||
| 1146 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES | ||
| 1147 | { | ||
| 1148 | UINT NodeIndex; // input | ||
| 1149 | D3D12_VIDEO_DECODE_CONFIGURATION Configuration; // input | ||
| 1150 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output | ||
| 1151 | } D3D12_FEATURE_DATA_VIDEO_DECODE_PROTECTED_RESOURCES; | ||
| 1152 | |||
| 1153 | // D3D12_FEATURE_VIDEO_PROCESS_PROTECTED_RESOURCES | ||
| 1154 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES | ||
| 1155 | { | ||
| 1156 | UINT NodeIndex; // input | ||
| 1157 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output | ||
| 1158 | } D3D12_FEATURE_DATA_VIDEO_PROCESS_PROTECTED_RESOURCES; | ||
| 1159 | |||
| 1160 | // D3D12_FEATURE_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES | ||
| 1161 | typedef struct D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES | ||
| 1162 | { | ||
| 1163 | UINT NodeIndex; // input | ||
| 1164 | D3D12_VIDEO_PROTECTED_RESOURCE_SUPPORT_FLAGS SupportFlags; // output | ||
| 1165 | } D3D12_FEATURE_DATA_VIDEO_MOTION_ESTIMATOR_PROTECTED_RESOURCES; | ||
| 1166 | |||
| 1167 | //D3D12_FEATURE_VIDEO_DECODER_HEAP_SIZE1 | ||
| 1168 | typedef struct D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1 | ||
| 1169 | { | ||
| 1170 | D3D12_VIDEO_DECODER_HEAP_DESC VideoDecoderHeapDesc; // input | ||
| 1171 | BOOL Protected; // input | ||
| 1172 | UINT64 MemoryPoolL0Size; // output | ||
| 1173 | UINT64 MemoryPoolL1Size; // output | ||
| 1174 | } D3D12_FEATURE_DATA_VIDEO_DECODER_HEAP_SIZE1; | ||
| 1175 | |||
| 1176 | // D3D12_FEATURE_VIDEO_PROCESSOR_SIZE1 | ||
| 1177 | typedef struct D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1 | ||
| 1178 | { | ||
| 1179 | UINT NodeMask; | ||
| 1180 | const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc; // input | ||
| 1181 | UINT NumInputStreamDescs; // input | ||
| 1182 | const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs; // input | ||
| 1183 | BOOL Protected; // input | ||
| 1184 | UINT64 MemoryPoolL0Size; // output | ||
| 1185 | UINT64 MemoryPoolL1Size; // output | ||
| 1186 | } D3D12_FEATURE_DATA_VIDEO_PROCESSOR_SIZE1; | ||
| 1187 | |||
| 1188 | typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE | ||
| 1189 | { | ||
| 1190 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CREATION = 0, | ||
| 1191 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_INITIALIZATION = 1, | ||
| 1192 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_EXECUTION = 2, | ||
| 1193 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_INPUT = 3, | ||
| 1194 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_CAPS_OUTPUT = 4, | ||
| 1195 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_INPUT = 5, | ||
| 1196 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE_DEVICE_EXECUTE_OUTPUT = 6, | ||
| 1197 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE; | ||
| 1198 | |||
| 1199 | typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE | ||
| 1200 | { | ||
| 1201 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT8 = 0, | ||
| 1202 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT16 = 1, | ||
| 1203 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT32 = 2, | ||
| 1204 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_UINT64 = 3, | ||
| 1205 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT8 = 4, | ||
| 1206 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT16 = 5, | ||
| 1207 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT32 = 6, | ||
| 1208 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_SINT64 = 7, | ||
| 1209 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_FLOAT = 8, | ||
| 1210 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_DOUBLE = 9, | ||
| 1211 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE_RESOURCE = 10, | ||
| 1212 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE; | ||
| 1213 | |||
| 1214 | typedef enum D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS | ||
| 1215 | { | ||
| 1216 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_NONE = 0x00000000, | ||
| 1217 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_READ = 0x00000001, | ||
| 1218 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAG_WRITE = 0x00000002 | ||
| 1219 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS; | ||
| 1220 | |||
| 1221 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS )") | ||
| 1222 | |||
| 1223 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT | ||
| 1224 | { | ||
| 1225 | UINT NodeIndex; // in | ||
| 1226 | UINT CommandCount; // out | ||
| 1227 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_COUNT; | ||
| 1228 | |||
| 1229 | typedef struct D3D12_VIDEO_EXTENSION_COMMAND_INFO | ||
| 1230 | { | ||
| 1231 | GUID CommandId; | ||
| 1232 | LPCWSTR Name; | ||
| 1233 | D3D12_COMMAND_LIST_SUPPORT_FLAGS CommandListSupportFlags; | ||
| 1234 | } D3D12_VIDEO_EXTENSION_COMMAND_INFO; | ||
| 1235 | |||
| 1236 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS | ||
| 1237 | { | ||
| 1238 | UINT NodeIndex; | ||
| 1239 | UINT CommandCount; | ||
| 1240 | [annotation("_Field_size_full_(CommandCount)")] D3D12_VIDEO_EXTENSION_COMMAND_INFO* pCommandInfos; | ||
| 1241 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMANDS; | ||
| 1242 | |||
| 1243 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT | ||
| 1244 | { | ||
| 1245 | GUID CommandId; // in | ||
| 1246 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; // in | ||
| 1247 | UINT ParameterCount; // out | ||
| 1248 | UINT ParameterPacking; // out | ||
| 1249 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETER_COUNT; | ||
| 1250 | |||
| 1251 | typedef struct D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO | ||
| 1252 | { | ||
| 1253 | LPCWSTR Name; | ||
| 1254 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_TYPE Type; | ||
| 1255 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_FLAGS Flags; | ||
| 1256 | } D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO; | ||
| 1257 | |||
| 1258 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS | ||
| 1259 | { | ||
| 1260 | GUID CommandId; // in | ||
| 1261 | D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_STAGE Stage; // in | ||
| 1262 | UINT ParameterCount; // in | ||
| 1263 | [annotation("_Field_size_full_(ParameterCount)")] D3D12_VIDEO_EXTENSION_COMMAND_PARAMETER_INFO* pParameterInfos; // out | ||
| 1264 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_PARAMETERS; | ||
| 1265 | |||
| 1266 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT | ||
| 1267 | { | ||
| 1268 | UINT NodeIndex; | ||
| 1269 | GUID CommandId; | ||
| 1270 | [annotation("_Field_size_bytes_full_opt_(InputDataSizeInBytes)")] const void *pInputData; | ||
| 1271 | SIZE_T InputDataSizeInBytes; | ||
| 1272 | [annotation("_Field_size_bytes_full_opt_(OutputDataSizeInBytes)")] void *pOutputData; | ||
| 1273 | SIZE_T OutputDataSizeInBytes; | ||
| 1274 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SUPPORT; | ||
| 1275 | |||
| 1276 | typedef struct D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE | ||
| 1277 | { | ||
| 1278 | UINT NodeIndex; | ||
| 1279 | GUID CommandId; | ||
| 1280 | [annotation("_Field_size_bytes_full_(CreationParametersDataSizeInBytes)")] const void* pCreationParameters; | ||
| 1281 | SIZE_T CreationParametersSizeInBytes; | ||
| 1282 | UINT64 MemoryPoolL0Size; // output | ||
| 1283 | UINT64 MemoryPoolL1Size; // output | ||
| 1284 | } D3D12_FEATURE_DATA_VIDEO_EXTENSION_COMMAND_SIZE; | ||
| 1285 | |||
| 1286 | typedef struct D3D12_VIDEO_EXTENSION_COMMAND_DESC | ||
| 1287 | { | ||
| 1288 | UINT NodeMask; | ||
| 1289 | GUID CommandId; | ||
| 1290 | } D3D12_VIDEO_EXTENSION_COMMAND_DESC; | ||
| 1291 | |||
| 1292 | [uuid(79A2E5FB-CCD2-469A-9FDE-195D10951F7E), object, local, pointer_default(unique)] | ||
| 1293 | interface ID3D12VideoDecoder1 | ||
| 1294 | : ID3D12VideoDecoder | ||
| 1295 | { | ||
| 1296 | HRESULT GetProtectedResourceSession( | ||
| 1297 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
| 1298 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
| 1299 | } | ||
| 1300 | |||
| 1301 | [uuid(DA1D98C5-539F-41B2-BF6B-1198A03B6D26), object, local, pointer_default(unique)] | ||
| 1302 | interface ID3D12VideoDecoderHeap1 | ||
| 1303 | : ID3D12VideoDecoderHeap | ||
| 1304 | { | ||
| 1305 | HRESULT GetProtectedResourceSession( | ||
| 1306 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
| 1307 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
| 1308 | } | ||
| 1309 | |||
| 1310 | [uuid(F3CFE615-553F-425C-86D8-EE8C1B1FB01C), object, local, pointer_default(unique)] | ||
| 1311 | interface ID3D12VideoProcessor1 | ||
| 1312 | : ID3D12VideoProcessor | ||
| 1313 | { | ||
| 1314 | HRESULT GetProtectedResourceSession( | ||
| 1315 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
| 1316 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
| 1317 | } | ||
| 1318 | |||
| 1319 | [uuid(554E41E8-AE8E-4A8C-B7D2-5B4F274A30E4), object, local, pointer_default(unique)] | ||
| 1320 | interface ID3D12VideoExtensionCommand | ||
| 1321 | : ID3D12Pageable | ||
| 1322 | { | ||
| 1323 | D3D12_VIDEO_EXTENSION_COMMAND_DESC GetDesc(); | ||
| 1324 | |||
| 1325 | HRESULT GetProtectedResourceSession( | ||
| 1326 | [in] REFIID riid, // Expected: ID3D12ProtectedResourceSession | ||
| 1327 | [out, iid_is(riid), annotation("_COM_Outptr_opt_")] void** ppProtectedSession); | ||
| 1328 | } | ||
| 1329 | |||
| 1330 | [uuid(F019AC49-F838-4A95-9B17-579437C8F513), object, local, pointer_default(unique)] | ||
| 1331 | interface ID3D12VideoDevice2 | ||
| 1332 | : ID3D12VideoDevice1 | ||
| 1333 | { | ||
| 1334 | HRESULT CreateVideoDecoder1( | ||
| 1335 | [annotation("_In_")] const D3D12_VIDEO_DECODER_DESC* pDesc, | ||
| 1336 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 1337 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoder1, | ||
| 1338 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoder | ||
| 1339 | ); | ||
| 1340 | |||
| 1341 | HRESULT CreateVideoDecoderHeap1( | ||
| 1342 | [annotation("_In_")] const D3D12_VIDEO_DECODER_HEAP_DESC* pVideoDecoderHeapDesc, | ||
| 1343 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 1344 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoDecoderHeap1, | ||
| 1345 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppVideoDecoderHeap | ||
| 1346 | ); | ||
| 1347 | |||
| 1348 | HRESULT CreateVideoProcessor1( | ||
| 1349 | UINT NodeMask, | ||
| 1350 | [annotation("_In_")] const D3D12_VIDEO_PROCESS_OUTPUT_STREAM_DESC* pOutputStreamDesc, | ||
| 1351 | UINT NumInputStreamDescs, | ||
| 1352 | [annotation("_In_reads_(NumInputStreamDescs)")]const D3D12_VIDEO_PROCESS_INPUT_STREAM_DESC *pInputStreamDescs, | ||
| 1353 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession *pProtectedResourceSession, | ||
| 1354 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoProcessor1, | ||
| 1355 | [out, iid_is(riid), annotation("_COM_Outptr_")] void **ppVideoProcessor | ||
| 1356 | ); | ||
| 1357 | |||
| 1358 | HRESULT CreateVideoExtensionCommand( | ||
| 1359 | [annotation("_In_")] const D3D12_VIDEO_EXTENSION_COMMAND_DESC* pDesc, | ||
| 1360 | [annotation("_In_reads_bytes_(CreationParametersDataSizeInBytes)")] const void* pCreationParameters, | ||
| 1361 | SIZE_T CreationParametersDataSizeInBytes, | ||
| 1362 | [annotation("_In_opt_")] ID3D12ProtectedResourceSession* pProtectedResourceSession, | ||
| 1363 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoExtensionCommand, | ||
| 1364 | [annotation("_COM_Outptr_")] void** ppVideoExtensionCommand); | ||
| 1365 | |||
| 1366 | HRESULT ExecuteExtensionCommand( | ||
| 1367 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
| 1368 | [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, | ||
| 1369 | SIZE_T ExecutionParametersSizeInBytes, | ||
| 1370 | [annotation("_Out_writes_bytes_(OutputDataSizeInBytes)")] void *pOutputData, | ||
| 1371 | SIZE_T OutputDataSizeInBytes | ||
| 1372 | ); | ||
| 1373 | } | ||
| 1374 | |||
| 1375 | [uuid(6e120880-c114-4153-8036-d247051e1729), object, local, pointer_default(unique)] | ||
| 1376 | interface ID3D12VideoDecodeCommandList2 | ||
| 1377 | : ID3D12VideoDecodeCommandList1 | ||
| 1378 | { | ||
| 1379 | void SetProtectedResourceSession( | ||
| 1380 | [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession | ||
| 1381 | ); | ||
| 1382 | |||
| 1383 | void InitializeExtensionCommand( | ||
| 1384 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
| 1385 | [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters, | ||
| 1386 | SIZE_T InitializationParametersSizeInBytes); | ||
| 1387 | |||
| 1388 | void ExecuteExtensionCommand( | ||
| 1389 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
| 1390 | [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, | ||
| 1391 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 1392 | } | ||
| 1393 | |||
| 1394 | [uuid(2aee8c37-9562-42da-8abf-61efeb2e4513), object, local, pointer_default(unique)] | ||
| 1395 | interface ID3D12VideoDecodeCommandList3 | ||
| 1396 | : ID3D12VideoDecodeCommandList2 | ||
| 1397 | { | ||
| 1398 | void Barrier( | ||
| 1399 | UINT32 NumBarrierGroups, | ||
| 1400 | [annotation("_In_reads_(NumBarrierGroups)")] const D3D12_BARRIER_GROUP *pBarrierGroups | ||
| 1401 | ); | ||
| 1402 | } | ||
| 1403 | |||
| 1404 | |||
| 1405 | |||
| 1406 | [uuid(db525ae4-6ad6-473c-baa7-59b2e37082e4), object, local, pointer_default(unique)] | ||
| 1407 | interface ID3D12VideoProcessCommandList2 | ||
| 1408 | : ID3D12VideoProcessCommandList1 | ||
| 1409 | { | ||
| 1410 | |||
| 1411 | void SetProtectedResourceSession( | ||
| 1412 | [annotation("_In_opt_")]ID3D12ProtectedResourceSession *pProtectedResourceSession | ||
| 1413 | ); | ||
| 1414 | |||
| 1415 | void InitializeExtensionCommand( | ||
| 1416 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
| 1417 | [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters, | ||
| 1418 | SIZE_T InitializationParametersSizeInBytes); | ||
| 1419 | |||
| 1420 | void ExecuteExtensionCommand( | ||
| 1421 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
| 1422 | [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, | ||
| 1423 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 1424 | } | ||
| 1425 | |||
| 1426 | [uuid(1a0a4ca4-9f08-40ce-9558-b411fd2666ff), object, local, pointer_default(unique)] | ||
| 1427 | interface ID3D12VideoProcessCommandList3 | ||
| 1428 | : ID3D12VideoProcessCommandList2 | ||
| 1429 | { | ||
| 1430 | void Barrier( | ||
| 1431 | UINT32 NumBarrierGroups, | ||
| 1432 | [annotation("_In_reads_(NumBarrierGroups)")] const D3D12_BARRIER_GROUP *pBarrierGroups | ||
| 1433 | ); | ||
| 1434 | } | ||
| 1435 | |||
| 1436 | |||
| 1437 | |||
| 1438 | [uuid(94971eca-2bdb-4769-88cf-3675ea757ebc), object, local, pointer_default(unique)] | ||
| 1439 | interface ID3D12VideoEncodeCommandList1 | ||
| 1440 | : ID3D12VideoEncodeCommandList | ||
| 1441 | { | ||
| 1442 | void InitializeExtensionCommand( | ||
| 1443 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
| 1444 | [annotation("_In_reads_bytes_(InitializationParametersSizeInBytes)")] const void *pInitializationParameters, | ||
| 1445 | SIZE_T InitializationParametersSizeInBytes); | ||
| 1446 | |||
| 1447 | void ExecuteExtensionCommand( | ||
| 1448 | [annotation("_In_")] ID3D12VideoExtensionCommand* pExtensionCommand, | ||
| 1449 | [annotation("_In_reads_bytes_(ExecutionParametersSizeInBytes)")] const void *pExecutionParameters, | ||
| 1450 | SIZE_T ExecutionParametersSizeInBytes); | ||
| 1451 | } | ||
| 1452 | |||
| 1453 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG2, 0xee27417f, 0x5e28, 0x4e65, 0xbe, 0xea, 0x1d, 0x26, 0xb5, 0x08, 0xad, 0xc9); ") | ||
| 1454 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG1_AND_MPEG2, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60); ") | ||
| 1455 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);") | ||
| 1456 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO_PROGRESSIVE, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d);") | ||
| 1457 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_STEREO, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52);") | ||
| 1458 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_H264_MULTIVIEW, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c);") | ||
| 1459 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1, 0x1b81beA3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);") | ||
| 1460 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VC1_D2010, 0x1b81beA4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5);") | ||
| 1461 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_SIMPLE, 0xefd64d74, 0xc9e8,0x41d7,0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);") | ||
| 1462 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MPEG4PT2_ADVSIMPLE_NOGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e);") | ||
| 1463 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0);") | ||
| 1464 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13);") | ||
| 1465 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME, 0x0685b993, 0x3d8c, 0x43a0, 0x8b, 0x28, 0xd7, 0x4c, 0x2d, 0x68, 0x99, 0xa4);") | ||
| 1466 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MONOCHROME10, 0x142a1d0f, 0x69dd, 0x4ec9, 0x85, 0x91, 0xb1, 0x2f, 0xfc, 0xb9, 0x1a, 0x29);") | ||
| 1467 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12, 0x1a72925f, 0x0c2c, 0x4f15, 0x96, 0xfb, 0xb1, 0x7d, 0x14, 0x73, 0x60, 0x3f);") | ||
| 1468 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_422, 0x0bac4fe5, 0x1532, 0x4429, 0xa8, 0x54, 0xf8, 0x4d, 0xe0, 0x49, 0x53, 0xdb);") | ||
| 1469 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_422, 0x55bcac81, 0xf311, 0x4093, 0xa7, 0xd0, 0x1c, 0xbc, 0x0b, 0x84, 0x9b, 0xee);") | ||
| 1470 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN_444, 0x4008018f, 0xf537, 0x4b36, 0x98, 0xcf, 0x61, 0xaf, 0x8a, 0x2c, 0x1a, 0x33);") | ||
| 1471 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_EXT, 0x9cc55490, 0xe37c, 0x4932, 0x86, 0x84, 0x49, 0x20, 0xf9, 0xf6, 0x40, 0x9c);") | ||
| 1472 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN10_444, 0x0dabeffa, 0x4458, 0x4602, 0xbc, 0x03, 0x07, 0x95, 0x65, 0x9d, 0x61, 0x7c);") | ||
| 1473 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN12_444, 0x9798634d, 0xfe9d, 0x48e5, 0xb4, 0xda, 0xdb, 0xec, 0x45, 0xb3, 0xdf, 0x01);") | ||
| 1474 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_HEVC_MAIN16, 0xa4fbdbb0, 0xa113, 0x482b, 0xa2, 0x32, 0x63, 0x5c, 0xc0, 0x69, 0x7f, 0x6d);") | ||
| 1475 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e);") | ||
| 1476 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP9_10BIT_PROFILE2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7);") | ||
| 1477 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_VP8, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7);") | ||
| 1478 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);") | ||
| 1479 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);") | ||
| 1480 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_PROFILE2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);") | ||
| 1481 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);") | ||
| 1482 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_AV1_12BIT_PROFILE2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);") | ||
| 1483 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_420, 0x725cb506, 0xc29, 0x43c4, 0x94, 0x40, 0x8e, 0x93, 0x97, 0x90, 0x3a, 0x4); ") | ||
| 1484 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_422, 0x5b77b9cd, 0x1a35, 0x4c30, 0x9f, 0xd8, 0xef, 0x4b, 0x60, 0xc0, 0x35, 0xdd); ") | ||
| 1485 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_444, 0xd95161f9, 0xd44, 0x47e6, 0xbc, 0xf5, 0x1b, 0xfb, 0xfb, 0x26, 0x8f, 0x97); ") | ||
| 1486 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_MJPEG_VLD_4444, 0xc91748d5, 0xfd18, 0x4aca, 0x9d, 0xb3, 0x3a, 0x66, 0x34, 0xab, 0x54, 0x7d); ") | ||
| 1487 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_420, 0xcf782c83, 0xbef5, 0x4a2c, 0x87, 0xcb, 0x60, 0x19, 0xe7, 0xb1, 0x75, 0xac); ") | ||
| 1488 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_422, 0xf04df417, 0xeee2, 0x4067, 0xa7, 0x78, 0xf3, 0x5c, 0x15, 0xab, 0x97, 0x21); ") | ||
| 1489 | cpp_quote("DEFINE_GUID(D3D12_VIDEO_DECODE_PROFILE_JPEG_VLD_444, 0x4cd00e17, 0x89ba, 0x48ef, 0xb9, 0xf9, 0xed, 0xcb, 0x82, 0x71, 0x3f, 0x65);") | ||
| 1490 | |||
| 1491 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 1492 | // Video Encoder | ||
| 1493 | /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// | ||
| 1494 | |||
| 1495 | typedef enum D3D12_VIDEO_ENCODER_AV1_PROFILE | ||
| 1496 | { | ||
| 1497 | D3D12_VIDEO_ENCODER_AV1_PROFILE_MAIN = 0, | ||
| 1498 | D3D12_VIDEO_ENCODER_AV1_PROFILE_HIGH = 1, | ||
| 1499 | D3D12_VIDEO_ENCODER_AV1_PROFILE_PROFESSIONAL = 2, | ||
| 1500 | } D3D12_VIDEO_ENCODER_AV1_PROFILE; | ||
| 1501 | |||
| 1502 | typedef enum D3D12_VIDEO_ENCODER_AV1_LEVELS | ||
| 1503 | { // These values are defined according to the AV1 codec standard spec | ||
| 1504 | D3D12_VIDEO_ENCODER_AV1_LEVELS_2_0 = 0, | ||
| 1505 | D3D12_VIDEO_ENCODER_AV1_LEVELS_2_1 = 1, | ||
| 1506 | D3D12_VIDEO_ENCODER_AV1_LEVELS_2_2 = 2, | ||
| 1507 | D3D12_VIDEO_ENCODER_AV1_LEVELS_2_3 = 3, | ||
| 1508 | D3D12_VIDEO_ENCODER_AV1_LEVELS_3_0 = 4, | ||
| 1509 | D3D12_VIDEO_ENCODER_AV1_LEVELS_3_1 = 5, | ||
| 1510 | D3D12_VIDEO_ENCODER_AV1_LEVELS_3_2 = 6, | ||
| 1511 | D3D12_VIDEO_ENCODER_AV1_LEVELS_3_3 = 7, | ||
| 1512 | D3D12_VIDEO_ENCODER_AV1_LEVELS_4_0 = 8, | ||
| 1513 | D3D12_VIDEO_ENCODER_AV1_LEVELS_4_1 = 9, | ||
| 1514 | D3D12_VIDEO_ENCODER_AV1_LEVELS_4_2 = 10, | ||
| 1515 | D3D12_VIDEO_ENCODER_AV1_LEVELS_4_3 = 11, | ||
| 1516 | D3D12_VIDEO_ENCODER_AV1_LEVELS_5_0 = 12, | ||
| 1517 | D3D12_VIDEO_ENCODER_AV1_LEVELS_5_1 = 13, | ||
| 1518 | D3D12_VIDEO_ENCODER_AV1_LEVELS_5_2 = 14, | ||
| 1519 | D3D12_VIDEO_ENCODER_AV1_LEVELS_5_3 = 15, | ||
| 1520 | D3D12_VIDEO_ENCODER_AV1_LEVELS_6_0 = 16, | ||
| 1521 | D3D12_VIDEO_ENCODER_AV1_LEVELS_6_1 = 17, | ||
| 1522 | D3D12_VIDEO_ENCODER_AV1_LEVELS_6_2 = 18, | ||
| 1523 | D3D12_VIDEO_ENCODER_AV1_LEVELS_6_3 = 19, | ||
| 1524 | D3D12_VIDEO_ENCODER_AV1_LEVELS_7_0 = 20, | ||
| 1525 | D3D12_VIDEO_ENCODER_AV1_LEVELS_7_1 = 21, | ||
| 1526 | D3D12_VIDEO_ENCODER_AV1_LEVELS_7_2 = 22, | ||
| 1527 | D3D12_VIDEO_ENCODER_AV1_LEVELS_7_3 = 23, | ||
| 1528 | } D3D12_VIDEO_ENCODER_AV1_LEVELS; | ||
| 1529 | |||
| 1530 | typedef enum D3D12_VIDEO_ENCODER_AV1_TIER | ||
| 1531 | { | ||
| 1532 | D3D12_VIDEO_ENCODER_AV1_TIER_MAIN = 0, | ||
| 1533 | D3D12_VIDEO_ENCODER_AV1_TIER_HIGH = 1, | ||
| 1534 | } D3D12_VIDEO_ENCODER_AV1_TIER; | ||
| 1535 | |||
| 1536 | typedef struct D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS | ||
| 1537 | { | ||
| 1538 | D3D12_VIDEO_ENCODER_AV1_LEVELS Level; | ||
| 1539 | D3D12_VIDEO_ENCODER_AV1_TIER Tier; | ||
| 1540 | } D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS; | ||
| 1541 | |||
| 1542 | typedef enum D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS | ||
| 1543 | { | ||
| 1544 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_NONE = 0x0, | ||
| 1545 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_128x128_SUPERBLOCK = 0x1, | ||
| 1546 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FILTER_INTRA = 0x2, | ||
| 1547 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_EDGE_FILTER = 0x4, | ||
| 1548 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTERINTRA_COMPOUND = 0x8, | ||
| 1549 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MASKED_COMPOUND = 0x10, | ||
| 1550 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_WARPED_MOTION = 0x20, | ||
| 1551 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DUAL_FILTER = 0x40, | ||
| 1552 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_JNT_COMP = 0x80, | ||
| 1553 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FORCED_INTEGER_MOTION_VECTORS = 0x100, | ||
| 1554 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SUPER_RESOLUTION = 0x200, | ||
| 1555 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_RESTORATION_FILTER = 0x400, | ||
| 1556 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_PALETTE_ENCODING = 0x800, | ||
| 1557 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CDEF_FILTERING = 0x1000, | ||
| 1558 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_INTRA_BLOCK_COPY = 0x2000, | ||
| 1559 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x4000, | ||
| 1560 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ORDER_HINT_TOOLS = 0x8000, | ||
| 1561 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_AUTO_SEGMENTATION = 0x10000, | ||
| 1562 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_CUSTOM_SEGMENTATION = 0x20000, | ||
| 1563 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_LOOP_FILTER_DELTAS = 0x40000, | ||
| 1564 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_DELTAS = 0x80000, | ||
| 1565 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_QUANTIZATION_MATRIX = 0x100000, | ||
| 1566 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_REDUCED_TX_SET = 0x200000, | ||
| 1567 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_MOTION_MODE_SWITCHABLE = 0x400000, | ||
| 1568 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_ALLOW_HIGH_PRECISION_MV = 0x800000, | ||
| 1569 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_SKIP_MODE_PRESENT = 0x1000000, | ||
| 1570 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAG_DELTA_LF_PARAMS = 0x2000000, | ||
| 1571 | } D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS; | ||
| 1572 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS)") | ||
| 1573 | |||
| 1574 | typedef enum D3D12_VIDEO_ENCODER_AV1_TX_MODE { | ||
| 1575 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4 = 0, | ||
| 1576 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST = 1, | ||
| 1577 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT = 2, | ||
| 1578 | } D3D12_VIDEO_ENCODER_AV1_TX_MODE; | ||
| 1579 | |||
| 1580 | typedef enum D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS { | ||
| 1581 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_NONE = 0x0, | ||
| 1582 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_ONLY4x4 = (1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_ONLY4x4), | ||
| 1583 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_LARGEST = (1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_LARGEST), | ||
| 1584 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAG_SELECT = (1 << D3D12_VIDEO_ENCODER_AV1_TX_MODE_SELECT), | ||
| 1585 | } D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS; | ||
| 1586 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS)") | ||
| 1587 | |||
| 1588 | typedef enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS { | ||
| 1589 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP = 0, | ||
| 1590 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH = 1, | ||
| 1591 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP = 2, | ||
| 1592 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR = 3, | ||
| 1593 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE = 4, | ||
| 1594 | } D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS; | ||
| 1595 | |||
| 1596 | typedef enum D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS { | ||
| 1597 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_NONE = 0x0, | ||
| 1598 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP), | ||
| 1599 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SMOOTH = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SMOOTH), | ||
| 1600 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_EIGHTTAP_SHARP = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_EIGHTTAP_SHARP), | ||
| 1601 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_BILINEAR = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_BILINEAR), | ||
| 1602 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAG_SWITCHABLE = (1 << D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_SWITCHABLE), | ||
| 1603 | } D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS; | ||
| 1604 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS)") | ||
| 1605 | |||
| 1606 | typedef enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE { | ||
| 1607 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_4x4 = 0, | ||
| 1608 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_8x8 = 1, | ||
| 1609 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_16x16 = 2, | ||
| 1610 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_32x32 = 3, | ||
| 1611 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_64x64 = 4, | ||
| 1612 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE; | ||
| 1613 | |||
| 1614 | typedef enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE { | ||
| 1615 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED = 0, | ||
| 1616 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q = 1, | ||
| 1617 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V = 2, | ||
| 1618 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H = 3, | ||
| 1619 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U = 4, | ||
| 1620 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V = 5, | ||
| 1621 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME = 6, | ||
| 1622 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP = 7, | ||
| 1623 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV = 8, | ||
| 1624 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE; | ||
| 1625 | |||
| 1626 | typedef enum D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS { | ||
| 1627 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_NONE = 0, | ||
| 1628 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_DISABLED = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_DISABLED), | ||
| 1629 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_Q = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_Q), | ||
| 1630 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_V = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_V), | ||
| 1631 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_Y_H = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_Y_H), | ||
| 1632 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_U = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_U), | ||
| 1633 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_LF_V = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_LF_V), | ||
| 1634 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_REF_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_REF_FRAME), | ||
| 1635 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_SKIP = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_SKIP), | ||
| 1636 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAG_ALT_GLOBALMV = (1 << D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_ALT_GLOBALMV), | ||
| 1637 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS; | ||
| 1638 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS)") | ||
| 1639 | |||
| 1640 | typedef enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE { | ||
| 1641 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_DISABLED = 0, | ||
| 1642 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SWITCHABLE = 1, | ||
| 1643 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_WIENER = 2, | ||
| 1644 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_SGRPROJ = 3, | ||
| 1645 | } D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE; | ||
| 1646 | |||
| 1647 | typedef enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE { | ||
| 1648 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_DISABLED = 0, | ||
| 1649 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_32x32 = 1, | ||
| 1650 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_64x64 = 2, | ||
| 1651 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_128x128 = 3, | ||
| 1652 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE_256x256 = 4, | ||
| 1653 | } D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE; | ||
| 1654 | |||
| 1655 | typedef enum D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS { | ||
| 1656 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_NOT_SUPPORTED = 0x0, | ||
| 1657 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_32x32 = 0x1, | ||
| 1658 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_64x64 = 0x2, | ||
| 1659 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_128x128 = 0x4, | ||
| 1660 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAG_256x256 = 0x8, | ||
| 1661 | } D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS; | ||
| 1662 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS)") | ||
| 1663 | |||
| 1664 | typedef enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION | ||
| 1665 | { | ||
| 1666 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY = 0, | ||
| 1667 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION = 1, | ||
| 1668 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM = 2, | ||
| 1669 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE = 3, | ||
| 1670 | } D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION; | ||
| 1671 | |||
| 1672 | typedef enum D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS { | ||
| 1673 | 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 | ||
| 1674 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_IDENTITY = (1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_IDENTITY), | ||
| 1675 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_TRANSLATION = (1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_TRANSLATION), | ||
| 1676 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_ROTZOOM = (1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_ROTZOOM), | ||
| 1677 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAG_AFFINE = (1 << D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_AFFINE), | ||
| 1678 | } D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS; | ||
| 1679 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS)") | ||
| 1680 | |||
| 1681 | typedef enum D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS { | ||
| 1682 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_NONE = 0, | ||
| 1683 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION = 0x1, | ||
| 1684 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_QUANTIZATION_DELTA = 0x2, | ||
| 1685 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER = 0x4, | ||
| 1686 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_LOOP_FILTER_DELTA = 0x8, | ||
| 1687 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CDEF_DATA = 0x10, | ||
| 1688 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_CONTEXT_UPDATE_TILE_ID = 0x20, | ||
| 1689 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_COMPOUND_PREDICTION_MODE = 0x40, | ||
| 1690 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_PRIMARY_REF_FRAME = 0x80, | ||
| 1691 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAG_REFERENCE_INDICES = 0x100, | ||
| 1692 | } D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS; | ||
| 1693 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS)") | ||
| 1694 | |||
| 1695 | typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT { | ||
| 1696 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS SupportedFeatureFlags; | ||
| 1697 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS RequiredFeatureFlags; | ||
| 1698 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_FLAGS SupportedInterpolationFilters; | ||
| 1699 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_FLAGS SupportedRestorationParams[3][3]; | ||
| 1700 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS SupportedSegmentationModes; | ||
| 1701 | D3D12_VIDEO_ENCODER_AV1_TX_MODE_FLAGS SupportedTxModes[4]; // Different for D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE types | ||
| 1702 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE SegmentationBlockSize; | ||
| 1703 | D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_FLAGS PostEncodeValuesFlags; | ||
| 1704 | UINT MaxTemporalLayers; | ||
| 1705 | UINT MaxSpatialLayers; | ||
| 1706 | } D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT; | ||
| 1707 | |||
| 1708 | typedef enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE | ||
| 1709 | { | ||
| 1710 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME = 0, | ||
| 1711 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME = 1, | ||
| 1712 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME = 2, | ||
| 1713 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME = 3, | ||
| 1714 | } D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE; | ||
| 1715 | |||
| 1716 | typedef enum D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS { | ||
| 1717 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_NONE = 0x0, | ||
| 1718 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_KEY_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_KEY_FRAME), | ||
| 1719 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTER_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTER_FRAME), | ||
| 1720 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_INTRA_ONLY_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_INTRA_ONLY_FRAME), | ||
| 1721 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAG_SWITCH_FRAME = (1 << D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_SWITCH_FRAME), | ||
| 1722 | } D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS; | ||
| 1723 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS)") | ||
| 1724 | |||
| 1725 | typedef enum D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE | ||
| 1726 | { | ||
| 1727 | D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_SINGLE_REFERENCE = 0, | ||
| 1728 | D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE_COMPOUND_REFERENCE = 1, | ||
| 1729 | } D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE; | ||
| 1730 | |||
| 1731 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT { | ||
| 1732 | D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE PredictionMode; | ||
| 1733 | UINT MaxUniqueReferencesPerFrame; | ||
| 1734 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE_FLAGS SupportedFrameTypes; | ||
| 1735 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS SupportedReferenceWarpedMotionFlags; | ||
| 1736 | } D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT; | ||
| 1737 | |||
| 1738 | typedef struct D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION { | ||
| 1739 | D3D12_VIDEO_ENCODER_AV1_FEATURE_FLAGS FeatureFlags; | ||
| 1740 | UINT OrderHintBitsMinus1; | ||
| 1741 | } D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION; | ||
| 1742 | |||
| 1743 | typedef struct D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE | ||
| 1744 | { | ||
| 1745 | UINT IntraDistance; | ||
| 1746 | UINT InterFramePeriod; | ||
| 1747 | } D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE; | ||
| 1748 | |||
| 1749 | typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO | ||
| 1750 | { | ||
| 1751 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION TransformationType; | ||
| 1752 | INT TransformationMatrix[8]; | ||
| 1753 | BOOL InvalidAffineSet; // Valid or invalid on affine set | ||
| 1754 | } D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO; | ||
| 1755 | |||
| 1756 | typedef struct D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR | ||
| 1757 | { | ||
| 1758 | UINT ReconstructedPictureResourceIndex; | ||
| 1759 | UINT TemporalLayerIndexPlus1; | ||
| 1760 | UINT SpatialLayerIndexPlus1; | ||
| 1761 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType; | ||
| 1762 | // Only used if supported in D3D12_VIDEO_ENCODER_AV1_REFERENCE_WARPED_MOTION_TRANSFORMATION_FLAGS, ignored by driver otherwise | ||
| 1763 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_WARPED_MOTION_INFO WarpedMotionInfo; | ||
| 1764 | UINT OrderHint; | ||
| 1765 | UINT PictureIndex; | ||
| 1766 | } D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR; | ||
| 1767 | |||
| 1768 | typedef enum D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS | ||
| 1769 | { | ||
| 1770 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_NONE = 0x0, | ||
| 1771 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_ERROR_RESILIENT_MODE = 0x1, | ||
| 1772 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_CDF_UPDATE = 0x2, | ||
| 1773 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_PALETTE_ENCODING = 0x4, | ||
| 1774 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_SKIP_MODE = 0x8, | ||
| 1775 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FRAME_REFERENCE_MOTION_VECTORS = 0x10, | ||
| 1776 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_FORCE_INTEGER_MOTION_VECTORS = 0x20, | ||
| 1777 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_INTRA_BLOCK_COPY = 0x40, | ||
| 1778 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_USE_SUPER_RESOLUTION = 0x80, | ||
| 1779 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_DISABLE_FRAME_END_UPDATE_CDF = 0x100, | ||
| 1780 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_AUTO = 0x200, | ||
| 1781 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_FRAME_SEGMENTATION_CUSTOM = 0x400, | ||
| 1782 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ENABLE_WARPED_MOTION = 0x800, | ||
| 1783 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_REDUCED_TX_SET = 0x1000, | ||
| 1784 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_MOTION_MODE_SWITCHABLE = 0x2000, | ||
| 1785 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAG_ALLOW_HIGH_PRECISION_MV = 0x4000, | ||
| 1786 | |||
| 1787 | } D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS; | ||
| 1788 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS)") | ||
| 1789 | |||
| 1790 | typedef struct D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG { | ||
| 1791 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE FrameRestorationType[3]; | ||
| 1792 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_TILESIZE LoopRestorationPixelSize[3]; | ||
| 1793 | } D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG; | ||
| 1794 | |||
| 1795 | typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA { | ||
| 1796 | UINT64 EnabledFeatures; // D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_FLAGS | ||
| 1797 | // For the enabled features in EnabledFeatures, the array below | ||
| 1798 | // is indexed by D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MODE - 1 | ||
| 1799 | INT64 FeatureValue[8]; | ||
| 1800 | } D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA; | ||
| 1801 | |||
| 1802 | typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG { | ||
| 1803 | UINT64 UpdateMap; | ||
| 1804 | UINT64 TemporalUpdate; | ||
| 1805 | UINT64 UpdateData; | ||
| 1806 | UINT64 NumSegments; | ||
| 1807 | D3D12_VIDEO_ENCODER_AV1_SEGMENT_DATA SegmentsData[8]; | ||
| 1808 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG; | ||
| 1809 | |||
| 1810 | typedef struct D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP { | ||
| 1811 | UINT SegmentsMapByteSize; | ||
| 1812 | UINT8* pSegmentsMap; | ||
| 1813 | } D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP; | ||
| 1814 | |||
| 1815 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG { | ||
| 1816 | UINT64 LoopFilterLevel[2]; | ||
| 1817 | UINT64 LoopFilterLevelU; | ||
| 1818 | UINT64 LoopFilterLevelV; | ||
| 1819 | UINT64 LoopFilterSharpnessLevel; | ||
| 1820 | UINT64 LoopFilterDeltaEnabled; | ||
| 1821 | // loop_filter_delta_update = UpdateRefDelta || UpdateModeDelta | ||
| 1822 | UINT64 UpdateRefDelta; | ||
| 1823 | INT64 RefDeltas[8]; | ||
| 1824 | UINT64 UpdateModeDelta; | ||
| 1825 | INT64 ModeDeltas[2]; | ||
| 1826 | } D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG; | ||
| 1827 | |||
| 1828 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG { | ||
| 1829 | UINT64 DeltaLFPresent; | ||
| 1830 | UINT64 DeltaLFMulti; | ||
| 1831 | UINT64 DeltaLFRes; | ||
| 1832 | } D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG; | ||
| 1833 | |||
| 1834 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG { | ||
| 1835 | UINT64 BaseQIndex; | ||
| 1836 | INT64 YDCDeltaQ; | ||
| 1837 | INT64 UDCDeltaQ; | ||
| 1838 | INT64 UACDeltaQ; | ||
| 1839 | INT64 VDCDeltaQ; | ||
| 1840 | INT64 VACDeltaQ; | ||
| 1841 | UINT64 UsingQMatrix; | ||
| 1842 | UINT64 QMY; | ||
| 1843 | UINT64 QMU; | ||
| 1844 | UINT64 QMV; | ||
| 1845 | } D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG; | ||
| 1846 | |||
| 1847 | typedef struct D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG { | ||
| 1848 | UINT64 DeltaQPresent; | ||
| 1849 | UINT64 DeltaQRes; | ||
| 1850 | } D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG; | ||
| 1851 | |||
| 1852 | typedef struct D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG { | ||
| 1853 | UINT64 CdefBits; | ||
| 1854 | UINT64 CdefDampingMinus3; | ||
| 1855 | UINT64 CdefYPriStrength[8]; | ||
| 1856 | UINT64 CdefUVPriStrength[8]; | ||
| 1857 | UINT64 CdefYSecStrength[8]; | ||
| 1858 | UINT64 CdefUVSecStrength[8]; | ||
| 1859 | } D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG; | ||
| 1860 | |||
| 1861 | typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA | ||
| 1862 | { | ||
| 1863 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_FLAGS Flags; | ||
| 1864 | D3D12_VIDEO_ENCODER_AV1_FRAME_TYPE FrameType; | ||
| 1865 | D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE CompoundPredictionType; | ||
| 1866 | D3D12_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS InterpolationFilter; | ||
| 1867 | D3D12_VIDEO_ENCODER_AV1_RESTORATION_CONFIG FrameRestorationConfig; | ||
| 1868 | D3D12_VIDEO_ENCODER_AV1_TX_MODE TxMode; | ||
| 1869 | UINT SuperResDenominator; | ||
| 1870 | UINT OrderHint; | ||
| 1871 | UINT PictureIndex; | ||
| 1872 | UINT TemporalLayerIndexPlus1; | ||
| 1873 | UINT SpatialLayerIndexPlus1; | ||
| 1874 | D3D12_VIDEO_ENCODER_AV1_REFERENCE_PICTURE_DESCRIPTOR ReferenceFramesReconPictureDescriptors[8]; | ||
| 1875 | UINT ReferenceIndices[7]; | ||
| 1876 | UINT PrimaryRefFrame; | ||
| 1877 | UINT RefreshFrameFlags; | ||
| 1878 | D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter; | ||
| 1879 | D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta; | ||
| 1880 | D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization; | ||
| 1881 | D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta; | ||
| 1882 | D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF; | ||
| 1883 | UINT QPMapValuesCount; | ||
| 1884 | [annotation("_Field_size_full_(QPMapValuesCount)")] INT16* pRateControlQPMap; | ||
| 1885 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG CustomSegmentation; | ||
| 1886 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP CustomSegmentsMap; | ||
| 1887 | } D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA; | ||
| 1888 | |||
| 1889 | typedef struct D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES | ||
| 1890 | { | ||
| 1891 | UINT64 RowCount; | ||
| 1892 | UINT64 ColCount; | ||
| 1893 | UINT64 RowHeights[D3D12_VIDEO_ENCODER_AV1_MAX_TILE_ROWS]; | ||
| 1894 | UINT64 ColWidths[D3D12_VIDEO_ENCODER_AV1_MAX_TILE_COLS]; | ||
| 1895 | UINT64 ContextUpdateTileId; | ||
| 1896 | } D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES; | ||
| 1897 | |||
| 1898 | typedef struct D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES | ||
| 1899 | { | ||
| 1900 | UINT64 CompoundPredictionType; // D3D12_VIDEO_ENCODER_AV1_COMP_PREDICTION_TYPE | ||
| 1901 | D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_CONFIG LoopFilter; | ||
| 1902 | D3D12_VIDEO_ENCODER_CODEC_AV1_LOOP_FILTER_DELTA_CONFIG LoopFilterDelta; | ||
| 1903 | D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_CONFIG Quantization; | ||
| 1904 | D3D12_VIDEO_ENCODER_CODEC_AV1_QUANTIZATION_DELTA_CONFIG QuantizationDelta; | ||
| 1905 | D3D12_VIDEO_ENCODER_AV1_CDEF_CONFIG CDEF; | ||
| 1906 | D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG SegmentationConfig; | ||
| 1907 | UINT64 PrimaryRefFrame; // Aligned to 64 for use of post encode metadata with predication | ||
| 1908 | UINT64 ReferenceIndices[7]; // Aligned to 64 for use of post encode metadata with predication | ||
| 1909 | } D3D12_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES; | ||
| 1910 | |||
| 1911 | // | ||
| 1912 | // Rate control API | ||
| 1913 | // | ||
| 1914 | |||
| 1915 | typedef enum D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE | ||
| 1916 | { | ||
| 1917 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_ABSOLUTE_QP_MAP = 0, | ||
| 1918 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CQP = 1, | ||
| 1919 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_CBR = 2, | ||
| 1920 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_VBR = 3, | ||
| 1921 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE_QVBR = 4, | ||
| 1922 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE; | ||
| 1923 | |||
| 1924 | typedef enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS | ||
| 1925 | { | ||
| 1926 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_NONE = 0x0, | ||
| 1927 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_DELTA_QP = 0x1, | ||
| 1928 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_FRAME_ANALYSIS = 0x2, | ||
| 1929 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE = 0x4, | ||
| 1930 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_INITIAL_QP = 0x8, | ||
| 1931 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE = 0x10, | ||
| 1932 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES = 0x20, | ||
| 1933 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_EXTENSION1_SUPPORT = 0x40, | ||
| 1934 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QUALITY_VS_SPEED = 0x80, | ||
| 1935 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_SPATIAL_ADAPTIVE_QP = 0x100, | ||
| 1936 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS; | ||
| 1937 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS)") | ||
| 1938 | |||
| 1939 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP { | ||
| 1940 | UINT ConstantQP_FullIntracodedFrame; | ||
| 1941 | UINT ConstantQP_InterPredictedFrame_PrevRefOnly; | ||
| 1942 | UINT ConstantQP_InterPredictedFrame_BiDirectionalRef; | ||
| 1943 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP; | ||
| 1944 | |||
| 1945 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1 { | ||
| 1946 | UINT ConstantQP_FullIntracodedFrame; | ||
| 1947 | UINT ConstantQP_InterPredictedFrame_PrevRefOnly; | ||
| 1948 | UINT ConstantQP_InterPredictedFrame_BiDirectionalRef; | ||
| 1949 | UINT QualityVsSpeed; | ||
| 1950 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1; | ||
| 1951 | |||
| 1952 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR { | ||
| 1953 | UINT InitialQP; | ||
| 1954 | UINT MinQP; | ||
| 1955 | UINT MaxQP; | ||
| 1956 | UINT64 MaxFrameBitSize; | ||
| 1957 | UINT64 TargetBitRate; | ||
| 1958 | UINT64 VBVCapacity; | ||
| 1959 | UINT64 InitialVBVFullness; | ||
| 1960 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR; | ||
| 1961 | |||
| 1962 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1 { | ||
| 1963 | UINT InitialQP; | ||
| 1964 | UINT MinQP; | ||
| 1965 | UINT MaxQP; | ||
| 1966 | UINT64 MaxFrameBitSize; | ||
| 1967 | UINT64 TargetBitRate; | ||
| 1968 | UINT64 VBVCapacity; | ||
| 1969 | UINT64 InitialVBVFullness; | ||
| 1970 | UINT QualityVsSpeed; | ||
| 1971 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1; | ||
| 1972 | |||
| 1973 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR { | ||
| 1974 | UINT InitialQP; | ||
| 1975 | UINT MinQP; | ||
| 1976 | UINT MaxQP; | ||
| 1977 | UINT64 MaxFrameBitSize; | ||
| 1978 | UINT64 TargetAvgBitRate; | ||
| 1979 | UINT64 PeakBitRate; | ||
| 1980 | UINT64 VBVCapacity; | ||
| 1981 | UINT64 InitialVBVFullness; | ||
| 1982 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR; | ||
| 1983 | |||
| 1984 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1 { | ||
| 1985 | UINT InitialQP; | ||
| 1986 | UINT MinQP; | ||
| 1987 | UINT MaxQP; | ||
| 1988 | UINT64 MaxFrameBitSize; | ||
| 1989 | UINT64 TargetAvgBitRate; | ||
| 1990 | UINT64 PeakBitRate; | ||
| 1991 | UINT64 VBVCapacity; | ||
| 1992 | UINT64 InitialVBVFullness; | ||
| 1993 | UINT QualityVsSpeed; | ||
| 1994 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1; | ||
| 1995 | |||
| 1996 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR { | ||
| 1997 | UINT InitialQP; | ||
| 1998 | UINT MinQP; | ||
| 1999 | UINT MaxQP; | ||
| 2000 | UINT64 MaxFrameBitSize; | ||
| 2001 | UINT64 TargetAvgBitRate; | ||
| 2002 | UINT64 PeakBitRate; | ||
| 2003 | UINT ConstantQualityTarget; | ||
| 2004 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR; | ||
| 2005 | |||
| 2006 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1 | ||
| 2007 | { | ||
| 2008 | UINT InitialQP; | ||
| 2009 | UINT MinQP; | ||
| 2010 | UINT MaxQP; | ||
| 2011 | UINT64 MaxFrameBitSize; | ||
| 2012 | UINT64 TargetAvgBitRate; | ||
| 2013 | UINT64 PeakBitRate; | ||
| 2014 | UINT ConstantQualityTarget; | ||
| 2015 | UINT64 VBVCapacity; | ||
| 2016 | UINT64 InitialVBVFullness; | ||
| 2017 | UINT QualityVsSpeed; | ||
| 2018 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1; | ||
| 2019 | |||
| 2020 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP { | ||
| 2021 | UINT QualityVsSpeed; | ||
| 2022 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP; | ||
| 2023 | |||
| 2024 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS | ||
| 2025 | { | ||
| 2026 | UINT DataSize; | ||
| 2027 | union | ||
| 2028 | { | ||
| 2029 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP* pConfiguration_CQP; | ||
| 2030 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR* pConfiguration_CBR; | ||
| 2031 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR* pConfiguration_VBR; | ||
| 2032 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR* pConfiguration_QVBR; | ||
| 2033 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_CQP1* pConfiguration_CQP1; | ||
| 2034 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_CBR1* pConfiguration_CBR1; | ||
| 2035 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_VBR1* pConfiguration_VBR1; | ||
| 2036 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_QVBR1* pConfiguration_QVBR1; | ||
| 2037 | const D3D12_VIDEO_ENCODER_RATE_CONTROL_ABSOLUTE_QP_MAP* pConfiguration_AbsoluteQPMap; | ||
| 2038 | }; | ||
| 2039 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS; | ||
| 2040 | |||
| 2041 | typedef struct D3D12_VIDEO_ENCODER_RATE_CONTROL { | ||
| 2042 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE Mode; | ||
| 2043 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAGS Flags; | ||
| 2044 | D3D12_VIDEO_ENCODER_RATE_CONTROL_CONFIGURATION_PARAMS ConfigParams; | ||
| 2045 | DXGI_RATIONAL TargetFrameRate; | ||
| 2046 | } D3D12_VIDEO_ENCODER_RATE_CONTROL; | ||
| 2047 | |||
| 2048 | // | ||
| 2049 | // Video Encoder support API | ||
| 2050 | // | ||
| 2051 | |||
| 2052 | typedef enum D3D12_VIDEO_ENCODER_CODEC | ||
| 2053 | { | ||
| 2054 | D3D12_VIDEO_ENCODER_CODEC_H264 = 0, | ||
| 2055 | D3D12_VIDEO_ENCODER_CODEC_HEVC = 1, | ||
| 2056 | D3D12_VIDEO_ENCODER_CODEC_AV1 = 2, | ||
| 2057 | } D3D12_VIDEO_ENCODER_CODEC; | ||
| 2058 | |||
| 2059 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC | ||
| 2060 | { | ||
| 2061 | UINT NodeIndex; // input | ||
| 2062 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2063 | BOOL IsSupported; // output | ||
| 2064 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC; | ||
| 2065 | |||
| 2066 | typedef enum D3D12_VIDEO_ENCODER_PROFILE_H264 | ||
| 2067 | { | ||
| 2068 | D3D12_VIDEO_ENCODER_PROFILE_H264_MAIN = 0, | ||
| 2069 | D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH = 1, | ||
| 2070 | D3D12_VIDEO_ENCODER_PROFILE_H264_HIGH_10 = 2, | ||
| 2071 | } D3D12_VIDEO_ENCODER_PROFILE_H264; | ||
| 2072 | |||
| 2073 | typedef enum D3D12_VIDEO_ENCODER_PROFILE_HEVC | ||
| 2074 | { | ||
| 2075 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN = 0, | ||
| 2076 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10 = 1, | ||
| 2077 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12 = 2, | ||
| 2078 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_422 = 3, | ||
| 2079 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_422 = 4, | ||
| 2080 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN_444 = 5, | ||
| 2081 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN10_444 = 6, | ||
| 2082 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN12_444 = 7, | ||
| 2083 | D3D12_VIDEO_ENCODER_PROFILE_HEVC_MAIN16_444 = 8, | ||
| 2084 | } D3D12_VIDEO_ENCODER_PROFILE_HEVC; | ||
| 2085 | |||
| 2086 | typedef struct D3D12_VIDEO_ENCODER_PROFILE_DESC | ||
| 2087 | { | ||
| 2088 | UINT DataSize; | ||
| 2089 | union | ||
| 2090 | { | ||
| 2091 | D3D12_VIDEO_ENCODER_PROFILE_H264* pH264Profile; | ||
| 2092 | D3D12_VIDEO_ENCODER_PROFILE_HEVC* pHEVCProfile; | ||
| 2093 | D3D12_VIDEO_ENCODER_AV1_PROFILE* pAV1Profile; | ||
| 2094 | }; | ||
| 2095 | } D3D12_VIDEO_ENCODER_PROFILE_DESC; | ||
| 2096 | |||
| 2097 | typedef enum D3D12_VIDEO_ENCODER_LEVELS_H264 | ||
| 2098 | { | ||
| 2099 | D3D12_VIDEO_ENCODER_LEVELS_H264_1 = 0, | ||
| 2100 | D3D12_VIDEO_ENCODER_LEVELS_H264_1b = 1, | ||
| 2101 | D3D12_VIDEO_ENCODER_LEVELS_H264_11 = 2, | ||
| 2102 | D3D12_VIDEO_ENCODER_LEVELS_H264_12 = 3, | ||
| 2103 | D3D12_VIDEO_ENCODER_LEVELS_H264_13 = 4, | ||
| 2104 | D3D12_VIDEO_ENCODER_LEVELS_H264_2 = 5, | ||
| 2105 | D3D12_VIDEO_ENCODER_LEVELS_H264_21 = 6, | ||
| 2106 | D3D12_VIDEO_ENCODER_LEVELS_H264_22 = 7, | ||
| 2107 | D3D12_VIDEO_ENCODER_LEVELS_H264_3 = 8, | ||
| 2108 | D3D12_VIDEO_ENCODER_LEVELS_H264_31 = 9, | ||
| 2109 | D3D12_VIDEO_ENCODER_LEVELS_H264_32 = 10, | ||
| 2110 | D3D12_VIDEO_ENCODER_LEVELS_H264_4 = 11, | ||
| 2111 | D3D12_VIDEO_ENCODER_LEVELS_H264_41 = 12, | ||
| 2112 | D3D12_VIDEO_ENCODER_LEVELS_H264_42 = 13, | ||
| 2113 | D3D12_VIDEO_ENCODER_LEVELS_H264_5 = 14, | ||
| 2114 | D3D12_VIDEO_ENCODER_LEVELS_H264_51 = 15, | ||
| 2115 | D3D12_VIDEO_ENCODER_LEVELS_H264_52 = 16, | ||
| 2116 | D3D12_VIDEO_ENCODER_LEVELS_H264_6 = 17, | ||
| 2117 | D3D12_VIDEO_ENCODER_LEVELS_H264_61 = 18, | ||
| 2118 | D3D12_VIDEO_ENCODER_LEVELS_H264_62 = 19, | ||
| 2119 | } D3D12_VIDEO_ENCODER_LEVELS_H264; | ||
| 2120 | |||
| 2121 | typedef enum D3D12_VIDEO_ENCODER_TIER_HEVC | ||
| 2122 | { | ||
| 2123 | D3D12_VIDEO_ENCODER_TIER_HEVC_MAIN = 0, | ||
| 2124 | D3D12_VIDEO_ENCODER_TIER_HEVC_HIGH = 1, | ||
| 2125 | } D3D12_VIDEO_ENCODER_TIER_HEVC; | ||
| 2126 | |||
| 2127 | typedef enum D3D12_VIDEO_ENCODER_LEVELS_HEVC | ||
| 2128 | { | ||
| 2129 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_1 = 0, | ||
| 2130 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_2 = 1, | ||
| 2131 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_21 = 2, | ||
| 2132 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_3 = 3, | ||
| 2133 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_31 = 4, | ||
| 2134 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_4 = 5, | ||
| 2135 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_41 = 6, | ||
| 2136 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_5 = 7, | ||
| 2137 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_51 = 8, | ||
| 2138 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_52 = 9, | ||
| 2139 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_6 = 10, | ||
| 2140 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_61 = 11, | ||
| 2141 | D3D12_VIDEO_ENCODER_LEVELS_HEVC_62 = 12, | ||
| 2142 | } D3D12_VIDEO_ENCODER_LEVELS_HEVC; | ||
| 2143 | |||
| 2144 | typedef struct D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC | ||
| 2145 | { | ||
| 2146 | D3D12_VIDEO_ENCODER_LEVELS_HEVC Level; | ||
| 2147 | D3D12_VIDEO_ENCODER_TIER_HEVC Tier; | ||
| 2148 | } D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC; | ||
| 2149 | |||
| 2150 | typedef struct D3D12_VIDEO_ENCODER_LEVEL_SETTING | ||
| 2151 | { | ||
| 2152 | UINT DataSize; | ||
| 2153 | union | ||
| 2154 | { | ||
| 2155 | D3D12_VIDEO_ENCODER_LEVELS_H264* pH264LevelSetting; | ||
| 2156 | D3D12_VIDEO_ENCODER_LEVEL_TIER_CONSTRAINTS_HEVC* pHEVCLevelSetting; | ||
| 2157 | D3D12_VIDEO_ENCODER_AV1_LEVEL_TIER_CONSTRAINTS* pAV1LevelSetting; | ||
| 2158 | }; | ||
| 2159 | } D3D12_VIDEO_ENCODER_LEVEL_SETTING; | ||
| 2160 | |||
| 2161 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL | ||
| 2162 | { | ||
| 2163 | UINT NodeIndex; // input | ||
| 2164 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2165 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input | ||
| 2166 | BOOL IsSupported; // output | ||
| 2167 | D3D12_VIDEO_ENCODER_LEVEL_SETTING MinSupportedLevel; // output | ||
| 2168 | D3D12_VIDEO_ENCODER_LEVEL_SETTING MaxSupportedLevel; // output | ||
| 2169 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_PROFILE_LEVEL; | ||
| 2170 | |||
| 2171 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC | ||
| 2172 | { | ||
| 2173 | UINT Width; | ||
| 2174 | UINT Height; | ||
| 2175 | } D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC; | ||
| 2176 | |||
| 2177 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC | ||
| 2178 | { | ||
| 2179 | UINT WidthRatio; | ||
| 2180 | UINT HeightRatio; | ||
| 2181 | } D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC; | ||
| 2182 | |||
| 2183 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT | ||
| 2184 | { | ||
| 2185 | UINT NodeIndex; // input | ||
| 2186 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2187 | UINT ResolutionRatiosCount; // output | ||
| 2188 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION_RATIOS_COUNT; | ||
| 2189 | |||
| 2190 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION | ||
| 2191 | { | ||
| 2192 | UINT NodeIndex; // input | ||
| 2193 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2194 | UINT ResolutionRatiosCount; // input | ||
| 2195 | BOOL IsSupported; // output | ||
| 2196 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MinResolutionSupported; // output | ||
| 2197 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC MaxResolutionSupported; // output | ||
| 2198 | UINT ResolutionWidthMultipleRequirement; // output | ||
| 2199 | UINT ResolutionHeightMultipleRequirement; // output | ||
| 2200 | [annotation("_Field_size_full_(ResolutionRatiosCount)")] D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_RATIO_DESC* pResolutionRatios; | ||
| 2201 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_OUTPUT_RESOLUTION; | ||
| 2202 | |||
| 2203 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT | ||
| 2204 | { | ||
| 2205 | UINT NodeIndex; // input | ||
| 2206 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2207 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input | ||
| 2208 | DXGI_FORMAT Format; // input | ||
| 2209 | BOOL IsSupported; // output | ||
| 2210 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_INPUT_FORMAT; | ||
| 2211 | |||
| 2212 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE | ||
| 2213 | { | ||
| 2214 | UINT NodeIndex; // input | ||
| 2215 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2216 | D3D12_VIDEO_ENCODER_RATE_CONTROL_MODE RateControlMode; // input | ||
| 2217 | BOOL IsSupported; // output | ||
| 2218 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_MODE; | ||
| 2219 | |||
| 2220 | typedef enum D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE | ||
| 2221 | { | ||
| 2222 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE = 0, | ||
| 2223 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_ROW_BASED = 1, | ||
| 2224 | } D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE; | ||
| 2225 | |||
| 2226 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE { | ||
| 2227 | UINT NodeIndex; // input | ||
| 2228 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2229 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input | ||
| 2230 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; // input | ||
| 2231 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefreshMode; // input | ||
| 2232 | BOOL IsSupported; // output | ||
| 2233 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_INTRA_REFRESH_MODE; | ||
| 2234 | |||
| 2235 | typedef enum D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE | ||
| 2236 | { | ||
| 2237 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_FULL_FRAME = 0, | ||
| 2238 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION = 1, | ||
| 2239 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED = 2, | ||
| 2240 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_ROWS_PER_SUBREGION = 3, | ||
| 2241 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME = 4, | ||
| 2242 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_GRID_PARTITION = 5, | ||
| 2243 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_CONFIGURABLE_GRID_PARTITION = 6, | ||
| 2244 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_AUTO = 7, | ||
| 2245 | } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE; | ||
| 2246 | |||
| 2247 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE | ||
| 2248 | { | ||
| 2249 | UINT NodeIndex; // input | ||
| 2250 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2251 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input | ||
| 2252 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; // input | ||
| 2253 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode; // input | ||
| 2254 | BOOL IsSupported; // output | ||
| 2255 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE; | ||
| 2256 | |||
| 2257 | typedef enum D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS | ||
| 2258 | { | ||
| 2259 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NONE = 0x0, | ||
| 2260 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_NOT_SPECIFIED = 0x1, | ||
| 2261 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_CODEC_CONSTRAINT = 0x2, | ||
| 2262 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_HARDWARE_CONSTRAINT = 0x4, | ||
| 2263 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_ROWS_COUNT = 0x8, | ||
| 2264 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_COLS_COUNT = 0x10, | ||
| 2265 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_WIDTH = 0x20, | ||
| 2266 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_AREA = 0x40, | ||
| 2267 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAG_TOTAL_TILES = 0x80, | ||
| 2268 | |||
| 2269 | } D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS; | ||
| 2270 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS)") | ||
| 2271 | |||
| 2272 | typedef struct D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT | ||
| 2273 | { | ||
| 2274 | BOOL Use128SuperBlocks; | ||
| 2275 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES TilesConfiguration; | ||
| 2276 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_VALIDATION_FLAGS ValidationFlags; | ||
| 2277 | UINT MinTileRows; | ||
| 2278 | UINT MaxTileRows; | ||
| 2279 | UINT MinTileCols; | ||
| 2280 | UINT MaxTileCols; | ||
| 2281 | UINT MinTileWidth; | ||
| 2282 | UINT MaxTileWidth; | ||
| 2283 | UINT MinTileArea; | ||
| 2284 | UINT MaxTileArea; | ||
| 2285 | UINT TileSizeBytesMinus1; | ||
| 2286 | } D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT; | ||
| 2287 | |||
| 2288 | typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT { | ||
| 2289 | UINT DataSize; | ||
| 2290 | union | ||
| 2291 | { | ||
| 2292 | D3D12_VIDEO_ENCODER_AV1_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT* pAV1Support; | ||
| 2293 | }; | ||
| 2294 | } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT; | ||
| 2295 | |||
| 2296 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG | ||
| 2297 | { | ||
| 2298 | UINT NodeIndex; // input | ||
| 2299 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2300 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input | ||
| 2301 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; // input | ||
| 2302 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionMode; // input | ||
| 2303 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC FrameResolution; // input | ||
| 2304 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG_SUPPORT CodecSupport; // input/output | ||
| 2305 | BOOL IsSupported; // output | ||
| 2306 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_CONFIG; | ||
| 2307 | |||
| 2308 | typedef enum D3D12_VIDEO_ENCODER_HEAP_FLAGS | ||
| 2309 | { | ||
| 2310 | D3D12_VIDEO_ENCODER_HEAP_FLAG_NONE = 0x0, | ||
| 2311 | D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS = 0x1, | ||
| 2312 | D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_SUBREGION_NOTIFICATION_SINGLE_BUFFER = 0x2, | ||
| 2313 | D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_DIRTY_REGIONS = 0x4, | ||
| 2314 | D3D12_VIDEO_ENCODER_HEAP_FLAG_ALLOW_RATE_CONTROL_FRAME_ANALYSIS = 0x8, | ||
| 2315 | } D3D12_VIDEO_ENCODER_HEAP_FLAGS; | ||
| 2316 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_HEAP_FLAGS)") | ||
| 2317 | |||
| 2318 | typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC | ||
| 2319 | { | ||
| 2320 | UINT NodeMask; | ||
| 2321 | D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags; | ||
| 2322 | D3D12_VIDEO_ENCODER_CODEC EncodeCodec; | ||
| 2323 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; | ||
| 2324 | D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel; | ||
| 2325 | UINT ResolutionsListCount; | ||
| 2326 | [annotation("_Field_size_full_(ResolutionsListCount)")] const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC* pResolutionList; | ||
| 2327 | } D3D12_VIDEO_ENCODER_HEAP_DESC; | ||
| 2328 | |||
| 2329 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE { | ||
| 2330 | D3D12_VIDEO_ENCODER_HEAP_DESC HeapDesc; // input | ||
| 2331 | BOOL IsSupported; // output | ||
| 2332 | UINT64 MemoryPoolL0Size; // output | ||
| 2333 | UINT64 MemoryPoolL1Size; // output | ||
| 2334 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE; | ||
| 2335 | |||
| 2336 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS | ||
| 2337 | { | ||
| 2338 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NONE = 0x0, | ||
| 2339 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CABAC_ENCODING_SUPPORT = 0x1, | ||
| 2340 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2, | ||
| 2341 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x4, | ||
| 2342 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_ADAPTIVE_8x8_TRANSFORM_ENCODING_SUPPORT = 0x8, | ||
| 2343 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_SPATIAL_ENCODING_SUPPORT = 0x10, | ||
| 2344 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_DIRECT_TEMPORAL_ENCODING_SUPPORT = 0x20, | ||
| 2345 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x40, | ||
| 2346 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x80, | ||
| 2347 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS; | ||
| 2348 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS)") | ||
| 2349 | |||
| 2350 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES { | ||
| 2351 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_0_ALL_LUMA_CHROMA_SLICE_BLOCK_EDGES_ALWAYS_FILTERED = 0, | ||
| 2352 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_1_DISABLE_ALL_SLICE_BLOCK_EDGES = 1, | ||
| 2353 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_2_DISABLE_SLICE_BOUNDARIES_BLOCKS = 2, | ||
| 2354 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_3_USE_TWO_STAGE_DEBLOCKING = 3, | ||
| 2355 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_4_DISABLE_CHROMA_BLOCK_EDGES = 4, | ||
| 2356 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_5_DISABLE_CHROMA_BLOCK_EDGES_AND_LUMA_BOUNDARIES = 5, | ||
| 2357 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_6_DISABLE_CHROMA_BLOCK_EDGES_AND_USE_LUMA_TWO_STAGE_DEBLOCKING = 6, | ||
| 2358 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES; | ||
| 2359 | |||
| 2360 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS { | ||
| 2361 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAG_NONE = 0x0, | ||
| 2362 | 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), | ||
| 2363 | 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), | ||
| 2364 | 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), | ||
| 2365 | 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), | ||
| 2366 | 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), | ||
| 2367 | 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), | ||
| 2368 | 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), | ||
| 2369 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS; | ||
| 2370 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS)") | ||
| 2371 | |||
| 2372 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264 { | ||
| 2373 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264_FLAGS SupportFlags; | ||
| 2374 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODE_FLAGS DisableDeblockingFilterSupportedModes; | ||
| 2375 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264; | ||
| 2376 | |||
| 2377 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS | ||
| 2378 | { | ||
| 2379 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NONE = 0x0, | ||
| 2380 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_BFRAME_LTR_COMBINED_SUPPORT = 0x1, | ||
| 2381 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SLICE_CONSTRAINED_ENCODING_SUPPORT = 0x2, | ||
| 2382 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CONSTRAINED_INTRAPREDICTION_SUPPORT = 0x4, | ||
| 2383 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_SAO_FILTER_SUPPORT = 0x8, | ||
| 2384 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_SUPPORT = 0x10, | ||
| 2385 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_ASYMETRIC_MOTION_PARTITION_REQUIRED = 0x20, | ||
| 2386 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_SUPPORT = 0x40, | ||
| 2387 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_DISABLING_LOOP_FILTER_ACROSS_SLICES_SUPPORT = 0x80, | ||
| 2388 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_P_FRAMES_IMPLEMENTED_AS_LOW_DELAY_B_FRAMES = 0x100, | ||
| 2389 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE_SUPPORT = 0x200, | ||
| 2390 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_SUPPORT = 0x400, | ||
| 2391 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_ROTATION_ENABLED_REQUIRED = 0x800, | ||
| 2392 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_SUPPORT = 0x1000, | ||
| 2393 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT_ENABLED_REQUIRED = 0x2000, | ||
| 2394 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_SUPPORT = 0x4000, | ||
| 2395 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_IMPLICIT_RDPCM_ENABLED_REQUIRED = 0x8000, | ||
| 2396 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_SUPPORT = 0x10000, | ||
| 2397 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXPLICIT_RDPCM_ENABLED_REQUIRED = 0x20000, | ||
| 2398 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_SUPPORT = 0x40000, | ||
| 2399 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING_REQUIRED = 0x80000, | ||
| 2400 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_SUPPORT = 0x100000, | ||
| 2401 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_INTRA_SMOOTHING_DISABLED_REQUIRED = 0x200000, | ||
| 2402 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_SUPPORT = 0x400000, | ||
| 2403 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_HIGH_PRECISION_OFFSETS_ENABLED_REQUIRED = 0x800000, | ||
| 2404 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_SUPPORT = 0x1000000, | ||
| 2405 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION_ENABLED_REQUIRED = 0x2000000, | ||
| 2406 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_SUPPORT = 0x4000000, | ||
| 2407 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT_ENABLED_REQUIRED = 0x8000000, | ||
| 2408 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_SUPPORT = 0x10000000, | ||
| 2409 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CROSS_COMPONENT_PREDICTION_ENABLED_FLAG_REQUIRED = 0x20000000, | ||
| 2410 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_SUPPORT = 0x40000000, | ||
| 2411 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG_CHROMA_QP_OFFSET_LIST_ENABLED_FLAG_REQUIRED = 0x80000000, // 2^31 - 32 bit integer enum type | ||
| 2412 | |||
| 2413 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS; | ||
| 2414 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS)") | ||
| 2415 | |||
| 2416 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE { | ||
| 2417 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_8x8 = 0, | ||
| 2418 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_16x16 = 1, | ||
| 2419 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_32x32 = 2, | ||
| 2420 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE_64x64 = 3, | ||
| 2421 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE; | ||
| 2422 | |||
| 2423 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE { | ||
| 2424 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_4x4 = 0, | ||
| 2425 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_8x8 = 1, | ||
| 2426 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_16x16 = 2, | ||
| 2427 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE_32x32 = 3, | ||
| 2428 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE; | ||
| 2429 | |||
| 2430 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC { | ||
| 2431 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags; | ||
| 2432 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; | ||
| 2433 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; | ||
| 2434 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; | ||
| 2435 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; | ||
| 2436 | UCHAR max_transform_hierarchy_depth_inter; | ||
| 2437 | UCHAR max_transform_hierarchy_depth_intra; | ||
| 2438 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC; | ||
| 2439 | |||
| 2440 | |||
| 2441 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1 | ||
| 2442 | { | ||
| 2443 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_NONE = 0x0, | ||
| 2444 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_SUPPORT = 0x1, | ||
| 2445 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAG1_SEPARATE_COLOUR_PLANE_REQUIRED = 0x2, | ||
| 2446 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1; | ||
| 2447 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1)") | ||
| 2448 | |||
| 2449 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1 { | ||
| 2450 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS SupportFlags; | ||
| 2451 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; | ||
| 2452 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; | ||
| 2453 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; | ||
| 2454 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; | ||
| 2455 | UCHAR max_transform_hierarchy_depth_inter; | ||
| 2456 | UCHAR max_transform_hierarchy_depth_intra; | ||
| 2457 | UINT allowed_diff_cu_chroma_qp_offset_depth_values; | ||
| 2458 | UINT allowed_log2_sao_offset_scale_luma_values; | ||
| 2459 | UINT allowed_log2_sao_offset_scale_chroma_values; | ||
| 2460 | UINT allowed_log2_max_transform_skip_block_size_minus2_values; | ||
| 2461 | UINT allowed_chroma_qp_offset_list_len_minus1_values; | ||
| 2462 | UINT allowed_cb_qp_offset_list_values[6]; | ||
| 2463 | UINT allowed_cr_qp_offset_list_values[6]; | ||
| 2464 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC_FLAGS1 SupportFlags1; | ||
| 2465 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1; | ||
| 2466 | |||
| 2467 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT { | ||
| 2468 | UINT DataSize; | ||
| 2469 | union | ||
| 2470 | { | ||
| 2471 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_H264* pH264Support; | ||
| 2472 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC* pHEVCSupport; | ||
| 2473 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_HEVC1* pHEVCSupport1; | ||
| 2474 | D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT* pAV1Support; | ||
| 2475 | }; | ||
| 2476 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT; | ||
| 2477 | |||
| 2478 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT { | ||
| 2479 | UINT NodeIndex; // input | ||
| 2480 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2481 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input | ||
| 2482 | BOOL IsSupported; // output | ||
| 2483 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT CodecSupportLimits; // input/output | ||
| 2484 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT; | ||
| 2485 | |||
| 2486 | typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264 { | ||
| 2487 | UINT MaxL0ReferencesForP; | ||
| 2488 | UINT MaxL0ReferencesForB; | ||
| 2489 | UINT MaxL1ReferencesForB; | ||
| 2490 | UINT MaxLongTermReferences; | ||
| 2491 | UINT MaxDPBCapacity; | ||
| 2492 | } D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264; | ||
| 2493 | |||
| 2494 | typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC { | ||
| 2495 | UINT MaxL0ReferencesForP; | ||
| 2496 | UINT MaxL0ReferencesForB; | ||
| 2497 | UINT MaxL1ReferencesForB; | ||
| 2498 | UINT MaxLongTermReferences; | ||
| 2499 | UINT MaxDPBCapacity; | ||
| 2500 | } D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC; | ||
| 2501 | |||
| 2502 | typedef struct D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT { | ||
| 2503 | UINT DataSize; | ||
| 2504 | union | ||
| 2505 | { | ||
| 2506 | D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264* pH264Support; | ||
| 2507 | D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_HEVC* pHEVCSupport; | ||
| 2508 | D3D12_VIDEO_ENCODER_CODEC_AV1_PICTURE_CONTROL_SUPPORT* pAV1Support; | ||
| 2509 | }; | ||
| 2510 | } D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT; | ||
| 2511 | |||
| 2512 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT { | ||
| 2513 | UINT NodeIndex; // input | ||
| 2514 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2515 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input | ||
| 2516 | BOOL IsSupported; // output | ||
| 2517 | D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT PictureSupport; // output | ||
| 2518 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT; | ||
| 2519 | |||
| 2520 | typedef enum D3D12_VIDEO_ENCODER_SUPPORT_FLAGS | ||
| 2521 | { | ||
| 2522 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_NONE = 0x0, | ||
| 2523 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK = 0x1, | ||
| 2524 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_RECONFIGURATION_AVAILABLE = 0x2, | ||
| 2525 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RESOLUTION_RECONFIGURATION_AVAILABLE = 0x4, | ||
| 2526 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_VBV_SIZE_CONFIG_AVAILABLE = 0x8, | ||
| 2527 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_FRAME_ANALYSIS_AVAILABLE = 0x10, | ||
| 2528 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RECONSTRUCTED_FRAMES_REQUIRE_TEXTURE_ARRAYS = 0x20, | ||
| 2529 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_DELTA_QP_AVAILABLE = 0x40, | ||
| 2530 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE = 0x80, | ||
| 2531 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_ADJUSTABLE_QP_RANGE_AVAILABLE = 0x100, | ||
| 2532 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_INITIAL_QP_AVAILABLE = 0x200, | ||
| 2533 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_MAX_FRAME_SIZE_AVAILABLE = 0x400, | ||
| 2534 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE = 0x800, | ||
| 2535 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_MOTION_ESTIMATION_PRECISION_MODE_LIMIT_AVAILABLE = 0x1000, | ||
| 2536 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_EXTENSION1_SUPPORT = 0x2000, | ||
| 2537 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_QUALITY_VS_SPEED_AVAILABLE = 0x4000, | ||
| 2538 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_READABLE_RECONSTRUCTED_PICTURE_LAYOUT_AVAILABLE = 0x8000, | ||
| 2539 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_QP_MAP_METADATA_AVAILABLE = 0x10000, | ||
| 2540 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_SATD_MAP_METADATA_AVAILABLE = 0x20000, | ||
| 2541 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_PER_BLOCK_RC_BIT_ALLOCATION_MAP_METADATA_AVAILABLE = 0x40000, | ||
| 2542 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_ARRAY_OF_BUFFERS_AVAILABLE = 0x80000, | ||
| 2543 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGION_NOTIFICATION_SINGLE_BUFFER_AVAILABLE = 0x100000, | ||
| 2544 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_FRAME_PSNR_METADATA_AVAILABLE = 0x200000, | ||
| 2545 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_SUBREGIONS_PSNR_METADATA_AVAILABLE = 0x400000, | ||
| 2546 | D3D12_VIDEO_ENCODER_SUPPORT_FLAG_RATE_CONTROL_SPATIAL_ADAPTIVE_QP_AVAILABLE = 0x800000, | ||
| 2547 | } D3D12_VIDEO_ENCODER_SUPPORT_FLAGS; | ||
| 2548 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SUPPORT_FLAGS)") | ||
| 2549 | |||
| 2550 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS | ||
| 2551 | { | ||
| 2552 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_NONE = 0x0, | ||
| 2553 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x1, | ||
| 2554 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_USE_ADAPTIVE_8x8_TRANSFORM = 0x2, | ||
| 2555 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ENABLE_CABAC_ENCODING = 0x4, | ||
| 2556 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x8, | ||
| 2557 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS; | ||
| 2558 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS)") | ||
| 2559 | |||
| 2560 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES { | ||
| 2561 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_DISABLED = 0, | ||
| 2562 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_TEMPORAL = 1, | ||
| 2563 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES_SPATIAL = 2, | ||
| 2564 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES; | ||
| 2565 | |||
| 2566 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264 | ||
| 2567 | { | ||
| 2568 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_FLAGS ConfigurationFlags; | ||
| 2569 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_DIRECT_MODES DirectModeConfig; | ||
| 2570 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264_SLICES_DEBLOCKING_MODES DisableDeblockingFilterConfig; | ||
| 2571 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264; | ||
| 2572 | |||
| 2573 | typedef enum D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS | ||
| 2574 | { | ||
| 2575 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_NONE = 0x0, | ||
| 2576 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_DISABLE_LOOP_FILTER_ACROSS_SLICES = 0x1, | ||
| 2577 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ALLOW_REQUEST_INTRA_CONSTRAINED_SLICES = 0x2, | ||
| 2578 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_SAO_FILTER = 0x4, | ||
| 2579 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_LONG_TERM_REFERENCES = 0x8, | ||
| 2580 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_ASYMETRIC_MOTION_PARTITION = 0x10, | ||
| 2581 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_ENABLE_TRANSFORM_SKIPPING = 0x20, | ||
| 2582 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_USE_CONSTRAINED_INTRAPREDICTION = 0x40, | ||
| 2583 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_ROTATION = 0x80, | ||
| 2584 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_TRANSFORM_SKIP_CONTEXT = 0x100, | ||
| 2585 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_IMPLICIT_RDPCM = 0x200, | ||
| 2586 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXPLICIT_RDPCM = 0x400, | ||
| 2587 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_EXTENDED_PRECISION_PROCESSING = 0x800, | ||
| 2588 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_INTRA_SMOOTHING_DISABLED = 0x1000, | ||
| 2589 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_HIGH_PRECISION_OFFSETS = 0x2000, | ||
| 2590 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_PERSISTENT_RICE_ADAPTATION = 0x4000, | ||
| 2591 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_CABAC_BYPASS_ALIGNMENT = 0x8000, | ||
| 2592 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAG_SEPARATE_COLOUR_PLANE = 0x10000, | ||
| 2593 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS; | ||
| 2594 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS)") | ||
| 2595 | |||
| 2596 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC { | ||
| 2597 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_FLAGS ConfigurationFlags; | ||
| 2598 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MinLumaCodingUnitSize; | ||
| 2599 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_CUSIZE MaxLumaCodingUnitSize; | ||
| 2600 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MinLumaTransformUnitSize; | ||
| 2601 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC_TUSIZE MaxLumaTransformUnitSize; | ||
| 2602 | UCHAR max_transform_hierarchy_depth_inter; | ||
| 2603 | UCHAR max_transform_hierarchy_depth_intra; | ||
| 2604 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC; | ||
| 2605 | |||
| 2606 | typedef struct D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION | ||
| 2607 | { | ||
| 2608 | UINT DataSize; | ||
| 2609 | union | ||
| 2610 | { | ||
| 2611 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_H264* pH264Config; | ||
| 2612 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION_HEVC* pHEVCConfig; | ||
| 2613 | D3D12_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION* pAV1Config; | ||
| 2614 | }; | ||
| 2615 | } D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION; | ||
| 2616 | |||
| 2617 | typedef struct D3D12_VIDEO_ENCODER_INTRA_REFRESH | ||
| 2618 | { | ||
| 2619 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE Mode; | ||
| 2620 | UINT IntraRefreshDuration; | ||
| 2621 | } D3D12_VIDEO_ENCODER_INTRA_REFRESH; | ||
| 2622 | |||
| 2623 | |||
| 2624 | typedef enum D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE | ||
| 2625 | { | ||
| 2626 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_MAXIMUM = 0, | ||
| 2627 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_FULL_PIXEL = 1, | ||
| 2628 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_HALF_PIXEL = 2, | ||
| 2629 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_QUARTER_PIXEL = 3, | ||
| 2630 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE_EIGHTH_PIXEL = 4, | ||
| 2631 | } D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE; | ||
| 2632 | |||
| 2633 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS | ||
| 2634 | { | ||
| 2635 | UINT MaxSubregionsNumber; | ||
| 2636 | UINT MaxIntraRefreshFrameDuration; | ||
| 2637 | UINT SubregionBlockPixelsSize; | ||
| 2638 | UINT QPMapRegionPixelsSize; | ||
| 2639 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS; | ||
| 2640 | |||
| 2641 | typedef enum D3D12_VIDEO_ENCODER_VALIDATION_FLAGS | ||
| 2642 | { | ||
| 2643 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_NONE = 0x0, | ||
| 2644 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_NOT_SUPPORTED = 0x1, | ||
| 2645 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INPUT_FORMAT_NOT_SUPPORTED = 0x8, | ||
| 2646 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_CODEC_CONFIGURATION_NOT_SUPPORTED = 0x10, | ||
| 2647 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_MODE_NOT_SUPPORTED = 0x20, | ||
| 2648 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RATE_CONTROL_CONFIGURATION_NOT_SUPPORTED = 0x40, | ||
| 2649 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_INTRA_REFRESH_MODE_NOT_SUPPORTED = 0x80, | ||
| 2650 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_MODE_NOT_SUPPORTED = 0x100, | ||
| 2651 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_RESOLUTION_NOT_SUPPORTED_IN_LIST = 0x200, | ||
| 2652 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_GOP_STRUCTURE_NOT_SUPPORTED = 0x800, | ||
| 2653 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_SUBREGION_LAYOUT_DATA_NOT_SUPPORTED = 0x1000, | ||
| 2654 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_QPMAP_NOT_SUPPORTED = 0x2000, | ||
| 2655 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_DIRTY_REGIONS_NOT_SUPPORTED = 0x4000, | ||
| 2656 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_MOTION_SEARCH_NOT_SUPPORTED = 0x8000, | ||
| 2657 | D3D12_VIDEO_ENCODER_VALIDATION_FLAG_FRAME_ANALYSIS_NOT_SUPPORTED = 0x10000, | ||
| 2658 | } D3D12_VIDEO_ENCODER_VALIDATION_FLAGS; | ||
| 2659 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_VALIDATION_FLAGS)") | ||
| 2660 | |||
| 2661 | typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264 | ||
| 2662 | { | ||
| 2663 | UINT GOPLength; | ||
| 2664 | UINT PPicturePeriod; | ||
| 2665 | UCHAR pic_order_cnt_type; | ||
| 2666 | UCHAR log2_max_frame_num_minus4; | ||
| 2667 | UCHAR log2_max_pic_order_cnt_lsb_minus4; | ||
| 2668 | } D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264; | ||
| 2669 | |||
| 2670 | typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC | ||
| 2671 | { | ||
| 2672 | UINT GOPLength; | ||
| 2673 | UINT PPicturePeriod; | ||
| 2674 | UCHAR log2_max_pic_order_cnt_lsb_minus4; | ||
| 2675 | } D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC; | ||
| 2676 | |||
| 2677 | typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE | ||
| 2678 | { | ||
| 2679 | UINT DataSize; | ||
| 2680 | union | ||
| 2681 | { | ||
| 2682 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_H264* pH264GroupOfPictures; | ||
| 2683 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_HEVC* pHEVCGroupOfPictures; | ||
| 2684 | D3D12_VIDEO_ENCODER_AV1_SEQUENCE_STRUCTURE* pAV1SequenceStructure; | ||
| 2685 | }; | ||
| 2686 | } D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE; | ||
| 2687 | |||
| 2688 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT | ||
| 2689 | { | ||
| 2690 | // input | ||
| 2691 | UINT NodeIndex; | ||
| 2692 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 2693 | DXGI_FORMAT InputFormat; | ||
| 2694 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 2695 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; | ||
| 2696 | D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; | ||
| 2697 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh; | ||
| 2698 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 2699 | UINT ResolutionsListCount; | ||
| 2700 | const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC* pResolutionList; | ||
| 2701 | UINT MaxReferenceFramesInDPB; | ||
| 2702 | |||
| 2703 | // single value output | ||
| 2704 | D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; | ||
| 2705 | D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; | ||
| 2706 | D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; | ||
| 2707 | D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; // assuming max resolution from input list | ||
| 2708 | |||
| 2709 | // resolution dependent output | ||
| 2710 | [annotation("_Field_size_full_(ResolutionsListCount)")] D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS* pResolutionDependentSupport; | ||
| 2711 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT; | ||
| 2712 | |||
| 2713 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES | ||
| 2714 | { | ||
| 2715 | // Mutually exclusive options according to selected mode | ||
| 2716 | union | ||
| 2717 | { | ||
| 2718 | // Use with mode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_BYTES_PER_SUBREGION | ||
| 2719 | UINT MaxBytesPerSlice; | ||
| 2720 | |||
| 2721 | // Use with mode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_SQUARE_UNITS_PER_SUBREGION_ROW_UNALIGNED | ||
| 2722 | UINT NumberOfCodingUnitsPerSlice; | ||
| 2723 | |||
| 2724 | // Use with mode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_ROWS_PER_SUBREGION | ||
| 2725 | UINT NumberOfRowsPerSlice; | ||
| 2726 | |||
| 2727 | // Use with mode: D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_UNIFORM_PARTITIONING_SUBREGIONS_PER_FRAME | ||
| 2728 | UINT NumberOfSlicesPerFrame; | ||
| 2729 | }; | ||
| 2730 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES; | ||
| 2731 | |||
| 2732 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA | ||
| 2733 | { | ||
| 2734 | UINT DataSize; | ||
| 2735 | union | ||
| 2736 | { | ||
| 2737 | const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES* pSlicesPartition_H264; | ||
| 2738 | const D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_SLICES* pSlicesPartition_HEVC; | ||
| 2739 | const D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES* pTilesPartition_AV1; | ||
| 2740 | }; | ||
| 2741 | |||
| 2742 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA; | ||
| 2743 | |||
| 2744 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1 | ||
| 2745 | { | ||
| 2746 | /* Below match existing D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT */ | ||
| 2747 | UINT NodeIndex; | ||
| 2748 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 2749 | DXGI_FORMAT InputFormat; | ||
| 2750 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 2751 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; | ||
| 2752 | D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; | ||
| 2753 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh; | ||
| 2754 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 2755 | UINT ResolutionsListCount; | ||
| 2756 | const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC* pResolutionList; | ||
| 2757 | UINT MaxReferenceFramesInDPB; | ||
| 2758 | D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; | ||
| 2759 | D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; | ||
| 2760 | D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; | ||
| 2761 | D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; | ||
| 2762 | [annotation("_Field_size_full_(ResolutionsListCount)")] D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS* pResolutionDependentSupport; | ||
| 2763 | |||
| 2764 | /* Below are new arguments for D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1 */ | ||
| 2765 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; // input | ||
| 2766 | UINT MaxQualityVsSpeed; | ||
| 2767 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1; | ||
| 2768 | |||
| 2769 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS | ||
| 2770 | { | ||
| 2771 | UINT NodeIndex; // input | ||
| 2772 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 2773 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input | ||
| 2774 | DXGI_FORMAT InputFormat; // input | ||
| 2775 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; // input | ||
| 2776 | |||
| 2777 | BOOL IsSupported; // output | ||
| 2778 | UINT CompressedBitstreamBufferAccessAlignment; // output | ||
| 2779 | UINT EncoderMetadataBufferAccessAlignment; // output | ||
| 2780 | UINT MaxEncoderOutputMetadataBufferSize; // output | ||
| 2781 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS; | ||
| 2782 | |||
| 2783 | // | ||
| 2784 | // Video Encoder creation API | ||
| 2785 | // | ||
| 2786 | |||
| 2787 | typedef enum D3D12_VIDEO_ENCODER_FLAGS | ||
| 2788 | { | ||
| 2789 | D3D12_VIDEO_ENCODER_FLAG_NONE = 0x0, | ||
| 2790 | } D3D12_VIDEO_ENCODER_FLAGS; | ||
| 2791 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_FLAGS)") | ||
| 2792 | |||
| 2793 | typedef struct D3D12_VIDEO_ENCODER_DESC | ||
| 2794 | { | ||
| 2795 | UINT NodeMask; | ||
| 2796 | D3D12_VIDEO_ENCODER_FLAGS Flags; | ||
| 2797 | D3D12_VIDEO_ENCODER_CODEC EncodeCodec; | ||
| 2798 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; | ||
| 2799 | DXGI_FORMAT InputFormat; | ||
| 2800 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 2801 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE MaxMotionEstimationPrecision; | ||
| 2802 | } D3D12_VIDEO_ENCODER_DESC; | ||
| 2803 | |||
| 2804 | [uuid(2E0D212D-8DF9-44A6-A770-BB289B182737), object, local, pointer_default(unique)] | ||
| 2805 | interface ID3D12VideoEncoder | ||
| 2806 | : ID3D12Pageable | ||
| 2807 | { | ||
| 2808 | UINT GetNodeMask(); | ||
| 2809 | D3D12_VIDEO_ENCODER_FLAGS GetEncoderFlags(); | ||
| 2810 | D3D12_VIDEO_ENCODER_CODEC GetCodec(); | ||
| 2811 | HRESULT GetCodecProfile([annotation("_Inout_")] D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile); | ||
| 2812 | HRESULT GetCodecConfiguration([annotation("_Inout_")] D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION dstCodecConfig); | ||
| 2813 | DXGI_FORMAT GetInputFormat(); | ||
| 2814 | D3D12_VIDEO_ENCODER_MOTION_ESTIMATION_PRECISION_MODE GetMaxMotionEstimationPrecision(); | ||
| 2815 | } | ||
| 2816 | |||
| 2817 | [uuid(22B35D96-876A-44C0-B25E-FB8C9C7F1C4A), object, local, pointer_default(unique)] | ||
| 2818 | interface ID3D12VideoEncoderHeap | ||
| 2819 | : ID3D12Pageable | ||
| 2820 | { | ||
| 2821 | UINT GetNodeMask(); | ||
| 2822 | D3D12_VIDEO_ENCODER_HEAP_FLAGS GetEncoderHeapFlags(); | ||
| 2823 | D3D12_VIDEO_ENCODER_CODEC GetCodec(); | ||
| 2824 | HRESULT GetCodecProfile([annotation("_Inout_")] D3D12_VIDEO_ENCODER_PROFILE_DESC dstProfile); | ||
| 2825 | HRESULT GetCodecLevel([annotation("_Inout_")] D3D12_VIDEO_ENCODER_LEVEL_SETTING dstLevel); | ||
| 2826 | UINT GetResolutionListCount(); | ||
| 2827 | HRESULT GetResolutionList( | ||
| 2828 | const UINT ResolutionsListCount, | ||
| 2829 | [annotation("_Out_writes_(ResolutionsListCount)")] D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC* pResolutionList); | ||
| 2830 | } | ||
| 2831 | |||
| 2832 | [uuid(4243ADB4-3A32-4666-973C-0CCC5625DC44), object, local, pointer_default(unique)] | ||
| 2833 | interface ID3D12VideoDevice3 | ||
| 2834 | : ID3D12VideoDevice2 | ||
| 2835 | { | ||
| 2836 | |||
| 2837 | HRESULT CreateVideoEncoder( | ||
| 2838 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_DESC* pDesc, | ||
| 2839 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoEncoder, | ||
| 2840 | [annotation("_COM_Outptr_")] void** ppVideoEncoder); | ||
| 2841 | |||
| 2842 | HRESULT CreateVideoEncoderHeap( | ||
| 2843 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_HEAP_DESC* pDesc, | ||
| 2844 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoEncoderHeap, | ||
| 2845 | [annotation("_COM_Outptr_")] void** ppVideoEncoderHeap); | ||
| 2846 | |||
| 2847 | } | ||
| 2848 | |||
| 2849 | // | ||
| 2850 | // Video Encoder operation API | ||
| 2851 | // | ||
| 2852 | |||
| 2853 | |||
| 2854 | typedef enum D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 | ||
| 2855 | { | ||
| 2856 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_I_FRAME = 0, | ||
| 2857 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_P_FRAME = 1, | ||
| 2858 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_B_FRAME = 2, | ||
| 2859 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264_IDR_FRAME = 3, | ||
| 2860 | } D3D12_VIDEO_ENCODER_FRAME_TYPE_H264; | ||
| 2861 | |||
| 2862 | |||
| 2863 | typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264 | ||
| 2864 | { | ||
| 2865 | UINT ReconstructedPictureResourceIndex; | ||
| 2866 | BOOL IsLongTermReference; | ||
| 2867 | UINT LongTermPictureIdx; | ||
| 2868 | UINT PictureOrderCountNumber; | ||
| 2869 | UINT FrameDecodingOrderNumber; | ||
| 2870 | UINT TemporalLayerIndex; | ||
| 2871 | } D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264; | ||
| 2872 | |||
| 2873 | typedef enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS | ||
| 2874 | { | ||
| 2875 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_NONE = 0x0, | ||
| 2876 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1, | ||
| 2877 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x2, | ||
| 2878 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS; | ||
| 2879 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS)") | ||
| 2880 | |||
| 2881 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION | ||
| 2882 | { | ||
| 2883 | UCHAR memory_management_control_operation; | ||
| 2884 | UINT difference_of_pic_nums_minus1; | ||
| 2885 | UINT long_term_pic_num; | ||
| 2886 | UINT long_term_frame_idx; | ||
| 2887 | UINT max_long_term_frame_idx_plus1; | ||
| 2888 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION; | ||
| 2889 | |||
| 2890 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION | ||
| 2891 | { | ||
| 2892 | UCHAR modification_of_pic_nums_idc; | ||
| 2893 | UINT abs_diff_pic_num_minus1; | ||
| 2894 | UINT long_term_pic_num; | ||
| 2895 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION; | ||
| 2896 | |||
| 2897 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264 | ||
| 2898 | { | ||
| 2899 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_FLAGS Flags; | ||
| 2900 | D3D12_VIDEO_ENCODER_FRAME_TYPE_H264 FrameType; | ||
| 2901 | UINT pic_parameter_set_id; | ||
| 2902 | UINT idr_pic_id; | ||
| 2903 | UINT PictureOrderCountNumber; | ||
| 2904 | UINT FrameDecodingOrderNumber; | ||
| 2905 | UINT TemporalLayerIndex; | ||
| 2906 | UINT List0ReferenceFramesCount; | ||
| 2907 | [annotation("_Field_size_full_(List0ReferenceFramesCount)")] UINT* pList0ReferenceFrames; | ||
| 2908 | UINT List1ReferenceFramesCount; | ||
| 2909 | [annotation("_Field_size_full_(List1ReferenceFramesCount)")] UINT* pList1ReferenceFrames; | ||
| 2910 | UINT ReferenceFramesReconPictureDescriptorsCount; | ||
| 2911 | [annotation("_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount)")] D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_H264* pReferenceFramesReconPictureDescriptors; | ||
| 2912 | UCHAR adaptive_ref_pic_marking_mode_flag; | ||
| 2913 | UINT RefPicMarkingOperationsCommandsCount; | ||
| 2914 | [annotation("_Field_size_full_(RefPicMarkingOperationsCommandsCount)")] D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_MARKING_OPERATION* pRefPicMarkingOperationsCommands; | ||
| 2915 | UINT List0RefPicModificationsCount; | ||
| 2916 | [annotation("_Field_size_full_(List0RefPicModificationsCount)")] D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION* pList0RefPicModifications; | ||
| 2917 | UINT List1RefPicModificationsCount; | ||
| 2918 | [annotation("_Field_size_full_(List1RefPicModificationsCount)")] D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264_REFERENCE_PICTURE_LIST_MODIFICATION_OPERATION* pList1RefPicModifications; | ||
| 2919 | UINT QPMapValuesCount; | ||
| 2920 | [annotation("_Field_size_full_(QPMapValuesCount)")] INT8 *pRateControlQPMap; | ||
| 2921 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264; | ||
| 2922 | |||
| 2923 | typedef enum D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC | ||
| 2924 | { | ||
| 2925 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_I_FRAME = 0, | ||
| 2926 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_P_FRAME = 1, | ||
| 2927 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_B_FRAME = 2, | ||
| 2928 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC_IDR_FRAME = 3, | ||
| 2929 | } D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC; | ||
| 2930 | |||
| 2931 | typedef struct D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC | ||
| 2932 | { | ||
| 2933 | UINT ReconstructedPictureResourceIndex; | ||
| 2934 | BOOL IsRefUsedByCurrentPic; | ||
| 2935 | BOOL IsLongTermReference; | ||
| 2936 | UINT PictureOrderCountNumber; | ||
| 2937 | UINT TemporalLayerIndex; | ||
| 2938 | } D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC; | ||
| 2939 | |||
| 2940 | typedef enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS | ||
| 2941 | { | ||
| 2942 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_NONE = 0x0, | ||
| 2943 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_INTRA_CONSTRAINED_SLICES = 0x1, | ||
| 2944 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_REQUEST_NUM_REF_IDX_ACTIVE_OVERRIDE_FLAG_SLICE = 0x2, | ||
| 2945 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CROSS_COMPONENT_PREDICTION = 0x4, | ||
| 2946 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAG_CHROMA_QP_OFFSET_LIST = 0x8, | ||
| 2947 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS; | ||
| 2948 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS)") | ||
| 2949 | |||
| 2950 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC | ||
| 2951 | { | ||
| 2952 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; | ||
| 2953 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; | ||
| 2954 | UINT slice_pic_parameter_set_id; | ||
| 2955 | UINT PictureOrderCountNumber; | ||
| 2956 | UINT TemporalLayerIndex; | ||
| 2957 | UINT List0ReferenceFramesCount; | ||
| 2958 | [annotation("_Field_size_full_(List0ReferenceFramesCount)")] UINT* pList0ReferenceFrames; | ||
| 2959 | UINT List1ReferenceFramesCount; | ||
| 2960 | [annotation("_Field_size_full_(List1ReferenceFramesCount)")] UINT* pList1ReferenceFrames; | ||
| 2961 | UINT ReferenceFramesReconPictureDescriptorsCount; | ||
| 2962 | [annotation("_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount)")] D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC* pReferenceFramesReconPictureDescriptors; | ||
| 2963 | UINT List0RefPicModificationsCount; | ||
| 2964 | [annotation("_Field_size_full_(List0RefPicModificationsCount)")] UINT* pList0RefPicModifications; | ||
| 2965 | UINT List1RefPicModificationsCount; | ||
| 2966 | [annotation("_Field_size_full_(List1RefPicModificationsCount)")] UINT* pList1RefPicModifications; | ||
| 2967 | UINT QPMapValuesCount; | ||
| 2968 | [annotation("_Field_size_full_(QPMapValuesCount)")] INT8 *pRateControlQPMap; | ||
| 2969 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC; | ||
| 2970 | |||
| 2971 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1 | ||
| 2972 | { | ||
| 2973 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; | ||
| 2974 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; | ||
| 2975 | UINT slice_pic_parameter_set_id; | ||
| 2976 | UINT PictureOrderCountNumber; | ||
| 2977 | UINT TemporalLayerIndex; | ||
| 2978 | UINT List0ReferenceFramesCount; | ||
| 2979 | [annotation("_Field_size_full_(List0ReferenceFramesCount)")] UINT* pList0ReferenceFrames; | ||
| 2980 | UINT List1ReferenceFramesCount; | ||
| 2981 | [annotation("_Field_size_full_(List1ReferenceFramesCount)")] UINT* pList1ReferenceFrames; | ||
| 2982 | UINT ReferenceFramesReconPictureDescriptorsCount; | ||
| 2983 | [annotation("_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount)")] D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC* pReferenceFramesReconPictureDescriptors; | ||
| 2984 | UINT List0RefPicModificationsCount; | ||
| 2985 | [annotation("_Field_size_full_(List0RefPicModificationsCount)")] UINT* pList0RefPicModifications; | ||
| 2986 | UINT List1RefPicModificationsCount; | ||
| 2987 | [annotation("_Field_size_full_(List1RefPicModificationsCount)")] UINT* pList1RefPicModifications; | ||
| 2988 | UINT QPMapValuesCount; | ||
| 2989 | [annotation("_Field_size_full_(QPMapValuesCount)")] INT8* pRateControlQPMap; | ||
| 2990 | UCHAR diff_cu_chroma_qp_offset_depth; | ||
| 2991 | UCHAR log2_sao_offset_scale_luma; | ||
| 2992 | UCHAR log2_sao_offset_scale_chroma; | ||
| 2993 | UCHAR log2_max_transform_skip_block_size_minus2; | ||
| 2994 | UCHAR chroma_qp_offset_list_len_minus1; | ||
| 2995 | CHAR cb_qp_offset_list[6]; | ||
| 2996 | CHAR cr_qp_offset_list[6]; | ||
| 2997 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1; | ||
| 2998 | |||
| 2999 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA | ||
| 3000 | { | ||
| 3001 | UINT DataSize; | ||
| 3002 | union | ||
| 3003 | { | ||
| 3004 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264* pH264PicData; | ||
| 3005 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC* pHEVCPicData; | ||
| 3006 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC1* pHEVCPicData1; | ||
| 3007 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA* pAV1PicData; | ||
| 3008 | }; | ||
| 3009 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA; | ||
| 3010 | |||
| 3011 | typedef struct D3D12_VIDEO_ENCODE_REFERENCE_FRAMES | ||
| 3012 | { | ||
| 3013 | UINT NumTexture2Ds; | ||
| 3014 | [annotation("_Field_size_full_(NumTexture2Ds)")] ID3D12Resource** ppTexture2Ds; | ||
| 3015 | [annotation("_Field_size_full_(NumTexture2Ds)")] UINT* pSubresources; | ||
| 3016 | } D3D12_VIDEO_ENCODE_REFERENCE_FRAMES; | ||
| 3017 | |||
| 3018 | typedef enum D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS | ||
| 3019 | { | ||
| 3020 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_NONE = 0x0, | ||
| 3021 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_USED_AS_REFERENCE_PICTURE = 0x1, | ||
| 3022 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_QUANTIZATION_MATRIX_INPUT = 0x2, | ||
| 3023 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_DIRTY_REGIONS_INPUT = 0x4, | ||
| 3024 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAG_ENABLE_MOTION_VECTORS_INPUT = 0x8, | ||
| 3025 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS; | ||
| 3026 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS)") | ||
| 3027 | |||
| 3028 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC | ||
| 3029 | { | ||
| 3030 | UINT IntraRefreshFrameIndex; | ||
| 3031 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags; | ||
| 3032 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA PictureControlCodecData; | ||
| 3033 | D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames; | ||
| 3034 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC; | ||
| 3035 | |||
| 3036 | typedef enum D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS | ||
| 3037 | { | ||
| 3038 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_NONE = 0x0, | ||
| 3039 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RESOLUTION_CHANGE = 0x1, | ||
| 3040 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_RATE_CONTROL_CHANGE = 0x2, | ||
| 3041 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_SUBREGION_LAYOUT_CHANGE = 0x4, | ||
| 3042 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_REQUEST_INTRA_REFRESH = 0x8, | ||
| 3043 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAG_GOP_SEQUENCE_CHANGE = 0x10, | ||
| 3044 | } D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS; | ||
| 3045 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS)") | ||
| 3046 | |||
| 3047 | typedef struct D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC | ||
| 3048 | { | ||
| 3049 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS Flags; | ||
| 3050 | D3D12_VIDEO_ENCODER_INTRA_REFRESH IntraRefreshConfig; | ||
| 3051 | D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; | ||
| 3052 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; | ||
| 3053 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SelectedLayoutMode; | ||
| 3054 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA FrameSubregionsLayoutData; | ||
| 3055 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; | ||
| 3056 | } D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC; | ||
| 3057 | |||
| 3058 | // | ||
| 3059 | // Video Encoder operation commands API | ||
| 3060 | // | ||
| 3061 | |||
| 3062 | typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS | ||
| 3063 | { | ||
| 3064 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc; | ||
| 3065 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC PictureControlDesc; | ||
| 3066 | ID3D12Resource *pInputFrame; | ||
| 3067 | UINT InputFrameSubresource; | ||
| 3068 | UINT CurrentFrameBitstreamMetadataSize; | ||
| 3069 | } D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS; | ||
| 3070 | |||
| 3071 | typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM | ||
| 3072 | { | ||
| 3073 | ID3D12Resource* pBuffer; | ||
| 3074 | UINT64 FrameStartOffset; | ||
| 3075 | } D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM; | ||
| 3076 | |||
| 3077 | typedef struct D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE | ||
| 3078 | { | ||
| 3079 | ID3D12Resource *pReconstructedPicture; | ||
| 3080 | UINT ReconstructedPictureSubresource; | ||
| 3081 | } D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE; | ||
| 3082 | |||
| 3083 | typedef struct D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA | ||
| 3084 | { | ||
| 3085 | UINT64 bSize; | ||
| 3086 | UINT64 bStartOffset; | ||
| 3087 | UINT64 bHeaderSize; | ||
| 3088 | } D3D12_VIDEO_ENCODER_FRAME_SUBREGION_METADATA; | ||
| 3089 | |||
| 3090 | typedef enum D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS | ||
| 3091 | { | ||
| 3092 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_NO_ERROR = 0x0, | ||
| 3093 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_CODEC_PICTURE_CONTROL_NOT_SUPPORTED = 0x1, | ||
| 3094 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_SUBREGION_LAYOUT_CONFIGURATION_NOT_SUPPORTED = 0x2, | ||
| 3095 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_REFERENCE_PICTURES = 0x4, | ||
| 3096 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_RECONFIGURATION_REQUEST_NOT_SUPPORTED = 0x8, | ||
| 3097 | D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAG_INVALID_METADATA_BUFFER_SOURCE = 0x10, | ||
| 3098 | } D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS; | ||
| 3099 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS)") | ||
| 3100 | |||
| 3101 | typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS | ||
| 3102 | { | ||
| 3103 | UINT64 AverageQP; | ||
| 3104 | UINT64 IntraCodingUnitsCount; | ||
| 3105 | UINT64 InterCodingUnitsCount; | ||
| 3106 | UINT64 SkipCodingUnitsCount; | ||
| 3107 | UINT64 AverageMotionEstimationXDirection; | ||
| 3108 | UINT64 AverageMotionEstimationYDirection; | ||
| 3109 | } D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS; | ||
| 3110 | |||
| 3111 | typedef struct D3D12_VIDEO_ENCODER_OUTPUT_METADATA | ||
| 3112 | { | ||
| 3113 | UINT64 EncodeErrorFlags; // D3D12_VIDEO_ENCODER_ENCODE_ERROR_FLAGS | ||
| 3114 | D3D12_VIDEO_ENCODER_OUTPUT_METADATA_STATISTICS EncodeStats; | ||
| 3115 | UINT64 EncodedBitstreamWrittenBytesCount; | ||
| 3116 | UINT64 WrittenSubregionsCount; | ||
| 3117 | } D3D12_VIDEO_ENCODER_OUTPUT_METADATA; | ||
| 3118 | |||
| 3119 | typedef struct D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER | ||
| 3120 | { | ||
| 3121 | ID3D12Resource* pBuffer; | ||
| 3122 | UINT64 Offset; | ||
| 3123 | } D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER; | ||
| 3124 | |||
| 3125 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS | ||
| 3126 | { | ||
| 3127 | D3D12_VIDEO_ENCODER_CODEC EncoderCodec; | ||
| 3128 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile; | ||
| 3129 | DXGI_FORMAT EncoderInputFormat; | ||
| 3130 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution; | ||
| 3131 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata; | ||
| 3132 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS; | ||
| 3133 | |||
| 3134 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS | ||
| 3135 | { | ||
| 3136 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata; | ||
| 3137 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS; | ||
| 3138 | |||
| 3139 | typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS | ||
| 3140 | { | ||
| 3141 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM Bitstream; | ||
| 3142 | D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture; | ||
| 3143 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata; | ||
| 3144 | } D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS; | ||
| 3145 | |||
| 3146 | [uuid(895491e2-e701-46a9-9a1f-8d3480ed867a), object, local, pointer_default(unique)] | ||
| 3147 | interface ID3D12VideoEncodeCommandList2 | ||
| 3148 | : ID3D12VideoEncodeCommandList1 | ||
| 3149 | { | ||
| 3150 | void EncodeFrame( | ||
| 3151 | [annotation("_In_")] ID3D12VideoEncoder* pEncoder, | ||
| 3152 | [annotation("_In_")] ID3D12VideoEncoderHeap *pHeap, | ||
| 3153 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS *pInputArguments, | ||
| 3154 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS *pOutputArguments); | ||
| 3155 | |||
| 3156 | void ResolveEncoderOutputMetadata( | ||
| 3157 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS* pInputArguments, | ||
| 3158 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS* pOutputArguments); | ||
| 3159 | } | ||
| 3160 | |||
| 3161 | |||
| 3162 | [uuid(7f027b22-1515-4e85-aa0d-026486580576), object, local, pointer_default(unique)] | ||
| 3163 | interface ID3D12VideoEncodeCommandList3 | ||
| 3164 | : ID3D12VideoEncodeCommandList2 | ||
| 3165 | { | ||
| 3166 | |||
| 3167 | void Barrier( | ||
| 3168 | UINT32 NumBarrierGroups, | ||
| 3169 | [annotation("_In_reads_(NumBarrierGroups)")] const D3D12_BARRIER_GROUP *pBarrierGroups | ||
| 3170 | ); | ||
| 3171 | } | ||
| 3172 | |||
| 3173 | |||
| 3174 | |||
| 3175 | typedef struct D3D12_VIDEO_ENCODER_HEAP_DESC1 | ||
| 3176 | { | ||
| 3177 | UINT NodeMask; | ||
| 3178 | D3D12_VIDEO_ENCODER_HEAP_FLAGS Flags; | ||
| 3179 | D3D12_VIDEO_ENCODER_CODEC EncodeCodec; | ||
| 3180 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncodeProfile; | ||
| 3181 | D3D12_VIDEO_ENCODER_LEVEL_SETTING EncodeLevel; | ||
| 3182 | UINT ResolutionsListCount; | ||
| 3183 | [annotation("_Field_size_full_(ResolutionsListCount)")] const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC* pResolutionList; | ||
| 3184 | UINT Pow2DownscaleFactor; | ||
| 3185 | } D3D12_VIDEO_ENCODER_HEAP_DESC1; | ||
| 3186 | |||
| 3187 | [uuid(ea8f1968-4aa0-43a4-9d30-ba86ec84d4f9), object, local, pointer_default(unique)] | ||
| 3188 | interface ID3D12VideoEncoderHeap1 | ||
| 3189 | : ID3D12VideoEncoderHeap | ||
| 3190 | { | ||
| 3191 | UINT GetPow2DownscaleFactor(); | ||
| 3192 | } | ||
| 3193 | |||
| 3194 | [uuid(e59ad09e-f1ae-42bb-8983-9f6e5586c4eb), object, local, pointer_default(unique)] | ||
| 3195 | interface ID3D12VideoDevice4 | ||
| 3196 | : ID3D12VideoDevice3 | ||
| 3197 | { | ||
| 3198 | HRESULT CreateVideoEncoderHeap1( | ||
| 3199 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_HEAP_DESC1* pDesc, | ||
| 3200 | [annotation("_In_")] REFIID riid, // Expected: IID_ID3D12VideoEncoderHeap1, | ||
| 3201 | [annotation("_COM_Outptr_")] void** ppVideoEncoderHeap); | ||
| 3202 | |||
| 3203 | } | ||
| 3204 | |||
| 3205 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE1 { | ||
| 3206 | D3D12_VIDEO_ENCODER_HEAP_DESC1 HeapDesc; // input | ||
| 3207 | BOOL IsSupported; // output | ||
| 3208 | UINT64 MemoryPoolL0Size; // output | ||
| 3209 | UINT64 MemoryPoolL1Size; // output | ||
| 3210 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_HEAP_SIZE1; | ||
| 3211 | |||
| 3212 | typedef enum D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS | ||
| 3213 | { | ||
| 3214 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_NONE = 0x0, | ||
| 3215 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_QP_MAP = 0x1, | ||
| 3216 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_SATD_MAP = 0x2, | ||
| 3217 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_RC_BIT_ALLOCATION_MAP = 0x4, | ||
| 3218 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_FRAME_PSNR = 0x8, | ||
| 3219 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAG_SUBREGIONS_PSNR = 0x10, | ||
| 3220 | } D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS; | ||
| 3221 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS )") | ||
| 3222 | |||
| 3223 | // Binary back-compat with D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS | ||
| 3224 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1 | ||
| 3225 | { | ||
| 3226 | UINT NodeIndex; // input | ||
| 3227 | D3D12_VIDEO_ENCODER_CODEC Codec; // input | ||
| 3228 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; // input | ||
| 3229 | DXGI_FORMAT InputFormat; // input | ||
| 3230 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC PictureTargetResolution; // input | ||
| 3231 | |||
| 3232 | BOOL IsSupported; // output | ||
| 3233 | UINT CompressedBitstreamBufferAccessAlignment; // output | ||
| 3234 | UINT EncoderMetadataBufferAccessAlignment; // output | ||
| 3235 | UINT MaxEncoderOutputMetadataBufferSize; // output | ||
| 3236 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; // input | ||
| 3237 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; // input | ||
| 3238 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataQPMapTextureDimensions; // output | ||
| 3239 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataSATDMapTextureDimensions; // output | ||
| 3240 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncoderOutputMetadataBitAllocationMapTextureDimensions; // output | ||
| 3241 | UINT EncoderOutputMetadataFramePSNRComponentsNumber; // output | ||
| 3242 | UINT EncoderOutputMetadataSubregionsPSNRComponentsNumber; // output | ||
| 3243 | UINT EncoderOutputMetadataSubregionsPSNRResolvedMetadataBufferSize; // output | ||
| 3244 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOURCE_REQUIREMENTS1; | ||
| 3245 | |||
| 3246 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_PSNR_RESOLVED_LAYOUT | ||
| 3247 | { | ||
| 3248 | float PSNRY; | ||
| 3249 | float PSNRU; | ||
| 3250 | float PSNRV; | ||
| 3251 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_PSNR_RESOLVED_LAYOUT; | ||
| 3252 | |||
| 3253 | typedef enum D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE | ||
| 3254 | { | ||
| 3255 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_CPU_BUFFER = 0, | ||
| 3256 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_GPU_TEXTURE = 1, | ||
| 3257 | } D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE; | ||
| 3258 | |||
| 3259 | typedef enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE | ||
| 3260 | { | ||
| 3261 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_DIRTY = 0, | ||
| 3262 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE_SKIP = 1, | ||
| 3263 | } D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE; | ||
| 3264 | |||
| 3265 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO | ||
| 3266 | { | ||
| 3267 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 3268 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 3269 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; | ||
| 3270 | DXGI_FORMAT InputFormat; | ||
| 3271 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution; | ||
| 3272 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 3273 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 3274 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; | ||
| 3275 | } D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO; | ||
| 3276 | |||
| 3277 | typedef enum D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE | ||
| 3278 | { | ||
| 3279 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_QUANTIZATION_MATRIX = 0, | ||
| 3280 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_DIRTY_REGIONS = 1, | ||
| 3281 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_MOTION_VECTORS = 2, | ||
| 3282 | } D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE; | ||
| 3283 | |||
| 3284 | typedef enum D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE | ||
| 3285 | { | ||
| 3286 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_FULL_SEARCH = 0, | ||
| 3287 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT = 1, | ||
| 3288 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_START_HINT_LIMITED_DISTANCE = 2, | ||
| 3289 | } D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE; | ||
| 3290 | |||
| 3291 | // D3D12_FEATURE_VIDEO_ENCODER_QPMAP_INPUT | ||
| 3292 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT | ||
| 3293 | { | ||
| 3294 | UINT NodeIndex; | ||
| 3295 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 3296 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 3297 | BOOL IsSupported; | ||
| 3298 | UINT MapSourcePreferenceRanking; | ||
| 3299 | UINT BlockSize; | ||
| 3300 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_QPMAP_INPUT; | ||
| 3301 | |||
| 3302 | typedef enum D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS | ||
| 3303 | { | ||
| 3304 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_NONE = 0x0, | ||
| 3305 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_REPEAT_FRAME = 0x1, | ||
| 3306 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS = 0x2, | ||
| 3307 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAG_DIRTY_REGIONS_REQUIRE_FULL_ROW = 0x4, | ||
| 3308 | } D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS; | ||
| 3309 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS )") | ||
| 3310 | |||
| 3311 | // D3D12_FEATURE_VIDEO_ENCODER_DIRTY_REGIONS | ||
| 3312 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS | ||
| 3313 | { | ||
| 3314 | UINT NodeIndex; | ||
| 3315 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 3316 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 3317 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; | ||
| 3318 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS SupportFlags; | ||
| 3319 | UINT MapSourcePreferenceRanking; | ||
| 3320 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_DIRTY_REGIONS; | ||
| 3321 | |||
| 3322 | typedef enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION | ||
| 3323 | { | ||
| 3324 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL = 0, | ||
| 3325 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL = 1, | ||
| 3326 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL = 2, | ||
| 3327 | } D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION; | ||
| 3328 | |||
| 3329 | typedef enum D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS { | ||
| 3330 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_NONE = 0x0, | ||
| 3331 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_FULL_PIXEL = (1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_FULL_PIXEL), // 0x1 | ||
| 3332 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_HALF_PIXEL = (1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_HALF_PIXEL), // 0x2 | ||
| 3333 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAG_QUARTER_PIXEL = (1 << D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_QUARTER_PIXEL), // 0x4 | ||
| 3334 | } D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS; | ||
| 3335 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS )") | ||
| 3336 | |||
| 3337 | typedef enum D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS | ||
| 3338 | { | ||
| 3339 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_NONE = 0x0, | ||
| 3340 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_SUPPORTED = 0x1, | ||
| 3341 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_MULTIPLE_HINTS = 0x2, | ||
| 3342 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAG_GPU_TEXTURE_MULTIPLE_REFERENCES = 0x4, | ||
| 3343 | |||
| 3344 | |||
| 3345 | } D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS; | ||
| 3346 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS )") | ||
| 3347 | |||
| 3348 | // D3D12_FEATURE_VIDEO_ENCODER_MOTION_SEARCH | ||
| 3349 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH | ||
| 3350 | { | ||
| 3351 | UINT NodeIndex; | ||
| 3352 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 3353 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; | ||
| 3354 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 3355 | BOOL BidirectionalRefFrameEnabled; | ||
| 3356 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; | ||
| 3357 | UINT MaxMotionHints; | ||
| 3358 | UINT MinDeviation; | ||
| 3359 | UINT MaxDeviation; | ||
| 3360 | UINT MapSourcePreferenceRanking; | ||
| 3361 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupport; | ||
| 3362 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_MOTION_SEARCH; | ||
| 3363 | |||
| 3364 | // D3D12_FEATURE_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT | ||
| 3365 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT | ||
| 3366 | { | ||
| 3367 | UINT NodeIndex; | ||
| 3368 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 3369 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; | ||
| 3370 | BOOL IsSupported; | ||
| 3371 | UINT64 MaxResolvedBufferAllocationSize; | ||
| 3372 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT; | ||
| 3373 | |||
| 3374 | typedef struct D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION | ||
| 3375 | { | ||
| 3376 | BOOL Enabled; | ||
| 3377 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 3378 | } D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION; | ||
| 3379 | |||
| 3380 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP | ||
| 3381 | { | ||
| 3382 | // Reuse existing D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1.QPMapRegionPixelsSize for BlockSize | ||
| 3383 | UINT MapSourcePreferenceRanking; | ||
| 3384 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP; | ||
| 3385 | |||
| 3386 | typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION | ||
| 3387 | { | ||
| 3388 | BOOL Enabled; | ||
| 3389 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 3390 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; | ||
| 3391 | } D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION; | ||
| 3392 | |||
| 3393 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS | ||
| 3394 | { | ||
| 3395 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_SUPPORT_FLAGS DirtyRegionsSupportFlags; | ||
| 3396 | UINT MapSourcePreferenceRanking; | ||
| 3397 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS; | ||
| 3398 | |||
| 3399 | typedef struct D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION | ||
| 3400 | { | ||
| 3401 | BOOL Enabled; | ||
| 3402 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 3403 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; | ||
| 3404 | BOOL BidirectionalRefFrameEnabled; | ||
| 3405 | } D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION; | ||
| 3406 | |||
| 3407 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH | ||
| 3408 | { | ||
| 3409 | UINT MaxMotionHints; | ||
| 3410 | UINT MinDeviation; | ||
| 3411 | UINT MaxDeviation; | ||
| 3412 | UINT MapSourcePreferenceRanking; | ||
| 3413 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION_SUPPORT_FLAGS MotionUnitPrecisionSupportFlags; | ||
| 3414 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_SUPPORT_FLAGS SupportFlags; | ||
| 3415 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH; | ||
| 3416 | |||
| 3417 | typedef enum D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS | ||
| 3418 | { | ||
| 3419 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_NONE = 0x0, | ||
| 3420 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_INTRACODED_FRAME_SUPPORTED = 0x1, | ||
| 3421 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_UNIDIR_INTER_FRAME_SUPPORTED = 0x2, | ||
| 3422 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_BIDIR_INTER_FRAME_SUPPORTED = 0x4, | ||
| 3423 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_EXTERNAL_DPB_DOWNSCALING = 0x8, | ||
| 3424 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_DYNAMIC_1ST_PASS_SKIP = 0x10, | ||
| 3425 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_DYNAMIC_DOWNSCALE_FACTOR_CHANGE_KEY_FRAME = 0x20, | ||
| 3426 | |||
| 3427 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_SUPPORTED = | ||
| 3428 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_INTRACODED_FRAME_SUPPORTED | | ||
| 3429 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_UNIDIR_INTER_FRAME_SUPPORTED | | ||
| 3430 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAG_BIDIR_INTER_FRAME_SUPPORTED, | ||
| 3431 | |||
| 3432 | } D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS; | ||
| 3433 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS )") | ||
| 3434 | |||
| 3435 | // D3D12_FEATURE_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS | ||
| 3436 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS | ||
| 3437 | { | ||
| 3438 | UINT NodeIndex; | ||
| 3439 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 3440 | D3D12_VIDEO_ENCODER_PROFILE_DESC Profile; | ||
| 3441 | D3D12_VIDEO_ENCODER_LEVEL_SETTING Level; | ||
| 3442 | DXGI_FORMAT InputFormat; | ||
| 3443 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC InputResolution; | ||
| 3444 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 3445 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 3446 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; | ||
| 3447 | D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap; | ||
| 3448 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions; | ||
| 3449 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch; | ||
| 3450 | UINT Pow2DownscaleFactor; | ||
| 3451 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS SupportFlags; | ||
| 3452 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS; | ||
| 3453 | |||
| 3454 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS | ||
| 3455 | { | ||
| 3456 | D3D12_VIDEO_ENCODER_RATE_CONTROL_FRAME_ANALYSIS_SUPPORT_FLAGS SupportFlags; | ||
| 3457 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS; | ||
| 3458 | |||
| 3459 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 | ||
| 3460 | { | ||
| 3461 | /* Below match existing D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS */ | ||
| 3462 | UINT MaxSubregionsNumber; | ||
| 3463 | UINT MaxIntraRefreshFrameDuration; | ||
| 3464 | UINT SubregionBlockPixelsSize; | ||
| 3465 | UINT QPMapRegionPixelsSize; | ||
| 3466 | |||
| 3467 | /* Below are new arguments for D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 */ | ||
| 3468 | D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_QPMAP QPMap; | ||
| 3469 | D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_DIRTY_REGIONS DirtyRegions; | ||
| 3470 | D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_MOTION_SEARCH MotionSearch; | ||
| 3471 | D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_FRAME_ANALYSIS FrameAnalysis; | ||
| 3472 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1; | ||
| 3473 | |||
| 3474 | typedef struct D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION | ||
| 3475 | { | ||
| 3476 | BOOL Enabled; | ||
| 3477 | UINT Pow2DownscaleFactor; | ||
| 3478 | } D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION; | ||
| 3479 | |||
| 3480 | // D3D12_FEATURE_VIDEO_ENCODER_SUPPORT2 | ||
| 3481 | typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2 | ||
| 3482 | { | ||
| 3483 | /* | ||
| 3484 | * Below params match existing D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT1 binary size | ||
| 3485 | * please note pResolutionDependentSupport type changes from D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS to D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1 | ||
| 3486 | */ | ||
| 3487 | |||
| 3488 | UINT NodeIndex; | ||
| 3489 | D3D12_VIDEO_ENCODER_CODEC Codec; | ||
| 3490 | DXGI_FORMAT InputFormat; | ||
| 3491 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 3492 | D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE CodecGopSequence; | ||
| 3493 | D3D12_VIDEO_ENCODER_RATE_CONTROL RateControl; | ||
| 3494 | D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE IntraRefresh; | ||
| 3495 | D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE SubregionFrameEncoding; | ||
| 3496 | UINT ResolutionsListCount; | ||
| 3497 | const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC* pResolutionList; | ||
| 3498 | UINT MaxReferenceFramesInDPB; | ||
| 3499 | D3D12_VIDEO_ENCODER_VALIDATION_FLAGS ValidationFlags; | ||
| 3500 | D3D12_VIDEO_ENCODER_SUPPORT_FLAGS SupportFlags; | ||
| 3501 | D3D12_VIDEO_ENCODER_PROFILE_DESC SuggestedProfile; | ||
| 3502 | D3D12_VIDEO_ENCODER_LEVEL_SETTING SuggestedLevel; | ||
| 3503 | [annotation("_Field_size_full_(ResolutionsListCount)")] D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS1* pResolutionDependentSupport; | ||
| 3504 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA SubregionFrameEncodingData; | ||
| 3505 | UINT MaxQualityVsSpeed; | ||
| 3506 | |||
| 3507 | /* Below are new arguments for D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2 */ | ||
| 3508 | D3D12_VIDEO_ENCODER_QPMAP_CONFIGURATION QPMap; | ||
| 3509 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_CONFIGURATION DirtyRegions; | ||
| 3510 | D3D12_VIDEO_ENCODER_MOTION_SEARCH_CONFIGURATION MotionSearch; | ||
| 3511 | D3D12_VIDEO_ENCODER_FRAME_ANALYSIS_CONFIGURATION FrameAnalysis; | ||
| 3512 | } D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT2; | ||
| 3513 | |||
| 3514 | typedef struct D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO | ||
| 3515 | { | ||
| 3516 | BOOL FullFrameIdentical; | ||
| 3517 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; | ||
| 3518 | UINT NumDirtyRects; | ||
| 3519 | [annotation("_Field_size_full_(NumDirtyRects)")] RECT* pDirtyRects; | ||
| 3520 | UINT SourceDPBFrameReference; | ||
| 3521 | } D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO; | ||
| 3522 | |||
| 3523 | typedef struct D3D12_VIDEO_ENCODER_DIRTY_REGIONS | ||
| 3524 | { | ||
| 3525 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 3526 | union | ||
| 3527 | { | ||
| 3528 | // Use with: D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_GPU_TEXTURE | ||
| 3529 | ID3D12Resource* pOpaqueLayoutBuffer; | ||
| 3530 | // Use with: D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_CPU_BUFFER | ||
| 3531 | D3D12_VIDEO_ENCODER_DIRTY_RECT_INFO* pCPUBuffer; | ||
| 3532 | }; | ||
| 3533 | } D3D12_VIDEO_ENCODER_DIRTY_REGIONS; | ||
| 3534 | |||
| 3535 | typedef struct D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP | ||
| 3536 | { | ||
| 3537 | ID3D12Resource* pOpaqueQuantizationMap; | ||
| 3538 | } D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP; | ||
| 3539 | |||
| 3540 | typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG | ||
| 3541 | { | ||
| 3542 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE MotionSearchMode; | ||
| 3543 | UINT SearchDeviationLimit; | ||
| 3544 | } D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG; | ||
| 3545 | |||
| 3546 | typedef struct D3D12_VIDEO_ENCODER_MOVE_RECT | ||
| 3547 | { | ||
| 3548 | POINT SourcePoint; | ||
| 3549 | RECT DestRect; | ||
| 3550 | } D3D12_VIDEO_ENCODER_MOVE_RECT; | ||
| 3551 | |||
| 3552 | typedef enum D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS | ||
| 3553 | { | ||
| 3554 | D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_NONE = 0x0, | ||
| 3555 | D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAG_MULTIPLE_HINTS = 0x1, | ||
| 3556 | } D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS; | ||
| 3557 | |||
| 3558 | typedef struct D3D12_VIDEO_ENCODER_MOVEREGION_INFO | ||
| 3559 | { | ||
| 3560 | UINT NumMoveRegions; | ||
| 3561 | [annotation("_Field_size_full_(NumMoveRegions)")] D3D12_VIDEO_ENCODER_MOVE_RECT* pMoveRegions; | ||
| 3562 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; | ||
| 3563 | UINT SourceDPBFrameReference; | ||
| 3564 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; | ||
| 3565 | D3D12_VIDEO_ENCODER_MOVEREGION_INFO_FLAGS Flags; | ||
| 3566 | } D3D12_VIDEO_ENCODER_MOVEREGION_INFO; | ||
| 3567 | |||
| 3568 | typedef struct D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS | ||
| 3569 | { | ||
| 3570 | D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE MapSource; | ||
| 3571 | union | ||
| 3572 | { | ||
| 3573 | // Use with: D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_GPU_TEXTURE | ||
| 3574 | ID3D12Resource* pOpaqueLayoutBuffer; | ||
| 3575 | // Use with: D3D12_VIDEO_ENCODER_INPUT_MAP_SOURCE_CPU_BUFFER | ||
| 3576 | D3D12_VIDEO_ENCODER_MOVEREGION_INFO* pCPUBuffer; | ||
| 3577 | }; | ||
| 3578 | } D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS; | ||
| 3579 | |||
| 3580 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC2 | ||
| 3581 | { | ||
| 3582 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC_FLAGS Flags; | ||
| 3583 | D3D12_VIDEO_ENCODER_FRAME_TYPE_HEVC FrameType; | ||
| 3584 | UINT slice_pic_parameter_set_id; | ||
| 3585 | UINT PictureOrderCountNumber; | ||
| 3586 | UINT TemporalLayerIndex; | ||
| 3587 | UINT List0ReferenceFramesCount; | ||
| 3588 | [annotation("_Field_size_full_(List0ReferenceFramesCount)")] UINT* pList0ReferenceFrames; | ||
| 3589 | UINT List1ReferenceFramesCount; | ||
| 3590 | [annotation("_Field_size_full_(List1ReferenceFramesCount)")] UINT* pList1ReferenceFrames; | ||
| 3591 | UINT ReferenceFramesReconPictureDescriptorsCount; | ||
| 3592 | [annotation("_Field_size_full_(ReferenceFramesReconPictureDescriptorsCount)")] D3D12_VIDEO_ENCODER_REFERENCE_PICTURE_DESCRIPTOR_HEVC* pReferenceFramesReconPictureDescriptors; | ||
| 3593 | UINT List0RefPicModificationsCount; | ||
| 3594 | [annotation("_Field_size_full_(List0RefPicModificationsCount)")] UINT* pList0RefPicModifications; | ||
| 3595 | UINT List1RefPicModificationsCount; | ||
| 3596 | [annotation("_Field_size_full_(List1RefPicModificationsCount)")] UINT* pList1RefPicModifications; | ||
| 3597 | UINT QPMapValuesCount; | ||
| 3598 | [annotation("_Field_size_full_(QPMapValuesCount)")] INT8* pRateControlQPMap; | ||
| 3599 | UCHAR diff_cu_chroma_qp_offset_depth; | ||
| 3600 | UCHAR log2_sao_offset_scale_luma; | ||
| 3601 | UCHAR log2_sao_offset_scale_chroma; | ||
| 3602 | UCHAR log2_max_transform_skip_block_size_minus2; | ||
| 3603 | UCHAR chroma_qp_offset_list_len_minus1; | ||
| 3604 | CHAR cb_qp_offset_list[6]; | ||
| 3605 | CHAR cr_qp_offset_list[6]; | ||
| 3606 | UINT num_ref_idx_l0_active_minus1; | ||
| 3607 | UINT num_ref_idx_l1_active_minus1; | ||
| 3608 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC2; | ||
| 3609 | |||
| 3610 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 | ||
| 3611 | { | ||
| 3612 | UINT DataSize; | ||
| 3613 | union | ||
| 3614 | { | ||
| 3615 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_H264* pH264PicData; | ||
| 3616 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA_HEVC2* pHEVCPicData; | ||
| 3617 | D3D12_VIDEO_ENCODER_AV1_PICTURE_CONTROL_CODEC_DATA* pAV1PicData; | ||
| 3618 | }; | ||
| 3619 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1; | ||
| 3620 | |||
| 3621 | typedef struct D3D12_VIDEO_ENCODER_FRAME_ANALYSIS | ||
| 3622 | { | ||
| 3623 | ID3D12Resource* pDownscaledFrame; | ||
| 3624 | UINT64 Subresource; | ||
| 3625 | D3D12_VIDEO_ENCODE_REFERENCE_FRAMES DownscaledReferences; | ||
| 3626 | } D3D12_VIDEO_ENCODER_FRAME_ANALYSIS; | ||
| 3627 | |||
| 3628 | typedef struct D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 | ||
| 3629 | { | ||
| 3630 | UINT IntraRefreshFrameIndex; | ||
| 3631 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_FLAGS Flags; | ||
| 3632 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 PictureControlCodecData; | ||
| 3633 | D3D12_VIDEO_ENCODE_REFERENCE_FRAMES ReferenceFrames; | ||
| 3634 | D3D12_VIDEO_ENCODER_FRAME_MOTION_VECTORS MotionVectors; | ||
| 3635 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS DirtyRects; | ||
| 3636 | D3D12_VIDEO_ENCODER_QUANTIZATION_OPAQUE_MAP QuantizationTextureMap; | ||
| 3637 | D3D12_VIDEO_ENCODER_FRAME_ANALYSIS FrameAnalysis; | ||
| 3638 | } D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1; | ||
| 3639 | |||
| 3640 | typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1 | ||
| 3641 | { | ||
| 3642 | D3D12_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC SequenceControlDesc; | ||
| 3643 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_DESC1 PictureControlDesc; | ||
| 3644 | ID3D12Resource* pInputFrame; | ||
| 3645 | UINT InputFrameSubresource; | ||
| 3646 | UINT CurrentFrameBitstreamMetadataSize; | ||
| 3647 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; | ||
| 3648 | } D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1; | ||
| 3649 | |||
| 3650 | typedef enum D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE | ||
| 3651 | { | ||
| 3652 | D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_ARRAY_OF_BUFFERS = 0, | ||
| 3653 | D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE_SINGLE_BUFFER = 1, | ||
| 3654 | } D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE; | ||
| 3655 | |||
| 3656 | typedef struct D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM | ||
| 3657 | { | ||
| 3658 | D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM_BUFFER_MODE BufferMode; | ||
| 3659 | UINT ExpectedSubregionCount; | ||
| 3660 | UINT64* pSubregionBitstreamsBaseOffsets; | ||
| 3661 | ID3D12Resource** ppSubregionBitstreams; | ||
| 3662 | ID3D12Resource** ppSubregionSizes; | ||
| 3663 | ID3D12Resource** ppSubregionOffsets; | ||
| 3664 | ID3D12Fence** ppSubregionFences; | ||
| 3665 | UINT64* pSubregionFenceValues; | ||
| 3666 | } D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM; | ||
| 3667 | |||
| 3668 | typedef enum D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE | ||
| 3669 | { | ||
| 3670 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_FULL_FRAME = 0, | ||
| 3671 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE_SUBREGIONS = 1, | ||
| 3672 | } D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE; | ||
| 3673 | |||
| 3674 | typedef struct D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 | ||
| 3675 | { | ||
| 3676 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM_NOTIFICATION_MODE NotificationMode; | ||
| 3677 | union | ||
| 3678 | { | ||
| 3679 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM FrameOutputBuffer; | ||
| 3680 | D3D12_VIDEO_ENCODER_SUBREGION_COMPRESSED_BITSTREAM SubregionOutputBuffers; | ||
| 3681 | }; | ||
| 3682 | } D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1; | ||
| 3683 | |||
| 3684 | typedef struct D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1 | ||
| 3685 | { | ||
| 3686 | D3D12_VIDEO_ENCODER_COMPRESSED_BITSTREAM1 Bitstream; | ||
| 3687 | D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE ReconstructedPicture; | ||
| 3688 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER EncoderOutputMetadata; | ||
| 3689 | D3D12_VIDEO_ENCODER_RECONSTRUCTED_PICTURE FrameAnalysisReconstructedPicture; | ||
| 3690 | } D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1; | ||
| 3691 | |||
| 3692 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1 | ||
| 3693 | { | ||
| 3694 | D3D12_VIDEO_ENCODER_CODEC EncoderCodec; | ||
| 3695 | D3D12_VIDEO_ENCODER_PROFILE_DESC EncoderProfile; | ||
| 3696 | DXGI_FORMAT EncoderInputFormat; | ||
| 3697 | D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC EncodedPictureEffectiveResolution; | ||
| 3698 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER HWLayoutMetadata; | ||
| 3699 | D3D12_VIDEO_ENCODER_OPTIONAL_METADATA_ENABLE_FLAGS OptionalMetadata; | ||
| 3700 | D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION CodecConfiguration; | ||
| 3701 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1; | ||
| 3702 | |||
| 3703 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1 | ||
| 3704 | { | ||
| 3705 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedLayoutMetadata; | ||
| 3706 | ID3D12Resource* pOutputQPMap; | ||
| 3707 | ID3D12Resource* pOutputSATDMap; | ||
| 3708 | ID3D12Resource* pOutputBitAllocationMap; | ||
| 3709 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedFramePSNRData; | ||
| 3710 | D3D12_VIDEO_ENCODER_ENCODE_OPERATION_METADATA_BUFFER ResolvedSubregionsPSNRData; | ||
| 3711 | } D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1; | ||
| 3712 | |||
| 3713 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX | ||
| 3714 | { | ||
| 3715 | ID3D12Resource* pQuantizationMap; | ||
| 3716 | } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX; | ||
| 3717 | |||
| 3718 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS | ||
| 3719 | { | ||
| 3720 | BOOL FullFrameIdentical; | ||
| 3721 | D3D12_VIDEO_ENCODER_DIRTY_REGIONS_MAP_VALUES_MODE MapValuesType; | ||
| 3722 | ID3D12Resource* pDirtyRegionsMap; | ||
| 3723 | UINT SourceDPBFrameReference; | ||
| 3724 | } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS; | ||
| 3725 | |||
| 3726 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS | ||
| 3727 | { | ||
| 3728 | D3D12_VIDEO_ENCODER_FRAME_MOTION_SEARCH_MODE_CONFIG MotionSearchModeConfiguration; | ||
| 3729 | UINT NumHintsPerPixel; | ||
| 3730 | [annotation("_Field_size_full_(NumHintsPerPixel)")] ID3D12Resource** ppMotionVectorMaps; | ||
| 3731 | [annotation("_Field_size_full_(NumHintsPerPixel)")] UINT* pMotionVectorMapsSubresources; | ||
| 3732 | [annotation("_Field_size_full_(NumHintsPerPixel)")] ID3D12Resource** ppMotionVectorMapsMetadata; | ||
| 3733 | [annotation("_Field_size_full_(NumHintsPerPixel)")] UINT* pMotionVectorMapsMetadataSubresources; | ||
| 3734 | D3D12_VIDEO_ENCODER_FRAME_INPUT_MOTION_UNIT_PRECISION MotionUnitPrecision; | ||
| 3735 | D3D12_VIDEO_ENCODER_PICTURE_CONTROL_CODEC_DATA1 PictureControlConfiguration; | ||
| 3736 | } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS; | ||
| 3737 | |||
| 3738 | typedef struct D3D12_VIDEO_ENCODER_INPUT_MAP_DATA | ||
| 3739 | { | ||
| 3740 | D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE MapType; | ||
| 3741 | union | ||
| 3742 | { | ||
| 3743 | // For MapType: D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_QUANTIZATION_MATRIX | ||
| 3744 | D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_QUANTIZATION_MATRIX Quantization; | ||
| 3745 | // For MapType: D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_DIRTY_REGIONS | ||
| 3746 | D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_DIRTY_REGIONS DirtyRegions; | ||
| 3747 | // For MapType: D3D12_VIDEO_ENCODER_INPUT_MAP_TYPE_MOTION_VECTORS | ||
| 3748 | D3D12_VIDEO_ENCODER_INPUT_MAP_DATA_MOTION_VECTORS MotionVectors; | ||
| 3749 | }; | ||
| 3750 | } D3D12_VIDEO_ENCODER_INPUT_MAP_DATA; | ||
| 3751 | |||
| 3752 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS | ||
| 3753 | { | ||
| 3754 | D3D12_VIDEO_ENCODER_INPUT_MAP_SESSION_INFO SessionInfo; | ||
| 3755 | D3D12_VIDEO_ENCODER_INPUT_MAP_DATA InputData; | ||
| 3756 | } D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS; | ||
| 3757 | |||
| 3758 | typedef struct D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS | ||
| 3759 | { | ||
| 3760 | ID3D12Resource* pOpaqueLayoutBuffer; | ||
| 3761 | } D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS; | ||
| 3762 | |||
| 3763 | // Change this interface UUID when changing the base class in the inheritance | ||
| 3764 | [uuid(69aeb5b7-55f2-4012-8b73-3a88d65a204c), object, local, pointer_default(unique)] | ||
| 3765 | interface ID3D12VideoEncodeCommandList4 | ||
| 3766 | : ID3D12VideoEncodeCommandList3 | ||
| 3767 | { | ||
| 3768 | void EncodeFrame1( | ||
| 3769 | [annotation("_In_")] ID3D12VideoEncoder* pEncoder, | ||
| 3770 | [annotation("_In_")] ID3D12VideoEncoderHeap1* pHeap, | ||
| 3771 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_ENCODEFRAME_INPUT_ARGUMENTS1* pInputArguments, | ||
| 3772 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_ENCODEFRAME_OUTPUT_ARGUMENTS1* pOutputArguments); | ||
| 3773 | |||
| 3774 | void ResolveEncoderOutputMetadata1( | ||
| 3775 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS1* pInputArguments, | ||
| 3776 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS1* pOutputArguments); | ||
| 3777 | |||
| 3778 | void ResolveInputParamLayout( | ||
| 3779 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_INPUT_ARGUMENTS* pInputArguments, | ||
| 3780 | [annotation("_In_")] const D3D12_VIDEO_ENCODER_RESOLVE_INPUT_PARAM_LAYOUT_OUTPUT_ARGUMENTS* pOutputArguments); | ||
| 3781 | } | ||
| 3782 | |||
| 3783 | |||
| 3784 | |||
| 3785 | cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_GAMES) */") | ||
| 3786 | #pragma endregion | ||
| 3787 | |||
| 3788 | |||
| 3789 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F);" ) | ||
| 3790 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4);" ) | ||
| 3791 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70);" ) | ||
| 3792 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38);" ) | ||
| 3793 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53);" ) | ||
| 3794 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09);" ) | ||
| 3795 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72);" ) | ||
| 3796 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67);" ) | ||
| 3797 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8);" ) | ||
| 3798 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05);" ) | ||
| 3799 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB);" ) | ||
| 3800 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23);" ) | ||
| 3801 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E);" ) | ||
| 3802 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26);" ) | ||
| 3803 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C);" ) | ||
| 3804 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4);" ) | ||
| 3805 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13);" ) | ||
| 3806 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29);" ) | ||
| 3807 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDecodeCommandList3,0x2aee8c37,0x9562,0x42da,0x8a,0xbf,0x61,0xef,0xeb,0x2e,0x45,0x13);" ) | ||
| 3808 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4);" ) | ||
| 3809 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoProcessCommandList3,0x1a0a4ca4,0x9f08,0x40ce,0x95,0x58,0xb4,0x11,0xfd,0x26,0x66,0xff);" ) | ||
| 3810 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc);" ) | ||
| 3811 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncoder,0x2E0D212D,0x8DF9,0x44A6,0xA7,0x70,0xBB,0x28,0x9B,0x18,0x27,0x37);" ) | ||
| 3812 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0x8C,0x9C,0x7F,0x1C,0x4A);" ) | ||
| 3813 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice3,0x4243ADB4,0x3A32,0x4666,0x97,0x3C,0x0C,0xCC,0x56,0x25,0xDC,0x44);" ) | ||
| 3814 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList2,0x895491e2,0xe701,0x46a9,0x9a,0x1f,0x8d,0x34,0x80,0xed,0x86,0x7a);" ) | ||
| 3815 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList3,0x7f027b22,0x1515,0x4e85,0xaa,0x0d,0x02,0x64,0x86,0x58,0x05,0x76);" ) | ||
| 3816 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncoderHeap1,0xea8f1968,0x4aa0,0x43a4,0x9d,0x30,0xba,0x86,0xec,0x84,0xd4,0xf9);" ) | ||
| 3817 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoDevice4,0xe59ad09e,0xf1ae,0x42bb,0x89,0x83,0x9f,0x6e,0x55,0x86,0xc4,0xeb);" ) | ||
| 3818 | cpp_quote( "DEFINE_GUID(IID_ID3D12VideoEncodeCommandList4,0x69aeb5b7,0x55f2,0x4012,0x8b,0x73,0x3a,0x88,0xd6,0x5a,0x20,0x4c);" ) | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dcommon.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dcommon.h new file mode 100644 index 0000000..2e2418d --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dcommon.h | |||
| @@ -0,0 +1,1133 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | |||
| 8 | |||
| 9 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ | ||
| 10 | |||
| 11 | |||
| 12 | /* File created by MIDL compiler version 8.01.0628 */ | ||
| 13 | /* @@MIDL_FILE_HEADING( ) */ | ||
| 14 | |||
| 15 | |||
| 16 | |||
| 17 | /* verify that the <rpcndr.h> version is high enough to compile this file*/ | ||
| 18 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | ||
| 19 | #define __REQUIRED_RPCNDR_H_VERSION__ 500 | ||
| 20 | #endif | ||
| 21 | |||
| 22 | /* verify that the <rpcsal.h> version is high enough to compile this file*/ | ||
| 23 | #ifndef __REQUIRED_RPCSAL_H_VERSION__ | ||
| 24 | #define __REQUIRED_RPCSAL_H_VERSION__ 100 | ||
| 25 | #endif | ||
| 26 | |||
| 27 | #include "rpc.h" | ||
| 28 | #include "rpcndr.h" | ||
| 29 | |||
| 30 | #ifndef __RPCNDR_H_VERSION__ | ||
| 31 | #error this stub requires an updated version of <rpcndr.h> | ||
| 32 | #endif /* __RPCNDR_H_VERSION__ */ | ||
| 33 | |||
| 34 | #ifndef COM_NO_WINDOWS_H | ||
| 35 | #include "windows.h" | ||
| 36 | #include "ole2.h" | ||
| 37 | #endif /*COM_NO_WINDOWS_H*/ | ||
| 38 | |||
| 39 | #ifndef __d3dcommon_h__ | ||
| 40 | #define __d3dcommon_h__ | ||
| 41 | |||
| 42 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) | ||
| 43 | #pragma once | ||
| 44 | #endif | ||
| 45 | |||
| 46 | #ifndef DECLSPEC_XFGVIRT | ||
| 47 | #if defined(_CONTROL_FLOW_GUARD_XFG) | ||
| 48 | #define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) | ||
| 49 | #else | ||
| 50 | #define DECLSPEC_XFGVIRT(base, func) | ||
| 51 | #endif | ||
| 52 | #endif | ||
| 53 | |||
| 54 | /* Forward Declarations */ | ||
| 55 | |||
| 56 | #ifndef __ID3D10Blob_FWD_DEFINED__ | ||
| 57 | #define __ID3D10Blob_FWD_DEFINED__ | ||
| 58 | typedef interface ID3D10Blob ID3D10Blob; | ||
| 59 | |||
| 60 | #endif /* __ID3D10Blob_FWD_DEFINED__ */ | ||
| 61 | |||
| 62 | |||
| 63 | #ifndef __ID3DDestructionNotifier_FWD_DEFINED__ | ||
| 64 | #define __ID3DDestructionNotifier_FWD_DEFINED__ | ||
| 65 | typedef interface ID3DDestructionNotifier ID3DDestructionNotifier; | ||
| 66 | |||
| 67 | #endif /* __ID3DDestructionNotifier_FWD_DEFINED__ */ | ||
| 68 | |||
| 69 | |||
| 70 | /* header files for imported files */ | ||
| 71 | #include "oaidl.h" | ||
| 72 | #include "ocidl.h" | ||
| 73 | |||
| 74 | #ifdef __cplusplus | ||
| 75 | extern "C"{ | ||
| 76 | #endif | ||
| 77 | |||
| 78 | |||
| 79 | /* interface __MIDL_itf_d3dcommon_0000_0000 */ | ||
| 80 | /* [local] */ | ||
| 81 | |||
| 82 | typedef | ||
| 83 | enum D3D_DRIVER_TYPE | ||
| 84 | { | ||
| 85 | D3D_DRIVER_TYPE_UNKNOWN = 0, | ||
| 86 | D3D_DRIVER_TYPE_HARDWARE = ( D3D_DRIVER_TYPE_UNKNOWN + 1 ) , | ||
| 87 | D3D_DRIVER_TYPE_REFERENCE = ( D3D_DRIVER_TYPE_HARDWARE + 1 ) , | ||
| 88 | D3D_DRIVER_TYPE_NULL = ( D3D_DRIVER_TYPE_REFERENCE + 1 ) , | ||
| 89 | D3D_DRIVER_TYPE_SOFTWARE = ( D3D_DRIVER_TYPE_NULL + 1 ) , | ||
| 90 | D3D_DRIVER_TYPE_WARP = ( D3D_DRIVER_TYPE_SOFTWARE + 1 ) | ||
| 91 | } D3D_DRIVER_TYPE; | ||
| 92 | |||
| 93 | typedef | ||
| 94 | enum D3D_FEATURE_LEVEL | ||
| 95 | { | ||
| 96 | D3D_FEATURE_LEVEL_1_0_GENERIC = 0x100, | ||
| 97 | D3D_FEATURE_LEVEL_1_0_CORE = 0x1000, | ||
| 98 | D3D_FEATURE_LEVEL_9_1 = 0x9100, | ||
| 99 | D3D_FEATURE_LEVEL_9_2 = 0x9200, | ||
| 100 | D3D_FEATURE_LEVEL_9_3 = 0x9300, | ||
| 101 | D3D_FEATURE_LEVEL_10_0 = 0xa000, | ||
| 102 | D3D_FEATURE_LEVEL_10_1 = 0xa100, | ||
| 103 | D3D_FEATURE_LEVEL_11_0 = 0xb000, | ||
| 104 | D3D_FEATURE_LEVEL_11_1 = 0xb100, | ||
| 105 | D3D_FEATURE_LEVEL_12_0 = 0xc000, | ||
| 106 | D3D_FEATURE_LEVEL_12_1 = 0xc100, | ||
| 107 | D3D_FEATURE_LEVEL_12_2 = 0xc200 | ||
| 108 | } D3D_FEATURE_LEVEL; | ||
| 109 | |||
| 110 | #define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048 | ||
| 111 | #define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096 | ||
| 112 | #define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048 | ||
| 113 | #define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096 | ||
| 114 | #define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512 | ||
| 115 | #define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096 | ||
| 116 | #define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256 | ||
| 117 | #define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2 | ||
| 118 | #define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535 | ||
| 119 | #define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575 | ||
| 120 | #define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1 | ||
| 121 | #define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4 | ||
| 122 | #define D3D_FL9_1_MAX_TEXTURE_REPEAT 128 | ||
| 123 | #define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048 | ||
| 124 | #define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192 | ||
| 125 | typedef | ||
| 126 | enum D3D_PRIMITIVE_TOPOLOGY | ||
| 127 | { | ||
| 128 | D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, | ||
| 129 | D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1, | ||
| 130 | D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2, | ||
| 131 | D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, | ||
| 132 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, | ||
| 133 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, | ||
| 134 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN = 6, | ||
| 135 | D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, | ||
| 136 | D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, | ||
| 137 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, | ||
| 138 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13, | ||
| 139 | D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33, | ||
| 140 | D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34, | ||
| 141 | D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35, | ||
| 142 | D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36, | ||
| 143 | D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37, | ||
| 144 | D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38, | ||
| 145 | D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39, | ||
| 146 | D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40, | ||
| 147 | D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41, | ||
| 148 | D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42, | ||
| 149 | D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43, | ||
| 150 | D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44, | ||
| 151 | D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45, | ||
| 152 | D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46, | ||
| 153 | D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47, | ||
| 154 | D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48, | ||
| 155 | D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49, | ||
| 156 | D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50, | ||
| 157 | D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51, | ||
| 158 | D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52, | ||
| 159 | D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53, | ||
| 160 | D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54, | ||
| 161 | D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55, | ||
| 162 | D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56, | ||
| 163 | D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57, | ||
| 164 | D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58, | ||
| 165 | D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59, | ||
| 166 | D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60, | ||
| 167 | D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61, | ||
| 168 | D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62, | ||
| 169 | D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63, | ||
| 170 | D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64, | ||
| 171 | D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, | ||
| 172 | D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, | ||
| 173 | D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, | ||
| 174 | D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, | ||
| 175 | D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, | ||
| 176 | D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, | ||
| 177 | D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, | ||
| 178 | D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, | ||
| 179 | D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, | ||
| 180 | D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, | ||
| 181 | D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, | ||
| 182 | D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, | ||
| 183 | D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, | ||
| 184 | D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, | ||
| 185 | D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, | ||
| 186 | D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, | ||
| 187 | D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, | ||
| 188 | D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, | ||
| 189 | D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, | ||
| 190 | D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, | ||
| 191 | D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, | ||
| 192 | D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, | ||
| 193 | D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, | ||
| 194 | D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, | ||
| 195 | D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, | ||
| 196 | D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, | ||
| 197 | D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, | ||
| 198 | D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, | ||
| 199 | D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, | ||
| 200 | D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, | ||
| 201 | D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, | ||
| 202 | D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, | ||
| 203 | D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, | ||
| 204 | D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, | ||
| 205 | D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, | ||
| 206 | D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, | ||
| 207 | D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, | ||
| 208 | D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, | ||
| 209 | D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, | ||
| 210 | D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, | ||
| 211 | D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, | ||
| 212 | D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, | ||
| 213 | D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, | ||
| 214 | D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, | ||
| 215 | D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, | ||
| 216 | D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, | ||
| 217 | D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, | ||
| 218 | D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, | ||
| 219 | D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, | ||
| 220 | D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, | ||
| 221 | D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, | ||
| 222 | D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST | ||
| 223 | } D3D_PRIMITIVE_TOPOLOGY; | ||
| 224 | |||
| 225 | typedef | ||
| 226 | enum D3D_PRIMITIVE | ||
| 227 | { | ||
| 228 | D3D_PRIMITIVE_UNDEFINED = 0, | ||
| 229 | D3D_PRIMITIVE_POINT = 1, | ||
| 230 | D3D_PRIMITIVE_LINE = 2, | ||
| 231 | D3D_PRIMITIVE_TRIANGLE = 3, | ||
| 232 | D3D_PRIMITIVE_LINE_ADJ = 6, | ||
| 233 | D3D_PRIMITIVE_TRIANGLE_ADJ = 7, | ||
| 234 | D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8, | ||
| 235 | D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9, | ||
| 236 | D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10, | ||
| 237 | D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11, | ||
| 238 | D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12, | ||
| 239 | D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13, | ||
| 240 | D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14, | ||
| 241 | D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15, | ||
| 242 | D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16, | ||
| 243 | D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17, | ||
| 244 | D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18, | ||
| 245 | D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19, | ||
| 246 | D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20, | ||
| 247 | D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21, | ||
| 248 | D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22, | ||
| 249 | D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23, | ||
| 250 | D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, | ||
| 251 | D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, | ||
| 252 | D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, | ||
| 253 | D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27, | ||
| 254 | D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28, | ||
| 255 | D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29, | ||
| 256 | D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30, | ||
| 257 | D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31, | ||
| 258 | D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32, | ||
| 259 | D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33, | ||
| 260 | D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34, | ||
| 261 | D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35, | ||
| 262 | D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36, | ||
| 263 | D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37, | ||
| 264 | D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38, | ||
| 265 | D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39, | ||
| 266 | D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, | ||
| 267 | D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, | ||
| 268 | D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, | ||
| 269 | D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, | ||
| 270 | D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, | ||
| 271 | D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, | ||
| 272 | D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, | ||
| 273 | D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, | ||
| 274 | D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, | ||
| 275 | D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, | ||
| 276 | D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, | ||
| 277 | D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, | ||
| 278 | D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH, | ||
| 279 | D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH, | ||
| 280 | D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH, | ||
| 281 | D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH, | ||
| 282 | D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH, | ||
| 283 | D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH, | ||
| 284 | D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH, | ||
| 285 | D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH, | ||
| 286 | D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH, | ||
| 287 | D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH, | ||
| 288 | D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH, | ||
| 289 | D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH, | ||
| 290 | D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH, | ||
| 291 | D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH, | ||
| 292 | D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH, | ||
| 293 | D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH, | ||
| 294 | D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH, | ||
| 295 | D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH, | ||
| 296 | D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH, | ||
| 297 | D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH, | ||
| 298 | D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH, | ||
| 299 | D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH, | ||
| 300 | D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH, | ||
| 301 | D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH, | ||
| 302 | D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH, | ||
| 303 | D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH, | ||
| 304 | D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH, | ||
| 305 | D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH, | ||
| 306 | D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH, | ||
| 307 | D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH, | ||
| 308 | D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH, | ||
| 309 | D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH | ||
| 310 | } D3D_PRIMITIVE; | ||
| 311 | |||
| 312 | typedef | ||
| 313 | enum D3D_SRV_DIMENSION | ||
| 314 | { | ||
| 315 | D3D_SRV_DIMENSION_UNKNOWN = 0, | ||
| 316 | D3D_SRV_DIMENSION_BUFFER = 1, | ||
| 317 | D3D_SRV_DIMENSION_TEXTURE1D = 2, | ||
| 318 | D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3, | ||
| 319 | D3D_SRV_DIMENSION_TEXTURE2D = 4, | ||
| 320 | D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5, | ||
| 321 | D3D_SRV_DIMENSION_TEXTURE2DMS = 6, | ||
| 322 | D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, | ||
| 323 | D3D_SRV_DIMENSION_TEXTURE3D = 8, | ||
| 324 | D3D_SRV_DIMENSION_TEXTURECUBE = 9, | ||
| 325 | D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10, | ||
| 326 | D3D_SRV_DIMENSION_BUFFEREX = 11, | ||
| 327 | D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, | ||
| 328 | D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, | ||
| 329 | D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, | ||
| 330 | D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, | ||
| 331 | D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, | ||
| 332 | D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, | ||
| 333 | D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, | ||
| 334 | D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, | ||
| 335 | D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, | ||
| 336 | D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, | ||
| 337 | D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, | ||
| 338 | D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, | ||
| 339 | D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, | ||
| 340 | D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, | ||
| 341 | D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, | ||
| 342 | D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, | ||
| 343 | D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, | ||
| 344 | D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, | ||
| 345 | D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, | ||
| 346 | D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, | ||
| 347 | D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, | ||
| 348 | D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, | ||
| 349 | D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, | ||
| 350 | D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, | ||
| 351 | D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, | ||
| 352 | D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, | ||
| 353 | D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, | ||
| 354 | D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, | ||
| 355 | D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, | ||
| 356 | D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, | ||
| 357 | D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, | ||
| 358 | D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, | ||
| 359 | D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX | ||
| 360 | } D3D_SRV_DIMENSION; | ||
| 361 | |||
| 362 | #define D3D_SHADER_FEATURE_DOUBLES 0x00001 | ||
| 363 | #define D3D_SHADER_FEATURE_COMPUTE_SHADERS_PLUS_RAW_AND_STRUCTURED_BUFFERS_VIA_SHADER_4_X 0x00002 | ||
| 364 | #define D3D_SHADER_FEATURE_UAVS_AT_EVERY_STAGE 0x00004 | ||
| 365 | #define D3D_SHADER_FEATURE_64_UAVS 0x00008 | ||
| 366 | #define D3D_SHADER_FEATURE_MINIMUM_PRECISION 0x00010 | ||
| 367 | #define D3D_SHADER_FEATURE_11_1_DOUBLE_EXTENSIONS 0x00020 | ||
| 368 | #define D3D_SHADER_FEATURE_11_1_SHADER_EXTENSIONS 0x00040 | ||
| 369 | #define D3D_SHADER_FEATURE_LEVEL_9_COMPARISON_FILTERING 0x00080 | ||
| 370 | #define D3D_SHADER_FEATURE_TILED_RESOURCES 0x00100 | ||
| 371 | #define D3D_SHADER_FEATURE_STENCIL_REF 0x00200 | ||
| 372 | #define D3D_SHADER_FEATURE_INNER_COVERAGE 0x00400 | ||
| 373 | #define D3D_SHADER_FEATURE_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00800 | ||
| 374 | #define D3D_SHADER_FEATURE_ROVS 0x01000 | ||
| 375 | #define D3D_SHADER_FEATURE_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x02000 | ||
| 376 | #define D3D_SHADER_FEATURE_WAVE_OPS 0x04000 | ||
| 377 | #define D3D_SHADER_FEATURE_INT64_OPS 0x08000 | ||
| 378 | #define D3D_SHADER_FEATURE_VIEW_ID 0x10000 | ||
| 379 | #define D3D_SHADER_FEATURE_BARYCENTRICS 0x20000 | ||
| 380 | #define D3D_SHADER_FEATURE_NATIVE_16BIT_OPS 0x40000 | ||
| 381 | #define D3D_SHADER_FEATURE_SHADING_RATE 0x80000 | ||
| 382 | #define D3D_SHADER_FEATURE_RAYTRACING_TIER_1_1 0x100000 | ||
| 383 | #define D3D_SHADER_FEATURE_SAMPLER_FEEDBACK 0x200000 | ||
| 384 | #define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_TYPED_RESOURCE 0x400000 | ||
| 385 | #define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_GROUP_SHARED 0x800000 | ||
| 386 | #define D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x1000000 | ||
| 387 | #define D3D_SHADER_FEATURE_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x2000000 | ||
| 388 | #define D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x4000000 | ||
| 389 | #define D3D_SHADER_FEATURE_WAVE_MMA 0x8000000 | ||
| 390 | #define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000 | ||
| 391 | #define D3D_SHADER_FEATURE_ADVANCED_TEXTURE_OPS 0x20000000 | ||
| 392 | #define D3D_SHADER_FEATURE_WRITEABLE_MSAA_TEXTURES 0x40000000 | ||
| 393 | #define D3D_SHADER_FEATURE_SAMPLE_CMP_GRADIENT_OR_BIAS 0x80000000 | ||
| 394 | #define D3D_SHADER_FEATURE_EXTENDED_COMMAND_INFO 0x100000000ull | ||
| 395 | #define D3D_OPT_SHADER_FEATURE_USES_DERIVATIVES 0x0000010000000000ull | ||
| 396 | #define D3D_OPT_SHADER_FEATURE_REQUIRES_GROUP 0x0000020000000000ull | ||
| 397 | typedef struct _D3D_SHADER_MACRO | ||
| 398 | { | ||
| 399 | LPCSTR Name; | ||
| 400 | LPCSTR Definition; | ||
| 401 | } D3D_SHADER_MACRO; | ||
| 402 | |||
| 403 | typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO; | ||
| 404 | |||
| 405 | DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2); | ||
| 406 | |||
| 407 | |||
| 408 | extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_c_ifspec; | ||
| 409 | extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0000_v0_0_s_ifspec; | ||
| 410 | |||
| 411 | #ifndef __ID3D10Blob_INTERFACE_DEFINED__ | ||
| 412 | #define __ID3D10Blob_INTERFACE_DEFINED__ | ||
| 413 | |||
| 414 | /* interface ID3D10Blob */ | ||
| 415 | /* [unique][local][object][uuid] */ | ||
| 416 | |||
| 417 | |||
| 418 | EXTERN_C const IID IID_ID3D10Blob; | ||
| 419 | |||
| 420 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 421 | |||
| 422 | MIDL_INTERFACE("8BA5FB08-5195-40e2-AC58-0D989C3A0102") | ||
| 423 | ID3D10Blob : public IUnknown | ||
| 424 | { | ||
| 425 | public: | ||
| 426 | virtual LPVOID STDMETHODCALLTYPE GetBufferPointer( void) = 0; | ||
| 427 | |||
| 428 | virtual SIZE_T STDMETHODCALLTYPE GetBufferSize( void) = 0; | ||
| 429 | |||
| 430 | }; | ||
| 431 | |||
| 432 | |||
| 433 | #else /* C style interface */ | ||
| 434 | |||
| 435 | typedef struct ID3D10BlobVtbl | ||
| 436 | { | ||
| 437 | BEGIN_INTERFACE | ||
| 438 | |||
| 439 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 440 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 441 | ID3D10Blob * This, | ||
| 442 | /* [in] */ REFIID riid, | ||
| 443 | /* [annotation][iid_is][out] */ | ||
| 444 | _COM_Outptr_ void **ppvObject); | ||
| 445 | |||
| 446 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 447 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 448 | ID3D10Blob * This); | ||
| 449 | |||
| 450 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 451 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 452 | ID3D10Blob * This); | ||
| 453 | |||
| 454 | DECLSPEC_XFGVIRT(ID3D10Blob, GetBufferPointer) | ||
| 455 | LPVOID ( STDMETHODCALLTYPE *GetBufferPointer )( | ||
| 456 | ID3D10Blob * This); | ||
| 457 | |||
| 458 | DECLSPEC_XFGVIRT(ID3D10Blob, GetBufferSize) | ||
| 459 | SIZE_T ( STDMETHODCALLTYPE *GetBufferSize )( | ||
| 460 | ID3D10Blob * This); | ||
| 461 | |||
| 462 | END_INTERFACE | ||
| 463 | } ID3D10BlobVtbl; | ||
| 464 | |||
| 465 | interface ID3D10Blob | ||
| 466 | { | ||
| 467 | CONST_VTBL struct ID3D10BlobVtbl *lpVtbl; | ||
| 468 | }; | ||
| 469 | |||
| 470 | |||
| 471 | |||
| 472 | #ifdef COBJMACROS | ||
| 473 | |||
| 474 | |||
| 475 | #define ID3D10Blob_QueryInterface(This,riid,ppvObject) \ | ||
| 476 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 477 | |||
| 478 | #define ID3D10Blob_AddRef(This) \ | ||
| 479 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 480 | |||
| 481 | #define ID3D10Blob_Release(This) \ | ||
| 482 | ( (This)->lpVtbl -> Release(This) ) | ||
| 483 | |||
| 484 | |||
| 485 | #define ID3D10Blob_GetBufferPointer(This) \ | ||
| 486 | ( (This)->lpVtbl -> GetBufferPointer(This) ) | ||
| 487 | |||
| 488 | #define ID3D10Blob_GetBufferSize(This) \ | ||
| 489 | ( (This)->lpVtbl -> GetBufferSize(This) ) | ||
| 490 | |||
| 491 | #endif /* COBJMACROS */ | ||
| 492 | |||
| 493 | |||
| 494 | #endif /* C style interface */ | ||
| 495 | |||
| 496 | |||
| 497 | |||
| 498 | |||
| 499 | #endif /* __ID3D10Blob_INTERFACE_DEFINED__ */ | ||
| 500 | |||
| 501 | |||
| 502 | /* interface __MIDL_itf_d3dcommon_0000_0001 */ | ||
| 503 | /* [local] */ | ||
| 504 | |||
| 505 | typedef interface ID3D10Blob* LPD3D10BLOB; | ||
| 506 | typedef ID3D10Blob ID3DBlob; | ||
| 507 | |||
| 508 | typedef ID3DBlob* LPD3DBLOB; | ||
| 509 | #define IID_ID3DBlob IID_ID3D10Blob | ||
| 510 | typedef void ( __stdcall *PFN_DESTRUCTION_CALLBACK )( | ||
| 511 | void *pData); | ||
| 512 | |||
| 513 | |||
| 514 | |||
| 515 | extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_c_ifspec; | ||
| 516 | extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0001_v0_0_s_ifspec; | ||
| 517 | |||
| 518 | #ifndef __ID3DDestructionNotifier_INTERFACE_DEFINED__ | ||
| 519 | #define __ID3DDestructionNotifier_INTERFACE_DEFINED__ | ||
| 520 | |||
| 521 | /* interface ID3DDestructionNotifier */ | ||
| 522 | /* [unique][local][object][uuid] */ | ||
| 523 | |||
| 524 | |||
| 525 | EXTERN_C const IID IID_ID3DDestructionNotifier; | ||
| 526 | |||
| 527 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 528 | |||
| 529 | MIDL_INTERFACE("a06eb39a-50da-425b-8c31-4eecd6c270f3") | ||
| 530 | ID3DDestructionNotifier : public IUnknown | ||
| 531 | { | ||
| 532 | public: | ||
| 533 | virtual HRESULT STDMETHODCALLTYPE RegisterDestructionCallback( | ||
| 534 | /* [annotation] */ | ||
| 535 | _In_ PFN_DESTRUCTION_CALLBACK callbackFn, | ||
| 536 | /* [annotation] */ | ||
| 537 | _In_ void *pData, | ||
| 538 | /* [annotation] */ | ||
| 539 | _Out_ UINT *pCallbackID) = 0; | ||
| 540 | |||
| 541 | virtual HRESULT STDMETHODCALLTYPE UnregisterDestructionCallback( | ||
| 542 | /* [annotation] */ | ||
| 543 | _In_ UINT callbackID) = 0; | ||
| 544 | |||
| 545 | }; | ||
| 546 | |||
| 547 | |||
| 548 | #else /* C style interface */ | ||
| 549 | |||
| 550 | typedef struct ID3DDestructionNotifierVtbl | ||
| 551 | { | ||
| 552 | BEGIN_INTERFACE | ||
| 553 | |||
| 554 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 555 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 556 | ID3DDestructionNotifier * This, | ||
| 557 | /* [in] */ REFIID riid, | ||
| 558 | /* [annotation][iid_is][out] */ | ||
| 559 | _COM_Outptr_ void **ppvObject); | ||
| 560 | |||
| 561 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 562 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 563 | ID3DDestructionNotifier * This); | ||
| 564 | |||
| 565 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 566 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 567 | ID3DDestructionNotifier * This); | ||
| 568 | |||
| 569 | DECLSPEC_XFGVIRT(ID3DDestructionNotifier, RegisterDestructionCallback) | ||
| 570 | HRESULT ( STDMETHODCALLTYPE *RegisterDestructionCallback )( | ||
| 571 | ID3DDestructionNotifier * This, | ||
| 572 | /* [annotation] */ | ||
| 573 | _In_ PFN_DESTRUCTION_CALLBACK callbackFn, | ||
| 574 | /* [annotation] */ | ||
| 575 | _In_ void *pData, | ||
| 576 | /* [annotation] */ | ||
| 577 | _Out_ UINT *pCallbackID); | ||
| 578 | |||
| 579 | DECLSPEC_XFGVIRT(ID3DDestructionNotifier, UnregisterDestructionCallback) | ||
| 580 | HRESULT ( STDMETHODCALLTYPE *UnregisterDestructionCallback )( | ||
| 581 | ID3DDestructionNotifier * This, | ||
| 582 | /* [annotation] */ | ||
| 583 | _In_ UINT callbackID); | ||
| 584 | |||
| 585 | END_INTERFACE | ||
| 586 | } ID3DDestructionNotifierVtbl; | ||
| 587 | |||
| 588 | interface ID3DDestructionNotifier | ||
| 589 | { | ||
| 590 | CONST_VTBL struct ID3DDestructionNotifierVtbl *lpVtbl; | ||
| 591 | }; | ||
| 592 | |||
| 593 | |||
| 594 | |||
| 595 | #ifdef COBJMACROS | ||
| 596 | |||
| 597 | |||
| 598 | #define ID3DDestructionNotifier_QueryInterface(This,riid,ppvObject) \ | ||
| 599 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 600 | |||
| 601 | #define ID3DDestructionNotifier_AddRef(This) \ | ||
| 602 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 603 | |||
| 604 | #define ID3DDestructionNotifier_Release(This) \ | ||
| 605 | ( (This)->lpVtbl -> Release(This) ) | ||
| 606 | |||
| 607 | |||
| 608 | #define ID3DDestructionNotifier_RegisterDestructionCallback(This,callbackFn,pData,pCallbackID) \ | ||
| 609 | ( (This)->lpVtbl -> RegisterDestructionCallback(This,callbackFn,pData,pCallbackID) ) | ||
| 610 | |||
| 611 | #define ID3DDestructionNotifier_UnregisterDestructionCallback(This,callbackID) \ | ||
| 612 | ( (This)->lpVtbl -> UnregisterDestructionCallback(This,callbackID) ) | ||
| 613 | |||
| 614 | #endif /* COBJMACROS */ | ||
| 615 | |||
| 616 | |||
| 617 | #endif /* C style interface */ | ||
| 618 | |||
| 619 | |||
| 620 | |||
| 621 | |||
| 622 | #endif /* __ID3DDestructionNotifier_INTERFACE_DEFINED__ */ | ||
| 623 | |||
| 624 | |||
| 625 | /* interface __MIDL_itf_d3dcommon_0000_0002 */ | ||
| 626 | /* [local] */ | ||
| 627 | |||
| 628 | typedef | ||
| 629 | enum _D3D_INCLUDE_TYPE | ||
| 630 | { | ||
| 631 | D3D_INCLUDE_LOCAL = 0, | ||
| 632 | D3D_INCLUDE_SYSTEM = ( D3D_INCLUDE_LOCAL + 1 ) , | ||
| 633 | D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL, | ||
| 634 | D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM, | ||
| 635 | D3D_INCLUDE_FORCE_DWORD = 0x7fffffff | ||
| 636 | } D3D_INCLUDE_TYPE; | ||
| 637 | |||
| 638 | typedef interface ID3DInclude ID3DInclude; | ||
| 639 | #undef INTERFACE | ||
| 640 | #define INTERFACE ID3DInclude | ||
| 641 | DECLARE_INTERFACE(ID3DInclude) | ||
| 642 | { | ||
| 643 | STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE; | ||
| 644 | STDMETHOD(Close)(THIS_ LPCVOID pData) PURE; | ||
| 645 | }; | ||
| 646 | typedef ID3DInclude* LPD3DINCLUDE; | ||
| 647 | typedef | ||
| 648 | enum _D3D_SHADER_VARIABLE_CLASS | ||
| 649 | { | ||
| 650 | D3D_SVC_SCALAR = 0, | ||
| 651 | D3D_SVC_VECTOR = ( D3D_SVC_SCALAR + 1 ) , | ||
| 652 | D3D_SVC_MATRIX_ROWS = ( D3D_SVC_VECTOR + 1 ) , | ||
| 653 | D3D_SVC_MATRIX_COLUMNS = ( D3D_SVC_MATRIX_ROWS + 1 ) , | ||
| 654 | D3D_SVC_OBJECT = ( D3D_SVC_MATRIX_COLUMNS + 1 ) , | ||
| 655 | D3D_SVC_STRUCT = ( D3D_SVC_OBJECT + 1 ) , | ||
| 656 | D3D_SVC_INTERFACE_CLASS = ( D3D_SVC_STRUCT + 1 ) , | ||
| 657 | D3D_SVC_INTERFACE_POINTER = ( D3D_SVC_INTERFACE_CLASS + 1 ) , | ||
| 658 | D3D10_SVC_SCALAR = D3D_SVC_SCALAR, | ||
| 659 | D3D10_SVC_VECTOR = D3D_SVC_VECTOR, | ||
| 660 | D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS, | ||
| 661 | D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS, | ||
| 662 | D3D10_SVC_OBJECT = D3D_SVC_OBJECT, | ||
| 663 | D3D10_SVC_STRUCT = D3D_SVC_STRUCT, | ||
| 664 | D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS, | ||
| 665 | D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER, | ||
| 666 | D3D_SVC_FORCE_DWORD = 0x7fffffff | ||
| 667 | } D3D_SHADER_VARIABLE_CLASS; | ||
| 668 | |||
| 669 | typedef | ||
| 670 | enum _D3D_SHADER_VARIABLE_FLAGS | ||
| 671 | { | ||
| 672 | D3D_SVF_USERPACKED = 1, | ||
| 673 | D3D_SVF_USED = 2, | ||
| 674 | D3D_SVF_INTERFACE_POINTER = 4, | ||
| 675 | D3D_SVF_INTERFACE_PARAMETER = 8, | ||
| 676 | D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED, | ||
| 677 | D3D10_SVF_USED = D3D_SVF_USED, | ||
| 678 | D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER, | ||
| 679 | D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER, | ||
| 680 | D3D_SVF_FORCE_DWORD = 0x7fffffff | ||
| 681 | } D3D_SHADER_VARIABLE_FLAGS; | ||
| 682 | |||
| 683 | typedef | ||
| 684 | enum _D3D_SHADER_VARIABLE_TYPE | ||
| 685 | { | ||
| 686 | D3D_SVT_VOID = 0, | ||
| 687 | D3D_SVT_BOOL = 1, | ||
| 688 | D3D_SVT_INT = 2, | ||
| 689 | D3D_SVT_FLOAT = 3, | ||
| 690 | D3D_SVT_STRING = 4, | ||
| 691 | D3D_SVT_TEXTURE = 5, | ||
| 692 | D3D_SVT_TEXTURE1D = 6, | ||
| 693 | D3D_SVT_TEXTURE2D = 7, | ||
| 694 | D3D_SVT_TEXTURE3D = 8, | ||
| 695 | D3D_SVT_TEXTURECUBE = 9, | ||
| 696 | D3D_SVT_SAMPLER = 10, | ||
| 697 | D3D_SVT_SAMPLER1D = 11, | ||
| 698 | D3D_SVT_SAMPLER2D = 12, | ||
| 699 | D3D_SVT_SAMPLER3D = 13, | ||
| 700 | D3D_SVT_SAMPLERCUBE = 14, | ||
| 701 | D3D_SVT_PIXELSHADER = 15, | ||
| 702 | D3D_SVT_VERTEXSHADER = 16, | ||
| 703 | D3D_SVT_PIXELFRAGMENT = 17, | ||
| 704 | D3D_SVT_VERTEXFRAGMENT = 18, | ||
| 705 | D3D_SVT_UINT = 19, | ||
| 706 | D3D_SVT_UINT8 = 20, | ||
| 707 | D3D_SVT_GEOMETRYSHADER = 21, | ||
| 708 | D3D_SVT_RASTERIZER = 22, | ||
| 709 | D3D_SVT_DEPTHSTENCIL = 23, | ||
| 710 | D3D_SVT_BLEND = 24, | ||
| 711 | D3D_SVT_BUFFER = 25, | ||
| 712 | D3D_SVT_CBUFFER = 26, | ||
| 713 | D3D_SVT_TBUFFER = 27, | ||
| 714 | D3D_SVT_TEXTURE1DARRAY = 28, | ||
| 715 | D3D_SVT_TEXTURE2DARRAY = 29, | ||
| 716 | D3D_SVT_RENDERTARGETVIEW = 30, | ||
| 717 | D3D_SVT_DEPTHSTENCILVIEW = 31, | ||
| 718 | D3D_SVT_TEXTURE2DMS = 32, | ||
| 719 | D3D_SVT_TEXTURE2DMSARRAY = 33, | ||
| 720 | D3D_SVT_TEXTURECUBEARRAY = 34, | ||
| 721 | D3D_SVT_HULLSHADER = 35, | ||
| 722 | D3D_SVT_DOMAINSHADER = 36, | ||
| 723 | D3D_SVT_INTERFACE_POINTER = 37, | ||
| 724 | D3D_SVT_COMPUTESHADER = 38, | ||
| 725 | D3D_SVT_DOUBLE = 39, | ||
| 726 | D3D_SVT_RWTEXTURE1D = 40, | ||
| 727 | D3D_SVT_RWTEXTURE1DARRAY = 41, | ||
| 728 | D3D_SVT_RWTEXTURE2D = 42, | ||
| 729 | D3D_SVT_RWTEXTURE2DARRAY = 43, | ||
| 730 | D3D_SVT_RWTEXTURE3D = 44, | ||
| 731 | D3D_SVT_RWBUFFER = 45, | ||
| 732 | D3D_SVT_BYTEADDRESS_BUFFER = 46, | ||
| 733 | D3D_SVT_RWBYTEADDRESS_BUFFER = 47, | ||
| 734 | D3D_SVT_STRUCTURED_BUFFER = 48, | ||
| 735 | D3D_SVT_RWSTRUCTURED_BUFFER = 49, | ||
| 736 | D3D_SVT_APPEND_STRUCTURED_BUFFER = 50, | ||
| 737 | D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51, | ||
| 738 | D3D_SVT_MIN8FLOAT = 52, | ||
| 739 | D3D_SVT_MIN10FLOAT = 53, | ||
| 740 | D3D_SVT_MIN16FLOAT = 54, | ||
| 741 | D3D_SVT_MIN12INT = 55, | ||
| 742 | D3D_SVT_MIN16INT = 56, | ||
| 743 | D3D_SVT_MIN16UINT = 57, | ||
| 744 | D3D_SVT_INT16 = 58, | ||
| 745 | D3D_SVT_UINT16 = 59, | ||
| 746 | D3D_SVT_FLOAT16 = 60, | ||
| 747 | D3D_SVT_INT64 = 61, | ||
| 748 | D3D_SVT_UINT64 = 62, | ||
| 749 | D3D10_SVT_VOID = D3D_SVT_VOID, | ||
| 750 | D3D10_SVT_BOOL = D3D_SVT_BOOL, | ||
| 751 | D3D10_SVT_INT = D3D_SVT_INT, | ||
| 752 | D3D10_SVT_FLOAT = D3D_SVT_FLOAT, | ||
| 753 | D3D10_SVT_STRING = D3D_SVT_STRING, | ||
| 754 | D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE, | ||
| 755 | D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D, | ||
| 756 | D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D, | ||
| 757 | D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D, | ||
| 758 | D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE, | ||
| 759 | D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER, | ||
| 760 | D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D, | ||
| 761 | D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D, | ||
| 762 | D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D, | ||
| 763 | D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE, | ||
| 764 | D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER, | ||
| 765 | D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER, | ||
| 766 | D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT, | ||
| 767 | D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT, | ||
| 768 | D3D10_SVT_UINT = D3D_SVT_UINT, | ||
| 769 | D3D10_SVT_UINT8 = D3D_SVT_UINT8, | ||
| 770 | D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER, | ||
| 771 | D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER, | ||
| 772 | D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL, | ||
| 773 | D3D10_SVT_BLEND = D3D_SVT_BLEND, | ||
| 774 | D3D10_SVT_BUFFER = D3D_SVT_BUFFER, | ||
| 775 | D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER, | ||
| 776 | D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER, | ||
| 777 | D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY, | ||
| 778 | D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY, | ||
| 779 | D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW, | ||
| 780 | D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW, | ||
| 781 | D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS, | ||
| 782 | D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY, | ||
| 783 | D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY, | ||
| 784 | D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER, | ||
| 785 | D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER, | ||
| 786 | D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER, | ||
| 787 | D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER, | ||
| 788 | D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE, | ||
| 789 | D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D, | ||
| 790 | D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY, | ||
| 791 | D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D, | ||
| 792 | D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY, | ||
| 793 | D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D, | ||
| 794 | D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER, | ||
| 795 | D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER, | ||
| 796 | D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER, | ||
| 797 | D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER, | ||
| 798 | D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER, | ||
| 799 | D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER, | ||
| 800 | D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER, | ||
| 801 | D3D_SVT_FORCE_DWORD = 0x7fffffff | ||
| 802 | } D3D_SHADER_VARIABLE_TYPE; | ||
| 803 | |||
| 804 | typedef | ||
| 805 | enum _D3D_SHADER_INPUT_FLAGS | ||
| 806 | { | ||
| 807 | D3D_SIF_USERPACKED = 0x1, | ||
| 808 | D3D_SIF_COMPARISON_SAMPLER = 0x2, | ||
| 809 | D3D_SIF_TEXTURE_COMPONENT_0 = 0x4, | ||
| 810 | D3D_SIF_TEXTURE_COMPONENT_1 = 0x8, | ||
| 811 | D3D_SIF_TEXTURE_COMPONENTS = 0xc, | ||
| 812 | D3D_SIF_UNUSED = 0x10, | ||
| 813 | D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED, | ||
| 814 | D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER, | ||
| 815 | D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0, | ||
| 816 | D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1, | ||
| 817 | D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS, | ||
| 818 | D3D_SIF_FORCE_DWORD = 0x7fffffff | ||
| 819 | } D3D_SHADER_INPUT_FLAGS; | ||
| 820 | |||
| 821 | typedef | ||
| 822 | enum _D3D_SHADER_INPUT_TYPE | ||
| 823 | { | ||
| 824 | D3D_SIT_CBUFFER = 0, | ||
| 825 | D3D_SIT_TBUFFER = ( D3D_SIT_CBUFFER + 1 ) , | ||
| 826 | D3D_SIT_TEXTURE = ( D3D_SIT_TBUFFER + 1 ) , | ||
| 827 | D3D_SIT_SAMPLER = ( D3D_SIT_TEXTURE + 1 ) , | ||
| 828 | D3D_SIT_UAV_RWTYPED = ( D3D_SIT_SAMPLER + 1 ) , | ||
| 829 | D3D_SIT_STRUCTURED = ( D3D_SIT_UAV_RWTYPED + 1 ) , | ||
| 830 | D3D_SIT_UAV_RWSTRUCTURED = ( D3D_SIT_STRUCTURED + 1 ) , | ||
| 831 | D3D_SIT_BYTEADDRESS = ( D3D_SIT_UAV_RWSTRUCTURED + 1 ) , | ||
| 832 | D3D_SIT_UAV_RWBYTEADDRESS = ( D3D_SIT_BYTEADDRESS + 1 ) , | ||
| 833 | D3D_SIT_UAV_APPEND_STRUCTURED = ( D3D_SIT_UAV_RWBYTEADDRESS + 1 ) , | ||
| 834 | D3D_SIT_UAV_CONSUME_STRUCTURED = ( D3D_SIT_UAV_APPEND_STRUCTURED + 1 ) , | ||
| 835 | D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = ( D3D_SIT_UAV_CONSUME_STRUCTURED + 1 ) , | ||
| 836 | D3D_SIT_RTACCELERATIONSTRUCTURE = ( D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER + 1 ) , | ||
| 837 | D3D_SIT_UAV_FEEDBACKTEXTURE = ( D3D_SIT_RTACCELERATIONSTRUCTURE + 1 ) , | ||
| 838 | D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER, | ||
| 839 | D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER, | ||
| 840 | D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE, | ||
| 841 | D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER, | ||
| 842 | D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED, | ||
| 843 | D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED, | ||
| 844 | D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED, | ||
| 845 | D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS, | ||
| 846 | D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS, | ||
| 847 | D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED, | ||
| 848 | D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED, | ||
| 849 | D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER | ||
| 850 | } D3D_SHADER_INPUT_TYPE; | ||
| 851 | |||
| 852 | typedef | ||
| 853 | enum _D3D_SHADER_CBUFFER_FLAGS | ||
| 854 | { | ||
| 855 | D3D_CBF_USERPACKED = 1, | ||
| 856 | D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED, | ||
| 857 | D3D_CBF_FORCE_DWORD = 0x7fffffff | ||
| 858 | } D3D_SHADER_CBUFFER_FLAGS; | ||
| 859 | |||
| 860 | typedef | ||
| 861 | enum _D3D_CBUFFER_TYPE | ||
| 862 | { | ||
| 863 | D3D_CT_CBUFFER = 0, | ||
| 864 | D3D_CT_TBUFFER = ( D3D_CT_CBUFFER + 1 ) , | ||
| 865 | D3D_CT_INTERFACE_POINTERS = ( D3D_CT_TBUFFER + 1 ) , | ||
| 866 | D3D_CT_RESOURCE_BIND_INFO = ( D3D_CT_INTERFACE_POINTERS + 1 ) , | ||
| 867 | D3D10_CT_CBUFFER = D3D_CT_CBUFFER, | ||
| 868 | D3D10_CT_TBUFFER = D3D_CT_TBUFFER, | ||
| 869 | D3D11_CT_CBUFFER = D3D_CT_CBUFFER, | ||
| 870 | D3D11_CT_TBUFFER = D3D_CT_TBUFFER, | ||
| 871 | D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS, | ||
| 872 | D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO | ||
| 873 | } D3D_CBUFFER_TYPE; | ||
| 874 | |||
| 875 | typedef | ||
| 876 | enum D3D_NAME | ||
| 877 | { | ||
| 878 | D3D_NAME_UNDEFINED = 0, | ||
| 879 | D3D_NAME_POSITION = 1, | ||
| 880 | D3D_NAME_CLIP_DISTANCE = 2, | ||
| 881 | D3D_NAME_CULL_DISTANCE = 3, | ||
| 882 | D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4, | ||
| 883 | D3D_NAME_VIEWPORT_ARRAY_INDEX = 5, | ||
| 884 | D3D_NAME_VERTEX_ID = 6, | ||
| 885 | D3D_NAME_PRIMITIVE_ID = 7, | ||
| 886 | D3D_NAME_INSTANCE_ID = 8, | ||
| 887 | D3D_NAME_IS_FRONT_FACE = 9, | ||
| 888 | D3D_NAME_SAMPLE_INDEX = 10, | ||
| 889 | D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11, | ||
| 890 | D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12, | ||
| 891 | D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13, | ||
| 892 | D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14, | ||
| 893 | D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15, | ||
| 894 | D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16, | ||
| 895 | D3D_NAME_BARYCENTRICS = 23, | ||
| 896 | D3D_NAME_SHADINGRATE = 24, | ||
| 897 | D3D_NAME_CULLPRIMITIVE = 25, | ||
| 898 | D3D_NAME_TARGET = 64, | ||
| 899 | D3D_NAME_DEPTH = 65, | ||
| 900 | D3D_NAME_COVERAGE = 66, | ||
| 901 | D3D_NAME_DEPTH_GREATER_EQUAL = 67, | ||
| 902 | D3D_NAME_DEPTH_LESS_EQUAL = 68, | ||
| 903 | D3D_NAME_STENCIL_REF = 69, | ||
| 904 | D3D_NAME_INNER_COVERAGE = 70, | ||
| 905 | D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED, | ||
| 906 | D3D10_NAME_POSITION = D3D_NAME_POSITION, | ||
| 907 | D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE, | ||
| 908 | D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE, | ||
| 909 | D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX, | ||
| 910 | D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX, | ||
| 911 | D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID, | ||
| 912 | D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID, | ||
| 913 | D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID, | ||
| 914 | D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE, | ||
| 915 | D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX, | ||
| 916 | D3D10_NAME_TARGET = D3D_NAME_TARGET, | ||
| 917 | D3D10_NAME_DEPTH = D3D_NAME_DEPTH, | ||
| 918 | D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE, | ||
| 919 | D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR, | ||
| 920 | D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR, | ||
| 921 | D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR, | ||
| 922 | D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR, | ||
| 923 | D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR, | ||
| 924 | D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR, | ||
| 925 | D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL, | ||
| 926 | D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL, | ||
| 927 | D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF, | ||
| 928 | D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE, | ||
| 929 | D3D12_NAME_BARYCENTRICS = D3D_NAME_BARYCENTRICS, | ||
| 930 | D3D12_NAME_SHADINGRATE = D3D_NAME_SHADINGRATE, | ||
| 931 | D3D12_NAME_CULLPRIMITIVE = D3D_NAME_CULLPRIMITIVE | ||
| 932 | } D3D_NAME; | ||
| 933 | |||
| 934 | typedef | ||
| 935 | enum D3D_RESOURCE_RETURN_TYPE | ||
| 936 | { | ||
| 937 | D3D_RETURN_TYPE_UNORM = 1, | ||
| 938 | D3D_RETURN_TYPE_SNORM = 2, | ||
| 939 | D3D_RETURN_TYPE_SINT = 3, | ||
| 940 | D3D_RETURN_TYPE_UINT = 4, | ||
| 941 | D3D_RETURN_TYPE_FLOAT = 5, | ||
| 942 | D3D_RETURN_TYPE_MIXED = 6, | ||
| 943 | D3D_RETURN_TYPE_DOUBLE = 7, | ||
| 944 | D3D_RETURN_TYPE_CONTINUED = 8, | ||
| 945 | D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, | ||
| 946 | D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, | ||
| 947 | D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, | ||
| 948 | D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, | ||
| 949 | D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, | ||
| 950 | D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, | ||
| 951 | D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, | ||
| 952 | D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, | ||
| 953 | D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, | ||
| 954 | D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, | ||
| 955 | D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, | ||
| 956 | D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, | ||
| 957 | D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE, | ||
| 958 | D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED | ||
| 959 | } D3D_RESOURCE_RETURN_TYPE; | ||
| 960 | |||
| 961 | typedef | ||
| 962 | enum D3D_REGISTER_COMPONENT_TYPE | ||
| 963 | { | ||
| 964 | D3D_REGISTER_COMPONENT_UNKNOWN = 0, | ||
| 965 | D3D_REGISTER_COMPONENT_UINT32 = 1, | ||
| 966 | D3D_REGISTER_COMPONENT_SINT32 = 2, | ||
| 967 | D3D_REGISTER_COMPONENT_FLOAT32 = 3, | ||
| 968 | D3D_REGISTER_COMPONENT_UINT16 = 4, | ||
| 969 | D3D_REGISTER_COMPONENT_SINT16 = 5, | ||
| 970 | D3D_REGISTER_COMPONENT_FLOAT16 = 6, | ||
| 971 | D3D_REGISTER_COMPONENT_UINT64 = 7, | ||
| 972 | D3D_REGISTER_COMPONENT_SINT64 = 8, | ||
| 973 | D3D_REGISTER_COMPONENT_FLOAT64 = 9, | ||
| 974 | D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN, | ||
| 975 | D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32, | ||
| 976 | D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32, | ||
| 977 | D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32, | ||
| 978 | D3D10_REGISTER_COMPONENT_UINT16 = D3D_REGISTER_COMPONENT_UINT16, | ||
| 979 | D3D10_REGISTER_COMPONENT_SINT16 = D3D_REGISTER_COMPONENT_SINT16, | ||
| 980 | D3D10_REGISTER_COMPONENT_FLOAT16 = D3D_REGISTER_COMPONENT_FLOAT16, | ||
| 981 | D3D10_REGISTER_COMPONENT_UINT64 = D3D_REGISTER_COMPONENT_UINT64, | ||
| 982 | D3D10_REGISTER_COMPONENT_SINT64 = D3D_REGISTER_COMPONENT_SINT64, | ||
| 983 | D3D10_REGISTER_COMPONENT_FLOAT64 = D3D_REGISTER_COMPONENT_FLOAT64 | ||
| 984 | } D3D_REGISTER_COMPONENT_TYPE; | ||
| 985 | |||
| 986 | typedef | ||
| 987 | enum D3D_TESSELLATOR_DOMAIN | ||
| 988 | { | ||
| 989 | D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0, | ||
| 990 | D3D_TESSELLATOR_DOMAIN_ISOLINE = 1, | ||
| 991 | D3D_TESSELLATOR_DOMAIN_TRI = 2, | ||
| 992 | D3D_TESSELLATOR_DOMAIN_QUAD = 3, | ||
| 993 | D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED, | ||
| 994 | D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE, | ||
| 995 | D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI, | ||
| 996 | D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD | ||
| 997 | } D3D_TESSELLATOR_DOMAIN; | ||
| 998 | |||
| 999 | typedef | ||
| 1000 | enum D3D_TESSELLATOR_PARTITIONING | ||
| 1001 | { | ||
| 1002 | D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0, | ||
| 1003 | D3D_TESSELLATOR_PARTITIONING_INTEGER = 1, | ||
| 1004 | D3D_TESSELLATOR_PARTITIONING_POW2 = 2, | ||
| 1005 | D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3, | ||
| 1006 | D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4, | ||
| 1007 | D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED, | ||
| 1008 | D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER, | ||
| 1009 | D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2, | ||
| 1010 | D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, | ||
| 1011 | D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN | ||
| 1012 | } D3D_TESSELLATOR_PARTITIONING; | ||
| 1013 | |||
| 1014 | typedef | ||
| 1015 | enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE | ||
| 1016 | { | ||
| 1017 | D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0, | ||
| 1018 | D3D_TESSELLATOR_OUTPUT_POINT = 1, | ||
| 1019 | D3D_TESSELLATOR_OUTPUT_LINE = 2, | ||
| 1020 | D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3, | ||
| 1021 | D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4, | ||
| 1022 | D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED, | ||
| 1023 | D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT, | ||
| 1024 | D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE, | ||
| 1025 | D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW, | ||
| 1026 | D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW | ||
| 1027 | } D3D_TESSELLATOR_OUTPUT_PRIMITIVE; | ||
| 1028 | |||
| 1029 | typedef | ||
| 1030 | enum D3D_MIN_PRECISION | ||
| 1031 | { | ||
| 1032 | D3D_MIN_PRECISION_DEFAULT = 0, | ||
| 1033 | D3D_MIN_PRECISION_FLOAT_16 = 1, | ||
| 1034 | D3D_MIN_PRECISION_FLOAT_2_8 = 2, | ||
| 1035 | D3D_MIN_PRECISION_RESERVED = 3, | ||
| 1036 | D3D_MIN_PRECISION_SINT_16 = 4, | ||
| 1037 | D3D_MIN_PRECISION_UINT_16 = 5, | ||
| 1038 | D3D_MIN_PRECISION_ANY_16 = 0xf0, | ||
| 1039 | D3D_MIN_PRECISION_ANY_10 = 0xf1 | ||
| 1040 | } D3D_MIN_PRECISION; | ||
| 1041 | |||
| 1042 | typedef | ||
| 1043 | enum D3D_INTERPOLATION_MODE | ||
| 1044 | { | ||
| 1045 | D3D_INTERPOLATION_UNDEFINED = 0, | ||
| 1046 | D3D_INTERPOLATION_CONSTANT = 1, | ||
| 1047 | D3D_INTERPOLATION_LINEAR = 2, | ||
| 1048 | D3D_INTERPOLATION_LINEAR_CENTROID = 3, | ||
| 1049 | D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4, | ||
| 1050 | D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5, | ||
| 1051 | D3D_INTERPOLATION_LINEAR_SAMPLE = 6, | ||
| 1052 | D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7 | ||
| 1053 | } D3D_INTERPOLATION_MODE; | ||
| 1054 | |||
| 1055 | typedef | ||
| 1056 | enum _D3D_PARAMETER_FLAGS | ||
| 1057 | { | ||
| 1058 | D3D_PF_NONE = 0, | ||
| 1059 | D3D_PF_IN = 0x1, | ||
| 1060 | D3D_PF_OUT = 0x2, | ||
| 1061 | D3D_PF_FORCE_DWORD = 0x7fffffff | ||
| 1062 | } D3D_PARAMETER_FLAGS; | ||
| 1063 | |||
| 1064 | typedef | ||
| 1065 | enum D3D_FORMAT_LAYOUT | ||
| 1066 | { | ||
| 1067 | D3DFL_STANDARD = 0, | ||
| 1068 | D3DFL_CUSTOM = -1 | ||
| 1069 | } D3D_FORMAT_LAYOUT; | ||
| 1070 | |||
| 1071 | typedef | ||
| 1072 | enum D3D_FORMAT_TYPE_LEVEL | ||
| 1073 | { | ||
| 1074 | D3DFTL_NO_TYPE = 0, | ||
| 1075 | D3DFTL_PARTIAL_TYPE = -2, | ||
| 1076 | D3DFTL_FULL_TYPE = -1 | ||
| 1077 | } D3D_FORMAT_TYPE_LEVEL; | ||
| 1078 | |||
| 1079 | typedef | ||
| 1080 | enum D3D_FORMAT_COMPONENT_NAME | ||
| 1081 | { | ||
| 1082 | D3DFCN_R = -4, | ||
| 1083 | D3DFCN_G = -3, | ||
| 1084 | D3DFCN_B = -2, | ||
| 1085 | D3DFCN_A = -1, | ||
| 1086 | D3DFCN_D = 0, | ||
| 1087 | D3DFCN_S = 1, | ||
| 1088 | D3DFCN_X = 2 | ||
| 1089 | } D3D_FORMAT_COMPONENT_NAME; | ||
| 1090 | |||
| 1091 | typedef | ||
| 1092 | enum D3D_FORMAT_COMPONENT_INTERPRETATION | ||
| 1093 | { | ||
| 1094 | D3DFCI_TYPELESS = 0, | ||
| 1095 | D3DFCI_FLOAT = -4, | ||
| 1096 | D3DFCI_SNORM = -3, | ||
| 1097 | D3DFCI_UNORM = -2, | ||
| 1098 | D3DFCI_SINT = -1, | ||
| 1099 | D3DFCI_UINT = 1, | ||
| 1100 | D3DFCI_UNORM_SRGB = 2, | ||
| 1101 | D3DFCI_BIASED_FIXED_2_8 = 3 | ||
| 1102 | } D3D_FORMAT_COMPONENT_INTERPRETATION; | ||
| 1103 | |||
| 1104 | DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00); | ||
| 1105 | DEFINE_GUID(WKPDID_D3DDebugObjectNameW,0x4cca5fd8,0x921f,0x42c8,0x85,0x66,0x70,0xca,0xf2,0xa9,0xb7,0x41); | ||
| 1106 | DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2); | ||
| 1107 | DEFINE_GUID(WKPDID_D3D12UniqueObjectId, 0x1b39de15, 0xec04, 0x4bae, 0xba, 0x4d, 0x8c, 0xef, 0x79, 0xfc, 0x04, 0xc1); | ||
| 1108 | #define D3D_SET_OBJECT_NAME_N_A(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectName, Chars, pName) | ||
| 1109 | #define D3D_SET_OBJECT_NAME_A(pObject, pName) D3D_SET_OBJECT_NAME_N_A(pObject, lstrlenA(pName), pName) | ||
| 1110 | #define D3D_SET_OBJECT_NAME_N_W(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectNameW, Chars*2, pName) | ||
| 1111 | #define D3D_SET_OBJECT_NAME_W(pObject, pName) D3D_SET_OBJECT_NAME_N_W(pObject, wcslen(pName), pName) | ||
| 1112 | #define D3D_COMPONENT_MASK_X 1 | ||
| 1113 | #define D3D_COMPONENT_MASK_Y 2 | ||
| 1114 | #define D3D_COMPONENT_MASK_Z 4 | ||
| 1115 | #define D3D_COMPONENT_MASK_W 8 | ||
| 1116 | DEFINE_GUID(D3D_TEXTURE_LAYOUT_ROW_MAJOR,0xb5dc234f,0x72bb,0x4bec,0x97,0x05,0x8c,0xf2,0x58,0xdf,0x6b,0x6c); | ||
| 1117 | DEFINE_GUID(D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE,0x4c0f29e3,0x3f5f,0x4d35,0x84,0xc9,0xbc,0x09,0x83,0xb6,0x2c,0x28); | ||
| 1118 | |||
| 1119 | |||
| 1120 | extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0002_v0_0_c_ifspec; | ||
| 1121 | extern RPC_IF_HANDLE __MIDL_itf_d3dcommon_0000_0002_v0_0_s_ifspec; | ||
| 1122 | |||
| 1123 | /* Additional Prototypes for ALL interfaces */ | ||
| 1124 | |||
| 1125 | /* end of Additional Prototypes */ | ||
| 1126 | |||
| 1127 | #ifdef __cplusplus | ||
| 1128 | } | ||
| 1129 | #endif | ||
| 1130 | |||
| 1131 | #endif | ||
| 1132 | |||
| 1133 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dcommon.idl b/contrib/DirectX-Headers-1.618.2/include/directx/d3dcommon.idl new file mode 100644 index 0000000..bfa375d --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dcommon.idl | |||
| @@ -0,0 +1,991 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | import "oaidl.idl"; | ||
| 8 | import "ocidl.idl"; | ||
| 9 | |||
| 10 | //---------------------------------------------------------------------------- | ||
| 11 | // | ||
| 12 | // D3D-version-neutral runtime information. | ||
| 13 | // | ||
| 14 | //---------------------------------------------------------------------------- | ||
| 15 | |||
| 16 | typedef enum D3D_DRIVER_TYPE | ||
| 17 | { | ||
| 18 | D3D_DRIVER_TYPE_UNKNOWN, | ||
| 19 | D3D_DRIVER_TYPE_HARDWARE, | ||
| 20 | D3D_DRIVER_TYPE_REFERENCE, | ||
| 21 | D3D_DRIVER_TYPE_NULL, | ||
| 22 | D3D_DRIVER_TYPE_SOFTWARE, | ||
| 23 | D3D_DRIVER_TYPE_WARP, | ||
| 24 | } D3D_DRIVER_TYPE; | ||
| 25 | |||
| 26 | typedef enum D3D_FEATURE_LEVEL | ||
| 27 | { | ||
| 28 | D3D_FEATURE_LEVEL_1_0_GENERIC = 0x100, | ||
| 29 | D3D_FEATURE_LEVEL_1_0_CORE = 0x1000, | ||
| 30 | D3D_FEATURE_LEVEL_9_1 = 0x9100, | ||
| 31 | D3D_FEATURE_LEVEL_9_2 = 0x9200, | ||
| 32 | D3D_FEATURE_LEVEL_9_3 = 0x9300, | ||
| 33 | D3D_FEATURE_LEVEL_10_0 = 0xa000, | ||
| 34 | D3D_FEATURE_LEVEL_10_1 = 0xa100, | ||
| 35 | D3D_FEATURE_LEVEL_11_0 = 0xb000, | ||
| 36 | D3D_FEATURE_LEVEL_11_1 = 0xb100, | ||
| 37 | D3D_FEATURE_LEVEL_12_0 = 0xc000, | ||
| 38 | D3D_FEATURE_LEVEL_12_1 = 0xc100, | ||
| 39 | D3D_FEATURE_LEVEL_12_2 = 0xc200 | ||
| 40 | } D3D_FEATURE_LEVEL; | ||
| 41 | |||
| 42 | cpp_quote("#define D3D_FL9_1_REQ_TEXTURE1D_U_DIMENSION 2048") | ||
| 43 | cpp_quote("#define D3D_FL9_3_REQ_TEXTURE1D_U_DIMENSION 4096") | ||
| 44 | cpp_quote("#define D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION 2048") | ||
| 45 | cpp_quote("#define D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION 4096") | ||
| 46 | cpp_quote("#define D3D_FL9_1_REQ_TEXTURECUBE_DIMENSION 512") | ||
| 47 | cpp_quote("#define D3D_FL9_3_REQ_TEXTURECUBE_DIMENSION 4096") | ||
| 48 | cpp_quote("#define D3D_FL9_1_REQ_TEXTURE3D_U_V_OR_W_DIMENSION 256") | ||
| 49 | cpp_quote("#define D3D_FL9_1_DEFAULT_MAX_ANISOTROPY 2") | ||
| 50 | cpp_quote("#define D3D_FL9_1_IA_PRIMITIVE_MAX_COUNT 65535") | ||
| 51 | cpp_quote("#define D3D_FL9_2_IA_PRIMITIVE_MAX_COUNT 1048575") | ||
| 52 | cpp_quote("#define D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT 1") | ||
| 53 | cpp_quote("#define D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT 4") | ||
| 54 | cpp_quote("#define D3D_FL9_1_MAX_TEXTURE_REPEAT 128") | ||
| 55 | cpp_quote("#define D3D_FL9_2_MAX_TEXTURE_REPEAT 2048") | ||
| 56 | cpp_quote("#define D3D_FL9_3_MAX_TEXTURE_REPEAT 8192") | ||
| 57 | |||
| 58 | typedef enum D3D_PRIMITIVE_TOPOLOGY | ||
| 59 | { | ||
| 60 | D3D_PRIMITIVE_TOPOLOGY_UNDEFINED = 0, | ||
| 61 | D3D_PRIMITIVE_TOPOLOGY_POINTLIST = 1, | ||
| 62 | D3D_PRIMITIVE_TOPOLOGY_LINELIST = 2, | ||
| 63 | D3D_PRIMITIVE_TOPOLOGY_LINESTRIP = 3, | ||
| 64 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST = 4, | ||
| 65 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = 5, | ||
| 66 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLEFAN = 6, | ||
| 67 | // Adjacency values should be equal to (0x8 & non-adjacency): | ||
| 68 | D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = 10, | ||
| 69 | D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = 11, | ||
| 70 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = 12, | ||
| 71 | D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = 13, | ||
| 72 | D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = 33, | ||
| 73 | D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = 34, | ||
| 74 | D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = 35, | ||
| 75 | D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = 36, | ||
| 76 | D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = 37, | ||
| 77 | D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = 38, | ||
| 78 | D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = 39, | ||
| 79 | D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = 40, | ||
| 80 | D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = 41, | ||
| 81 | D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = 42, | ||
| 82 | D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = 43, | ||
| 83 | D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = 44, | ||
| 84 | D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = 45, | ||
| 85 | D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = 46, | ||
| 86 | D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = 47, | ||
| 87 | D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = 48, | ||
| 88 | D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = 49, | ||
| 89 | D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = 50, | ||
| 90 | D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = 51, | ||
| 91 | D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = 52, | ||
| 92 | D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = 53, | ||
| 93 | D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = 54, | ||
| 94 | D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = 55, | ||
| 95 | D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = 56, | ||
| 96 | D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = 57, | ||
| 97 | D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = 58, | ||
| 98 | D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = 59, | ||
| 99 | D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = 60, | ||
| 100 | D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = 61, | ||
| 101 | D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = 62, | ||
| 102 | D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = 63, | ||
| 103 | D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = 64, | ||
| 104 | |||
| 105 | D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, | ||
| 106 | D3D10_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, | ||
| 107 | D3D10_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, | ||
| 108 | D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, | ||
| 109 | D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, | ||
| 110 | D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, | ||
| 111 | D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, | ||
| 112 | D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, | ||
| 113 | D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, | ||
| 114 | D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, | ||
| 115 | |||
| 116 | D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED = D3D_PRIMITIVE_TOPOLOGY_UNDEFINED, | ||
| 117 | D3D11_PRIMITIVE_TOPOLOGY_POINTLIST = D3D_PRIMITIVE_TOPOLOGY_POINTLIST, | ||
| 118 | D3D11_PRIMITIVE_TOPOLOGY_LINELIST = D3D_PRIMITIVE_TOPOLOGY_LINELIST, | ||
| 119 | D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, | ||
| 120 | D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, | ||
| 121 | D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, | ||
| 122 | D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ, | ||
| 123 | D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ, | ||
| 124 | D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ, | ||
| 125 | D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ = D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ, | ||
| 126 | D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST, | ||
| 127 | D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST, | ||
| 128 | D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST, | ||
| 129 | D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST, | ||
| 130 | D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST, | ||
| 131 | D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST, | ||
| 132 | D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST, | ||
| 133 | D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST, | ||
| 134 | D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST, | ||
| 135 | D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST, | ||
| 136 | D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST, | ||
| 137 | D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST, | ||
| 138 | D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST, | ||
| 139 | D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST, | ||
| 140 | D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST, | ||
| 141 | D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST, | ||
| 142 | D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST, | ||
| 143 | D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST, | ||
| 144 | D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST, | ||
| 145 | D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST, | ||
| 146 | D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST, | ||
| 147 | D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST, | ||
| 148 | D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST, | ||
| 149 | D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST, | ||
| 150 | D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST, | ||
| 151 | D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST, | ||
| 152 | D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST, | ||
| 153 | D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST, | ||
| 154 | D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST, | ||
| 155 | D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST, | ||
| 156 | D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST, | ||
| 157 | D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST = D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST | ||
| 158 | } D3D_PRIMITIVE_TOPOLOGY; | ||
| 159 | |||
| 160 | typedef enum D3D_PRIMITIVE | ||
| 161 | { | ||
| 162 | D3D_PRIMITIVE_UNDEFINED = 0, | ||
| 163 | D3D_PRIMITIVE_POINT = 1, | ||
| 164 | D3D_PRIMITIVE_LINE = 2, | ||
| 165 | D3D_PRIMITIVE_TRIANGLE = 3, | ||
| 166 | // Adjacency values should be equal to (0x4 & non-adjacency): | ||
| 167 | D3D_PRIMITIVE_LINE_ADJ = 6, | ||
| 168 | D3D_PRIMITIVE_TRIANGLE_ADJ = 7, | ||
| 169 | D3D_PRIMITIVE_1_CONTROL_POINT_PATCH = 8, | ||
| 170 | D3D_PRIMITIVE_2_CONTROL_POINT_PATCH = 9, | ||
| 171 | D3D_PRIMITIVE_3_CONTROL_POINT_PATCH = 10, | ||
| 172 | D3D_PRIMITIVE_4_CONTROL_POINT_PATCH = 11, | ||
| 173 | D3D_PRIMITIVE_5_CONTROL_POINT_PATCH = 12, | ||
| 174 | D3D_PRIMITIVE_6_CONTROL_POINT_PATCH = 13, | ||
| 175 | D3D_PRIMITIVE_7_CONTROL_POINT_PATCH = 14, | ||
| 176 | D3D_PRIMITIVE_8_CONTROL_POINT_PATCH = 15, | ||
| 177 | D3D_PRIMITIVE_9_CONTROL_POINT_PATCH = 16, | ||
| 178 | D3D_PRIMITIVE_10_CONTROL_POINT_PATCH = 17, | ||
| 179 | D3D_PRIMITIVE_11_CONTROL_POINT_PATCH = 18, | ||
| 180 | D3D_PRIMITIVE_12_CONTROL_POINT_PATCH = 19, | ||
| 181 | D3D_PRIMITIVE_13_CONTROL_POINT_PATCH = 20, | ||
| 182 | D3D_PRIMITIVE_14_CONTROL_POINT_PATCH = 21, | ||
| 183 | D3D_PRIMITIVE_15_CONTROL_POINT_PATCH = 22, | ||
| 184 | D3D_PRIMITIVE_16_CONTROL_POINT_PATCH = 23, | ||
| 185 | D3D_PRIMITIVE_17_CONTROL_POINT_PATCH = 24, | ||
| 186 | D3D_PRIMITIVE_18_CONTROL_POINT_PATCH = 25, | ||
| 187 | D3D_PRIMITIVE_19_CONTROL_POINT_PATCH = 26, | ||
| 188 | D3D_PRIMITIVE_20_CONTROL_POINT_PATCH = 27, | ||
| 189 | D3D_PRIMITIVE_21_CONTROL_POINT_PATCH = 28, | ||
| 190 | D3D_PRIMITIVE_22_CONTROL_POINT_PATCH = 29, | ||
| 191 | D3D_PRIMITIVE_23_CONTROL_POINT_PATCH = 30, | ||
| 192 | D3D_PRIMITIVE_24_CONTROL_POINT_PATCH = 31, | ||
| 193 | D3D_PRIMITIVE_25_CONTROL_POINT_PATCH = 32, | ||
| 194 | D3D_PRIMITIVE_26_CONTROL_POINT_PATCH = 33, | ||
| 195 | D3D_PRIMITIVE_27_CONTROL_POINT_PATCH = 34, | ||
| 196 | D3D_PRIMITIVE_28_CONTROL_POINT_PATCH = 35, | ||
| 197 | D3D_PRIMITIVE_29_CONTROL_POINT_PATCH = 36, | ||
| 198 | D3D_PRIMITIVE_30_CONTROL_POINT_PATCH = 37, | ||
| 199 | D3D_PRIMITIVE_31_CONTROL_POINT_PATCH = 38, | ||
| 200 | D3D_PRIMITIVE_32_CONTROL_POINT_PATCH = 39, | ||
| 201 | |||
| 202 | D3D10_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, | ||
| 203 | D3D10_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, | ||
| 204 | D3D10_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, | ||
| 205 | D3D10_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, | ||
| 206 | D3D10_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, | ||
| 207 | D3D10_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, | ||
| 208 | |||
| 209 | D3D11_PRIMITIVE_UNDEFINED = D3D_PRIMITIVE_UNDEFINED, | ||
| 210 | D3D11_PRIMITIVE_POINT = D3D_PRIMITIVE_POINT, | ||
| 211 | D3D11_PRIMITIVE_LINE = D3D_PRIMITIVE_LINE, | ||
| 212 | D3D11_PRIMITIVE_TRIANGLE = D3D_PRIMITIVE_TRIANGLE, | ||
| 213 | D3D11_PRIMITIVE_LINE_ADJ = D3D_PRIMITIVE_LINE_ADJ, | ||
| 214 | D3D11_PRIMITIVE_TRIANGLE_ADJ = D3D_PRIMITIVE_TRIANGLE_ADJ, | ||
| 215 | D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH = D3D_PRIMITIVE_1_CONTROL_POINT_PATCH, | ||
| 216 | D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH = D3D_PRIMITIVE_2_CONTROL_POINT_PATCH, | ||
| 217 | D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH = D3D_PRIMITIVE_3_CONTROL_POINT_PATCH, | ||
| 218 | D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH = D3D_PRIMITIVE_4_CONTROL_POINT_PATCH, | ||
| 219 | D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH = D3D_PRIMITIVE_5_CONTROL_POINT_PATCH, | ||
| 220 | D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH = D3D_PRIMITIVE_6_CONTROL_POINT_PATCH, | ||
| 221 | D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH = D3D_PRIMITIVE_7_CONTROL_POINT_PATCH, | ||
| 222 | D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH = D3D_PRIMITIVE_8_CONTROL_POINT_PATCH, | ||
| 223 | D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH = D3D_PRIMITIVE_9_CONTROL_POINT_PATCH, | ||
| 224 | D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH = D3D_PRIMITIVE_10_CONTROL_POINT_PATCH, | ||
| 225 | D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH = D3D_PRIMITIVE_11_CONTROL_POINT_PATCH, | ||
| 226 | D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH = D3D_PRIMITIVE_12_CONTROL_POINT_PATCH, | ||
| 227 | D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH = D3D_PRIMITIVE_13_CONTROL_POINT_PATCH, | ||
| 228 | D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH = D3D_PRIMITIVE_14_CONTROL_POINT_PATCH, | ||
| 229 | D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH = D3D_PRIMITIVE_15_CONTROL_POINT_PATCH, | ||
| 230 | D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH = D3D_PRIMITIVE_16_CONTROL_POINT_PATCH, | ||
| 231 | D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH = D3D_PRIMITIVE_17_CONTROL_POINT_PATCH, | ||
| 232 | D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH = D3D_PRIMITIVE_18_CONTROL_POINT_PATCH, | ||
| 233 | D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH = D3D_PRIMITIVE_19_CONTROL_POINT_PATCH, | ||
| 234 | D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH = D3D_PRIMITIVE_20_CONTROL_POINT_PATCH, | ||
| 235 | D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH = D3D_PRIMITIVE_21_CONTROL_POINT_PATCH, | ||
| 236 | D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH = D3D_PRIMITIVE_22_CONTROL_POINT_PATCH, | ||
| 237 | D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH = D3D_PRIMITIVE_23_CONTROL_POINT_PATCH, | ||
| 238 | D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH = D3D_PRIMITIVE_24_CONTROL_POINT_PATCH, | ||
| 239 | D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH = D3D_PRIMITIVE_25_CONTROL_POINT_PATCH, | ||
| 240 | D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH = D3D_PRIMITIVE_26_CONTROL_POINT_PATCH, | ||
| 241 | D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH = D3D_PRIMITIVE_27_CONTROL_POINT_PATCH, | ||
| 242 | D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH = D3D_PRIMITIVE_28_CONTROL_POINT_PATCH, | ||
| 243 | D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH = D3D_PRIMITIVE_29_CONTROL_POINT_PATCH, | ||
| 244 | D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH = D3D_PRIMITIVE_30_CONTROL_POINT_PATCH, | ||
| 245 | D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH = D3D_PRIMITIVE_31_CONTROL_POINT_PATCH, | ||
| 246 | D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH = D3D_PRIMITIVE_32_CONTROL_POINT_PATCH, | ||
| 247 | } D3D_PRIMITIVE; | ||
| 248 | |||
| 249 | typedef enum D3D_SRV_DIMENSION | ||
| 250 | { | ||
| 251 | D3D_SRV_DIMENSION_UNKNOWN = 0, | ||
| 252 | D3D_SRV_DIMENSION_BUFFER = 1, | ||
| 253 | D3D_SRV_DIMENSION_TEXTURE1D = 2, | ||
| 254 | D3D_SRV_DIMENSION_TEXTURE1DARRAY = 3, | ||
| 255 | D3D_SRV_DIMENSION_TEXTURE2D = 4, | ||
| 256 | D3D_SRV_DIMENSION_TEXTURE2DARRAY = 5, | ||
| 257 | D3D_SRV_DIMENSION_TEXTURE2DMS = 6, | ||
| 258 | D3D_SRV_DIMENSION_TEXTURE2DMSARRAY = 7, | ||
| 259 | D3D_SRV_DIMENSION_TEXTURE3D = 8, | ||
| 260 | D3D_SRV_DIMENSION_TEXTURECUBE = 9, | ||
| 261 | D3D_SRV_DIMENSION_TEXTURECUBEARRAY = 10, | ||
| 262 | D3D_SRV_DIMENSION_BUFFEREX = 11, | ||
| 263 | |||
| 264 | D3D10_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, | ||
| 265 | D3D10_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, | ||
| 266 | D3D10_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, | ||
| 267 | D3D10_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, | ||
| 268 | D3D10_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, | ||
| 269 | D3D10_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, | ||
| 270 | D3D10_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, | ||
| 271 | D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, | ||
| 272 | D3D10_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, | ||
| 273 | D3D10_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, | ||
| 274 | |||
| 275 | D3D10_1_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, | ||
| 276 | D3D10_1_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, | ||
| 277 | D3D10_1_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, | ||
| 278 | D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, | ||
| 279 | D3D10_1_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, | ||
| 280 | D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, | ||
| 281 | D3D10_1_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, | ||
| 282 | D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, | ||
| 283 | D3D10_1_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, | ||
| 284 | D3D10_1_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, | ||
| 285 | D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, | ||
| 286 | |||
| 287 | D3D11_SRV_DIMENSION_UNKNOWN = D3D_SRV_DIMENSION_UNKNOWN, | ||
| 288 | D3D11_SRV_DIMENSION_BUFFER = D3D_SRV_DIMENSION_BUFFER, | ||
| 289 | D3D11_SRV_DIMENSION_TEXTURE1D = D3D_SRV_DIMENSION_TEXTURE1D, | ||
| 290 | D3D11_SRV_DIMENSION_TEXTURE1DARRAY = D3D_SRV_DIMENSION_TEXTURE1DARRAY, | ||
| 291 | D3D11_SRV_DIMENSION_TEXTURE2D = D3D_SRV_DIMENSION_TEXTURE2D, | ||
| 292 | D3D11_SRV_DIMENSION_TEXTURE2DARRAY = D3D_SRV_DIMENSION_TEXTURE2DARRAY, | ||
| 293 | D3D11_SRV_DIMENSION_TEXTURE2DMS = D3D_SRV_DIMENSION_TEXTURE2DMS, | ||
| 294 | D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY = D3D_SRV_DIMENSION_TEXTURE2DMSARRAY, | ||
| 295 | D3D11_SRV_DIMENSION_TEXTURE3D = D3D_SRV_DIMENSION_TEXTURE3D, | ||
| 296 | D3D11_SRV_DIMENSION_TEXTURECUBE = D3D_SRV_DIMENSION_TEXTURECUBE, | ||
| 297 | D3D11_SRV_DIMENSION_TEXTURECUBEARRAY = D3D_SRV_DIMENSION_TEXTURECUBEARRAY, | ||
| 298 | D3D11_SRV_DIMENSION_BUFFEREX = D3D_SRV_DIMENSION_BUFFEREX, | ||
| 299 | } D3D_SRV_DIMENSION; | ||
| 300 | |||
| 301 | // Bits in shaders indicating features they use which the runtime checks against current device support: | ||
| 302 | cpp_quote("#define D3D_SHADER_FEATURE_DOUBLES 0x00001") | ||
| 303 | cpp_quote("#define D3D_SHADER_FEATURE_COMPUTE_SHADERS_PLUS_RAW_AND_STRUCTURED_BUFFERS_VIA_SHADER_4_X 0x00002") | ||
| 304 | cpp_quote("#define D3D_SHADER_FEATURE_UAVS_AT_EVERY_STAGE 0x00004") | ||
| 305 | cpp_quote("#define D3D_SHADER_FEATURE_64_UAVS 0x00008") | ||
| 306 | cpp_quote("#define D3D_SHADER_FEATURE_MINIMUM_PRECISION 0x00010") | ||
| 307 | cpp_quote("#define D3D_SHADER_FEATURE_11_1_DOUBLE_EXTENSIONS 0x00020") | ||
| 308 | cpp_quote("#define D3D_SHADER_FEATURE_11_1_SHADER_EXTENSIONS 0x00040") | ||
| 309 | cpp_quote("#define D3D_SHADER_FEATURE_LEVEL_9_COMPARISON_FILTERING 0x00080") | ||
| 310 | cpp_quote("#define D3D_SHADER_FEATURE_TILED_RESOURCES 0x00100") | ||
| 311 | cpp_quote("#define D3D_SHADER_FEATURE_STENCIL_REF 0x00200") | ||
| 312 | cpp_quote("#define D3D_SHADER_FEATURE_INNER_COVERAGE 0x00400") | ||
| 313 | cpp_quote("#define D3D_SHADER_FEATURE_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00800") | ||
| 314 | cpp_quote("#define D3D_SHADER_FEATURE_ROVS 0x01000") | ||
| 315 | cpp_quote("#define D3D_SHADER_FEATURE_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x02000") | ||
| 316 | cpp_quote("#define D3D_SHADER_FEATURE_WAVE_OPS 0x04000") | ||
| 317 | cpp_quote("#define D3D_SHADER_FEATURE_INT64_OPS 0x08000") | ||
| 318 | cpp_quote("#define D3D_SHADER_FEATURE_VIEW_ID 0x10000") | ||
| 319 | cpp_quote("#define D3D_SHADER_FEATURE_BARYCENTRICS 0x20000") | ||
| 320 | cpp_quote("#define D3D_SHADER_FEATURE_NATIVE_16BIT_OPS 0x40000") | ||
| 321 | cpp_quote("#define D3D_SHADER_FEATURE_SHADING_RATE 0x80000") | ||
| 322 | cpp_quote("#define D3D_SHADER_FEATURE_RAYTRACING_TIER_1_1 0x100000") | ||
| 323 | cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_FEEDBACK 0x200000") | ||
| 324 | cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_TYPED_RESOURCE 0x400000") | ||
| 325 | cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_GROUP_SHARED 0x800000") | ||
| 326 | cpp_quote("#define D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x1000000") | ||
| 327 | cpp_quote("#define D3D_SHADER_FEATURE_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x2000000") | ||
| 328 | cpp_quote("#define D3D_SHADER_FEATURE_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x4000000") | ||
| 329 | cpp_quote("#define D3D_SHADER_FEATURE_WAVE_MMA 0x8000000") | ||
| 330 | cpp_quote("#define D3D_SHADER_FEATURE_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000") | ||
| 331 | cpp_quote("#define D3D_SHADER_FEATURE_ADVANCED_TEXTURE_OPS 0x20000000") | ||
| 332 | cpp_quote("#define D3D_SHADER_FEATURE_WRITEABLE_MSAA_TEXTURES 0x40000000") | ||
| 333 | cpp_quote("#define D3D_SHADER_FEATURE_SAMPLE_CMP_GRADIENT_OR_BIAS 0x80000000") | ||
| 334 | cpp_quote("#define D3D_SHADER_FEATURE_EXTENDED_COMMAND_INFO 0x100000000ull") | ||
| 335 | |||
| 336 | // This section is for flags that do not directly indicate a required feature, | ||
| 337 | // but are used to indicate something about the shader. | ||
| 338 | |||
| 339 | // Flag for any derivative use. This allows call-graph validation | ||
| 340 | // in the runtime to detect misuse of derivatives for an entry point that cannot | ||
| 341 | // support it, or to determine when the flag | ||
| 342 | // D3D_SHADER_FEATURE_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS is required. | ||
| 343 | cpp_quote("#define D3D_OPT_SHADER_FEATURE_USES_DERIVATIVES 0x0000010000000000ull") | ||
| 344 | |||
| 345 | cpp_quote("#define D3D_OPT_SHADER_FEATURE_REQUIRES_GROUP 0x0000020000000000ull") | ||
| 346 | |||
| 347 | |||
| 348 | // Additional internal shader feature flags are listed in dxbcutils.h (not relevant/useful for public to see) | ||
| 349 | // When adding entries here, make sure they don't conflict with what's there. | ||
| 350 | |||
| 351 | //---------------------------------------------------------------------------- | ||
| 352 | // | ||
| 353 | // Shader compilation information. | ||
| 354 | // | ||
| 355 | //---------------------------------------------------------------------------- | ||
| 356 | |||
| 357 | //---------------------------------------------------------------------------- | ||
| 358 | // D3D_SHADER_MACRO: | ||
| 359 | // ---------- | ||
| 360 | // Preprocessor macro definition. The application pass in a NULL-terminated | ||
| 361 | // array of this structure to various D3D APIs. This enables the application | ||
| 362 | // to #define tokens at runtime, before the file is parsed. | ||
| 363 | //---------------------------------------------------------------------------- | ||
| 364 | |||
| 365 | typedef struct _D3D_SHADER_MACRO | ||
| 366 | { | ||
| 367 | LPCSTR Name; | ||
| 368 | LPCSTR Definition; | ||
| 369 | } D3D_SHADER_MACRO, *LPD3D_SHADER_MACRO; | ||
| 370 | |||
| 371 | //---------------------------------------------------------------------------- | ||
| 372 | // ID3DBlob: | ||
| 373 | // ------------ | ||
| 374 | // The buffer object is used by D3D to return arbitrary size data. | ||
| 375 | // For compatibility with D3D10 this interface is also called ID3D10Blob, | ||
| 376 | // but the version-neutral form is preferred. | ||
| 377 | // | ||
| 378 | // GetBufferPointer - | ||
| 379 | // Returns a pointer to the beginning of the buffer. | ||
| 380 | // | ||
| 381 | // GetBufferSize - | ||
| 382 | // Returns the size of the buffer, in bytes. | ||
| 383 | //---------------------------------------------------------------------------- | ||
| 384 | |||
| 385 | // {8BA5FB08-5195-40e2-AC58-0D989C3A0102} | ||
| 386 | cpp_quote("DEFINE_GUID(IID_ID3D10Blob, 0x8ba5fb08, 0x5195, 0x40e2, 0xac, 0x58, 0xd, 0x98, 0x9c, 0x3a, 0x1, 0x2);") | ||
| 387 | |||
| 388 | [ uuid( 8BA5FB08-5195-40e2-AC58-0D989C3A0102 ), object, local, pointer_default( unique ) ] | ||
| 389 | interface ID3D10Blob : IUnknown | ||
| 390 | { | ||
| 391 | LPVOID GetBufferPointer(); | ||
| 392 | SIZE_T GetBufferSize(); | ||
| 393 | }; | ||
| 394 | |||
| 395 | cpp_quote("typedef interface ID3D10Blob* LPD3D10BLOB;") | ||
| 396 | |||
| 397 | typedef ID3D10Blob ID3DBlob; | ||
| 398 | cpp_quote("typedef ID3DBlob* LPD3DBLOB;") | ||
| 399 | cpp_quote("#define IID_ID3DBlob IID_ID3D10Blob") | ||
| 400 | |||
| 401 | // ID3DDestructionNotifier: An interface to QI for, to set a callback which is triggered when the object is fully destroyed | ||
| 402 | typedef void(__stdcall *PFN_DESTRUCTION_CALLBACK)(void* pData); | ||
| 403 | |||
| 404 | [uuid(a06eb39a-50da-425b-8c31-4eecd6c270f3), object, local, pointer_default(unique)] | ||
| 405 | interface ID3DDestructionNotifier | ||
| 406 | : IUnknown | ||
| 407 | { | ||
| 408 | HRESULT RegisterDestructionCallback( | ||
| 409 | [annotation("_In_")] PFN_DESTRUCTION_CALLBACK callbackFn, | ||
| 410 | [annotation("_In_")] void* pData, | ||
| 411 | [annotation("_Out_")] UINT* pCallbackID | ||
| 412 | ); | ||
| 413 | HRESULT UnregisterDestructionCallback( | ||
| 414 | [annotation("_In_")] UINT callbackID | ||
| 415 | ); | ||
| 416 | }; | ||
| 417 | |||
| 418 | typedef enum _D3D_INCLUDE_TYPE | ||
| 419 | { | ||
| 420 | D3D_INCLUDE_LOCAL, | ||
| 421 | D3D_INCLUDE_SYSTEM, | ||
| 422 | |||
| 423 | D3D10_INCLUDE_LOCAL = D3D_INCLUDE_LOCAL, | ||
| 424 | D3D10_INCLUDE_SYSTEM = D3D_INCLUDE_SYSTEM, | ||
| 425 | |||
| 426 | // force 32-bit size enum | ||
| 427 | D3D_INCLUDE_FORCE_DWORD = 0x7fffffff | ||
| 428 | } D3D_INCLUDE_TYPE; | ||
| 429 | |||
| 430 | //---------------------------------------------------------------------------- | ||
| 431 | // ID3DInclude: | ||
| 432 | // ------------- | ||
| 433 | // This interface is intended to be implemented by the application, and can | ||
| 434 | // be used by various D3D APIs. This enables application-specific handling | ||
| 435 | // of #include directives in source files. | ||
| 436 | // | ||
| 437 | // Open() | ||
| 438 | // Opens an include file. If successful, it should fill in ppData and | ||
| 439 | // pBytes. The data pointer returned must remain valid until Close is | ||
| 440 | // subsequently called. The name of the file is encoded in UTF-8 format. | ||
| 441 | // Close() | ||
| 442 | // Closes an include file. If Open was successful, Close is guaranteed | ||
| 443 | // to be called before the API using this interface returns. | ||
| 444 | //---------------------------------------------------------------------------- | ||
| 445 | |||
| 446 | cpp_quote("typedef interface ID3DInclude ID3DInclude;") | ||
| 447 | |||
| 448 | cpp_quote("#undef INTERFACE") | ||
| 449 | cpp_quote("#define INTERFACE ID3DInclude") | ||
| 450 | |||
| 451 | cpp_quote("DECLARE_INTERFACE(ID3DInclude)") | ||
| 452 | cpp_quote("{") | ||
| 453 | cpp_quote(" STDMETHOD(Open)(THIS_ D3D_INCLUDE_TYPE IncludeType, LPCSTR pFileName, LPCVOID pParentData, LPCVOID *ppData, UINT *pBytes) PURE;") | ||
| 454 | cpp_quote(" STDMETHOD(Close)(THIS_ LPCVOID pData) PURE;") | ||
| 455 | cpp_quote("};") | ||
| 456 | |||
| 457 | cpp_quote("typedef ID3DInclude* LPD3DINCLUDE;") | ||
| 458 | |||
| 459 | //---------------------------------------------------------------------------- | ||
| 460 | // | ||
| 461 | // Shader reflection information. | ||
| 462 | // | ||
| 463 | //---------------------------------------------------------------------------- | ||
| 464 | |||
| 465 | typedef enum _D3D_SHADER_VARIABLE_CLASS | ||
| 466 | { | ||
| 467 | D3D_SVC_SCALAR, | ||
| 468 | D3D_SVC_VECTOR, | ||
| 469 | D3D_SVC_MATRIX_ROWS, | ||
| 470 | D3D_SVC_MATRIX_COLUMNS, | ||
| 471 | D3D_SVC_OBJECT, | ||
| 472 | D3D_SVC_STRUCT, | ||
| 473 | D3D_SVC_INTERFACE_CLASS, | ||
| 474 | D3D_SVC_INTERFACE_POINTER, | ||
| 475 | |||
| 476 | D3D10_SVC_SCALAR = D3D_SVC_SCALAR, | ||
| 477 | D3D10_SVC_VECTOR = D3D_SVC_VECTOR, | ||
| 478 | D3D10_SVC_MATRIX_ROWS = D3D_SVC_MATRIX_ROWS, | ||
| 479 | D3D10_SVC_MATRIX_COLUMNS = D3D_SVC_MATRIX_COLUMNS, | ||
| 480 | D3D10_SVC_OBJECT = D3D_SVC_OBJECT, | ||
| 481 | D3D10_SVC_STRUCT = D3D_SVC_STRUCT, | ||
| 482 | |||
| 483 | D3D11_SVC_INTERFACE_CLASS = D3D_SVC_INTERFACE_CLASS, | ||
| 484 | D3D11_SVC_INTERFACE_POINTER = D3D_SVC_INTERFACE_POINTER, | ||
| 485 | |||
| 486 | // force 32-bit size enum | ||
| 487 | D3D_SVC_FORCE_DWORD = 0x7fffffff | ||
| 488 | } D3D_SHADER_VARIABLE_CLASS; | ||
| 489 | |||
| 490 | typedef enum _D3D_SHADER_VARIABLE_FLAGS | ||
| 491 | { | ||
| 492 | D3D_SVF_USERPACKED = 1, | ||
| 493 | D3D_SVF_USED = 2, | ||
| 494 | |||
| 495 | D3D_SVF_INTERFACE_POINTER = 4, | ||
| 496 | D3D_SVF_INTERFACE_PARAMETER = 8, | ||
| 497 | |||
| 498 | D3D10_SVF_USERPACKED = D3D_SVF_USERPACKED, | ||
| 499 | D3D10_SVF_USED = D3D_SVF_USED, | ||
| 500 | |||
| 501 | D3D11_SVF_INTERFACE_POINTER = D3D_SVF_INTERFACE_POINTER, | ||
| 502 | D3D11_SVF_INTERFACE_PARAMETER = D3D_SVF_INTERFACE_PARAMETER, | ||
| 503 | |||
| 504 | // force 32-bit size enum | ||
| 505 | D3D_SVF_FORCE_DWORD = 0x7fffffff | ||
| 506 | } D3D_SHADER_VARIABLE_FLAGS; | ||
| 507 | |||
| 508 | typedef enum _D3D_SHADER_VARIABLE_TYPE | ||
| 509 | { | ||
| 510 | D3D_SVT_VOID = 0, | ||
| 511 | D3D_SVT_BOOL = 1, | ||
| 512 | D3D_SVT_INT = 2, | ||
| 513 | D3D_SVT_FLOAT = 3, | ||
| 514 | D3D_SVT_STRING = 4, | ||
| 515 | D3D_SVT_TEXTURE = 5, | ||
| 516 | D3D_SVT_TEXTURE1D = 6, | ||
| 517 | D3D_SVT_TEXTURE2D = 7, | ||
| 518 | D3D_SVT_TEXTURE3D = 8, | ||
| 519 | D3D_SVT_TEXTURECUBE = 9, | ||
| 520 | D3D_SVT_SAMPLER = 10, | ||
| 521 | D3D_SVT_SAMPLER1D = 11, | ||
| 522 | D3D_SVT_SAMPLER2D = 12, | ||
| 523 | D3D_SVT_SAMPLER3D = 13, | ||
| 524 | D3D_SVT_SAMPLERCUBE = 14, | ||
| 525 | D3D_SVT_PIXELSHADER = 15, | ||
| 526 | D3D_SVT_VERTEXSHADER = 16, | ||
| 527 | D3D_SVT_PIXELFRAGMENT = 17, | ||
| 528 | D3D_SVT_VERTEXFRAGMENT = 18, | ||
| 529 | D3D_SVT_UINT = 19, | ||
| 530 | D3D_SVT_UINT8 = 20, | ||
| 531 | D3D_SVT_GEOMETRYSHADER = 21, | ||
| 532 | D3D_SVT_RASTERIZER = 22, | ||
| 533 | D3D_SVT_DEPTHSTENCIL = 23, | ||
| 534 | D3D_SVT_BLEND = 24, | ||
| 535 | D3D_SVT_BUFFER = 25, | ||
| 536 | D3D_SVT_CBUFFER = 26, | ||
| 537 | D3D_SVT_TBUFFER = 27, | ||
| 538 | D3D_SVT_TEXTURE1DARRAY = 28, | ||
| 539 | D3D_SVT_TEXTURE2DARRAY = 29, | ||
| 540 | D3D_SVT_RENDERTARGETVIEW = 30, | ||
| 541 | D3D_SVT_DEPTHSTENCILVIEW = 31, | ||
| 542 | |||
| 543 | D3D_SVT_TEXTURE2DMS = 32, | ||
| 544 | D3D_SVT_TEXTURE2DMSARRAY = 33, | ||
| 545 | |||
| 546 | D3D_SVT_TEXTURECUBEARRAY = 34, | ||
| 547 | |||
| 548 | D3D_SVT_HULLSHADER = 35, | ||
| 549 | D3D_SVT_DOMAINSHADER = 36, | ||
| 550 | |||
| 551 | D3D_SVT_INTERFACE_POINTER = 37, | ||
| 552 | D3D_SVT_COMPUTESHADER = 38, | ||
| 553 | |||
| 554 | D3D_SVT_DOUBLE = 39, | ||
| 555 | |||
| 556 | D3D_SVT_RWTEXTURE1D = 40, | ||
| 557 | D3D_SVT_RWTEXTURE1DARRAY = 41, | ||
| 558 | D3D_SVT_RWTEXTURE2D = 42, | ||
| 559 | D3D_SVT_RWTEXTURE2DARRAY = 43, | ||
| 560 | D3D_SVT_RWTEXTURE3D = 44, | ||
| 561 | D3D_SVT_RWBUFFER = 45, | ||
| 562 | |||
| 563 | D3D_SVT_BYTEADDRESS_BUFFER = 46, | ||
| 564 | D3D_SVT_RWBYTEADDRESS_BUFFER = 47, | ||
| 565 | D3D_SVT_STRUCTURED_BUFFER = 48, | ||
| 566 | D3D_SVT_RWSTRUCTURED_BUFFER = 49, | ||
| 567 | D3D_SVT_APPEND_STRUCTURED_BUFFER = 50, | ||
| 568 | D3D_SVT_CONSUME_STRUCTURED_BUFFER = 51, | ||
| 569 | |||
| 570 | D3D_SVT_MIN8FLOAT = 52, | ||
| 571 | D3D_SVT_MIN10FLOAT = 53, | ||
| 572 | D3D_SVT_MIN16FLOAT = 54, | ||
| 573 | D3D_SVT_MIN12INT = 55, | ||
| 574 | D3D_SVT_MIN16INT = 56, | ||
| 575 | D3D_SVT_MIN16UINT = 57, | ||
| 576 | |||
| 577 | D3D_SVT_INT16 = 58, | ||
| 578 | D3D_SVT_UINT16 = 59, | ||
| 579 | D3D_SVT_FLOAT16 = 60, | ||
| 580 | D3D_SVT_INT64 = 61, | ||
| 581 | D3D_SVT_UINT64 = 62, | ||
| 582 | |||
| 583 | D3D10_SVT_VOID = D3D_SVT_VOID, | ||
| 584 | D3D10_SVT_BOOL = D3D_SVT_BOOL, | ||
| 585 | D3D10_SVT_INT = D3D_SVT_INT, | ||
| 586 | D3D10_SVT_FLOAT = D3D_SVT_FLOAT, | ||
| 587 | D3D10_SVT_STRING = D3D_SVT_STRING, | ||
| 588 | D3D10_SVT_TEXTURE = D3D_SVT_TEXTURE, | ||
| 589 | D3D10_SVT_TEXTURE1D = D3D_SVT_TEXTURE1D, | ||
| 590 | D3D10_SVT_TEXTURE2D = D3D_SVT_TEXTURE2D, | ||
| 591 | D3D10_SVT_TEXTURE3D = D3D_SVT_TEXTURE3D, | ||
| 592 | D3D10_SVT_TEXTURECUBE = D3D_SVT_TEXTURECUBE, | ||
| 593 | D3D10_SVT_SAMPLER = D3D_SVT_SAMPLER, | ||
| 594 | D3D10_SVT_SAMPLER1D = D3D_SVT_SAMPLER1D, | ||
| 595 | D3D10_SVT_SAMPLER2D = D3D_SVT_SAMPLER2D, | ||
| 596 | D3D10_SVT_SAMPLER3D = D3D_SVT_SAMPLER3D, | ||
| 597 | D3D10_SVT_SAMPLERCUBE = D3D_SVT_SAMPLERCUBE, | ||
| 598 | D3D10_SVT_PIXELSHADER = D3D_SVT_PIXELSHADER, | ||
| 599 | D3D10_SVT_VERTEXSHADER = D3D_SVT_VERTEXSHADER, | ||
| 600 | D3D10_SVT_PIXELFRAGMENT = D3D_SVT_PIXELFRAGMENT, | ||
| 601 | D3D10_SVT_VERTEXFRAGMENT = D3D_SVT_VERTEXFRAGMENT, | ||
| 602 | D3D10_SVT_UINT = D3D_SVT_UINT, | ||
| 603 | D3D10_SVT_UINT8 = D3D_SVT_UINT8, | ||
| 604 | D3D10_SVT_GEOMETRYSHADER = D3D_SVT_GEOMETRYSHADER, | ||
| 605 | D3D10_SVT_RASTERIZER = D3D_SVT_RASTERIZER, | ||
| 606 | D3D10_SVT_DEPTHSTENCIL = D3D_SVT_DEPTHSTENCIL, | ||
| 607 | D3D10_SVT_BLEND = D3D_SVT_BLEND, | ||
| 608 | D3D10_SVT_BUFFER = D3D_SVT_BUFFER, | ||
| 609 | D3D10_SVT_CBUFFER = D3D_SVT_CBUFFER, | ||
| 610 | D3D10_SVT_TBUFFER = D3D_SVT_TBUFFER, | ||
| 611 | D3D10_SVT_TEXTURE1DARRAY = D3D_SVT_TEXTURE1DARRAY, | ||
| 612 | D3D10_SVT_TEXTURE2DARRAY = D3D_SVT_TEXTURE2DARRAY, | ||
| 613 | D3D10_SVT_RENDERTARGETVIEW = D3D_SVT_RENDERTARGETVIEW, | ||
| 614 | D3D10_SVT_DEPTHSTENCILVIEW = D3D_SVT_DEPTHSTENCILVIEW, | ||
| 615 | |||
| 616 | D3D10_SVT_TEXTURE2DMS = D3D_SVT_TEXTURE2DMS, | ||
| 617 | D3D10_SVT_TEXTURE2DMSARRAY = D3D_SVT_TEXTURE2DMSARRAY, | ||
| 618 | |||
| 619 | D3D10_SVT_TEXTURECUBEARRAY = D3D_SVT_TEXTURECUBEARRAY, | ||
| 620 | |||
| 621 | D3D11_SVT_HULLSHADER = D3D_SVT_HULLSHADER, | ||
| 622 | D3D11_SVT_DOMAINSHADER = D3D_SVT_DOMAINSHADER, | ||
| 623 | |||
| 624 | D3D11_SVT_INTERFACE_POINTER = D3D_SVT_INTERFACE_POINTER, | ||
| 625 | D3D11_SVT_COMPUTESHADER = D3D_SVT_COMPUTESHADER, | ||
| 626 | |||
| 627 | D3D11_SVT_DOUBLE = D3D_SVT_DOUBLE, | ||
| 628 | |||
| 629 | D3D11_SVT_RWTEXTURE1D = D3D_SVT_RWTEXTURE1D, | ||
| 630 | D3D11_SVT_RWTEXTURE1DARRAY = D3D_SVT_RWTEXTURE1DARRAY, | ||
| 631 | D3D11_SVT_RWTEXTURE2D = D3D_SVT_RWTEXTURE2D, | ||
| 632 | D3D11_SVT_RWTEXTURE2DARRAY = D3D_SVT_RWTEXTURE2DARRAY, | ||
| 633 | D3D11_SVT_RWTEXTURE3D = D3D_SVT_RWTEXTURE3D, | ||
| 634 | D3D11_SVT_RWBUFFER = D3D_SVT_RWBUFFER, | ||
| 635 | |||
| 636 | D3D11_SVT_BYTEADDRESS_BUFFER = D3D_SVT_BYTEADDRESS_BUFFER, | ||
| 637 | D3D11_SVT_RWBYTEADDRESS_BUFFER = D3D_SVT_RWBYTEADDRESS_BUFFER, | ||
| 638 | D3D11_SVT_STRUCTURED_BUFFER = D3D_SVT_STRUCTURED_BUFFER, | ||
| 639 | D3D11_SVT_RWSTRUCTURED_BUFFER = D3D_SVT_RWSTRUCTURED_BUFFER, | ||
| 640 | D3D11_SVT_APPEND_STRUCTURED_BUFFER = D3D_SVT_APPEND_STRUCTURED_BUFFER, | ||
| 641 | D3D11_SVT_CONSUME_STRUCTURED_BUFFER = D3D_SVT_CONSUME_STRUCTURED_BUFFER, | ||
| 642 | |||
| 643 | // force 32-bit size enum | ||
| 644 | D3D_SVT_FORCE_DWORD = 0x7fffffff | ||
| 645 | } D3D_SHADER_VARIABLE_TYPE; | ||
| 646 | |||
| 647 | typedef enum _D3D_SHADER_INPUT_FLAGS | ||
| 648 | { | ||
| 649 | D3D_SIF_USERPACKED = 0x01, | ||
| 650 | D3D_SIF_COMPARISON_SAMPLER = 0x02, // is this a comparison sampler? | ||
| 651 | D3D_SIF_TEXTURE_COMPONENT_0 = 0x04, // this 2-bit value encodes c - 1, where c | ||
| 652 | D3D_SIF_TEXTURE_COMPONENT_1 = 0x08, // is the number of components in the texture | ||
| 653 | D3D_SIF_TEXTURE_COMPONENTS = 0x0c, | ||
| 654 | D3D_SIF_UNUSED = 0x10, | ||
| 655 | |||
| 656 | D3D10_SIF_USERPACKED = D3D_SIF_USERPACKED, | ||
| 657 | D3D10_SIF_COMPARISON_SAMPLER = D3D_SIF_COMPARISON_SAMPLER, | ||
| 658 | D3D10_SIF_TEXTURE_COMPONENT_0 = D3D_SIF_TEXTURE_COMPONENT_0, | ||
| 659 | D3D10_SIF_TEXTURE_COMPONENT_1 = D3D_SIF_TEXTURE_COMPONENT_1, | ||
| 660 | D3D10_SIF_TEXTURE_COMPONENTS = D3D_SIF_TEXTURE_COMPONENTS, | ||
| 661 | |||
| 662 | // force 32-bit size enum | ||
| 663 | D3D_SIF_FORCE_DWORD = 0x7fffffff | ||
| 664 | } D3D_SHADER_INPUT_FLAGS; | ||
| 665 | |||
| 666 | typedef enum _D3D_SHADER_INPUT_TYPE | ||
| 667 | { | ||
| 668 | D3D_SIT_CBUFFER, | ||
| 669 | D3D_SIT_TBUFFER, | ||
| 670 | D3D_SIT_TEXTURE, | ||
| 671 | D3D_SIT_SAMPLER, | ||
| 672 | D3D_SIT_UAV_RWTYPED, | ||
| 673 | D3D_SIT_STRUCTURED, | ||
| 674 | D3D_SIT_UAV_RWSTRUCTURED, | ||
| 675 | D3D_SIT_BYTEADDRESS, | ||
| 676 | D3D_SIT_UAV_RWBYTEADDRESS, | ||
| 677 | D3D_SIT_UAV_APPEND_STRUCTURED, | ||
| 678 | D3D_SIT_UAV_CONSUME_STRUCTURED, | ||
| 679 | D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER, | ||
| 680 | D3D_SIT_RTACCELERATIONSTRUCTURE, | ||
| 681 | D3D_SIT_UAV_FEEDBACKTEXTURE, | ||
| 682 | |||
| 683 | D3D10_SIT_CBUFFER = D3D_SIT_CBUFFER, | ||
| 684 | D3D10_SIT_TBUFFER = D3D_SIT_TBUFFER, | ||
| 685 | D3D10_SIT_TEXTURE = D3D_SIT_TEXTURE, | ||
| 686 | D3D10_SIT_SAMPLER = D3D_SIT_SAMPLER, | ||
| 687 | |||
| 688 | D3D11_SIT_UAV_RWTYPED = D3D_SIT_UAV_RWTYPED, | ||
| 689 | D3D11_SIT_STRUCTURED = D3D_SIT_STRUCTURED, | ||
| 690 | D3D11_SIT_UAV_RWSTRUCTURED = D3D_SIT_UAV_RWSTRUCTURED, | ||
| 691 | D3D11_SIT_BYTEADDRESS = D3D_SIT_BYTEADDRESS, | ||
| 692 | D3D11_SIT_UAV_RWBYTEADDRESS = D3D_SIT_UAV_RWBYTEADDRESS, | ||
| 693 | D3D11_SIT_UAV_APPEND_STRUCTURED = D3D_SIT_UAV_APPEND_STRUCTURED, | ||
| 694 | D3D11_SIT_UAV_CONSUME_STRUCTURED = D3D_SIT_UAV_CONSUME_STRUCTURED, | ||
| 695 | D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER, | ||
| 696 | } D3D_SHADER_INPUT_TYPE; | ||
| 697 | |||
| 698 | typedef enum _D3D_SHADER_CBUFFER_FLAGS | ||
| 699 | { | ||
| 700 | D3D_CBF_USERPACKED = 1, | ||
| 701 | |||
| 702 | D3D10_CBF_USERPACKED = D3D_CBF_USERPACKED, | ||
| 703 | |||
| 704 | // force 32-bit size enum | ||
| 705 | D3D_CBF_FORCE_DWORD = 0x7fffffff | ||
| 706 | } D3D_SHADER_CBUFFER_FLAGS; | ||
| 707 | |||
| 708 | typedef enum _D3D_CBUFFER_TYPE | ||
| 709 | { | ||
| 710 | D3D_CT_CBUFFER, | ||
| 711 | D3D_CT_TBUFFER, | ||
| 712 | D3D_CT_INTERFACE_POINTERS, | ||
| 713 | D3D_CT_RESOURCE_BIND_INFO, | ||
| 714 | |||
| 715 | D3D10_CT_CBUFFER = D3D_CT_CBUFFER, | ||
| 716 | D3D10_CT_TBUFFER = D3D_CT_TBUFFER, | ||
| 717 | |||
| 718 | D3D11_CT_CBUFFER = D3D_CT_CBUFFER, | ||
| 719 | D3D11_CT_TBUFFER = D3D_CT_TBUFFER, | ||
| 720 | D3D11_CT_INTERFACE_POINTERS = D3D_CT_INTERFACE_POINTERS, | ||
| 721 | D3D11_CT_RESOURCE_BIND_INFO = D3D_CT_RESOURCE_BIND_INFO, | ||
| 722 | } D3D_CBUFFER_TYPE; | ||
| 723 | |||
| 724 | typedef enum D3D_NAME | ||
| 725 | { | ||
| 726 | D3D_NAME_UNDEFINED = 0, | ||
| 727 | |||
| 728 | // Names meaningful to both HLSL and hardware | ||
| 729 | D3D_NAME_POSITION = 1, | ||
| 730 | D3D_NAME_CLIP_DISTANCE = 2, | ||
| 731 | D3D_NAME_CULL_DISTANCE = 3, | ||
| 732 | D3D_NAME_RENDER_TARGET_ARRAY_INDEX = 4, | ||
| 733 | D3D_NAME_VIEWPORT_ARRAY_INDEX = 5, | ||
| 734 | D3D_NAME_VERTEX_ID = 6, | ||
| 735 | D3D_NAME_PRIMITIVE_ID = 7, | ||
| 736 | D3D_NAME_INSTANCE_ID = 8, | ||
| 737 | D3D_NAME_IS_FRONT_FACE = 9, | ||
| 738 | D3D_NAME_SAMPLE_INDEX = 10, | ||
| 739 | D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR = 11, | ||
| 740 | D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = 12, | ||
| 741 | D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR = 13, | ||
| 742 | D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR = 14, | ||
| 743 | D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR = 15, | ||
| 744 | D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR = 16, | ||
| 745 | D3D_NAME_BARYCENTRICS = 23, | ||
| 746 | D3D_NAME_SHADINGRATE = 24, | ||
| 747 | D3D_NAME_CULLPRIMITIVE = 25, | ||
| 748 | |||
| 749 | // Names meaningful to HLSL only | ||
| 750 | D3D_NAME_TARGET = 64, | ||
| 751 | D3D_NAME_DEPTH = 65, | ||
| 752 | D3D_NAME_COVERAGE = 66, | ||
| 753 | D3D_NAME_DEPTH_GREATER_EQUAL = 67, | ||
| 754 | D3D_NAME_DEPTH_LESS_EQUAL = 68, | ||
| 755 | D3D_NAME_STENCIL_REF = 69, | ||
| 756 | D3D_NAME_INNER_COVERAGE = 70, | ||
| 757 | |||
| 758 | D3D10_NAME_UNDEFINED = D3D_NAME_UNDEFINED, | ||
| 759 | D3D10_NAME_POSITION = D3D_NAME_POSITION, | ||
| 760 | D3D10_NAME_CLIP_DISTANCE = D3D_NAME_CLIP_DISTANCE, | ||
| 761 | D3D10_NAME_CULL_DISTANCE = D3D_NAME_CULL_DISTANCE, | ||
| 762 | D3D10_NAME_RENDER_TARGET_ARRAY_INDEX = D3D_NAME_RENDER_TARGET_ARRAY_INDEX, | ||
| 763 | D3D10_NAME_VIEWPORT_ARRAY_INDEX = D3D_NAME_VIEWPORT_ARRAY_INDEX, | ||
| 764 | D3D10_NAME_VERTEX_ID = D3D_NAME_VERTEX_ID, | ||
| 765 | D3D10_NAME_PRIMITIVE_ID = D3D_NAME_PRIMITIVE_ID, | ||
| 766 | D3D10_NAME_INSTANCE_ID = D3D_NAME_INSTANCE_ID, | ||
| 767 | D3D10_NAME_IS_FRONT_FACE = D3D_NAME_IS_FRONT_FACE, | ||
| 768 | D3D10_NAME_SAMPLE_INDEX = D3D_NAME_SAMPLE_INDEX, | ||
| 769 | D3D10_NAME_TARGET = D3D_NAME_TARGET, | ||
| 770 | D3D10_NAME_DEPTH = D3D_NAME_DEPTH, | ||
| 771 | D3D10_NAME_COVERAGE = D3D_NAME_COVERAGE, | ||
| 772 | |||
| 773 | D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR = D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR, | ||
| 774 | D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR = D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR, | ||
| 775 | D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR = D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR, | ||
| 776 | D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR = D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR, | ||
| 777 | D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR = D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR, | ||
| 778 | D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR = D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR, | ||
| 779 | D3D11_NAME_DEPTH_GREATER_EQUAL = D3D_NAME_DEPTH_GREATER_EQUAL, | ||
| 780 | D3D11_NAME_DEPTH_LESS_EQUAL = D3D_NAME_DEPTH_LESS_EQUAL, | ||
| 781 | |||
| 782 | D3D11_NAME_STENCIL_REF = D3D_NAME_STENCIL_REF, | ||
| 783 | D3D11_NAME_INNER_COVERAGE = D3D_NAME_INNER_COVERAGE, | ||
| 784 | |||
| 785 | D3D12_NAME_BARYCENTRICS = D3D_NAME_BARYCENTRICS, | ||
| 786 | D3D12_NAME_SHADINGRATE = D3D_NAME_SHADINGRATE, | ||
| 787 | D3D12_NAME_CULLPRIMITIVE = D3D_NAME_CULLPRIMITIVE, | ||
| 788 | } D3D_NAME; | ||
| 789 | |||
| 790 | typedef enum D3D_RESOURCE_RETURN_TYPE | ||
| 791 | { | ||
| 792 | D3D_RETURN_TYPE_UNORM = 1, | ||
| 793 | D3D_RETURN_TYPE_SNORM = 2, | ||
| 794 | D3D_RETURN_TYPE_SINT = 3, | ||
| 795 | D3D_RETURN_TYPE_UINT = 4, | ||
| 796 | D3D_RETURN_TYPE_FLOAT = 5, | ||
| 797 | D3D_RETURN_TYPE_MIXED = 6, | ||
| 798 | D3D_RETURN_TYPE_DOUBLE = 7, | ||
| 799 | D3D_RETURN_TYPE_CONTINUED = 8, | ||
| 800 | |||
| 801 | D3D10_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, | ||
| 802 | D3D10_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, | ||
| 803 | D3D10_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, | ||
| 804 | D3D10_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, | ||
| 805 | D3D10_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, | ||
| 806 | D3D10_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, | ||
| 807 | |||
| 808 | D3D11_RETURN_TYPE_UNORM = D3D_RETURN_TYPE_UNORM, | ||
| 809 | D3D11_RETURN_TYPE_SNORM = D3D_RETURN_TYPE_SNORM, | ||
| 810 | D3D11_RETURN_TYPE_SINT = D3D_RETURN_TYPE_SINT, | ||
| 811 | D3D11_RETURN_TYPE_UINT = D3D_RETURN_TYPE_UINT, | ||
| 812 | D3D11_RETURN_TYPE_FLOAT = D3D_RETURN_TYPE_FLOAT, | ||
| 813 | D3D11_RETURN_TYPE_MIXED = D3D_RETURN_TYPE_MIXED, | ||
| 814 | D3D11_RETURN_TYPE_DOUBLE = D3D_RETURN_TYPE_DOUBLE, | ||
| 815 | D3D11_RETURN_TYPE_CONTINUED = D3D_RETURN_TYPE_CONTINUED, | ||
| 816 | } D3D_RESOURCE_RETURN_TYPE; | ||
| 817 | |||
| 818 | typedef enum D3D_REGISTER_COMPONENT_TYPE | ||
| 819 | { | ||
| 820 | D3D_REGISTER_COMPONENT_UNKNOWN = 0, | ||
| 821 | D3D_REGISTER_COMPONENT_UINT32 = 1, | ||
| 822 | D3D_REGISTER_COMPONENT_SINT32 = 2, | ||
| 823 | D3D_REGISTER_COMPONENT_FLOAT32 = 3, | ||
| 824 | D3D_REGISTER_COMPONENT_UINT16 = 4, | ||
| 825 | D3D_REGISTER_COMPONENT_SINT16 = 5, | ||
| 826 | D3D_REGISTER_COMPONENT_FLOAT16 = 6, | ||
| 827 | D3D_REGISTER_COMPONENT_UINT64 = 7, | ||
| 828 | D3D_REGISTER_COMPONENT_SINT64 = 8, | ||
| 829 | D3D_REGISTER_COMPONENT_FLOAT64 = 9, | ||
| 830 | |||
| 831 | D3D10_REGISTER_COMPONENT_UNKNOWN = D3D_REGISTER_COMPONENT_UNKNOWN, | ||
| 832 | D3D10_REGISTER_COMPONENT_UINT32 = D3D_REGISTER_COMPONENT_UINT32, | ||
| 833 | D3D10_REGISTER_COMPONENT_SINT32 = D3D_REGISTER_COMPONENT_SINT32, | ||
| 834 | D3D10_REGISTER_COMPONENT_FLOAT32 = D3D_REGISTER_COMPONENT_FLOAT32, | ||
| 835 | D3D10_REGISTER_COMPONENT_UINT16 = D3D_REGISTER_COMPONENT_UINT16, | ||
| 836 | D3D10_REGISTER_COMPONENT_SINT16 = D3D_REGISTER_COMPONENT_SINT16, | ||
| 837 | D3D10_REGISTER_COMPONENT_FLOAT16 = D3D_REGISTER_COMPONENT_FLOAT16, | ||
| 838 | D3D10_REGISTER_COMPONENT_UINT64 = D3D_REGISTER_COMPONENT_UINT64, | ||
| 839 | D3D10_REGISTER_COMPONENT_SINT64 = D3D_REGISTER_COMPONENT_SINT64, | ||
| 840 | D3D10_REGISTER_COMPONENT_FLOAT64 = D3D_REGISTER_COMPONENT_FLOAT64, | ||
| 841 | } D3D_REGISTER_COMPONENT_TYPE; | ||
| 842 | |||
| 843 | typedef enum D3D_TESSELLATOR_DOMAIN | ||
| 844 | { | ||
| 845 | D3D_TESSELLATOR_DOMAIN_UNDEFINED = 0, | ||
| 846 | D3D_TESSELLATOR_DOMAIN_ISOLINE = 1, | ||
| 847 | D3D_TESSELLATOR_DOMAIN_TRI = 2, | ||
| 848 | D3D_TESSELLATOR_DOMAIN_QUAD = 3, | ||
| 849 | |||
| 850 | D3D11_TESSELLATOR_DOMAIN_UNDEFINED = D3D_TESSELLATOR_DOMAIN_UNDEFINED, | ||
| 851 | D3D11_TESSELLATOR_DOMAIN_ISOLINE = D3D_TESSELLATOR_DOMAIN_ISOLINE, | ||
| 852 | D3D11_TESSELLATOR_DOMAIN_TRI = D3D_TESSELLATOR_DOMAIN_TRI, | ||
| 853 | D3D11_TESSELLATOR_DOMAIN_QUAD = D3D_TESSELLATOR_DOMAIN_QUAD, | ||
| 854 | } D3D_TESSELLATOR_DOMAIN; | ||
| 855 | |||
| 856 | typedef enum D3D_TESSELLATOR_PARTITIONING | ||
| 857 | { | ||
| 858 | D3D_TESSELLATOR_PARTITIONING_UNDEFINED = 0, | ||
| 859 | D3D_TESSELLATOR_PARTITIONING_INTEGER = 1, | ||
| 860 | D3D_TESSELLATOR_PARTITIONING_POW2 = 2, | ||
| 861 | D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3, | ||
| 862 | D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4, | ||
| 863 | |||
| 864 | D3D11_TESSELLATOR_PARTITIONING_UNDEFINED = D3D_TESSELLATOR_PARTITIONING_UNDEFINED, | ||
| 865 | D3D11_TESSELLATOR_PARTITIONING_INTEGER = D3D_TESSELLATOR_PARTITIONING_INTEGER, | ||
| 866 | D3D11_TESSELLATOR_PARTITIONING_POW2 = D3D_TESSELLATOR_PARTITIONING_POW2, | ||
| 867 | D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD, | ||
| 868 | D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN, | ||
| 869 | } D3D_TESSELLATOR_PARTITIONING; | ||
| 870 | |||
| 871 | typedef enum D3D_TESSELLATOR_OUTPUT_PRIMITIVE | ||
| 872 | { | ||
| 873 | D3D_TESSELLATOR_OUTPUT_UNDEFINED = 0, | ||
| 874 | D3D_TESSELLATOR_OUTPUT_POINT = 1, | ||
| 875 | D3D_TESSELLATOR_OUTPUT_LINE = 2, | ||
| 876 | D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3, | ||
| 877 | D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4, | ||
| 878 | |||
| 879 | D3D11_TESSELLATOR_OUTPUT_UNDEFINED = D3D_TESSELLATOR_OUTPUT_UNDEFINED, | ||
| 880 | D3D11_TESSELLATOR_OUTPUT_POINT = D3D_TESSELLATOR_OUTPUT_POINT, | ||
| 881 | D3D11_TESSELLATOR_OUTPUT_LINE = D3D_TESSELLATOR_OUTPUT_LINE, | ||
| 882 | D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW, | ||
| 883 | D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW = D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW, | ||
| 884 | } D3D_TESSELLATOR_OUTPUT_PRIMITIVE; | ||
| 885 | |||
| 886 | typedef enum D3D_MIN_PRECISION | ||
| 887 | { | ||
| 888 | D3D_MIN_PRECISION_DEFAULT = 0, // Default precision for the shader model | ||
| 889 | D3D_MIN_PRECISION_FLOAT_16 = 1, // Min 16 bit/component float | ||
| 890 | D3D_MIN_PRECISION_FLOAT_2_8 = 2, // Min 10(2.8)bit/comp. float | ||
| 891 | D3D_MIN_PRECISION_RESERVED = 3, // Reserved for future use | ||
| 892 | D3D_MIN_PRECISION_SINT_16 = 4, // Min 16 bit/comp. signed integer | ||
| 893 | D3D_MIN_PRECISION_UINT_16 = 5, // Min 16 bit/comp. unsigned integer | ||
| 894 | |||
| 895 | // These values are abstractions of width only for use in situations | ||
| 896 | // where a general width is needed instead of specific types. They | ||
| 897 | // will never be used in shader operands. | ||
| 898 | D3D_MIN_PRECISION_ANY_16 = 0xf0, | ||
| 899 | D3D_MIN_PRECISION_ANY_10 = 0xf1, | ||
| 900 | } D3D_MIN_PRECISION; | ||
| 901 | |||
| 902 | typedef enum D3D_INTERPOLATION_MODE | ||
| 903 | { | ||
| 904 | D3D_INTERPOLATION_UNDEFINED = 0, | ||
| 905 | D3D_INTERPOLATION_CONSTANT = 1, | ||
| 906 | D3D_INTERPOLATION_LINEAR = 2, | ||
| 907 | D3D_INTERPOLATION_LINEAR_CENTROID = 3, | ||
| 908 | D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE = 4, | ||
| 909 | D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_CENTROID = 5, | ||
| 910 | D3D_INTERPOLATION_LINEAR_SAMPLE = 6, | ||
| 911 | D3D_INTERPOLATION_LINEAR_NOPERSPECTIVE_SAMPLE = 7, | ||
| 912 | } D3D_INTERPOLATION_MODE; | ||
| 913 | |||
| 914 | // Parameter flags. | ||
| 915 | typedef enum _D3D_PARAMETER_FLAGS | ||
| 916 | { | ||
| 917 | D3D_PF_NONE = 0x00000000, | ||
| 918 | D3D_PF_IN = 0x00000001, | ||
| 919 | D3D_PF_OUT = 0x00000002, | ||
| 920 | D3D_PF_FORCE_DWORD = 0x7fffffff | ||
| 921 | } D3D_PARAMETER_FLAGS; | ||
| 922 | |||
| 923 | // Format Layout Properties | ||
| 924 | typedef enum D3D_FORMAT_LAYOUT | ||
| 925 | { | ||
| 926 | D3DFL_STANDARD = 0, // standard layout | ||
| 927 | D3DFL_CUSTOM = -1 // custom layout | ||
| 928 | // Note, 1 bit allocated for this in FORMAT_DETAIL below. If you add fields here, add bits... | ||
| 929 | // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ | ||
| 930 | } D3D_FORMAT_LAYOUT; | ||
| 931 | |||
| 932 | typedef enum D3D_FORMAT_TYPE_LEVEL | ||
| 933 | { | ||
| 934 | D3DFTL_NO_TYPE = 0, | ||
| 935 | D3DFTL_PARTIAL_TYPE = -2, | ||
| 936 | D3DFTL_FULL_TYPE = -1, | ||
| 937 | // Note, 2 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits... | ||
| 938 | // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ | ||
| 939 | } D3D_FORMAT_TYPE_LEVEL; | ||
| 940 | |||
| 941 | typedef enum D3D_FORMAT_COMPONENT_NAME | ||
| 942 | { | ||
| 943 | D3DFCN_R = -4, | ||
| 944 | D3DFCN_G = -3, | ||
| 945 | D3DFCN_B = -2, | ||
| 946 | D3DFCN_A = -1, | ||
| 947 | D3DFCN_D = 0, | ||
| 948 | D3DFCN_S = 1, | ||
| 949 | D3DFCN_X = 2, | ||
| 950 | // Note, 3 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits... | ||
| 951 | // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ | ||
| 952 | } D3D_FORMAT_COMPONENT_NAME; | ||
| 953 | |||
| 954 | typedef enum D3D_FORMAT_COMPONENT_INTERPRETATION | ||
| 955 | { | ||
| 956 | D3DFCI_TYPELESS = 0, | ||
| 957 | D3DFCI_FLOAT = -4, | ||
| 958 | D3DFCI_SNORM = -3, | ||
| 959 | D3DFCI_UNORM = -2, | ||
| 960 | D3DFCI_SINT = -1, | ||
| 961 | D3DFCI_UINT = 1, | ||
| 962 | D3DFCI_UNORM_SRGB = 2, | ||
| 963 | D3DFCI_BIASED_FIXED_2_8 = 3, | ||
| 964 | // Note, 3 bits allocated for this in FORMAT_DETAIL below. If you add fields here, add bits... | ||
| 965 | // NOTE SIGNED VALUES ARE USED SINCE COMPILER MAKES ENUMS SIGNED, AND BITFIELDS ARE SIGN EXTENDED ON READ | ||
| 966 | } D3D_FORMAT_COMPONENT_INTERPRETATION; | ||
| 967 | |||
| 968 | // Well-Known Private Data IDs (WKPDID_*): | ||
| 969 | |||
| 970 | // WKPDID_D3DDebugObjectName provides a unique name to objects in order to assist the developer during debugging. | ||
| 971 | // | ||
| 972 | // const char c_szName[] = "texture.jpg"; | ||
| 973 | // pObject->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName ); | ||
| 974 | cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);") | ||
| 975 | cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectNameW,0x4cca5fd8,0x921f,0x42c8,0x85,0x66,0x70,0xca,0xf2,0xa9,0xb7,0x41);") | ||
| 976 | cpp_quote("DEFINE_GUID(WKPDID_CommentStringW,0xd0149dc0,0x90e8,0x4ec8,0x81, 0x44, 0xe9, 0x00, 0xad, 0x26, 0x6b, 0xb2);") | ||
| 977 | cpp_quote("DEFINE_GUID(WKPDID_D3D12UniqueObjectId, 0x1b39de15, 0xec04, 0x4bae, 0xba, 0x4d, 0x8c, 0xef, 0x79, 0xfc, 0x04, 0xc1);") | ||
| 978 | |||
| 979 | cpp_quote("#define D3D_SET_OBJECT_NAME_N_A(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectName, Chars, pName)") | ||
| 980 | cpp_quote("#define D3D_SET_OBJECT_NAME_A(pObject, pName) D3D_SET_OBJECT_NAME_N_A(pObject, lstrlenA(pName), pName)") | ||
| 981 | cpp_quote("#define D3D_SET_OBJECT_NAME_N_W(pObject, Chars, pName) (pObject)->SetPrivateData(WKPDID_D3DDebugObjectNameW, Chars*2, pName)") | ||
| 982 | cpp_quote("#define D3D_SET_OBJECT_NAME_W(pObject, pName) D3D_SET_OBJECT_NAME_N_W(pObject, wcslen(pName), pName)") | ||
| 983 | |||
| 984 | cpp_quote("#define D3D_COMPONENT_MASK_X 1") | ||
| 985 | cpp_quote("#define D3D_COMPONENT_MASK_Y 2") | ||
| 986 | cpp_quote("#define D3D_COMPONENT_MASK_Z 4") | ||
| 987 | cpp_quote("#define D3D_COMPONENT_MASK_W 8") | ||
| 988 | |||
| 989 | cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_ROW_MAJOR,0xb5dc234f,0x72bb,0x4bec,0x97,0x05,0x8c,0xf2,0x58,0xdf,0x6b,0x6c);") // Feature_D3D1XDisplayable | ||
| 990 | cpp_quote("DEFINE_GUID(D3D_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE,0x4c0f29e3,0x3f5f,0x4d35,0x84,0xc9,0xbc,0x09,0x83,0xb6,0x2c,0x28);") // Feature_D3D1XDisplayable | ||
| 991 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dshadercacheregistration.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dshadercacheregistration.h new file mode 100644 index 0000000..671866a --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dshadercacheregistration.h | |||
| @@ -0,0 +1,998 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | |||
| 8 | |||
| 9 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ | ||
| 10 | |||
| 11 | |||
| 12 | /* File created by MIDL compiler version 8.01.0628 */ | ||
| 13 | |||
| 14 | |||
| 15 | |||
| 16 | /* verify that the <rpcndr.h> version is high enough to compile this file*/ | ||
| 17 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | ||
| 18 | #define __REQUIRED_RPCNDR_H_VERSION__ 500 | ||
| 19 | #endif | ||
| 20 | |||
| 21 | /* verify that the <rpcsal.h> version is high enough to compile this file*/ | ||
| 22 | #ifndef __REQUIRED_RPCSAL_H_VERSION__ | ||
| 23 | #define __REQUIRED_RPCSAL_H_VERSION__ 100 | ||
| 24 | #endif | ||
| 25 | |||
| 26 | #include "rpc.h" | ||
| 27 | #include "rpcndr.h" | ||
| 28 | |||
| 29 | #ifndef __RPCNDR_H_VERSION__ | ||
| 30 | #error this stub requires an updated version of <rpcndr.h> | ||
| 31 | #endif /* __RPCNDR_H_VERSION__ */ | ||
| 32 | |||
| 33 | #ifndef COM_NO_WINDOWS_H | ||
| 34 | #include "windows.h" | ||
| 35 | #include "ole2.h" | ||
| 36 | #endif /*COM_NO_WINDOWS_H*/ | ||
| 37 | |||
| 38 | #ifndef __d3dshadercacheregistration_h__ | ||
| 39 | #define __d3dshadercacheregistration_h__ | ||
| 40 | |||
| 41 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) | ||
| 42 | #pragma once | ||
| 43 | #endif | ||
| 44 | |||
| 45 | #ifndef DECLSPEC_XFGVIRT | ||
| 46 | #if defined(_CONTROL_FLOW_GUARD_XFG) | ||
| 47 | #define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func)) | ||
| 48 | #else | ||
| 49 | #define DECLSPEC_XFGVIRT(base, func) | ||
| 50 | #endif | ||
| 51 | #endif | ||
| 52 | |||
| 53 | /* Forward Declarations */ | ||
| 54 | |||
| 55 | #ifndef __ID3DShaderCacheInstallerClient_FWD_DEFINED__ | ||
| 56 | #define __ID3DShaderCacheInstallerClient_FWD_DEFINED__ | ||
| 57 | typedef interface ID3DShaderCacheInstallerClient ID3DShaderCacheInstallerClient; | ||
| 58 | |||
| 59 | #endif /* __ID3DShaderCacheInstallerClient_FWD_DEFINED__ */ | ||
| 60 | |||
| 61 | |||
| 62 | #ifndef __ID3DShaderCacheComponent_FWD_DEFINED__ | ||
| 63 | #define __ID3DShaderCacheComponent_FWD_DEFINED__ | ||
| 64 | typedef interface ID3DShaderCacheComponent ID3DShaderCacheComponent; | ||
| 65 | |||
| 66 | #endif /* __ID3DShaderCacheComponent_FWD_DEFINED__ */ | ||
| 67 | |||
| 68 | |||
| 69 | #ifndef __ID3DShaderCacheApplication_FWD_DEFINED__ | ||
| 70 | #define __ID3DShaderCacheApplication_FWD_DEFINED__ | ||
| 71 | typedef interface ID3DShaderCacheApplication ID3DShaderCacheApplication; | ||
| 72 | |||
| 73 | #endif /* __ID3DShaderCacheApplication_FWD_DEFINED__ */ | ||
| 74 | |||
| 75 | |||
| 76 | #ifndef __ID3DShaderCacheInstaller_FWD_DEFINED__ | ||
| 77 | #define __ID3DShaderCacheInstaller_FWD_DEFINED__ | ||
| 78 | typedef interface ID3DShaderCacheInstaller ID3DShaderCacheInstaller; | ||
| 79 | |||
| 80 | #endif /* __ID3DShaderCacheInstaller_FWD_DEFINED__ */ | ||
| 81 | |||
| 82 | |||
| 83 | #ifndef __ID3DShaderCacheExplorer_FWD_DEFINED__ | ||
| 84 | #define __ID3DShaderCacheExplorer_FWD_DEFINED__ | ||
| 85 | typedef interface ID3DShaderCacheExplorer ID3DShaderCacheExplorer; | ||
| 86 | |||
| 87 | #endif /* __ID3DShaderCacheExplorer_FWD_DEFINED__ */ | ||
| 88 | |||
| 89 | |||
| 90 | #ifndef __ID3DShaderCacheInstallerFactory_FWD_DEFINED__ | ||
| 91 | #define __ID3DShaderCacheInstallerFactory_FWD_DEFINED__ | ||
| 92 | typedef interface ID3DShaderCacheInstallerFactory ID3DShaderCacheInstallerFactory; | ||
| 93 | |||
| 94 | #endif /* __ID3DShaderCacheInstallerFactory_FWD_DEFINED__ */ | ||
| 95 | |||
| 96 | |||
| 97 | /* header files for imported files */ | ||
| 98 | #include "oaidl.h" | ||
| 99 | #include "ocidl.h" | ||
| 100 | |||
| 101 | #ifdef __cplusplus | ||
| 102 | extern "C"{ | ||
| 103 | #endif | ||
| 104 | |||
| 105 | |||
| 106 | /* interface __MIDL_itf_d3dshadercacheregistration_0000_0000 */ | ||
| 107 | /* [local] */ | ||
| 108 | |||
| 109 | #pragma once | ||
| 110 | DEFINE_GUID(CLSID_D3DShaderCacheInstallerFactory, 0x16195a0b, 0x607c, 0x41f1, 0xbf, 0x03, 0xc7, 0x69, 0x4d, 0x60, 0xa8, 0xd4); | ||
| 111 | typedef | ||
| 112 | enum D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE | ||
| 113 | { | ||
| 114 | D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE_USER = 0, | ||
| 115 | D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE_SYSTEM = ( D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE_USER + 1 ) | ||
| 116 | } D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE; | ||
| 117 | |||
| 118 | |||
| 119 | |||
| 120 | |||
| 121 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0000_v0_0_c_ifspec; | ||
| 122 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0000_v0_0_s_ifspec; | ||
| 123 | |||
| 124 | #ifndef __ID3DShaderCacheInstallerClient_INTERFACE_DEFINED__ | ||
| 125 | #define __ID3DShaderCacheInstallerClient_INTERFACE_DEFINED__ | ||
| 126 | |||
| 127 | /* interface ID3DShaderCacheInstallerClient */ | ||
| 128 | /* [unique][local][object][uuid] */ | ||
| 129 | |||
| 130 | |||
| 131 | EXTERN_C const IID IID_ID3DShaderCacheInstallerClient; | ||
| 132 | |||
| 133 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 134 | |||
| 135 | MIDL_INTERFACE("a16ee930-d9f6-4222-a514-244473e5d266") | ||
| 136 | ID3DShaderCacheInstallerClient | ||
| 137 | { | ||
| 138 | public: | ||
| 139 | BEGIN_INTERFACE | ||
| 140 | virtual HRESULT STDMETHODCALLTYPE GetInstallerName( | ||
| 141 | _Inout_ SIZE_T *pNameLength, | ||
| 142 | _Out_writes_opt_(*pNameLength) wchar_t *pName) = 0; | ||
| 143 | |||
| 144 | virtual D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE STDMETHODCALLTYPE GetInstallerScope( void) = 0; | ||
| 145 | |||
| 146 | virtual HRESULT STDMETHODCALLTYPE HandleDriverUpdate( | ||
| 147 | _In_ ID3DShaderCacheInstaller *pInstaller) = 0; | ||
| 148 | |||
| 149 | END_INTERFACE | ||
| 150 | }; | ||
| 151 | |||
| 152 | |||
| 153 | #else /* C style interface */ | ||
| 154 | |||
| 155 | typedef struct ID3DShaderCacheInstallerClientVtbl | ||
| 156 | { | ||
| 157 | BEGIN_INTERFACE | ||
| 158 | |||
| 159 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstallerClient, GetInstallerName) | ||
| 160 | HRESULT ( STDMETHODCALLTYPE *GetInstallerName )( | ||
| 161 | ID3DShaderCacheInstallerClient * This, | ||
| 162 | _Inout_ SIZE_T *pNameLength, | ||
| 163 | _Out_writes_opt_(*pNameLength) wchar_t *pName); | ||
| 164 | |||
| 165 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstallerClient, GetInstallerScope) | ||
| 166 | D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE ( STDMETHODCALLTYPE *GetInstallerScope )( | ||
| 167 | ID3DShaderCacheInstallerClient * This); | ||
| 168 | |||
| 169 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstallerClient, HandleDriverUpdate) | ||
| 170 | HRESULT ( STDMETHODCALLTYPE *HandleDriverUpdate )( | ||
| 171 | ID3DShaderCacheInstallerClient * This, | ||
| 172 | _In_ ID3DShaderCacheInstaller *pInstaller); | ||
| 173 | |||
| 174 | END_INTERFACE | ||
| 175 | } ID3DShaderCacheInstallerClientVtbl; | ||
| 176 | |||
| 177 | interface ID3DShaderCacheInstallerClient | ||
| 178 | { | ||
| 179 | CONST_VTBL struct ID3DShaderCacheInstallerClientVtbl *lpVtbl; | ||
| 180 | }; | ||
| 181 | |||
| 182 | |||
| 183 | |||
| 184 | #ifdef COBJMACROS | ||
| 185 | |||
| 186 | |||
| 187 | #define ID3DShaderCacheInstallerClient_GetInstallerName(This,pNameLength,pName) \ | ||
| 188 | ( (This)->lpVtbl -> GetInstallerName(This,pNameLength,pName) ) | ||
| 189 | |||
| 190 | #define ID3DShaderCacheInstallerClient_GetInstallerScope(This) \ | ||
| 191 | ( (This)->lpVtbl -> GetInstallerScope(This) ) | ||
| 192 | |||
| 193 | #define ID3DShaderCacheInstallerClient_HandleDriverUpdate(This,pInstaller) \ | ||
| 194 | ( (This)->lpVtbl -> HandleDriverUpdate(This,pInstaller) ) | ||
| 195 | |||
| 196 | #endif /* COBJMACROS */ | ||
| 197 | |||
| 198 | |||
| 199 | #endif /* C style interface */ | ||
| 200 | |||
| 201 | |||
| 202 | |||
| 203 | |||
| 204 | #endif /* __ID3DShaderCacheInstallerClient_INTERFACE_DEFINED__ */ | ||
| 205 | |||
| 206 | |||
| 207 | /* interface __MIDL_itf_d3dshadercacheregistration_0000_0001 */ | ||
| 208 | /* [local] */ | ||
| 209 | |||
| 210 | typedef struct D3D_SHADER_CACHE_PSDB_PROPERTIES | ||
| 211 | { | ||
| 212 | const wchar_t *pAdapterFamily; | ||
| 213 | const wchar_t *pPsdbPath; | ||
| 214 | } D3D_SHADER_CACHE_PSDB_PROPERTIES; | ||
| 215 | |||
| 216 | |||
| 217 | |||
| 218 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0001_v0_0_c_ifspec; | ||
| 219 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0001_v0_0_s_ifspec; | ||
| 220 | |||
| 221 | #ifndef __ID3DShaderCacheComponent_INTERFACE_DEFINED__ | ||
| 222 | #define __ID3DShaderCacheComponent_INTERFACE_DEFINED__ | ||
| 223 | |||
| 224 | /* interface ID3DShaderCacheComponent */ | ||
| 225 | /* [unique][local][object][uuid] */ | ||
| 226 | |||
| 227 | |||
| 228 | EXTERN_C const IID IID_ID3DShaderCacheComponent; | ||
| 229 | |||
| 230 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 231 | |||
| 232 | MIDL_INTERFACE("eed1bf00-f5c7-4cf7-885c-d0f9c0cb4828") | ||
| 233 | ID3DShaderCacheComponent : public IUnknown | ||
| 234 | { | ||
| 235 | public: | ||
| 236 | virtual HRESULT STDMETHODCALLTYPE GetComponentName( | ||
| 237 | _Out_ const wchar_t **pName) = 0; | ||
| 238 | |||
| 239 | virtual HRESULT STDMETHODCALLTYPE GetStateObjectDatabasePath( | ||
| 240 | _Out_ const wchar_t **pPath) = 0; | ||
| 241 | |||
| 242 | virtual HRESULT STDMETHODCALLTYPE GetPrecompiledCachePath( | ||
| 243 | _In_ const wchar_t *pAdapterFamily, | ||
| 244 | _Inout_ const wchar_t **pPath) = 0; | ||
| 245 | |||
| 246 | virtual UINT STDMETHODCALLTYPE GetPrecompiledShaderDatabaseCount( void) = 0; | ||
| 247 | |||
| 248 | virtual HRESULT STDMETHODCALLTYPE GetPrecompiledShaderDatabases( | ||
| 249 | UINT ArraySize, | ||
| 250 | _Out_writes_(ArraySize) D3D_SHADER_CACHE_PSDB_PROPERTIES *pPSDBs) = 0; | ||
| 251 | |||
| 252 | }; | ||
| 253 | |||
| 254 | |||
| 255 | #else /* C style interface */ | ||
| 256 | |||
| 257 | typedef struct ID3DShaderCacheComponentVtbl | ||
| 258 | { | ||
| 259 | BEGIN_INTERFACE | ||
| 260 | |||
| 261 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 262 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 263 | ID3DShaderCacheComponent * This, | ||
| 264 | REFIID riid, | ||
| 265 | _COM_Outptr_ void **ppvObject); | ||
| 266 | |||
| 267 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 268 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 269 | ID3DShaderCacheComponent * This); | ||
| 270 | |||
| 271 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 272 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 273 | ID3DShaderCacheComponent * This); | ||
| 274 | |||
| 275 | DECLSPEC_XFGVIRT(ID3DShaderCacheComponent, GetComponentName) | ||
| 276 | HRESULT ( STDMETHODCALLTYPE *GetComponentName )( | ||
| 277 | ID3DShaderCacheComponent * This, | ||
| 278 | _Out_ const wchar_t **pName); | ||
| 279 | |||
| 280 | DECLSPEC_XFGVIRT(ID3DShaderCacheComponent, GetStateObjectDatabasePath) | ||
| 281 | HRESULT ( STDMETHODCALLTYPE *GetStateObjectDatabasePath )( | ||
| 282 | ID3DShaderCacheComponent * This, | ||
| 283 | _Out_ const wchar_t **pPath); | ||
| 284 | |||
| 285 | DECLSPEC_XFGVIRT(ID3DShaderCacheComponent, GetPrecompiledCachePath) | ||
| 286 | HRESULT ( STDMETHODCALLTYPE *GetPrecompiledCachePath )( | ||
| 287 | ID3DShaderCacheComponent * This, | ||
| 288 | _In_ const wchar_t *pAdapterFamily, | ||
| 289 | _Inout_ const wchar_t **pPath); | ||
| 290 | |||
| 291 | DECLSPEC_XFGVIRT(ID3DShaderCacheComponent, GetPrecompiledShaderDatabaseCount) | ||
| 292 | UINT ( STDMETHODCALLTYPE *GetPrecompiledShaderDatabaseCount )( | ||
| 293 | ID3DShaderCacheComponent * This); | ||
| 294 | |||
| 295 | DECLSPEC_XFGVIRT(ID3DShaderCacheComponent, GetPrecompiledShaderDatabases) | ||
| 296 | HRESULT ( STDMETHODCALLTYPE *GetPrecompiledShaderDatabases )( | ||
| 297 | ID3DShaderCacheComponent * This, | ||
| 298 | UINT ArraySize, | ||
| 299 | _Out_writes_(ArraySize) D3D_SHADER_CACHE_PSDB_PROPERTIES *pPSDBs); | ||
| 300 | |||
| 301 | END_INTERFACE | ||
| 302 | } ID3DShaderCacheComponentVtbl; | ||
| 303 | |||
| 304 | interface ID3DShaderCacheComponent | ||
| 305 | { | ||
| 306 | CONST_VTBL struct ID3DShaderCacheComponentVtbl *lpVtbl; | ||
| 307 | }; | ||
| 308 | |||
| 309 | |||
| 310 | |||
| 311 | #ifdef COBJMACROS | ||
| 312 | |||
| 313 | |||
| 314 | #define ID3DShaderCacheComponent_QueryInterface(This,riid,ppvObject) \ | ||
| 315 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 316 | |||
| 317 | #define ID3DShaderCacheComponent_AddRef(This) \ | ||
| 318 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 319 | |||
| 320 | #define ID3DShaderCacheComponent_Release(This) \ | ||
| 321 | ( (This)->lpVtbl -> Release(This) ) | ||
| 322 | |||
| 323 | |||
| 324 | #define ID3DShaderCacheComponent_GetComponentName(This,pName) \ | ||
| 325 | ( (This)->lpVtbl -> GetComponentName(This,pName) ) | ||
| 326 | |||
| 327 | #define ID3DShaderCacheComponent_GetStateObjectDatabasePath(This,pPath) \ | ||
| 328 | ( (This)->lpVtbl -> GetStateObjectDatabasePath(This,pPath) ) | ||
| 329 | |||
| 330 | #define ID3DShaderCacheComponent_GetPrecompiledCachePath(This,pAdapterFamily,pPath) \ | ||
| 331 | ( (This)->lpVtbl -> GetPrecompiledCachePath(This,pAdapterFamily,pPath) ) | ||
| 332 | |||
| 333 | #define ID3DShaderCacheComponent_GetPrecompiledShaderDatabaseCount(This) \ | ||
| 334 | ( (This)->lpVtbl -> GetPrecompiledShaderDatabaseCount(This) ) | ||
| 335 | |||
| 336 | #define ID3DShaderCacheComponent_GetPrecompiledShaderDatabases(This,ArraySize,pPSDBs) \ | ||
| 337 | ( (This)->lpVtbl -> GetPrecompiledShaderDatabases(This,ArraySize,pPSDBs) ) | ||
| 338 | |||
| 339 | #endif /* COBJMACROS */ | ||
| 340 | |||
| 341 | |||
| 342 | #endif /* C style interface */ | ||
| 343 | |||
| 344 | |||
| 345 | |||
| 346 | |||
| 347 | #endif /* __ID3DShaderCacheComponent_INTERFACE_DEFINED__ */ | ||
| 348 | |||
| 349 | |||
| 350 | /* interface __MIDL_itf_d3dshadercacheregistration_0000_0002 */ | ||
| 351 | /* [local] */ | ||
| 352 | |||
| 353 | typedef | ||
| 354 | enum D3D_SHADER_CACHE_TARGET_FLAGS | ||
| 355 | { | ||
| 356 | D3D_SHADER_CACHE_TARGET_FLAG_NONE = 0 | ||
| 357 | } D3D_SHADER_CACHE_TARGET_FLAGS; | ||
| 358 | |||
| 359 | DEFINE_ENUM_FLAG_OPERATORS( D3D_SHADER_CACHE_TARGET_FLAGS ) | ||
| 360 | typedef union D3D_VERSION_NUMBER | ||
| 361 | { | ||
| 362 | UINT64 Version; | ||
| 363 | UINT16 VersionParts[ 4 ]; | ||
| 364 | } D3D_VERSION_NUMBER; | ||
| 365 | |||
| 366 | typedef struct D3D_SHADER_CACHE_COMPILER_PROPERTIES | ||
| 367 | { | ||
| 368 | wchar_t szAdapterFamily[ 128 ]; | ||
| 369 | UINT64 MinimumABISupportVersion; | ||
| 370 | UINT64 MaximumABISupportVersion; | ||
| 371 | D3D_VERSION_NUMBER CompilerVersion; | ||
| 372 | D3D_VERSION_NUMBER ApplicationProfileVersion; | ||
| 373 | } D3D_SHADER_CACHE_COMPILER_PROPERTIES; | ||
| 374 | |||
| 375 | typedef struct D3D_SHADER_CACHE_APPLICATION_DESC | ||
| 376 | { | ||
| 377 | const wchar_t *pExeFilename; | ||
| 378 | const wchar_t *pName; | ||
| 379 | D3D_VERSION_NUMBER Version; | ||
| 380 | const wchar_t *pEngineName; | ||
| 381 | D3D_VERSION_NUMBER EngineVersion; | ||
| 382 | } D3D_SHADER_CACHE_APPLICATION_DESC; | ||
| 383 | |||
| 384 | |||
| 385 | |||
| 386 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0002_v0_0_c_ifspec; | ||
| 387 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0002_v0_0_s_ifspec; | ||
| 388 | |||
| 389 | #ifndef __ID3DShaderCacheApplication_INTERFACE_DEFINED__ | ||
| 390 | #define __ID3DShaderCacheApplication_INTERFACE_DEFINED__ | ||
| 391 | |||
| 392 | /* interface ID3DShaderCacheApplication */ | ||
| 393 | /* [unique][local][object][uuid] */ | ||
| 394 | |||
| 395 | |||
| 396 | EXTERN_C const IID IID_ID3DShaderCacheApplication; | ||
| 397 | |||
| 398 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 399 | |||
| 400 | MIDL_INTERFACE("fc688ee2-1b35-4913-93be-1ca3fa7df39e") | ||
| 401 | ID3DShaderCacheApplication : public IUnknown | ||
| 402 | { | ||
| 403 | public: | ||
| 404 | virtual HRESULT STDMETHODCALLTYPE GetExePath( | ||
| 405 | _Out_ const wchar_t **pExePath) = 0; | ||
| 406 | |||
| 407 | virtual HRESULT STDMETHODCALLTYPE GetDesc( | ||
| 408 | _Out_ D3D_SHADER_CACHE_APPLICATION_DESC *pApplicationDesc) = 0; | ||
| 409 | |||
| 410 | virtual HRESULT STDMETHODCALLTYPE RegisterComponent( | ||
| 411 | _In_ const wchar_t *pName, | ||
| 412 | _In_ const wchar_t *pStateObjectDBPath, | ||
| 413 | _In_ UINT NumPSDB, | ||
| 414 | _In_reads_(NumPSDB) const D3D_SHADER_CACHE_PSDB_PROPERTIES *pPSDBs, | ||
| 415 | REFIID riid, | ||
| 416 | _COM_Outptr_ void **ppvComponent) = 0; | ||
| 417 | |||
| 418 | virtual HRESULT STDMETHODCALLTYPE RemoveComponent( | ||
| 419 | _In_ ID3DShaderCacheComponent *pComponent) = 0; | ||
| 420 | |||
| 421 | virtual UINT STDMETHODCALLTYPE GetComponentCount( void) = 0; | ||
| 422 | |||
| 423 | virtual HRESULT STDMETHODCALLTYPE GetComponent( | ||
| 424 | _In_ UINT index, | ||
| 425 | REFIID riid, | ||
| 426 | _COM_Outptr_ void **ppvComponent) = 0; | ||
| 427 | |||
| 428 | virtual UINT STDMETHODCALLTYPE GetPrecompileTargetCount( | ||
| 429 | D3D_SHADER_CACHE_TARGET_FLAGS flags) = 0; | ||
| 430 | |||
| 431 | virtual HRESULT STDMETHODCALLTYPE GetPrecompileTargets( | ||
| 432 | _In_ UINT ArraySize, | ||
| 433 | _In_reads_(ArraySize) D3D_SHADER_CACHE_COMPILER_PROPERTIES *pArray, | ||
| 434 | D3D_SHADER_CACHE_TARGET_FLAGS flags) = 0; | ||
| 435 | |||
| 436 | virtual HRESULT STDMETHODCALLTYPE GetInstallerName( | ||
| 437 | _Out_ const wchar_t **pInstallerName) = 0; | ||
| 438 | |||
| 439 | }; | ||
| 440 | |||
| 441 | |||
| 442 | #else /* C style interface */ | ||
| 443 | |||
| 444 | typedef struct ID3DShaderCacheApplicationVtbl | ||
| 445 | { | ||
| 446 | BEGIN_INTERFACE | ||
| 447 | |||
| 448 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 449 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 450 | ID3DShaderCacheApplication * This, | ||
| 451 | REFIID riid, | ||
| 452 | _COM_Outptr_ void **ppvObject); | ||
| 453 | |||
| 454 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 455 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 456 | ID3DShaderCacheApplication * This); | ||
| 457 | |||
| 458 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 459 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 460 | ID3DShaderCacheApplication * This); | ||
| 461 | |||
| 462 | DECLSPEC_XFGVIRT(ID3DShaderCacheApplication, GetExePath) | ||
| 463 | HRESULT ( STDMETHODCALLTYPE *GetExePath )( | ||
| 464 | ID3DShaderCacheApplication * This, | ||
| 465 | _Out_ const wchar_t **pExePath); | ||
| 466 | |||
| 467 | DECLSPEC_XFGVIRT(ID3DShaderCacheApplication, GetDesc) | ||
| 468 | HRESULT ( STDMETHODCALLTYPE *GetDesc )( | ||
| 469 | ID3DShaderCacheApplication * This, | ||
| 470 | _Out_ D3D_SHADER_CACHE_APPLICATION_DESC *pApplicationDesc); | ||
| 471 | |||
| 472 | DECLSPEC_XFGVIRT(ID3DShaderCacheApplication, RegisterComponent) | ||
| 473 | HRESULT ( STDMETHODCALLTYPE *RegisterComponent )( | ||
| 474 | ID3DShaderCacheApplication * This, | ||
| 475 | _In_ const wchar_t *pName, | ||
| 476 | _In_ const wchar_t *pStateObjectDBPath, | ||
| 477 | _In_ UINT NumPSDB, | ||
| 478 | _In_reads_(NumPSDB) const D3D_SHADER_CACHE_PSDB_PROPERTIES *pPSDBs, | ||
| 479 | REFIID riid, | ||
| 480 | _COM_Outptr_ void **ppvComponent); | ||
| 481 | |||
| 482 | DECLSPEC_XFGVIRT(ID3DShaderCacheApplication, RemoveComponent) | ||
| 483 | HRESULT ( STDMETHODCALLTYPE *RemoveComponent )( | ||
| 484 | ID3DShaderCacheApplication * This, | ||
| 485 | _In_ ID3DShaderCacheComponent *pComponent); | ||
| 486 | |||
| 487 | DECLSPEC_XFGVIRT(ID3DShaderCacheApplication, GetComponentCount) | ||
| 488 | UINT ( STDMETHODCALLTYPE *GetComponentCount )( | ||
| 489 | ID3DShaderCacheApplication * This); | ||
| 490 | |||
| 491 | DECLSPEC_XFGVIRT(ID3DShaderCacheApplication, GetComponent) | ||
| 492 | HRESULT ( STDMETHODCALLTYPE *GetComponent )( | ||
| 493 | ID3DShaderCacheApplication * This, | ||
| 494 | _In_ UINT index, | ||
| 495 | REFIID riid, | ||
| 496 | _COM_Outptr_ void **ppvComponent); | ||
| 497 | |||
| 498 | DECLSPEC_XFGVIRT(ID3DShaderCacheApplication, GetPrecompileTargetCount) | ||
| 499 | UINT ( STDMETHODCALLTYPE *GetPrecompileTargetCount )( | ||
| 500 | ID3DShaderCacheApplication * This, | ||
| 501 | D3D_SHADER_CACHE_TARGET_FLAGS flags); | ||
| 502 | |||
| 503 | DECLSPEC_XFGVIRT(ID3DShaderCacheApplication, GetPrecompileTargets) | ||
| 504 | HRESULT ( STDMETHODCALLTYPE *GetPrecompileTargets )( | ||
| 505 | ID3DShaderCacheApplication * This, | ||
| 506 | _In_ UINT ArraySize, | ||
| 507 | _In_reads_(ArraySize) D3D_SHADER_CACHE_COMPILER_PROPERTIES *pArray, | ||
| 508 | D3D_SHADER_CACHE_TARGET_FLAGS flags); | ||
| 509 | |||
| 510 | DECLSPEC_XFGVIRT(ID3DShaderCacheApplication, GetInstallerName) | ||
| 511 | HRESULT ( STDMETHODCALLTYPE *GetInstallerName )( | ||
| 512 | ID3DShaderCacheApplication * This, | ||
| 513 | _Out_ const wchar_t **pInstallerName); | ||
| 514 | |||
| 515 | END_INTERFACE | ||
| 516 | } ID3DShaderCacheApplicationVtbl; | ||
| 517 | |||
| 518 | interface ID3DShaderCacheApplication | ||
| 519 | { | ||
| 520 | CONST_VTBL struct ID3DShaderCacheApplicationVtbl *lpVtbl; | ||
| 521 | }; | ||
| 522 | |||
| 523 | |||
| 524 | |||
| 525 | #ifdef COBJMACROS | ||
| 526 | |||
| 527 | |||
| 528 | #define ID3DShaderCacheApplication_QueryInterface(This,riid,ppvObject) \ | ||
| 529 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 530 | |||
| 531 | #define ID3DShaderCacheApplication_AddRef(This) \ | ||
| 532 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 533 | |||
| 534 | #define ID3DShaderCacheApplication_Release(This) \ | ||
| 535 | ( (This)->lpVtbl -> Release(This) ) | ||
| 536 | |||
| 537 | |||
| 538 | #define ID3DShaderCacheApplication_GetExePath(This,pExePath) \ | ||
| 539 | ( (This)->lpVtbl -> GetExePath(This,pExePath) ) | ||
| 540 | |||
| 541 | #define ID3DShaderCacheApplication_GetDesc(This,pApplicationDesc) \ | ||
| 542 | ( (This)->lpVtbl -> GetDesc(This,pApplicationDesc) ) | ||
| 543 | |||
| 544 | #define ID3DShaderCacheApplication_RegisterComponent(This,pName,pStateObjectDBPath,NumPSDB,pPSDBs,riid,ppvComponent) \ | ||
| 545 | ( (This)->lpVtbl -> RegisterComponent(This,pName,pStateObjectDBPath,NumPSDB,pPSDBs,riid,ppvComponent) ) | ||
| 546 | |||
| 547 | #define ID3DShaderCacheApplication_RemoveComponent(This,pComponent) \ | ||
| 548 | ( (This)->lpVtbl -> RemoveComponent(This,pComponent) ) | ||
| 549 | |||
| 550 | #define ID3DShaderCacheApplication_GetComponentCount(This) \ | ||
| 551 | ( (This)->lpVtbl -> GetComponentCount(This) ) | ||
| 552 | |||
| 553 | #define ID3DShaderCacheApplication_GetComponent(This,index,riid,ppvComponent) \ | ||
| 554 | ( (This)->lpVtbl -> GetComponent(This,index,riid,ppvComponent) ) | ||
| 555 | |||
| 556 | #define ID3DShaderCacheApplication_GetPrecompileTargetCount(This,flags) \ | ||
| 557 | ( (This)->lpVtbl -> GetPrecompileTargetCount(This,flags) ) | ||
| 558 | |||
| 559 | #define ID3DShaderCacheApplication_GetPrecompileTargets(This,ArraySize,pArray,flags) \ | ||
| 560 | ( (This)->lpVtbl -> GetPrecompileTargets(This,ArraySize,pArray,flags) ) | ||
| 561 | |||
| 562 | #define ID3DShaderCacheApplication_GetInstallerName(This,pInstallerName) \ | ||
| 563 | ( (This)->lpVtbl -> GetInstallerName(This,pInstallerName) ) | ||
| 564 | |||
| 565 | #endif /* COBJMACROS */ | ||
| 566 | |||
| 567 | |||
| 568 | #endif /* C style interface */ | ||
| 569 | |||
| 570 | |||
| 571 | |||
| 572 | |||
| 573 | #endif /* __ID3DShaderCacheApplication_INTERFACE_DEFINED__ */ | ||
| 574 | |||
| 575 | |||
| 576 | /* interface __MIDL_itf_d3dshadercacheregistration_0000_0003 */ | ||
| 577 | /* [local] */ | ||
| 578 | |||
| 579 | typedef struct SC_HANDLE__ *SC_HANDLE; | ||
| 580 | |||
| 581 | |||
| 582 | |||
| 583 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0003_v0_0_c_ifspec; | ||
| 584 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0003_v0_0_s_ifspec; | ||
| 585 | |||
| 586 | #ifndef __ID3DShaderCacheInstaller_INTERFACE_DEFINED__ | ||
| 587 | #define __ID3DShaderCacheInstaller_INTERFACE_DEFINED__ | ||
| 588 | |||
| 589 | /* interface ID3DShaderCacheInstaller */ | ||
| 590 | /* [unique][local][object][uuid] */ | ||
| 591 | |||
| 592 | |||
| 593 | EXTERN_C const IID IID_ID3DShaderCacheInstaller; | ||
| 594 | |||
| 595 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 596 | |||
| 597 | MIDL_INTERFACE("bbe30de1-6318-4526-ae17-776693191bb4") | ||
| 598 | ID3DShaderCacheInstaller : public IUnknown | ||
| 599 | { | ||
| 600 | public: | ||
| 601 | virtual HRESULT STDMETHODCALLTYPE RegisterDriverUpdateListener( void) = 0; | ||
| 602 | |||
| 603 | virtual HRESULT STDMETHODCALLTYPE UnregisterDriverUpdateListener( void) = 0; | ||
| 604 | |||
| 605 | virtual HRESULT STDMETHODCALLTYPE RegisterServiceDriverUpdateTrigger( | ||
| 606 | SC_HANDLE hServiceHandle) = 0; | ||
| 607 | |||
| 608 | virtual HRESULT STDMETHODCALLTYPE UnregisterServiceDriverUpdateTrigger( | ||
| 609 | SC_HANDLE hServiceHandle) = 0; | ||
| 610 | |||
| 611 | virtual HRESULT STDMETHODCALLTYPE RegisterApplication( | ||
| 612 | _In_ const wchar_t *pExePath, | ||
| 613 | _In_ const D3D_SHADER_CACHE_APPLICATION_DESC *pApplicationDesc, | ||
| 614 | REFIID riid, | ||
| 615 | _COM_Outptr_ void **ppvApp) = 0; | ||
| 616 | |||
| 617 | virtual HRESULT STDMETHODCALLTYPE RemoveApplication( | ||
| 618 | _In_ ID3DShaderCacheApplication *pApplication) = 0; | ||
| 619 | |||
| 620 | virtual UINT STDMETHODCALLTYPE GetApplicationCount( void) = 0; | ||
| 621 | |||
| 622 | virtual HRESULT STDMETHODCALLTYPE GetApplication( | ||
| 623 | _In_ UINT index, | ||
| 624 | REFIID riid, | ||
| 625 | _COM_Outptr_ void **ppvApp) = 0; | ||
| 626 | |||
| 627 | virtual HRESULT STDMETHODCALLTYPE ClearAllState( void) = 0; | ||
| 628 | |||
| 629 | virtual UINT STDMETHODCALLTYPE GetMaxPrecompileTargetCount( void) = 0; | ||
| 630 | |||
| 631 | virtual HRESULT STDMETHODCALLTYPE GetPrecompileTargets( | ||
| 632 | _In_opt_ const D3D_SHADER_CACHE_APPLICATION_DESC *pApplicationDesc, | ||
| 633 | _Inout_ UINT *pArraySize, | ||
| 634 | _Out_writes_(*pArraySize) D3D_SHADER_CACHE_COMPILER_PROPERTIES *pArray, | ||
| 635 | D3D_SHADER_CACHE_TARGET_FLAGS flags) = 0; | ||
| 636 | |||
| 637 | }; | ||
| 638 | |||
| 639 | |||
| 640 | #else /* C style interface */ | ||
| 641 | |||
| 642 | typedef struct ID3DShaderCacheInstallerVtbl | ||
| 643 | { | ||
| 644 | BEGIN_INTERFACE | ||
| 645 | |||
| 646 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 647 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 648 | ID3DShaderCacheInstaller * This, | ||
| 649 | REFIID riid, | ||
| 650 | _COM_Outptr_ void **ppvObject); | ||
| 651 | |||
| 652 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 653 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 654 | ID3DShaderCacheInstaller * This); | ||
| 655 | |||
| 656 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 657 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 658 | ID3DShaderCacheInstaller * This); | ||
| 659 | |||
| 660 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, RegisterDriverUpdateListener) | ||
| 661 | HRESULT ( STDMETHODCALLTYPE *RegisterDriverUpdateListener )( | ||
| 662 | ID3DShaderCacheInstaller * This); | ||
| 663 | |||
| 664 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, UnregisterDriverUpdateListener) | ||
| 665 | HRESULT ( STDMETHODCALLTYPE *UnregisterDriverUpdateListener )( | ||
| 666 | ID3DShaderCacheInstaller * This); | ||
| 667 | |||
| 668 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, RegisterServiceDriverUpdateTrigger) | ||
| 669 | HRESULT ( STDMETHODCALLTYPE *RegisterServiceDriverUpdateTrigger )( | ||
| 670 | ID3DShaderCacheInstaller * This, | ||
| 671 | SC_HANDLE hServiceHandle); | ||
| 672 | |||
| 673 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, UnregisterServiceDriverUpdateTrigger) | ||
| 674 | HRESULT ( STDMETHODCALLTYPE *UnregisterServiceDriverUpdateTrigger )( | ||
| 675 | ID3DShaderCacheInstaller * This, | ||
| 676 | SC_HANDLE hServiceHandle); | ||
| 677 | |||
| 678 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, RegisterApplication) | ||
| 679 | HRESULT ( STDMETHODCALLTYPE *RegisterApplication )( | ||
| 680 | ID3DShaderCacheInstaller * This, | ||
| 681 | _In_ const wchar_t *pExePath, | ||
| 682 | _In_ const D3D_SHADER_CACHE_APPLICATION_DESC *pApplicationDesc, | ||
| 683 | REFIID riid, | ||
| 684 | _COM_Outptr_ void **ppvApp); | ||
| 685 | |||
| 686 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, RemoveApplication) | ||
| 687 | HRESULT ( STDMETHODCALLTYPE *RemoveApplication )( | ||
| 688 | ID3DShaderCacheInstaller * This, | ||
| 689 | _In_ ID3DShaderCacheApplication *pApplication); | ||
| 690 | |||
| 691 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, GetApplicationCount) | ||
| 692 | UINT ( STDMETHODCALLTYPE *GetApplicationCount )( | ||
| 693 | ID3DShaderCacheInstaller * This); | ||
| 694 | |||
| 695 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, GetApplication) | ||
| 696 | HRESULT ( STDMETHODCALLTYPE *GetApplication )( | ||
| 697 | ID3DShaderCacheInstaller * This, | ||
| 698 | _In_ UINT index, | ||
| 699 | REFIID riid, | ||
| 700 | _COM_Outptr_ void **ppvApp); | ||
| 701 | |||
| 702 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, ClearAllState) | ||
| 703 | HRESULT ( STDMETHODCALLTYPE *ClearAllState )( | ||
| 704 | ID3DShaderCacheInstaller * This); | ||
| 705 | |||
| 706 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, GetMaxPrecompileTargetCount) | ||
| 707 | UINT ( STDMETHODCALLTYPE *GetMaxPrecompileTargetCount )( | ||
| 708 | ID3DShaderCacheInstaller * This); | ||
| 709 | |||
| 710 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstaller, GetPrecompileTargets) | ||
| 711 | HRESULT ( STDMETHODCALLTYPE *GetPrecompileTargets )( | ||
| 712 | ID3DShaderCacheInstaller * This, | ||
| 713 | _In_opt_ const D3D_SHADER_CACHE_APPLICATION_DESC *pApplicationDesc, | ||
| 714 | _Inout_ UINT *pArraySize, | ||
| 715 | _Out_writes_(*pArraySize) D3D_SHADER_CACHE_COMPILER_PROPERTIES *pArray, | ||
| 716 | D3D_SHADER_CACHE_TARGET_FLAGS flags); | ||
| 717 | |||
| 718 | END_INTERFACE | ||
| 719 | } ID3DShaderCacheInstallerVtbl; | ||
| 720 | |||
| 721 | interface ID3DShaderCacheInstaller | ||
| 722 | { | ||
| 723 | CONST_VTBL struct ID3DShaderCacheInstallerVtbl *lpVtbl; | ||
| 724 | }; | ||
| 725 | |||
| 726 | |||
| 727 | |||
| 728 | #ifdef COBJMACROS | ||
| 729 | |||
| 730 | |||
| 731 | #define ID3DShaderCacheInstaller_QueryInterface(This,riid,ppvObject) \ | ||
| 732 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 733 | |||
| 734 | #define ID3DShaderCacheInstaller_AddRef(This) \ | ||
| 735 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 736 | |||
| 737 | #define ID3DShaderCacheInstaller_Release(This) \ | ||
| 738 | ( (This)->lpVtbl -> Release(This) ) | ||
| 739 | |||
| 740 | |||
| 741 | #define ID3DShaderCacheInstaller_RegisterDriverUpdateListener(This) \ | ||
| 742 | ( (This)->lpVtbl -> RegisterDriverUpdateListener(This) ) | ||
| 743 | |||
| 744 | #define ID3DShaderCacheInstaller_UnregisterDriverUpdateListener(This) \ | ||
| 745 | ( (This)->lpVtbl -> UnregisterDriverUpdateListener(This) ) | ||
| 746 | |||
| 747 | #define ID3DShaderCacheInstaller_RegisterServiceDriverUpdateTrigger(This,hServiceHandle) \ | ||
| 748 | ( (This)->lpVtbl -> RegisterServiceDriverUpdateTrigger(This,hServiceHandle) ) | ||
| 749 | |||
| 750 | #define ID3DShaderCacheInstaller_UnregisterServiceDriverUpdateTrigger(This,hServiceHandle) \ | ||
| 751 | ( (This)->lpVtbl -> UnregisterServiceDriverUpdateTrigger(This,hServiceHandle) ) | ||
| 752 | |||
| 753 | #define ID3DShaderCacheInstaller_RegisterApplication(This,pExePath,pApplicationDesc,riid,ppvApp) \ | ||
| 754 | ( (This)->lpVtbl -> RegisterApplication(This,pExePath,pApplicationDesc,riid,ppvApp) ) | ||
| 755 | |||
| 756 | #define ID3DShaderCacheInstaller_RemoveApplication(This,pApplication) \ | ||
| 757 | ( (This)->lpVtbl -> RemoveApplication(This,pApplication) ) | ||
| 758 | |||
| 759 | #define ID3DShaderCacheInstaller_GetApplicationCount(This) \ | ||
| 760 | ( (This)->lpVtbl -> GetApplicationCount(This) ) | ||
| 761 | |||
| 762 | #define ID3DShaderCacheInstaller_GetApplication(This,index,riid,ppvApp) \ | ||
| 763 | ( (This)->lpVtbl -> GetApplication(This,index,riid,ppvApp) ) | ||
| 764 | |||
| 765 | #define ID3DShaderCacheInstaller_ClearAllState(This) \ | ||
| 766 | ( (This)->lpVtbl -> ClearAllState(This) ) | ||
| 767 | |||
| 768 | #define ID3DShaderCacheInstaller_GetMaxPrecompileTargetCount(This) \ | ||
| 769 | ( (This)->lpVtbl -> GetMaxPrecompileTargetCount(This) ) | ||
| 770 | |||
| 771 | #define ID3DShaderCacheInstaller_GetPrecompileTargets(This,pApplicationDesc,pArraySize,pArray,flags) \ | ||
| 772 | ( (This)->lpVtbl -> GetPrecompileTargets(This,pApplicationDesc,pArraySize,pArray,flags) ) | ||
| 773 | |||
| 774 | #endif /* COBJMACROS */ | ||
| 775 | |||
| 776 | |||
| 777 | #endif /* C style interface */ | ||
| 778 | |||
| 779 | |||
| 780 | |||
| 781 | |||
| 782 | #endif /* __ID3DShaderCacheInstaller_INTERFACE_DEFINED__ */ | ||
| 783 | |||
| 784 | |||
| 785 | #ifndef __ID3DShaderCacheExplorer_INTERFACE_DEFINED__ | ||
| 786 | #define __ID3DShaderCacheExplorer_INTERFACE_DEFINED__ | ||
| 787 | |||
| 788 | /* interface ID3DShaderCacheExplorer */ | ||
| 789 | /* [unique][local][object][uuid] */ | ||
| 790 | |||
| 791 | |||
| 792 | EXTERN_C const IID IID_ID3DShaderCacheExplorer; | ||
| 793 | |||
| 794 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 795 | |||
| 796 | MIDL_INTERFACE("90432322-32f5-487f-9264-e9390fa58b2a") | ||
| 797 | ID3DShaderCacheExplorer : public IUnknown | ||
| 798 | { | ||
| 799 | public: | ||
| 800 | virtual HRESULT STDMETHODCALLTYPE GetApplicationFromExePath( | ||
| 801 | _In_ const wchar_t *pFullExePath, | ||
| 802 | REFIID riid, | ||
| 803 | _COM_Outptr_ void **ppvApp) = 0; | ||
| 804 | |||
| 805 | }; | ||
| 806 | |||
| 807 | |||
| 808 | #else /* C style interface */ | ||
| 809 | |||
| 810 | typedef struct ID3DShaderCacheExplorerVtbl | ||
| 811 | { | ||
| 812 | BEGIN_INTERFACE | ||
| 813 | |||
| 814 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 815 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 816 | ID3DShaderCacheExplorer * This, | ||
| 817 | REFIID riid, | ||
| 818 | _COM_Outptr_ void **ppvObject); | ||
| 819 | |||
| 820 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 821 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 822 | ID3DShaderCacheExplorer * This); | ||
| 823 | |||
| 824 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 825 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 826 | ID3DShaderCacheExplorer * This); | ||
| 827 | |||
| 828 | DECLSPEC_XFGVIRT(ID3DShaderCacheExplorer, GetApplicationFromExePath) | ||
| 829 | HRESULT ( STDMETHODCALLTYPE *GetApplicationFromExePath )( | ||
| 830 | ID3DShaderCacheExplorer * This, | ||
| 831 | _In_ const wchar_t *pFullExePath, | ||
| 832 | REFIID riid, | ||
| 833 | _COM_Outptr_ void **ppvApp); | ||
| 834 | |||
| 835 | END_INTERFACE | ||
| 836 | } ID3DShaderCacheExplorerVtbl; | ||
| 837 | |||
| 838 | interface ID3DShaderCacheExplorer | ||
| 839 | { | ||
| 840 | CONST_VTBL struct ID3DShaderCacheExplorerVtbl *lpVtbl; | ||
| 841 | }; | ||
| 842 | |||
| 843 | |||
| 844 | |||
| 845 | #ifdef COBJMACROS | ||
| 846 | |||
| 847 | |||
| 848 | #define ID3DShaderCacheExplorer_QueryInterface(This,riid,ppvObject) \ | ||
| 849 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 850 | |||
| 851 | #define ID3DShaderCacheExplorer_AddRef(This) \ | ||
| 852 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 853 | |||
| 854 | #define ID3DShaderCacheExplorer_Release(This) \ | ||
| 855 | ( (This)->lpVtbl -> Release(This) ) | ||
| 856 | |||
| 857 | |||
| 858 | #define ID3DShaderCacheExplorer_GetApplicationFromExePath(This,pFullExePath,riid,ppvApp) \ | ||
| 859 | ( (This)->lpVtbl -> GetApplicationFromExePath(This,pFullExePath,riid,ppvApp) ) | ||
| 860 | |||
| 861 | #endif /* COBJMACROS */ | ||
| 862 | |||
| 863 | |||
| 864 | #endif /* C style interface */ | ||
| 865 | |||
| 866 | |||
| 867 | |||
| 868 | |||
| 869 | #endif /* __ID3DShaderCacheExplorer_INTERFACE_DEFINED__ */ | ||
| 870 | |||
| 871 | |||
| 872 | #ifndef __ID3DShaderCacheInstallerFactory_INTERFACE_DEFINED__ | ||
| 873 | #define __ID3DShaderCacheInstallerFactory_INTERFACE_DEFINED__ | ||
| 874 | |||
| 875 | /* interface ID3DShaderCacheInstallerFactory */ | ||
| 876 | /* [unique][local][object][uuid] */ | ||
| 877 | |||
| 878 | |||
| 879 | EXTERN_C const IID IID_ID3DShaderCacheInstallerFactory; | ||
| 880 | |||
| 881 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 882 | |||
| 883 | MIDL_INTERFACE("09b2dfe4-840f-401a-804c-0dd8aadc9e9f") | ||
| 884 | ID3DShaderCacheInstallerFactory : public IUnknown | ||
| 885 | { | ||
| 886 | public: | ||
| 887 | virtual HRESULT STDMETHODCALLTYPE CreateInstaller( | ||
| 888 | _In_ ID3DShaderCacheInstallerClient *pClient, | ||
| 889 | REFIID riid, | ||
| 890 | _COM_Outptr_ void **ppvInstaller) = 0; | ||
| 891 | |||
| 892 | virtual HRESULT STDMETHODCALLTYPE CreateExplorer( | ||
| 893 | IUnknown *pUnknown, | ||
| 894 | REFIID riid, | ||
| 895 | _COM_Outptr_ void **ppvExplorer) = 0; | ||
| 896 | |||
| 897 | }; | ||
| 898 | |||
| 899 | |||
| 900 | #else /* C style interface */ | ||
| 901 | |||
| 902 | typedef struct ID3DShaderCacheInstallerFactoryVtbl | ||
| 903 | { | ||
| 904 | BEGIN_INTERFACE | ||
| 905 | |||
| 906 | DECLSPEC_XFGVIRT(IUnknown, QueryInterface) | ||
| 907 | HRESULT ( STDMETHODCALLTYPE *QueryInterface )( | ||
| 908 | ID3DShaderCacheInstallerFactory * This, | ||
| 909 | REFIID riid, | ||
| 910 | _COM_Outptr_ void **ppvObject); | ||
| 911 | |||
| 912 | DECLSPEC_XFGVIRT(IUnknown, AddRef) | ||
| 913 | ULONG ( STDMETHODCALLTYPE *AddRef )( | ||
| 914 | ID3DShaderCacheInstallerFactory * This); | ||
| 915 | |||
| 916 | DECLSPEC_XFGVIRT(IUnknown, Release) | ||
| 917 | ULONG ( STDMETHODCALLTYPE *Release )( | ||
| 918 | ID3DShaderCacheInstallerFactory * This); | ||
| 919 | |||
| 920 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstallerFactory, CreateInstaller) | ||
| 921 | HRESULT ( STDMETHODCALLTYPE *CreateInstaller )( | ||
| 922 | ID3DShaderCacheInstallerFactory * This, | ||
| 923 | _In_ ID3DShaderCacheInstallerClient *pClient, | ||
| 924 | REFIID riid, | ||
| 925 | _COM_Outptr_ void **ppvInstaller); | ||
| 926 | |||
| 927 | DECLSPEC_XFGVIRT(ID3DShaderCacheInstallerFactory, CreateExplorer) | ||
| 928 | HRESULT ( STDMETHODCALLTYPE *CreateExplorer )( | ||
| 929 | ID3DShaderCacheInstallerFactory * This, | ||
| 930 | IUnknown *pUnknown, | ||
| 931 | REFIID riid, | ||
| 932 | _COM_Outptr_ void **ppvExplorer); | ||
| 933 | |||
| 934 | END_INTERFACE | ||
| 935 | } ID3DShaderCacheInstallerFactoryVtbl; | ||
| 936 | |||
| 937 | interface ID3DShaderCacheInstallerFactory | ||
| 938 | { | ||
| 939 | CONST_VTBL struct ID3DShaderCacheInstallerFactoryVtbl *lpVtbl; | ||
| 940 | }; | ||
| 941 | |||
| 942 | |||
| 943 | |||
| 944 | #ifdef COBJMACROS | ||
| 945 | |||
| 946 | |||
| 947 | #define ID3DShaderCacheInstallerFactory_QueryInterface(This,riid,ppvObject) \ | ||
| 948 | ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) | ||
| 949 | |||
| 950 | #define ID3DShaderCacheInstallerFactory_AddRef(This) \ | ||
| 951 | ( (This)->lpVtbl -> AddRef(This) ) | ||
| 952 | |||
| 953 | #define ID3DShaderCacheInstallerFactory_Release(This) \ | ||
| 954 | ( (This)->lpVtbl -> Release(This) ) | ||
| 955 | |||
| 956 | |||
| 957 | #define ID3DShaderCacheInstallerFactory_CreateInstaller(This,pClient,riid,ppvInstaller) \ | ||
| 958 | ( (This)->lpVtbl -> CreateInstaller(This,pClient,riid,ppvInstaller) ) | ||
| 959 | |||
| 960 | #define ID3DShaderCacheInstallerFactory_CreateExplorer(This,pUnknown,riid,ppvExplorer) \ | ||
| 961 | ( (This)->lpVtbl -> CreateExplorer(This,pUnknown,riid,ppvExplorer) ) | ||
| 962 | |||
| 963 | #endif /* COBJMACROS */ | ||
| 964 | |||
| 965 | |||
| 966 | #endif /* C style interface */ | ||
| 967 | |||
| 968 | |||
| 969 | |||
| 970 | |||
| 971 | #endif /* __ID3DShaderCacheInstallerFactory_INTERFACE_DEFINED__ */ | ||
| 972 | |||
| 973 | |||
| 974 | /* interface __MIDL_itf_d3dshadercacheregistration_0000_0006 */ | ||
| 975 | /* [local] */ | ||
| 976 | |||
| 977 | DEFINE_GUID(IID_ID3DShaderCacheInstallerClient,0xa16ee930,0xd9f6,0x4222,0xa5,0x14,0x24,0x44,0x73,0xe5,0xd2,0x66); | ||
| 978 | DEFINE_GUID(IID_ID3DShaderCacheComponent,0xeed1bf00,0xf5c7,0x4cf7,0x88,0x5c,0xd0,0xf9,0xc0,0xcb,0x48,0x28); | ||
| 979 | DEFINE_GUID(IID_ID3DShaderCacheApplication,0xfc688ee2,0x1b35,0x4913,0x93,0xbe,0x1c,0xa3,0xfa,0x7d,0xf3,0x9e); | ||
| 980 | DEFINE_GUID(IID_ID3DShaderCacheInstaller,0xbbe30de1,0x6318,0x4526,0xae,0x17,0x77,0x66,0x93,0x19,0x1b,0xb4); | ||
| 981 | DEFINE_GUID(IID_ID3DShaderCacheExplorer,0x90432322,0x32f5,0x487f,0x92,0x64,0xe9,0x39,0x0f,0xa5,0x8b,0x2a); | ||
| 982 | DEFINE_GUID(IID_ID3DShaderCacheInstallerFactory,0x09b2dfe4,0x840f,0x401a,0x80,0x4c,0x0d,0xd8,0xaa,0xdc,0x9e,0x9f); | ||
| 983 | |||
| 984 | |||
| 985 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0006_v0_0_c_ifspec; | ||
| 986 | extern RPC_IF_HANDLE __MIDL_itf_d3dshadercacheregistration_0000_0006_v0_0_s_ifspec; | ||
| 987 | |||
| 988 | /* Additional Prototypes for ALL interfaces */ | ||
| 989 | |||
| 990 | /* end of Additional Prototypes */ | ||
| 991 | |||
| 992 | #ifdef __cplusplus | ||
| 993 | } | ||
| 994 | #endif | ||
| 995 | |||
| 996 | #endif | ||
| 997 | |||
| 998 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dshadercacheregistration.idl b/contrib/DirectX-Headers-1.618.2/include/directx/d3dshadercacheregistration.idl new file mode 100644 index 0000000..7dcc53d --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dshadercacheregistration.idl | |||
| @@ -0,0 +1,195 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | #pragma once | ||
| 8 | import "oaidl.idl"; | ||
| 9 | import "ocidl.idl"; | ||
| 10 | |||
| 11 | cpp_quote("DEFINE_GUID(CLSID_D3DShaderCacheInstallerFactory, 0x16195a0b, 0x607c, 0x41f1, 0xbf, 0x03, 0xc7, 0x69, 0x4d, 0x60, 0xa8, 0xd4);") | ||
| 12 | |||
| 13 | typedef enum D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE | ||
| 14 | { | ||
| 15 | D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE_USER, | ||
| 16 | D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE_SYSTEM | ||
| 17 | } D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE; | ||
| 18 | |||
| 19 | interface ID3DShaderCacheInstaller; | ||
| 20 | |||
| 21 | // This interface is implemented by the game installer | ||
| 22 | [uuid(a16ee930-d9f6-4222-a514-244473e5d266), object, local, pointer_default(unique)] | ||
| 23 | interface ID3DShaderCacheInstallerClient | ||
| 24 | { | ||
| 25 | HRESULT GetInstallerName( | ||
| 26 | [annotation("_Inout_")] SIZE_T* pNameLength, | ||
| 27 | [annotation("_Out_writes_opt_(*pNameLength)")] wchar_t* pName); | ||
| 28 | |||
| 29 | D3D_SHADER_CACHE_APP_REGISTRATION_SCOPE GetInstallerScope(); | ||
| 30 | |||
| 31 | HRESULT HandleDriverUpdate( | ||
| 32 | [annotation("_In_")] ID3DShaderCacheInstaller* pInstaller); | ||
| 33 | }; | ||
| 34 | |||
| 35 | typedef struct D3D_SHADER_CACHE_PSDB_PROPERTIES | ||
| 36 | { | ||
| 37 | const wchar_t* pAdapterFamily; | ||
| 38 | const wchar_t* pPsdbPath; | ||
| 39 | } D3D_SHADER_CACHE_PSDB_PROPERTIES; | ||
| 40 | |||
| 41 | [uuid(eed1bf00-f5c7-4cf7-885c-d0f9c0cb4828), object, local, pointer_default(unique)] | ||
| 42 | interface ID3DShaderCacheComponent : IUnknown | ||
| 43 | { | ||
| 44 | HRESULT GetComponentName( | ||
| 45 | [annotation("_Out_")] const wchar_t** pName); | ||
| 46 | |||
| 47 | HRESULT GetStateObjectDatabasePath( | ||
| 48 | [annotation("_Out_")] const wchar_t** pPath); | ||
| 49 | |||
| 50 | HRESULT GetPrecompiledCachePath( | ||
| 51 | [annotation("_In_")] const wchar_t* pAdapterFamily, | ||
| 52 | [annotation("_Inout_")] const wchar_t** pPath); | ||
| 53 | |||
| 54 | UINT GetPrecompiledShaderDatabaseCount(); | ||
| 55 | |||
| 56 | HRESULT GetPrecompiledShaderDatabases( | ||
| 57 | UINT ArraySize, | ||
| 58 | [annotation("_Out_writes_(ArraySize)")] D3D_SHADER_CACHE_PSDB_PROPERTIES * pPSDBs); | ||
| 59 | }; | ||
| 60 | |||
| 61 | typedef enum D3D_SHADER_CACHE_TARGET_FLAGS | ||
| 62 | { | ||
| 63 | D3D_SHADER_CACHE_TARGET_FLAG_NONE = 0, | ||
| 64 | }D3D_SHADER_CACHE_TARGET_FLAGS; | ||
| 65 | cpp_quote("DEFINE_ENUM_FLAG_OPERATORS( D3D_SHADER_CACHE_TARGET_FLAGS )") | ||
| 66 | |||
| 67 | typedef union D3D_VERSION_NUMBER | ||
| 68 | { | ||
| 69 | UINT64 Version; | ||
| 70 | UINT16 VersionParts[4]; | ||
| 71 | } D3D_VERSION_NUMBER; | ||
| 72 | |||
| 73 | typedef struct D3D_SHADER_CACHE_COMPILER_PROPERTIES | ||
| 74 | { | ||
| 75 | wchar_t szAdapterFamily[128]; | ||
| 76 | UINT64 MinimumABISupportVersion; | ||
| 77 | UINT64 MaximumABISupportVersion; | ||
| 78 | D3D_VERSION_NUMBER CompilerVersion; | ||
| 79 | D3D_VERSION_NUMBER ApplicationProfileVersion; | ||
| 80 | } D3D_SHADER_CACHE_COMPILER_PROPERTIES; | ||
| 81 | |||
| 82 | typedef struct D3D_SHADER_CACHE_APPLICATION_DESC | ||
| 83 | { | ||
| 84 | const wchar_t* pExeFilename; | ||
| 85 | const wchar_t* pName; | ||
| 86 | D3D_VERSION_NUMBER Version; | ||
| 87 | const wchar_t* pEngineName; | ||
| 88 | D3D_VERSION_NUMBER EngineVersion; | ||
| 89 | } D3D_SHADER_CACHE_APPLICATION_DESC; | ||
| 90 | |||
| 91 | [uuid(fc688ee2-1b35-4913-93be-1ca3fa7df39e), object, local, pointer_default(unique)] | ||
| 92 | interface ID3DShaderCacheApplication : IUnknown | ||
| 93 | { | ||
| 94 | HRESULT GetExePath( | ||
| 95 | [annotation("_Out_")] const wchar_t** pExePath); | ||
| 96 | |||
| 97 | HRESULT GetDesc( | ||
| 98 | [annotation("_Out_")] D3D_SHADER_CACHE_APPLICATION_DESC* pApplicationDesc); | ||
| 99 | |||
| 100 | HRESULT RegisterComponent( | ||
| 101 | [annotation("_In_")] const wchar_t* pName, | ||
| 102 | [annotation("_In_")] const wchar_t* pStateObjectDBPath, | ||
| 103 | [annotation("_In_")] UINT NumPSDB, | ||
| 104 | [annotation("_In_reads_(NumPSDB)")] const D3D_SHADER_CACHE_PSDB_PROPERTIES* pPSDBs, | ||
| 105 | [in] REFIID riid, | ||
| 106 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvComponent); | ||
| 107 | |||
| 108 | HRESULT RemoveComponent( | ||
| 109 | [annotation("_In_")] ID3DShaderCacheComponent* pComponent); | ||
| 110 | |||
| 111 | UINT GetComponentCount(); | ||
| 112 | |||
| 113 | HRESULT GetComponent( | ||
| 114 | [annotation("_In_")] UINT index, | ||
| 115 | [in] REFIID riid, | ||
| 116 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvComponent); | ||
| 117 | |||
| 118 | UINT GetPrecompileTargetCount(D3D_SHADER_CACHE_TARGET_FLAGS flags); | ||
| 119 | |||
| 120 | HRESULT GetPrecompileTargets( | ||
| 121 | [annotation("_In_")] UINT ArraySize, | ||
| 122 | [annotation("_In_reads_(ArraySize)")] D3D_SHADER_CACHE_COMPILER_PROPERTIES* pArray, | ||
| 123 | D3D_SHADER_CACHE_TARGET_FLAGS flags); | ||
| 124 | |||
| 125 | HRESULT GetInstallerName( | ||
| 126 | [annotation("_Out_")] const wchar_t** pInstallerName); | ||
| 127 | }; | ||
| 128 | |||
| 129 | typedef struct SC_HANDLE__ *SC_HANDLE; | ||
| 130 | [uuid(bbe30de1-6318-4526-ae17-776693191bb4), object, local, pointer_default(unique)] | ||
| 131 | interface ID3DShaderCacheInstaller : IUnknown | ||
| 132 | { | ||
| 133 | HRESULT RegisterDriverUpdateListener(); | ||
| 134 | HRESULT UnregisterDriverUpdateListener(); | ||
| 135 | |||
| 136 | HRESULT RegisterServiceDriverUpdateTrigger(SC_HANDLE hServiceHandle); | ||
| 137 | HRESULT UnregisterServiceDriverUpdateTrigger(SC_HANDLE hServiceHandle); | ||
| 138 | |||
| 139 | HRESULT RegisterApplication( | ||
| 140 | [annotation("_In_")] const wchar_t* pExePath, | ||
| 141 | [annotation("_In_")] const D3D_SHADER_CACHE_APPLICATION_DESC* pApplicationDesc, | ||
| 142 | [in] REFIID riid, | ||
| 143 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvApp); // Expected: ID3DShaderCacheApplication | ||
| 144 | |||
| 145 | HRESULT RemoveApplication( | ||
| 146 | [annotation("_In_")] ID3DShaderCacheApplication* pApplication); // Expected: ID3DShaderCacheApplication | ||
| 147 | |||
| 148 | UINT GetApplicationCount(); | ||
| 149 | |||
| 150 | HRESULT GetApplication( | ||
| 151 | [annotation("_In_")] UINT index, | ||
| 152 | [in] REFIID riid, | ||
| 153 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvApp); // Expected: ID3DShaderCacheApplication | ||
| 154 | |||
| 155 | HRESULT ClearAllState(); | ||
| 156 | |||
| 157 | UINT GetMaxPrecompileTargetCount(); | ||
| 158 | |||
| 159 | HRESULT GetPrecompileTargets( | ||
| 160 | [annotation("_In_opt_")] const D3D_SHADER_CACHE_APPLICATION_DESC* pApplicationDesc, | ||
| 161 | [annotation("_Inout_")] UINT* pArraySize, | ||
| 162 | [annotation("_Out_writes_(*pArraySize)")] D3D_SHADER_CACHE_COMPILER_PROPERTIES* pArray, | ||
| 163 | D3D_SHADER_CACHE_TARGET_FLAGS flags); | ||
| 164 | }; | ||
| 165 | |||
| 166 | [uuid(90432322-32f5-487f-9264-e9390fa58b2a), object, local, pointer_default(unique)] | ||
| 167 | interface ID3DShaderCacheExplorer : IUnknown | ||
| 168 | { | ||
| 169 | HRESULT GetApplicationFromExePath( | ||
| 170 | [annotation("_In_")] const wchar_t* pFullExePath, | ||
| 171 | [in] REFIID riid, | ||
| 172 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvApp); // Expected: ID3DShaderCacheApplication | ||
| 173 | }; | ||
| 174 | |||
| 175 | [uuid(09b2dfe4-840f-401a-804c-0dd8aadc9e9f), object, local, pointer_default(unique)] | ||
| 176 | interface ID3DShaderCacheInstallerFactory : IUnknown | ||
| 177 | { | ||
| 178 | HRESULT CreateInstaller( | ||
| 179 | [annotation("_In_")] ID3DShaderCacheInstallerClient* pClient, | ||
| 180 | [in] REFIID riid, | ||
| 181 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvInstaller); | ||
| 182 | |||
| 183 | HRESULT CreateExplorer( | ||
| 184 | [in] IUnknown* pUnknown, // Expected: ID3D12Device, IDXCoreAdapter, IDXGIAdapter | ||
| 185 | [in] REFIID riid, | ||
| 186 | [out, iid_is(riid), annotation("_COM_Outptr_")] void** ppvExplorer); // Expected: ID3DShaderCacheExplorer | ||
| 187 | }; | ||
| 188 | |||
| 189 | |||
| 190 | cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheInstallerClient,0xa16ee930,0xd9f6,0x4222,0xa5,0x14,0x24,0x44,0x73,0xe5,0xd2,0x66);" ) | ||
| 191 | cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheComponent,0xeed1bf00,0xf5c7,0x4cf7,0x88,0x5c,0xd0,0xf9,0xc0,0xcb,0x48,0x28);" ) | ||
| 192 | cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheApplication,0xfc688ee2,0x1b35,0x4913,0x93,0xbe,0x1c,0xa3,0xfa,0x7d,0xf3,0x9e);" ) | ||
| 193 | cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheInstaller,0xbbe30de1,0x6318,0x4526,0xae,0x17,0x77,0x66,0x93,0x19,0x1b,0xb4);" ) | ||
| 194 | cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheExplorer,0x90432322,0x32f5,0x487f,0x92,0x64,0xe9,0x39,0x0f,0xa5,0x8b,0x2a);" ) | ||
| 195 | cpp_quote( "DEFINE_GUID(IID_ID3DShaderCacheInstallerFactory,0x09b2dfe4,0x840f,0x401a,0x80,0x4c,0x0d,0xd8,0xaa,0xdc,0x9e,0x9f);" ) | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12.h new file mode 100644 index 0000000..e8ec24e --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12.h | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #ifndef __D3DX12_H__ | ||
| 9 | #define __D3DX12_H__ | ||
| 10 | |||
| 11 | #include "d3d12.h" | ||
| 12 | |||
| 13 | #if defined( __cplusplus ) | ||
| 14 | |||
| 15 | #include "d3dx12_barriers.h" | ||
| 16 | #include "d3dx12_core.h" | ||
| 17 | #include "d3dx12_default.h" | ||
| 18 | #include "d3dx12_pipeline_state_stream.h" | ||
| 19 | #include "d3dx12_render_pass.h" | ||
| 20 | #include "d3dx12_resource_helpers.h" | ||
| 21 | #include "d3dx12_root_signature.h" | ||
| 22 | #include "d3dx12_property_format_table.h" | ||
| 23 | |||
| 24 | #ifndef D3DX12_NO_STATE_OBJECT_HELPERS | ||
| 25 | #include "d3dx12_state_object.h" | ||
| 26 | #endif // !D3DX12_NO_STATE_OBJECT_HELPERS | ||
| 27 | |||
| 28 | #ifndef D3DX12_NO_CHECK_FEATURE_SUPPORT_CLASS | ||
| 29 | #include "d3dx12_check_feature_support.h" | ||
| 30 | #endif // !D3DX12_NO_CHECK_FEATURE_SUPPORT_CLASS | ||
| 31 | |||
| 32 | #endif // defined( __cplusplus ) | ||
| 33 | |||
| 34 | #endif //__D3DX12_H__ | ||
| 35 | |||
| 36 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_barriers.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_barriers.h new file mode 100644 index 0000000..1bd7a74 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_barriers.h | |||
| @@ -0,0 +1,193 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #ifndef __D3DX12_BARRIERS_H__ | ||
| 9 | #define __D3DX12_BARRIERS_H__ | ||
| 10 | |||
| 11 | #if defined( __cplusplus ) | ||
| 12 | |||
| 13 | #include "d3d12.h" | ||
| 14 | |||
| 15 | //------------------------------------------------------------------------------------------------ | ||
| 16 | struct CD3DX12_RESOURCE_BARRIER : public D3D12_RESOURCE_BARRIER | ||
| 17 | { | ||
| 18 | CD3DX12_RESOURCE_BARRIER() = default; | ||
| 19 | explicit CD3DX12_RESOURCE_BARRIER(const D3D12_RESOURCE_BARRIER &o) noexcept : | ||
| 20 | D3D12_RESOURCE_BARRIER(o) | ||
| 21 | {} | ||
| 22 | static inline CD3DX12_RESOURCE_BARRIER Transition( | ||
| 23 | _In_ ID3D12Resource* pResource, | ||
| 24 | D3D12_RESOURCE_STATES stateBefore, | ||
| 25 | D3D12_RESOURCE_STATES stateAfter, | ||
| 26 | UINT subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES, | ||
| 27 | D3D12_RESOURCE_BARRIER_FLAGS flags = D3D12_RESOURCE_BARRIER_FLAG_NONE) noexcept | ||
| 28 | { | ||
| 29 | CD3DX12_RESOURCE_BARRIER result = {}; | ||
| 30 | D3D12_RESOURCE_BARRIER &barrier = result; | ||
| 31 | result.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION; | ||
| 32 | result.Flags = flags; | ||
| 33 | barrier.Transition.pResource = pResource; | ||
| 34 | barrier.Transition.StateBefore = stateBefore; | ||
| 35 | barrier.Transition.StateAfter = stateAfter; | ||
| 36 | barrier.Transition.Subresource = subresource; | ||
| 37 | return result; | ||
| 38 | } | ||
| 39 | static inline CD3DX12_RESOURCE_BARRIER Aliasing( | ||
| 40 | _In_opt_ ID3D12Resource* pResourceBefore, | ||
| 41 | _In_opt_ ID3D12Resource* pResourceAfter) noexcept | ||
| 42 | { | ||
| 43 | CD3DX12_RESOURCE_BARRIER result = {}; | ||
| 44 | D3D12_RESOURCE_BARRIER &barrier = result; | ||
| 45 | result.Type = D3D12_RESOURCE_BARRIER_TYPE_ALIASING; | ||
| 46 | barrier.Aliasing.pResourceBefore = pResourceBefore; | ||
| 47 | barrier.Aliasing.pResourceAfter = pResourceAfter; | ||
| 48 | return result; | ||
| 49 | } | ||
| 50 | static inline CD3DX12_RESOURCE_BARRIER UAV( | ||
| 51 | _In_opt_ ID3D12Resource* pResource) noexcept | ||
| 52 | { | ||
| 53 | CD3DX12_RESOURCE_BARRIER result = {}; | ||
| 54 | D3D12_RESOURCE_BARRIER &barrier = result; | ||
| 55 | result.Type = D3D12_RESOURCE_BARRIER_TYPE_UAV; | ||
| 56 | barrier.UAV.pResource = pResource; | ||
| 57 | return result; | ||
| 58 | } | ||
| 59 | }; | ||
| 60 | |||
| 61 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 62 | |||
| 63 | //================================================================================================ | ||
| 64 | // D3DX12 Enhanced Barrier Helpers | ||
| 65 | //================================================================================================ | ||
| 66 | |||
| 67 | class CD3DX12_BARRIER_SUBRESOURCE_RANGE : public D3D12_BARRIER_SUBRESOURCE_RANGE | ||
| 68 | { | ||
| 69 | public: | ||
| 70 | CD3DX12_BARRIER_SUBRESOURCE_RANGE() = default; | ||
| 71 | CD3DX12_BARRIER_SUBRESOURCE_RANGE(const D3D12_BARRIER_SUBRESOURCE_RANGE &o) noexcept : | ||
| 72 | D3D12_BARRIER_SUBRESOURCE_RANGE(o) | ||
| 73 | {} | ||
| 74 | explicit CD3DX12_BARRIER_SUBRESOURCE_RANGE(UINT Subresource) noexcept : | ||
| 75 | D3D12_BARRIER_SUBRESOURCE_RANGE{ Subresource, 0, 0, 0, 0, 0 } | ||
| 76 | {} | ||
| 77 | CD3DX12_BARRIER_SUBRESOURCE_RANGE( | ||
| 78 | UINT firstMipLevel, | ||
| 79 | UINT numMips, | ||
| 80 | UINT firstArraySlice, | ||
| 81 | UINT numArraySlices, | ||
| 82 | UINT firstPlane = 0, | ||
| 83 | UINT numPlanes = 1) noexcept : | ||
| 84 | D3D12_BARRIER_SUBRESOURCE_RANGE | ||
| 85 | { | ||
| 86 | firstMipLevel, | ||
| 87 | numMips, | ||
| 88 | firstArraySlice, | ||
| 89 | numArraySlices, | ||
| 90 | firstPlane, | ||
| 91 | numPlanes | ||
| 92 | } | ||
| 93 | {} | ||
| 94 | }; | ||
| 95 | |||
| 96 | class CD3DX12_GLOBAL_BARRIER : public D3D12_GLOBAL_BARRIER | ||
| 97 | { | ||
| 98 | public: | ||
| 99 | CD3DX12_GLOBAL_BARRIER() = default; | ||
| 100 | CD3DX12_GLOBAL_BARRIER(const D3D12_GLOBAL_BARRIER &o) noexcept : D3D12_GLOBAL_BARRIER(o){} | ||
| 101 | CD3DX12_GLOBAL_BARRIER( | ||
| 102 | D3D12_BARRIER_SYNC syncBefore, | ||
| 103 | D3D12_BARRIER_SYNC syncAfter, | ||
| 104 | D3D12_BARRIER_ACCESS accessBefore, | ||
| 105 | D3D12_BARRIER_ACCESS accessAfter) noexcept : D3D12_GLOBAL_BARRIER { | ||
| 106 | syncBefore, | ||
| 107 | syncAfter, | ||
| 108 | accessBefore, | ||
| 109 | accessAfter | ||
| 110 | } | ||
| 111 | {} | ||
| 112 | }; | ||
| 113 | |||
| 114 | class CD3DX12_BUFFER_BARRIER : public D3D12_BUFFER_BARRIER | ||
| 115 | { | ||
| 116 | public: | ||
| 117 | CD3DX12_BUFFER_BARRIER() = default; | ||
| 118 | CD3DX12_BUFFER_BARRIER(const D3D12_BUFFER_BARRIER &o) noexcept : D3D12_BUFFER_BARRIER(o){} | ||
| 119 | CD3DX12_BUFFER_BARRIER( | ||
| 120 | D3D12_BARRIER_SYNC syncBefore, | ||
| 121 | D3D12_BARRIER_SYNC syncAfter, | ||
| 122 | D3D12_BARRIER_ACCESS accessBefore, | ||
| 123 | D3D12_BARRIER_ACCESS accessAfter, | ||
| 124 | ID3D12Resource *pRes) noexcept : D3D12_BUFFER_BARRIER { | ||
| 125 | syncBefore, | ||
| 126 | syncAfter, | ||
| 127 | accessBefore, | ||
| 128 | accessAfter, | ||
| 129 | pRes, | ||
| 130 | 0, ULLONG_MAX | ||
| 131 | } | ||
| 132 | {} | ||
| 133 | }; | ||
| 134 | |||
| 135 | class CD3DX12_TEXTURE_BARRIER : public D3D12_TEXTURE_BARRIER | ||
| 136 | { | ||
| 137 | public: | ||
| 138 | CD3DX12_TEXTURE_BARRIER() = default; | ||
| 139 | CD3DX12_TEXTURE_BARRIER(const D3D12_TEXTURE_BARRIER &o) noexcept : D3D12_TEXTURE_BARRIER(o){} | ||
| 140 | CD3DX12_TEXTURE_BARRIER( | ||
| 141 | D3D12_BARRIER_SYNC syncBefore, | ||
| 142 | D3D12_BARRIER_SYNC syncAfter, | ||
| 143 | D3D12_BARRIER_ACCESS accessBefore, | ||
| 144 | D3D12_BARRIER_ACCESS accessAfter, | ||
| 145 | D3D12_BARRIER_LAYOUT layoutBefore, | ||
| 146 | D3D12_BARRIER_LAYOUT layoutAfter, | ||
| 147 | ID3D12Resource *pRes, | ||
| 148 | const D3D12_BARRIER_SUBRESOURCE_RANGE &subresources, | ||
| 149 | D3D12_TEXTURE_BARRIER_FLAGS flag = D3D12_TEXTURE_BARRIER_FLAG_NONE) noexcept : D3D12_TEXTURE_BARRIER { | ||
| 150 | syncBefore, | ||
| 151 | syncAfter, | ||
| 152 | accessBefore, | ||
| 153 | accessAfter, | ||
| 154 | layoutBefore, | ||
| 155 | layoutAfter, | ||
| 156 | pRes, | ||
| 157 | subresources, | ||
| 158 | flag | ||
| 159 | } | ||
| 160 | {} | ||
| 161 | }; | ||
| 162 | |||
| 163 | class CD3DX12_BARRIER_GROUP : public D3D12_BARRIER_GROUP | ||
| 164 | { | ||
| 165 | public: | ||
| 166 | CD3DX12_BARRIER_GROUP() = default; | ||
| 167 | CD3DX12_BARRIER_GROUP(const D3D12_BARRIER_GROUP &o) noexcept : D3D12_BARRIER_GROUP(o){} | ||
| 168 | CD3DX12_BARRIER_GROUP(UINT32 numBarriers, const D3D12_BUFFER_BARRIER *pBarriers) noexcept | ||
| 169 | { | ||
| 170 | Type = D3D12_BARRIER_TYPE_BUFFER; | ||
| 171 | NumBarriers = numBarriers; | ||
| 172 | pBufferBarriers = pBarriers; | ||
| 173 | } | ||
| 174 | CD3DX12_BARRIER_GROUP(UINT32 numBarriers, const D3D12_TEXTURE_BARRIER *pBarriers) noexcept | ||
| 175 | { | ||
| 176 | Type = D3D12_BARRIER_TYPE_TEXTURE; | ||
| 177 | NumBarriers = numBarriers; | ||
| 178 | pTextureBarriers = pBarriers; | ||
| 179 | } | ||
| 180 | CD3DX12_BARRIER_GROUP(UINT32 numBarriers, const D3D12_GLOBAL_BARRIER *pBarriers) noexcept | ||
| 181 | { | ||
| 182 | Type = D3D12_BARRIER_TYPE_GLOBAL; | ||
| 183 | NumBarriers = numBarriers; | ||
| 184 | pGlobalBarriers = pBarriers; | ||
| 185 | } | ||
| 186 | }; | ||
| 187 | #endif // D3D12_SDK_VERSION >= 608 | ||
| 188 | |||
| 189 | |||
| 190 | #endif // defined( __cplusplus ) | ||
| 191 | |||
| 192 | #endif // __D3DX12_BARRIERS_H__ | ||
| 193 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_check_feature_support.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_check_feature_support.h new file mode 100644 index 0000000..725fb7f --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_check_feature_support.h | |||
| @@ -0,0 +1,1162 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #pragma once | ||
| 9 | |||
| 10 | #ifndef __cplusplus | ||
| 11 | #error D3DX12 requires C++ | ||
| 12 | #endif | ||
| 13 | |||
| 14 | #include "d3d12.h" | ||
| 15 | |||
| 16 | //================================================================================================ | ||
| 17 | // D3DX12 Check Feature Support | ||
| 18 | //================================================================================================ | ||
| 19 | |||
| 20 | #include <vector> | ||
| 21 | |||
| 22 | class CD3DX12FeatureSupport | ||
| 23 | { | ||
| 24 | public: // Function declaration | ||
| 25 | // Default constructor that creates an empty object | ||
| 26 | CD3DX12FeatureSupport() noexcept; | ||
| 27 | |||
| 28 | // Initialize data from the given device | ||
| 29 | HRESULT Init(ID3D12Device* pDevice); | ||
| 30 | |||
| 31 | // Retreives the status of the object. If an error occurred in the initialization process, the function returns the error code. | ||
| 32 | HRESULT GetStatus() const noexcept { return m_hStatus; } | ||
| 33 | |||
| 34 | // Getter functions for each feature class | ||
| 35 | // D3D12_OPTIONS | ||
| 36 | BOOL DoublePrecisionFloatShaderOps() const noexcept; | ||
| 37 | BOOL OutputMergerLogicOp() const noexcept; | ||
| 38 | D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport() const noexcept; | ||
| 39 | D3D12_TILED_RESOURCES_TIER TiledResourcesTier() const noexcept; | ||
| 40 | D3D12_RESOURCE_BINDING_TIER ResourceBindingTier() const noexcept; | ||
| 41 | BOOL PSSpecifiedStencilRefSupported() const noexcept; | ||
| 42 | BOOL TypedUAVLoadAdditionalFormats() const noexcept; | ||
| 43 | BOOL ROVsSupported() const noexcept; | ||
| 44 | D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier() const noexcept; | ||
| 45 | BOOL StandardSwizzle64KBSupported() const noexcept; | ||
| 46 | BOOL CrossAdapterRowMajorTextureSupported() const noexcept; | ||
| 47 | BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation() const noexcept; | ||
| 48 | D3D12_RESOURCE_HEAP_TIER ResourceHeapTier() const noexcept; | ||
| 49 | D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier() const noexcept; | ||
| 50 | UINT MaxGPUVirtualAddressBitsPerResource() const noexcept; | ||
| 51 | |||
| 52 | // FEATURE_LEVELS | ||
| 53 | D3D_FEATURE_LEVEL MaxSupportedFeatureLevel() const noexcept; | ||
| 54 | |||
| 55 | // FORMAT_SUPPORT | ||
| 56 | HRESULT FormatSupport(DXGI_FORMAT Format, D3D12_FORMAT_SUPPORT1& Support1, D3D12_FORMAT_SUPPORT2& Support2) const; | ||
| 57 | |||
| 58 | // MUTLTISAMPLE_QUALITY_LEVELS | ||
| 59 | HRESULT MultisampleQualityLevels(DXGI_FORMAT Format, UINT SampleCount, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags, UINT& NumQualityLevels) const; | ||
| 60 | |||
| 61 | // FORMAT_INFO | ||
| 62 | HRESULT FormatInfo(DXGI_FORMAT Format, UINT8& PlaneCount) const; | ||
| 63 | |||
| 64 | // GPU_VIRTUAL_ADDRESS_SUPPORT | ||
| 65 | UINT MaxGPUVirtualAddressBitsPerProcess() const noexcept; | ||
| 66 | |||
| 67 | // SHADER_MODEL | ||
| 68 | D3D_SHADER_MODEL HighestShaderModel() const noexcept; | ||
| 69 | |||
| 70 | // D3D12_OPTIONS1 | ||
| 71 | BOOL WaveOps() const noexcept; | ||
| 72 | UINT WaveLaneCountMin() const noexcept; | ||
| 73 | UINT WaveLaneCountMax() const noexcept; | ||
| 74 | UINT TotalLaneCount() const noexcept; | ||
| 75 | BOOL ExpandedComputeResourceStates() const noexcept; | ||
| 76 | BOOL Int64ShaderOps() const noexcept; | ||
| 77 | |||
| 78 | // PROTECTED_RESOURCE_SESSION_SUPPORT | ||
| 79 | D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS ProtectedResourceSessionSupport(UINT NodeIndex = 0) const; | ||
| 80 | |||
| 81 | // ROOT_SIGNATURE | ||
| 82 | D3D_ROOT_SIGNATURE_VERSION HighestRootSignatureVersion() const noexcept; | ||
| 83 | |||
| 84 | // ARCHITECTURE1 | ||
| 85 | BOOL TileBasedRenderer(UINT NodeIndex = 0) const; | ||
| 86 | BOOL UMA(UINT NodeIndex = 0) const; | ||
| 87 | BOOL CacheCoherentUMA(UINT NodeIndex = 0) const; | ||
| 88 | BOOL IsolatedMMU(UINT NodeIndex = 0) const; | ||
| 89 | |||
| 90 | // D3D12_OPTIONS2 | ||
| 91 | BOOL DepthBoundsTestSupported() const noexcept; | ||
| 92 | D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier() const noexcept; | ||
| 93 | |||
| 94 | // SHADER_CACHE | ||
| 95 | D3D12_SHADER_CACHE_SUPPORT_FLAGS ShaderCacheSupportFlags() const noexcept; | ||
| 96 | |||
| 97 | // COMMAND_QUEUE_PRIORITY | ||
| 98 | BOOL CommandQueuePrioritySupported(D3D12_COMMAND_LIST_TYPE CommandListType, UINT Priority); | ||
| 99 | |||
| 100 | // D3D12_OPTIONS3 | ||
| 101 | BOOL CopyQueueTimestampQueriesSupported() const noexcept; | ||
| 102 | BOOL CastingFullyTypedFormatSupported() const noexcept; | ||
| 103 | D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags() const noexcept; | ||
| 104 | D3D12_VIEW_INSTANCING_TIER ViewInstancingTier() const noexcept; | ||
| 105 | BOOL BarycentricsSupported() const noexcept; | ||
| 106 | |||
| 107 | // EXISTING_HEAPS | ||
| 108 | BOOL ExistingHeapsSupported() const noexcept; | ||
| 109 | |||
| 110 | // D3D12_OPTIONS4 | ||
| 111 | BOOL MSAA64KBAlignedTextureSupported() const noexcept; | ||
| 112 | D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier() const noexcept; | ||
| 113 | BOOL Native16BitShaderOpsSupported() const noexcept; | ||
| 114 | |||
| 115 | // SERIALIZATION | ||
| 116 | D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier(UINT NodeIndex = 0) const; | ||
| 117 | |||
| 118 | // CROSS_NODE | ||
| 119 | // CrossNodeSharingTier handled in D3D12Options | ||
| 120 | BOOL CrossNodeAtomicShaderInstructions() const noexcept; | ||
| 121 | |||
| 122 | // D3D12_OPTIONS5 | ||
| 123 | BOOL SRVOnlyTiledResourceTier3() const noexcept; | ||
| 124 | D3D12_RENDER_PASS_TIER RenderPassesTier() const noexcept; | ||
| 125 | D3D12_RAYTRACING_TIER RaytracingTier() const noexcept; | ||
| 126 | |||
| 127 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 128 | // DISPLAYABLE | ||
| 129 | BOOL DisplayableTexture() const noexcept; | ||
| 130 | // SharedResourceCompatibilityTier handled in D3D12Options4 | ||
| 131 | #endif | ||
| 132 | |||
| 133 | // D3D12_OPTIONS6 | ||
| 134 | BOOL AdditionalShadingRatesSupported() const noexcept; | ||
| 135 | BOOL PerPrimitiveShadingRateSupportedWithViewportIndexing() const noexcept; | ||
| 136 | D3D12_VARIABLE_SHADING_RATE_TIER VariableShadingRateTier() const noexcept; | ||
| 137 | UINT ShadingRateImageTileSize() const noexcept; | ||
| 138 | BOOL BackgroundProcessingSupported() const noexcept; | ||
| 139 | |||
| 140 | // QUERY_META_COMMAND | ||
| 141 | HRESULT QueryMetaCommand(D3D12_FEATURE_DATA_QUERY_META_COMMAND& dQueryMetaCommand) const; | ||
| 142 | |||
| 143 | // D3D12_OPTIONS7 | ||
| 144 | D3D12_MESH_SHADER_TIER MeshShaderTier() const noexcept; | ||
| 145 | D3D12_SAMPLER_FEEDBACK_TIER SamplerFeedbackTier() const noexcept; | ||
| 146 | |||
| 147 | // PROTECTED_RESOURCE_SESSION_TYPE_COUNT | ||
| 148 | UINT ProtectedResourceSessionTypeCount(UINT NodeIndex = 0) const; | ||
| 149 | |||
| 150 | // PROTECTED_RESOURCE_SESSION_TYPES | ||
| 151 | std::vector<GUID> ProtectedResourceSessionTypes(UINT NodeIndex = 0) const; | ||
| 152 | |||
| 153 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) | ||
| 154 | // D3D12_OPTIONS8 | ||
| 155 | BOOL UnalignedBlockTexturesSupported() const noexcept; | ||
| 156 | |||
| 157 | // D3D12_OPTIONS9 | ||
| 158 | BOOL MeshShaderPipelineStatsSupported() const noexcept; | ||
| 159 | BOOL MeshShaderSupportsFullRangeRenderTargetArrayIndex() const noexcept; | ||
| 160 | BOOL AtomicInt64OnTypedResourceSupported() const noexcept; | ||
| 161 | BOOL AtomicInt64OnGroupSharedSupported() const noexcept; | ||
| 162 | BOOL DerivativesInMeshAndAmplificationShadersSupported() const noexcept; | ||
| 163 | D3D12_WAVE_MMA_TIER WaveMMATier() const noexcept; | ||
| 164 | #endif | ||
| 165 | |||
| 166 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 167 | // D3D12_OPTIONS10 | ||
| 168 | BOOL VariableRateShadingSumCombinerSupported() const noexcept; | ||
| 169 | BOOL MeshShaderPerPrimitiveShadingRateSupported() const noexcept; | ||
| 170 | |||
| 171 | // D3D12_OPTIONS11 | ||
| 172 | BOOL AtomicInt64OnDescriptorHeapResourceSupported() const noexcept; | ||
| 173 | #endif | ||
| 174 | |||
| 175 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) | ||
| 176 | // D3D12_OPTIONS12 | ||
| 177 | D3D12_TRI_STATE MSPrimitivesPipelineStatisticIncludesCulledPrimitives() const noexcept; | ||
| 178 | BOOL EnhancedBarriersSupported() const noexcept; | ||
| 179 | BOOL RelaxedFormatCastingSupported() const noexcept; | ||
| 180 | #endif | ||
| 181 | |||
| 182 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) | ||
| 183 | // D3D12_OPTIONS13 | ||
| 184 | BOOL UnrestrictedBufferTextureCopyPitchSupported() const noexcept; | ||
| 185 | BOOL UnrestrictedVertexElementAlignmentSupported() const noexcept; | ||
| 186 | BOOL InvertedViewportHeightFlipsYSupported() const noexcept; | ||
| 187 | BOOL InvertedViewportDepthFlipsZSupported() const noexcept; | ||
| 188 | BOOL TextureCopyBetweenDimensionsSupported() const noexcept; | ||
| 189 | BOOL AlphaBlendFactorSupported() const noexcept; | ||
| 190 | #endif | ||
| 191 | |||
| 192 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 193 | // D3D12_OPTIONS14 | ||
| 194 | BOOL AdvancedTextureOpsSupported() const noexcept; | ||
| 195 | BOOL WriteableMSAATexturesSupported() const noexcept; | ||
| 196 | BOOL IndependentFrontAndBackStencilRefMaskSupported() const noexcept; | ||
| 197 | |||
| 198 | // D3D12_OPTIONS15 | ||
| 199 | BOOL TriangleFanSupported() const noexcept; | ||
| 200 | BOOL DynamicIndexBufferStripCutSupported() const noexcept; | ||
| 201 | #endif | ||
| 202 | |||
| 203 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 204 | // D3D12_OPTIONS16 | ||
| 205 | BOOL DynamicDepthBiasSupported() const noexcept; | ||
| 206 | #endif | ||
| 207 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 208 | BOOL GPUUploadHeapSupported() const noexcept; | ||
| 209 | |||
| 210 | // D3D12_OPTIONS17 | ||
| 211 | BOOL NonNormalizedCoordinateSamplersSupported() const noexcept; | ||
| 212 | BOOL ManualWriteTrackingResourceSupported() const noexcept; | ||
| 213 | |||
| 214 | // D3D12_OPTIONS18 | ||
| 215 | BOOL RenderPassesValid() const noexcept; | ||
| 216 | #endif | ||
| 217 | |||
| 218 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 219 | BOOL MismatchingOutputDimensionsSupported() const noexcept; | ||
| 220 | UINT SupportedSampleCountsWithNoOutputs() const noexcept; | ||
| 221 | BOOL PointSamplingAddressesNeverRoundUp() const noexcept; | ||
| 222 | BOOL RasterizerDesc2Supported() const noexcept; | ||
| 223 | BOOL NarrowQuadrilateralLinesSupported() const noexcept; | ||
| 224 | BOOL AnisoFilterWithPointMipSupported() const noexcept; | ||
| 225 | UINT MaxSamplerDescriptorHeapSize() const noexcept; | ||
| 226 | UINT MaxSamplerDescriptorHeapSizeWithStaticSamplers() const noexcept; | ||
| 227 | UINT MaxViewDescriptorHeapSize() const noexcept; | ||
| 228 | #endif | ||
| 229 | |||
| 230 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) | ||
| 231 | BOOL ComputeOnlyWriteWatchSupported() const noexcept; | ||
| 232 | #endif | ||
| 233 | |||
| 234 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 235 | D3D12_EXECUTE_INDIRECT_TIER ExecuteIndirectTier() const noexcept; | ||
| 236 | D3D12_WORK_GRAPHS_TIER WorkGraphsTier() const noexcept; | ||
| 237 | #endif | ||
| 238 | |||
| 239 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 617) | ||
| 240 | D3D12_TIGHT_ALIGNMENT_TIER TightAlignmentSupportTier() const noexcept; | ||
| 241 | #endif | ||
| 242 | |||
| 243 | private: // Private structs and helpers declaration | ||
| 244 | struct ProtectedResourceSessionTypesLocal : D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES | ||
| 245 | { | ||
| 246 | std::vector<GUID> TypeVec; | ||
| 247 | }; | ||
| 248 | |||
| 249 | // Helper function to decide the highest shader model supported by the system | ||
| 250 | // Stores the result in m_dShaderModel | ||
| 251 | // Must be updated whenever a new shader model is added to the d3d12.h header | ||
| 252 | HRESULT QueryHighestShaderModel(); | ||
| 253 | |||
| 254 | // Helper function to decide the highest root signature supported | ||
| 255 | // Must be updated whenever a new root signature version is added to the d3d12.h header | ||
| 256 | HRESULT QueryHighestRootSignatureVersion(); | ||
| 257 | |||
| 258 | // Helper funcion to decide the highest feature level | ||
| 259 | HRESULT QueryHighestFeatureLevel(); | ||
| 260 | |||
| 261 | // Helper function to initialize local protected resource session types structs | ||
| 262 | HRESULT QueryProtectedResourceSessionTypes(UINT NodeIndex, UINT Count); | ||
| 263 | |||
| 264 | private: // Member data | ||
| 265 | // Pointer to the underlying device | ||
| 266 | ID3D12Device* m_pDevice; | ||
| 267 | |||
| 268 | // Stores the error code from initialization | ||
| 269 | HRESULT m_hStatus; | ||
| 270 | |||
| 271 | // Feature support data structs | ||
| 272 | D3D12_FEATURE_DATA_D3D12_OPTIONS m_dOptions; | ||
| 273 | D3D_FEATURE_LEVEL m_eMaxFeatureLevel; | ||
| 274 | D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT m_dGPUVASupport; | ||
| 275 | D3D12_FEATURE_DATA_SHADER_MODEL m_dShaderModel; | ||
| 276 | D3D12_FEATURE_DATA_D3D12_OPTIONS1 m_dOptions1; | ||
| 277 | std::vector<D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT> m_dProtectedResourceSessionSupport; | ||
| 278 | D3D12_FEATURE_DATA_ROOT_SIGNATURE m_dRootSignature; | ||
| 279 | std::vector<D3D12_FEATURE_DATA_ARCHITECTURE1> m_dArchitecture1; | ||
| 280 | D3D12_FEATURE_DATA_D3D12_OPTIONS2 m_dOptions2; | ||
| 281 | D3D12_FEATURE_DATA_SHADER_CACHE m_dShaderCache; | ||
| 282 | D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY m_dCommandQueuePriority; | ||
| 283 | D3D12_FEATURE_DATA_D3D12_OPTIONS3 m_dOptions3; | ||
| 284 | D3D12_FEATURE_DATA_EXISTING_HEAPS m_dExistingHeaps; | ||
| 285 | D3D12_FEATURE_DATA_D3D12_OPTIONS4 m_dOptions4; | ||
| 286 | std::vector<D3D12_FEATURE_DATA_SERIALIZATION> m_dSerialization; // Cat2 NodeIndex | ||
| 287 | D3D12_FEATURE_DATA_CROSS_NODE m_dCrossNode; | ||
| 288 | D3D12_FEATURE_DATA_D3D12_OPTIONS5 m_dOptions5; | ||
| 289 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 290 | D3D12_FEATURE_DATA_DISPLAYABLE m_dDisplayable; | ||
| 291 | #endif | ||
| 292 | D3D12_FEATURE_DATA_D3D12_OPTIONS6 m_dOptions6; | ||
| 293 | D3D12_FEATURE_DATA_D3D12_OPTIONS7 m_dOptions7; | ||
| 294 | std::vector<D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT> m_dProtectedResourceSessionTypeCount; // Cat2 NodeIndex | ||
| 295 | std::vector<ProtectedResourceSessionTypesLocal> m_dProtectedResourceSessionTypes; // Cat3 | ||
| 296 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) | ||
| 297 | D3D12_FEATURE_DATA_D3D12_OPTIONS8 m_dOptions8; | ||
| 298 | D3D12_FEATURE_DATA_D3D12_OPTIONS9 m_dOptions9; | ||
| 299 | #endif | ||
| 300 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 301 | D3D12_FEATURE_DATA_D3D12_OPTIONS10 m_dOptions10; | ||
| 302 | D3D12_FEATURE_DATA_D3D12_OPTIONS11 m_dOptions11; | ||
| 303 | #endif | ||
| 304 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) | ||
| 305 | D3D12_FEATURE_DATA_D3D12_OPTIONS12 m_dOptions12; | ||
| 306 | #endif | ||
| 307 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) | ||
| 308 | D3D12_FEATURE_DATA_D3D12_OPTIONS13 m_dOptions13; | ||
| 309 | #endif | ||
| 310 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 311 | D3D12_FEATURE_DATA_D3D12_OPTIONS14 m_dOptions14; | ||
| 312 | D3D12_FEATURE_DATA_D3D12_OPTIONS15 m_dOptions15; | ||
| 313 | #endif | ||
| 314 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 315 | D3D12_FEATURE_DATA_D3D12_OPTIONS16 m_dOptions16; | ||
| 316 | #endif | ||
| 317 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 318 | D3D12_FEATURE_DATA_D3D12_OPTIONS17 m_dOptions17; | ||
| 319 | #endif | ||
| 320 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 321 | D3D12_FEATURE_DATA_D3D12_OPTIONS18 m_dOptions18; | ||
| 322 | #endif | ||
| 323 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 324 | D3D12_FEATURE_DATA_D3D12_OPTIONS19 m_dOptions19; | ||
| 325 | #endif | ||
| 326 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) | ||
| 327 | D3D12_FEATURE_DATA_D3D12_OPTIONS20 m_dOptions20; | ||
| 328 | #endif | ||
| 329 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 330 | D3D12_FEATURE_DATA_D3D12_OPTIONS21 m_dOptions21; | ||
| 331 | #endif | ||
| 332 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 617) | ||
| 333 | D3D12_FEATURE_DATA_TIGHT_ALIGNMENT m_dTightAlignment; | ||
| 334 | #endif | ||
| 335 | }; | ||
| 336 | |||
| 337 | // Implementations for CD3DX12FeatureSupport functions | ||
| 338 | |||
| 339 | // Macro to set up a getter function for each entry in feature support data | ||
| 340 | // The getter function will have the same name as the feature option name | ||
| 341 | #define FEATURE_SUPPORT_GET(RETTYPE,FEATURE,OPTION) \ | ||
| 342 | inline RETTYPE CD3DX12FeatureSupport::OPTION() const noexcept \ | ||
| 343 | { \ | ||
| 344 | return FEATURE.OPTION; \ | ||
| 345 | } | ||
| 346 | |||
| 347 | // Macro to set up a getter function for each entry in feature support data | ||
| 348 | // Also specifies the name for the function which can be different from the feature name | ||
| 349 | #define FEATURE_SUPPORT_GET_NAME(RETTYPE,FEATURE,OPTION,NAME) \ | ||
| 350 | inline RETTYPE CD3DX12FeatureSupport::NAME() const noexcept \ | ||
| 351 | {\ | ||
| 352 | return FEATURE.OPTION; \ | ||
| 353 | } | ||
| 354 | |||
| 355 | // Macro to set up a getter function for feature data indexed by the graphics node ID | ||
| 356 | // The default parameter is 0, or the first availabe graphics device node | ||
| 357 | #define FEATURE_SUPPORT_GET_NODE_INDEXED(RETTYPE,FEATURE,OPTION) \ | ||
| 358 | inline RETTYPE CD3DX12FeatureSupport::OPTION(UINT NodeIndex) const \ | ||
| 359 | {\ | ||
| 360 | return FEATURE[NodeIndex].OPTION; \ | ||
| 361 | } | ||
| 362 | |||
| 363 | // Macro to set up a getter function for feature data indexed by NodeIndex | ||
| 364 | // Allows a custom name for the getter function | ||
| 365 | #define FEATURE_SUPPORT_GET_NODE_INDEXED_NAME(RETTYPE,FEATURE,OPTION,NAME) \ | ||
| 366 | inline RETTYPE CD3DX12FeatureSupport::NAME(UINT NodeIndex) const \ | ||
| 367 | {\ | ||
| 368 | return FEATURE[NodeIndex].OPTION; \ | ||
| 369 | } | ||
| 370 | |||
| 371 | inline CD3DX12FeatureSupport::CD3DX12FeatureSupport() noexcept | ||
| 372 | : m_pDevice(nullptr) | ||
| 373 | , m_hStatus(E_INVALIDARG) | ||
| 374 | , m_dOptions{} | ||
| 375 | , m_eMaxFeatureLevel{} | ||
| 376 | , m_dGPUVASupport{} | ||
| 377 | , m_dShaderModel{} | ||
| 378 | , m_dOptions1{} | ||
| 379 | , m_dRootSignature{} | ||
| 380 | , m_dOptions2{} | ||
| 381 | , m_dShaderCache{} | ||
| 382 | , m_dCommandQueuePriority{} | ||
| 383 | , m_dOptions3{} | ||
| 384 | , m_dExistingHeaps{} | ||
| 385 | , m_dOptions4{} | ||
| 386 | , m_dCrossNode{} | ||
| 387 | , m_dOptions5{} | ||
| 388 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 389 | , m_dDisplayable{} | ||
| 390 | #endif | ||
| 391 | , m_dOptions6{} | ||
| 392 | , m_dOptions7{} | ||
| 393 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) | ||
| 394 | , m_dOptions8{} | ||
| 395 | , m_dOptions9{} | ||
| 396 | #endif | ||
| 397 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 398 | , m_dOptions10{} | ||
| 399 | , m_dOptions11{} | ||
| 400 | #endif | ||
| 401 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) | ||
| 402 | , m_dOptions12{} | ||
| 403 | #endif | ||
| 404 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) | ||
| 405 | , m_dOptions13{} | ||
| 406 | #endif | ||
| 407 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 408 | , m_dOptions14{} | ||
| 409 | , m_dOptions15{} | ||
| 410 | #endif | ||
| 411 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 412 | , m_dOptions16{} | ||
| 413 | #endif | ||
| 414 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 415 | , m_dOptions17{} | ||
| 416 | #endif | ||
| 417 | #if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 418 | , m_dOptions18{} | ||
| 419 | #endif | ||
| 420 | #if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 421 | , m_dOptions19{} | ||
| 422 | #endif | ||
| 423 | #if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) | ||
| 424 | , m_dOptions20{} | ||
| 425 | #endif | ||
| 426 | #if defined (D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 427 | , m_dOptions21{} | ||
| 428 | #endif | ||
| 429 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 617) | ||
| 430 | , m_dTightAlignment{} | ||
| 431 | #endif | ||
| 432 | {} | ||
| 433 | |||
| 434 | inline HRESULT CD3DX12FeatureSupport::Init(ID3D12Device* pDevice) | ||
| 435 | { | ||
| 436 | if (!pDevice) | ||
| 437 | { | ||
| 438 | m_hStatus = E_INVALIDARG; | ||
| 439 | return m_hStatus; | ||
| 440 | } | ||
| 441 | |||
| 442 | m_pDevice = pDevice; | ||
| 443 | |||
| 444 | // Initialize static feature support data structures | ||
| 445 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS, &m_dOptions, sizeof(m_dOptions)))) | ||
| 446 | { | ||
| 447 | m_dOptions = {}; | ||
| 448 | } | ||
| 449 | |||
| 450 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT, &m_dGPUVASupport, sizeof(m_dGPUVASupport)))) | ||
| 451 | { | ||
| 452 | m_dGPUVASupport = {}; | ||
| 453 | } | ||
| 454 | |||
| 455 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS1, &m_dOptions1, sizeof(m_dOptions1)))) | ||
| 456 | { | ||
| 457 | m_dOptions1 = {}; | ||
| 458 | } | ||
| 459 | |||
| 460 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS2, &m_dOptions2, sizeof(m_dOptions2)))) | ||
| 461 | { | ||
| 462 | m_dOptions2 = {}; | ||
| 463 | } | ||
| 464 | |||
| 465 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_SHADER_CACHE, &m_dShaderCache, sizeof(m_dShaderCache)))) | ||
| 466 | { | ||
| 467 | m_dShaderCache = {}; | ||
| 468 | } | ||
| 469 | |||
| 470 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS3, &m_dOptions3, sizeof(m_dOptions3)))) | ||
| 471 | { | ||
| 472 | m_dOptions3 = {}; | ||
| 473 | } | ||
| 474 | |||
| 475 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_EXISTING_HEAPS, &m_dExistingHeaps, sizeof(m_dExistingHeaps)))) | ||
| 476 | { | ||
| 477 | m_dExistingHeaps = {}; | ||
| 478 | } | ||
| 479 | |||
| 480 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS4, &m_dOptions4, sizeof(m_dOptions4)))) | ||
| 481 | { | ||
| 482 | m_dOptions4 = {}; | ||
| 483 | } | ||
| 484 | |||
| 485 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_CROSS_NODE, &m_dCrossNode, sizeof(m_dCrossNode)))) | ||
| 486 | { | ||
| 487 | m_dCrossNode = {}; | ||
| 488 | } | ||
| 489 | |||
| 490 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS5, &m_dOptions5, sizeof(m_dOptions5)))) | ||
| 491 | { | ||
| 492 | m_dOptions5 = {}; | ||
| 493 | } | ||
| 494 | |||
| 495 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 496 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_DISPLAYABLE, &m_dDisplayable, sizeof(m_dDisplayable)))) | ||
| 497 | { | ||
| 498 | m_dDisplayable = {}; | ||
| 499 | } | ||
| 500 | #endif | ||
| 501 | |||
| 502 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS6, &m_dOptions6, sizeof(m_dOptions6)))) | ||
| 503 | { | ||
| 504 | m_dOptions6 = {}; | ||
| 505 | } | ||
| 506 | |||
| 507 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS7, &m_dOptions7, sizeof(m_dOptions7)))) | ||
| 508 | { | ||
| 509 | m_dOptions7 = {}; | ||
| 510 | } | ||
| 511 | |||
| 512 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) | ||
| 513 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS8, &m_dOptions8, sizeof(m_dOptions8)))) | ||
| 514 | { | ||
| 515 | m_dOptions8 = {}; | ||
| 516 | } | ||
| 517 | |||
| 518 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS9, &m_dOptions9, sizeof(m_dOptions9)))) | ||
| 519 | { | ||
| 520 | m_dOptions9 = {}; | ||
| 521 | } | ||
| 522 | #endif | ||
| 523 | |||
| 524 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 525 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS10, &m_dOptions10, sizeof(m_dOptions10)))) | ||
| 526 | { | ||
| 527 | m_dOptions10 = {}; | ||
| 528 | } | ||
| 529 | |||
| 530 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS11, &m_dOptions11, sizeof(m_dOptions11)))) | ||
| 531 | { | ||
| 532 | m_dOptions11 = {}; | ||
| 533 | } | ||
| 534 | #endif | ||
| 535 | |||
| 536 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) | ||
| 537 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS12, &m_dOptions12, sizeof(m_dOptions12)))) | ||
| 538 | { | ||
| 539 | m_dOptions12 = {}; | ||
| 540 | m_dOptions12.MSPrimitivesPipelineStatisticIncludesCulledPrimitives = D3D12_TRI_STATE::D3D12_TRI_STATE_UNKNOWN; | ||
| 541 | } | ||
| 542 | #endif | ||
| 543 | |||
| 544 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) | ||
| 545 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS13, &m_dOptions13, sizeof(m_dOptions13)))) | ||
| 546 | { | ||
| 547 | m_dOptions13 = {}; | ||
| 548 | } | ||
| 549 | #endif | ||
| 550 | |||
| 551 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 552 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS14, &m_dOptions14, sizeof(m_dOptions14)))) | ||
| 553 | { | ||
| 554 | m_dOptions14 = {}; | ||
| 555 | } | ||
| 556 | |||
| 557 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS15, &m_dOptions15, sizeof(m_dOptions15)))) | ||
| 558 | { | ||
| 559 | m_dOptions15 = {}; | ||
| 560 | } | ||
| 561 | #endif | ||
| 562 | |||
| 563 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 564 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS16, &m_dOptions16, sizeof(m_dOptions16)))) | ||
| 565 | { | ||
| 566 | m_dOptions16 = {}; | ||
| 567 | } | ||
| 568 | #endif | ||
| 569 | |||
| 570 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 571 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS17, &m_dOptions17, sizeof(m_dOptions17)))) | ||
| 572 | { | ||
| 573 | m_dOptions17 = {}; | ||
| 574 | } | ||
| 575 | |||
| 576 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS18, &m_dOptions18, sizeof(m_dOptions18)))) | ||
| 577 | { | ||
| 578 | m_dOptions18.RenderPassesValid = false; | ||
| 579 | } | ||
| 580 | #endif | ||
| 581 | |||
| 582 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 583 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS19, &m_dOptions19, sizeof(m_dOptions19)))) | ||
| 584 | { | ||
| 585 | m_dOptions19 = {}; | ||
| 586 | m_dOptions19.SupportedSampleCountsWithNoOutputs = 1; | ||
| 587 | m_dOptions19.MaxSamplerDescriptorHeapSize = D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE; | ||
| 588 | m_dOptions19.MaxSamplerDescriptorHeapSizeWithStaticSamplers = D3D12_MAX_SHADER_VISIBLE_SAMPLER_HEAP_SIZE; | ||
| 589 | m_dOptions19.MaxViewDescriptorHeapSize = D3D12_MAX_SHADER_VISIBLE_DESCRIPTOR_HEAP_SIZE_TIER_1; | ||
| 590 | } | ||
| 591 | #endif | ||
| 592 | |||
| 593 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) | ||
| 594 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS20, &m_dOptions20, sizeof(m_dOptions20)))) | ||
| 595 | { | ||
| 596 | m_dOptions20 = {}; | ||
| 597 | } | ||
| 598 | #endif | ||
| 599 | |||
| 600 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 601 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS21, &m_dOptions21, sizeof(m_dOptions21)))) | ||
| 602 | { | ||
| 603 | m_dOptions21 = {}; | ||
| 604 | } | ||
| 605 | #endif | ||
| 606 | |||
| 607 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 617) | ||
| 608 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_D3D12_TIGHT_ALIGNMENT, &m_dTightAlignment, sizeof(m_dTightAlignment)))) | ||
| 609 | { | ||
| 610 | m_dTightAlignment = {}; | ||
| 611 | } | ||
| 612 | #endif | ||
| 613 | |||
| 614 | // Initialize per-node feature support data structures | ||
| 615 | const UINT uNodeCount = m_pDevice->GetNodeCount(); | ||
| 616 | m_dProtectedResourceSessionSupport.resize(uNodeCount); | ||
| 617 | m_dArchitecture1.resize(uNodeCount); | ||
| 618 | m_dSerialization.resize(uNodeCount); | ||
| 619 | m_dProtectedResourceSessionTypeCount.resize(uNodeCount); | ||
| 620 | m_dProtectedResourceSessionTypes.resize(uNodeCount); | ||
| 621 | for (UINT NodeIndex = 0; NodeIndex < uNodeCount; NodeIndex++) | ||
| 622 | { | ||
| 623 | m_dProtectedResourceSessionSupport[NodeIndex].NodeIndex = NodeIndex; | ||
| 624 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT, &m_dProtectedResourceSessionSupport[NodeIndex], sizeof(m_dProtectedResourceSessionSupport[NodeIndex])))) | ||
| 625 | { | ||
| 626 | m_dProtectedResourceSessionSupport[NodeIndex].Support = D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAG_NONE; | ||
| 627 | } | ||
| 628 | |||
| 629 | m_dArchitecture1[NodeIndex].NodeIndex = NodeIndex; | ||
| 630 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_ARCHITECTURE1, &m_dArchitecture1[NodeIndex], sizeof(m_dArchitecture1[NodeIndex])))) | ||
| 631 | { | ||
| 632 | D3D12_FEATURE_DATA_ARCHITECTURE dArchLocal = {}; | ||
| 633 | dArchLocal.NodeIndex = NodeIndex; | ||
| 634 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_ARCHITECTURE, &dArchLocal, sizeof(dArchLocal)))) | ||
| 635 | { | ||
| 636 | dArchLocal.TileBasedRenderer = false; | ||
| 637 | dArchLocal.UMA = false; | ||
| 638 | dArchLocal.CacheCoherentUMA = false; | ||
| 639 | } | ||
| 640 | |||
| 641 | m_dArchitecture1[NodeIndex].TileBasedRenderer = dArchLocal.TileBasedRenderer; | ||
| 642 | m_dArchitecture1[NodeIndex].UMA = dArchLocal.UMA; | ||
| 643 | m_dArchitecture1[NodeIndex].CacheCoherentUMA = dArchLocal.CacheCoherentUMA; | ||
| 644 | m_dArchitecture1[NodeIndex].IsolatedMMU = false; | ||
| 645 | } | ||
| 646 | |||
| 647 | m_dSerialization[NodeIndex].NodeIndex = NodeIndex; | ||
| 648 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_SERIALIZATION, &m_dSerialization[NodeIndex], sizeof(m_dSerialization[NodeIndex])))) | ||
| 649 | { | ||
| 650 | m_dSerialization[NodeIndex].HeapSerializationTier = D3D12_HEAP_SERIALIZATION_TIER_0; | ||
| 651 | } | ||
| 652 | |||
| 653 | m_dProtectedResourceSessionTypeCount[NodeIndex].NodeIndex = NodeIndex; | ||
| 654 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT, &m_dProtectedResourceSessionTypeCount[NodeIndex], sizeof(m_dProtectedResourceSessionTypeCount[NodeIndex])))) | ||
| 655 | { | ||
| 656 | m_dProtectedResourceSessionTypeCount[NodeIndex].Count = 0; | ||
| 657 | } | ||
| 658 | |||
| 659 | // Special procedure to initialize local protected resource session types structs | ||
| 660 | // Must wait until session type count initialized | ||
| 661 | QueryProtectedResourceSessionTypes(NodeIndex, m_dProtectedResourceSessionTypeCount[NodeIndex].Count); | ||
| 662 | } | ||
| 663 | |||
| 664 | // Initialize features that requires highest version check | ||
| 665 | if (FAILED(m_hStatus = QueryHighestShaderModel())) | ||
| 666 | { | ||
| 667 | return m_hStatus; | ||
| 668 | } | ||
| 669 | |||
| 670 | if (FAILED(m_hStatus = QueryHighestRootSignatureVersion())) | ||
| 671 | { | ||
| 672 | return m_hStatus; | ||
| 673 | } | ||
| 674 | |||
| 675 | // Initialize Feature Levels data | ||
| 676 | if (FAILED(m_hStatus = QueryHighestFeatureLevel())) | ||
| 677 | { | ||
| 678 | return m_hStatus; | ||
| 679 | } | ||
| 680 | |||
| 681 | return m_hStatus; | ||
| 682 | } | ||
| 683 | |||
| 684 | // 0: D3D12_OPTIONS | ||
| 685 | FEATURE_SUPPORT_GET(BOOL, m_dOptions, DoublePrecisionFloatShaderOps); | ||
| 686 | FEATURE_SUPPORT_GET(BOOL, m_dOptions, OutputMergerLogicOp); | ||
| 687 | FEATURE_SUPPORT_GET(D3D12_SHADER_MIN_PRECISION_SUPPORT, m_dOptions, MinPrecisionSupport); | ||
| 688 | FEATURE_SUPPORT_GET(D3D12_TILED_RESOURCES_TIER, m_dOptions, TiledResourcesTier); | ||
| 689 | FEATURE_SUPPORT_GET(D3D12_RESOURCE_BINDING_TIER, m_dOptions, ResourceBindingTier); | ||
| 690 | FEATURE_SUPPORT_GET(BOOL, m_dOptions, PSSpecifiedStencilRefSupported); | ||
| 691 | FEATURE_SUPPORT_GET(BOOL, m_dOptions, TypedUAVLoadAdditionalFormats); | ||
| 692 | FEATURE_SUPPORT_GET(BOOL, m_dOptions, ROVsSupported); | ||
| 693 | FEATURE_SUPPORT_GET(D3D12_CONSERVATIVE_RASTERIZATION_TIER, m_dOptions, ConservativeRasterizationTier); | ||
| 694 | FEATURE_SUPPORT_GET(BOOL, m_dOptions, StandardSwizzle64KBSupported); | ||
| 695 | FEATURE_SUPPORT_GET(BOOL, m_dOptions, CrossAdapterRowMajorTextureSupported); | ||
| 696 | FEATURE_SUPPORT_GET(BOOL, m_dOptions, VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation); | ||
| 697 | FEATURE_SUPPORT_GET(D3D12_RESOURCE_HEAP_TIER, m_dOptions, ResourceHeapTier); | ||
| 698 | |||
| 699 | // Special procedure for handling caps that is also part of other features | ||
| 700 | inline D3D12_CROSS_NODE_SHARING_TIER CD3DX12FeatureSupport::CrossNodeSharingTier() const noexcept | ||
| 701 | { | ||
| 702 | if (m_dCrossNode.SharingTier > D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED) | ||
| 703 | { | ||
| 704 | return m_dCrossNode.SharingTier; | ||
| 705 | } | ||
| 706 | else | ||
| 707 | { | ||
| 708 | return m_dOptions.CrossNodeSharingTier; | ||
| 709 | } | ||
| 710 | } | ||
| 711 | |||
| 712 | inline UINT CD3DX12FeatureSupport::MaxGPUVirtualAddressBitsPerResource() const noexcept | ||
| 713 | { | ||
| 714 | if (m_dOptions.MaxGPUVirtualAddressBitsPerResource > 0) | ||
| 715 | { | ||
| 716 | return m_dOptions.MaxGPUVirtualAddressBitsPerResource; | ||
| 717 | } | ||
| 718 | else | ||
| 719 | { | ||
| 720 | return m_dGPUVASupport.MaxGPUVirtualAddressBitsPerResource; | ||
| 721 | } | ||
| 722 | } | ||
| 723 | |||
| 724 | // 1: Architecture | ||
| 725 | // Combined with Architecture1 | ||
| 726 | |||
| 727 | // 2: Feature Levels | ||
| 728 | // Simply returns the highest supported feature level | ||
| 729 | inline D3D_FEATURE_LEVEL CD3DX12FeatureSupport::MaxSupportedFeatureLevel() const noexcept | ||
| 730 | { | ||
| 731 | return m_eMaxFeatureLevel; | ||
| 732 | } | ||
| 733 | |||
| 734 | // 3: Feature Format Support | ||
| 735 | inline HRESULT CD3DX12FeatureSupport::FormatSupport(DXGI_FORMAT Format, D3D12_FORMAT_SUPPORT1& Support1, D3D12_FORMAT_SUPPORT2& Support2) const | ||
| 736 | { | ||
| 737 | D3D12_FEATURE_DATA_FORMAT_SUPPORT dFormatSupport; | ||
| 738 | dFormatSupport.Format = Format; | ||
| 739 | |||
| 740 | // It is possible that the function call returns an error | ||
| 741 | HRESULT result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_SUPPORT, &dFormatSupport, sizeof(D3D12_FEATURE_DATA_FORMAT_SUPPORT)); | ||
| 742 | |||
| 743 | Support1 = dFormatSupport.Support1; | ||
| 744 | Support2 = dFormatSupport.Support2; // Two outputs. Probably better just to take in the struct as an argument? | ||
| 745 | |||
| 746 | return result; | ||
| 747 | } | ||
| 748 | |||
| 749 | // 4: Multisample Quality Levels | ||
| 750 | inline HRESULT CD3DX12FeatureSupport::MultisampleQualityLevels(DXGI_FORMAT Format, UINT SampleCount, D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags, UINT& NumQualityLevels) const | ||
| 751 | { | ||
| 752 | D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS dMultisampleQualityLevels; | ||
| 753 | dMultisampleQualityLevels.Format = Format; | ||
| 754 | dMultisampleQualityLevels.SampleCount = SampleCount; | ||
| 755 | dMultisampleQualityLevels.Flags = Flags; | ||
| 756 | |||
| 757 | HRESULT result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS, &dMultisampleQualityLevels, sizeof(D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS)); | ||
| 758 | |||
| 759 | if (SUCCEEDED(result)) | ||
| 760 | { | ||
| 761 | NumQualityLevels = dMultisampleQualityLevels.NumQualityLevels; | ||
| 762 | } | ||
| 763 | else | ||
| 764 | { | ||
| 765 | NumQualityLevels = 0; | ||
| 766 | } | ||
| 767 | |||
| 768 | return result; | ||
| 769 | } | ||
| 770 | |||
| 771 | // 5: Format Info | ||
| 772 | inline HRESULT CD3DX12FeatureSupport::FormatInfo(DXGI_FORMAT Format, UINT8& PlaneCount) const | ||
| 773 | { | ||
| 774 | D3D12_FEATURE_DATA_FORMAT_INFO dFormatInfo; | ||
| 775 | dFormatInfo.Format = Format; | ||
| 776 | |||
| 777 | HRESULT result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &dFormatInfo, sizeof(D3D12_FEATURE_DATA_FORMAT_INFO)); | ||
| 778 | if (FAILED(result)) | ||
| 779 | { | ||
| 780 | PlaneCount = 0; | ||
| 781 | } | ||
| 782 | else | ||
| 783 | { | ||
| 784 | PlaneCount = dFormatInfo.PlaneCount; | ||
| 785 | } | ||
| 786 | return result; | ||
| 787 | } | ||
| 788 | |||
| 789 | // 6: GPU Virtual Address Support | ||
| 790 | // MaxGPUVirtualAddressBitsPerResource handled in D3D12Options | ||
| 791 | FEATURE_SUPPORT_GET(UINT, m_dGPUVASupport, MaxGPUVirtualAddressBitsPerProcess); | ||
| 792 | |||
| 793 | // 7: Shader Model | ||
| 794 | inline D3D_SHADER_MODEL CD3DX12FeatureSupport::HighestShaderModel() const noexcept | ||
| 795 | { | ||
| 796 | return m_dShaderModel.HighestShaderModel; | ||
| 797 | } | ||
| 798 | |||
| 799 | // 8: D3D12 Options1 | ||
| 800 | FEATURE_SUPPORT_GET(BOOL, m_dOptions1, WaveOps); | ||
| 801 | FEATURE_SUPPORT_GET(UINT, m_dOptions1, WaveLaneCountMin); | ||
| 802 | FEATURE_SUPPORT_GET(UINT, m_dOptions1, WaveLaneCountMax); | ||
| 803 | FEATURE_SUPPORT_GET(UINT, m_dOptions1, TotalLaneCount); | ||
| 804 | FEATURE_SUPPORT_GET(BOOL, m_dOptions1, ExpandedComputeResourceStates); | ||
| 805 | FEATURE_SUPPORT_GET(BOOL, m_dOptions1, Int64ShaderOps); | ||
| 806 | |||
| 807 | // 10: Protected Resource Session Support | ||
| 808 | inline D3D12_PROTECTED_RESOURCE_SESSION_SUPPORT_FLAGS CD3DX12FeatureSupport::ProtectedResourceSessionSupport(UINT NodeIndex) const | ||
| 809 | { | ||
| 810 | return m_dProtectedResourceSessionSupport[NodeIndex].Support; | ||
| 811 | } | ||
| 812 | |||
| 813 | // 12: Root Signature | ||
| 814 | inline D3D_ROOT_SIGNATURE_VERSION CD3DX12FeatureSupport::HighestRootSignatureVersion() const noexcept | ||
| 815 | { | ||
| 816 | return m_dRootSignature.HighestVersion; | ||
| 817 | } | ||
| 818 | |||
| 819 | // 16: Architecture1 | ||
| 820 | // Same data fields can be queried from m_dArchitecture | ||
| 821 | FEATURE_SUPPORT_GET_NODE_INDEXED(BOOL, m_dArchitecture1, TileBasedRenderer); | ||
| 822 | FEATURE_SUPPORT_GET_NODE_INDEXED(BOOL, m_dArchitecture1, UMA); | ||
| 823 | FEATURE_SUPPORT_GET_NODE_INDEXED(BOOL, m_dArchitecture1, CacheCoherentUMA); | ||
| 824 | FEATURE_SUPPORT_GET_NODE_INDEXED(BOOL, m_dArchitecture1, IsolatedMMU); | ||
| 825 | |||
| 826 | // 18: D3D12 Options2 | ||
| 827 | FEATURE_SUPPORT_GET(BOOL, m_dOptions2, DepthBoundsTestSupported); | ||
| 828 | FEATURE_SUPPORT_GET(D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER, m_dOptions2, ProgrammableSamplePositionsTier); | ||
| 829 | |||
| 830 | // 19: Shader Cache | ||
| 831 | FEATURE_SUPPORT_GET_NAME(D3D12_SHADER_CACHE_SUPPORT_FLAGS, m_dShaderCache, SupportFlags, ShaderCacheSupportFlags); | ||
| 832 | |||
| 833 | // 20: Command Queue Priority | ||
| 834 | inline BOOL CD3DX12FeatureSupport::CommandQueuePrioritySupported(D3D12_COMMAND_LIST_TYPE CommandListType, UINT Priority) | ||
| 835 | { | ||
| 836 | m_dCommandQueuePriority.CommandListType = CommandListType; | ||
| 837 | m_dCommandQueuePriority.Priority = Priority; | ||
| 838 | |||
| 839 | if (FAILED(m_pDevice->CheckFeatureSupport(D3D12_FEATURE_COMMAND_QUEUE_PRIORITY, &m_dCommandQueuePriority, sizeof(D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY)))) | ||
| 840 | { | ||
| 841 | return false; | ||
| 842 | } | ||
| 843 | |||
| 844 | return m_dCommandQueuePriority.PriorityForTypeIsSupported; | ||
| 845 | } | ||
| 846 | |||
| 847 | // 21: D3D12 Options3 | ||
| 848 | FEATURE_SUPPORT_GET(BOOL, m_dOptions3, CopyQueueTimestampQueriesSupported); | ||
| 849 | FEATURE_SUPPORT_GET(BOOL, m_dOptions3, CastingFullyTypedFormatSupported); | ||
| 850 | FEATURE_SUPPORT_GET(D3D12_COMMAND_LIST_SUPPORT_FLAGS, m_dOptions3, WriteBufferImmediateSupportFlags); | ||
| 851 | FEATURE_SUPPORT_GET(D3D12_VIEW_INSTANCING_TIER, m_dOptions3, ViewInstancingTier); | ||
| 852 | FEATURE_SUPPORT_GET(BOOL, m_dOptions3, BarycentricsSupported); | ||
| 853 | |||
| 854 | // 22: Existing Heaps | ||
| 855 | FEATURE_SUPPORT_GET_NAME(BOOL, m_dExistingHeaps, Supported, ExistingHeapsSupported); | ||
| 856 | |||
| 857 | // 23: D3D12 Options4 | ||
| 858 | FEATURE_SUPPORT_GET(BOOL, m_dOptions4, MSAA64KBAlignedTextureSupported); | ||
| 859 | FEATURE_SUPPORT_GET(D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER, m_dOptions4, SharedResourceCompatibilityTier); | ||
| 860 | FEATURE_SUPPORT_GET(BOOL, m_dOptions4, Native16BitShaderOpsSupported); | ||
| 861 | |||
| 862 | // 24: Serialization | ||
| 863 | FEATURE_SUPPORT_GET_NODE_INDEXED(D3D12_HEAP_SERIALIZATION_TIER, m_dSerialization, HeapSerializationTier); | ||
| 864 | |||
| 865 | // 25: Cross Node | ||
| 866 | // CrossNodeSharingTier handled in D3D12Options | ||
| 867 | FEATURE_SUPPORT_GET_NAME(BOOL, m_dCrossNode, AtomicShaderInstructions, CrossNodeAtomicShaderInstructions); | ||
| 868 | |||
| 869 | // 27: D3D12 Options5 | ||
| 870 | FEATURE_SUPPORT_GET(BOOL, m_dOptions5, SRVOnlyTiledResourceTier3); | ||
| 871 | FEATURE_SUPPORT_GET(D3D12_RENDER_PASS_TIER, m_dOptions5, RenderPassesTier); | ||
| 872 | FEATURE_SUPPORT_GET(D3D12_RAYTRACING_TIER, m_dOptions5, RaytracingTier); | ||
| 873 | |||
| 874 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 875 | // 28: Displayable | ||
| 876 | FEATURE_SUPPORT_GET(BOOL, m_dDisplayable, DisplayableTexture); | ||
| 877 | // SharedResourceCompatibilityTier handled in D3D12Options4 | ||
| 878 | #endif | ||
| 879 | |||
| 880 | // 30: D3D12 Options6 | ||
| 881 | FEATURE_SUPPORT_GET(BOOL, m_dOptions6, AdditionalShadingRatesSupported); | ||
| 882 | FEATURE_SUPPORT_GET(BOOL, m_dOptions6, PerPrimitiveShadingRateSupportedWithViewportIndexing); | ||
| 883 | FEATURE_SUPPORT_GET(D3D12_VARIABLE_SHADING_RATE_TIER, m_dOptions6, VariableShadingRateTier); | ||
| 884 | FEATURE_SUPPORT_GET(UINT, m_dOptions6, ShadingRateImageTileSize); | ||
| 885 | FEATURE_SUPPORT_GET(BOOL, m_dOptions6, BackgroundProcessingSupported); | ||
| 886 | |||
| 887 | // 31: Query Meta Command | ||
| 888 | // Keep the original call routine | ||
| 889 | inline HRESULT CD3DX12FeatureSupport::QueryMetaCommand(D3D12_FEATURE_DATA_QUERY_META_COMMAND& dQueryMetaCommand) const | ||
| 890 | { | ||
| 891 | return m_pDevice->CheckFeatureSupport(D3D12_FEATURE_QUERY_META_COMMAND, &dQueryMetaCommand, sizeof(D3D12_FEATURE_DATA_QUERY_META_COMMAND)); | ||
| 892 | } | ||
| 893 | |||
| 894 | // 32: D3D12 Options7 | ||
| 895 | FEATURE_SUPPORT_GET(D3D12_MESH_SHADER_TIER, m_dOptions7, MeshShaderTier); | ||
| 896 | FEATURE_SUPPORT_GET(D3D12_SAMPLER_FEEDBACK_TIER, m_dOptions7, SamplerFeedbackTier); | ||
| 897 | |||
| 898 | // 33: Protected Resource Session Type Count | ||
| 899 | FEATURE_SUPPORT_GET_NODE_INDEXED_NAME(UINT, m_dProtectedResourceSessionTypeCount, Count, ProtectedResourceSessionTypeCount); | ||
| 900 | |||
| 901 | // 34: Protected Resource Session Types | ||
| 902 | FEATURE_SUPPORT_GET_NODE_INDEXED_NAME(std::vector<GUID>, m_dProtectedResourceSessionTypes, TypeVec, ProtectedResourceSessionTypes); | ||
| 903 | |||
| 904 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) | ||
| 905 | // 36: Options8 | ||
| 906 | FEATURE_SUPPORT_GET(BOOL, m_dOptions8, UnalignedBlockTexturesSupported); | ||
| 907 | |||
| 908 | // 37: Options9 | ||
| 909 | FEATURE_SUPPORT_GET(BOOL, m_dOptions9, MeshShaderPipelineStatsSupported); | ||
| 910 | FEATURE_SUPPORT_GET(BOOL, m_dOptions9, MeshShaderSupportsFullRangeRenderTargetArrayIndex); | ||
| 911 | FEATURE_SUPPORT_GET(BOOL, m_dOptions9, AtomicInt64OnTypedResourceSupported); | ||
| 912 | FEATURE_SUPPORT_GET(BOOL, m_dOptions9, AtomicInt64OnGroupSharedSupported); | ||
| 913 | FEATURE_SUPPORT_GET(BOOL, m_dOptions9, DerivativesInMeshAndAmplificationShadersSupported); | ||
| 914 | FEATURE_SUPPORT_GET(D3D12_WAVE_MMA_TIER, m_dOptions9, WaveMMATier); | ||
| 915 | #endif | ||
| 916 | |||
| 917 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 4) | ||
| 918 | // 39: Options10 | ||
| 919 | FEATURE_SUPPORT_GET(BOOL, m_dOptions10, VariableRateShadingSumCombinerSupported); | ||
| 920 | FEATURE_SUPPORT_GET(BOOL, m_dOptions10, MeshShaderPerPrimitiveShadingRateSupported); | ||
| 921 | |||
| 922 | // 40: Options11 | ||
| 923 | FEATURE_SUPPORT_GET(BOOL, m_dOptions11, AtomicInt64OnDescriptorHeapResourceSupported); | ||
| 924 | #endif | ||
| 925 | |||
| 926 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 600) | ||
| 927 | // 41: Options12 | ||
| 928 | FEATURE_SUPPORT_GET(D3D12_TRI_STATE, m_dOptions12, MSPrimitivesPipelineStatisticIncludesCulledPrimitives); | ||
| 929 | FEATURE_SUPPORT_GET(BOOL, m_dOptions12, EnhancedBarriersSupported); | ||
| 930 | FEATURE_SUPPORT_GET(BOOL, m_dOptions12, RelaxedFormatCastingSupported); | ||
| 931 | #endif | ||
| 932 | |||
| 933 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 602) | ||
| 934 | // 42: Options13 | ||
| 935 | FEATURE_SUPPORT_GET(BOOL, m_dOptions13, UnrestrictedBufferTextureCopyPitchSupported); | ||
| 936 | FEATURE_SUPPORT_GET(BOOL, m_dOptions13, UnrestrictedVertexElementAlignmentSupported); | ||
| 937 | FEATURE_SUPPORT_GET(BOOL, m_dOptions13, InvertedViewportHeightFlipsYSupported); | ||
| 938 | FEATURE_SUPPORT_GET(BOOL, m_dOptions13, InvertedViewportDepthFlipsZSupported); | ||
| 939 | FEATURE_SUPPORT_GET(BOOL, m_dOptions13, TextureCopyBetweenDimensionsSupported); | ||
| 940 | FEATURE_SUPPORT_GET(BOOL, m_dOptions13, AlphaBlendFactorSupported); | ||
| 941 | #endif | ||
| 942 | |||
| 943 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 944 | // 43: Options14 | ||
| 945 | FEATURE_SUPPORT_GET(BOOL, m_dOptions14, AdvancedTextureOpsSupported); | ||
| 946 | FEATURE_SUPPORT_GET(BOOL, m_dOptions14, WriteableMSAATexturesSupported); | ||
| 947 | FEATURE_SUPPORT_GET(BOOL, m_dOptions14, IndependentFrontAndBackStencilRefMaskSupported); | ||
| 948 | |||
| 949 | // 44: Options15 | ||
| 950 | FEATURE_SUPPORT_GET(BOOL, m_dOptions15, TriangleFanSupported); | ||
| 951 | FEATURE_SUPPORT_GET(BOOL, m_dOptions15, DynamicIndexBufferStripCutSupported); | ||
| 952 | #endif | ||
| 953 | |||
| 954 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 955 | // 45: Options16 | ||
| 956 | FEATURE_SUPPORT_GET(BOOL, m_dOptions16, DynamicDepthBiasSupported); | ||
| 957 | #endif | ||
| 958 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 959 | FEATURE_SUPPORT_GET(BOOL, m_dOptions16, GPUUploadHeapSupported); | ||
| 960 | |||
| 961 | // 46: Options17 | ||
| 962 | FEATURE_SUPPORT_GET(BOOL, m_dOptions17, NonNormalizedCoordinateSamplersSupported); | ||
| 963 | FEATURE_SUPPORT_GET(BOOL, m_dOptions17, ManualWriteTrackingResourceSupported); | ||
| 964 | |||
| 965 | // 47: Option18 | ||
| 966 | FEATURE_SUPPORT_GET(BOOL, m_dOptions18, RenderPassesValid); | ||
| 967 | #endif | ||
| 968 | |||
| 969 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 970 | FEATURE_SUPPORT_GET(BOOL, m_dOptions19, MismatchingOutputDimensionsSupported); | ||
| 971 | FEATURE_SUPPORT_GET(UINT, m_dOptions19, SupportedSampleCountsWithNoOutputs); | ||
| 972 | FEATURE_SUPPORT_GET(BOOL, m_dOptions19, PointSamplingAddressesNeverRoundUp); | ||
| 973 | FEATURE_SUPPORT_GET(BOOL, m_dOptions19, RasterizerDesc2Supported); | ||
| 974 | FEATURE_SUPPORT_GET(BOOL, m_dOptions19, NarrowQuadrilateralLinesSupported); | ||
| 975 | FEATURE_SUPPORT_GET(BOOL, m_dOptions19, AnisoFilterWithPointMipSupported); | ||
| 976 | FEATURE_SUPPORT_GET(UINT, m_dOptions19, MaxSamplerDescriptorHeapSize); | ||
| 977 | FEATURE_SUPPORT_GET(UINT, m_dOptions19, MaxSamplerDescriptorHeapSizeWithStaticSamplers); | ||
| 978 | FEATURE_SUPPORT_GET(UINT, m_dOptions19, MaxViewDescriptorHeapSize); | ||
| 979 | #endif | ||
| 980 | |||
| 981 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) | ||
| 982 | // 49: Options20 | ||
| 983 | FEATURE_SUPPORT_GET(BOOL, m_dOptions20, ComputeOnlyWriteWatchSupported); | ||
| 984 | #endif | ||
| 985 | |||
| 986 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 987 | // 50: Options21 | ||
| 988 | FEATURE_SUPPORT_GET(D3D12_EXECUTE_INDIRECT_TIER, m_dOptions21, ExecuteIndirectTier); | ||
| 989 | FEATURE_SUPPORT_GET(D3D12_WORK_GRAPHS_TIER, m_dOptions21, WorkGraphsTier); | ||
| 990 | #endif | ||
| 991 | |||
| 992 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 617) | ||
| 993 | // 51: TightAlignment | ||
| 994 | FEATURE_SUPPORT_GET_NAME(D3D12_TIGHT_ALIGNMENT_TIER, m_dTightAlignment, SupportTier, TightAlignmentSupportTier); | ||
| 995 | #endif | ||
| 996 | |||
| 997 | // Helper function to decide the highest shader model supported by the system | ||
| 998 | // Stores the result in m_dShaderModel | ||
| 999 | // Must be updated whenever a new shader model is added to the d3d12.h header | ||
| 1000 | inline HRESULT CD3DX12FeatureSupport::QueryHighestShaderModel() | ||
| 1001 | { | ||
| 1002 | // Check support in descending order | ||
| 1003 | HRESULT result; | ||
| 1004 | |||
| 1005 | const D3D_SHADER_MODEL allModelVersions[] = | ||
| 1006 | { | ||
| 1007 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 1008 | D3D_SHADER_MODEL_6_9, | ||
| 1009 | #endif | ||
| 1010 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 1011 | D3D_SHADER_MODEL_6_8, | ||
| 1012 | #endif | ||
| 1013 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) | ||
| 1014 | D3D_SHADER_MODEL_6_7, | ||
| 1015 | #endif | ||
| 1016 | D3D_SHADER_MODEL_6_6, | ||
| 1017 | D3D_SHADER_MODEL_6_5, | ||
| 1018 | D3D_SHADER_MODEL_6_4, | ||
| 1019 | D3D_SHADER_MODEL_6_3, | ||
| 1020 | D3D_SHADER_MODEL_6_2, | ||
| 1021 | D3D_SHADER_MODEL_6_1, | ||
| 1022 | D3D_SHADER_MODEL_6_0, | ||
| 1023 | D3D_SHADER_MODEL_5_1 | ||
| 1024 | }; | ||
| 1025 | constexpr size_t numModelVersions = sizeof(allModelVersions) / sizeof(D3D_SHADER_MODEL); | ||
| 1026 | |||
| 1027 | for (size_t i = 0; i < numModelVersions; i++) | ||
| 1028 | { | ||
| 1029 | m_dShaderModel.HighestShaderModel = allModelVersions[i]; | ||
| 1030 | result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_SHADER_MODEL, &m_dShaderModel, sizeof(D3D12_FEATURE_DATA_SHADER_MODEL)); | ||
| 1031 | if (result != E_INVALIDARG) | ||
| 1032 | { | ||
| 1033 | // Indicates that the version is recognizable by the runtime and stored in the struct | ||
| 1034 | // Also terminate on unexpected error code | ||
| 1035 | if (FAILED(result)) | ||
| 1036 | { | ||
| 1037 | m_dShaderModel.HighestShaderModel = static_cast<D3D_SHADER_MODEL>(0); | ||
| 1038 | } | ||
| 1039 | return result; | ||
| 1040 | } | ||
| 1041 | } | ||
| 1042 | |||
| 1043 | // Shader model may not be supported. Continue the rest initializations | ||
| 1044 | m_dShaderModel.HighestShaderModel = static_cast<D3D_SHADER_MODEL>(0); | ||
| 1045 | return S_OK; | ||
| 1046 | } | ||
| 1047 | |||
| 1048 | // Helper function to decide the highest root signature supported | ||
| 1049 | // Must be updated whenever a new root signature version is added to the d3d12.h header | ||
| 1050 | inline HRESULT CD3DX12FeatureSupport::QueryHighestRootSignatureVersion() | ||
| 1051 | { | ||
| 1052 | HRESULT result; | ||
| 1053 | |||
| 1054 | const D3D_ROOT_SIGNATURE_VERSION allRootSignatureVersions[] = | ||
| 1055 | { | ||
| 1056 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 1057 | D3D_ROOT_SIGNATURE_VERSION_1_2, | ||
| 1058 | #endif | ||
| 1059 | D3D_ROOT_SIGNATURE_VERSION_1_1, | ||
| 1060 | D3D_ROOT_SIGNATURE_VERSION_1_0, | ||
| 1061 | D3D_ROOT_SIGNATURE_VERSION_1, | ||
| 1062 | }; | ||
| 1063 | constexpr size_t numRootSignatureVersions = sizeof(allRootSignatureVersions) / sizeof(D3D_ROOT_SIGNATURE_VERSION); | ||
| 1064 | |||
| 1065 | for (size_t i = 0; i < numRootSignatureVersions; i++) | ||
| 1066 | { | ||
| 1067 | m_dRootSignature.HighestVersion = allRootSignatureVersions[i]; | ||
| 1068 | result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_ROOT_SIGNATURE, &m_dRootSignature, sizeof(D3D12_FEATURE_DATA_ROOT_SIGNATURE)); | ||
| 1069 | if (result != E_INVALIDARG) | ||
| 1070 | { | ||
| 1071 | if (FAILED(result)) | ||
| 1072 | { | ||
| 1073 | m_dRootSignature.HighestVersion = static_cast<D3D_ROOT_SIGNATURE_VERSION>(0); | ||
| 1074 | } | ||
| 1075 | // If succeeded, the highest version is already written into the member struct | ||
| 1076 | return result; | ||
| 1077 | } | ||
| 1078 | } | ||
| 1079 | |||
| 1080 | // No version left. Set to invalid value and continue. | ||
| 1081 | m_dRootSignature.HighestVersion = static_cast<D3D_ROOT_SIGNATURE_VERSION>(0); | ||
| 1082 | return S_OK; | ||
| 1083 | } | ||
| 1084 | |||
| 1085 | // Helper funcion to decide the highest feature level | ||
| 1086 | inline HRESULT CD3DX12FeatureSupport::QueryHighestFeatureLevel() | ||
| 1087 | { | ||
| 1088 | HRESULT result; | ||
| 1089 | |||
| 1090 | // Check against a list of all feature levels present in d3dcommon.h | ||
| 1091 | // Needs to be updated for future feature levels | ||
| 1092 | const D3D_FEATURE_LEVEL allLevels[] = | ||
| 1093 | { | ||
| 1094 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 3) | ||
| 1095 | D3D_FEATURE_LEVEL_12_2, | ||
| 1096 | #endif | ||
| 1097 | D3D_FEATURE_LEVEL_12_1, | ||
| 1098 | D3D_FEATURE_LEVEL_12_0, | ||
| 1099 | D3D_FEATURE_LEVEL_11_1, | ||
| 1100 | D3D_FEATURE_LEVEL_11_0, | ||
| 1101 | D3D_FEATURE_LEVEL_10_1, | ||
| 1102 | D3D_FEATURE_LEVEL_10_0, | ||
| 1103 | D3D_FEATURE_LEVEL_9_3, | ||
| 1104 | D3D_FEATURE_LEVEL_9_2, | ||
| 1105 | D3D_FEATURE_LEVEL_9_1, | ||
| 1106 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 5) | ||
| 1107 | D3D_FEATURE_LEVEL_1_0_CORE, | ||
| 1108 | #endif | ||
| 1109 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 611) | ||
| 1110 | D3D_FEATURE_LEVEL_1_0_GENERIC | ||
| 1111 | #endif | ||
| 1112 | }; | ||
| 1113 | |||
| 1114 | D3D12_FEATURE_DATA_FEATURE_LEVELS dFeatureLevel; | ||
| 1115 | dFeatureLevel.NumFeatureLevels = static_cast<UINT>(sizeof(allLevels) / sizeof(D3D_FEATURE_LEVEL)); | ||
| 1116 | dFeatureLevel.pFeatureLevelsRequested = allLevels; | ||
| 1117 | |||
| 1118 | result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_FEATURE_LEVELS, &dFeatureLevel, sizeof(D3D12_FEATURE_DATA_FEATURE_LEVELS)); | ||
| 1119 | if (SUCCEEDED(result)) | ||
| 1120 | { | ||
| 1121 | m_eMaxFeatureLevel = dFeatureLevel.MaxSupportedFeatureLevel; | ||
| 1122 | } | ||
| 1123 | else | ||
| 1124 | { | ||
| 1125 | m_eMaxFeatureLevel = static_cast<D3D_FEATURE_LEVEL>(0); | ||
| 1126 | |||
| 1127 | if (result == DXGI_ERROR_UNSUPPORTED) | ||
| 1128 | { | ||
| 1129 | // Indicates that none supported. Continue initialization | ||
| 1130 | result = S_OK; | ||
| 1131 | } | ||
| 1132 | } | ||
| 1133 | return result; | ||
| 1134 | } | ||
| 1135 | |||
| 1136 | // Helper function to initialize local protected resource session types structs | ||
| 1137 | inline HRESULT CD3DX12FeatureSupport::QueryProtectedResourceSessionTypes(UINT NodeIndex, UINT Count) | ||
| 1138 | { | ||
| 1139 | auto& CurrentPRSTypes = m_dProtectedResourceSessionTypes[NodeIndex]; | ||
| 1140 | CurrentPRSTypes.NodeIndex = NodeIndex; | ||
| 1141 | CurrentPRSTypes.Count = Count; | ||
| 1142 | CurrentPRSTypes.TypeVec.resize(CurrentPRSTypes.Count); | ||
| 1143 | CurrentPRSTypes.pTypes = CurrentPRSTypes.TypeVec.data(); | ||
| 1144 | |||
| 1145 | HRESULT result = m_pDevice->CheckFeatureSupport(D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES, &m_dProtectedResourceSessionTypes[NodeIndex], sizeof(D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES)); | ||
| 1146 | if (FAILED(result)) | ||
| 1147 | { | ||
| 1148 | // Resize TypeVec to empty | ||
| 1149 | CurrentPRSTypes.TypeVec.clear(); | ||
| 1150 | } | ||
| 1151 | |||
| 1152 | return result; | ||
| 1153 | } | ||
| 1154 | |||
| 1155 | #undef FEATURE_SUPPORT_GET | ||
| 1156 | #undef FEATURE_SUPPORT_GET_NAME | ||
| 1157 | #undef FEATURE_SUPPORT_GET_NODE_INDEXED | ||
| 1158 | #undef FEATURE_SUPPORT_GET_NODE_INDEXED_NAME | ||
| 1159 | |||
| 1160 | // end CD3DX12FeatureSupport | ||
| 1161 | |||
| 1162 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_core.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_core.h new file mode 100644 index 0000000..092a039 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_core.h | |||
| @@ -0,0 +1,2072 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #pragma once | ||
| 9 | |||
| 10 | #ifndef __cplusplus | ||
| 11 | #error D3DX12 requires C++ | ||
| 12 | #endif | ||
| 13 | |||
| 14 | #include <string.h> | ||
| 15 | #include "d3d12.h" | ||
| 16 | #include "d3dx12_default.h" | ||
| 17 | |||
| 18 | //------------------------------------------------------------------------------------------------ | ||
| 19 | #ifndef D3DX12_ASSERT | ||
| 20 | #ifdef assert | ||
| 21 | #define D3DX12_ASSERT(x) assert(x) | ||
| 22 | #else | ||
| 23 | #define D3DX12_ASSERT(x) | ||
| 24 | #endif | ||
| 25 | #endif | ||
| 26 | |||
| 27 | //------------------------------------------------------------------------------------------------ | ||
| 28 | template <typename t_CommandListType> | ||
| 29 | inline ID3D12CommandList * const * CommandListCast(t_CommandListType * const * pp) noexcept | ||
| 30 | { | ||
| 31 | // This cast is useful for passing strongly typed command list pointers into | ||
| 32 | // ExecuteCommandLists. | ||
| 33 | // This cast is valid as long as the const-ness is respected. D3D12 APIs do | ||
| 34 | // respect the const-ness of their arguments. | ||
| 35 | return reinterpret_cast<ID3D12CommandList * const *>(pp); | ||
| 36 | } | ||
| 37 | |||
| 38 | #ifdef D3DX12_USE_ARRAY_COM_PTR | ||
| 39 | #include <vector> | ||
| 40 | //------------------------------------------------------------------------------------------------ | ||
| 41 | // CArrayComPtr - Useful RAII container of raw IUnknown pointers. | ||
| 42 | template<typename _T> | ||
| 43 | class CArrayComPtr | ||
| 44 | { | ||
| 45 | std::vector<_T *> m_array; | ||
| 46 | |||
| 47 | public: | ||
| 48 | class CProxyPtr | ||
| 49 | { | ||
| 50 | _T *&pObj; | ||
| 51 | |||
| 52 | CProxyPtr(_T *&obj) : | ||
| 53 | pObj(obj) {} | ||
| 54 | |||
| 55 | public: | ||
| 56 | operator _T*() { return pObj; } | ||
| 57 | _T **operator&() { return &pObj; } | ||
| 58 | CProxyPtr &operator=(_T*&obj) | ||
| 59 | { | ||
| 60 | if(pObj) | ||
| 61 | pObj->Release(); | ||
| 62 | |||
| 63 | pObj = obj; | ||
| 64 | |||
| 65 | if(pObj) | ||
| 66 | pObj->AddRef(); | ||
| 67 | } | ||
| 68 | |||
| 69 | friend class CArrayComPtr<_T>; | ||
| 70 | }; | ||
| 71 | |||
| 72 | public: | ||
| 73 | CArrayComPtr() = default; | ||
| 74 | |||
| 75 | CArrayComPtr(size_t size) : | ||
| 76 | m_array(size) { | ||
| 77 | } | ||
| 78 | |||
| 79 | CArrayComPtr(const CArrayComPtr &o) | ||
| 80 | { | ||
| 81 | m_array = o.m_array; | ||
| 82 | for (size_t i = 0; i < m_array.size(); ++i) | ||
| 83 | { | ||
| 84 | m_array[i]->AddRef(); | ||
| 85 | } | ||
| 86 | } | ||
| 87 | |||
| 88 | CArrayComPtr(CArrayComPtr &&o) = default; | ||
| 89 | |||
| 90 | ~CArrayComPtr() | ||
| 91 | { | ||
| 92 | for (auto ptr : m_array) | ||
| 93 | { | ||
| 94 | if (ptr) | ||
| 95 | { | ||
| 96 | ptr->Release(); | ||
| 97 | } | ||
| 98 | } | ||
| 99 | } | ||
| 100 | |||
| 101 | _T *const *Get() { return m_array.data(); } | ||
| 102 | |||
| 103 | void Assign(size_t index, _T *ptr) | ||
| 104 | { | ||
| 105 | if (index >= m_array.size()) | ||
| 106 | { | ||
| 107 | Resize(index + 1); | ||
| 108 | } | ||
| 109 | |||
| 110 | // Release the old pointer if it exists | ||
| 111 | if (m_array[index]) | ||
| 112 | { | ||
| 113 | m_array[index]->Release(); | ||
| 114 | } | ||
| 115 | |||
| 116 | // Assign the new pointer and AddRef it if not null | ||
| 117 | m_array[index] = ptr; | ||
| 118 | if (ptr) | ||
| 119 | { | ||
| 120 | ptr->AddRef(); | ||
| 121 | } | ||
| 122 | } | ||
| 123 | |||
| 124 | void Resize(size_t size) | ||
| 125 | { | ||
| 126 | // If shrinking, release any pointers that will be discarded | ||
| 127 | if (size < m_array.size()) | ||
| 128 | { | ||
| 129 | for (size_t i = size; i < m_array.size(); ++i) | ||
| 130 | { | ||
| 131 | if (m_array[i]) | ||
| 132 | { | ||
| 133 | m_array[i]->Release(); | ||
| 134 | } | ||
| 135 | } | ||
| 136 | } | ||
| 137 | |||
| 138 | // Resize the vector, initializing new elements to nullptr | ||
| 139 | m_array.resize(size, nullptr); | ||
| 140 | } | ||
| 141 | |||
| 142 | void PushBack(_T *ptr) | ||
| 143 | { | ||
| 144 | // AddRef if not null | ||
| 145 | if (ptr) | ||
| 146 | { | ||
| 147 | ptr->AddRef(); | ||
| 148 | } | ||
| 149 | m_array.push_back(ptr); | ||
| 150 | } | ||
| 151 | |||
| 152 | CProxyPtr operator[](size_t index) | ||
| 153 | { | ||
| 154 | return CProxyPtr(m_array[index]); | ||
| 155 | } | ||
| 156 | }; | ||
| 157 | #endif | ||
| 158 | //------------------------------------------------------------------------------------------------ | ||
| 159 | inline bool operator==( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) noexcept | ||
| 160 | { | ||
| 161 | return l.TopLeftX == r.TopLeftX && l.TopLeftY == r.TopLeftY && l.Width == r.Width && | ||
| 162 | l.Height == r.Height && l.MinDepth == r.MinDepth && l.MaxDepth == r.MaxDepth; | ||
| 163 | } | ||
| 164 | |||
| 165 | //------------------------------------------------------------------------------------------------ | ||
| 166 | inline bool operator!=( const D3D12_VIEWPORT& l, const D3D12_VIEWPORT& r ) noexcept | ||
| 167 | { return !( l == r ); } | ||
| 168 | |||
| 169 | //------------------------------------------------------------------------------------------------ | ||
| 170 | struct CD3DX12_RECT : public D3D12_RECT | ||
| 171 | { | ||
| 172 | CD3DX12_RECT() = default; | ||
| 173 | explicit CD3DX12_RECT( const D3D12_RECT& o ) noexcept : | ||
| 174 | D3D12_RECT( o ) | ||
| 175 | {} | ||
| 176 | explicit CD3DX12_RECT( | ||
| 177 | LONG Left, | ||
| 178 | LONG Top, | ||
| 179 | LONG Right, | ||
| 180 | LONG Bottom ) noexcept | ||
| 181 | { | ||
| 182 | left = Left; | ||
| 183 | top = Top; | ||
| 184 | right = Right; | ||
| 185 | bottom = Bottom; | ||
| 186 | } | ||
| 187 | }; | ||
| 188 | |||
| 189 | //------------------------------------------------------------------------------------------------ | ||
| 190 | struct CD3DX12_VIEWPORT : public D3D12_VIEWPORT | ||
| 191 | { | ||
| 192 | CD3DX12_VIEWPORT() = default; | ||
| 193 | explicit CD3DX12_VIEWPORT( const D3D12_VIEWPORT& o ) noexcept : | ||
| 194 | D3D12_VIEWPORT( o ) | ||
| 195 | {} | ||
| 196 | explicit CD3DX12_VIEWPORT( | ||
| 197 | FLOAT topLeftX, | ||
| 198 | FLOAT topLeftY, | ||
| 199 | FLOAT width, | ||
| 200 | FLOAT height, | ||
| 201 | FLOAT minDepth = D3D12_MIN_DEPTH, | ||
| 202 | FLOAT maxDepth = D3D12_MAX_DEPTH ) noexcept | ||
| 203 | { | ||
| 204 | TopLeftX = topLeftX; | ||
| 205 | TopLeftY = topLeftY; | ||
| 206 | Width = width; | ||
| 207 | Height = height; | ||
| 208 | MinDepth = minDepth; | ||
| 209 | MaxDepth = maxDepth; | ||
| 210 | } | ||
| 211 | explicit CD3DX12_VIEWPORT( | ||
| 212 | _In_ ID3D12Resource* pResource, | ||
| 213 | UINT mipSlice = 0, | ||
| 214 | FLOAT topLeftX = 0.0f, | ||
| 215 | FLOAT topLeftY = 0.0f, | ||
| 216 | FLOAT minDepth = D3D12_MIN_DEPTH, | ||
| 217 | FLOAT maxDepth = D3D12_MAX_DEPTH ) noexcept | ||
| 218 | { | ||
| 219 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 220 | const auto Desc = pResource->GetDesc(); | ||
| 221 | #else | ||
| 222 | D3D12_RESOURCE_DESC tmpDesc; | ||
| 223 | const auto& Desc = *pResource->GetDesc(&tmpDesc); | ||
| 224 | #endif | ||
| 225 | const UINT64 SubresourceWidth = Desc.Width >> mipSlice; | ||
| 226 | const UINT64 SubresourceHeight = Desc.Height >> mipSlice; | ||
| 227 | switch (Desc.Dimension) | ||
| 228 | { | ||
| 229 | case D3D12_RESOURCE_DIMENSION_BUFFER: | ||
| 230 | TopLeftX = topLeftX; | ||
| 231 | TopLeftY = 0.0f; | ||
| 232 | Width = float(Desc.Width) - topLeftX; | ||
| 233 | Height = 1.0f; | ||
| 234 | break; | ||
| 235 | case D3D12_RESOURCE_DIMENSION_TEXTURE1D: | ||
| 236 | TopLeftX = topLeftX; | ||
| 237 | TopLeftY = 0.0f; | ||
| 238 | Width = (SubresourceWidth ? float(SubresourceWidth) : 1.0f) - topLeftX; | ||
| 239 | Height = 1.0f; | ||
| 240 | break; | ||
| 241 | case D3D12_RESOURCE_DIMENSION_TEXTURE2D: | ||
| 242 | case D3D12_RESOURCE_DIMENSION_TEXTURE3D: | ||
| 243 | TopLeftX = topLeftX; | ||
| 244 | TopLeftY = topLeftY; | ||
| 245 | Width = (SubresourceWidth ? float(SubresourceWidth) : 1.0f) - topLeftX; | ||
| 246 | Height = (SubresourceHeight ? float(SubresourceHeight) : 1.0f) - topLeftY; | ||
| 247 | break; | ||
| 248 | default: break; | ||
| 249 | } | ||
| 250 | |||
| 251 | MinDepth = minDepth; | ||
| 252 | MaxDepth = maxDepth; | ||
| 253 | } | ||
| 254 | }; | ||
| 255 | |||
| 256 | //------------------------------------------------------------------------------------------------ | ||
| 257 | struct CD3DX12_BOX : public D3D12_BOX | ||
| 258 | { | ||
| 259 | CD3DX12_BOX() = default; | ||
| 260 | explicit CD3DX12_BOX( const D3D12_BOX& o ) noexcept : | ||
| 261 | D3D12_BOX( o ) | ||
| 262 | {} | ||
| 263 | explicit CD3DX12_BOX( | ||
| 264 | LONG Left, | ||
| 265 | LONG Right ) noexcept | ||
| 266 | { | ||
| 267 | left = static_cast<UINT>(Left); | ||
| 268 | top = 0; | ||
| 269 | front = 0; | ||
| 270 | right = static_cast<UINT>(Right); | ||
| 271 | bottom = 1; | ||
| 272 | back = 1; | ||
| 273 | } | ||
| 274 | explicit CD3DX12_BOX( | ||
| 275 | LONG Left, | ||
| 276 | LONG Top, | ||
| 277 | LONG Right, | ||
| 278 | LONG Bottom ) noexcept | ||
| 279 | { | ||
| 280 | left = static_cast<UINT>(Left); | ||
| 281 | top = static_cast<UINT>(Top); | ||
| 282 | front = 0; | ||
| 283 | right = static_cast<UINT>(Right); | ||
| 284 | bottom = static_cast<UINT>(Bottom); | ||
| 285 | back = 1; | ||
| 286 | } | ||
| 287 | explicit CD3DX12_BOX( | ||
| 288 | LONG Left, | ||
| 289 | LONG Top, | ||
| 290 | LONG Front, | ||
| 291 | LONG Right, | ||
| 292 | LONG Bottom, | ||
| 293 | LONG Back ) noexcept | ||
| 294 | { | ||
| 295 | left = static_cast<UINT>(Left); | ||
| 296 | top = static_cast<UINT>(Top); | ||
| 297 | front = static_cast<UINT>(Front); | ||
| 298 | right = static_cast<UINT>(Right); | ||
| 299 | bottom = static_cast<UINT>(Bottom); | ||
| 300 | back = static_cast<UINT>(Back); | ||
| 301 | } | ||
| 302 | }; | ||
| 303 | inline bool operator==( const D3D12_BOX& l, const D3D12_BOX& r ) noexcept | ||
| 304 | { | ||
| 305 | return l.left == r.left && l.top == r.top && l.front == r.front && | ||
| 306 | l.right == r.right && l.bottom == r.bottom && l.back == r.back; | ||
| 307 | } | ||
| 308 | inline bool operator!=( const D3D12_BOX& l, const D3D12_BOX& r ) noexcept | ||
| 309 | { return !( l == r ); } | ||
| 310 | |||
| 311 | //------------------------------------------------------------------------------------------------ | ||
| 312 | struct CD3DX12_DEPTH_STENCIL_DESC : public D3D12_DEPTH_STENCIL_DESC | ||
| 313 | { | ||
| 314 | CD3DX12_DEPTH_STENCIL_DESC() = default; | ||
| 315 | explicit CD3DX12_DEPTH_STENCIL_DESC( const D3D12_DEPTH_STENCIL_DESC& o ) noexcept : | ||
| 316 | D3D12_DEPTH_STENCIL_DESC( o ) | ||
| 317 | {} | ||
| 318 | explicit CD3DX12_DEPTH_STENCIL_DESC( CD3DX12_DEFAULT ) noexcept | ||
| 319 | { | ||
| 320 | DepthEnable = TRUE; | ||
| 321 | DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; | ||
| 322 | DepthFunc = D3D12_COMPARISON_FUNC_LESS; | ||
| 323 | StencilEnable = FALSE; | ||
| 324 | StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK; | ||
| 325 | StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK; | ||
| 326 | const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = | ||
| 327 | { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; | ||
| 328 | FrontFace = defaultStencilOp; | ||
| 329 | BackFace = defaultStencilOp; | ||
| 330 | } | ||
| 331 | explicit CD3DX12_DEPTH_STENCIL_DESC( | ||
| 332 | BOOL depthEnable, | ||
| 333 | D3D12_DEPTH_WRITE_MASK depthWriteMask, | ||
| 334 | D3D12_COMPARISON_FUNC depthFunc, | ||
| 335 | BOOL stencilEnable, | ||
| 336 | UINT8 stencilReadMask, | ||
| 337 | UINT8 stencilWriteMask, | ||
| 338 | D3D12_STENCIL_OP frontStencilFailOp, | ||
| 339 | D3D12_STENCIL_OP frontStencilDepthFailOp, | ||
| 340 | D3D12_STENCIL_OP frontStencilPassOp, | ||
| 341 | D3D12_COMPARISON_FUNC frontStencilFunc, | ||
| 342 | D3D12_STENCIL_OP backStencilFailOp, | ||
| 343 | D3D12_STENCIL_OP backStencilDepthFailOp, | ||
| 344 | D3D12_STENCIL_OP backStencilPassOp, | ||
| 345 | D3D12_COMPARISON_FUNC backStencilFunc ) noexcept | ||
| 346 | { | ||
| 347 | DepthEnable = depthEnable; | ||
| 348 | DepthWriteMask = depthWriteMask; | ||
| 349 | DepthFunc = depthFunc; | ||
| 350 | StencilEnable = stencilEnable; | ||
| 351 | StencilReadMask = stencilReadMask; | ||
| 352 | StencilWriteMask = stencilWriteMask; | ||
| 353 | FrontFace.StencilFailOp = frontStencilFailOp; | ||
| 354 | FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; | ||
| 355 | FrontFace.StencilPassOp = frontStencilPassOp; | ||
| 356 | FrontFace.StencilFunc = frontStencilFunc; | ||
| 357 | BackFace.StencilFailOp = backStencilFailOp; | ||
| 358 | BackFace.StencilDepthFailOp = backStencilDepthFailOp; | ||
| 359 | BackFace.StencilPassOp = backStencilPassOp; | ||
| 360 | BackFace.StencilFunc = backStencilFunc; | ||
| 361 | } | ||
| 362 | }; | ||
| 363 | |||
| 364 | //------------------------------------------------------------------------------------------------ | ||
| 365 | struct CD3DX12_DEPTH_STENCIL_DESC1 : public D3D12_DEPTH_STENCIL_DESC1 | ||
| 366 | { | ||
| 367 | CD3DX12_DEPTH_STENCIL_DESC1() = default; | ||
| 368 | explicit CD3DX12_DEPTH_STENCIL_DESC1( const D3D12_DEPTH_STENCIL_DESC1& o ) noexcept : | ||
| 369 | D3D12_DEPTH_STENCIL_DESC1( o ) | ||
| 370 | {} | ||
| 371 | explicit CD3DX12_DEPTH_STENCIL_DESC1( const D3D12_DEPTH_STENCIL_DESC& o ) noexcept | ||
| 372 | { | ||
| 373 | DepthEnable = o.DepthEnable; | ||
| 374 | DepthWriteMask = o.DepthWriteMask; | ||
| 375 | DepthFunc = o.DepthFunc; | ||
| 376 | StencilEnable = o.StencilEnable; | ||
| 377 | StencilReadMask = o.StencilReadMask; | ||
| 378 | StencilWriteMask = o.StencilWriteMask; | ||
| 379 | FrontFace.StencilFailOp = o.FrontFace.StencilFailOp; | ||
| 380 | FrontFace.StencilDepthFailOp = o.FrontFace.StencilDepthFailOp; | ||
| 381 | FrontFace.StencilPassOp = o.FrontFace.StencilPassOp; | ||
| 382 | FrontFace.StencilFunc = o.FrontFace.StencilFunc; | ||
| 383 | BackFace.StencilFailOp = o.BackFace.StencilFailOp; | ||
| 384 | BackFace.StencilDepthFailOp = o.BackFace.StencilDepthFailOp; | ||
| 385 | BackFace.StencilPassOp = o.BackFace.StencilPassOp; | ||
| 386 | BackFace.StencilFunc = o.BackFace.StencilFunc; | ||
| 387 | DepthBoundsTestEnable = FALSE; | ||
| 388 | } | ||
| 389 | explicit CD3DX12_DEPTH_STENCIL_DESC1( CD3DX12_DEFAULT ) noexcept | ||
| 390 | { | ||
| 391 | DepthEnable = TRUE; | ||
| 392 | DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; | ||
| 393 | DepthFunc = D3D12_COMPARISON_FUNC_LESS; | ||
| 394 | StencilEnable = FALSE; | ||
| 395 | StencilReadMask = D3D12_DEFAULT_STENCIL_READ_MASK; | ||
| 396 | StencilWriteMask = D3D12_DEFAULT_STENCIL_WRITE_MASK; | ||
| 397 | const D3D12_DEPTH_STENCILOP_DESC defaultStencilOp = | ||
| 398 | { D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_STENCIL_OP_KEEP, D3D12_COMPARISON_FUNC_ALWAYS }; | ||
| 399 | FrontFace = defaultStencilOp; | ||
| 400 | BackFace = defaultStencilOp; | ||
| 401 | DepthBoundsTestEnable = FALSE; | ||
| 402 | } | ||
| 403 | explicit CD3DX12_DEPTH_STENCIL_DESC1( | ||
| 404 | BOOL depthEnable, | ||
| 405 | D3D12_DEPTH_WRITE_MASK depthWriteMask, | ||
| 406 | D3D12_COMPARISON_FUNC depthFunc, | ||
| 407 | BOOL stencilEnable, | ||
| 408 | UINT8 stencilReadMask, | ||
| 409 | UINT8 stencilWriteMask, | ||
| 410 | D3D12_STENCIL_OP frontStencilFailOp, | ||
| 411 | D3D12_STENCIL_OP frontStencilDepthFailOp, | ||
| 412 | D3D12_STENCIL_OP frontStencilPassOp, | ||
| 413 | D3D12_COMPARISON_FUNC frontStencilFunc, | ||
| 414 | D3D12_STENCIL_OP backStencilFailOp, | ||
| 415 | D3D12_STENCIL_OP backStencilDepthFailOp, | ||
| 416 | D3D12_STENCIL_OP backStencilPassOp, | ||
| 417 | D3D12_COMPARISON_FUNC backStencilFunc, | ||
| 418 | BOOL depthBoundsTestEnable ) noexcept | ||
| 419 | { | ||
| 420 | DepthEnable = depthEnable; | ||
| 421 | DepthWriteMask = depthWriteMask; | ||
| 422 | DepthFunc = depthFunc; | ||
| 423 | StencilEnable = stencilEnable; | ||
| 424 | StencilReadMask = stencilReadMask; | ||
| 425 | StencilWriteMask = stencilWriteMask; | ||
| 426 | FrontFace.StencilFailOp = frontStencilFailOp; | ||
| 427 | FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; | ||
| 428 | FrontFace.StencilPassOp = frontStencilPassOp; | ||
| 429 | FrontFace.StencilFunc = frontStencilFunc; | ||
| 430 | BackFace.StencilFailOp = backStencilFailOp; | ||
| 431 | BackFace.StencilDepthFailOp = backStencilDepthFailOp; | ||
| 432 | BackFace.StencilPassOp = backStencilPassOp; | ||
| 433 | BackFace.StencilFunc = backStencilFunc; | ||
| 434 | DepthBoundsTestEnable = depthBoundsTestEnable; | ||
| 435 | } | ||
| 436 | operator D3D12_DEPTH_STENCIL_DESC() const noexcept | ||
| 437 | { | ||
| 438 | D3D12_DEPTH_STENCIL_DESC D; | ||
| 439 | D.DepthEnable = DepthEnable; | ||
| 440 | D.DepthWriteMask = DepthWriteMask; | ||
| 441 | D.DepthFunc = DepthFunc; | ||
| 442 | D.StencilEnable = StencilEnable; | ||
| 443 | D.StencilReadMask = StencilReadMask; | ||
| 444 | D.StencilWriteMask = StencilWriteMask; | ||
| 445 | D.FrontFace.StencilFailOp = FrontFace.StencilFailOp; | ||
| 446 | D.FrontFace.StencilDepthFailOp = FrontFace.StencilDepthFailOp; | ||
| 447 | D.FrontFace.StencilPassOp = FrontFace.StencilPassOp; | ||
| 448 | D.FrontFace.StencilFunc = FrontFace.StencilFunc; | ||
| 449 | D.BackFace.StencilFailOp = BackFace.StencilFailOp; | ||
| 450 | D.BackFace.StencilDepthFailOp = BackFace.StencilDepthFailOp; | ||
| 451 | D.BackFace.StencilPassOp = BackFace.StencilPassOp; | ||
| 452 | D.BackFace.StencilFunc = BackFace.StencilFunc; | ||
| 453 | return D; | ||
| 454 | } | ||
| 455 | }; | ||
| 456 | |||
| 457 | //------------------------------------------------------------------------------------------------ | ||
| 458 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 459 | struct CD3DX12_DEPTH_STENCIL_DESC2 : public D3D12_DEPTH_STENCIL_DESC2 | ||
| 460 | { | ||
| 461 | CD3DX12_DEPTH_STENCIL_DESC2() = default; | ||
| 462 | explicit CD3DX12_DEPTH_STENCIL_DESC2( const D3D12_DEPTH_STENCIL_DESC2& o ) noexcept : | ||
| 463 | D3D12_DEPTH_STENCIL_DESC2( o ) | ||
| 464 | {} | ||
| 465 | explicit CD3DX12_DEPTH_STENCIL_DESC2( const D3D12_DEPTH_STENCIL_DESC1& o ) noexcept | ||
| 466 | { | ||
| 467 | DepthEnable = o.DepthEnable; | ||
| 468 | DepthWriteMask = o.DepthWriteMask; | ||
| 469 | DepthFunc = o.DepthFunc; | ||
| 470 | StencilEnable = o.StencilEnable; | ||
| 471 | FrontFace.StencilFailOp = o.FrontFace.StencilFailOp; | ||
| 472 | FrontFace.StencilDepthFailOp = o.FrontFace.StencilDepthFailOp; | ||
| 473 | FrontFace.StencilPassOp = o.FrontFace.StencilPassOp; | ||
| 474 | FrontFace.StencilFunc = o.FrontFace.StencilFunc; | ||
| 475 | FrontFace.StencilReadMask = o.StencilReadMask; | ||
| 476 | FrontFace.StencilWriteMask = o.StencilWriteMask; | ||
| 477 | |||
| 478 | BackFace.StencilFailOp = o.BackFace.StencilFailOp; | ||
| 479 | BackFace.StencilDepthFailOp = o.BackFace.StencilDepthFailOp; | ||
| 480 | BackFace.StencilPassOp = o.BackFace.StencilPassOp; | ||
| 481 | BackFace.StencilFunc = o.BackFace.StencilFunc; | ||
| 482 | BackFace.StencilReadMask = o.StencilReadMask; | ||
| 483 | BackFace.StencilWriteMask = o.StencilWriteMask; | ||
| 484 | DepthBoundsTestEnable = o.DepthBoundsTestEnable; | ||
| 485 | } | ||
| 486 | explicit CD3DX12_DEPTH_STENCIL_DESC2( const D3D12_DEPTH_STENCIL_DESC& o ) noexcept | ||
| 487 | { | ||
| 488 | DepthEnable = o.DepthEnable; | ||
| 489 | DepthWriteMask = o.DepthWriteMask; | ||
| 490 | DepthFunc = o.DepthFunc; | ||
| 491 | StencilEnable = o.StencilEnable; | ||
| 492 | |||
| 493 | FrontFace.StencilFailOp = o.FrontFace.StencilFailOp; | ||
| 494 | FrontFace.StencilDepthFailOp = o.FrontFace.StencilDepthFailOp; | ||
| 495 | FrontFace.StencilPassOp = o.FrontFace.StencilPassOp; | ||
| 496 | FrontFace.StencilFunc = o.FrontFace.StencilFunc; | ||
| 497 | FrontFace.StencilReadMask = o.StencilReadMask; | ||
| 498 | FrontFace.StencilWriteMask = o.StencilWriteMask; | ||
| 499 | |||
| 500 | BackFace.StencilFailOp = o.BackFace.StencilFailOp; | ||
| 501 | BackFace.StencilDepthFailOp = o.BackFace.StencilDepthFailOp; | ||
| 502 | BackFace.StencilPassOp = o.BackFace.StencilPassOp; | ||
| 503 | BackFace.StencilFunc = o.BackFace.StencilFunc; | ||
| 504 | BackFace.StencilReadMask = o.StencilReadMask; | ||
| 505 | BackFace.StencilWriteMask = o.StencilWriteMask; | ||
| 506 | |||
| 507 | DepthBoundsTestEnable = FALSE; | ||
| 508 | } | ||
| 509 | explicit CD3DX12_DEPTH_STENCIL_DESC2( CD3DX12_DEFAULT ) noexcept | ||
| 510 | { | ||
| 511 | DepthEnable = TRUE; | ||
| 512 | DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ALL; | ||
| 513 | DepthFunc = D3D12_COMPARISON_FUNC_LESS; | ||
| 514 | StencilEnable = FALSE; | ||
| 515 | const D3D12_DEPTH_STENCILOP_DESC1 defaultStencilOp = | ||
| 516 | { 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 }; | ||
| 517 | FrontFace = defaultStencilOp; | ||
| 518 | BackFace = defaultStencilOp; | ||
| 519 | DepthBoundsTestEnable = FALSE; | ||
| 520 | } | ||
| 521 | explicit CD3DX12_DEPTH_STENCIL_DESC2( | ||
| 522 | BOOL depthEnable, | ||
| 523 | D3D12_DEPTH_WRITE_MASK depthWriteMask, | ||
| 524 | D3D12_COMPARISON_FUNC depthFunc, | ||
| 525 | BOOL stencilEnable, | ||
| 526 | D3D12_STENCIL_OP frontStencilFailOp, | ||
| 527 | D3D12_STENCIL_OP frontStencilDepthFailOp, | ||
| 528 | D3D12_STENCIL_OP frontStencilPassOp, | ||
| 529 | D3D12_COMPARISON_FUNC frontStencilFunc, | ||
| 530 | UINT8 frontStencilReadMask, | ||
| 531 | UINT8 frontStencilWriteMask, | ||
| 532 | D3D12_STENCIL_OP backStencilFailOp, | ||
| 533 | D3D12_STENCIL_OP backStencilDepthFailOp, | ||
| 534 | D3D12_STENCIL_OP backStencilPassOp, | ||
| 535 | D3D12_COMPARISON_FUNC backStencilFunc, | ||
| 536 | UINT8 backStencilReadMask, | ||
| 537 | UINT8 backStencilWriteMask, | ||
| 538 | BOOL depthBoundsTestEnable ) noexcept | ||
| 539 | { | ||
| 540 | DepthEnable = depthEnable; | ||
| 541 | DepthWriteMask = depthWriteMask; | ||
| 542 | DepthFunc = depthFunc; | ||
| 543 | StencilEnable = stencilEnable; | ||
| 544 | |||
| 545 | FrontFace.StencilFailOp = frontStencilFailOp; | ||
| 546 | FrontFace.StencilDepthFailOp = frontStencilDepthFailOp; | ||
| 547 | FrontFace.StencilPassOp = frontStencilPassOp; | ||
| 548 | FrontFace.StencilFunc = frontStencilFunc; | ||
| 549 | FrontFace.StencilReadMask = frontStencilReadMask; | ||
| 550 | FrontFace.StencilWriteMask = frontStencilWriteMask; | ||
| 551 | |||
| 552 | BackFace.StencilFailOp = backStencilFailOp; | ||
| 553 | BackFace.StencilDepthFailOp = backStencilDepthFailOp; | ||
| 554 | BackFace.StencilPassOp = backStencilPassOp; | ||
| 555 | BackFace.StencilFunc = backStencilFunc; | ||
| 556 | BackFace.StencilReadMask = backStencilReadMask; | ||
| 557 | BackFace.StencilWriteMask = backStencilWriteMask; | ||
| 558 | |||
| 559 | DepthBoundsTestEnable = depthBoundsTestEnable; | ||
| 560 | } | ||
| 561 | |||
| 562 | operator D3D12_DEPTH_STENCIL_DESC() const noexcept | ||
| 563 | { | ||
| 564 | D3D12_DEPTH_STENCIL_DESC D; | ||
| 565 | D.DepthEnable = DepthEnable; | ||
| 566 | D.DepthWriteMask = DepthWriteMask; | ||
| 567 | D.DepthFunc = DepthFunc; | ||
| 568 | D.StencilEnable = StencilEnable; | ||
| 569 | D.StencilReadMask = FrontFace.StencilReadMask; | ||
| 570 | D.StencilWriteMask = FrontFace.StencilWriteMask; | ||
| 571 | D.FrontFace.StencilFailOp = FrontFace.StencilFailOp; | ||
| 572 | D.FrontFace.StencilDepthFailOp = FrontFace.StencilDepthFailOp; | ||
| 573 | D.FrontFace.StencilPassOp = FrontFace.StencilPassOp; | ||
| 574 | D.FrontFace.StencilFunc = FrontFace.StencilFunc; | ||
| 575 | D.BackFace.StencilFailOp = BackFace.StencilFailOp; | ||
| 576 | D.BackFace.StencilDepthFailOp = BackFace.StencilDepthFailOp; | ||
| 577 | D.BackFace.StencilPassOp = BackFace.StencilPassOp; | ||
| 578 | D.BackFace.StencilFunc = BackFace.StencilFunc; | ||
| 579 | return D; | ||
| 580 | } | ||
| 581 | }; | ||
| 582 | #endif // D3D12_SDK_VERSION >= 606 | ||
| 583 | |||
| 584 | //------------------------------------------------------------------------------------------------ | ||
| 585 | struct CD3DX12_BLEND_DESC : public D3D12_BLEND_DESC | ||
| 586 | { | ||
| 587 | CD3DX12_BLEND_DESC() = default; | ||
| 588 | explicit CD3DX12_BLEND_DESC( const D3D12_BLEND_DESC& o ) noexcept : | ||
| 589 | D3D12_BLEND_DESC( o ) | ||
| 590 | {} | ||
| 591 | explicit CD3DX12_BLEND_DESC( CD3DX12_DEFAULT ) noexcept | ||
| 592 | { | ||
| 593 | AlphaToCoverageEnable = FALSE; | ||
| 594 | IndependentBlendEnable = FALSE; | ||
| 595 | const D3D12_RENDER_TARGET_BLEND_DESC defaultRenderTargetBlendDesc = | ||
| 596 | { | ||
| 597 | FALSE,FALSE, | ||
| 598 | D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, | ||
| 599 | D3D12_BLEND_ONE, D3D12_BLEND_ZERO, D3D12_BLEND_OP_ADD, | ||
| 600 | D3D12_LOGIC_OP_NOOP, | ||
| 601 | D3D12_COLOR_WRITE_ENABLE_ALL, | ||
| 602 | }; | ||
| 603 | for (UINT i = 0; i < D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT; ++i) | ||
| 604 | RenderTarget[ i ] = defaultRenderTargetBlendDesc; | ||
| 605 | } | ||
| 606 | }; | ||
| 607 | |||
| 608 | //------------------------------------------------------------------------------------------------ | ||
| 609 | struct CD3DX12_RASTERIZER_DESC : public D3D12_RASTERIZER_DESC | ||
| 610 | { | ||
| 611 | CD3DX12_RASTERIZER_DESC() = default; | ||
| 612 | explicit CD3DX12_RASTERIZER_DESC( const D3D12_RASTERIZER_DESC& o ) noexcept : | ||
| 613 | D3D12_RASTERIZER_DESC( o ) | ||
| 614 | {} | ||
| 615 | explicit CD3DX12_RASTERIZER_DESC( CD3DX12_DEFAULT ) noexcept | ||
| 616 | { | ||
| 617 | FillMode = D3D12_FILL_MODE_SOLID; | ||
| 618 | CullMode = D3D12_CULL_MODE_BACK; | ||
| 619 | FrontCounterClockwise = FALSE; | ||
| 620 | DepthBias = D3D12_DEFAULT_DEPTH_BIAS; | ||
| 621 | DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; | ||
| 622 | SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; | ||
| 623 | DepthClipEnable = TRUE; | ||
| 624 | MultisampleEnable = FALSE; | ||
| 625 | AntialiasedLineEnable = FALSE; | ||
| 626 | ForcedSampleCount = 0; | ||
| 627 | ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; | ||
| 628 | } | ||
| 629 | explicit CD3DX12_RASTERIZER_DESC( | ||
| 630 | D3D12_FILL_MODE fillMode, | ||
| 631 | D3D12_CULL_MODE cullMode, | ||
| 632 | BOOL frontCounterClockwise, | ||
| 633 | INT depthBias, | ||
| 634 | FLOAT depthBiasClamp, | ||
| 635 | FLOAT slopeScaledDepthBias, | ||
| 636 | BOOL depthClipEnable, | ||
| 637 | BOOL multisampleEnable, | ||
| 638 | BOOL antialiasedLineEnable, | ||
| 639 | UINT forcedSampleCount, | ||
| 640 | D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) noexcept | ||
| 641 | { | ||
| 642 | FillMode = fillMode; | ||
| 643 | CullMode = cullMode; | ||
| 644 | FrontCounterClockwise = frontCounterClockwise; | ||
| 645 | DepthBias = depthBias; | ||
| 646 | DepthBiasClamp = depthBiasClamp; | ||
| 647 | SlopeScaledDepthBias = slopeScaledDepthBias; | ||
| 648 | DepthClipEnable = depthClipEnable; | ||
| 649 | MultisampleEnable = multisampleEnable; | ||
| 650 | AntialiasedLineEnable = antialiasedLineEnable; | ||
| 651 | ForcedSampleCount = forcedSampleCount; | ||
| 652 | ConservativeRaster = conservativeRaster; | ||
| 653 | } | ||
| 654 | }; | ||
| 655 | |||
| 656 | |||
| 657 | //------------------------------------------------------------------------------------------------ | ||
| 658 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 659 | struct CD3DX12_RASTERIZER_DESC1 : public D3D12_RASTERIZER_DESC1 | ||
| 660 | { | ||
| 661 | CD3DX12_RASTERIZER_DESC1() = default; | ||
| 662 | explicit CD3DX12_RASTERIZER_DESC1(const D3D12_RASTERIZER_DESC1& o) noexcept : | ||
| 663 | D3D12_RASTERIZER_DESC1(o) | ||
| 664 | |||
| 665 | { | ||
| 666 | } | ||
| 667 | explicit CD3DX12_RASTERIZER_DESC1(const D3D12_RASTERIZER_DESC& o) noexcept | ||
| 668 | { | ||
| 669 | FillMode = o.FillMode; | ||
| 670 | CullMode = o.CullMode; | ||
| 671 | FrontCounterClockwise = o.FrontCounterClockwise; | ||
| 672 | DepthBias = static_cast<FLOAT>(o.DepthBias); | ||
| 673 | DepthBiasClamp = o.DepthBiasClamp; | ||
| 674 | SlopeScaledDepthBias = o.SlopeScaledDepthBias; | ||
| 675 | DepthClipEnable = o.DepthClipEnable; | ||
| 676 | MultisampleEnable = o.MultisampleEnable; | ||
| 677 | AntialiasedLineEnable = o.AntialiasedLineEnable; | ||
| 678 | ForcedSampleCount = o.ForcedSampleCount; | ||
| 679 | ConservativeRaster = o.ConservativeRaster; | ||
| 680 | } | ||
| 681 | explicit CD3DX12_RASTERIZER_DESC1(CD3DX12_DEFAULT) noexcept | ||
| 682 | { | ||
| 683 | FillMode = D3D12_FILL_MODE_SOLID; | ||
| 684 | CullMode = D3D12_CULL_MODE_BACK; | ||
| 685 | FrontCounterClockwise = FALSE; | ||
| 686 | DepthBias = D3D12_DEFAULT_DEPTH_BIAS; | ||
| 687 | DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; | ||
| 688 | SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; | ||
| 689 | DepthClipEnable = TRUE; | ||
| 690 | MultisampleEnable = FALSE; | ||
| 691 | AntialiasedLineEnable = FALSE; | ||
| 692 | ForcedSampleCount = 0; | ||
| 693 | ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; | ||
| 694 | } | ||
| 695 | explicit CD3DX12_RASTERIZER_DESC1( | ||
| 696 | D3D12_FILL_MODE fillMode, | ||
| 697 | D3D12_CULL_MODE cullMode, | ||
| 698 | BOOL frontCounterClockwise, | ||
| 699 | FLOAT depthBias, | ||
| 700 | FLOAT depthBiasClamp, | ||
| 701 | FLOAT slopeScaledDepthBias, | ||
| 702 | BOOL depthClipEnable, | ||
| 703 | BOOL multisampleEnable, | ||
| 704 | BOOL antialiasedLineEnable, | ||
| 705 | UINT forcedSampleCount, | ||
| 706 | D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) noexcept | ||
| 707 | { | ||
| 708 | FillMode = fillMode; | ||
| 709 | CullMode = cullMode; | ||
| 710 | FrontCounterClockwise = frontCounterClockwise; | ||
| 711 | DepthBias = depthBias; | ||
| 712 | DepthBiasClamp = depthBiasClamp; | ||
| 713 | SlopeScaledDepthBias = slopeScaledDepthBias; | ||
| 714 | DepthClipEnable = depthClipEnable; | ||
| 715 | MultisampleEnable = multisampleEnable; | ||
| 716 | AntialiasedLineEnable = antialiasedLineEnable; | ||
| 717 | ForcedSampleCount = forcedSampleCount; | ||
| 718 | ConservativeRaster = conservativeRaster; | ||
| 719 | } | ||
| 720 | |||
| 721 | |||
| 722 | operator D3D12_RASTERIZER_DESC() const noexcept | ||
| 723 | { | ||
| 724 | D3D12_RASTERIZER_DESC o; | ||
| 725 | |||
| 726 | o.FillMode = FillMode; | ||
| 727 | o.CullMode = CullMode; | ||
| 728 | o.FrontCounterClockwise = FrontCounterClockwise; | ||
| 729 | o.DepthBias = static_cast<INT>(DepthBias); | ||
| 730 | o.DepthBiasClamp = DepthBiasClamp; | ||
| 731 | o.SlopeScaledDepthBias = SlopeScaledDepthBias; | ||
| 732 | o.DepthClipEnable = DepthClipEnable; | ||
| 733 | o.MultisampleEnable = MultisampleEnable; | ||
| 734 | o.AntialiasedLineEnable = AntialiasedLineEnable; | ||
| 735 | o.ForcedSampleCount = ForcedSampleCount; | ||
| 736 | o.ConservativeRaster = ConservativeRaster; | ||
| 737 | |||
| 738 | return o; | ||
| 739 | } | ||
| 740 | }; | ||
| 741 | #endif // D3D12_SDK_VERSION >= 608 | ||
| 742 | |||
| 743 | //------------------------------------------------------------------------------------------------ | ||
| 744 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 745 | struct CD3DX12_RASTERIZER_DESC2 : public D3D12_RASTERIZER_DESC2 | ||
| 746 | { | ||
| 747 | CD3DX12_RASTERIZER_DESC2() = default; | ||
| 748 | explicit CD3DX12_RASTERIZER_DESC2(const D3D12_RASTERIZER_DESC2& o) noexcept : | ||
| 749 | D3D12_RASTERIZER_DESC2(o) | ||
| 750 | |||
| 751 | { | ||
| 752 | } | ||
| 753 | explicit CD3DX12_RASTERIZER_DESC2(const D3D12_RASTERIZER_DESC1& o) noexcept | ||
| 754 | { | ||
| 755 | FillMode = o.FillMode; | ||
| 756 | CullMode = o.CullMode; | ||
| 757 | FrontCounterClockwise = o.FrontCounterClockwise; | ||
| 758 | DepthBias = o.DepthBias; | ||
| 759 | DepthBiasClamp = o.DepthBiasClamp; | ||
| 760 | SlopeScaledDepthBias = o.SlopeScaledDepthBias; | ||
| 761 | DepthClipEnable = o.DepthClipEnable; | ||
| 762 | LineRasterizationMode = D3D12_LINE_RASTERIZATION_MODE_ALIASED; | ||
| 763 | if (o.MultisampleEnable) | ||
| 764 | { | ||
| 765 | LineRasterizationMode = D3D12_LINE_RASTERIZATION_MODE_QUADRILATERAL_WIDE; | ||
| 766 | } | ||
| 767 | else if (o.AntialiasedLineEnable) | ||
| 768 | { | ||
| 769 | LineRasterizationMode = D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED; | ||
| 770 | } | ||
| 771 | ForcedSampleCount = o.ForcedSampleCount; | ||
| 772 | ConservativeRaster = o.ConservativeRaster; | ||
| 773 | } | ||
| 774 | explicit CD3DX12_RASTERIZER_DESC2(const D3D12_RASTERIZER_DESC& o) noexcept | ||
| 775 | : CD3DX12_RASTERIZER_DESC2(CD3DX12_RASTERIZER_DESC1(o)) | ||
| 776 | { | ||
| 777 | } | ||
| 778 | explicit CD3DX12_RASTERIZER_DESC2(CD3DX12_DEFAULT) noexcept | ||
| 779 | { | ||
| 780 | FillMode = D3D12_FILL_MODE_SOLID; | ||
| 781 | CullMode = D3D12_CULL_MODE_BACK; | ||
| 782 | FrontCounterClockwise = FALSE; | ||
| 783 | DepthBias = D3D12_DEFAULT_DEPTH_BIAS; | ||
| 784 | DepthBiasClamp = D3D12_DEFAULT_DEPTH_BIAS_CLAMP; | ||
| 785 | SlopeScaledDepthBias = D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS; | ||
| 786 | DepthClipEnable = TRUE; | ||
| 787 | LineRasterizationMode = D3D12_LINE_RASTERIZATION_MODE_ALIASED; | ||
| 788 | ForcedSampleCount = 0; | ||
| 789 | ConservativeRaster = D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF; | ||
| 790 | } | ||
| 791 | explicit CD3DX12_RASTERIZER_DESC2( | ||
| 792 | D3D12_FILL_MODE fillMode, | ||
| 793 | D3D12_CULL_MODE cullMode, | ||
| 794 | BOOL frontCounterClockwise, | ||
| 795 | FLOAT depthBias, | ||
| 796 | FLOAT depthBiasClamp, | ||
| 797 | FLOAT slopeScaledDepthBias, | ||
| 798 | BOOL depthClipEnable, | ||
| 799 | D3D12_LINE_RASTERIZATION_MODE lineRasterizationMode, | ||
| 800 | UINT forcedSampleCount, | ||
| 801 | D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) noexcept | ||
| 802 | { | ||
| 803 | FillMode = fillMode; | ||
| 804 | CullMode = cullMode; | ||
| 805 | FrontCounterClockwise = frontCounterClockwise; | ||
| 806 | DepthBias = depthBias; | ||
| 807 | DepthBiasClamp = depthBiasClamp; | ||
| 808 | SlopeScaledDepthBias = slopeScaledDepthBias; | ||
| 809 | DepthClipEnable = depthClipEnable; | ||
| 810 | LineRasterizationMode = lineRasterizationMode; | ||
| 811 | ForcedSampleCount = forcedSampleCount; | ||
| 812 | ConservativeRaster = conservativeRaster; | ||
| 813 | } | ||
| 814 | |||
| 815 | |||
| 816 | operator D3D12_RASTERIZER_DESC1() const noexcept | ||
| 817 | { | ||
| 818 | D3D12_RASTERIZER_DESC1 o; | ||
| 819 | |||
| 820 | o.FillMode = FillMode; | ||
| 821 | o.CullMode = CullMode; | ||
| 822 | o.FrontCounterClockwise = FrontCounterClockwise; | ||
| 823 | o.DepthBias = DepthBias; | ||
| 824 | o.DepthBiasClamp = DepthBiasClamp; | ||
| 825 | o.SlopeScaledDepthBias = SlopeScaledDepthBias; | ||
| 826 | o.DepthClipEnable = DepthClipEnable; | ||
| 827 | o.MultisampleEnable = FALSE; | ||
| 828 | o.AntialiasedLineEnable = FALSE; | ||
| 829 | if (LineRasterizationMode == D3D12_LINE_RASTERIZATION_MODE_ALPHA_ANTIALIASED) | ||
| 830 | { | ||
| 831 | o.AntialiasedLineEnable = TRUE; | ||
| 832 | } | ||
| 833 | else if (LineRasterizationMode != D3D12_LINE_RASTERIZATION_MODE_ALIASED) | ||
| 834 | { | ||
| 835 | o.MultisampleEnable = TRUE; | ||
| 836 | } | ||
| 837 | o.ForcedSampleCount = ForcedSampleCount; | ||
| 838 | o.ConservativeRaster = ConservativeRaster; | ||
| 839 | |||
| 840 | return o; | ||
| 841 | } | ||
| 842 | operator D3D12_RASTERIZER_DESC() const noexcept | ||
| 843 | { | ||
| 844 | return static_cast<D3D12_RASTERIZER_DESC>(CD3DX12_RASTERIZER_DESC1(static_cast<D3D12_RASTERIZER_DESC1>(*this))); | ||
| 845 | } | ||
| 846 | }; | ||
| 847 | #endif // D3D12_SDK_VERSION >= 610 | ||
| 848 | |||
| 849 | //------------------------------------------------------------------------------------------------ | ||
| 850 | struct CD3DX12_RESOURCE_ALLOCATION_INFO : public D3D12_RESOURCE_ALLOCATION_INFO | ||
| 851 | { | ||
| 852 | CD3DX12_RESOURCE_ALLOCATION_INFO() = default; | ||
| 853 | explicit CD3DX12_RESOURCE_ALLOCATION_INFO( const D3D12_RESOURCE_ALLOCATION_INFO& o ) noexcept : | ||
| 854 | D3D12_RESOURCE_ALLOCATION_INFO( o ) | ||
| 855 | {} | ||
| 856 | CD3DX12_RESOURCE_ALLOCATION_INFO( | ||
| 857 | UINT64 size, | ||
| 858 | UINT64 alignment ) noexcept | ||
| 859 | { | ||
| 860 | SizeInBytes = size; | ||
| 861 | Alignment = alignment; | ||
| 862 | } | ||
| 863 | }; | ||
| 864 | |||
| 865 | //------------------------------------------------------------------------------------------------ | ||
| 866 | struct CD3DX12_HEAP_PROPERTIES : public D3D12_HEAP_PROPERTIES | ||
| 867 | { | ||
| 868 | CD3DX12_HEAP_PROPERTIES() = default; | ||
| 869 | explicit CD3DX12_HEAP_PROPERTIES(const D3D12_HEAP_PROPERTIES &o) noexcept : | ||
| 870 | D3D12_HEAP_PROPERTIES(o) | ||
| 871 | {} | ||
| 872 | CD3DX12_HEAP_PROPERTIES( | ||
| 873 | D3D12_CPU_PAGE_PROPERTY cpuPageProperty, | ||
| 874 | D3D12_MEMORY_POOL memoryPoolPreference, | ||
| 875 | UINT creationNodeMask = 1, | ||
| 876 | UINT nodeMask = 1 ) noexcept | ||
| 877 | { | ||
| 878 | Type = D3D12_HEAP_TYPE_CUSTOM; | ||
| 879 | CPUPageProperty = cpuPageProperty; | ||
| 880 | MemoryPoolPreference = memoryPoolPreference; | ||
| 881 | CreationNodeMask = creationNodeMask; | ||
| 882 | VisibleNodeMask = nodeMask; | ||
| 883 | } | ||
| 884 | explicit CD3DX12_HEAP_PROPERTIES( | ||
| 885 | D3D12_HEAP_TYPE type, | ||
| 886 | UINT creationNodeMask = 1, | ||
| 887 | UINT nodeMask = 1 ) noexcept | ||
| 888 | { | ||
| 889 | Type = type; | ||
| 890 | CPUPageProperty = D3D12_CPU_PAGE_PROPERTY_UNKNOWN; | ||
| 891 | MemoryPoolPreference = D3D12_MEMORY_POOL_UNKNOWN; | ||
| 892 | CreationNodeMask = creationNodeMask; | ||
| 893 | VisibleNodeMask = nodeMask; | ||
| 894 | } | ||
| 895 | bool IsCPUAccessible() const noexcept | ||
| 896 | { | ||
| 897 | return Type == D3D12_HEAP_TYPE_UPLOAD || Type == D3D12_HEAP_TYPE_READBACK | ||
| 898 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 899 | || Type == D3D12_HEAP_TYPE_GPU_UPLOAD | ||
| 900 | #endif | ||
| 901 | || (Type == D3D12_HEAP_TYPE_CUSTOM && | ||
| 902 | (CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE || CPUPageProperty == D3D12_CPU_PAGE_PROPERTY_WRITE_BACK)); | ||
| 903 | } | ||
| 904 | }; | ||
| 905 | inline bool operator==( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) noexcept | ||
| 906 | { | ||
| 907 | return l.Type == r.Type && l.CPUPageProperty == r.CPUPageProperty && | ||
| 908 | l.MemoryPoolPreference == r.MemoryPoolPreference && | ||
| 909 | l.CreationNodeMask == r.CreationNodeMask && | ||
| 910 | l.VisibleNodeMask == r.VisibleNodeMask; | ||
| 911 | } | ||
| 912 | inline bool operator!=( const D3D12_HEAP_PROPERTIES& l, const D3D12_HEAP_PROPERTIES& r ) noexcept | ||
| 913 | { return !( l == r ); } | ||
| 914 | |||
| 915 | //------------------------------------------------------------------------------------------------ | ||
| 916 | struct CD3DX12_HEAP_DESC : public D3D12_HEAP_DESC | ||
| 917 | { | ||
| 918 | CD3DX12_HEAP_DESC() = default; | ||
| 919 | explicit CD3DX12_HEAP_DESC(const D3D12_HEAP_DESC &o) noexcept : | ||
| 920 | D3D12_HEAP_DESC(o) | ||
| 921 | {} | ||
| 922 | CD3DX12_HEAP_DESC( | ||
| 923 | UINT64 size, | ||
| 924 | D3D12_HEAP_PROPERTIES properties, | ||
| 925 | UINT64 alignment = 0, | ||
| 926 | D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept | ||
| 927 | { | ||
| 928 | SizeInBytes = size; | ||
| 929 | Properties = properties; | ||
| 930 | Alignment = alignment; | ||
| 931 | Flags = flags; | ||
| 932 | } | ||
| 933 | CD3DX12_HEAP_DESC( | ||
| 934 | UINT64 size, | ||
| 935 | D3D12_HEAP_TYPE type, | ||
| 936 | UINT64 alignment = 0, | ||
| 937 | D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept | ||
| 938 | { | ||
| 939 | SizeInBytes = size; | ||
| 940 | Properties = CD3DX12_HEAP_PROPERTIES( type ); | ||
| 941 | Alignment = alignment; | ||
| 942 | Flags = flags; | ||
| 943 | } | ||
| 944 | CD3DX12_HEAP_DESC( | ||
| 945 | UINT64 size, | ||
| 946 | D3D12_CPU_PAGE_PROPERTY cpuPageProperty, | ||
| 947 | D3D12_MEMORY_POOL memoryPoolPreference, | ||
| 948 | UINT64 alignment = 0, | ||
| 949 | D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept | ||
| 950 | { | ||
| 951 | SizeInBytes = size; | ||
| 952 | Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); | ||
| 953 | Alignment = alignment; | ||
| 954 | Flags = flags; | ||
| 955 | } | ||
| 956 | CD3DX12_HEAP_DESC( | ||
| 957 | const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, | ||
| 958 | D3D12_HEAP_PROPERTIES properties, | ||
| 959 | D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept | ||
| 960 | { | ||
| 961 | SizeInBytes = resAllocInfo.SizeInBytes; | ||
| 962 | Properties = properties; | ||
| 963 | Alignment = resAllocInfo.Alignment; | ||
| 964 | Flags = flags; | ||
| 965 | } | ||
| 966 | CD3DX12_HEAP_DESC( | ||
| 967 | const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, | ||
| 968 | D3D12_HEAP_TYPE type, | ||
| 969 | D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept | ||
| 970 | { | ||
| 971 | SizeInBytes = resAllocInfo.SizeInBytes; | ||
| 972 | Properties = CD3DX12_HEAP_PROPERTIES( type ); | ||
| 973 | Alignment = resAllocInfo.Alignment; | ||
| 974 | Flags = flags; | ||
| 975 | } | ||
| 976 | CD3DX12_HEAP_DESC( | ||
| 977 | const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, | ||
| 978 | D3D12_CPU_PAGE_PROPERTY cpuPageProperty, | ||
| 979 | D3D12_MEMORY_POOL memoryPoolPreference, | ||
| 980 | D3D12_HEAP_FLAGS flags = D3D12_HEAP_FLAG_NONE ) noexcept | ||
| 981 | { | ||
| 982 | SizeInBytes = resAllocInfo.SizeInBytes; | ||
| 983 | Properties = CD3DX12_HEAP_PROPERTIES( cpuPageProperty, memoryPoolPreference ); | ||
| 984 | Alignment = resAllocInfo.Alignment; | ||
| 985 | Flags = flags; | ||
| 986 | } | ||
| 987 | bool IsCPUAccessible() const noexcept | ||
| 988 | { return static_cast< const CD3DX12_HEAP_PROPERTIES* >( &Properties )->IsCPUAccessible(); } | ||
| 989 | }; | ||
| 990 | inline bool operator==( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) noexcept | ||
| 991 | { | ||
| 992 | return l.SizeInBytes == r.SizeInBytes && | ||
| 993 | l.Properties == r.Properties && | ||
| 994 | l.Alignment == r.Alignment && | ||
| 995 | l.Flags == r.Flags; | ||
| 996 | } | ||
| 997 | inline bool operator!=( const D3D12_HEAP_DESC& l, const D3D12_HEAP_DESC& r ) noexcept | ||
| 998 | { return !( l == r ); } | ||
| 999 | |||
| 1000 | //------------------------------------------------------------------------------------------------ | ||
| 1001 | struct CD3DX12_CLEAR_VALUE : public D3D12_CLEAR_VALUE | ||
| 1002 | { | ||
| 1003 | CD3DX12_CLEAR_VALUE() = default; | ||
| 1004 | explicit CD3DX12_CLEAR_VALUE(const D3D12_CLEAR_VALUE &o) noexcept : | ||
| 1005 | D3D12_CLEAR_VALUE(o) | ||
| 1006 | {} | ||
| 1007 | CD3DX12_CLEAR_VALUE( | ||
| 1008 | DXGI_FORMAT format, | ||
| 1009 | const FLOAT color[4] ) noexcept | ||
| 1010 | { | ||
| 1011 | Format = format; | ||
| 1012 | memcpy( Color, color, sizeof( Color ) ); | ||
| 1013 | } | ||
| 1014 | CD3DX12_CLEAR_VALUE( | ||
| 1015 | DXGI_FORMAT format, | ||
| 1016 | FLOAT depth, | ||
| 1017 | UINT8 stencil ) noexcept | ||
| 1018 | { | ||
| 1019 | Format = format; | ||
| 1020 | memset( &Color, 0, sizeof( Color ) ); | ||
| 1021 | /* Use memcpy to preserve NAN values */ | ||
| 1022 | memcpy( &DepthStencil.Depth, &depth, sizeof( depth ) ); | ||
| 1023 | DepthStencil.Stencil = stencil; | ||
| 1024 | } | ||
| 1025 | }; | ||
| 1026 | |||
| 1027 | //------------------------------------------------------------------------------------------------ | ||
| 1028 | inline bool operator==( const D3D12_CLEAR_VALUE &a, const D3D12_CLEAR_VALUE &b) noexcept | ||
| 1029 | { | ||
| 1030 | if (a.Format != b.Format) return false; | ||
| 1031 | if (a.Format == DXGI_FORMAT_D24_UNORM_S8_UINT | ||
| 1032 | || a.Format == DXGI_FORMAT_D16_UNORM | ||
| 1033 | || a.Format == DXGI_FORMAT_D32_FLOAT | ||
| 1034 | || a.Format == DXGI_FORMAT_D32_FLOAT_S8X24_UINT) | ||
| 1035 | { | ||
| 1036 | return (a.DepthStencil.Depth == b.DepthStencil.Depth) && | ||
| 1037 | (a.DepthStencil.Stencil == b.DepthStencil.Stencil); | ||
| 1038 | } else { | ||
| 1039 | return (a.Color[0] == b.Color[0]) && | ||
| 1040 | (a.Color[1] == b.Color[1]) && | ||
| 1041 | (a.Color[2] == b.Color[2]) && | ||
| 1042 | (a.Color[3] == b.Color[3]); | ||
| 1043 | } | ||
| 1044 | } | ||
| 1045 | |||
| 1046 | //------------------------------------------------------------------------------------------------ | ||
| 1047 | struct CD3DX12_RANGE : public D3D12_RANGE | ||
| 1048 | { | ||
| 1049 | CD3DX12_RANGE() = default; | ||
| 1050 | explicit CD3DX12_RANGE(const D3D12_RANGE &o) noexcept : | ||
| 1051 | D3D12_RANGE(o) | ||
| 1052 | {} | ||
| 1053 | CD3DX12_RANGE( | ||
| 1054 | SIZE_T begin, | ||
| 1055 | SIZE_T end ) noexcept | ||
| 1056 | { | ||
| 1057 | Begin = begin; | ||
| 1058 | End = end; | ||
| 1059 | } | ||
| 1060 | }; | ||
| 1061 | |||
| 1062 | //------------------------------------------------------------------------------------------------ | ||
| 1063 | struct CD3DX12_RANGE_UINT64 : public D3D12_RANGE_UINT64 | ||
| 1064 | { | ||
| 1065 | CD3DX12_RANGE_UINT64() = default; | ||
| 1066 | explicit CD3DX12_RANGE_UINT64(const D3D12_RANGE_UINT64 &o) noexcept : | ||
| 1067 | D3D12_RANGE_UINT64(o) | ||
| 1068 | {} | ||
| 1069 | CD3DX12_RANGE_UINT64( | ||
| 1070 | UINT64 begin, | ||
| 1071 | UINT64 end ) noexcept | ||
| 1072 | { | ||
| 1073 | Begin = begin; | ||
| 1074 | End = end; | ||
| 1075 | } | ||
| 1076 | }; | ||
| 1077 | |||
| 1078 | //------------------------------------------------------------------------------------------------ | ||
| 1079 | struct CD3DX12_SUBRESOURCE_RANGE_UINT64 : public D3D12_SUBRESOURCE_RANGE_UINT64 | ||
| 1080 | { | ||
| 1081 | CD3DX12_SUBRESOURCE_RANGE_UINT64() = default; | ||
| 1082 | explicit CD3DX12_SUBRESOURCE_RANGE_UINT64(const D3D12_SUBRESOURCE_RANGE_UINT64 &o) noexcept : | ||
| 1083 | D3D12_SUBRESOURCE_RANGE_UINT64(o) | ||
| 1084 | {} | ||
| 1085 | CD3DX12_SUBRESOURCE_RANGE_UINT64( | ||
| 1086 | UINT subresource, | ||
| 1087 | const D3D12_RANGE_UINT64& range ) noexcept | ||
| 1088 | { | ||
| 1089 | Subresource = subresource; | ||
| 1090 | Range = range; | ||
| 1091 | } | ||
| 1092 | CD3DX12_SUBRESOURCE_RANGE_UINT64( | ||
| 1093 | UINT subresource, | ||
| 1094 | UINT64 begin, | ||
| 1095 | UINT64 end ) noexcept | ||
| 1096 | { | ||
| 1097 | Subresource = subresource; | ||
| 1098 | Range.Begin = begin; | ||
| 1099 | Range.End = end; | ||
| 1100 | } | ||
| 1101 | }; | ||
| 1102 | |||
| 1103 | //------------------------------------------------------------------------------------------------ | ||
| 1104 | struct CD3DX12_SHADER_BYTECODE : public D3D12_SHADER_BYTECODE | ||
| 1105 | { | ||
| 1106 | CD3DX12_SHADER_BYTECODE() = default; | ||
| 1107 | explicit CD3DX12_SHADER_BYTECODE(const D3D12_SHADER_BYTECODE &o) noexcept : | ||
| 1108 | D3D12_SHADER_BYTECODE(o) | ||
| 1109 | {} | ||
| 1110 | CD3DX12_SHADER_BYTECODE( | ||
| 1111 | _In_ ID3DBlob* pShaderBlob ) noexcept | ||
| 1112 | { | ||
| 1113 | pShaderBytecode = pShaderBlob->GetBufferPointer(); | ||
| 1114 | BytecodeLength = pShaderBlob->GetBufferSize(); | ||
| 1115 | } | ||
| 1116 | CD3DX12_SHADER_BYTECODE( | ||
| 1117 | const void* _pShaderBytecode, | ||
| 1118 | SIZE_T bytecodeLength ) noexcept | ||
| 1119 | { | ||
| 1120 | pShaderBytecode = _pShaderBytecode; | ||
| 1121 | BytecodeLength = bytecodeLength; | ||
| 1122 | } | ||
| 1123 | }; | ||
| 1124 | |||
| 1125 | //------------------------------------------------------------------------------------------------ | ||
| 1126 | struct CD3DX12_TILED_RESOURCE_COORDINATE : public D3D12_TILED_RESOURCE_COORDINATE | ||
| 1127 | { | ||
| 1128 | CD3DX12_TILED_RESOURCE_COORDINATE() = default; | ||
| 1129 | explicit CD3DX12_TILED_RESOURCE_COORDINATE(const D3D12_TILED_RESOURCE_COORDINATE &o) noexcept : | ||
| 1130 | D3D12_TILED_RESOURCE_COORDINATE(o) | ||
| 1131 | {} | ||
| 1132 | CD3DX12_TILED_RESOURCE_COORDINATE( | ||
| 1133 | UINT x, | ||
| 1134 | UINT y, | ||
| 1135 | UINT z, | ||
| 1136 | UINT subresource ) noexcept | ||
| 1137 | { | ||
| 1138 | X = x; | ||
| 1139 | Y = y; | ||
| 1140 | Z = z; | ||
| 1141 | Subresource = subresource; | ||
| 1142 | } | ||
| 1143 | }; | ||
| 1144 | |||
| 1145 | //------------------------------------------------------------------------------------------------ | ||
| 1146 | struct CD3DX12_TILE_REGION_SIZE : public D3D12_TILE_REGION_SIZE | ||
| 1147 | { | ||
| 1148 | CD3DX12_TILE_REGION_SIZE() = default; | ||
| 1149 | explicit CD3DX12_TILE_REGION_SIZE(const D3D12_TILE_REGION_SIZE &o) noexcept : | ||
| 1150 | D3D12_TILE_REGION_SIZE(o) | ||
| 1151 | {} | ||
| 1152 | CD3DX12_TILE_REGION_SIZE( | ||
| 1153 | UINT numTiles, | ||
| 1154 | BOOL useBox, | ||
| 1155 | UINT width, | ||
| 1156 | UINT16 height, | ||
| 1157 | UINT16 depth ) noexcept | ||
| 1158 | { | ||
| 1159 | NumTiles = numTiles; | ||
| 1160 | UseBox = useBox; | ||
| 1161 | Width = width; | ||
| 1162 | Height = height; | ||
| 1163 | Depth = depth; | ||
| 1164 | } | ||
| 1165 | }; | ||
| 1166 | |||
| 1167 | //------------------------------------------------------------------------------------------------ | ||
| 1168 | struct CD3DX12_SUBRESOURCE_TILING : public D3D12_SUBRESOURCE_TILING | ||
| 1169 | { | ||
| 1170 | CD3DX12_SUBRESOURCE_TILING() = default; | ||
| 1171 | explicit CD3DX12_SUBRESOURCE_TILING(const D3D12_SUBRESOURCE_TILING &o) noexcept : | ||
| 1172 | D3D12_SUBRESOURCE_TILING(o) | ||
| 1173 | {} | ||
| 1174 | CD3DX12_SUBRESOURCE_TILING( | ||
| 1175 | UINT widthInTiles, | ||
| 1176 | UINT16 heightInTiles, | ||
| 1177 | UINT16 depthInTiles, | ||
| 1178 | UINT startTileIndexInOverallResource ) noexcept | ||
| 1179 | { | ||
| 1180 | WidthInTiles = widthInTiles; | ||
| 1181 | HeightInTiles = heightInTiles; | ||
| 1182 | DepthInTiles = depthInTiles; | ||
| 1183 | StartTileIndexInOverallResource = startTileIndexInOverallResource; | ||
| 1184 | } | ||
| 1185 | }; | ||
| 1186 | |||
| 1187 | //------------------------------------------------------------------------------------------------ | ||
| 1188 | struct CD3DX12_TILE_SHAPE : public D3D12_TILE_SHAPE | ||
| 1189 | { | ||
| 1190 | CD3DX12_TILE_SHAPE() = default; | ||
| 1191 | explicit CD3DX12_TILE_SHAPE(const D3D12_TILE_SHAPE &o) noexcept : | ||
| 1192 | D3D12_TILE_SHAPE(o) | ||
| 1193 | {} | ||
| 1194 | CD3DX12_TILE_SHAPE( | ||
| 1195 | UINT widthInTexels, | ||
| 1196 | UINT heightInTexels, | ||
| 1197 | UINT depthInTexels ) noexcept | ||
| 1198 | { | ||
| 1199 | WidthInTexels = widthInTexels; | ||
| 1200 | HeightInTexels = heightInTexels; | ||
| 1201 | DepthInTexels = depthInTexels; | ||
| 1202 | } | ||
| 1203 | }; | ||
| 1204 | |||
| 1205 | //------------------------------------------------------------------------------------------------ | ||
| 1206 | struct CD3DX12_PACKED_MIP_INFO : public D3D12_PACKED_MIP_INFO | ||
| 1207 | { | ||
| 1208 | CD3DX12_PACKED_MIP_INFO() = default; | ||
| 1209 | explicit CD3DX12_PACKED_MIP_INFO(const D3D12_PACKED_MIP_INFO &o) noexcept : | ||
| 1210 | D3D12_PACKED_MIP_INFO(o) | ||
| 1211 | {} | ||
| 1212 | CD3DX12_PACKED_MIP_INFO( | ||
| 1213 | UINT8 numStandardMips, | ||
| 1214 | UINT8 numPackedMips, | ||
| 1215 | UINT numTilesForPackedMips, | ||
| 1216 | UINT startTileIndexInOverallResource ) noexcept | ||
| 1217 | { | ||
| 1218 | NumStandardMips = numStandardMips; | ||
| 1219 | NumPackedMips = numPackedMips; | ||
| 1220 | NumTilesForPackedMips = numTilesForPackedMips; | ||
| 1221 | StartTileIndexInOverallResource = startTileIndexInOverallResource; | ||
| 1222 | } | ||
| 1223 | }; | ||
| 1224 | |||
| 1225 | //------------------------------------------------------------------------------------------------ | ||
| 1226 | struct CD3DX12_SUBRESOURCE_FOOTPRINT : public D3D12_SUBRESOURCE_FOOTPRINT | ||
| 1227 | { | ||
| 1228 | CD3DX12_SUBRESOURCE_FOOTPRINT() = default; | ||
| 1229 | explicit CD3DX12_SUBRESOURCE_FOOTPRINT(const D3D12_SUBRESOURCE_FOOTPRINT &o) noexcept : | ||
| 1230 | D3D12_SUBRESOURCE_FOOTPRINT(o) | ||
| 1231 | {} | ||
| 1232 | CD3DX12_SUBRESOURCE_FOOTPRINT( | ||
| 1233 | DXGI_FORMAT format, | ||
| 1234 | UINT width, | ||
| 1235 | UINT height, | ||
| 1236 | UINT depth, | ||
| 1237 | UINT rowPitch ) noexcept | ||
| 1238 | { | ||
| 1239 | Format = format; | ||
| 1240 | Width = width; | ||
| 1241 | Height = height; | ||
| 1242 | Depth = depth; | ||
| 1243 | RowPitch = rowPitch; | ||
| 1244 | } | ||
| 1245 | explicit CD3DX12_SUBRESOURCE_FOOTPRINT( | ||
| 1246 | const D3D12_RESOURCE_DESC& resDesc, | ||
| 1247 | UINT rowPitch ) noexcept | ||
| 1248 | { | ||
| 1249 | Format = resDesc.Format; | ||
| 1250 | Width = UINT( resDesc.Width ); | ||
| 1251 | Height = resDesc.Height; | ||
| 1252 | Depth = (resDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? resDesc.DepthOrArraySize : 1u); | ||
| 1253 | RowPitch = rowPitch; | ||
| 1254 | } | ||
| 1255 | }; | ||
| 1256 | |||
| 1257 | //------------------------------------------------------------------------------------------------ | ||
| 1258 | struct CD3DX12_TEXTURE_COPY_LOCATION : public D3D12_TEXTURE_COPY_LOCATION | ||
| 1259 | { | ||
| 1260 | CD3DX12_TEXTURE_COPY_LOCATION() = default; | ||
| 1261 | explicit CD3DX12_TEXTURE_COPY_LOCATION(const D3D12_TEXTURE_COPY_LOCATION &o) noexcept : | ||
| 1262 | D3D12_TEXTURE_COPY_LOCATION(o) | ||
| 1263 | {} | ||
| 1264 | CD3DX12_TEXTURE_COPY_LOCATION(_In_ ID3D12Resource* pRes) noexcept | ||
| 1265 | { | ||
| 1266 | pResource = pRes; | ||
| 1267 | Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; | ||
| 1268 | PlacedFootprint = {}; | ||
| 1269 | } | ||
| 1270 | CD3DX12_TEXTURE_COPY_LOCATION(_In_ ID3D12Resource* pRes, D3D12_PLACED_SUBRESOURCE_FOOTPRINT const& Footprint) noexcept | ||
| 1271 | { | ||
| 1272 | pResource = pRes; | ||
| 1273 | Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; | ||
| 1274 | PlacedFootprint = Footprint; | ||
| 1275 | } | ||
| 1276 | CD3DX12_TEXTURE_COPY_LOCATION(_In_ ID3D12Resource* pRes, UINT Sub) noexcept | ||
| 1277 | { | ||
| 1278 | pResource = pRes; | ||
| 1279 | Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; | ||
| 1280 | PlacedFootprint = {}; | ||
| 1281 | SubresourceIndex = Sub; | ||
| 1282 | } | ||
| 1283 | }; | ||
| 1284 | |||
| 1285 | //------------------------------------------------------------------------------------------------ | ||
| 1286 | constexpr UINT D3D12CalcSubresource( UINT MipSlice, UINT ArraySlice, UINT PlaneSlice, UINT MipLevels, UINT ArraySize ) noexcept | ||
| 1287 | { | ||
| 1288 | return MipSlice + ArraySlice * MipLevels + PlaneSlice * MipLevels * ArraySize; | ||
| 1289 | } | ||
| 1290 | |||
| 1291 | //------------------------------------------------------------------------------------------------ | ||
| 1292 | inline UINT8 D3D12GetFormatPlaneCount( | ||
| 1293 | _In_ ID3D12Device* pDevice, | ||
| 1294 | DXGI_FORMAT Format | ||
| 1295 | ) noexcept | ||
| 1296 | { | ||
| 1297 | D3D12_FEATURE_DATA_FORMAT_INFO formatInfo = { Format, 0 }; | ||
| 1298 | if (FAILED(pDevice->CheckFeatureSupport(D3D12_FEATURE_FORMAT_INFO, &formatInfo, sizeof(formatInfo)))) | ||
| 1299 | { | ||
| 1300 | return 0; | ||
| 1301 | } | ||
| 1302 | return formatInfo.PlaneCount; | ||
| 1303 | } | ||
| 1304 | |||
| 1305 | //------------------------------------------------------------------------------------------------ | ||
| 1306 | struct CD3DX12_RESOURCE_DESC : public D3D12_RESOURCE_DESC | ||
| 1307 | { | ||
| 1308 | CD3DX12_RESOURCE_DESC() = default; | ||
| 1309 | explicit CD3DX12_RESOURCE_DESC( const D3D12_RESOURCE_DESC& o ) noexcept : | ||
| 1310 | D3D12_RESOURCE_DESC( o ) | ||
| 1311 | {} | ||
| 1312 | CD3DX12_RESOURCE_DESC( | ||
| 1313 | D3D12_RESOURCE_DIMENSION dimension, | ||
| 1314 | UINT64 alignment, | ||
| 1315 | UINT64 width, | ||
| 1316 | UINT height, | ||
| 1317 | UINT16 depthOrArraySize, | ||
| 1318 | UINT16 mipLevels, | ||
| 1319 | DXGI_FORMAT format, | ||
| 1320 | UINT sampleCount, | ||
| 1321 | UINT sampleQuality, | ||
| 1322 | D3D12_TEXTURE_LAYOUT layout, | ||
| 1323 | D3D12_RESOURCE_FLAGS flags ) noexcept | ||
| 1324 | { | ||
| 1325 | Dimension = dimension; | ||
| 1326 | Alignment = alignment; | ||
| 1327 | Width = width; | ||
| 1328 | Height = height; | ||
| 1329 | DepthOrArraySize = depthOrArraySize; | ||
| 1330 | MipLevels = mipLevels; | ||
| 1331 | Format = format; | ||
| 1332 | SampleDesc.Count = sampleCount; | ||
| 1333 | SampleDesc.Quality = sampleQuality; | ||
| 1334 | Layout = layout; | ||
| 1335 | Flags = flags; | ||
| 1336 | } | ||
| 1337 | static inline CD3DX12_RESOURCE_DESC Buffer( | ||
| 1338 | const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, | ||
| 1339 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE ) noexcept | ||
| 1340 | { | ||
| 1341 | return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, | ||
| 1342 | 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); | ||
| 1343 | } | ||
| 1344 | static inline CD3DX12_RESOURCE_DESC Buffer( | ||
| 1345 | UINT64 width, | ||
| 1346 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, | ||
| 1347 | UINT64 alignment = 0 ) noexcept | ||
| 1348 | { | ||
| 1349 | return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, | ||
| 1350 | DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags ); | ||
| 1351 | } | ||
| 1352 | static inline CD3DX12_RESOURCE_DESC Tex1D( | ||
| 1353 | DXGI_FORMAT format, | ||
| 1354 | UINT64 width, | ||
| 1355 | UINT16 arraySize = 1, | ||
| 1356 | UINT16 mipLevels = 0, | ||
| 1357 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, | ||
| 1358 | D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, | ||
| 1359 | UINT64 alignment = 0 ) noexcept | ||
| 1360 | { | ||
| 1361 | return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, | ||
| 1362 | mipLevels, format, 1, 0, layout, flags ); | ||
| 1363 | } | ||
| 1364 | static inline CD3DX12_RESOURCE_DESC Tex2D( | ||
| 1365 | DXGI_FORMAT format, | ||
| 1366 | UINT64 width, | ||
| 1367 | UINT height, | ||
| 1368 | UINT16 arraySize = 1, | ||
| 1369 | UINT16 mipLevels = 0, | ||
| 1370 | UINT sampleCount = 1, | ||
| 1371 | UINT sampleQuality = 0, | ||
| 1372 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, | ||
| 1373 | D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, | ||
| 1374 | UINT64 alignment = 0 ) noexcept | ||
| 1375 | { | ||
| 1376 | return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, | ||
| 1377 | mipLevels, format, sampleCount, sampleQuality, layout, flags ); | ||
| 1378 | } | ||
| 1379 | static inline CD3DX12_RESOURCE_DESC Tex3D( | ||
| 1380 | DXGI_FORMAT format, | ||
| 1381 | UINT64 width, | ||
| 1382 | UINT height, | ||
| 1383 | UINT16 depth, | ||
| 1384 | UINT16 mipLevels = 0, | ||
| 1385 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, | ||
| 1386 | D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, | ||
| 1387 | UINT64 alignment = 0 ) noexcept | ||
| 1388 | { | ||
| 1389 | return CD3DX12_RESOURCE_DESC( D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, | ||
| 1390 | mipLevels, format, 1, 0, layout, flags ); | ||
| 1391 | } | ||
| 1392 | inline UINT16 Depth() const noexcept | ||
| 1393 | { return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1u); } | ||
| 1394 | inline UINT16 ArraySize() const noexcept | ||
| 1395 | { return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1u); } | ||
| 1396 | inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const noexcept | ||
| 1397 | { return D3D12GetFormatPlaneCount(pDevice, Format); } | ||
| 1398 | inline UINT Subresources(_In_ ID3D12Device* pDevice) const noexcept | ||
| 1399 | { return static_cast<UINT>(MipLevels) * ArraySize() * PlaneCount(pDevice); } | ||
| 1400 | inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) noexcept | ||
| 1401 | { return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); } | ||
| 1402 | }; | ||
| 1403 | inline bool operator==( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) noexcept | ||
| 1404 | { | ||
| 1405 | return l.Dimension == r.Dimension && | ||
| 1406 | l.Alignment == r.Alignment && | ||
| 1407 | l.Width == r.Width && | ||
| 1408 | l.Height == r.Height && | ||
| 1409 | l.DepthOrArraySize == r.DepthOrArraySize && | ||
| 1410 | l.MipLevels == r.MipLevels && | ||
| 1411 | l.Format == r.Format && | ||
| 1412 | l.SampleDesc.Count == r.SampleDesc.Count && | ||
| 1413 | l.SampleDesc.Quality == r.SampleDesc.Quality && | ||
| 1414 | l.Layout == r.Layout && | ||
| 1415 | l.Flags == r.Flags; | ||
| 1416 | } | ||
| 1417 | inline bool operator!=( const D3D12_RESOURCE_DESC& l, const D3D12_RESOURCE_DESC& r ) noexcept | ||
| 1418 | { return !( l == r ); } | ||
| 1419 | |||
| 1420 | //------------------------------------------------------------------------------------------------ | ||
| 1421 | struct CD3DX12_RESOURCE_DESC1 : public D3D12_RESOURCE_DESC1 | ||
| 1422 | { | ||
| 1423 | CD3DX12_RESOURCE_DESC1() = default; | ||
| 1424 | explicit CD3DX12_RESOURCE_DESC1( const D3D12_RESOURCE_DESC1& o ) noexcept : | ||
| 1425 | D3D12_RESOURCE_DESC1( o ) | ||
| 1426 | {} | ||
| 1427 | explicit CD3DX12_RESOURCE_DESC1( const D3D12_RESOURCE_DESC& o ) noexcept | ||
| 1428 | { | ||
| 1429 | Dimension = o.Dimension; | ||
| 1430 | Alignment = o.Alignment; | ||
| 1431 | Width = o.Width; | ||
| 1432 | Height = o.Height; | ||
| 1433 | DepthOrArraySize = o.DepthOrArraySize; | ||
| 1434 | MipLevels = o.MipLevels; | ||
| 1435 | Format = o.Format; | ||
| 1436 | SampleDesc = o.SampleDesc; | ||
| 1437 | Layout = o.Layout; | ||
| 1438 | Flags = o.Flags; | ||
| 1439 | SamplerFeedbackMipRegion = {}; | ||
| 1440 | } | ||
| 1441 | CD3DX12_RESOURCE_DESC1( | ||
| 1442 | D3D12_RESOURCE_DIMENSION dimension, | ||
| 1443 | UINT64 alignment, | ||
| 1444 | UINT64 width, | ||
| 1445 | UINT height, | ||
| 1446 | UINT16 depthOrArraySize, | ||
| 1447 | UINT16 mipLevels, | ||
| 1448 | DXGI_FORMAT format, | ||
| 1449 | UINT sampleCount, | ||
| 1450 | UINT sampleQuality, | ||
| 1451 | D3D12_TEXTURE_LAYOUT layout, | ||
| 1452 | D3D12_RESOURCE_FLAGS flags, | ||
| 1453 | UINT samplerFeedbackMipRegionWidth = 0, | ||
| 1454 | UINT samplerFeedbackMipRegionHeight = 0, | ||
| 1455 | UINT samplerFeedbackMipRegionDepth = 0) noexcept | ||
| 1456 | { | ||
| 1457 | Dimension = dimension; | ||
| 1458 | Alignment = alignment; | ||
| 1459 | Width = width; | ||
| 1460 | Height = height; | ||
| 1461 | DepthOrArraySize = depthOrArraySize; | ||
| 1462 | MipLevels = mipLevels; | ||
| 1463 | Format = format; | ||
| 1464 | SampleDesc.Count = sampleCount; | ||
| 1465 | SampleDesc.Quality = sampleQuality; | ||
| 1466 | Layout = layout; | ||
| 1467 | Flags = flags; | ||
| 1468 | SamplerFeedbackMipRegion.Width = samplerFeedbackMipRegionWidth; | ||
| 1469 | SamplerFeedbackMipRegion.Height = samplerFeedbackMipRegionHeight; | ||
| 1470 | SamplerFeedbackMipRegion.Depth = samplerFeedbackMipRegionDepth; | ||
| 1471 | } | ||
| 1472 | |||
| 1473 | static inline CD3DX12_RESOURCE_DESC1 Buffer( | ||
| 1474 | const D3D12_RESOURCE_ALLOCATION_INFO& resAllocInfo, | ||
| 1475 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE ) noexcept | ||
| 1476 | { | ||
| 1477 | return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_BUFFER, resAllocInfo.Alignment, resAllocInfo.SizeInBytes, | ||
| 1478 | 1, 1, 1, DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags, 0, 0, 0 ); | ||
| 1479 | } | ||
| 1480 | static inline CD3DX12_RESOURCE_DESC1 Buffer( | ||
| 1481 | UINT64 width, | ||
| 1482 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, | ||
| 1483 | UINT64 alignment = 0 ) noexcept | ||
| 1484 | { | ||
| 1485 | return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_BUFFER, alignment, width, 1, 1, 1, | ||
| 1486 | DXGI_FORMAT_UNKNOWN, 1, 0, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, flags, 0, 0, 0 ); | ||
| 1487 | } | ||
| 1488 | static inline CD3DX12_RESOURCE_DESC1 Tex1D( | ||
| 1489 | DXGI_FORMAT format, | ||
| 1490 | UINT64 width, | ||
| 1491 | UINT16 arraySize = 1, | ||
| 1492 | UINT16 mipLevels = 0, | ||
| 1493 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, | ||
| 1494 | D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, | ||
| 1495 | UINT64 alignment = 0 ) noexcept | ||
| 1496 | { | ||
| 1497 | return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_TEXTURE1D, alignment, width, 1, arraySize, | ||
| 1498 | mipLevels, format, 1, 0, layout, flags, 0, 0, 0 ); | ||
| 1499 | } | ||
| 1500 | static inline CD3DX12_RESOURCE_DESC1 Tex2D( | ||
| 1501 | DXGI_FORMAT format, | ||
| 1502 | UINT64 width, | ||
| 1503 | UINT height, | ||
| 1504 | UINT16 arraySize = 1, | ||
| 1505 | UINT16 mipLevels = 0, | ||
| 1506 | UINT sampleCount = 1, | ||
| 1507 | UINT sampleQuality = 0, | ||
| 1508 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, | ||
| 1509 | D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, | ||
| 1510 | UINT64 alignment = 0, | ||
| 1511 | UINT samplerFeedbackMipRegionWidth = 0, | ||
| 1512 | UINT samplerFeedbackMipRegionHeight = 0, | ||
| 1513 | UINT samplerFeedbackMipRegionDepth = 0) noexcept | ||
| 1514 | { | ||
| 1515 | return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_TEXTURE2D, alignment, width, height, arraySize, | ||
| 1516 | mipLevels, format, sampleCount, sampleQuality, layout, flags, samplerFeedbackMipRegionWidth, | ||
| 1517 | samplerFeedbackMipRegionHeight, samplerFeedbackMipRegionDepth ); | ||
| 1518 | } | ||
| 1519 | static inline CD3DX12_RESOURCE_DESC1 Tex3D( | ||
| 1520 | DXGI_FORMAT format, | ||
| 1521 | UINT64 width, | ||
| 1522 | UINT height, | ||
| 1523 | UINT16 depth, | ||
| 1524 | UINT16 mipLevels = 0, | ||
| 1525 | D3D12_RESOURCE_FLAGS flags = D3D12_RESOURCE_FLAG_NONE, | ||
| 1526 | D3D12_TEXTURE_LAYOUT layout = D3D12_TEXTURE_LAYOUT_UNKNOWN, | ||
| 1527 | UINT64 alignment = 0 ) noexcept | ||
| 1528 | { | ||
| 1529 | return CD3DX12_RESOURCE_DESC1( D3D12_RESOURCE_DIMENSION_TEXTURE3D, alignment, width, height, depth, | ||
| 1530 | mipLevels, format, 1, 0, layout, flags, 0, 0, 0 ); | ||
| 1531 | } | ||
| 1532 | inline UINT16 Depth() const noexcept | ||
| 1533 | { return (Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1u); } | ||
| 1534 | inline UINT16 ArraySize() const noexcept | ||
| 1535 | { return (Dimension != D3D12_RESOURCE_DIMENSION_TEXTURE3D ? DepthOrArraySize : 1u); } | ||
| 1536 | inline UINT8 PlaneCount(_In_ ID3D12Device* pDevice) const noexcept | ||
| 1537 | { return D3D12GetFormatPlaneCount(pDevice, Format); } | ||
| 1538 | inline UINT Subresources(_In_ ID3D12Device* pDevice) const noexcept | ||
| 1539 | { return static_cast<UINT>(MipLevels) * ArraySize() * PlaneCount(pDevice); } | ||
| 1540 | inline UINT CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT PlaneSlice) noexcept | ||
| 1541 | { return D3D12CalcSubresource(MipSlice, ArraySlice, PlaneSlice, MipLevels, ArraySize()); } | ||
| 1542 | }; | ||
| 1543 | inline bool operator==( const D3D12_RESOURCE_DESC1& l, const D3D12_RESOURCE_DESC1& r ) noexcept | ||
| 1544 | { | ||
| 1545 | return l.Dimension == r.Dimension && | ||
| 1546 | l.Alignment == r.Alignment && | ||
| 1547 | l.Width == r.Width && | ||
| 1548 | l.Height == r.Height && | ||
| 1549 | l.DepthOrArraySize == r.DepthOrArraySize && | ||
| 1550 | l.MipLevels == r.MipLevels && | ||
| 1551 | l.Format == r.Format && | ||
| 1552 | l.SampleDesc.Count == r.SampleDesc.Count && | ||
| 1553 | l.SampleDesc.Quality == r.SampleDesc.Quality && | ||
| 1554 | l.Layout == r.Layout && | ||
| 1555 | l.Flags == r.Flags && | ||
| 1556 | l.SamplerFeedbackMipRegion.Width == r.SamplerFeedbackMipRegion.Width && | ||
| 1557 | l.SamplerFeedbackMipRegion.Height == r.SamplerFeedbackMipRegion.Height && | ||
| 1558 | l.SamplerFeedbackMipRegion.Depth == r.SamplerFeedbackMipRegion.Depth; | ||
| 1559 | } | ||
| 1560 | inline bool operator!=( const D3D12_RESOURCE_DESC1& l, const D3D12_RESOURCE_DESC1& r ) noexcept | ||
| 1561 | { return !( l == r ); } | ||
| 1562 | |||
| 1563 | //------------------------------------------------------------------------------------------------ | ||
| 1564 | // Fills in the mipmap and alignment values of pDesc when either members are zero | ||
| 1565 | // Used to replace an implicit field to an explicit (0 mip map = max mip map level) | ||
| 1566 | // If expansion has occured, returns LclDesc, else returns the original pDesc | ||
| 1567 | inline const CD3DX12_RESOURCE_DESC1* D3DX12ConditionallyExpandAPIDesc( | ||
| 1568 | CD3DX12_RESOURCE_DESC1& LclDesc, | ||
| 1569 | const CD3DX12_RESOURCE_DESC1* pDesc, | ||
| 1570 | const bool tightAlignmentSupported = false, | ||
| 1571 | const bool alignAsCommitted = false) | ||
| 1572 | { | ||
| 1573 | // Expand mip levels: | ||
| 1574 | if (pDesc->MipLevels == 0 || pDesc->Alignment == 0) | ||
| 1575 | { | ||
| 1576 | LclDesc = *pDesc; | ||
| 1577 | if (pDesc->MipLevels == 0) | ||
| 1578 | { | ||
| 1579 | auto MaxMipLevels = [](UINT64 uiMaxDimension) -> UINT16 | ||
| 1580 | { | ||
| 1581 | UINT16 uiRet = 0; | ||
| 1582 | while (uiMaxDimension > 0) | ||
| 1583 | { | ||
| 1584 | uiRet++; | ||
| 1585 | uiMaxDimension >>= 1; | ||
| 1586 | } | ||
| 1587 | return uiRet; | ||
| 1588 | }; | ||
| 1589 | auto Max = [](UINT64 const& a, UINT64 const& b) | ||
| 1590 | { | ||
| 1591 | return (a < b) ? b : a; | ||
| 1592 | }; | ||
| 1593 | |||
| 1594 | LclDesc.MipLevels = MaxMipLevels( | ||
| 1595 | Max(LclDesc.Dimension == D3D12_RESOURCE_DIMENSION_TEXTURE3D ? LclDesc.DepthOrArraySize : 1, | ||
| 1596 | Max(LclDesc.Width, LclDesc.Height))); | ||
| 1597 | } | ||
| 1598 | if (pDesc->Alignment == 0) | ||
| 1599 | { | ||
| 1600 | if (pDesc->Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE | ||
| 1601 | || pDesc->Layout == D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE | ||
| 1602 | ) | ||
| 1603 | { | ||
| 1604 | LclDesc.Alignment = D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT; | ||
| 1605 | } | ||
| 1606 | else if (!(tightAlignmentSupported && (pDesc->Flags & D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT)) | ||
| 1607 | || (pDesc->Flags & D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER)) | ||
| 1608 | { | ||
| 1609 | LclDesc.Alignment = | ||
| 1610 | (pDesc->SampleDesc.Count > 1 ? D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT : D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT); | ||
| 1611 | } | ||
| 1612 | else | ||
| 1613 | { | ||
| 1614 | // Tight alignment is supported and we aren't a cross adapter resource, now just need to set the alignment field to the minimum alignment for each type | ||
| 1615 | if(alignAsCommitted) | ||
| 1616 | LclDesc.Alignment = D3D12_TIGHT_ALIGNMENT_MIN_COMMITTED_RESOURCE_ALIGNMENT; | ||
| 1617 | else | ||
| 1618 | LclDesc.Alignment = D3D12_TIGHT_ALIGNMENT_MIN_PLACED_RESOURCE_ALIGNMENT; | ||
| 1619 | } | ||
| 1620 | } | ||
| 1621 | return &LclDesc; | ||
| 1622 | } | ||
| 1623 | else | ||
| 1624 | { | ||
| 1625 | return pDesc; | ||
| 1626 | } | ||
| 1627 | } | ||
| 1628 | |||
| 1629 | |||
| 1630 | //------------------------------------------------------------------------------------------------ | ||
| 1631 | struct CD3DX12_SHADER_RESOURCE_VIEW_DESC : public D3D12_SHADER_RESOURCE_VIEW_DESC | ||
| 1632 | { | ||
| 1633 | CD3DX12_SHADER_RESOURCE_VIEW_DESC() = default; | ||
| 1634 | explicit CD3DX12_SHADER_RESOURCE_VIEW_DESC( const D3D12_SHADER_RESOURCE_VIEW_DESC& o ) noexcept : | ||
| 1635 | D3D12_SHADER_RESOURCE_VIEW_DESC(o) | ||
| 1636 | {} | ||
| 1637 | |||
| 1638 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC StructuredBuffer( | ||
| 1639 | UINT NumElements, | ||
| 1640 | UINT StructureByteStride, | ||
| 1641 | UINT64 FirstElement = 0) noexcept | ||
| 1642 | { | ||
| 1643 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1644 | desc.Format = DXGI_FORMAT_UNKNOWN; | ||
| 1645 | desc.ViewDimension = D3D12_SRV_DIMENSION_BUFFER; | ||
| 1646 | desc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; | ||
| 1647 | desc.Buffer.FirstElement = FirstElement; | ||
| 1648 | desc.Buffer.NumElements = NumElements; | ||
| 1649 | desc.Buffer.StructureByteStride = StructureByteStride; | ||
| 1650 | desc.Buffer.Flags = D3D12_BUFFER_SRV_FLAG_NONE; | ||
| 1651 | return desc; | ||
| 1652 | } | ||
| 1653 | |||
| 1654 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC RawBuffer( | ||
| 1655 | UINT NumElements, | ||
| 1656 | UINT64 FirstElement = 0) noexcept | ||
| 1657 | { | ||
| 1658 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1659 | desc.Format = DXGI_FORMAT_R32_UINT; | ||
| 1660 | desc.ViewDimension = D3D12_SRV_DIMENSION_BUFFER; | ||
| 1661 | desc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; | ||
| 1662 | desc.Buffer.FirstElement = FirstElement; | ||
| 1663 | desc.Buffer.NumElements = NumElements; | ||
| 1664 | desc.Buffer.StructureByteStride = 0; | ||
| 1665 | desc.Buffer.Flags = D3D12_BUFFER_SRV_FLAG_RAW; | ||
| 1666 | return desc; | ||
| 1667 | } | ||
| 1668 | |||
| 1669 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC TypedBuffer( | ||
| 1670 | DXGI_FORMAT Format, | ||
| 1671 | UINT NumElements, | ||
| 1672 | UINT64 FirstElement = 0, | ||
| 1673 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1674 | { | ||
| 1675 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1676 | desc.Format = Format; | ||
| 1677 | desc.ViewDimension = D3D12_SRV_DIMENSION_BUFFER; | ||
| 1678 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1679 | desc.Buffer.FirstElement = FirstElement; | ||
| 1680 | desc.Buffer.NumElements = NumElements; | ||
| 1681 | desc.Buffer.StructureByteStride = 0; | ||
| 1682 | desc.Buffer.Flags = D3D12_BUFFER_SRV_FLAG_NONE; | ||
| 1683 | return desc; | ||
| 1684 | } | ||
| 1685 | |||
| 1686 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC Tex1D( | ||
| 1687 | DXGI_FORMAT Format, | ||
| 1688 | UINT MipLevels = -1, | ||
| 1689 | UINT MostDetailedMip = 0, | ||
| 1690 | FLOAT ResourceMinLODClamp = 0.0f, | ||
| 1691 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1692 | { | ||
| 1693 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1694 | desc.Format = Format; | ||
| 1695 | desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE1D; | ||
| 1696 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1697 | desc.Texture1D.MostDetailedMip = MostDetailedMip; | ||
| 1698 | desc.Texture1D.MipLevels = MipLevels; | ||
| 1699 | desc.Texture1D.ResourceMinLODClamp = ResourceMinLODClamp; | ||
| 1700 | return desc; | ||
| 1701 | } | ||
| 1702 | |||
| 1703 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC Tex1DArray( | ||
| 1704 | DXGI_FORMAT Format, | ||
| 1705 | UINT ArraySize = -1, | ||
| 1706 | UINT MipLevels = -1, | ||
| 1707 | UINT FirstArraySlice = 0, | ||
| 1708 | UINT MostDetailedMip = 0, | ||
| 1709 | FLOAT ResourceMinLODClamp = 0.0f, | ||
| 1710 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1711 | { | ||
| 1712 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1713 | desc.Format = Format; | ||
| 1714 | desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE1DARRAY; | ||
| 1715 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1716 | desc.Texture1DArray.MostDetailedMip = MostDetailedMip; | ||
| 1717 | desc.Texture1DArray.MipLevels = MipLevels; | ||
| 1718 | desc.Texture1DArray.FirstArraySlice = FirstArraySlice; | ||
| 1719 | desc.Texture1DArray.ArraySize = ArraySize; | ||
| 1720 | desc.Texture1DArray.ResourceMinLODClamp = ResourceMinLODClamp; | ||
| 1721 | return desc; | ||
| 1722 | } | ||
| 1723 | |||
| 1724 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC Tex2D( | ||
| 1725 | DXGI_FORMAT Format, | ||
| 1726 | UINT MipLevels = -1, | ||
| 1727 | UINT MostDetailedMip = 0, | ||
| 1728 | UINT PlaneSlice = 0, | ||
| 1729 | FLOAT ResourceMinLODClamp = 0.0f, | ||
| 1730 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1731 | { | ||
| 1732 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1733 | desc.Format = Format; | ||
| 1734 | desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; | ||
| 1735 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1736 | desc.Texture2D.MostDetailedMip = MostDetailedMip; | ||
| 1737 | desc.Texture2D.MipLevels = MipLevels; | ||
| 1738 | desc.Texture2D.PlaneSlice = PlaneSlice; | ||
| 1739 | desc.Texture2D.ResourceMinLODClamp = ResourceMinLODClamp; | ||
| 1740 | return desc; | ||
| 1741 | } | ||
| 1742 | |||
| 1743 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC Tex2DArray( | ||
| 1744 | DXGI_FORMAT Format, | ||
| 1745 | UINT ArraySize = -1, | ||
| 1746 | UINT MipLevels = -1, | ||
| 1747 | UINT FirstArraySlice = 0, | ||
| 1748 | UINT MostDetailedMip = 0, | ||
| 1749 | UINT PlaneSlice = 0, | ||
| 1750 | FLOAT ResourceMinLODClamp = 0.0f, | ||
| 1751 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1752 | { | ||
| 1753 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1754 | desc.Format = Format; | ||
| 1755 | desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2DARRAY; | ||
| 1756 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1757 | desc.Texture2DArray.MostDetailedMip = MostDetailedMip; | ||
| 1758 | desc.Texture2DArray.MipLevels = MipLevels; | ||
| 1759 | desc.Texture2DArray.FirstArraySlice = FirstArraySlice; | ||
| 1760 | desc.Texture2DArray.ArraySize = ArraySize; | ||
| 1761 | desc.Texture2DArray.PlaneSlice = PlaneSlice; | ||
| 1762 | desc.Texture2DArray.ResourceMinLODClamp = ResourceMinLODClamp; | ||
| 1763 | return desc; | ||
| 1764 | } | ||
| 1765 | |||
| 1766 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC Tex2DMS( | ||
| 1767 | DXGI_FORMAT Format, | ||
| 1768 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1769 | { | ||
| 1770 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1771 | desc.Format = Format; | ||
| 1772 | desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2DMS; | ||
| 1773 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1774 | // desc.Texture2DMS.UnusedField_NothingToDefine = 0; | ||
| 1775 | return desc; | ||
| 1776 | } | ||
| 1777 | |||
| 1778 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC Tex2DMSArray( | ||
| 1779 | DXGI_FORMAT Format, | ||
| 1780 | UINT ArraySize, | ||
| 1781 | UINT FirstArraySlice = 0, | ||
| 1782 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1783 | { | ||
| 1784 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1785 | desc.Format = Format; | ||
| 1786 | desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY; | ||
| 1787 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1788 | desc.Texture2DMSArray.ArraySize = ArraySize; | ||
| 1789 | desc.Texture2DMSArray.FirstArraySlice = FirstArraySlice; | ||
| 1790 | return desc; | ||
| 1791 | } | ||
| 1792 | |||
| 1793 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC Tex3D( | ||
| 1794 | DXGI_FORMAT Format, | ||
| 1795 | UINT MipLevels = -1, | ||
| 1796 | UINT MostDetailedMip = 0, | ||
| 1797 | FLOAT ResourceMinLODClamp = 0.0f, | ||
| 1798 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1799 | { | ||
| 1800 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1801 | desc.Format = Format; | ||
| 1802 | desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE3D; | ||
| 1803 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1804 | desc.Texture3D.MostDetailedMip = MostDetailedMip; | ||
| 1805 | desc.Texture3D.MipLevels = MipLevels; | ||
| 1806 | desc.Texture3D.ResourceMinLODClamp = ResourceMinLODClamp; | ||
| 1807 | return desc; | ||
| 1808 | } | ||
| 1809 | |||
| 1810 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC TexCube( | ||
| 1811 | DXGI_FORMAT Format, | ||
| 1812 | UINT MipLevels = -1, | ||
| 1813 | UINT MostDetailedMip = 0, | ||
| 1814 | FLOAT ResourceMinLODClamp = 0.0f, | ||
| 1815 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1816 | { | ||
| 1817 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1818 | desc.Format = Format; | ||
| 1819 | desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURECUBE; | ||
| 1820 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1821 | desc.TextureCube.MostDetailedMip = MostDetailedMip; | ||
| 1822 | desc.TextureCube.MipLevels = MipLevels; | ||
| 1823 | desc.TextureCube.ResourceMinLODClamp = ResourceMinLODClamp; | ||
| 1824 | return desc; | ||
| 1825 | } | ||
| 1826 | |||
| 1827 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC TexCubeArray( | ||
| 1828 | DXGI_FORMAT Format, | ||
| 1829 | UINT NumCubes, | ||
| 1830 | UINT MipLevels = -1, | ||
| 1831 | UINT First2DArrayFace = 0, | ||
| 1832 | UINT MostDetailedMip = 0, | ||
| 1833 | FLOAT ResourceMinLODClamp = 0.0f, | ||
| 1834 | UINT Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING) noexcept | ||
| 1835 | { | ||
| 1836 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1837 | desc.Format = Format; | ||
| 1838 | desc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURECUBEARRAY; | ||
| 1839 | desc.Shader4ComponentMapping = Shader4ComponentMapping; | ||
| 1840 | desc.TextureCubeArray.NumCubes = NumCubes; | ||
| 1841 | desc.TextureCubeArray.MostDetailedMip = MostDetailedMip; | ||
| 1842 | desc.TextureCubeArray.MipLevels = MipLevels; | ||
| 1843 | desc.TextureCubeArray.First2DArrayFace = First2DArrayFace; | ||
| 1844 | desc.TextureCubeArray.ResourceMinLODClamp = ResourceMinLODClamp; | ||
| 1845 | return desc; | ||
| 1846 | } | ||
| 1847 | |||
| 1848 | static inline CD3DX12_SHADER_RESOURCE_VIEW_DESC RaytracingAccelStruct( | ||
| 1849 | D3D12_GPU_VIRTUAL_ADDRESS Location) noexcept | ||
| 1850 | { | ||
| 1851 | CD3DX12_SHADER_RESOURCE_VIEW_DESC desc; | ||
| 1852 | desc.Format = DXGI_FORMAT_UNKNOWN; | ||
| 1853 | desc.ViewDimension = D3D12_SRV_DIMENSION_RAYTRACING_ACCELERATION_STRUCTURE; | ||
| 1854 | desc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; | ||
| 1855 | desc.RaytracingAccelerationStructure.Location = Location; | ||
| 1856 | return desc; | ||
| 1857 | } | ||
| 1858 | }; | ||
| 1859 | |||
| 1860 | //------------------------------------------------------------------------------------------------ | ||
| 1861 | struct CD3DX12_UNORDERED_ACCESS_VIEW_DESC : public D3D12_UNORDERED_ACCESS_VIEW_DESC | ||
| 1862 | { | ||
| 1863 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC() = default; | ||
| 1864 | explicit CD3DX12_UNORDERED_ACCESS_VIEW_DESC( const D3D12_UNORDERED_ACCESS_VIEW_DESC& o ) noexcept : | ||
| 1865 | D3D12_UNORDERED_ACCESS_VIEW_DESC(o) | ||
| 1866 | {} | ||
| 1867 | |||
| 1868 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC StructuredBuffer( | ||
| 1869 | UINT NumElements, | ||
| 1870 | UINT StructureByteStride, | ||
| 1871 | UINT64 FirstElement = 0, | ||
| 1872 | UINT64 CounterOffsetInBytes = 0) noexcept | ||
| 1873 | { | ||
| 1874 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 1875 | desc.Format = DXGI_FORMAT_UNKNOWN; | ||
| 1876 | desc.ViewDimension = D3D12_UAV_DIMENSION_BUFFER; | ||
| 1877 | desc.Buffer.FirstElement = FirstElement; | ||
| 1878 | desc.Buffer.NumElements = NumElements; | ||
| 1879 | desc.Buffer.StructureByteStride = StructureByteStride; | ||
| 1880 | desc.Buffer.Flags = D3D12_BUFFER_UAV_FLAG_NONE; | ||
| 1881 | desc.Buffer.CounterOffsetInBytes = CounterOffsetInBytes; | ||
| 1882 | return desc; | ||
| 1883 | } | ||
| 1884 | |||
| 1885 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC RawBuffer( | ||
| 1886 | UINT NumElements, | ||
| 1887 | UINT64 FirstElement = 0, | ||
| 1888 | UINT64 CounterOffsetInBytes = 0) noexcept | ||
| 1889 | { | ||
| 1890 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 1891 | desc.Format = DXGI_FORMAT_R32_UINT; | ||
| 1892 | desc.ViewDimension = D3D12_UAV_DIMENSION_BUFFER; | ||
| 1893 | desc.Buffer.FirstElement = FirstElement; | ||
| 1894 | desc.Buffer.NumElements = NumElements; | ||
| 1895 | desc.Buffer.StructureByteStride = 0; | ||
| 1896 | desc.Buffer.Flags = D3D12_BUFFER_UAV_FLAG_RAW; | ||
| 1897 | desc.Buffer.CounterOffsetInBytes = CounterOffsetInBytes; | ||
| 1898 | return desc; | ||
| 1899 | } | ||
| 1900 | |||
| 1901 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC TypedBuffer( | ||
| 1902 | DXGI_FORMAT Format, | ||
| 1903 | UINT NumElements, | ||
| 1904 | UINT64 FirstElement = 0, | ||
| 1905 | UINT64 CounterOffsetInBytes = 0) noexcept | ||
| 1906 | { | ||
| 1907 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 1908 | desc.Format = Format; | ||
| 1909 | desc.ViewDimension = D3D12_UAV_DIMENSION_BUFFER; | ||
| 1910 | desc.Buffer.FirstElement = FirstElement; | ||
| 1911 | desc.Buffer.NumElements = NumElements; | ||
| 1912 | desc.Buffer.StructureByteStride = 0; | ||
| 1913 | desc.Buffer.Flags = D3D12_BUFFER_UAV_FLAG_NONE; | ||
| 1914 | desc.Buffer.CounterOffsetInBytes = CounterOffsetInBytes; | ||
| 1915 | return desc; | ||
| 1916 | } | ||
| 1917 | |||
| 1918 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC Tex1D( | ||
| 1919 | DXGI_FORMAT Format, | ||
| 1920 | UINT MipSlice = 0) noexcept | ||
| 1921 | { | ||
| 1922 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 1923 | desc.Format = Format; | ||
| 1924 | desc.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE1D; | ||
| 1925 | desc.Texture1D.MipSlice = MipSlice; | ||
| 1926 | return desc; | ||
| 1927 | } | ||
| 1928 | |||
| 1929 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC Tex1DArray( | ||
| 1930 | DXGI_FORMAT Format, | ||
| 1931 | UINT ArraySize = -1, | ||
| 1932 | UINT FirstArraySlice = 0, | ||
| 1933 | UINT MipSlice = 0) noexcept | ||
| 1934 | { | ||
| 1935 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 1936 | desc.Format = Format; | ||
| 1937 | desc.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE1DARRAY; | ||
| 1938 | desc.Texture1DArray.MipSlice = MipSlice; | ||
| 1939 | desc.Texture1DArray.FirstArraySlice = FirstArraySlice; | ||
| 1940 | desc.Texture1DArray.ArraySize = ArraySize; | ||
| 1941 | return desc; | ||
| 1942 | } | ||
| 1943 | |||
| 1944 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC Tex2D( | ||
| 1945 | DXGI_FORMAT Format, | ||
| 1946 | UINT MipSlice = 0, | ||
| 1947 | UINT PlaneSlice = 0) noexcept | ||
| 1948 | { | ||
| 1949 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 1950 | desc.Format = Format; | ||
| 1951 | desc.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE2D; | ||
| 1952 | desc.Texture2D.MipSlice = MipSlice; | ||
| 1953 | desc.Texture2D.PlaneSlice = PlaneSlice; | ||
| 1954 | return desc; | ||
| 1955 | } | ||
| 1956 | |||
| 1957 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC Tex2DArray( | ||
| 1958 | DXGI_FORMAT Format, | ||
| 1959 | UINT ArraySize = -1, | ||
| 1960 | UINT FirstArraySlice = 0, | ||
| 1961 | UINT MipSlice = 0, | ||
| 1962 | UINT PlaneSlice = 0) noexcept | ||
| 1963 | { | ||
| 1964 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 1965 | desc.Format = Format; | ||
| 1966 | desc.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE2DARRAY; | ||
| 1967 | desc.Texture2DArray.MipSlice = MipSlice; | ||
| 1968 | desc.Texture2DArray.FirstArraySlice = FirstArraySlice; | ||
| 1969 | desc.Texture2DArray.ArraySize = ArraySize; | ||
| 1970 | desc.Texture2DArray.PlaneSlice = PlaneSlice; | ||
| 1971 | return desc; | ||
| 1972 | } | ||
| 1973 | |||
| 1974 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC Tex2DMS( | ||
| 1975 | DXGI_FORMAT Format) noexcept | ||
| 1976 | { | ||
| 1977 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 1978 | desc.Format = Format; | ||
| 1979 | desc.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE2DMS; | ||
| 1980 | //desc.Texture2DMS.UnusedField_NothingToDefine = 0; | ||
| 1981 | return desc; | ||
| 1982 | } | ||
| 1983 | |||
| 1984 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC Tex2DMSArray( | ||
| 1985 | DXGI_FORMAT Format, | ||
| 1986 | UINT ArraySize = -1, | ||
| 1987 | UINT FirstArraySlice = 0) noexcept | ||
| 1988 | { | ||
| 1989 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 1990 | desc.Format = Format; | ||
| 1991 | desc.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE2DMSARRAY; | ||
| 1992 | desc.Texture2DMSArray.FirstArraySlice = FirstArraySlice; | ||
| 1993 | desc.Texture2DMSArray.ArraySize = ArraySize; | ||
| 1994 | return desc; | ||
| 1995 | } | ||
| 1996 | |||
| 1997 | static inline CD3DX12_UNORDERED_ACCESS_VIEW_DESC Tex3D( | ||
| 1998 | DXGI_FORMAT Format, | ||
| 1999 | UINT WSize = -1, | ||
| 2000 | UINT FirstWSlice = 0, | ||
| 2001 | UINT MipSlice = 0) noexcept | ||
| 2002 | { | ||
| 2003 | CD3DX12_UNORDERED_ACCESS_VIEW_DESC desc; | ||
| 2004 | desc.Format = Format; | ||
| 2005 | desc.ViewDimension = D3D12_UAV_DIMENSION_TEXTURE3D; | ||
| 2006 | desc.Texture3D.MipSlice = MipSlice; | ||
| 2007 | desc.Texture3D.FirstWSlice = FirstWSlice; | ||
| 2008 | desc.Texture3D.WSize = WSize; | ||
| 2009 | return desc; | ||
| 2010 | } | ||
| 2011 | }; | ||
| 2012 | |||
| 2013 | //------------------------------------------------------------------------------------------------ | ||
| 2014 | struct CD3DX12_VIEW_INSTANCING_DESC : public D3D12_VIEW_INSTANCING_DESC | ||
| 2015 | { | ||
| 2016 | CD3DX12_VIEW_INSTANCING_DESC() = default; | ||
| 2017 | explicit CD3DX12_VIEW_INSTANCING_DESC( const D3D12_VIEW_INSTANCING_DESC& o ) noexcept : | ||
| 2018 | D3D12_VIEW_INSTANCING_DESC( o ) | ||
| 2019 | {} | ||
| 2020 | explicit CD3DX12_VIEW_INSTANCING_DESC( CD3DX12_DEFAULT ) noexcept | ||
| 2021 | { | ||
| 2022 | ViewInstanceCount = 0; | ||
| 2023 | pViewInstanceLocations = nullptr; | ||
| 2024 | Flags = D3D12_VIEW_INSTANCING_FLAG_NONE; | ||
| 2025 | } | ||
| 2026 | explicit CD3DX12_VIEW_INSTANCING_DESC( | ||
| 2027 | UINT InViewInstanceCount, | ||
| 2028 | const D3D12_VIEW_INSTANCE_LOCATION* InViewInstanceLocations, | ||
| 2029 | D3D12_VIEW_INSTANCING_FLAGS InFlags) noexcept | ||
| 2030 | { | ||
| 2031 | ViewInstanceCount = InViewInstanceCount; | ||
| 2032 | pViewInstanceLocations = InViewInstanceLocations; | ||
| 2033 | Flags = InFlags; | ||
| 2034 | } | ||
| 2035 | }; | ||
| 2036 | |||
| 2037 | //------------------------------------------------------------------------------------------------ | ||
| 2038 | struct CD3DX12_RT_FORMAT_ARRAY : public D3D12_RT_FORMAT_ARRAY | ||
| 2039 | { | ||
| 2040 | CD3DX12_RT_FORMAT_ARRAY() = default; | ||
| 2041 | explicit CD3DX12_RT_FORMAT_ARRAY(const D3D12_RT_FORMAT_ARRAY& o) noexcept | ||
| 2042 | : D3D12_RT_FORMAT_ARRAY(o) | ||
| 2043 | {} | ||
| 2044 | explicit CD3DX12_RT_FORMAT_ARRAY(_In_reads_(NumFormats) const DXGI_FORMAT* pFormats, UINT NumFormats) noexcept | ||
| 2045 | { | ||
| 2046 | NumRenderTargets = NumFormats; | ||
| 2047 | memcpy(RTFormats, pFormats, sizeof(RTFormats)); | ||
| 2048 | // assumes ARRAY_SIZE(pFormats) == ARRAY_SIZE(RTFormats) | ||
| 2049 | } | ||
| 2050 | }; | ||
| 2051 | |||
| 2052 | //------------------------------------------------------------------------------------------------ | ||
| 2053 | struct CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC : public D3D12_SERIALIZED_ROOT_SIGNATURE_DESC | ||
| 2054 | { | ||
| 2055 | CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC() = default; | ||
| 2056 | explicit CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC(const D3D12_SERIALIZED_ROOT_SIGNATURE_DESC& o) noexcept : | ||
| 2057 | D3D12_SERIALIZED_ROOT_SIGNATURE_DESC(o) | ||
| 2058 | { | ||
| 2059 | } | ||
| 2060 | explicit CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC( CD3DX12_DEFAULT ) noexcept | ||
| 2061 | { | ||
| 2062 | pSerializedBlob = nullptr; | ||
| 2063 | SerializedBlobSizeInBytes = 0; | ||
| 2064 | } | ||
| 2065 | explicit CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC( const void* pData, SIZE_T size) noexcept | ||
| 2066 | { | ||
| 2067 | pSerializedBlob = pData; | ||
| 2068 | SerializedBlobSizeInBytes = size; | ||
| 2069 | } | ||
| 2070 | }; | ||
| 2071 | |||
| 2072 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_default.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_default.h new file mode 100644 index 0000000..2b74d70 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_default.h | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #pragma once | ||
| 9 | |||
| 10 | struct CD3DX12_DEFAULT {}; | ||
| 11 | extern const DECLSPEC_SELECTANY CD3DX12_DEFAULT D3D12_DEFAULT; | ||
| 12 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_pipeline_state_stream.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_pipeline_state_stream.h new file mode 100644 index 0000000..456583b --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_pipeline_state_stream.h | |||
| @@ -0,0 +1,1718 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #pragma once | ||
| 9 | |||
| 10 | #ifndef __cplusplus | ||
| 11 | #error D3DX12 requires C++ | ||
| 12 | #endif | ||
| 13 | |||
| 14 | #include "d3dx12_default.h" | ||
| 15 | #include "d3d12.h" | ||
| 16 | #include "d3dx12_core.h" | ||
| 17 | |||
| 18 | //------------------------------------------------------------------------------------------------ | ||
| 19 | // Pipeline State Stream Helpers | ||
| 20 | //------------------------------------------------------------------------------------------------ | ||
| 21 | |||
| 22 | //------------------------------------------------------------------------------------------------ | ||
| 23 | // Stream Subobjects, i.e. elements of a stream | ||
| 24 | |||
| 25 | struct DefaultSampleMask { operator UINT() noexcept { return UINT_MAX; } }; | ||
| 26 | struct DefaultSampleDesc { operator DXGI_SAMPLE_DESC() noexcept { return DXGI_SAMPLE_DESC{1, 0}; } }; | ||
| 27 | |||
| 28 | #ifdef _MSC_VER | ||
| 29 | #pragma warning(push) | ||
| 30 | #pragma warning(disable : 4324) | ||
| 31 | #endif | ||
| 32 | template <typename InnerStructType, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE Type, typename DefaultArg = InnerStructType> | ||
| 33 | class alignas(void*) CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT | ||
| 34 | { | ||
| 35 | private: | ||
| 36 | D3D12_PIPELINE_STATE_SUBOBJECT_TYPE pssType; | ||
| 37 | InnerStructType pssInner; | ||
| 38 | public: | ||
| 39 | CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT() noexcept : pssType(Type), pssInner(DefaultArg()) {} | ||
| 40 | CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT(InnerStructType const& i) noexcept : pssType(Type), pssInner(i) {} | ||
| 41 | CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT& operator=(InnerStructType const& i) noexcept { pssType = Type; pssInner = i; return *this; } | ||
| 42 | operator InnerStructType const&() const noexcept { return pssInner; } | ||
| 43 | operator InnerStructType&() noexcept { return pssInner; } | ||
| 44 | InnerStructType* operator&() noexcept { return &pssInner; } | ||
| 45 | InnerStructType const* operator&() const noexcept { return &pssInner; } | ||
| 46 | }; | ||
| 47 | #ifdef _MSC_VER | ||
| 48 | #pragma warning(pop) | ||
| 49 | #endif | ||
| 50 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_PIPELINE_STATE_FLAGS, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS> CD3DX12_PIPELINE_STATE_STREAM_FLAGS; | ||
| 51 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< UINT, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK> CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK; | ||
| 52 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< ID3D12RootSignature*, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE> CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE; | ||
| 53 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_INPUT_LAYOUT_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT> CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT; | ||
| 54 | 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; | ||
| 55 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_PRIMITIVE_TOPOLOGY_TYPE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY> CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY; | ||
| 56 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS> CD3DX12_PIPELINE_STATE_STREAM_VS; | ||
| 57 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS> CD3DX12_PIPELINE_STATE_STREAM_GS; | ||
| 58 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_STREAM_OUTPUT_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT> CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT; | ||
| 59 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS> CD3DX12_PIPELINE_STATE_STREAM_HS; | ||
| 60 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS> CD3DX12_PIPELINE_STATE_STREAM_DS; | ||
| 61 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS> CD3DX12_PIPELINE_STATE_STREAM_PS; | ||
| 62 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS> CD3DX12_PIPELINE_STATE_STREAM_AS; | ||
| 63 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS> CD3DX12_PIPELINE_STATE_STREAM_MS; | ||
| 64 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_SHADER_BYTECODE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS> CD3DX12_PIPELINE_STATE_STREAM_CS; | ||
| 65 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_BLEND_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC; | ||
| 66 | 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; | ||
| 67 | 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; | ||
| 68 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 69 | 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; | ||
| 70 | #endif | ||
| 71 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< DXGI_FORMAT, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT> CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT; | ||
| 72 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_RASTERIZER_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER; | ||
| 73 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 74 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_RASTERIZER_DESC1, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER1; | ||
| 75 | #endif | ||
| 76 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 77 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< CD3DX12_RASTERIZER_DESC2, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2, CD3DX12_DEFAULT> CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER2; | ||
| 78 | #endif | ||
| 79 | 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; | ||
| 80 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< DXGI_SAMPLE_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC, DefaultSampleDesc> CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC; | ||
| 81 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< UINT, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK, DefaultSampleMask> CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK; | ||
| 82 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT< D3D12_CACHED_PIPELINE_STATE, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO> CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO; | ||
| 83 | 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; | ||
| 84 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 618) | ||
| 85 | typedef CD3DX12_PIPELINE_STATE_STREAM_SUBOBJECT<CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC, D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE> CD3DX12_PIPELINE_STATE_STREAM_SERIALIZED_ROOT_SIGNATURE; | ||
| 86 | #endif | ||
| 87 | |||
| 88 | //------------------------------------------------------------------------------------------------ | ||
| 89 | // Stream Parser Helpers | ||
| 90 | |||
| 91 | struct ID3DX12PipelineParserCallbacks | ||
| 92 | { | ||
| 93 | // Subobject Callbacks | ||
| 94 | virtual void FlagsCb(D3D12_PIPELINE_STATE_FLAGS) {} | ||
| 95 | virtual void NodeMaskCb(UINT) {} | ||
| 96 | virtual void RootSignatureCb(ID3D12RootSignature*) {} | ||
| 97 | virtual void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC&) {} | ||
| 98 | virtual void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE) {} | ||
| 99 | virtual void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE) {} | ||
| 100 | virtual void VSCb(const D3D12_SHADER_BYTECODE&) {} | ||
| 101 | virtual void GSCb(const D3D12_SHADER_BYTECODE&) {} | ||
| 102 | virtual void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC&) {} | ||
| 103 | virtual void HSCb(const D3D12_SHADER_BYTECODE&) {} | ||
| 104 | virtual void DSCb(const D3D12_SHADER_BYTECODE&) {} | ||
| 105 | virtual void PSCb(const D3D12_SHADER_BYTECODE&) {} | ||
| 106 | virtual void CSCb(const D3D12_SHADER_BYTECODE&) {} | ||
| 107 | virtual void ASCb(const D3D12_SHADER_BYTECODE&) {} | ||
| 108 | virtual void MSCb(const D3D12_SHADER_BYTECODE&) {} | ||
| 109 | virtual void BlendStateCb(const D3D12_BLEND_DESC&) {} | ||
| 110 | virtual void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC&) {} | ||
| 111 | virtual void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1&) {} | ||
| 112 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 113 | virtual void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2&) {} | ||
| 114 | #endif | ||
| 115 | virtual void DSVFormatCb(DXGI_FORMAT) {} | ||
| 116 | virtual void RasterizerStateCb(const D3D12_RASTERIZER_DESC&) {} | ||
| 117 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 118 | virtual void RasterizerState1Cb(const D3D12_RASTERIZER_DESC1&) {} | ||
| 119 | #endif | ||
| 120 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 121 | virtual void RasterizerState2Cb(const D3D12_RASTERIZER_DESC2&) {} | ||
| 122 | #endif | ||
| 123 | virtual void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY&) {} | ||
| 124 | virtual void SampleDescCb(const DXGI_SAMPLE_DESC&) {} | ||
| 125 | virtual void SampleMaskCb(UINT) {} | ||
| 126 | virtual void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC&) {} | ||
| 127 | virtual void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE&) {} | ||
| 128 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 618) | ||
| 129 | virtual void SerializedRootSignatureCb(const D3D12_SERIALIZED_ROOT_SIGNATURE_DESC&) {} | ||
| 130 | #endif | ||
| 131 | |||
| 132 | // Error Callbacks | ||
| 133 | virtual void ErrorBadInputParameter(UINT /*ParameterIndex*/) {} | ||
| 134 | virtual void ErrorDuplicateSubobject(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE /*DuplicateType*/) {} | ||
| 135 | virtual void ErrorUnknownSubobject(UINT /*UnknownTypeValue*/) {} | ||
| 136 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 613) | ||
| 137 | virtual void FinalizeCb() {} | ||
| 138 | #endif | ||
| 139 | |||
| 140 | virtual ~ID3DX12PipelineParserCallbacks() = default; | ||
| 141 | }; | ||
| 142 | |||
| 143 | struct D3DX12_MESH_SHADER_PIPELINE_STATE_DESC | ||
| 144 | { | ||
| 145 | ID3D12RootSignature* pRootSignature; | ||
| 146 | D3D12_SHADER_BYTECODE AS; | ||
| 147 | D3D12_SHADER_BYTECODE MS; | ||
| 148 | D3D12_SHADER_BYTECODE PS; | ||
| 149 | D3D12_BLEND_DESC BlendState; | ||
| 150 | UINT SampleMask; | ||
| 151 | D3D12_RASTERIZER_DESC RasterizerState; | ||
| 152 | D3D12_DEPTH_STENCIL_DESC DepthStencilState; | ||
| 153 | D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType; | ||
| 154 | UINT NumRenderTargets; | ||
| 155 | DXGI_FORMAT RTVFormats[ D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT ]; | ||
| 156 | DXGI_FORMAT DSVFormat; | ||
| 157 | DXGI_SAMPLE_DESC SampleDesc; | ||
| 158 | UINT NodeMask; | ||
| 159 | D3D12_CACHED_PIPELINE_STATE CachedPSO; | ||
| 160 | D3D12_PIPELINE_STATE_FLAGS Flags; | ||
| 161 | }; | ||
| 162 | |||
| 163 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 618) | ||
| 164 | struct CD3DX12_PIPELINE_STATE_STREAM6 | ||
| 165 | { | ||
| 166 | CD3DX12_PIPELINE_STATE_STREAM6() = default; | ||
| 167 | // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC | ||
| 168 | CD3DX12_PIPELINE_STATE_STREAM6(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 169 | : Flags(Desc.Flags) | ||
| 170 | , NodeMask(Desc.NodeMask) | ||
| 171 | , pRootSignature(Desc.pRootSignature) | ||
| 172 | , InputLayout(Desc.InputLayout) | ||
| 173 | , IBStripCutValue(Desc.IBStripCutValue) | ||
| 174 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 175 | , VS(Desc.VS) | ||
| 176 | , GS(Desc.GS) | ||
| 177 | , StreamOutput(Desc.StreamOutput) | ||
| 178 | , HS(Desc.HS) | ||
| 179 | , DS(Desc.DS) | ||
| 180 | , PS(Desc.PS) | ||
| 181 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 182 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) | ||
| 183 | , DSVFormat(Desc.DSVFormat) | ||
| 184 | , RasterizerState(CD3DX12_RASTERIZER_DESC2(Desc.RasterizerState)) | ||
| 185 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 186 | , SampleDesc(Desc.SampleDesc) | ||
| 187 | , SampleMask(Desc.SampleMask) | ||
| 188 | , CachedPSO(Desc.CachedPSO) | ||
| 189 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 190 | , SerializedRootSignature(CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT())) | ||
| 191 | { | ||
| 192 | } | ||
| 193 | CD3DX12_PIPELINE_STATE_STREAM6(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 194 | : Flags(Desc.Flags) | ||
| 195 | , NodeMask(Desc.NodeMask) | ||
| 196 | , pRootSignature(Desc.pRootSignature) | ||
| 197 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 198 | , PS(Desc.PS) | ||
| 199 | , AS(Desc.AS) | ||
| 200 | , MS(Desc.MS) | ||
| 201 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 202 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) | ||
| 203 | , DSVFormat(Desc.DSVFormat) | ||
| 204 | , RasterizerState(CD3DX12_RASTERIZER_DESC2(Desc.RasterizerState)) | ||
| 205 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 206 | , SampleDesc(Desc.SampleDesc) | ||
| 207 | , SampleMask(Desc.SampleMask) | ||
| 208 | , CachedPSO(Desc.CachedPSO) | ||
| 209 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 210 | , SerializedRootSignature(CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT())) | ||
| 211 | { | ||
| 212 | } | ||
| 213 | CD3DX12_PIPELINE_STATE_STREAM6(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 214 | : Flags(Desc.Flags) | ||
| 215 | , NodeMask(Desc.NodeMask) | ||
| 216 | , pRootSignature(Desc.pRootSignature) | ||
| 217 | , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) | ||
| 218 | , CachedPSO(Desc.CachedPSO) | ||
| 219 | , SerializedRootSignature(CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT())) | ||
| 220 | { | ||
| 221 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(DepthStencilState).DepthEnable = false; | ||
| 222 | } | ||
| 223 | CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; | ||
| 224 | CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; | ||
| 225 | CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; | ||
| 226 | CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; | ||
| 227 | CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; | ||
| 228 | CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; | ||
| 229 | CD3DX12_PIPELINE_STATE_STREAM_VS VS; | ||
| 230 | CD3DX12_PIPELINE_STATE_STREAM_GS GS; | ||
| 231 | CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; | ||
| 232 | CD3DX12_PIPELINE_STATE_STREAM_HS HS; | ||
| 233 | CD3DX12_PIPELINE_STATE_STREAM_DS DS; | ||
| 234 | CD3DX12_PIPELINE_STATE_STREAM_PS PS; | ||
| 235 | CD3DX12_PIPELINE_STATE_STREAM_AS AS; | ||
| 236 | CD3DX12_PIPELINE_STATE_STREAM_MS MS; | ||
| 237 | CD3DX12_PIPELINE_STATE_STREAM_CS CS; | ||
| 238 | CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; | ||
| 239 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL2 DepthStencilState; | ||
| 240 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; | ||
| 241 | CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER2 RasterizerState; | ||
| 242 | CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; | ||
| 243 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; | ||
| 244 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; | ||
| 245 | CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; | ||
| 246 | CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; | ||
| 247 | CD3DX12_PIPELINE_STATE_STREAM_SERIALIZED_ROOT_SIGNATURE SerializedRootSignature; | ||
| 248 | |||
| 249 | D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept | ||
| 250 | { | ||
| 251 | D3D12_GRAPHICS_PIPELINE_STATE_DESC D; | ||
| 252 | D.Flags = this->Flags; | ||
| 253 | D.NodeMask = this->NodeMask; | ||
| 254 | D.pRootSignature = this->pRootSignature; | ||
| 255 | D.InputLayout = this->InputLayout; | ||
| 256 | D.IBStripCutValue = this->IBStripCutValue; | ||
| 257 | D.PrimitiveTopologyType = this->PrimitiveTopologyType; | ||
| 258 | D.VS = this->VS; | ||
| 259 | D.GS = this->GS; | ||
| 260 | D.StreamOutput = this->StreamOutput; | ||
| 261 | D.HS = this->HS; | ||
| 262 | D.DS = this->DS; | ||
| 263 | D.PS = this->PS; | ||
| 264 | D.BlendState = this->BlendState; | ||
| 265 | D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEPTH_STENCIL_DESC2(this->DepthStencilState)); | ||
| 266 | D.DSVFormat = this->DSVFormat; | ||
| 267 | D.RasterizerState = CD3DX12_RASTERIZER_DESC2(D3D12_RASTERIZER_DESC2(this->RasterizerState)); | ||
| 268 | D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; | ||
| 269 | memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); | ||
| 270 | D.SampleDesc = this->SampleDesc; | ||
| 271 | D.SampleMask = this->SampleMask; | ||
| 272 | D.CachedPSO = this->CachedPSO; | ||
| 273 | return D; | ||
| 274 | } | ||
| 275 | D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept | ||
| 276 | { | ||
| 277 | D3D12_COMPUTE_PIPELINE_STATE_DESC D; | ||
| 278 | D.Flags = this->Flags; | ||
| 279 | D.NodeMask = this->NodeMask; | ||
| 280 | D.pRootSignature = this->pRootSignature; | ||
| 281 | D.CS = this->CS; | ||
| 282 | D.CachedPSO = this->CachedPSO; | ||
| 283 | return D; | ||
| 284 | } | ||
| 285 | }; | ||
| 286 | #endif | ||
| 287 | |||
| 288 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 289 | // Use CD3DX12_PIPELINE_STATE_STREAM5 for D3D12_RASTERIZER_DESC2 when CheckFeatureSupport returns true for Options19::RasterizerDesc2Supported is true | ||
| 290 | // Use CD3DX12_PIPELINE_STATE_STREAM4 for D3D12_RASTERIZER_DESC1 when CheckFeatureSupport returns true for Options16::DynamicDepthBiasSupported is true | ||
| 291 | // Use CD3DX12_PIPELINE_STATE_STREAM3 for D3D12_DEPTH_STENCIL_DESC2 when CheckFeatureSupport returns true for Options14::IndependentFrontAndBackStencilSupported is true | ||
| 292 | // Use CD3DX12_PIPELINE_STATE_STREAM2 for OS Build 19041+ (where there is a new mesh shader pipeline). | ||
| 293 | // Use CD3DX12_PIPELINE_STATE_STREAM1 for OS Build 16299+ (where there is a new view instancing subobject). | ||
| 294 | // Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. | ||
| 295 | struct CD3DX12_PIPELINE_STATE_STREAM5 | ||
| 296 | { | ||
| 297 | CD3DX12_PIPELINE_STATE_STREAM5() = default; | ||
| 298 | // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC | ||
| 299 | CD3DX12_PIPELINE_STATE_STREAM5(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 300 | : Flags(Desc.Flags) | ||
| 301 | , NodeMask(Desc.NodeMask) | ||
| 302 | , pRootSignature(Desc.pRootSignature) | ||
| 303 | , InputLayout(Desc.InputLayout) | ||
| 304 | , IBStripCutValue(Desc.IBStripCutValue) | ||
| 305 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 306 | , VS(Desc.VS) | ||
| 307 | , GS(Desc.GS) | ||
| 308 | , StreamOutput(Desc.StreamOutput) | ||
| 309 | , HS(Desc.HS) | ||
| 310 | , DS(Desc.DS) | ||
| 311 | , PS(Desc.PS) | ||
| 312 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 313 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) | ||
| 314 | , DSVFormat(Desc.DSVFormat) | ||
| 315 | , RasterizerState(CD3DX12_RASTERIZER_DESC2(Desc.RasterizerState)) | ||
| 316 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 317 | , SampleDesc(Desc.SampleDesc) | ||
| 318 | , SampleMask(Desc.SampleMask) | ||
| 319 | , CachedPSO(Desc.CachedPSO) | ||
| 320 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 321 | {} | ||
| 322 | CD3DX12_PIPELINE_STATE_STREAM5(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 323 | : Flags(Desc.Flags) | ||
| 324 | , NodeMask(Desc.NodeMask) | ||
| 325 | , pRootSignature(Desc.pRootSignature) | ||
| 326 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 327 | , PS(Desc.PS) | ||
| 328 | , AS(Desc.AS) | ||
| 329 | , MS(Desc.MS) | ||
| 330 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 331 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) | ||
| 332 | , DSVFormat(Desc.DSVFormat) | ||
| 333 | , RasterizerState(CD3DX12_RASTERIZER_DESC2(Desc.RasterizerState)) | ||
| 334 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 335 | , SampleDesc(Desc.SampleDesc) | ||
| 336 | , SampleMask(Desc.SampleMask) | ||
| 337 | , CachedPSO(Desc.CachedPSO) | ||
| 338 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 339 | {} | ||
| 340 | CD3DX12_PIPELINE_STATE_STREAM5(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 341 | : Flags(Desc.Flags) | ||
| 342 | , NodeMask(Desc.NodeMask) | ||
| 343 | , pRootSignature(Desc.pRootSignature) | ||
| 344 | , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) | ||
| 345 | , CachedPSO(Desc.CachedPSO) | ||
| 346 | { | ||
| 347 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(DepthStencilState).DepthEnable = false; | ||
| 348 | } | ||
| 349 | CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; | ||
| 350 | CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; | ||
| 351 | CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; | ||
| 352 | CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; | ||
| 353 | CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; | ||
| 354 | CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; | ||
| 355 | CD3DX12_PIPELINE_STATE_STREAM_VS VS; | ||
| 356 | CD3DX12_PIPELINE_STATE_STREAM_GS GS; | ||
| 357 | CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; | ||
| 358 | CD3DX12_PIPELINE_STATE_STREAM_HS HS; | ||
| 359 | CD3DX12_PIPELINE_STATE_STREAM_DS DS; | ||
| 360 | CD3DX12_PIPELINE_STATE_STREAM_PS PS; | ||
| 361 | CD3DX12_PIPELINE_STATE_STREAM_AS AS; | ||
| 362 | CD3DX12_PIPELINE_STATE_STREAM_MS MS; | ||
| 363 | CD3DX12_PIPELINE_STATE_STREAM_CS CS; | ||
| 364 | CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; | ||
| 365 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL2 DepthStencilState; | ||
| 366 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; | ||
| 367 | CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER2 RasterizerState; | ||
| 368 | CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; | ||
| 369 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; | ||
| 370 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; | ||
| 371 | CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; | ||
| 372 | CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; | ||
| 373 | |||
| 374 | D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept | ||
| 375 | { | ||
| 376 | D3D12_GRAPHICS_PIPELINE_STATE_DESC D; | ||
| 377 | D.Flags = this->Flags; | ||
| 378 | D.NodeMask = this->NodeMask; | ||
| 379 | D.pRootSignature = this->pRootSignature; | ||
| 380 | D.InputLayout = this->InputLayout; | ||
| 381 | D.IBStripCutValue = this->IBStripCutValue; | ||
| 382 | D.PrimitiveTopologyType = this->PrimitiveTopologyType; | ||
| 383 | D.VS = this->VS; | ||
| 384 | D.GS = this->GS; | ||
| 385 | D.StreamOutput = this->StreamOutput; | ||
| 386 | D.HS = this->HS; | ||
| 387 | D.DS = this->DS; | ||
| 388 | D.PS = this->PS; | ||
| 389 | D.BlendState = this->BlendState; | ||
| 390 | D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEPTH_STENCIL_DESC2(this->DepthStencilState)); | ||
| 391 | D.DSVFormat = this->DSVFormat; | ||
| 392 | D.RasterizerState = CD3DX12_RASTERIZER_DESC2(D3D12_RASTERIZER_DESC2(this->RasterizerState)); | ||
| 393 | D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; | ||
| 394 | memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); | ||
| 395 | D.SampleDesc = this->SampleDesc; | ||
| 396 | D.SampleMask = this->SampleMask; | ||
| 397 | D.CachedPSO = this->CachedPSO; | ||
| 398 | return D; | ||
| 399 | } | ||
| 400 | D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept | ||
| 401 | { | ||
| 402 | D3D12_COMPUTE_PIPELINE_STATE_DESC D; | ||
| 403 | D.Flags = this->Flags; | ||
| 404 | D.NodeMask = this->NodeMask; | ||
| 405 | D.pRootSignature = this->pRootSignature; | ||
| 406 | D.CS = this->CS; | ||
| 407 | D.CachedPSO = this->CachedPSO; | ||
| 408 | return D; | ||
| 409 | } | ||
| 410 | }; | ||
| 411 | #endif // D3D12_SDK_VERSION >= 610 | ||
| 412 | |||
| 413 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 414 | // Use CD3DX12_PIPELINE_STATE_STREAM4 for D3D12_RASTERIZER_DESC1 when CheckFeatureSupport returns true for Options16::DynamicDepthBiasSupported is true | ||
| 415 | // Use CD3DX12_PIPELINE_STATE_STREAM3 for D3D12_DEPTH_STENCIL_DESC2 when CheckFeatureSupport returns true for Options14::IndependentFrontAndBackStencilSupported is true | ||
| 416 | // Use CD3DX12_PIPELINE_STATE_STREAM2 for OS Build 19041+ (where there is a new mesh shader pipeline). | ||
| 417 | // Use CD3DX12_PIPELINE_STATE_STREAM1 for OS Build 16299+ (where there is a new view instancing subobject). | ||
| 418 | // Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. | ||
| 419 | struct CD3DX12_PIPELINE_STATE_STREAM4 | ||
| 420 | { | ||
| 421 | CD3DX12_PIPELINE_STATE_STREAM4() = default; | ||
| 422 | // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC | ||
| 423 | CD3DX12_PIPELINE_STATE_STREAM4(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 424 | : Flags(Desc.Flags) | ||
| 425 | , NodeMask(Desc.NodeMask) | ||
| 426 | , pRootSignature(Desc.pRootSignature) | ||
| 427 | , InputLayout(Desc.InputLayout) | ||
| 428 | , IBStripCutValue(Desc.IBStripCutValue) | ||
| 429 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 430 | , VS(Desc.VS) | ||
| 431 | , GS(Desc.GS) | ||
| 432 | , StreamOutput(Desc.StreamOutput) | ||
| 433 | , HS(Desc.HS) | ||
| 434 | , DS(Desc.DS) | ||
| 435 | , PS(Desc.PS) | ||
| 436 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 437 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) | ||
| 438 | , DSVFormat(Desc.DSVFormat) | ||
| 439 | , RasterizerState(CD3DX12_RASTERIZER_DESC1(Desc.RasterizerState)) | ||
| 440 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 441 | , SampleDesc(Desc.SampleDesc) | ||
| 442 | , SampleMask(Desc.SampleMask) | ||
| 443 | , CachedPSO(Desc.CachedPSO) | ||
| 444 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 445 | {} | ||
| 446 | CD3DX12_PIPELINE_STATE_STREAM4(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 447 | : Flags(Desc.Flags) | ||
| 448 | , NodeMask(Desc.NodeMask) | ||
| 449 | , pRootSignature(Desc.pRootSignature) | ||
| 450 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 451 | , PS(Desc.PS) | ||
| 452 | , AS(Desc.AS) | ||
| 453 | , MS(Desc.MS) | ||
| 454 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 455 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) | ||
| 456 | , DSVFormat(Desc.DSVFormat) | ||
| 457 | , RasterizerState(CD3DX12_RASTERIZER_DESC1(Desc.RasterizerState)) | ||
| 458 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 459 | , SampleDesc(Desc.SampleDesc) | ||
| 460 | , SampleMask(Desc.SampleMask) | ||
| 461 | , CachedPSO(Desc.CachedPSO) | ||
| 462 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 463 | {} | ||
| 464 | CD3DX12_PIPELINE_STATE_STREAM4(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 465 | : Flags(Desc.Flags) | ||
| 466 | , NodeMask(Desc.NodeMask) | ||
| 467 | , pRootSignature(Desc.pRootSignature) | ||
| 468 | , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) | ||
| 469 | , CachedPSO(Desc.CachedPSO) | ||
| 470 | { | ||
| 471 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(DepthStencilState).DepthEnable = false; | ||
| 472 | } | ||
| 473 | CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; | ||
| 474 | CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; | ||
| 475 | CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; | ||
| 476 | CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; | ||
| 477 | CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; | ||
| 478 | CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; | ||
| 479 | CD3DX12_PIPELINE_STATE_STREAM_VS VS; | ||
| 480 | CD3DX12_PIPELINE_STATE_STREAM_GS GS; | ||
| 481 | CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; | ||
| 482 | CD3DX12_PIPELINE_STATE_STREAM_HS HS; | ||
| 483 | CD3DX12_PIPELINE_STATE_STREAM_DS DS; | ||
| 484 | CD3DX12_PIPELINE_STATE_STREAM_PS PS; | ||
| 485 | CD3DX12_PIPELINE_STATE_STREAM_AS AS; | ||
| 486 | CD3DX12_PIPELINE_STATE_STREAM_MS MS; | ||
| 487 | CD3DX12_PIPELINE_STATE_STREAM_CS CS; | ||
| 488 | CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; | ||
| 489 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL2 DepthStencilState; | ||
| 490 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; | ||
| 491 | CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER1 RasterizerState; | ||
| 492 | CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; | ||
| 493 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; | ||
| 494 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; | ||
| 495 | CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; | ||
| 496 | CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; | ||
| 497 | |||
| 498 | D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept | ||
| 499 | { | ||
| 500 | D3D12_GRAPHICS_PIPELINE_STATE_DESC D; | ||
| 501 | D.Flags = this->Flags; | ||
| 502 | D.NodeMask = this->NodeMask; | ||
| 503 | D.pRootSignature = this->pRootSignature; | ||
| 504 | D.InputLayout = this->InputLayout; | ||
| 505 | D.IBStripCutValue = this->IBStripCutValue; | ||
| 506 | D.PrimitiveTopologyType = this->PrimitiveTopologyType; | ||
| 507 | D.VS = this->VS; | ||
| 508 | D.GS = this->GS; | ||
| 509 | D.StreamOutput = this->StreamOutput; | ||
| 510 | D.HS = this->HS; | ||
| 511 | D.DS = this->DS; | ||
| 512 | D.PS = this->PS; | ||
| 513 | D.BlendState = this->BlendState; | ||
| 514 | D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEPTH_STENCIL_DESC2(this->DepthStencilState)); | ||
| 515 | D.DSVFormat = this->DSVFormat; | ||
| 516 | D.RasterizerState = CD3DX12_RASTERIZER_DESC1(D3D12_RASTERIZER_DESC1(this->RasterizerState)); | ||
| 517 | D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; | ||
| 518 | memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); | ||
| 519 | D.SampleDesc = this->SampleDesc; | ||
| 520 | D.SampleMask = this->SampleMask; | ||
| 521 | D.CachedPSO = this->CachedPSO; | ||
| 522 | return D; | ||
| 523 | } | ||
| 524 | D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept | ||
| 525 | { | ||
| 526 | D3D12_COMPUTE_PIPELINE_STATE_DESC D; | ||
| 527 | D.Flags = this->Flags; | ||
| 528 | D.NodeMask = this->NodeMask; | ||
| 529 | D.pRootSignature = this->pRootSignature; | ||
| 530 | D.CS = this->CS; | ||
| 531 | D.CachedPSO = this->CachedPSO; | ||
| 532 | return D; | ||
| 533 | } | ||
| 534 | }; | ||
| 535 | #endif // D3D12_SDK_VERSION >= 608 | ||
| 536 | |||
| 537 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 538 | // Use CD3DX12_PIPELINE_STATE_STREAM3 for D3D12_DEPTH_STENCIL_DESC2 when CheckFeatureSupport returns true for Options14::IndependentFrontAndBackStencilSupported is true | ||
| 539 | // Use CD3DX12_PIPELINE_STATE_STREAM2 for OS Build 19041+ (where there is a new mesh shader pipeline). | ||
| 540 | // Use CD3DX12_PIPELINE_STATE_STREAM1 for OS Build 16299+ (where there is a new view instancing subobject). | ||
| 541 | // Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. | ||
| 542 | struct CD3DX12_PIPELINE_STATE_STREAM3 | ||
| 543 | { | ||
| 544 | CD3DX12_PIPELINE_STATE_STREAM3() = default; | ||
| 545 | // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC | ||
| 546 | CD3DX12_PIPELINE_STATE_STREAM3(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 547 | : Flags(Desc.Flags) | ||
| 548 | , NodeMask(Desc.NodeMask) | ||
| 549 | , pRootSignature(Desc.pRootSignature) | ||
| 550 | , InputLayout(Desc.InputLayout) | ||
| 551 | , IBStripCutValue(Desc.IBStripCutValue) | ||
| 552 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 553 | , VS(Desc.VS) | ||
| 554 | , GS(Desc.GS) | ||
| 555 | , StreamOutput(Desc.StreamOutput) | ||
| 556 | , HS(Desc.HS) | ||
| 557 | , DS(Desc.DS) | ||
| 558 | , PS(Desc.PS) | ||
| 559 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 560 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) | ||
| 561 | , DSVFormat(Desc.DSVFormat) | ||
| 562 | , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) | ||
| 563 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 564 | , SampleDesc(Desc.SampleDesc) | ||
| 565 | , SampleMask(Desc.SampleMask) | ||
| 566 | , CachedPSO(Desc.CachedPSO) | ||
| 567 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 568 | {} | ||
| 569 | CD3DX12_PIPELINE_STATE_STREAM3(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 570 | : Flags(Desc.Flags) | ||
| 571 | , NodeMask(Desc.NodeMask) | ||
| 572 | , pRootSignature(Desc.pRootSignature) | ||
| 573 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 574 | , PS(Desc.PS) | ||
| 575 | , AS(Desc.AS) | ||
| 576 | , MS(Desc.MS) | ||
| 577 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 578 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC2(Desc.DepthStencilState)) | ||
| 579 | , DSVFormat(Desc.DSVFormat) | ||
| 580 | , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) | ||
| 581 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 582 | , SampleDesc(Desc.SampleDesc) | ||
| 583 | , SampleMask(Desc.SampleMask) | ||
| 584 | , CachedPSO(Desc.CachedPSO) | ||
| 585 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 586 | {} | ||
| 587 | CD3DX12_PIPELINE_STATE_STREAM3(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 588 | : Flags(Desc.Flags) | ||
| 589 | , NodeMask(Desc.NodeMask) | ||
| 590 | , pRootSignature(Desc.pRootSignature) | ||
| 591 | , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) | ||
| 592 | , CachedPSO(Desc.CachedPSO) | ||
| 593 | { | ||
| 594 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(DepthStencilState).DepthEnable = false; | ||
| 595 | } | ||
| 596 | CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; | ||
| 597 | CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; | ||
| 598 | CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; | ||
| 599 | CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; | ||
| 600 | CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; | ||
| 601 | CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; | ||
| 602 | CD3DX12_PIPELINE_STATE_STREAM_VS VS; | ||
| 603 | CD3DX12_PIPELINE_STATE_STREAM_GS GS; | ||
| 604 | CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; | ||
| 605 | CD3DX12_PIPELINE_STATE_STREAM_HS HS; | ||
| 606 | CD3DX12_PIPELINE_STATE_STREAM_DS DS; | ||
| 607 | CD3DX12_PIPELINE_STATE_STREAM_PS PS; | ||
| 608 | CD3DX12_PIPELINE_STATE_STREAM_AS AS; | ||
| 609 | CD3DX12_PIPELINE_STATE_STREAM_MS MS; | ||
| 610 | CD3DX12_PIPELINE_STATE_STREAM_CS CS; | ||
| 611 | CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; | ||
| 612 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL2 DepthStencilState; | ||
| 613 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; | ||
| 614 | CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; | ||
| 615 | CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; | ||
| 616 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; | ||
| 617 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; | ||
| 618 | CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; | ||
| 619 | CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; | ||
| 620 | |||
| 621 | D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept | ||
| 622 | { | ||
| 623 | D3D12_GRAPHICS_PIPELINE_STATE_DESC D; | ||
| 624 | D.Flags = this->Flags; | ||
| 625 | D.NodeMask = this->NodeMask; | ||
| 626 | D.pRootSignature = this->pRootSignature; | ||
| 627 | D.InputLayout = this->InputLayout; | ||
| 628 | D.IBStripCutValue = this->IBStripCutValue; | ||
| 629 | D.PrimitiveTopologyType = this->PrimitiveTopologyType; | ||
| 630 | D.VS = this->VS; | ||
| 631 | D.GS = this->GS; | ||
| 632 | D.StreamOutput = this->StreamOutput; | ||
| 633 | D.HS = this->HS; | ||
| 634 | D.DS = this->DS; | ||
| 635 | D.PS = this->PS; | ||
| 636 | D.BlendState = this->BlendState; | ||
| 637 | D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEPTH_STENCIL_DESC2(this->DepthStencilState)); | ||
| 638 | D.DSVFormat = this->DSVFormat; | ||
| 639 | D.RasterizerState = this->RasterizerState; | ||
| 640 | D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; | ||
| 641 | memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); | ||
| 642 | D.SampleDesc = this->SampleDesc; | ||
| 643 | D.SampleMask = this->SampleMask; | ||
| 644 | D.CachedPSO = this->CachedPSO; | ||
| 645 | return D; | ||
| 646 | } | ||
| 647 | D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept | ||
| 648 | { | ||
| 649 | D3D12_COMPUTE_PIPELINE_STATE_DESC D; | ||
| 650 | D.Flags = this->Flags; | ||
| 651 | D.NodeMask = this->NodeMask; | ||
| 652 | D.pRootSignature = this->pRootSignature; | ||
| 653 | D.CS = this->CS; | ||
| 654 | D.CachedPSO = this->CachedPSO; | ||
| 655 | return D; | ||
| 656 | } | ||
| 657 | }; | ||
| 658 | #endif // D3D12_SDK_VERSION >= 606 | ||
| 659 | |||
| 660 | // CD3DX12_PIPELINE_STATE_STREAM2 Works on OS Build 19041+ (where there is a new mesh shader pipeline). | ||
| 661 | // Use CD3DX12_PIPELINE_STATE_STREAM1 for OS Build 16299+ (where there is a new view instancing subobject). | ||
| 662 | // Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. | ||
| 663 | struct CD3DX12_PIPELINE_STATE_STREAM2 | ||
| 664 | { | ||
| 665 | CD3DX12_PIPELINE_STATE_STREAM2() = default; | ||
| 666 | // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC | ||
| 667 | CD3DX12_PIPELINE_STATE_STREAM2(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 668 | : Flags(Desc.Flags) | ||
| 669 | , NodeMask(Desc.NodeMask) | ||
| 670 | , pRootSignature(Desc.pRootSignature) | ||
| 671 | , InputLayout(Desc.InputLayout) | ||
| 672 | , IBStripCutValue(Desc.IBStripCutValue) | ||
| 673 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 674 | , VS(Desc.VS) | ||
| 675 | , GS(Desc.GS) | ||
| 676 | , StreamOutput(Desc.StreamOutput) | ||
| 677 | , HS(Desc.HS) | ||
| 678 | , DS(Desc.DS) | ||
| 679 | , PS(Desc.PS) | ||
| 680 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 681 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) | ||
| 682 | , DSVFormat(Desc.DSVFormat) | ||
| 683 | , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) | ||
| 684 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 685 | , SampleDesc(Desc.SampleDesc) | ||
| 686 | , SampleMask(Desc.SampleMask) | ||
| 687 | , CachedPSO(Desc.CachedPSO) | ||
| 688 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 689 | {} | ||
| 690 | CD3DX12_PIPELINE_STATE_STREAM2(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 691 | : Flags(Desc.Flags) | ||
| 692 | , NodeMask(Desc.NodeMask) | ||
| 693 | , pRootSignature(Desc.pRootSignature) | ||
| 694 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 695 | , PS(Desc.PS) | ||
| 696 | , AS(Desc.AS) | ||
| 697 | , MS(Desc.MS) | ||
| 698 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 699 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) | ||
| 700 | , DSVFormat(Desc.DSVFormat) | ||
| 701 | , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) | ||
| 702 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 703 | , SampleDesc(Desc.SampleDesc) | ||
| 704 | , SampleMask(Desc.SampleMask) | ||
| 705 | , CachedPSO(Desc.CachedPSO) | ||
| 706 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 707 | {} | ||
| 708 | CD3DX12_PIPELINE_STATE_STREAM2(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 709 | : Flags(Desc.Flags) | ||
| 710 | , NodeMask(Desc.NodeMask) | ||
| 711 | , pRootSignature(Desc.pRootSignature) | ||
| 712 | , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) | ||
| 713 | , CachedPSO(Desc.CachedPSO) | ||
| 714 | { | ||
| 715 | static_cast<D3D12_DEPTH_STENCIL_DESC1&>(DepthStencilState).DepthEnable = false; | ||
| 716 | } | ||
| 717 | CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; | ||
| 718 | CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; | ||
| 719 | CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; | ||
| 720 | CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; | ||
| 721 | CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; | ||
| 722 | CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; | ||
| 723 | CD3DX12_PIPELINE_STATE_STREAM_VS VS; | ||
| 724 | CD3DX12_PIPELINE_STATE_STREAM_GS GS; | ||
| 725 | CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; | ||
| 726 | CD3DX12_PIPELINE_STATE_STREAM_HS HS; | ||
| 727 | CD3DX12_PIPELINE_STATE_STREAM_DS DS; | ||
| 728 | CD3DX12_PIPELINE_STATE_STREAM_PS PS; | ||
| 729 | CD3DX12_PIPELINE_STATE_STREAM_AS AS; | ||
| 730 | CD3DX12_PIPELINE_STATE_STREAM_MS MS; | ||
| 731 | CD3DX12_PIPELINE_STATE_STREAM_CS CS; | ||
| 732 | CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; | ||
| 733 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL1 DepthStencilState; | ||
| 734 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; | ||
| 735 | CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; | ||
| 736 | CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; | ||
| 737 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; | ||
| 738 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; | ||
| 739 | CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; | ||
| 740 | CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; | ||
| 741 | D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept | ||
| 742 | { | ||
| 743 | D3D12_GRAPHICS_PIPELINE_STATE_DESC D; | ||
| 744 | D.Flags = this->Flags; | ||
| 745 | D.NodeMask = this->NodeMask; | ||
| 746 | D.pRootSignature = this->pRootSignature; | ||
| 747 | D.InputLayout = this->InputLayout; | ||
| 748 | D.IBStripCutValue = this->IBStripCutValue; | ||
| 749 | D.PrimitiveTopologyType = this->PrimitiveTopologyType; | ||
| 750 | D.VS = this->VS; | ||
| 751 | D.GS = this->GS; | ||
| 752 | D.StreamOutput = this->StreamOutput; | ||
| 753 | D.HS = this->HS; | ||
| 754 | D.DS = this->DS; | ||
| 755 | D.PS = this->PS; | ||
| 756 | D.BlendState = this->BlendState; | ||
| 757 | D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEPTH_STENCIL_DESC1(this->DepthStencilState)); | ||
| 758 | D.DSVFormat = this->DSVFormat; | ||
| 759 | D.RasterizerState = this->RasterizerState; | ||
| 760 | D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; | ||
| 761 | memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); | ||
| 762 | D.SampleDesc = this->SampleDesc; | ||
| 763 | D.SampleMask = this->SampleMask; | ||
| 764 | D.CachedPSO = this->CachedPSO; | ||
| 765 | return D; | ||
| 766 | } | ||
| 767 | D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept | ||
| 768 | { | ||
| 769 | D3D12_COMPUTE_PIPELINE_STATE_DESC D; | ||
| 770 | D.Flags = this->Flags; | ||
| 771 | D.NodeMask = this->NodeMask; | ||
| 772 | D.pRootSignature = this->pRootSignature; | ||
| 773 | D.CS = this->CS; | ||
| 774 | D.CachedPSO = this->CachedPSO; | ||
| 775 | return D; | ||
| 776 | } | ||
| 777 | }; | ||
| 778 | |||
| 779 | // CD3DX12_PIPELINE_STATE_STREAM1 Works on OS Build 16299+ (where there is a new view instancing subobject). | ||
| 780 | // Use CD3DX12_PIPELINE_STATE_STREAM for OS Build 15063+ support. | ||
| 781 | struct CD3DX12_PIPELINE_STATE_STREAM1 | ||
| 782 | { | ||
| 783 | CD3DX12_PIPELINE_STATE_STREAM1() = default; | ||
| 784 | // Mesh and amplification shaders must be set manually, since they do not have representation in D3D12_GRAPHICS_PIPELINE_STATE_DESC | ||
| 785 | CD3DX12_PIPELINE_STATE_STREAM1(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 786 | : Flags(Desc.Flags) | ||
| 787 | , NodeMask(Desc.NodeMask) | ||
| 788 | , pRootSignature(Desc.pRootSignature) | ||
| 789 | , InputLayout(Desc.InputLayout) | ||
| 790 | , IBStripCutValue(Desc.IBStripCutValue) | ||
| 791 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 792 | , VS(Desc.VS) | ||
| 793 | , GS(Desc.GS) | ||
| 794 | , StreamOutput(Desc.StreamOutput) | ||
| 795 | , HS(Desc.HS) | ||
| 796 | , DS(Desc.DS) | ||
| 797 | , PS(Desc.PS) | ||
| 798 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 799 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) | ||
| 800 | , DSVFormat(Desc.DSVFormat) | ||
| 801 | , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) | ||
| 802 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 803 | , SampleDesc(Desc.SampleDesc) | ||
| 804 | , SampleMask(Desc.SampleMask) | ||
| 805 | , CachedPSO(Desc.CachedPSO) | ||
| 806 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 807 | {} | ||
| 808 | CD3DX12_PIPELINE_STATE_STREAM1(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 809 | : Flags(Desc.Flags) | ||
| 810 | , NodeMask(Desc.NodeMask) | ||
| 811 | , pRootSignature(Desc.pRootSignature) | ||
| 812 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 813 | , PS(Desc.PS) | ||
| 814 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 815 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) | ||
| 816 | , DSVFormat(Desc.DSVFormat) | ||
| 817 | , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) | ||
| 818 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 819 | , SampleDesc(Desc.SampleDesc) | ||
| 820 | , SampleMask(Desc.SampleMask) | ||
| 821 | , CachedPSO(Desc.CachedPSO) | ||
| 822 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 823 | {} | ||
| 824 | CD3DX12_PIPELINE_STATE_STREAM1(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 825 | : Flags(Desc.Flags) | ||
| 826 | , NodeMask(Desc.NodeMask) | ||
| 827 | , pRootSignature(Desc.pRootSignature) | ||
| 828 | , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) | ||
| 829 | , CachedPSO(Desc.CachedPSO) | ||
| 830 | { | ||
| 831 | static_cast<D3D12_DEPTH_STENCIL_DESC1&>(DepthStencilState).DepthEnable = false; | ||
| 832 | } | ||
| 833 | CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; | ||
| 834 | CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; | ||
| 835 | CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; | ||
| 836 | CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; | ||
| 837 | CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; | ||
| 838 | CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; | ||
| 839 | CD3DX12_PIPELINE_STATE_STREAM_VS VS; | ||
| 840 | CD3DX12_PIPELINE_STATE_STREAM_GS GS; | ||
| 841 | CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; | ||
| 842 | CD3DX12_PIPELINE_STATE_STREAM_HS HS; | ||
| 843 | CD3DX12_PIPELINE_STATE_STREAM_DS DS; | ||
| 844 | CD3DX12_PIPELINE_STATE_STREAM_PS PS; | ||
| 845 | CD3DX12_PIPELINE_STATE_STREAM_CS CS; | ||
| 846 | CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; | ||
| 847 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL1 DepthStencilState; | ||
| 848 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; | ||
| 849 | CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; | ||
| 850 | CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; | ||
| 851 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; | ||
| 852 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; | ||
| 853 | CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; | ||
| 854 | CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; | ||
| 855 | D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept | ||
| 856 | { | ||
| 857 | D3D12_GRAPHICS_PIPELINE_STATE_DESC D; | ||
| 858 | D.Flags = this->Flags; | ||
| 859 | D.NodeMask = this->NodeMask; | ||
| 860 | D.pRootSignature = this->pRootSignature; | ||
| 861 | D.InputLayout = this->InputLayout; | ||
| 862 | D.IBStripCutValue = this->IBStripCutValue; | ||
| 863 | D.PrimitiveTopologyType = this->PrimitiveTopologyType; | ||
| 864 | D.VS = this->VS; | ||
| 865 | D.GS = this->GS; | ||
| 866 | D.StreamOutput = this->StreamOutput; | ||
| 867 | D.HS = this->HS; | ||
| 868 | D.DS = this->DS; | ||
| 869 | D.PS = this->PS; | ||
| 870 | D.BlendState = this->BlendState; | ||
| 871 | D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEPTH_STENCIL_DESC1(this->DepthStencilState)); | ||
| 872 | D.DSVFormat = this->DSVFormat; | ||
| 873 | D.RasterizerState = this->RasterizerState; | ||
| 874 | D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; | ||
| 875 | memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); | ||
| 876 | D.SampleDesc = this->SampleDesc; | ||
| 877 | D.SampleMask = this->SampleMask; | ||
| 878 | D.CachedPSO = this->CachedPSO; | ||
| 879 | return D; | ||
| 880 | } | ||
| 881 | D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept | ||
| 882 | { | ||
| 883 | D3D12_COMPUTE_PIPELINE_STATE_DESC D; | ||
| 884 | D.Flags = this->Flags; | ||
| 885 | D.NodeMask = this->NodeMask; | ||
| 886 | D.pRootSignature = this->pRootSignature; | ||
| 887 | D.CS = this->CS; | ||
| 888 | D.CachedPSO = this->CachedPSO; | ||
| 889 | return D; | ||
| 890 | } | ||
| 891 | }; | ||
| 892 | |||
| 893 | |||
| 894 | struct CD3DX12_PIPELINE_MESH_STATE_STREAM | ||
| 895 | { | ||
| 896 | CD3DX12_PIPELINE_MESH_STATE_STREAM() = default; | ||
| 897 | CD3DX12_PIPELINE_MESH_STATE_STREAM(const D3DX12_MESH_SHADER_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 898 | : Flags(Desc.Flags) | ||
| 899 | , NodeMask(Desc.NodeMask) | ||
| 900 | , pRootSignature(Desc.pRootSignature) | ||
| 901 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 902 | , PS(Desc.PS) | ||
| 903 | , AS(Desc.AS) | ||
| 904 | , MS(Desc.MS) | ||
| 905 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 906 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) | ||
| 907 | , DSVFormat(Desc.DSVFormat) | ||
| 908 | , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) | ||
| 909 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 910 | , SampleDesc(Desc.SampleDesc) | ||
| 911 | , SampleMask(Desc.SampleMask) | ||
| 912 | , CachedPSO(Desc.CachedPSO) | ||
| 913 | , ViewInstancingDesc(CD3DX12_VIEW_INSTANCING_DESC(CD3DX12_DEFAULT())) | ||
| 914 | {} | ||
| 915 | CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; | ||
| 916 | CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; | ||
| 917 | CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; | ||
| 918 | CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; | ||
| 919 | CD3DX12_PIPELINE_STATE_STREAM_PS PS; | ||
| 920 | CD3DX12_PIPELINE_STATE_STREAM_AS AS; | ||
| 921 | CD3DX12_PIPELINE_STATE_STREAM_MS MS; | ||
| 922 | CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; | ||
| 923 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL1 DepthStencilState; | ||
| 924 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; | ||
| 925 | CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; | ||
| 926 | CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; | ||
| 927 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; | ||
| 928 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; | ||
| 929 | CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; | ||
| 930 | CD3DX12_PIPELINE_STATE_STREAM_VIEW_INSTANCING ViewInstancingDesc; | ||
| 931 | D3DX12_MESH_SHADER_PIPELINE_STATE_DESC MeshShaderDescV0() const noexcept | ||
| 932 | { | ||
| 933 | D3DX12_MESH_SHADER_PIPELINE_STATE_DESC D; | ||
| 934 | D.Flags = this->Flags; | ||
| 935 | D.NodeMask = this->NodeMask; | ||
| 936 | D.pRootSignature = this->pRootSignature; | ||
| 937 | D.PrimitiveTopologyType = this->PrimitiveTopologyType; | ||
| 938 | D.PS = this->PS; | ||
| 939 | D.AS = this->AS; | ||
| 940 | D.MS = this->MS; | ||
| 941 | D.BlendState = this->BlendState; | ||
| 942 | D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEPTH_STENCIL_DESC1(this->DepthStencilState)); | ||
| 943 | D.DSVFormat = this->DSVFormat; | ||
| 944 | D.RasterizerState = this->RasterizerState; | ||
| 945 | D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; | ||
| 946 | memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); | ||
| 947 | D.SampleDesc = this->SampleDesc; | ||
| 948 | D.SampleMask = this->SampleMask; | ||
| 949 | D.CachedPSO = this->CachedPSO; | ||
| 950 | return D; | ||
| 951 | } | ||
| 952 | }; | ||
| 953 | |||
| 954 | // CD3DX12_PIPELINE_STATE_STREAM works on OS Build 15063+ but does not support new subobject(s) added in OS Build 16299+. | ||
| 955 | // See CD3DX12_PIPELINE_STATE_STREAM1 for instance. | ||
| 956 | struct CD3DX12_PIPELINE_STATE_STREAM | ||
| 957 | { | ||
| 958 | CD3DX12_PIPELINE_STATE_STREAM() = default; | ||
| 959 | CD3DX12_PIPELINE_STATE_STREAM(const D3D12_GRAPHICS_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 960 | : Flags(Desc.Flags) | ||
| 961 | , NodeMask(Desc.NodeMask) | ||
| 962 | , pRootSignature(Desc.pRootSignature) | ||
| 963 | , InputLayout(Desc.InputLayout) | ||
| 964 | , IBStripCutValue(Desc.IBStripCutValue) | ||
| 965 | , PrimitiveTopologyType(Desc.PrimitiveTopologyType) | ||
| 966 | , VS(Desc.VS) | ||
| 967 | , GS(Desc.GS) | ||
| 968 | , StreamOutput(Desc.StreamOutput) | ||
| 969 | , HS(Desc.HS) | ||
| 970 | , DS(Desc.DS) | ||
| 971 | , PS(Desc.PS) | ||
| 972 | , BlendState(CD3DX12_BLEND_DESC(Desc.BlendState)) | ||
| 973 | , DepthStencilState(CD3DX12_DEPTH_STENCIL_DESC1(Desc.DepthStencilState)) | ||
| 974 | , DSVFormat(Desc.DSVFormat) | ||
| 975 | , RasterizerState(CD3DX12_RASTERIZER_DESC(Desc.RasterizerState)) | ||
| 976 | , RTVFormats(CD3DX12_RT_FORMAT_ARRAY(Desc.RTVFormats, Desc.NumRenderTargets)) | ||
| 977 | , SampleDesc(Desc.SampleDesc) | ||
| 978 | , SampleMask(Desc.SampleMask) | ||
| 979 | , CachedPSO(Desc.CachedPSO) | ||
| 980 | {} | ||
| 981 | CD3DX12_PIPELINE_STATE_STREAM(const D3D12_COMPUTE_PIPELINE_STATE_DESC& Desc) noexcept | ||
| 982 | : Flags(Desc.Flags) | ||
| 983 | , NodeMask(Desc.NodeMask) | ||
| 984 | , pRootSignature(Desc.pRootSignature) | ||
| 985 | , CS(CD3DX12_SHADER_BYTECODE(Desc.CS)) | ||
| 986 | , CachedPSO(Desc.CachedPSO) | ||
| 987 | {} | ||
| 988 | CD3DX12_PIPELINE_STATE_STREAM_FLAGS Flags; | ||
| 989 | CD3DX12_PIPELINE_STATE_STREAM_NODE_MASK NodeMask; | ||
| 990 | CD3DX12_PIPELINE_STATE_STREAM_ROOT_SIGNATURE pRootSignature; | ||
| 991 | CD3DX12_PIPELINE_STATE_STREAM_INPUT_LAYOUT InputLayout; | ||
| 992 | CD3DX12_PIPELINE_STATE_STREAM_IB_STRIP_CUT_VALUE IBStripCutValue; | ||
| 993 | CD3DX12_PIPELINE_STATE_STREAM_PRIMITIVE_TOPOLOGY PrimitiveTopologyType; | ||
| 994 | CD3DX12_PIPELINE_STATE_STREAM_VS VS; | ||
| 995 | CD3DX12_PIPELINE_STATE_STREAM_GS GS; | ||
| 996 | CD3DX12_PIPELINE_STATE_STREAM_STREAM_OUTPUT StreamOutput; | ||
| 997 | CD3DX12_PIPELINE_STATE_STREAM_HS HS; | ||
| 998 | CD3DX12_PIPELINE_STATE_STREAM_DS DS; | ||
| 999 | CD3DX12_PIPELINE_STATE_STREAM_PS PS; | ||
| 1000 | CD3DX12_PIPELINE_STATE_STREAM_CS CS; | ||
| 1001 | CD3DX12_PIPELINE_STATE_STREAM_BLEND_DESC BlendState; | ||
| 1002 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL1 DepthStencilState; | ||
| 1003 | CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL_FORMAT DSVFormat; | ||
| 1004 | CD3DX12_PIPELINE_STATE_STREAM_RASTERIZER RasterizerState; | ||
| 1005 | CD3DX12_PIPELINE_STATE_STREAM_RENDER_TARGET_FORMATS RTVFormats; | ||
| 1006 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_DESC SampleDesc; | ||
| 1007 | CD3DX12_PIPELINE_STATE_STREAM_SAMPLE_MASK SampleMask; | ||
| 1008 | CD3DX12_PIPELINE_STATE_STREAM_CACHED_PSO CachedPSO; | ||
| 1009 | D3D12_GRAPHICS_PIPELINE_STATE_DESC GraphicsDescV0() const noexcept | ||
| 1010 | { | ||
| 1011 | D3D12_GRAPHICS_PIPELINE_STATE_DESC D; | ||
| 1012 | D.Flags = this->Flags; | ||
| 1013 | D.NodeMask = this->NodeMask; | ||
| 1014 | D.pRootSignature = this->pRootSignature; | ||
| 1015 | D.InputLayout = this->InputLayout; | ||
| 1016 | D.IBStripCutValue = this->IBStripCutValue; | ||
| 1017 | D.PrimitiveTopologyType = this->PrimitiveTopologyType; | ||
| 1018 | D.VS = this->VS; | ||
| 1019 | D.GS = this->GS; | ||
| 1020 | D.StreamOutput = this->StreamOutput; | ||
| 1021 | D.HS = this->HS; | ||
| 1022 | D.DS = this->DS; | ||
| 1023 | D.PS = this->PS; | ||
| 1024 | D.BlendState = this->BlendState; | ||
| 1025 | D.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEPTH_STENCIL_DESC1(this->DepthStencilState)); | ||
| 1026 | D.DSVFormat = this->DSVFormat; | ||
| 1027 | D.RasterizerState = this->RasterizerState; | ||
| 1028 | D.NumRenderTargets = D3D12_RT_FORMAT_ARRAY(this->RTVFormats).NumRenderTargets; | ||
| 1029 | memcpy(D.RTVFormats, D3D12_RT_FORMAT_ARRAY(this->RTVFormats).RTFormats, sizeof(D.RTVFormats)); | ||
| 1030 | D.SampleDesc = this->SampleDesc; | ||
| 1031 | D.SampleMask = this->SampleMask; | ||
| 1032 | D.CachedPSO = this->CachedPSO; | ||
| 1033 | return D; | ||
| 1034 | } | ||
| 1035 | D3D12_COMPUTE_PIPELINE_STATE_DESC ComputeDescV0() const noexcept | ||
| 1036 | { | ||
| 1037 | D3D12_COMPUTE_PIPELINE_STATE_DESC D; | ||
| 1038 | D.Flags = this->Flags; | ||
| 1039 | D.NodeMask = this->NodeMask; | ||
| 1040 | D.pRootSignature = this->pRootSignature; | ||
| 1041 | D.CS = this->CS; | ||
| 1042 | D.CachedPSO = this->CachedPSO; | ||
| 1043 | return D; | ||
| 1044 | } | ||
| 1045 | }; | ||
| 1046 | |||
| 1047 | |||
| 1048 | struct CD3DX12_PIPELINE_STATE_STREAM2_PARSE_HELPER : public ID3DX12PipelineParserCallbacks | ||
| 1049 | { | ||
| 1050 | CD3DX12_PIPELINE_STATE_STREAM2 PipelineStream; | ||
| 1051 | CD3DX12_PIPELINE_STATE_STREAM2_PARSE_HELPER() noexcept | ||
| 1052 | : SeenDSS(false) | ||
| 1053 | { | ||
| 1054 | // Adjust defaults to account for absent members. | ||
| 1055 | PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; | ||
| 1056 | |||
| 1057 | // Depth disabled if no DSV format specified. | ||
| 1058 | static_cast<D3D12_DEPTH_STENCIL_DESC1&>(PipelineStream.DepthStencilState).DepthEnable = false; | ||
| 1059 | } | ||
| 1060 | |||
| 1061 | // ID3DX12PipelineParserCallbacks | ||
| 1062 | void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override {PipelineStream.Flags = Flags;} | ||
| 1063 | void NodeMaskCb(UINT NodeMask) override {PipelineStream.NodeMask = NodeMask;} | ||
| 1064 | void RootSignatureCb(ID3D12RootSignature* pRootSignature) override {PipelineStream.pRootSignature = pRootSignature;} | ||
| 1065 | void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override {PipelineStream.InputLayout = InputLayout;} | ||
| 1066 | void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override {PipelineStream.IBStripCutValue = IBStripCutValue;} | ||
| 1067 | void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override {PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType;} | ||
| 1068 | void VSCb(const D3D12_SHADER_BYTECODE& VS) override {PipelineStream.VS = VS;} | ||
| 1069 | void GSCb(const D3D12_SHADER_BYTECODE& GS) override {PipelineStream.GS = GS;} | ||
| 1070 | void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override {PipelineStream.StreamOutput = StreamOutput;} | ||
| 1071 | void HSCb(const D3D12_SHADER_BYTECODE& HS) override {PipelineStream.HS = HS;} | ||
| 1072 | void DSCb(const D3D12_SHADER_BYTECODE& DS) override {PipelineStream.DS = DS;} | ||
| 1073 | void PSCb(const D3D12_SHADER_BYTECODE& PS) override {PipelineStream.PS = PS;} | ||
| 1074 | void CSCb(const D3D12_SHADER_BYTECODE& CS) override {PipelineStream.CS = CS;} | ||
| 1075 | void ASCb(const D3D12_SHADER_BYTECODE& AS) override {PipelineStream.AS = AS;} | ||
| 1076 | void MSCb(const D3D12_SHADER_BYTECODE& MS) override {PipelineStream.MS = MS;} | ||
| 1077 | void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override {PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState);} | ||
| 1078 | void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override | ||
| 1079 | { | ||
| 1080 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(DepthStencilState); | ||
| 1081 | SeenDSS = true; | ||
| 1082 | } | ||
| 1083 | void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override | ||
| 1084 | { | ||
| 1085 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(DepthStencilState); | ||
| 1086 | SeenDSS = true; | ||
| 1087 | } | ||
| 1088 | void DSVFormatCb(DXGI_FORMAT DSVFormat) override | ||
| 1089 | { | ||
| 1090 | PipelineStream.DSVFormat = DSVFormat; | ||
| 1091 | if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) | ||
| 1092 | { | ||
| 1093 | // Re-enable depth for the default state. | ||
| 1094 | static_cast<D3D12_DEPTH_STENCIL_DESC1&>(PipelineStream.DepthStencilState).DepthEnable = true; | ||
| 1095 | } | ||
| 1096 | } | ||
| 1097 | void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override {PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC(RasterizerState);} | ||
| 1098 | void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override {PipelineStream.RTVFormats = RTVFormats;} | ||
| 1099 | void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override {PipelineStream.SampleDesc = SampleDesc;} | ||
| 1100 | void SampleMaskCb(UINT SampleMask) override {PipelineStream.SampleMask = SampleMask;} | ||
| 1101 | void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override {PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc);} | ||
| 1102 | void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override {PipelineStream.CachedPSO = CachedPSO;} | ||
| 1103 | |||
| 1104 | private: | ||
| 1105 | bool SeenDSS; | ||
| 1106 | }; | ||
| 1107 | |||
| 1108 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 1109 | struct CD3DX12_PIPELINE_STATE_STREAM3_PARSE_HELPER : public ID3DX12PipelineParserCallbacks | ||
| 1110 | { | ||
| 1111 | CD3DX12_PIPELINE_STATE_STREAM3 PipelineStream; | ||
| 1112 | CD3DX12_PIPELINE_STATE_STREAM3_PARSE_HELPER() noexcept | ||
| 1113 | : SeenDSS(false) | ||
| 1114 | { | ||
| 1115 | // Adjust defaults to account for absent members. | ||
| 1116 | PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; | ||
| 1117 | |||
| 1118 | // Depth disabled if no DSV format specified. | ||
| 1119 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = false; | ||
| 1120 | } | ||
| 1121 | |||
| 1122 | // ID3DX12PipelineParserCallbacks | ||
| 1123 | void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override { PipelineStream.Flags = Flags; } | ||
| 1124 | void NodeMaskCb(UINT NodeMask) override { PipelineStream.NodeMask = NodeMask; } | ||
| 1125 | void RootSignatureCb(ID3D12RootSignature* pRootSignature) override { PipelineStream.pRootSignature = pRootSignature; } | ||
| 1126 | void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override { PipelineStream.InputLayout = InputLayout; } | ||
| 1127 | void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override { PipelineStream.IBStripCutValue = IBStripCutValue; } | ||
| 1128 | void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override { PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType; } | ||
| 1129 | void VSCb(const D3D12_SHADER_BYTECODE& VS) override { PipelineStream.VS = VS; } | ||
| 1130 | void GSCb(const D3D12_SHADER_BYTECODE& GS) override { PipelineStream.GS = GS; } | ||
| 1131 | void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override { PipelineStream.StreamOutput = StreamOutput; } | ||
| 1132 | void HSCb(const D3D12_SHADER_BYTECODE& HS) override { PipelineStream.HS = HS; } | ||
| 1133 | void DSCb(const D3D12_SHADER_BYTECODE& DS) override { PipelineStream.DS = DS; } | ||
| 1134 | void PSCb(const D3D12_SHADER_BYTECODE& PS) override { PipelineStream.PS = PS; } | ||
| 1135 | void CSCb(const D3D12_SHADER_BYTECODE& CS) override { PipelineStream.CS = CS; } | ||
| 1136 | void ASCb(const D3D12_SHADER_BYTECODE& AS) override { PipelineStream.AS = AS; } | ||
| 1137 | void MSCb(const D3D12_SHADER_BYTECODE& MS) override { PipelineStream.MS = MS; } | ||
| 1138 | void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override { PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState); } | ||
| 1139 | void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override | ||
| 1140 | { | ||
| 1141 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1142 | SeenDSS = true; | ||
| 1143 | } | ||
| 1144 | void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override | ||
| 1145 | { | ||
| 1146 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1147 | SeenDSS = true; | ||
| 1148 | } | ||
| 1149 | void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2& DepthStencilState) override | ||
| 1150 | { | ||
| 1151 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1152 | SeenDSS = true; | ||
| 1153 | } | ||
| 1154 | void DSVFormatCb(DXGI_FORMAT DSVFormat) override | ||
| 1155 | { | ||
| 1156 | PipelineStream.DSVFormat = DSVFormat; | ||
| 1157 | if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) | ||
| 1158 | { | ||
| 1159 | // Re-enable depth for the default state. | ||
| 1160 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = true; | ||
| 1161 | } | ||
| 1162 | } | ||
| 1163 | void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC(RasterizerState); } | ||
| 1164 | void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override { PipelineStream.RTVFormats = RTVFormats; } | ||
| 1165 | void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override { PipelineStream.SampleDesc = SampleDesc; } | ||
| 1166 | void SampleMaskCb(UINT SampleMask) override { PipelineStream.SampleMask = SampleMask; } | ||
| 1167 | void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override { PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc); } | ||
| 1168 | void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override { PipelineStream.CachedPSO = CachedPSO; } | ||
| 1169 | |||
| 1170 | private: | ||
| 1171 | bool SeenDSS; | ||
| 1172 | }; | ||
| 1173 | #endif // D3D12_SDK_VERSION >= 606 | ||
| 1174 | |||
| 1175 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 1176 | struct CD3DX12_PIPELINE_STATE_STREAM4_PARSE_HELPER : public ID3DX12PipelineParserCallbacks | ||
| 1177 | { | ||
| 1178 | CD3DX12_PIPELINE_STATE_STREAM4 PipelineStream; | ||
| 1179 | CD3DX12_PIPELINE_STATE_STREAM4_PARSE_HELPER() noexcept | ||
| 1180 | : SeenDSS(false) | ||
| 1181 | { | ||
| 1182 | // Adjust defaults to account for absent members. | ||
| 1183 | PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; | ||
| 1184 | |||
| 1185 | // Depth disabled if no DSV format specified. | ||
| 1186 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = false; | ||
| 1187 | } | ||
| 1188 | |||
| 1189 | // ID3DX12PipelineParserCallbacks | ||
| 1190 | void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override { PipelineStream.Flags = Flags; } | ||
| 1191 | void NodeMaskCb(UINT NodeMask) override { PipelineStream.NodeMask = NodeMask; } | ||
| 1192 | void RootSignatureCb(ID3D12RootSignature* pRootSignature) override { PipelineStream.pRootSignature = pRootSignature; } | ||
| 1193 | void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override { PipelineStream.InputLayout = InputLayout; } | ||
| 1194 | void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override { PipelineStream.IBStripCutValue = IBStripCutValue; } | ||
| 1195 | void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override { PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType; } | ||
| 1196 | void VSCb(const D3D12_SHADER_BYTECODE& VS) override { PipelineStream.VS = VS; } | ||
| 1197 | void GSCb(const D3D12_SHADER_BYTECODE& GS) override { PipelineStream.GS = GS; } | ||
| 1198 | void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override { PipelineStream.StreamOutput = StreamOutput; } | ||
| 1199 | void HSCb(const D3D12_SHADER_BYTECODE& HS) override { PipelineStream.HS = HS; } | ||
| 1200 | void DSCb(const D3D12_SHADER_BYTECODE& DS) override { PipelineStream.DS = DS; } | ||
| 1201 | void PSCb(const D3D12_SHADER_BYTECODE& PS) override { PipelineStream.PS = PS; } | ||
| 1202 | void CSCb(const D3D12_SHADER_BYTECODE& CS) override { PipelineStream.CS = CS; } | ||
| 1203 | void ASCb(const D3D12_SHADER_BYTECODE& AS) override { PipelineStream.AS = AS; } | ||
| 1204 | void MSCb(const D3D12_SHADER_BYTECODE& MS) override { PipelineStream.MS = MS; } | ||
| 1205 | void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override { PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState); } | ||
| 1206 | void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override | ||
| 1207 | { | ||
| 1208 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1209 | SeenDSS = true; | ||
| 1210 | } | ||
| 1211 | void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override | ||
| 1212 | { | ||
| 1213 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1214 | SeenDSS = true; | ||
| 1215 | } | ||
| 1216 | void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2& DepthStencilState) override | ||
| 1217 | { | ||
| 1218 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1219 | SeenDSS = true; | ||
| 1220 | } | ||
| 1221 | void DSVFormatCb(DXGI_FORMAT DSVFormat) override | ||
| 1222 | { | ||
| 1223 | PipelineStream.DSVFormat = DSVFormat; | ||
| 1224 | if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) | ||
| 1225 | { | ||
| 1226 | // Re-enable depth for the default state. | ||
| 1227 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = true; | ||
| 1228 | } | ||
| 1229 | } | ||
| 1230 | void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC1(RasterizerState); } | ||
| 1231 | void RasterizerState1Cb(const D3D12_RASTERIZER_DESC1& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC1(RasterizerState); } | ||
| 1232 | void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override { PipelineStream.RTVFormats = RTVFormats; } | ||
| 1233 | void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override { PipelineStream.SampleDesc = SampleDesc; } | ||
| 1234 | void SampleMaskCb(UINT SampleMask) override { PipelineStream.SampleMask = SampleMask; } | ||
| 1235 | void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override { PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc); } | ||
| 1236 | void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override { PipelineStream.CachedPSO = CachedPSO; } | ||
| 1237 | |||
| 1238 | private: | ||
| 1239 | bool SeenDSS; | ||
| 1240 | }; | ||
| 1241 | #endif // D3D12_SDK_VERSION >= 608 | ||
| 1242 | |||
| 1243 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 613) | ||
| 1244 | // This SDK 613 version has better primitive topology default handling than the v610 equivalent below. | ||
| 1245 | struct CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER : public ID3DX12PipelineParserCallbacks | ||
| 1246 | { | ||
| 1247 | CD3DX12_PIPELINE_STATE_STREAM5 PipelineStream; | ||
| 1248 | CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER() noexcept | ||
| 1249 | : SeenDSS(false), | ||
| 1250 | SeenMS(false), | ||
| 1251 | SeenTopology(false) | ||
| 1252 | { | ||
| 1253 | // Adjust defaults to account for absent members. | ||
| 1254 | PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; | ||
| 1255 | |||
| 1256 | // Depth disabled if no DSV format specified. | ||
| 1257 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = false; | ||
| 1258 | } | ||
| 1259 | |||
| 1260 | // ID3DX12PipelineParserCallbacks | ||
| 1261 | void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override { PipelineStream.Flags = Flags; } | ||
| 1262 | void NodeMaskCb(UINT NodeMask) override { PipelineStream.NodeMask = NodeMask; } | ||
| 1263 | void RootSignatureCb(ID3D12RootSignature* pRootSignature) override { PipelineStream.pRootSignature = pRootSignature; } | ||
| 1264 | void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override { PipelineStream.InputLayout = InputLayout; } | ||
| 1265 | void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override { PipelineStream.IBStripCutValue = IBStripCutValue; } | ||
| 1266 | void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override | ||
| 1267 | { | ||
| 1268 | PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType; | ||
| 1269 | SeenTopology = true; | ||
| 1270 | } | ||
| 1271 | void VSCb(const D3D12_SHADER_BYTECODE& VS) override { PipelineStream.VS = VS; } | ||
| 1272 | void GSCb(const D3D12_SHADER_BYTECODE& GS) override { PipelineStream.GS = GS; } | ||
| 1273 | void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override { PipelineStream.StreamOutput = StreamOutput; } | ||
| 1274 | void HSCb(const D3D12_SHADER_BYTECODE& HS) override { PipelineStream.HS = HS; } | ||
| 1275 | void DSCb(const D3D12_SHADER_BYTECODE& DS) override { PipelineStream.DS = DS; } | ||
| 1276 | void PSCb(const D3D12_SHADER_BYTECODE& PS) override { PipelineStream.PS = PS; } | ||
| 1277 | void CSCb(const D3D12_SHADER_BYTECODE& CS) override { PipelineStream.CS = CS; } | ||
| 1278 | void ASCb(const D3D12_SHADER_BYTECODE& AS) override { PipelineStream.AS = AS; } | ||
| 1279 | void MSCb(const D3D12_SHADER_BYTECODE& MS) override { PipelineStream.MS = MS; SeenMS = true; } | ||
| 1280 | void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override { PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState); } | ||
| 1281 | void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override | ||
| 1282 | { | ||
| 1283 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1284 | SeenDSS = true; | ||
| 1285 | } | ||
| 1286 | void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override | ||
| 1287 | { | ||
| 1288 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1289 | SeenDSS = true; | ||
| 1290 | } | ||
| 1291 | void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2& DepthStencilState) override | ||
| 1292 | { | ||
| 1293 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1294 | SeenDSS = true; | ||
| 1295 | } | ||
| 1296 | void DSVFormatCb(DXGI_FORMAT DSVFormat) override {PipelineStream.DSVFormat = DSVFormat;} | ||
| 1297 | void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } | ||
| 1298 | void RasterizerState1Cb(const D3D12_RASTERIZER_DESC1& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } | ||
| 1299 | void RasterizerState2Cb(const D3D12_RASTERIZER_DESC2& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } | ||
| 1300 | void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override { PipelineStream.RTVFormats = RTVFormats; } | ||
| 1301 | void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override { PipelineStream.SampleDesc = SampleDesc; } | ||
| 1302 | void SampleMaskCb(UINT SampleMask) override { PipelineStream.SampleMask = SampleMask; } | ||
| 1303 | void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override { PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc); } | ||
| 1304 | void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override { PipelineStream.CachedPSO = CachedPSO; } | ||
| 1305 | void FinalizeCb() override | ||
| 1306 | { | ||
| 1307 | if (!SeenDSS && PipelineStream.DSVFormat != DXGI_FORMAT_UNKNOWN) | ||
| 1308 | { | ||
| 1309 | // Re-enable depth for the default state. | ||
| 1310 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = true; | ||
| 1311 | } | ||
| 1312 | if (!SeenTopology && SeenMS) | ||
| 1313 | { | ||
| 1314 | PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED; | ||
| 1315 | } | ||
| 1316 | } | ||
| 1317 | |||
| 1318 | private: | ||
| 1319 | bool SeenDSS; | ||
| 1320 | bool SeenMS; | ||
| 1321 | bool SeenTopology; | ||
| 1322 | }; | ||
| 1323 | #elif defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 1324 | struct CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER : public ID3DX12PipelineParserCallbacks | ||
| 1325 | { | ||
| 1326 | CD3DX12_PIPELINE_STATE_STREAM5 PipelineStream; | ||
| 1327 | CD3DX12_PIPELINE_STATE_STREAM5_PARSE_HELPER() noexcept | ||
| 1328 | : SeenDSS(false) | ||
| 1329 | { | ||
| 1330 | // Adjust defaults to account for absent members. | ||
| 1331 | PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; | ||
| 1332 | |||
| 1333 | // Depth disabled if no DSV format specified. | ||
| 1334 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = false; | ||
| 1335 | } | ||
| 1336 | |||
| 1337 | // ID3DX12PipelineParserCallbacks | ||
| 1338 | void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override { PipelineStream.Flags = Flags; } | ||
| 1339 | void NodeMaskCb(UINT NodeMask) override { PipelineStream.NodeMask = NodeMask; } | ||
| 1340 | void RootSignatureCb(ID3D12RootSignature* pRootSignature) override { PipelineStream.pRootSignature = pRootSignature; } | ||
| 1341 | void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override { PipelineStream.InputLayout = InputLayout; } | ||
| 1342 | void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override { PipelineStream.IBStripCutValue = IBStripCutValue; } | ||
| 1343 | void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override { PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType; } | ||
| 1344 | void VSCb(const D3D12_SHADER_BYTECODE& VS) override { PipelineStream.VS = VS; } | ||
| 1345 | void GSCb(const D3D12_SHADER_BYTECODE& GS) override { PipelineStream.GS = GS; } | ||
| 1346 | void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override { PipelineStream.StreamOutput = StreamOutput; } | ||
| 1347 | void HSCb(const D3D12_SHADER_BYTECODE& HS) override { PipelineStream.HS = HS; } | ||
| 1348 | void DSCb(const D3D12_SHADER_BYTECODE& DS) override { PipelineStream.DS = DS; } | ||
| 1349 | void PSCb(const D3D12_SHADER_BYTECODE& PS) override { PipelineStream.PS = PS; } | ||
| 1350 | void CSCb(const D3D12_SHADER_BYTECODE& CS) override { PipelineStream.CS = CS; } | ||
| 1351 | void ASCb(const D3D12_SHADER_BYTECODE& AS) override { PipelineStream.AS = AS; } | ||
| 1352 | void MSCb(const D3D12_SHADER_BYTECODE& MS) override { PipelineStream.MS = MS; } | ||
| 1353 | void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override { PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState); } | ||
| 1354 | void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override | ||
| 1355 | { | ||
| 1356 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1357 | SeenDSS = true; | ||
| 1358 | } | ||
| 1359 | void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override | ||
| 1360 | { | ||
| 1361 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1362 | SeenDSS = true; | ||
| 1363 | } | ||
| 1364 | void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2& DepthStencilState) override | ||
| 1365 | { | ||
| 1366 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1367 | SeenDSS = true; | ||
| 1368 | } | ||
| 1369 | void DSVFormatCb(DXGI_FORMAT DSVFormat) override | ||
| 1370 | { | ||
| 1371 | PipelineStream.DSVFormat = DSVFormat; | ||
| 1372 | if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) | ||
| 1373 | { | ||
| 1374 | // Re-enable depth for the default state. | ||
| 1375 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = true; | ||
| 1376 | } | ||
| 1377 | } | ||
| 1378 | void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } | ||
| 1379 | void RasterizerState1Cb(const D3D12_RASTERIZER_DESC1& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } | ||
| 1380 | void RasterizerState2Cb(const D3D12_RASTERIZER_DESC2& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } | ||
| 1381 | void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override { PipelineStream.RTVFormats = RTVFormats; } | ||
| 1382 | void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override { PipelineStream.SampleDesc = SampleDesc; } | ||
| 1383 | void SampleMaskCb(UINT SampleMask) override { PipelineStream.SampleMask = SampleMask; } | ||
| 1384 | void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override { PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc); } | ||
| 1385 | void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override { PipelineStream.CachedPSO = CachedPSO; } | ||
| 1386 | |||
| 1387 | private: | ||
| 1388 | bool SeenDSS; | ||
| 1389 | }; | ||
| 1390 | #endif // D3D12_SDK_VERSION >= 610 | ||
| 1391 | |||
| 1392 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 618) | ||
| 1393 | struct CD3DX12_PIPELINE_STATE_STREAM6_PARSE_HELPER : public ID3DX12PipelineParserCallbacks | ||
| 1394 | { | ||
| 1395 | CD3DX12_PIPELINE_STATE_STREAM6 PipelineStream; | ||
| 1396 | CD3DX12_PIPELINE_STATE_STREAM6_PARSE_HELPER() noexcept | ||
| 1397 | : SeenDSS(false), | ||
| 1398 | SeenMS(false), | ||
| 1399 | SeenTopology(false) | ||
| 1400 | { | ||
| 1401 | // Adjust defaults to account for absent members. | ||
| 1402 | PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; | ||
| 1403 | |||
| 1404 | // Depth disabled if no DSV format specified. | ||
| 1405 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = false; | ||
| 1406 | } | ||
| 1407 | |||
| 1408 | // ID3DX12PipelineParserCallbacks | ||
| 1409 | void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override { PipelineStream.Flags = Flags; } | ||
| 1410 | void NodeMaskCb(UINT NodeMask) override { PipelineStream.NodeMask = NodeMask; } | ||
| 1411 | void RootSignatureCb(ID3D12RootSignature* pRootSignature) override { PipelineStream.pRootSignature = pRootSignature; } | ||
| 1412 | void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override { PipelineStream.InputLayout = InputLayout; } | ||
| 1413 | void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override { PipelineStream.IBStripCutValue = IBStripCutValue; } | ||
| 1414 | void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override | ||
| 1415 | { | ||
| 1416 | PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType; | ||
| 1417 | SeenTopology = true; | ||
| 1418 | } | ||
| 1419 | void VSCb(const D3D12_SHADER_BYTECODE& VS) override { PipelineStream.VS = VS; } | ||
| 1420 | void GSCb(const D3D12_SHADER_BYTECODE& GS) override { PipelineStream.GS = GS; } | ||
| 1421 | void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override { PipelineStream.StreamOutput = StreamOutput; } | ||
| 1422 | void HSCb(const D3D12_SHADER_BYTECODE& HS) override { PipelineStream.HS = HS; } | ||
| 1423 | void DSCb(const D3D12_SHADER_BYTECODE& DS) override { PipelineStream.DS = DS; } | ||
| 1424 | void PSCb(const D3D12_SHADER_BYTECODE& PS) override { PipelineStream.PS = PS; } | ||
| 1425 | void CSCb(const D3D12_SHADER_BYTECODE& CS) override { PipelineStream.CS = CS; } | ||
| 1426 | void ASCb(const D3D12_SHADER_BYTECODE& AS) override { PipelineStream.AS = AS; } | ||
| 1427 | void MSCb(const D3D12_SHADER_BYTECODE& MS) override { PipelineStream.MS = MS; SeenMS = true; } | ||
| 1428 | void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override { PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState); } | ||
| 1429 | void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override | ||
| 1430 | { | ||
| 1431 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1432 | SeenDSS = true; | ||
| 1433 | } | ||
| 1434 | void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override | ||
| 1435 | { | ||
| 1436 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1437 | SeenDSS = true; | ||
| 1438 | } | ||
| 1439 | void DepthStencilState2Cb(const D3D12_DEPTH_STENCIL_DESC2& DepthStencilState) override | ||
| 1440 | { | ||
| 1441 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC2(DepthStencilState); | ||
| 1442 | SeenDSS = true; | ||
| 1443 | } | ||
| 1444 | void DSVFormatCb(DXGI_FORMAT DSVFormat) override { PipelineStream.DSVFormat = DSVFormat; } | ||
| 1445 | void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } | ||
| 1446 | void RasterizerState1Cb(const D3D12_RASTERIZER_DESC1& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } | ||
| 1447 | void RasterizerState2Cb(const D3D12_RASTERIZER_DESC2& RasterizerState) override { PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC2(RasterizerState); } | ||
| 1448 | void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override { PipelineStream.RTVFormats = RTVFormats; } | ||
| 1449 | void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override { PipelineStream.SampleDesc = SampleDesc; } | ||
| 1450 | void SampleMaskCb(UINT SampleMask) override { PipelineStream.SampleMask = SampleMask; } | ||
| 1451 | void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override { PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc); } | ||
| 1452 | void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override { PipelineStream.CachedPSO = CachedPSO; } | ||
| 1453 | void FinalizeCb() override | ||
| 1454 | { | ||
| 1455 | if (!SeenDSS && PipelineStream.DSVFormat != DXGI_FORMAT_UNKNOWN) | ||
| 1456 | { | ||
| 1457 | // Re-enable depth for the default state. | ||
| 1458 | static_cast<D3D12_DEPTH_STENCIL_DESC2&>(PipelineStream.DepthStencilState).DepthEnable = true; | ||
| 1459 | } | ||
| 1460 | if (!SeenTopology && SeenMS) | ||
| 1461 | { | ||
| 1462 | PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED; | ||
| 1463 | } | ||
| 1464 | } | ||
| 1465 | void SerializedRootSignatureCb(const D3D12_SERIALIZED_ROOT_SIGNATURE_DESC& SerializedRootSignature) override { PipelineStream.SerializedRootSignature = CD3DX12_SERIALIZED_ROOT_SIGNATURE_DESC(SerializedRootSignature); } | ||
| 1466 | |||
| 1467 | private: | ||
| 1468 | bool SeenDSS; | ||
| 1469 | bool SeenMS; | ||
| 1470 | bool SeenTopology; | ||
| 1471 | }; | ||
| 1472 | #endif // D3D12_SDK_VERSION >= 618 | ||
| 1473 | |||
| 1474 | struct CD3DX12_PIPELINE_STATE_STREAM_PARSE_HELPER : public ID3DX12PipelineParserCallbacks | ||
| 1475 | { | ||
| 1476 | CD3DX12_PIPELINE_STATE_STREAM1 PipelineStream; | ||
| 1477 | CD3DX12_PIPELINE_STATE_STREAM_PARSE_HELPER() noexcept | ||
| 1478 | : SeenDSS(false) | ||
| 1479 | { | ||
| 1480 | // Adjust defaults to account for absent members. | ||
| 1481 | PipelineStream.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE; | ||
| 1482 | |||
| 1483 | // Depth disabled if no DSV format specified. | ||
| 1484 | static_cast<D3D12_DEPTH_STENCIL_DESC1&>(PipelineStream.DepthStencilState).DepthEnable = false; | ||
| 1485 | } | ||
| 1486 | |||
| 1487 | // ID3DX12PipelineParserCallbacks | ||
| 1488 | void FlagsCb(D3D12_PIPELINE_STATE_FLAGS Flags) override {PipelineStream.Flags = Flags;} | ||
| 1489 | void NodeMaskCb(UINT NodeMask) override {PipelineStream.NodeMask = NodeMask;} | ||
| 1490 | void RootSignatureCb(ID3D12RootSignature* pRootSignature) override {PipelineStream.pRootSignature = pRootSignature;} | ||
| 1491 | void InputLayoutCb(const D3D12_INPUT_LAYOUT_DESC& InputLayout) override {PipelineStream.InputLayout = InputLayout;} | ||
| 1492 | void IBStripCutValueCb(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue) override {PipelineStream.IBStripCutValue = IBStripCutValue;} | ||
| 1493 | void PrimitiveTopologyTypeCb(D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType) override {PipelineStream.PrimitiveTopologyType = PrimitiveTopologyType;} | ||
| 1494 | void VSCb(const D3D12_SHADER_BYTECODE& VS) override {PipelineStream.VS = VS;} | ||
| 1495 | void GSCb(const D3D12_SHADER_BYTECODE& GS) override {PipelineStream.GS = GS;} | ||
| 1496 | void StreamOutputCb(const D3D12_STREAM_OUTPUT_DESC& StreamOutput) override {PipelineStream.StreamOutput = StreamOutput;} | ||
| 1497 | void HSCb(const D3D12_SHADER_BYTECODE& HS) override {PipelineStream.HS = HS;} | ||
| 1498 | void DSCb(const D3D12_SHADER_BYTECODE& DS) override {PipelineStream.DS = DS;} | ||
| 1499 | void PSCb(const D3D12_SHADER_BYTECODE& PS) override {PipelineStream.PS = PS;} | ||
| 1500 | void CSCb(const D3D12_SHADER_BYTECODE& CS) override {PipelineStream.CS = CS;} | ||
| 1501 | void BlendStateCb(const D3D12_BLEND_DESC& BlendState) override {PipelineStream.BlendState = CD3DX12_BLEND_DESC(BlendState);} | ||
| 1502 | void DepthStencilStateCb(const D3D12_DEPTH_STENCIL_DESC& DepthStencilState) override | ||
| 1503 | { | ||
| 1504 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(DepthStencilState); | ||
| 1505 | SeenDSS = true; | ||
| 1506 | } | ||
| 1507 | void DepthStencilState1Cb(const D3D12_DEPTH_STENCIL_DESC1& DepthStencilState) override | ||
| 1508 | { | ||
| 1509 | PipelineStream.DepthStencilState = CD3DX12_DEPTH_STENCIL_DESC1(DepthStencilState); | ||
| 1510 | SeenDSS = true; | ||
| 1511 | } | ||
| 1512 | void DSVFormatCb(DXGI_FORMAT DSVFormat) override | ||
| 1513 | { | ||
| 1514 | PipelineStream.DSVFormat = DSVFormat; | ||
| 1515 | if (!SeenDSS && DSVFormat != DXGI_FORMAT_UNKNOWN) | ||
| 1516 | { | ||
| 1517 | // Re-enable depth for the default state. | ||
| 1518 | static_cast<D3D12_DEPTH_STENCIL_DESC1&>(PipelineStream.DepthStencilState).DepthEnable = true; | ||
| 1519 | } | ||
| 1520 | } | ||
| 1521 | void RasterizerStateCb(const D3D12_RASTERIZER_DESC& RasterizerState) override {PipelineStream.RasterizerState = CD3DX12_RASTERIZER_DESC(RasterizerState);} | ||
| 1522 | void RTVFormatsCb(const D3D12_RT_FORMAT_ARRAY& RTVFormats) override {PipelineStream.RTVFormats = RTVFormats;} | ||
| 1523 | void SampleDescCb(const DXGI_SAMPLE_DESC& SampleDesc) override {PipelineStream.SampleDesc = SampleDesc;} | ||
| 1524 | void SampleMaskCb(UINT SampleMask) override {PipelineStream.SampleMask = SampleMask;} | ||
| 1525 | void ViewInstancingCb(const D3D12_VIEW_INSTANCING_DESC& ViewInstancingDesc) override {PipelineStream.ViewInstancingDesc = CD3DX12_VIEW_INSTANCING_DESC(ViewInstancingDesc);} | ||
| 1526 | void CachedPSOCb(const D3D12_CACHED_PIPELINE_STATE& CachedPSO) override {PipelineStream.CachedPSO = CachedPSO;} | ||
| 1527 | |||
| 1528 | private: | ||
| 1529 | bool SeenDSS; | ||
| 1530 | }; | ||
| 1531 | |||
| 1532 | |||
| 1533 | inline D3D12_PIPELINE_STATE_SUBOBJECT_TYPE D3DX12GetBaseSubobjectType(D3D12_PIPELINE_STATE_SUBOBJECT_TYPE SubobjectType) noexcept | ||
| 1534 | { | ||
| 1535 | switch (SubobjectType) | ||
| 1536 | { | ||
| 1537 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1: | ||
| 1538 | return D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL; | ||
| 1539 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 1540 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2: | ||
| 1541 | return D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL; | ||
| 1542 | #endif | ||
| 1543 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 1544 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1: | ||
| 1545 | return D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER; | ||
| 1546 | #endif | ||
| 1547 | default: | ||
| 1548 | return SubobjectType; | ||
| 1549 | } | ||
| 1550 | } | ||
| 1551 | |||
| 1552 | inline HRESULT D3DX12ParsePipelineStream(const D3D12_PIPELINE_STATE_STREAM_DESC& Desc, ID3DX12PipelineParserCallbacks* pCallbacks) | ||
| 1553 | { | ||
| 1554 | if (pCallbacks == nullptr) | ||
| 1555 | { | ||
| 1556 | return E_INVALIDARG; | ||
| 1557 | } | ||
| 1558 | |||
| 1559 | if (Desc.SizeInBytes == 0 || Desc.pPipelineStateSubobjectStream == nullptr) | ||
| 1560 | { | ||
| 1561 | pCallbacks->ErrorBadInputParameter(1); // first parameter issue | ||
| 1562 | return E_INVALIDARG; | ||
| 1563 | } | ||
| 1564 | |||
| 1565 | bool SubobjectSeen[D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID] = {}; | ||
| 1566 | for (SIZE_T CurOffset = 0, SizeOfSubobject = 0; CurOffset < Desc.SizeInBytes; CurOffset += SizeOfSubobject) | ||
| 1567 | { | ||
| 1568 | BYTE* pStream = static_cast<BYTE*>(Desc.pPipelineStateSubobjectStream)+CurOffset; | ||
| 1569 | auto SubobjectType = *reinterpret_cast<D3D12_PIPELINE_STATE_SUBOBJECT_TYPE*>(pStream); | ||
| 1570 | if (SubobjectType < 0 || SubobjectType >= D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MAX_VALID) | ||
| 1571 | { | ||
| 1572 | pCallbacks->ErrorUnknownSubobject(SubobjectType); | ||
| 1573 | return E_INVALIDARG; | ||
| 1574 | } | ||
| 1575 | if (SubobjectSeen[D3DX12GetBaseSubobjectType(SubobjectType)]) | ||
| 1576 | { | ||
| 1577 | pCallbacks->ErrorDuplicateSubobject(SubobjectType); | ||
| 1578 | return E_INVALIDARG; // disallow subobject duplicates in a stream | ||
| 1579 | } | ||
| 1580 | SubobjectSeen[SubobjectType] = true; | ||
| 1581 | switch (SubobjectType) | ||
| 1582 | { | ||
| 1583 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_ROOT_SIGNATURE: | ||
| 1584 | pCallbacks->RootSignatureCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::pRootSignature)*>(pStream)); | ||
| 1585 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::pRootSignature); | ||
| 1586 | break; | ||
| 1587 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VS: | ||
| 1588 | pCallbacks->VSCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::VS)*>(pStream)); | ||
| 1589 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::VS); | ||
| 1590 | break; | ||
| 1591 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PS: | ||
| 1592 | pCallbacks->PSCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::PS)*>(pStream)); | ||
| 1593 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::PS); | ||
| 1594 | break; | ||
| 1595 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DS: | ||
| 1596 | pCallbacks->DSCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::DS)*>(pStream)); | ||
| 1597 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::DS); | ||
| 1598 | break; | ||
| 1599 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_HS: | ||
| 1600 | pCallbacks->HSCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::HS)*>(pStream)); | ||
| 1601 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::HS); | ||
| 1602 | break; | ||
| 1603 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_GS: | ||
| 1604 | pCallbacks->GSCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::GS)*>(pStream)); | ||
| 1605 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::GS); | ||
| 1606 | break; | ||
| 1607 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CS: | ||
| 1608 | pCallbacks->CSCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::CS)*>(pStream)); | ||
| 1609 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::CS); | ||
| 1610 | break; | ||
| 1611 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_AS: | ||
| 1612 | pCallbacks->ASCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM2::AS)*>(pStream)); | ||
| 1613 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM2::AS); | ||
| 1614 | break; | ||
| 1615 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_MS: | ||
| 1616 | pCallbacks->MSCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM2::MS)*>(pStream)); | ||
| 1617 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM2::MS); | ||
| 1618 | break; | ||
| 1619 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT: | ||
| 1620 | pCallbacks->StreamOutputCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::StreamOutput)*>(pStream)); | ||
| 1621 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::StreamOutput); | ||
| 1622 | break; | ||
| 1623 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_BLEND: | ||
| 1624 | pCallbacks->BlendStateCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::BlendState)*>(pStream)); | ||
| 1625 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::BlendState); | ||
| 1626 | break; | ||
| 1627 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_MASK: | ||
| 1628 | pCallbacks->SampleMaskCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::SampleMask)*>(pStream)); | ||
| 1629 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::SampleMask); | ||
| 1630 | break; | ||
| 1631 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER: | ||
| 1632 | pCallbacks->RasterizerStateCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::RasterizerState)*>(pStream)); | ||
| 1633 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::RasterizerState); | ||
| 1634 | break; | ||
| 1635 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 608) | ||
| 1636 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER1: | ||
| 1637 | pCallbacks->RasterizerState1Cb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM4::RasterizerState)*>(pStream)); | ||
| 1638 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM4::RasterizerState); | ||
| 1639 | break; | ||
| 1640 | #endif | ||
| 1641 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 610) | ||
| 1642 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RASTERIZER2: | ||
| 1643 | pCallbacks->RasterizerState2Cb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM5::RasterizerState)*>(pStream)); | ||
| 1644 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM5::RasterizerState); | ||
| 1645 | break; | ||
| 1646 | #endif | ||
| 1647 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL: | ||
| 1648 | pCallbacks->DepthStencilStateCb(*reinterpret_cast<CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL*>(pStream)); | ||
| 1649 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM_DEPTH_STENCIL); | ||
| 1650 | break; | ||
| 1651 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1: | ||
| 1652 | pCallbacks->DepthStencilState1Cb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::DepthStencilState)*>(pStream)); | ||
| 1653 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::DepthStencilState); | ||
| 1654 | break; | ||
| 1655 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 1656 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2: | ||
| 1657 | pCallbacks->DepthStencilState2Cb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM3::DepthStencilState)*>(pStream)); | ||
| 1658 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM3::DepthStencilState); | ||
| 1659 | break; | ||
| 1660 | #endif | ||
| 1661 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT: | ||
| 1662 | pCallbacks->InputLayoutCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::InputLayout)*>(pStream)); | ||
| 1663 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::InputLayout); | ||
| 1664 | break; | ||
| 1665 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE: | ||
| 1666 | pCallbacks->IBStripCutValueCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::IBStripCutValue)*>(pStream)); | ||
| 1667 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::IBStripCutValue); | ||
| 1668 | break; | ||
| 1669 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY: | ||
| 1670 | pCallbacks->PrimitiveTopologyTypeCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::PrimitiveTopologyType)*>(pStream)); | ||
| 1671 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::PrimitiveTopologyType); | ||
| 1672 | break; | ||
| 1673 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS: | ||
| 1674 | pCallbacks->RTVFormatsCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::RTVFormats)*>(pStream)); | ||
| 1675 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::RTVFormats); | ||
| 1676 | break; | ||
| 1677 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT: | ||
| 1678 | pCallbacks->DSVFormatCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::DSVFormat)*>(pStream)); | ||
| 1679 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::DSVFormat); | ||
| 1680 | break; | ||
| 1681 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SAMPLE_DESC: | ||
| 1682 | pCallbacks->SampleDescCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::SampleDesc)*>(pStream)); | ||
| 1683 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::SampleDesc); | ||
| 1684 | break; | ||
| 1685 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_NODE_MASK: | ||
| 1686 | pCallbacks->NodeMaskCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::NodeMask)*>(pStream)); | ||
| 1687 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::NodeMask); | ||
| 1688 | break; | ||
| 1689 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_CACHED_PSO: | ||
| 1690 | pCallbacks->CachedPSOCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::CachedPSO)*>(pStream)); | ||
| 1691 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::CachedPSO); | ||
| 1692 | break; | ||
| 1693 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_FLAGS: | ||
| 1694 | pCallbacks->FlagsCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM::Flags)*>(pStream)); | ||
| 1695 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM::Flags); | ||
| 1696 | break; | ||
| 1697 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING: | ||
| 1698 | pCallbacks->ViewInstancingCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM1::ViewInstancingDesc)*>(pStream)); | ||
| 1699 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM1::ViewInstancingDesc); | ||
| 1700 | break; | ||
| 1701 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 618) | ||
| 1702 | case D3D12_PIPELINE_STATE_SUBOBJECT_TYPE_SERIALIZED_ROOT_SIGNATURE: | ||
| 1703 | pCallbacks->SerializedRootSignatureCb(*reinterpret_cast<decltype(CD3DX12_PIPELINE_STATE_STREAM6::SerializedRootSignature)*>(pStream)); | ||
| 1704 | SizeOfSubobject = sizeof(CD3DX12_PIPELINE_STATE_STREAM6::SerializedRootSignature); | ||
| 1705 | break; | ||
| 1706 | #endif | ||
| 1707 | default: | ||
| 1708 | pCallbacks->ErrorUnknownSubobject(SubobjectType); | ||
| 1709 | return E_INVALIDARG; | ||
| 1710 | } | ||
| 1711 | } | ||
| 1712 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 613) | ||
| 1713 | pCallbacks->FinalizeCb(); | ||
| 1714 | #endif | ||
| 1715 | |||
| 1716 | return S_OK; | ||
| 1717 | } | ||
| 1718 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_property_format_table.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_property_format_table.h new file mode 100644 index 0000000..66c7600 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_property_format_table.h | |||
| @@ -0,0 +1,128 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | #ifndef __D3D12_PROPERTY_LAYOUT_FORMAT_TABLE_H__ | ||
| 8 | #define __D3D12_PROPERTY_LAYOUT_FORMAT_TABLE_H__ | ||
| 9 | #include "d3d12.h" | ||
| 10 | #define MAP_ALIGN_REQUIREMENT 16 // Map is required to return 16-byte aligned addresses | ||
| 11 | |||
| 12 | struct D3D12_PROPERTY_LAYOUT_FORMAT_TABLE | ||
| 13 | { | ||
| 14 | public: | ||
| 15 | // ---------------------------------------------------------------------------- | ||
| 16 | // Information describing everything about a D3D Resource Format | ||
| 17 | // ---------------------------------------------------------------------------- | ||
| 18 | typedef struct FORMAT_DETAIL | ||
| 19 | { | ||
| 20 | DXGI_FORMAT DXGIFormat; | ||
| 21 | DXGI_FORMAT ParentFormat; | ||
| 22 | const DXGI_FORMAT* pDefaultFormatCastSet; // This is dependent on FL/driver version, but is here to save a lot of space | ||
| 23 | UINT8 BitsPerComponent[4]; // only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE | ||
| 24 | UINT8 BitsPerUnit; | ||
| 25 | BYTE SRGBFormat : 1; | ||
| 26 | UINT WidthAlignment : 4; // number of texels to align to in a mip level. | ||
| 27 | UINT HeightAlignment : 4; // Top level dimensions must be a multiple of these | ||
| 28 | UINT DepthAlignment : 1; // values. | ||
| 29 | D3D_FORMAT_LAYOUT Layout : 1; | ||
| 30 | D3D_FORMAT_TYPE_LEVEL TypeLevel : 2; | ||
| 31 | D3D_FORMAT_COMPONENT_NAME ComponentName0 : 3; // RED ... only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE | ||
| 32 | D3D_FORMAT_COMPONENT_NAME ComponentName1 : 3; // GREEN ... only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE | ||
| 33 | D3D_FORMAT_COMPONENT_NAME ComponentName2 : 3; // BLUE ... only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE | ||
| 34 | D3D_FORMAT_COMPONENT_NAME ComponentName3 : 3; // ALPHA ... only used for D3DFTL_PARTIAL_TYPE or FULL_TYPE | ||
| 35 | D3D_FORMAT_COMPONENT_INTERPRETATION ComponentInterpretation0 : 3; // only used for D3DFTL_FULL_TYPE | ||
| 36 | D3D_FORMAT_COMPONENT_INTERPRETATION ComponentInterpretation1 : 3; // only used for D3DFTL_FULL_TYPE | ||
| 37 | D3D_FORMAT_COMPONENT_INTERPRETATION ComponentInterpretation2 : 3; // only used for D3DFTL_FULL_TYPE | ||
| 38 | D3D_FORMAT_COMPONENT_INTERPRETATION ComponentInterpretation3 : 3; // only used for D3DFTL_FULL_TYPE | ||
| 39 | bool bDX9VertexOrIndexFormat : 1; | ||
| 40 | bool bDX9TextureFormat : 1; | ||
| 41 | bool bFloatNormFormat : 1; | ||
| 42 | bool bPlanar : 1; | ||
| 43 | bool bYUV : 1; | ||
| 44 | bool bDependantFormatCastSet : 1; // This indicates that the format cast set is dependent on FL/driver version | ||
| 45 | bool bInternal : 1; | ||
| 46 | } FORMAT_DETAIL; | ||
| 47 | |||
| 48 | private: | ||
| 49 | static const FORMAT_DETAIL s_FormatDetail[]; | ||
| 50 | static const UINT s_NumFormats; | ||
| 51 | static const LPCSTR s_FormatNames[]; // separate from above structure so it can be compiled out of runtime. | ||
| 52 | public: | ||
| 53 | static UINT GetNumFormats(); | ||
| 54 | static const FORMAT_DETAIL* GetFormatTable(); | ||
| 55 | static D3D_FEATURE_LEVEL GetHighestDefinedFeatureLevel(); | ||
| 56 | |||
| 57 | static DXGI_FORMAT GetFormat (SIZE_T Index); | ||
| 58 | static bool FormatExists (DXGI_FORMAT Format); | ||
| 59 | static bool FormatExistsInHeader (DXGI_FORMAT Format, bool bExternalHeader = true); | ||
| 60 | static UINT GetByteAlignment (DXGI_FORMAT Format); | ||
| 61 | static bool IsBlockCompressFormat (DXGI_FORMAT Format); | ||
| 62 | static LPCSTR GetName (DXGI_FORMAT Format, bool bHideInternalFormats = true); | ||
| 63 | static bool IsSRGBFormat (DXGI_FORMAT Format); | ||
| 64 | static UINT GetBitsPerStencil (DXGI_FORMAT Format); | ||
| 65 | static UINT GetBitsPerDepth (DXGI_FORMAT Format); | ||
| 66 | static void GetFormatReturnTypes (DXGI_FORMAT Format, D3D_FORMAT_COMPONENT_INTERPRETATION* pInterpretations); // return array of 4 components | ||
| 67 | static UINT GetNumComponentsInFormat(DXGI_FORMAT Format); | ||
| 68 | static UINT GetMinNumComponentsInFormats(DXGI_FORMAT FormatA, DXGI_FORMAT FormatB); | ||
| 69 | |||
| 70 | // Converts the sequential component index (range from 0 to GetNumComponentsInFormat()) to | ||
| 71 | // the absolute component index (range 0 to 3). | ||
| 72 | static UINT Sequential2AbsoluteComponentIndex (DXGI_FORMAT Format, UINT SequentialComponentIndex); | ||
| 73 | static bool CanBeCastEvenFullyTyped (DXGI_FORMAT Format, D3D_FEATURE_LEVEL fl); | ||
| 74 | static UINT8 GetAddressingBitsPerAlignedSize (DXGI_FORMAT Format); | ||
| 75 | static DXGI_FORMAT GetParentFormat (DXGI_FORMAT Format); | ||
| 76 | static const DXGI_FORMAT* GetFormatCastSet (DXGI_FORMAT Format); | ||
| 77 | static D3D_FORMAT_LAYOUT GetLayout (DXGI_FORMAT Format); | ||
| 78 | static D3D_FORMAT_TYPE_LEVEL GetTypeLevel (DXGI_FORMAT Format); | ||
| 79 | static UINT GetBitsPerUnit (DXGI_FORMAT Format); | ||
| 80 | static UINT GetBitsPerUnitThrow (DXGI_FORMAT Format); | ||
| 81 | static UINT GetBitsPerElement (DXGI_FORMAT Format); // Legacy function used to support D3D10on9 only. Do not use. | ||
| 82 | static UINT GetWidthAlignment (DXGI_FORMAT Format); | ||
| 83 | static UINT GetHeightAlignment (DXGI_FORMAT Format); | ||
| 84 | static UINT GetDepthAlignment (DXGI_FORMAT Format); | ||
| 85 | static BOOL Planar (DXGI_FORMAT Format); | ||
| 86 | static BOOL NonOpaquePlanar (DXGI_FORMAT Format); | ||
| 87 | static BOOL YUV (DXGI_FORMAT Format); | ||
| 88 | static BOOL Opaque (DXGI_FORMAT Format); | ||
| 89 | static bool FamilySupportsStencil (DXGI_FORMAT Format); | ||
| 90 | static UINT NonOpaquePlaneCount (DXGI_FORMAT Format); | ||
| 91 | static BOOL DX9VertexOrIndexFormat (DXGI_FORMAT Format); | ||
| 92 | static BOOL DX9TextureFormat (DXGI_FORMAT Format); | ||
| 93 | static BOOL FloatNormTextureFormat (DXGI_FORMAT Format); | ||
| 94 | static bool DepthOnlyFormat (DXGI_FORMAT format); | ||
| 95 | static UINT8 GetPlaneCount (DXGI_FORMAT Format); | ||
| 96 | static bool MotionEstimatorAllowedInputFormat (DXGI_FORMAT Format); | ||
| 97 | static bool SupportsSamplerFeedback (DXGI_FORMAT Format); | ||
| 98 | static bool DecodeHistogramAllowedForOutputFormatSupport(DXGI_FORMAT Format); | ||
| 99 | static UINT8 GetPlaneSliceFromViewFormat (DXGI_FORMAT ResourceFormat, DXGI_FORMAT ViewFormat); | ||
| 100 | static bool FloatAndNotFloatFormats (DXGI_FORMAT FormatA, DXGI_FORMAT FormatB); | ||
| 101 | static bool SNORMAndUNORMFormats (DXGI_FORMAT FormatA, DXGI_FORMAT FormatB); | ||
| 102 | static bool ValidCastToR32UAV (DXGI_FORMAT from, DXGI_FORMAT to); | ||
| 103 | static bool IsSupportedTextureDisplayableFormat (DXGI_FORMAT, bool bMediaFormatOnly); | ||
| 104 | static D3D_FORMAT_COMPONENT_INTERPRETATION GetFormatComponentInterpretation (DXGI_FORMAT Format, UINT AbsoluteComponentIndex); | ||
| 105 | static UINT GetBitsPerComponent (DXGI_FORMAT Format, UINT AbsoluteComponentIndex); | ||
| 106 | static D3D_FORMAT_COMPONENT_NAME GetComponentName (DXGI_FORMAT Format, UINT AbsoluteComponentIndex); | ||
| 107 | static HRESULT CalculateExtraPlanarRows (DXGI_FORMAT format, UINT plane0Height, _Out_ UINT& totalHeight); | ||
| 108 | static HRESULT CalculateMinimumRowMajorRowPitch (DXGI_FORMAT Format, UINT Width, _Out_ UINT& RowPitch); | ||
| 109 | static HRESULT CalculateMinimumRowMajorSlicePitch (DXGI_FORMAT Format, UINT ContextBasedRowPitch, UINT Height, _Out_ UINT& SlicePitch); | ||
| 110 | static void GetYCbCrChromaSubsampling (DXGI_FORMAT Format, _Out_ UINT& HorizontalSubsampling, _Out_ UINT& VerticalSubsampling); | ||
| 111 | |||
| 112 | 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); | ||
| 113 | static void GetTileShape (D3D12_TILE_SHAPE* pTileShape, DXGI_FORMAT Format, D3D12_RESOURCE_DIMENSION Dimension, UINT SampleCount); | ||
| 114 | static void Get4KTileShape (D3D12_TILE_SHAPE* pTileShape, DXGI_FORMAT Format, D3D12_RESOURCE_DIMENSION Dimension, UINT SampleCount); | ||
| 115 | static void GetMipDimensions (UINT8 mipSlice, _Inout_ UINT64* pWidth, _Inout_opt_ UINT64* pHeight = nullptr, _Inout_opt_ UINT64* pDepth = nullptr); | ||
| 116 | 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); | ||
| 117 | |||
| 118 | static UINT GetDetailTableIndex (DXGI_FORMAT Format); | ||
| 119 | static UINT GetDetailTableIndexNoThrow (DXGI_FORMAT Format); | ||
| 120 | static UINT GetDetailTableIndexThrow (DXGI_FORMAT Format); | ||
| 121 | static bool SupportsDepth (DXGI_FORMAT Format); | ||
| 122 | static bool SupportsStencil (DXGI_FORMAT Format); | ||
| 123 | private: | ||
| 124 | static const FORMAT_DETAIL* GetFormatDetail (DXGI_FORMAT Format); | ||
| 125 | |||
| 126 | }; | ||
| 127 | |||
| 128 | #endif \ No newline at end of file | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_render_pass.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_render_pass.h new file mode 100644 index 0000000..c88fbdf --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_render_pass.h | |||
| @@ -0,0 +1,105 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #pragma once | ||
| 9 | |||
| 10 | #ifndef __cplusplus | ||
| 11 | #error D3DX12 requires C++ | ||
| 12 | #endif | ||
| 13 | |||
| 14 | #include "d3d12.h" | ||
| 15 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 16 | inline bool operator==(const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& a, const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& b) noexcept | ||
| 17 | { | ||
| 18 | return ((a.AdditionalWidth == b.AdditionalWidth) && (a.AdditionalHeight == b.AdditionalHeight)); | ||
| 19 | } | ||
| 20 | |||
| 21 | inline bool operator==(const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& a, const D3D12_RENDER_PASS_BEGINNING_ACCESS_PRESERVE_LOCAL_PARAMETERS& b) noexcept | ||
| 22 | { | ||
| 23 | return ((a.AdditionalWidth == b.AdditionalWidth) && (a.AdditionalHeight == b.AdditionalHeight)); | ||
| 24 | } | ||
| 25 | |||
| 26 | inline bool operator==(const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& a, const D3D12_RENDER_PASS_ENDING_ACCESS_PRESERVE_LOCAL_PARAMETERS& b) noexcept | ||
| 27 | { | ||
| 28 | return ((a.AdditionalWidth == b.AdditionalWidth) && (a.AdditionalHeight == b.AdditionalHeight)); | ||
| 29 | } | ||
| 30 | #endif | ||
| 31 | |||
| 32 | inline bool operator==( const D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS &a, const D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS &b) noexcept | ||
| 33 | { | ||
| 34 | return a.ClearValue == b.ClearValue; | ||
| 35 | } | ||
| 36 | |||
| 37 | inline bool operator==( const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS &a, const D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS &b) noexcept | ||
| 38 | { | ||
| 39 | if (a.pSrcResource != b.pSrcResource) return false; | ||
| 40 | if (a.pDstResource != b.pDstResource) return false; | ||
| 41 | if (a.SubresourceCount != b.SubresourceCount) return false; | ||
| 42 | if (a.Format != b.Format) return false; | ||
| 43 | if (a.ResolveMode != b.ResolveMode) return false; | ||
| 44 | if (a.PreserveResolveSource != b.PreserveResolveSource) return false; | ||
| 45 | return true; | ||
| 46 | } | ||
| 47 | |||
| 48 | inline bool operator==( const D3D12_RENDER_PASS_BEGINNING_ACCESS &a, const D3D12_RENDER_PASS_BEGINNING_ACCESS &b) noexcept | ||
| 49 | { | ||
| 50 | if (a.Type != b.Type) return false; | ||
| 51 | switch (a.Type) | ||
| 52 | { | ||
| 53 | case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_CLEAR: | ||
| 54 | if (!(a.Clear == b.Clear)) return false; | ||
| 55 | break; | ||
| 56 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 57 | case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: | ||
| 58 | case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: | ||
| 59 | case D3D12_RENDER_PASS_BEGINNING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: | ||
| 60 | if (!(a.PreserveLocal == b.PreserveLocal)) return false; | ||
| 61 | break; | ||
| 62 | #endif | ||
| 63 | default: | ||
| 64 | break; | ||
| 65 | } | ||
| 66 | return true; | ||
| 67 | } | ||
| 68 | |||
| 69 | inline bool operator==(const D3D12_RENDER_PASS_ENDING_ACCESS& a, const D3D12_RENDER_PASS_ENDING_ACCESS& b) noexcept | ||
| 70 | { | ||
| 71 | if (a.Type != b.Type) return false; | ||
| 72 | switch (a.Type) | ||
| 73 | { | ||
| 74 | case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_RESOLVE: | ||
| 75 | if (!(a.Resolve == b.Resolve)) return false; | ||
| 76 | break; | ||
| 77 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 78 | case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_RENDER: | ||
| 79 | case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_SRV: | ||
| 80 | case D3D12_RENDER_PASS_ENDING_ACCESS_TYPE_PRESERVE_LOCAL_UAV: | ||
| 81 | if (!(a.PreserveLocal == b.PreserveLocal)) return false; | ||
| 82 | break; | ||
| 83 | #endif | ||
| 84 | default: | ||
| 85 | break; | ||
| 86 | } | ||
| 87 | return true; | ||
| 88 | } | ||
| 89 | |||
| 90 | inline bool operator==( const D3D12_RENDER_PASS_RENDER_TARGET_DESC &a, const D3D12_RENDER_PASS_RENDER_TARGET_DESC &b) noexcept | ||
| 91 | { | ||
| 92 | if (a.cpuDescriptor.ptr != b.cpuDescriptor.ptr) return false; | ||
| 93 | if (!(a.BeginningAccess == b.BeginningAccess)) return false; | ||
| 94 | if (!(a.EndingAccess == b.EndingAccess)) return false; | ||
| 95 | return true; | ||
| 96 | } | ||
| 97 | inline bool operator==( const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC &a, const D3D12_RENDER_PASS_DEPTH_STENCIL_DESC &b) noexcept | ||
| 98 | { | ||
| 99 | if (a.cpuDescriptor.ptr != b.cpuDescriptor.ptr) return false; | ||
| 100 | if (!(a.DepthBeginningAccess == b.DepthBeginningAccess)) return false; | ||
| 101 | if (!(a.StencilBeginningAccess == b.StencilBeginningAccess)) return false; | ||
| 102 | if (!(a.DepthEndingAccess == b.DepthEndingAccess)) return false; | ||
| 103 | if (!(a.StencilEndingAccess == b.StencilEndingAccess)) return false; | ||
| 104 | return true; | ||
| 105 | } | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_resource_helpers.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_resource_helpers.h new file mode 100644 index 0000000..5c1c980 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_resource_helpers.h | |||
| @@ -0,0 +1,612 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #pragma once | ||
| 9 | |||
| 10 | #ifndef __cplusplus | ||
| 11 | #error D3DX12 requires C++ | ||
| 12 | #endif | ||
| 13 | |||
| 14 | #include "d3dx12_property_format_table.h" | ||
| 15 | #include "d3d12.h" | ||
| 16 | #include "d3dx12_core.h" | ||
| 17 | //------------------------------------------------------------------------------------------------ | ||
| 18 | template <typename T, typename U, typename V> | ||
| 19 | inline void D3D12DecomposeSubresource( UINT Subresource, UINT MipLevels, UINT ArraySize, _Out_ T& MipSlice, _Out_ U& ArraySlice, _Out_ V& PlaneSlice ) noexcept | ||
| 20 | { | ||
| 21 | MipSlice = static_cast<T>(Subresource % MipLevels); | ||
| 22 | ArraySlice = static_cast<U>((Subresource / MipLevels) % ArraySize); | ||
| 23 | PlaneSlice = static_cast<V>(Subresource / (MipLevels * ArraySize)); | ||
| 24 | } | ||
| 25 | |||
| 26 | //------------------------------------------------------------------------------------------------ | ||
| 27 | // Row-by-row memcpy | ||
| 28 | inline void MemcpySubresource( | ||
| 29 | _In_ const D3D12_MEMCPY_DEST* pDest, | ||
| 30 | _In_ const D3D12_SUBRESOURCE_DATA* pSrc, | ||
| 31 | SIZE_T RowSizeInBytes, | ||
| 32 | UINT NumRows, | ||
| 33 | UINT NumSlices) noexcept | ||
| 34 | { | ||
| 35 | for (UINT z = 0; z < NumSlices; ++z) | ||
| 36 | { | ||
| 37 | auto pDestSlice = static_cast<BYTE*>(pDest->pData) + pDest->SlicePitch * z; | ||
| 38 | auto pSrcSlice = static_cast<const BYTE*>(pSrc->pData) + pSrc->SlicePitch * LONG_PTR(z); | ||
| 39 | for (UINT y = 0; y < NumRows; ++y) | ||
| 40 | { | ||
| 41 | memcpy(pDestSlice + pDest->RowPitch * y, | ||
| 42 | pSrcSlice + pSrc->RowPitch * LONG_PTR(y), | ||
| 43 | RowSizeInBytes); | ||
| 44 | } | ||
| 45 | } | ||
| 46 | } | ||
| 47 | |||
| 48 | //------------------------------------------------------------------------------------------------ | ||
| 49 | // Row-by-row memcpy | ||
| 50 | inline void MemcpySubresource( | ||
| 51 | _In_ const D3D12_MEMCPY_DEST* pDest, | ||
| 52 | _In_ const void* pResourceData, | ||
| 53 | _In_ const D3D12_SUBRESOURCE_INFO* pSrc, | ||
| 54 | SIZE_T RowSizeInBytes, | ||
| 55 | UINT NumRows, | ||
| 56 | UINT NumSlices) noexcept | ||
| 57 | { | ||
| 58 | for (UINT z = 0; z < NumSlices; ++z) | ||
| 59 | { | ||
| 60 | auto pDestSlice = static_cast<BYTE*>(pDest->pData) + pDest->SlicePitch * z; | ||
| 61 | auto pSrcSlice = (static_cast<const BYTE*>(pResourceData) + pSrc->Offset) + pSrc->DepthPitch * ULONG_PTR(z); | ||
| 62 | for (UINT y = 0; y < NumRows; ++y) | ||
| 63 | { | ||
| 64 | memcpy(pDestSlice + pDest->RowPitch * y, | ||
| 65 | pSrcSlice + pSrc->RowPitch * ULONG_PTR(y), | ||
| 66 | RowSizeInBytes); | ||
| 67 | } | ||
| 68 | } | ||
| 69 | } | ||
| 70 | |||
| 71 | //------------------------------------------------------------------------------------------------ | ||
| 72 | // Returns required size of a buffer to be used for data upload | ||
| 73 | inline UINT64 GetRequiredIntermediateSize( | ||
| 74 | _In_ ID3D12Resource* pDestinationResource, | ||
| 75 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 76 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources) noexcept | ||
| 77 | { | ||
| 78 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 79 | const auto Desc = pDestinationResource->GetDesc(); | ||
| 80 | #else | ||
| 81 | D3D12_RESOURCE_DESC tmpDesc; | ||
| 82 | const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); | ||
| 83 | #endif | ||
| 84 | UINT64 RequiredSize = 0; | ||
| 85 | |||
| 86 | ID3D12Device* pDevice = nullptr; | ||
| 87 | pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast<void**>(&pDevice)); | ||
| 88 | pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize); | ||
| 89 | pDevice->Release(); | ||
| 90 | |||
| 91 | return RequiredSize; | ||
| 92 | } | ||
| 93 | |||
| 94 | //------------------------------------------------------------------------------------------------ | ||
| 95 | // All arrays must be populated (e.g. by calling GetCopyableFootprints) | ||
| 96 | inline UINT64 UpdateSubresources( | ||
| 97 | _In_ ID3D12GraphicsCommandList* pCmdList, | ||
| 98 | _In_ ID3D12Resource* pDestinationResource, | ||
| 99 | _In_ ID3D12Resource* pIntermediate, | ||
| 100 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 101 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 102 | UINT64 RequiredSize, | ||
| 103 | _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, | ||
| 104 | _In_reads_(NumSubresources) const UINT* pNumRows, | ||
| 105 | _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes, | ||
| 106 | _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) noexcept | ||
| 107 | { | ||
| 108 | // Minor validation | ||
| 109 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 110 | const auto IntermediateDesc = pIntermediate->GetDesc(); | ||
| 111 | const auto DestinationDesc = pDestinationResource->GetDesc(); | ||
| 112 | #else | ||
| 113 | D3D12_RESOURCE_DESC tmpDesc1, tmpDesc2; | ||
| 114 | const auto& IntermediateDesc = *pIntermediate->GetDesc(&tmpDesc1); | ||
| 115 | const auto& DestinationDesc = *pDestinationResource->GetDesc(&tmpDesc2); | ||
| 116 | #endif | ||
| 117 | if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || | ||
| 118 | IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || | ||
| 119 | RequiredSize > SIZE_T(-1) || | ||
| 120 | (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && | ||
| 121 | (FirstSubresource != 0 || NumSubresources != 1))) | ||
| 122 | { | ||
| 123 | return 0; | ||
| 124 | } | ||
| 125 | |||
| 126 | BYTE* pData; | ||
| 127 | HRESULT hr = pIntermediate->Map(0, nullptr, reinterpret_cast<void**>(&pData)); | ||
| 128 | if (FAILED(hr)) | ||
| 129 | { | ||
| 130 | return 0; | ||
| 131 | } | ||
| 132 | |||
| 133 | for (UINT i = 0; i < NumSubresources; ++i) | ||
| 134 | { | ||
| 135 | if (pRowSizesInBytes[i] > SIZE_T(-1)) return 0; | ||
| 136 | D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, SIZE_T(pLayouts[i].Footprint.RowPitch) * SIZE_T(pNumRows[i]) }; | ||
| 137 | MemcpySubresource(&DestData, &pSrcData[i], static_cast<SIZE_T>(pRowSizesInBytes[i]), pNumRows[i], pLayouts[i].Footprint.Depth); | ||
| 138 | } | ||
| 139 | pIntermediate->Unmap(0, nullptr); | ||
| 140 | |||
| 141 | if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) | ||
| 142 | { | ||
| 143 | pCmdList->CopyBufferRegion( | ||
| 144 | pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); | ||
| 145 | } | ||
| 146 | else | ||
| 147 | { | ||
| 148 | for (UINT i = 0; i < NumSubresources; ++i) | ||
| 149 | { | ||
| 150 | const CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); | ||
| 151 | const CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); | ||
| 152 | pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); | ||
| 153 | } | ||
| 154 | } | ||
| 155 | return RequiredSize; | ||
| 156 | } | ||
| 157 | |||
| 158 | //------------------------------------------------------------------------------------------------ | ||
| 159 | // All arrays must be populated (e.g. by calling GetCopyableFootprints) | ||
| 160 | inline UINT64 UpdateSubresources( | ||
| 161 | _In_ ID3D12GraphicsCommandList* pCmdList, | ||
| 162 | _In_ ID3D12Resource* pDestinationResource, | ||
| 163 | _In_ ID3D12Resource* pIntermediate, | ||
| 164 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 165 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 166 | UINT64 RequiredSize, | ||
| 167 | _In_reads_(NumSubresources) const D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, | ||
| 168 | _In_reads_(NumSubresources) const UINT* pNumRows, | ||
| 169 | _In_reads_(NumSubresources) const UINT64* pRowSizesInBytes, | ||
| 170 | _In_ const void* pResourceData, | ||
| 171 | _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_INFO* pSrcData) noexcept | ||
| 172 | { | ||
| 173 | // Minor validation | ||
| 174 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 175 | const auto IntermediateDesc = pIntermediate->GetDesc(); | ||
| 176 | const auto DestinationDesc = pDestinationResource->GetDesc(); | ||
| 177 | #else | ||
| 178 | D3D12_RESOURCE_DESC tmpDesc1, tmpDesc2; | ||
| 179 | const auto& IntermediateDesc = *pIntermediate->GetDesc(&tmpDesc1); | ||
| 180 | const auto& DestinationDesc = *pDestinationResource->GetDesc(&tmpDesc2); | ||
| 181 | #endif | ||
| 182 | if (IntermediateDesc.Dimension != D3D12_RESOURCE_DIMENSION_BUFFER || | ||
| 183 | IntermediateDesc.Width < RequiredSize + pLayouts[0].Offset || | ||
| 184 | RequiredSize > SIZE_T(-1) || | ||
| 185 | (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && | ||
| 186 | (FirstSubresource != 0 || NumSubresources != 1))) | ||
| 187 | { | ||
| 188 | return 0; | ||
| 189 | } | ||
| 190 | |||
| 191 | BYTE* pData; | ||
| 192 | HRESULT hr = pIntermediate->Map(0, nullptr, reinterpret_cast<void**>(&pData)); | ||
| 193 | if (FAILED(hr)) | ||
| 194 | { | ||
| 195 | return 0; | ||
| 196 | } | ||
| 197 | |||
| 198 | for (UINT i = 0; i < NumSubresources; ++i) | ||
| 199 | { | ||
| 200 | if (pRowSizesInBytes[i] > SIZE_T(-1)) return 0; | ||
| 201 | D3D12_MEMCPY_DEST DestData = { pData + pLayouts[i].Offset, pLayouts[i].Footprint.RowPitch, SIZE_T(pLayouts[i].Footprint.RowPitch) * SIZE_T(pNumRows[i]) }; | ||
| 202 | MemcpySubresource(&DestData, pResourceData, &pSrcData[i], static_cast<SIZE_T>(pRowSizesInBytes[i]), pNumRows[i], pLayouts[i].Footprint.Depth); | ||
| 203 | } | ||
| 204 | pIntermediate->Unmap(0, nullptr); | ||
| 205 | |||
| 206 | if (DestinationDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER) | ||
| 207 | { | ||
| 208 | pCmdList->CopyBufferRegion( | ||
| 209 | pDestinationResource, 0, pIntermediate, pLayouts[0].Offset, pLayouts[0].Footprint.Width); | ||
| 210 | } | ||
| 211 | else | ||
| 212 | { | ||
| 213 | for (UINT i = 0; i < NumSubresources; ++i) | ||
| 214 | { | ||
| 215 | const CD3DX12_TEXTURE_COPY_LOCATION Dst(pDestinationResource, i + FirstSubresource); | ||
| 216 | const CD3DX12_TEXTURE_COPY_LOCATION Src(pIntermediate, pLayouts[i]); | ||
| 217 | pCmdList->CopyTextureRegion(&Dst, 0, 0, 0, &Src, nullptr); | ||
| 218 | } | ||
| 219 | } | ||
| 220 | return RequiredSize; | ||
| 221 | } | ||
| 222 | |||
| 223 | //------------------------------------------------------------------------------------------------ | ||
| 224 | // Heap-allocating UpdateSubresources implementation | ||
| 225 | inline UINT64 UpdateSubresources( | ||
| 226 | _In_ ID3D12GraphicsCommandList* pCmdList, | ||
| 227 | _In_ ID3D12Resource* pDestinationResource, | ||
| 228 | _In_ ID3D12Resource* pIntermediate, | ||
| 229 | UINT64 IntermediateOffset, | ||
| 230 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 231 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 232 | _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) noexcept | ||
| 233 | { | ||
| 234 | UINT64 RequiredSize = 0; | ||
| 235 | const auto MemToAlloc = static_cast<UINT64>(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; | ||
| 236 | if (MemToAlloc > SIZE_MAX) | ||
| 237 | { | ||
| 238 | return 0; | ||
| 239 | } | ||
| 240 | void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast<SIZE_T>(MemToAlloc)); | ||
| 241 | if (pMem == nullptr) | ||
| 242 | { | ||
| 243 | return 0; | ||
| 244 | } | ||
| 245 | auto pLayouts = static_cast<D3D12_PLACED_SUBRESOURCE_FOOTPRINT*>(pMem); | ||
| 246 | auto pRowSizesInBytes = reinterpret_cast<UINT64*>(pLayouts + NumSubresources); | ||
| 247 | auto pNumRows = reinterpret_cast<UINT*>(pRowSizesInBytes + NumSubresources); | ||
| 248 | |||
| 249 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 250 | const auto Desc = pDestinationResource->GetDesc(); | ||
| 251 | #else | ||
| 252 | D3D12_RESOURCE_DESC tmpDesc; | ||
| 253 | const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); | ||
| 254 | #endif | ||
| 255 | ID3D12Device* pDevice = nullptr; | ||
| 256 | pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast<void**>(&pDevice)); | ||
| 257 | pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); | ||
| 258 | pDevice->Release(); | ||
| 259 | |||
| 260 | const UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pSrcData); | ||
| 261 | HeapFree(GetProcessHeap(), 0, pMem); | ||
| 262 | return Result; | ||
| 263 | } | ||
| 264 | |||
| 265 | //------------------------------------------------------------------------------------------------ | ||
| 266 | // Heap-allocating UpdateSubresources implementation | ||
| 267 | inline UINT64 UpdateSubresources( | ||
| 268 | _In_ ID3D12GraphicsCommandList* pCmdList, | ||
| 269 | _In_ ID3D12Resource* pDestinationResource, | ||
| 270 | _In_ ID3D12Resource* pIntermediate, | ||
| 271 | UINT64 IntermediateOffset, | ||
| 272 | _In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 273 | _In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources, | ||
| 274 | _In_ const void* pResourceData, | ||
| 275 | _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_INFO* pSrcData) noexcept | ||
| 276 | { | ||
| 277 | UINT64 RequiredSize = 0; | ||
| 278 | const auto MemToAlloc = static_cast<UINT64>(sizeof(D3D12_PLACED_SUBRESOURCE_FOOTPRINT) + sizeof(UINT) + sizeof(UINT64)) * NumSubresources; | ||
| 279 | if (MemToAlloc > SIZE_MAX) | ||
| 280 | { | ||
| 281 | return 0; | ||
| 282 | } | ||
| 283 | void* pMem = HeapAlloc(GetProcessHeap(), 0, static_cast<SIZE_T>(MemToAlloc)); | ||
| 284 | if (pMem == nullptr) | ||
| 285 | { | ||
| 286 | return 0; | ||
| 287 | } | ||
| 288 | auto pLayouts = static_cast<D3D12_PLACED_SUBRESOURCE_FOOTPRINT*>(pMem); | ||
| 289 | auto pRowSizesInBytes = reinterpret_cast<UINT64*>(pLayouts + NumSubresources); | ||
| 290 | auto pNumRows = reinterpret_cast<UINT*>(pRowSizesInBytes + NumSubresources); | ||
| 291 | |||
| 292 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 293 | const auto Desc = pDestinationResource->GetDesc(); | ||
| 294 | #else | ||
| 295 | D3D12_RESOURCE_DESC tmpDesc; | ||
| 296 | const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); | ||
| 297 | #endif | ||
| 298 | ID3D12Device* pDevice = nullptr; | ||
| 299 | pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast<void**>(&pDevice)); | ||
| 300 | pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, pLayouts, pNumRows, pRowSizesInBytes, &RequiredSize); | ||
| 301 | pDevice->Release(); | ||
| 302 | |||
| 303 | const UINT64 Result = UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, pLayouts, pNumRows, pRowSizesInBytes, pResourceData, pSrcData); | ||
| 304 | HeapFree(GetProcessHeap(), 0, pMem); | ||
| 305 | return Result; | ||
| 306 | } | ||
| 307 | |||
| 308 | //------------------------------------------------------------------------------------------------ | ||
| 309 | // Stack-allocating UpdateSubresources implementation | ||
| 310 | template <UINT MaxSubresources> | ||
| 311 | inline UINT64 UpdateSubresources( | ||
| 312 | _In_ ID3D12GraphicsCommandList* pCmdList, | ||
| 313 | _In_ ID3D12Resource* pDestinationResource, | ||
| 314 | _In_ ID3D12Resource* pIntermediate, | ||
| 315 | UINT64 IntermediateOffset, | ||
| 316 | _In_range_(0,MaxSubresources) UINT FirstSubresource, | ||
| 317 | _In_range_(1,MaxSubresources-FirstSubresource) UINT NumSubresources, | ||
| 318 | _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_DATA* pSrcData) noexcept | ||
| 319 | { | ||
| 320 | UINT64 RequiredSize = 0; | ||
| 321 | D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; | ||
| 322 | UINT NumRows[MaxSubresources]; | ||
| 323 | UINT64 RowSizesInBytes[MaxSubresources]; | ||
| 324 | |||
| 325 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 326 | const auto Desc = pDestinationResource->GetDesc(); | ||
| 327 | #else | ||
| 328 | D3D12_RESOURCE_DESC tmpDesc; | ||
| 329 | const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); | ||
| 330 | #endif | ||
| 331 | ID3D12Device* pDevice = nullptr; | ||
| 332 | pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast<void**>(&pDevice)); | ||
| 333 | pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); | ||
| 334 | pDevice->Release(); | ||
| 335 | |||
| 336 | return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pSrcData); | ||
| 337 | } | ||
| 338 | |||
| 339 | //------------------------------------------------------------------------------------------------ | ||
| 340 | // Stack-allocating UpdateSubresources implementation | ||
| 341 | template <UINT MaxSubresources> | ||
| 342 | inline UINT64 UpdateSubresources( | ||
| 343 | _In_ ID3D12GraphicsCommandList* pCmdList, | ||
| 344 | _In_ ID3D12Resource* pDestinationResource, | ||
| 345 | _In_ ID3D12Resource* pIntermediate, | ||
| 346 | UINT64 IntermediateOffset, | ||
| 347 | _In_range_(0,MaxSubresources) UINT FirstSubresource, | ||
| 348 | _In_range_(1,MaxSubresources-FirstSubresource) UINT NumSubresources, | ||
| 349 | _In_ const void* pResourceData, | ||
| 350 | _In_reads_(NumSubresources) const D3D12_SUBRESOURCE_INFO* pSrcData) noexcept | ||
| 351 | { | ||
| 352 | UINT64 RequiredSize = 0; | ||
| 353 | D3D12_PLACED_SUBRESOURCE_FOOTPRINT Layouts[MaxSubresources]; | ||
| 354 | UINT NumRows[MaxSubresources]; | ||
| 355 | UINT64 RowSizesInBytes[MaxSubresources]; | ||
| 356 | |||
| 357 | #if defined(_MSC_VER) || !defined(_WIN32) | ||
| 358 | const auto Desc = pDestinationResource->GetDesc(); | ||
| 359 | #else | ||
| 360 | D3D12_RESOURCE_DESC tmpDesc; | ||
| 361 | const auto& Desc = *pDestinationResource->GetDesc(&tmpDesc); | ||
| 362 | #endif | ||
| 363 | ID3D12Device* pDevice = nullptr; | ||
| 364 | pDestinationResource->GetDevice(IID_ID3D12Device, reinterpret_cast<void**>(&pDevice)); | ||
| 365 | pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, IntermediateOffset, Layouts, NumRows, RowSizesInBytes, &RequiredSize); | ||
| 366 | pDevice->Release(); | ||
| 367 | |||
| 368 | return UpdateSubresources(pCmdList, pDestinationResource, pIntermediate, FirstSubresource, NumSubresources, RequiredSize, Layouts, NumRows, RowSizesInBytes, pResourceData, pSrcData); | ||
| 369 | } | ||
| 370 | |||
| 371 | //------------------------------------------------------------------------------------------------ | ||
| 372 | constexpr bool D3D12IsLayoutOpaque( D3D12_TEXTURE_LAYOUT Layout ) noexcept | ||
| 373 | { return Layout == D3D12_TEXTURE_LAYOUT_UNKNOWN || Layout == D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE; } | ||
| 374 | |||
| 375 | //------------------------------------------------------------------------------------------------ | ||
| 376 | template< typename T > | ||
| 377 | inline T D3DX12Align(T uValue, T uAlign) | ||
| 378 | { | ||
| 379 | // Assert power of 2 alignment | ||
| 380 | D3DX12_ASSERT(0 == (uAlign & (uAlign - 1))); | ||
| 381 | T uMask = uAlign - 1; | ||
| 382 | T uResult = (uValue + uMask) & ~uMask; | ||
| 383 | D3DX12_ASSERT(uResult >= uValue); | ||
| 384 | D3DX12_ASSERT(0 == (uResult % uAlign)); | ||
| 385 | return uResult; | ||
| 386 | } | ||
| 387 | |||
| 388 | //------------------------------------------------------------------------------------------------ | ||
| 389 | template< typename T > | ||
| 390 | inline T D3DX12AlignAtLeast(T uValue, T uAlign) | ||
| 391 | { | ||
| 392 | T aligned = D3DX12Align(uValue, uAlign); | ||
| 393 | return aligned > uAlign ? aligned : uAlign; | ||
| 394 | } | ||
| 395 | |||
| 396 | inline const CD3DX12_RESOURCE_DESC1* D3DX12ConditionallyExpandAPIDesc( | ||
| 397 | D3D12_RESOURCE_DESC1& LclDesc, | ||
| 398 | const D3D12_RESOURCE_DESC1* pDesc, | ||
| 399 | const bool tightAlignmentSupported = false, | ||
| 400 | const bool alignAsCommitted = false) | ||
| 401 | { | ||
| 402 | return D3DX12ConditionallyExpandAPIDesc(static_cast<CD3DX12_RESOURCE_DESC1&>(LclDesc), static_cast<const CD3DX12_RESOURCE_DESC1*>(pDesc), tightAlignmentSupported, alignAsCommitted); | ||
| 403 | } | ||
| 404 | |||
| 405 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 606) | ||
| 406 | //------------------------------------------------------------------------------------------------ | ||
| 407 | // The difference between D3DX12GetCopyableFootprints and ID3D12Device::GetCopyableFootprints | ||
| 408 | // is that this one loses a lot of error checking by assuming the arguments are correct | ||
| 409 | inline bool D3DX12GetCopyableFootprints( | ||
| 410 | _In_ const D3D12_RESOURCE_DESC1& ResourceDesc, | ||
| 411 | _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 412 | _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources, | ||
| 413 | UINT64 BaseOffset, | ||
| 414 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, | ||
| 415 | _Out_writes_opt_(NumSubresources) UINT* pNumRows, | ||
| 416 | _Out_writes_opt_(NumSubresources) UINT64* pRowSizeInBytes, | ||
| 417 | _Out_opt_ UINT64* pTotalBytes) | ||
| 418 | { | ||
| 419 | constexpr UINT64 uint64_max = ~0ull; | ||
| 420 | UINT64 TotalBytes = uint64_max; | ||
| 421 | UINT uSubRes = 0; | ||
| 422 | |||
| 423 | bool bResourceOverflow = false; | ||
| 424 | TotalBytes = 0; | ||
| 425 | |||
| 426 | const DXGI_FORMAT Format = ResourceDesc.Format; | ||
| 427 | |||
| 428 | CD3DX12_RESOURCE_DESC1 LresourceDesc; | ||
| 429 | const CD3DX12_RESOURCE_DESC1& resourceDesc = *D3DX12ConditionallyExpandAPIDesc(LresourceDesc, &ResourceDesc); | ||
| 430 | |||
| 431 | // Check if its a valid format | ||
| 432 | D3DX12_ASSERT(D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::FormatExists(Format)); | ||
| 433 | |||
| 434 | // D3DX12GetCopyableFootprints does not support buffers with width larger than UINT_MAX. | ||
| 435 | if (ResourceDesc.Dimension == D3D12_RESOURCE_DIMENSION_BUFFER && ResourceDesc.Width >= UINT_MAX) | ||
| 436 | { | ||
| 437 | return false; | ||
| 438 | } | ||
| 439 | |||
| 440 | const UINT WidthAlignment = D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetWidthAlignment( Format ); | ||
| 441 | const UINT HeightAlignment = D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetHeightAlignment( Format ); | ||
| 442 | const UINT16 DepthAlignment = UINT16( D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetDepthAlignment( Format ) ); | ||
| 443 | |||
| 444 | for (; uSubRes < NumSubresources; ++uSubRes) | ||
| 445 | { | ||
| 446 | bool bOverflow = false; | ||
| 447 | UINT Subresource = FirstSubresource + uSubRes; | ||
| 448 | |||
| 449 | D3DX12_ASSERT(resourceDesc.MipLevels != 0); | ||
| 450 | UINT subresourceCount = resourceDesc.MipLevels * resourceDesc.ArraySize() * D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetPlaneCount(resourceDesc.Format); | ||
| 451 | |||
| 452 | if (Subresource > subresourceCount) | ||
| 453 | { | ||
| 454 | break; | ||
| 455 | } | ||
| 456 | |||
| 457 | TotalBytes = D3DX12Align< UINT64 >( TotalBytes, D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ); | ||
| 458 | |||
| 459 | UINT MipLevel, ArraySlice, PlaneSlice; | ||
| 460 | D3D12DecomposeSubresource(Subresource, resourceDesc.MipLevels, resourceDesc.ArraySize(), /*_Out_*/MipLevel, /*_Out_*/ArraySlice, /*_Out_*/PlaneSlice); | ||
| 461 | |||
| 462 | const UINT64 Width = D3DX12AlignAtLeast<UINT64>(resourceDesc.Width >> MipLevel, WidthAlignment); | ||
| 463 | const UINT Height = D3DX12AlignAtLeast(resourceDesc.Height >> MipLevel, HeightAlignment); | ||
| 464 | const UINT16 Depth = D3DX12AlignAtLeast<UINT16>(resourceDesc.Depth() >> MipLevel, DepthAlignment); | ||
| 465 | |||
| 466 | // Adjust for the current PlaneSlice. Most formats have only one plane. | ||
| 467 | DXGI_FORMAT PlaneFormat; | ||
| 468 | UINT32 MinPlanePitchWidth, PlaneWidth, PlaneHeight; | ||
| 469 | D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::GetPlaneSubsampledSizeAndFormatForCopyableLayout(PlaneSlice, Format, (UINT)Width, Height, /*_Out_*/ PlaneFormat, /*_Out_*/ MinPlanePitchWidth, /* _Out_ */ PlaneWidth, /*_Out_*/ PlaneHeight); | ||
| 470 | |||
| 471 | D3D12_SUBRESOURCE_FOOTPRINT LocalPlacement = {}; | ||
| 472 | auto& Placement = pLayouts ? pLayouts[uSubRes].Footprint : LocalPlacement; | ||
| 473 | Placement.Format = PlaneFormat; | ||
| 474 | Placement.Width = PlaneWidth; | ||
| 475 | Placement.Height = PlaneHeight; | ||
| 476 | Placement.Depth = Depth; | ||
| 477 | |||
| 478 | // Calculate row pitch | ||
| 479 | UINT MinPlaneRowPitch = 0; | ||
| 480 | D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateMinimumRowMajorRowPitch(PlaneFormat, MinPlanePitchWidth, MinPlaneRowPitch); | ||
| 481 | |||
| 482 | // Formats with more than one plane choose a larger pitch alignment to ensure that each plane begins on the row | ||
| 483 | // immediately following the previous plane while still adhering to subresource alignment restrictions. | ||
| 484 | static_assert( D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT >= D3D12_TEXTURE_DATA_PITCH_ALIGNMENT | ||
| 485 | && ((D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT % D3D12_TEXTURE_DATA_PITCH_ALIGNMENT) == 0), | ||
| 486 | "D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT must be >= and evenly divisible by D3D12_TEXTURE_DATA_PITCH_ALIGNMENT." ); | ||
| 487 | |||
| 488 | Placement.RowPitch = D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Planar(Format) | ||
| 489 | ? D3DX12Align< UINT >( MinPlaneRowPitch, D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT ) | ||
| 490 | : D3DX12Align< UINT >( MinPlaneRowPitch, D3D12_TEXTURE_DATA_PITCH_ALIGNMENT ); | ||
| 491 | |||
| 492 | if (pRowSizeInBytes) | ||
| 493 | { | ||
| 494 | UINT PlaneRowSize = 0; | ||
| 495 | D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::CalculateMinimumRowMajorRowPitch(PlaneFormat, PlaneWidth, PlaneRowSize); | ||
| 496 | |||
| 497 | pRowSizeInBytes[uSubRes] = PlaneRowSize; | ||
| 498 | } | ||
| 499 | |||
| 500 | // Number of rows (accounting for block compression and additional planes) | ||
| 501 | UINT NumRows = 0; | ||
| 502 | if (D3D12_PROPERTY_LAYOUT_FORMAT_TABLE::Planar(Format)) | ||
| 503 | { | ||
| 504 | NumRows = PlaneHeight; | ||
| 505 | } | ||
| 506 | else | ||
| 507 | { | ||
| 508 | D3DX12_ASSERT(Height % HeightAlignment == 0); | ||
| 509 | NumRows = Height / HeightAlignment; | ||
| 510 | } | ||
| 511 | |||
| 512 | if (pNumRows) | ||
| 513 | { | ||
| 514 | pNumRows[uSubRes] = NumRows; | ||
| 515 | } | ||
| 516 | |||
| 517 | // Offsetting | ||
| 518 | if (pLayouts) | ||
| 519 | { | ||
| 520 | pLayouts[uSubRes].Offset = (bOverflow ? uint64_max : TotalBytes + BaseOffset); | ||
| 521 | } | ||
| 522 | |||
| 523 | const UINT16 NumSlices = Depth; | ||
| 524 | const UINT64 SubresourceSize = (NumRows * NumSlices - 1) * Placement.RowPitch + MinPlaneRowPitch; | ||
| 525 | |||
| 526 | // uint64 addition with overflow checking | ||
| 527 | TotalBytes = TotalBytes + SubresourceSize; | ||
| 528 | if(TotalBytes < SubresourceSize) | ||
| 529 | { | ||
| 530 | TotalBytes = uint64_max; | ||
| 531 | } | ||
| 532 | bResourceOverflow = bResourceOverflow || bOverflow; | ||
| 533 | } | ||
| 534 | |||
| 535 | // Overflow error | ||
| 536 | if (bResourceOverflow) | ||
| 537 | { | ||
| 538 | TotalBytes = uint64_max; | ||
| 539 | } | ||
| 540 | |||
| 541 | |||
| 542 | if (pLayouts) | ||
| 543 | { | ||
| 544 | memset( pLayouts + uSubRes, -1, sizeof( *pLayouts ) * (NumSubresources - uSubRes) ); | ||
| 545 | } | ||
| 546 | if (pNumRows) | ||
| 547 | { | ||
| 548 | memset(pNumRows + uSubRes, -1, sizeof(*pNumRows) * (NumSubresources - uSubRes)); | ||
| 549 | } | ||
| 550 | if (pRowSizeInBytes) | ||
| 551 | { | ||
| 552 | memset(pRowSizeInBytes + uSubRes, -1, sizeof(*pRowSizeInBytes) * (NumSubresources - uSubRes)); | ||
| 553 | } | ||
| 554 | if (pTotalBytes) | ||
| 555 | { | ||
| 556 | *pTotalBytes = TotalBytes; | ||
| 557 | } | ||
| 558 | if(TotalBytes == uint64_max) | ||
| 559 | { | ||
| 560 | return false; | ||
| 561 | } | ||
| 562 | return true; | ||
| 563 | } | ||
| 564 | |||
| 565 | //------------------------------------------------------------------------------------------------ | ||
| 566 | inline D3D12_RESOURCE_DESC1 D3DX12ResourceDesc0ToDesc1(D3D12_RESOURCE_DESC const& desc0) | ||
| 567 | { | ||
| 568 | D3D12_RESOURCE_DESC1 desc1; | ||
| 569 | desc1.Dimension = desc0.Dimension; | ||
| 570 | desc1.Alignment = desc0.Alignment; | ||
| 571 | desc1.Width = desc0.Width; | ||
| 572 | desc1.Height = desc0.Height; | ||
| 573 | desc1.DepthOrArraySize = desc0.DepthOrArraySize; | ||
| 574 | desc1.MipLevels = desc0.MipLevels; | ||
| 575 | desc1.Format = desc0.Format; | ||
| 576 | desc1.SampleDesc.Count = desc0.SampleDesc.Count; | ||
| 577 | desc1.SampleDesc.Quality = desc0.SampleDesc.Quality; | ||
| 578 | desc1.Layout = desc0.Layout; | ||
| 579 | desc1.Flags = desc0.Flags; | ||
| 580 | desc1.SamplerFeedbackMipRegion.Width = 0; | ||
| 581 | desc1.SamplerFeedbackMipRegion.Height = 0; | ||
| 582 | desc1.SamplerFeedbackMipRegion.Depth = 0; | ||
| 583 | return desc1; | ||
| 584 | } | ||
| 585 | |||
| 586 | //------------------------------------------------------------------------------------------------ | ||
| 587 | inline bool D3DX12GetCopyableFootprints( | ||
| 588 | _In_ const D3D12_RESOURCE_DESC& pResourceDesc, | ||
| 589 | _In_range_(0, D3D12_REQ_SUBRESOURCES) UINT FirstSubresource, | ||
| 590 | _In_range_(0, D3D12_REQ_SUBRESOURCES - FirstSubresource) UINT NumSubresources, | ||
| 591 | UINT64 BaseOffset, | ||
| 592 | _Out_writes_opt_(NumSubresources) D3D12_PLACED_SUBRESOURCE_FOOTPRINT* pLayouts, | ||
| 593 | _Out_writes_opt_(NumSubresources) UINT* pNumRows, | ||
| 594 | _Out_writes_opt_(NumSubresources) UINT64* pRowSizeInBytes, | ||
| 595 | _Out_opt_ UINT64* pTotalBytes) | ||
| 596 | { | ||
| 597 | // From D3D12_RESOURCE_DESC to D3D12_RESOURCE_DESC1 | ||
| 598 | D3D12_RESOURCE_DESC1 desc = D3DX12ResourceDesc0ToDesc1(pResourceDesc); | ||
| 599 | return D3DX12GetCopyableFootprints( | ||
| 600 | *static_cast<CD3DX12_RESOURCE_DESC1*>(&desc),// From D3D12_RESOURCE_DESC1 to CD3DX12_RESOURCE_DESC1 | ||
| 601 | FirstSubresource, | ||
| 602 | NumSubresources, | ||
| 603 | BaseOffset, | ||
| 604 | pLayouts, | ||
| 605 | pNumRows, | ||
| 606 | pRowSizeInBytes, | ||
| 607 | pTotalBytes); | ||
| 608 | } | ||
| 609 | |||
| 610 | #endif // D3D12_SDK_VERSION >= 606 | ||
| 611 | |||
| 612 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_root_signature.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_root_signature.h new file mode 100644 index 0000000..e194d30 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_root_signature.h | |||
| @@ -0,0 +1,1227 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #pragma once | ||
| 9 | |||
| 10 | #ifndef __cplusplus | ||
| 11 | #error D3DX12 requires C++ | ||
| 12 | #endif | ||
| 13 | |||
| 14 | #include "d3d12.h" | ||
| 15 | #include "d3dx12_default.h" | ||
| 16 | |||
| 17 | //------------------------------------------------------------------------------------------------ | ||
| 18 | struct CD3DX12_DESCRIPTOR_RANGE : public D3D12_DESCRIPTOR_RANGE | ||
| 19 | { | ||
| 20 | CD3DX12_DESCRIPTOR_RANGE() = default; | ||
| 21 | explicit CD3DX12_DESCRIPTOR_RANGE(const D3D12_DESCRIPTOR_RANGE &o) noexcept : | ||
| 22 | D3D12_DESCRIPTOR_RANGE(o) | ||
| 23 | {} | ||
| 24 | CD3DX12_DESCRIPTOR_RANGE( | ||
| 25 | D3D12_DESCRIPTOR_RANGE_TYPE rangeType, | ||
| 26 | UINT numDescriptors, | ||
| 27 | UINT baseShaderRegister, | ||
| 28 | UINT registerSpace = 0, | ||
| 29 | UINT offsetInDescriptorsFromTableStart = | ||
| 30 | D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept | ||
| 31 | { | ||
| 32 | Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); | ||
| 33 | } | ||
| 34 | |||
| 35 | inline void Init( | ||
| 36 | D3D12_DESCRIPTOR_RANGE_TYPE rangeType, | ||
| 37 | UINT numDescriptors, | ||
| 38 | UINT baseShaderRegister, | ||
| 39 | UINT registerSpace = 0, | ||
| 40 | UINT offsetInDescriptorsFromTableStart = | ||
| 41 | D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept | ||
| 42 | { | ||
| 43 | Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, offsetInDescriptorsFromTableStart); | ||
| 44 | } | ||
| 45 | |||
| 46 | static inline void Init( | ||
| 47 | _Out_ D3D12_DESCRIPTOR_RANGE &range, | ||
| 48 | D3D12_DESCRIPTOR_RANGE_TYPE rangeType, | ||
| 49 | UINT numDescriptors, | ||
| 50 | UINT baseShaderRegister, | ||
| 51 | UINT registerSpace = 0, | ||
| 52 | UINT offsetInDescriptorsFromTableStart = | ||
| 53 | D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept | ||
| 54 | { | ||
| 55 | range.RangeType = rangeType; | ||
| 56 | range.NumDescriptors = numDescriptors; | ||
| 57 | range.BaseShaderRegister = baseShaderRegister; | ||
| 58 | range.RegisterSpace = registerSpace; | ||
| 59 | range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; | ||
| 60 | } | ||
| 61 | }; | ||
| 62 | |||
| 63 | //------------------------------------------------------------------------------------------------ | ||
| 64 | struct CD3DX12_ROOT_DESCRIPTOR_TABLE : public D3D12_ROOT_DESCRIPTOR_TABLE | ||
| 65 | { | ||
| 66 | CD3DX12_ROOT_DESCRIPTOR_TABLE() = default; | ||
| 67 | explicit CD3DX12_ROOT_DESCRIPTOR_TABLE(const D3D12_ROOT_DESCRIPTOR_TABLE &o) noexcept : | ||
| 68 | D3D12_ROOT_DESCRIPTOR_TABLE(o) | ||
| 69 | {} | ||
| 70 | CD3DX12_ROOT_DESCRIPTOR_TABLE( | ||
| 71 | UINT numDescriptorRanges, | ||
| 72 | _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) noexcept | ||
| 73 | { | ||
| 74 | Init(numDescriptorRanges, _pDescriptorRanges); | ||
| 75 | } | ||
| 76 | |||
| 77 | inline void Init( | ||
| 78 | UINT numDescriptorRanges, | ||
| 79 | _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) noexcept | ||
| 80 | { | ||
| 81 | Init(*this, numDescriptorRanges, _pDescriptorRanges); | ||
| 82 | } | ||
| 83 | |||
| 84 | static inline void Init( | ||
| 85 | _Out_ D3D12_ROOT_DESCRIPTOR_TABLE &rootDescriptorTable, | ||
| 86 | UINT numDescriptorRanges, | ||
| 87 | _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* _pDescriptorRanges) noexcept | ||
| 88 | { | ||
| 89 | rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; | ||
| 90 | rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; | ||
| 91 | } | ||
| 92 | }; | ||
| 93 | |||
| 94 | //------------------------------------------------------------------------------------------------ | ||
| 95 | struct CD3DX12_ROOT_CONSTANTS : public D3D12_ROOT_CONSTANTS | ||
| 96 | { | ||
| 97 | CD3DX12_ROOT_CONSTANTS() = default; | ||
| 98 | explicit CD3DX12_ROOT_CONSTANTS(const D3D12_ROOT_CONSTANTS &o) noexcept : | ||
| 99 | D3D12_ROOT_CONSTANTS(o) | ||
| 100 | {} | ||
| 101 | CD3DX12_ROOT_CONSTANTS( | ||
| 102 | UINT num32BitValues, | ||
| 103 | UINT shaderRegister, | ||
| 104 | UINT registerSpace = 0) noexcept | ||
| 105 | { | ||
| 106 | Init(num32BitValues, shaderRegister, registerSpace); | ||
| 107 | } | ||
| 108 | |||
| 109 | inline void Init( | ||
| 110 | UINT num32BitValues, | ||
| 111 | UINT shaderRegister, | ||
| 112 | UINT registerSpace = 0) noexcept | ||
| 113 | { | ||
| 114 | Init(*this, num32BitValues, shaderRegister, registerSpace); | ||
| 115 | } | ||
| 116 | |||
| 117 | static inline void Init( | ||
| 118 | _Out_ D3D12_ROOT_CONSTANTS &rootConstants, | ||
| 119 | UINT num32BitValues, | ||
| 120 | UINT shaderRegister, | ||
| 121 | UINT registerSpace = 0) noexcept | ||
| 122 | { | ||
| 123 | rootConstants.Num32BitValues = num32BitValues; | ||
| 124 | rootConstants.ShaderRegister = shaderRegister; | ||
| 125 | rootConstants.RegisterSpace = registerSpace; | ||
| 126 | } | ||
| 127 | }; | ||
| 128 | |||
| 129 | //------------------------------------------------------------------------------------------------ | ||
| 130 | struct CD3DX12_ROOT_DESCRIPTOR : public D3D12_ROOT_DESCRIPTOR | ||
| 131 | { | ||
| 132 | CD3DX12_ROOT_DESCRIPTOR() = default; | ||
| 133 | explicit CD3DX12_ROOT_DESCRIPTOR(const D3D12_ROOT_DESCRIPTOR &o) noexcept : | ||
| 134 | D3D12_ROOT_DESCRIPTOR(o) | ||
| 135 | {} | ||
| 136 | CD3DX12_ROOT_DESCRIPTOR( | ||
| 137 | UINT shaderRegister, | ||
| 138 | UINT registerSpace = 0) noexcept | ||
| 139 | { | ||
| 140 | Init(shaderRegister, registerSpace); | ||
| 141 | } | ||
| 142 | |||
| 143 | inline void Init( | ||
| 144 | UINT shaderRegister, | ||
| 145 | UINT registerSpace = 0) noexcept | ||
| 146 | { | ||
| 147 | Init(*this, shaderRegister, registerSpace); | ||
| 148 | } | ||
| 149 | |||
| 150 | static inline void Init(_Out_ D3D12_ROOT_DESCRIPTOR &table, UINT shaderRegister, UINT registerSpace = 0) noexcept | ||
| 151 | { | ||
| 152 | table.ShaderRegister = shaderRegister; | ||
| 153 | table.RegisterSpace = registerSpace; | ||
| 154 | } | ||
| 155 | }; | ||
| 156 | |||
| 157 | //------------------------------------------------------------------------------------------------ | ||
| 158 | struct CD3DX12_ROOT_PARAMETER : public D3D12_ROOT_PARAMETER | ||
| 159 | { | ||
| 160 | CD3DX12_ROOT_PARAMETER() = default; | ||
| 161 | explicit CD3DX12_ROOT_PARAMETER(const D3D12_ROOT_PARAMETER &o) noexcept : | ||
| 162 | D3D12_ROOT_PARAMETER(o) | ||
| 163 | {} | ||
| 164 | |||
| 165 | static inline void InitAsDescriptorTable( | ||
| 166 | _Out_ D3D12_ROOT_PARAMETER &rootParam, | ||
| 167 | UINT numDescriptorRanges, | ||
| 168 | _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, | ||
| 169 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 170 | { | ||
| 171 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; | ||
| 172 | rootParam.ShaderVisibility = visibility; | ||
| 173 | CD3DX12_ROOT_DESCRIPTOR_TABLE::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); | ||
| 174 | } | ||
| 175 | |||
| 176 | static inline void InitAsConstants( | ||
| 177 | _Out_ D3D12_ROOT_PARAMETER &rootParam, | ||
| 178 | UINT num32BitValues, | ||
| 179 | UINT shaderRegister, | ||
| 180 | UINT registerSpace = 0, | ||
| 181 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 182 | { | ||
| 183 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; | ||
| 184 | rootParam.ShaderVisibility = visibility; | ||
| 185 | CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); | ||
| 186 | } | ||
| 187 | |||
| 188 | static inline void InitAsConstantBufferView( | ||
| 189 | _Out_ D3D12_ROOT_PARAMETER &rootParam, | ||
| 190 | UINT shaderRegister, | ||
| 191 | UINT registerSpace = 0, | ||
| 192 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 193 | { | ||
| 194 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; | ||
| 195 | rootParam.ShaderVisibility = visibility; | ||
| 196 | CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); | ||
| 197 | } | ||
| 198 | |||
| 199 | static inline void InitAsShaderResourceView( | ||
| 200 | _Out_ D3D12_ROOT_PARAMETER &rootParam, | ||
| 201 | UINT shaderRegister, | ||
| 202 | UINT registerSpace = 0, | ||
| 203 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 204 | { | ||
| 205 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; | ||
| 206 | rootParam.ShaderVisibility = visibility; | ||
| 207 | CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); | ||
| 208 | } | ||
| 209 | |||
| 210 | static inline void InitAsUnorderedAccessView( | ||
| 211 | _Out_ D3D12_ROOT_PARAMETER &rootParam, | ||
| 212 | UINT shaderRegister, | ||
| 213 | UINT registerSpace = 0, | ||
| 214 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 215 | { | ||
| 216 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; | ||
| 217 | rootParam.ShaderVisibility = visibility; | ||
| 218 | CD3DX12_ROOT_DESCRIPTOR::Init(rootParam.Descriptor, shaderRegister, registerSpace); | ||
| 219 | } | ||
| 220 | |||
| 221 | inline void InitAsDescriptorTable( | ||
| 222 | UINT numDescriptorRanges, | ||
| 223 | _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE* pDescriptorRanges, | ||
| 224 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 225 | { | ||
| 226 | InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); | ||
| 227 | } | ||
| 228 | |||
| 229 | inline void InitAsConstants( | ||
| 230 | UINT num32BitValues, | ||
| 231 | UINT shaderRegister, | ||
| 232 | UINT registerSpace = 0, | ||
| 233 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 234 | { | ||
| 235 | InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); | ||
| 236 | } | ||
| 237 | |||
| 238 | inline void InitAsConstantBufferView( | ||
| 239 | UINT shaderRegister, | ||
| 240 | UINT registerSpace = 0, | ||
| 241 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 242 | { | ||
| 243 | InitAsConstantBufferView(*this, shaderRegister, registerSpace, visibility); | ||
| 244 | } | ||
| 245 | |||
| 246 | inline void InitAsShaderResourceView( | ||
| 247 | UINT shaderRegister, | ||
| 248 | UINT registerSpace = 0, | ||
| 249 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 250 | { | ||
| 251 | InitAsShaderResourceView(*this, shaderRegister, registerSpace, visibility); | ||
| 252 | } | ||
| 253 | |||
| 254 | inline void InitAsUnorderedAccessView( | ||
| 255 | UINT shaderRegister, | ||
| 256 | UINT registerSpace = 0, | ||
| 257 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 258 | { | ||
| 259 | InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, visibility); | ||
| 260 | } | ||
| 261 | }; | ||
| 262 | |||
| 263 | //------------------------------------------------------------------------------------------------ | ||
| 264 | struct CD3DX12_STATIC_SAMPLER_DESC : public D3D12_STATIC_SAMPLER_DESC | ||
| 265 | { | ||
| 266 | CD3DX12_STATIC_SAMPLER_DESC() = default; | ||
| 267 | explicit CD3DX12_STATIC_SAMPLER_DESC(const D3D12_STATIC_SAMPLER_DESC &o) noexcept : | ||
| 268 | D3D12_STATIC_SAMPLER_DESC(o) | ||
| 269 | {} | ||
| 270 | CD3DX12_STATIC_SAMPLER_DESC( | ||
| 271 | UINT shaderRegister, | ||
| 272 | D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, | ||
| 273 | D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 274 | D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 275 | D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 276 | FLOAT mipLODBias = 0, | ||
| 277 | UINT maxAnisotropy = 16, | ||
| 278 | D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, | ||
| 279 | D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, | ||
| 280 | FLOAT minLOD = 0.f, | ||
| 281 | FLOAT maxLOD = D3D12_FLOAT32_MAX, | ||
| 282 | D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, | ||
| 283 | UINT registerSpace = 0) noexcept | ||
| 284 | { | ||
| 285 | Init( | ||
| 286 | shaderRegister, | ||
| 287 | filter, | ||
| 288 | addressU, | ||
| 289 | addressV, | ||
| 290 | addressW, | ||
| 291 | mipLODBias, | ||
| 292 | maxAnisotropy, | ||
| 293 | comparisonFunc, | ||
| 294 | borderColor, | ||
| 295 | minLOD, | ||
| 296 | maxLOD, | ||
| 297 | shaderVisibility, | ||
| 298 | registerSpace); | ||
| 299 | } | ||
| 300 | |||
| 301 | static inline void Init( | ||
| 302 | _Out_ D3D12_STATIC_SAMPLER_DESC &samplerDesc, | ||
| 303 | UINT shaderRegister, | ||
| 304 | D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, | ||
| 305 | D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 306 | D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 307 | D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 308 | FLOAT mipLODBias = 0, | ||
| 309 | UINT maxAnisotropy = 16, | ||
| 310 | D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, | ||
| 311 | D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, | ||
| 312 | FLOAT minLOD = 0.f, | ||
| 313 | FLOAT maxLOD = D3D12_FLOAT32_MAX, | ||
| 314 | D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, | ||
| 315 | UINT registerSpace = 0) noexcept | ||
| 316 | { | ||
| 317 | samplerDesc.ShaderRegister = shaderRegister; | ||
| 318 | samplerDesc.Filter = filter; | ||
| 319 | samplerDesc.AddressU = addressU; | ||
| 320 | samplerDesc.AddressV = addressV; | ||
| 321 | samplerDesc.AddressW = addressW; | ||
| 322 | samplerDesc.MipLODBias = mipLODBias; | ||
| 323 | samplerDesc.MaxAnisotropy = maxAnisotropy; | ||
| 324 | samplerDesc.ComparisonFunc = comparisonFunc; | ||
| 325 | samplerDesc.BorderColor = borderColor; | ||
| 326 | samplerDesc.MinLOD = minLOD; | ||
| 327 | samplerDesc.MaxLOD = maxLOD; | ||
| 328 | samplerDesc.ShaderVisibility = shaderVisibility; | ||
| 329 | samplerDesc.RegisterSpace = registerSpace; | ||
| 330 | } | ||
| 331 | inline void Init( | ||
| 332 | UINT shaderRegister, | ||
| 333 | D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, | ||
| 334 | D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 335 | D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 336 | D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 337 | FLOAT mipLODBias = 0, | ||
| 338 | UINT maxAnisotropy = 16, | ||
| 339 | D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, | ||
| 340 | D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, | ||
| 341 | FLOAT minLOD = 0.f, | ||
| 342 | FLOAT maxLOD = D3D12_FLOAT32_MAX, | ||
| 343 | D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, | ||
| 344 | UINT registerSpace = 0) noexcept | ||
| 345 | { | ||
| 346 | Init( | ||
| 347 | *this, | ||
| 348 | shaderRegister, | ||
| 349 | filter, | ||
| 350 | addressU, | ||
| 351 | addressV, | ||
| 352 | addressW, | ||
| 353 | mipLODBias, | ||
| 354 | maxAnisotropy, | ||
| 355 | comparisonFunc, | ||
| 356 | borderColor, | ||
| 357 | minLOD, | ||
| 358 | maxLOD, | ||
| 359 | shaderVisibility, | ||
| 360 | registerSpace); | ||
| 361 | } | ||
| 362 | }; | ||
| 363 | |||
| 364 | //------------------------------------------------------------------------------------------------ | ||
| 365 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 366 | struct CD3DX12_STATIC_SAMPLER_DESC1 : public D3D12_STATIC_SAMPLER_DESC1 | ||
| 367 | { | ||
| 368 | CD3DX12_STATIC_SAMPLER_DESC1() = default; | ||
| 369 | explicit CD3DX12_STATIC_SAMPLER_DESC1(const D3D12_STATIC_SAMPLER_DESC &o) noexcept | ||
| 370 | { | ||
| 371 | memcpy(this, &o, sizeof(D3D12_STATIC_SAMPLER_DESC)); | ||
| 372 | Flags = D3D12_SAMPLER_FLAGS::D3D12_SAMPLER_FLAG_NONE; | ||
| 373 | } | ||
| 374 | explicit CD3DX12_STATIC_SAMPLER_DESC1(const D3D12_STATIC_SAMPLER_DESC1 & o) noexcept : | ||
| 375 | D3D12_STATIC_SAMPLER_DESC1(o) | ||
| 376 | {} | ||
| 377 | CD3DX12_STATIC_SAMPLER_DESC1( | ||
| 378 | UINT shaderRegister, | ||
| 379 | D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, | ||
| 380 | D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 381 | D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 382 | D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 383 | FLOAT mipLODBias = 0, | ||
| 384 | UINT maxAnisotropy = 16, | ||
| 385 | D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, | ||
| 386 | D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, | ||
| 387 | FLOAT minLOD = 0.f, | ||
| 388 | FLOAT maxLOD = D3D12_FLOAT32_MAX, | ||
| 389 | D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, | ||
| 390 | UINT registerSpace = 0, | ||
| 391 | D3D12_SAMPLER_FLAGS flags = D3D12_SAMPLER_FLAGS::D3D12_SAMPLER_FLAG_NONE) noexcept | ||
| 392 | { | ||
| 393 | Init( | ||
| 394 | shaderRegister, | ||
| 395 | filter, | ||
| 396 | addressU, | ||
| 397 | addressV, | ||
| 398 | addressW, | ||
| 399 | mipLODBias, | ||
| 400 | maxAnisotropy, | ||
| 401 | comparisonFunc, | ||
| 402 | borderColor, | ||
| 403 | minLOD, | ||
| 404 | maxLOD, | ||
| 405 | shaderVisibility, | ||
| 406 | registerSpace, | ||
| 407 | flags); | ||
| 408 | } | ||
| 409 | |||
| 410 | static inline void Init( | ||
| 411 | _Out_ D3D12_STATIC_SAMPLER_DESC1 &samplerDesc, | ||
| 412 | UINT shaderRegister, | ||
| 413 | D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, | ||
| 414 | D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 415 | D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 416 | D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 417 | FLOAT mipLODBias = 0, | ||
| 418 | UINT maxAnisotropy = 16, | ||
| 419 | D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, | ||
| 420 | D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, | ||
| 421 | FLOAT minLOD = 0.f, | ||
| 422 | FLOAT maxLOD = D3D12_FLOAT32_MAX, | ||
| 423 | D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, | ||
| 424 | UINT registerSpace = 0, | ||
| 425 | D3D12_SAMPLER_FLAGS flags = D3D12_SAMPLER_FLAGS::D3D12_SAMPLER_FLAG_NONE) noexcept | ||
| 426 | { | ||
| 427 | samplerDesc.ShaderRegister = shaderRegister; | ||
| 428 | samplerDesc.Filter = filter; | ||
| 429 | samplerDesc.AddressU = addressU; | ||
| 430 | samplerDesc.AddressV = addressV; | ||
| 431 | samplerDesc.AddressW = addressW; | ||
| 432 | samplerDesc.MipLODBias = mipLODBias; | ||
| 433 | samplerDesc.MaxAnisotropy = maxAnisotropy; | ||
| 434 | samplerDesc.ComparisonFunc = comparisonFunc; | ||
| 435 | samplerDesc.BorderColor = borderColor; | ||
| 436 | samplerDesc.MinLOD = minLOD; | ||
| 437 | samplerDesc.MaxLOD = maxLOD; | ||
| 438 | samplerDesc.ShaderVisibility = shaderVisibility; | ||
| 439 | samplerDesc.RegisterSpace = registerSpace; | ||
| 440 | samplerDesc.Flags = flags; | ||
| 441 | } | ||
| 442 | inline void Init( | ||
| 443 | UINT shaderRegister, | ||
| 444 | D3D12_FILTER filter = D3D12_FILTER_ANISOTROPIC, | ||
| 445 | D3D12_TEXTURE_ADDRESS_MODE addressU = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 446 | D3D12_TEXTURE_ADDRESS_MODE addressV = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 447 | D3D12_TEXTURE_ADDRESS_MODE addressW = D3D12_TEXTURE_ADDRESS_MODE_WRAP, | ||
| 448 | FLOAT mipLODBias = 0, | ||
| 449 | UINT maxAnisotropy = 16, | ||
| 450 | D3D12_COMPARISON_FUNC comparisonFunc = D3D12_COMPARISON_FUNC_LESS_EQUAL, | ||
| 451 | D3D12_STATIC_BORDER_COLOR borderColor = D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE, | ||
| 452 | FLOAT minLOD = 0.f, | ||
| 453 | FLOAT maxLOD = D3D12_FLOAT32_MAX, | ||
| 454 | D3D12_SHADER_VISIBILITY shaderVisibility = D3D12_SHADER_VISIBILITY_ALL, | ||
| 455 | UINT registerSpace = 0, | ||
| 456 | D3D12_SAMPLER_FLAGS flags = D3D12_SAMPLER_FLAGS::D3D12_SAMPLER_FLAG_NONE) noexcept | ||
| 457 | { | ||
| 458 | Init( | ||
| 459 | *this, | ||
| 460 | shaderRegister, | ||
| 461 | filter, | ||
| 462 | addressU, | ||
| 463 | addressV, | ||
| 464 | addressW, | ||
| 465 | mipLODBias, | ||
| 466 | maxAnisotropy, | ||
| 467 | comparisonFunc, | ||
| 468 | borderColor, | ||
| 469 | minLOD, | ||
| 470 | maxLOD, | ||
| 471 | shaderVisibility, | ||
| 472 | registerSpace, | ||
| 473 | flags); | ||
| 474 | } | ||
| 475 | }; | ||
| 476 | #endif // D3D12_SDK_VERSION >= 609 | ||
| 477 | |||
| 478 | //------------------------------------------------------------------------------------------------ | ||
| 479 | struct CD3DX12_ROOT_SIGNATURE_DESC : public D3D12_ROOT_SIGNATURE_DESC | ||
| 480 | { | ||
| 481 | CD3DX12_ROOT_SIGNATURE_DESC() = default; | ||
| 482 | explicit CD3DX12_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) noexcept : | ||
| 483 | D3D12_ROOT_SIGNATURE_DESC(o) | ||
| 484 | {} | ||
| 485 | CD3DX12_ROOT_SIGNATURE_DESC( | ||
| 486 | UINT numParameters, | ||
| 487 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, | ||
| 488 | UINT numStaticSamplers = 0, | ||
| 489 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, | ||
| 490 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 491 | { | ||
| 492 | Init(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); | ||
| 493 | } | ||
| 494 | CD3DX12_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) noexcept | ||
| 495 | { | ||
| 496 | Init(0, nullptr, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_NONE); | ||
| 497 | } | ||
| 498 | |||
| 499 | inline void Init( | ||
| 500 | UINT numParameters, | ||
| 501 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, | ||
| 502 | UINT numStaticSamplers = 0, | ||
| 503 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, | ||
| 504 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 505 | { | ||
| 506 | Init(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); | ||
| 507 | } | ||
| 508 | |||
| 509 | static inline void Init( | ||
| 510 | _Out_ D3D12_ROOT_SIGNATURE_DESC &desc, | ||
| 511 | UINT numParameters, | ||
| 512 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, | ||
| 513 | UINT numStaticSamplers = 0, | ||
| 514 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, | ||
| 515 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 516 | { | ||
| 517 | desc.NumParameters = numParameters; | ||
| 518 | desc.pParameters = _pParameters; | ||
| 519 | desc.NumStaticSamplers = numStaticSamplers; | ||
| 520 | desc.pStaticSamplers = _pStaticSamplers; | ||
| 521 | desc.Flags = flags; | ||
| 522 | } | ||
| 523 | }; | ||
| 524 | |||
| 525 | //------------------------------------------------------------------------------------------------ | ||
| 526 | struct CD3DX12_DESCRIPTOR_RANGE1 : public D3D12_DESCRIPTOR_RANGE1 | ||
| 527 | { | ||
| 528 | CD3DX12_DESCRIPTOR_RANGE1() = default; | ||
| 529 | explicit CD3DX12_DESCRIPTOR_RANGE1(const D3D12_DESCRIPTOR_RANGE1 &o) noexcept : | ||
| 530 | D3D12_DESCRIPTOR_RANGE1(o) | ||
| 531 | {} | ||
| 532 | CD3DX12_DESCRIPTOR_RANGE1( | ||
| 533 | D3D12_DESCRIPTOR_RANGE_TYPE rangeType, | ||
| 534 | UINT numDescriptors, | ||
| 535 | UINT baseShaderRegister, | ||
| 536 | UINT registerSpace = 0, | ||
| 537 | D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, | ||
| 538 | UINT offsetInDescriptorsFromTableStart = | ||
| 539 | D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept | ||
| 540 | { | ||
| 541 | Init(rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart); | ||
| 542 | } | ||
| 543 | |||
| 544 | inline void Init( | ||
| 545 | D3D12_DESCRIPTOR_RANGE_TYPE rangeType, | ||
| 546 | UINT numDescriptors, | ||
| 547 | UINT baseShaderRegister, | ||
| 548 | UINT registerSpace = 0, | ||
| 549 | D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, | ||
| 550 | UINT offsetInDescriptorsFromTableStart = | ||
| 551 | D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept | ||
| 552 | { | ||
| 553 | Init(*this, rangeType, numDescriptors, baseShaderRegister, registerSpace, flags, offsetInDescriptorsFromTableStart); | ||
| 554 | } | ||
| 555 | |||
| 556 | static inline void Init( | ||
| 557 | _Out_ D3D12_DESCRIPTOR_RANGE1 &range, | ||
| 558 | D3D12_DESCRIPTOR_RANGE_TYPE rangeType, | ||
| 559 | UINT numDescriptors, | ||
| 560 | UINT baseShaderRegister, | ||
| 561 | UINT registerSpace = 0, | ||
| 562 | D3D12_DESCRIPTOR_RANGE_FLAGS flags = D3D12_DESCRIPTOR_RANGE_FLAG_NONE, | ||
| 563 | UINT offsetInDescriptorsFromTableStart = | ||
| 564 | D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND) noexcept | ||
| 565 | { | ||
| 566 | range.RangeType = rangeType; | ||
| 567 | range.NumDescriptors = numDescriptors; | ||
| 568 | range.BaseShaderRegister = baseShaderRegister; | ||
| 569 | range.RegisterSpace = registerSpace; | ||
| 570 | range.Flags = flags; | ||
| 571 | range.OffsetInDescriptorsFromTableStart = offsetInDescriptorsFromTableStart; | ||
| 572 | } | ||
| 573 | }; | ||
| 574 | |||
| 575 | //------------------------------------------------------------------------------------------------ | ||
| 576 | struct CD3DX12_ROOT_DESCRIPTOR_TABLE1 : public D3D12_ROOT_DESCRIPTOR_TABLE1 | ||
| 577 | { | ||
| 578 | CD3DX12_ROOT_DESCRIPTOR_TABLE1() = default; | ||
| 579 | explicit CD3DX12_ROOT_DESCRIPTOR_TABLE1(const D3D12_ROOT_DESCRIPTOR_TABLE1 &o) noexcept : | ||
| 580 | D3D12_ROOT_DESCRIPTOR_TABLE1(o) | ||
| 581 | {} | ||
| 582 | CD3DX12_ROOT_DESCRIPTOR_TABLE1( | ||
| 583 | UINT numDescriptorRanges, | ||
| 584 | _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) noexcept | ||
| 585 | { | ||
| 586 | Init(numDescriptorRanges, _pDescriptorRanges); | ||
| 587 | } | ||
| 588 | |||
| 589 | inline void Init( | ||
| 590 | UINT numDescriptorRanges, | ||
| 591 | _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) noexcept | ||
| 592 | { | ||
| 593 | Init(*this, numDescriptorRanges, _pDescriptorRanges); | ||
| 594 | } | ||
| 595 | |||
| 596 | static inline void Init( | ||
| 597 | _Out_ D3D12_ROOT_DESCRIPTOR_TABLE1 &rootDescriptorTable, | ||
| 598 | UINT numDescriptorRanges, | ||
| 599 | _In_reads_opt_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* _pDescriptorRanges) noexcept | ||
| 600 | { | ||
| 601 | rootDescriptorTable.NumDescriptorRanges = numDescriptorRanges; | ||
| 602 | rootDescriptorTable.pDescriptorRanges = _pDescriptorRanges; | ||
| 603 | } | ||
| 604 | }; | ||
| 605 | |||
| 606 | //------------------------------------------------------------------------------------------------ | ||
| 607 | struct CD3DX12_ROOT_DESCRIPTOR1 : public D3D12_ROOT_DESCRIPTOR1 | ||
| 608 | { | ||
| 609 | CD3DX12_ROOT_DESCRIPTOR1() = default; | ||
| 610 | explicit CD3DX12_ROOT_DESCRIPTOR1(const D3D12_ROOT_DESCRIPTOR1 &o) noexcept : | ||
| 611 | D3D12_ROOT_DESCRIPTOR1(o) | ||
| 612 | {} | ||
| 613 | CD3DX12_ROOT_DESCRIPTOR1( | ||
| 614 | UINT shaderRegister, | ||
| 615 | UINT registerSpace = 0, | ||
| 616 | D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) noexcept | ||
| 617 | { | ||
| 618 | Init(shaderRegister, registerSpace, flags); | ||
| 619 | } | ||
| 620 | |||
| 621 | inline void Init( | ||
| 622 | UINT shaderRegister, | ||
| 623 | UINT registerSpace = 0, | ||
| 624 | D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) noexcept | ||
| 625 | { | ||
| 626 | Init(*this, shaderRegister, registerSpace, flags); | ||
| 627 | } | ||
| 628 | |||
| 629 | static inline void Init( | ||
| 630 | _Out_ D3D12_ROOT_DESCRIPTOR1 &table, | ||
| 631 | UINT shaderRegister, | ||
| 632 | UINT registerSpace = 0, | ||
| 633 | D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE) noexcept | ||
| 634 | { | ||
| 635 | table.ShaderRegister = shaderRegister; | ||
| 636 | table.RegisterSpace = registerSpace; | ||
| 637 | table.Flags = flags; | ||
| 638 | } | ||
| 639 | }; | ||
| 640 | |||
| 641 | //------------------------------------------------------------------------------------------------ | ||
| 642 | struct CD3DX12_ROOT_PARAMETER1 : public D3D12_ROOT_PARAMETER1 | ||
| 643 | { | ||
| 644 | CD3DX12_ROOT_PARAMETER1() = default; | ||
| 645 | explicit CD3DX12_ROOT_PARAMETER1(const D3D12_ROOT_PARAMETER1 &o) noexcept : | ||
| 646 | D3D12_ROOT_PARAMETER1(o) | ||
| 647 | {} | ||
| 648 | |||
| 649 | static inline void InitAsDescriptorTable( | ||
| 650 | _Out_ D3D12_ROOT_PARAMETER1 &rootParam, | ||
| 651 | UINT numDescriptorRanges, | ||
| 652 | _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges, | ||
| 653 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 654 | { | ||
| 655 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; | ||
| 656 | rootParam.ShaderVisibility = visibility; | ||
| 657 | CD3DX12_ROOT_DESCRIPTOR_TABLE1::Init(rootParam.DescriptorTable, numDescriptorRanges, pDescriptorRanges); | ||
| 658 | } | ||
| 659 | |||
| 660 | static inline void InitAsConstants( | ||
| 661 | _Out_ D3D12_ROOT_PARAMETER1 &rootParam, | ||
| 662 | UINT num32BitValues, | ||
| 663 | UINT shaderRegister, | ||
| 664 | UINT registerSpace = 0, | ||
| 665 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 666 | { | ||
| 667 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS; | ||
| 668 | rootParam.ShaderVisibility = visibility; | ||
| 669 | CD3DX12_ROOT_CONSTANTS::Init(rootParam.Constants, num32BitValues, shaderRegister, registerSpace); | ||
| 670 | } | ||
| 671 | |||
| 672 | static inline void InitAsConstantBufferView( | ||
| 673 | _Out_ D3D12_ROOT_PARAMETER1 &rootParam, | ||
| 674 | UINT shaderRegister, | ||
| 675 | UINT registerSpace = 0, | ||
| 676 | D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, | ||
| 677 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 678 | { | ||
| 679 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_CBV; | ||
| 680 | rootParam.ShaderVisibility = visibility; | ||
| 681 | CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); | ||
| 682 | } | ||
| 683 | |||
| 684 | static inline void InitAsShaderResourceView( | ||
| 685 | _Out_ D3D12_ROOT_PARAMETER1 &rootParam, | ||
| 686 | UINT shaderRegister, | ||
| 687 | UINT registerSpace = 0, | ||
| 688 | D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, | ||
| 689 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 690 | { | ||
| 691 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_SRV; | ||
| 692 | rootParam.ShaderVisibility = visibility; | ||
| 693 | CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); | ||
| 694 | } | ||
| 695 | |||
| 696 | static inline void InitAsUnorderedAccessView( | ||
| 697 | _Out_ D3D12_ROOT_PARAMETER1 &rootParam, | ||
| 698 | UINT shaderRegister, | ||
| 699 | UINT registerSpace = 0, | ||
| 700 | D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, | ||
| 701 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 702 | { | ||
| 703 | rootParam.ParameterType = D3D12_ROOT_PARAMETER_TYPE_UAV; | ||
| 704 | rootParam.ShaderVisibility = visibility; | ||
| 705 | CD3DX12_ROOT_DESCRIPTOR1::Init(rootParam.Descriptor, shaderRegister, registerSpace, flags); | ||
| 706 | } | ||
| 707 | |||
| 708 | inline void InitAsDescriptorTable( | ||
| 709 | UINT numDescriptorRanges, | ||
| 710 | _In_reads_(numDescriptorRanges) const D3D12_DESCRIPTOR_RANGE1* pDescriptorRanges, | ||
| 711 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 712 | { | ||
| 713 | InitAsDescriptorTable(*this, numDescriptorRanges, pDescriptorRanges, visibility); | ||
| 714 | } | ||
| 715 | |||
| 716 | inline void InitAsConstants( | ||
| 717 | UINT num32BitValues, | ||
| 718 | UINT shaderRegister, | ||
| 719 | UINT registerSpace = 0, | ||
| 720 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 721 | { | ||
| 722 | InitAsConstants(*this, num32BitValues, shaderRegister, registerSpace, visibility); | ||
| 723 | } | ||
| 724 | |||
| 725 | inline void InitAsConstantBufferView( | ||
| 726 | UINT shaderRegister, | ||
| 727 | UINT registerSpace = 0, | ||
| 728 | D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, | ||
| 729 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 730 | { | ||
| 731 | InitAsConstantBufferView(*this, shaderRegister, registerSpace, flags, visibility); | ||
| 732 | } | ||
| 733 | |||
| 734 | inline void InitAsShaderResourceView( | ||
| 735 | UINT shaderRegister, | ||
| 736 | UINT registerSpace = 0, | ||
| 737 | D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, | ||
| 738 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 739 | { | ||
| 740 | InitAsShaderResourceView(*this, shaderRegister, registerSpace, flags, visibility); | ||
| 741 | } | ||
| 742 | |||
| 743 | inline void InitAsUnorderedAccessView( | ||
| 744 | UINT shaderRegister, | ||
| 745 | UINT registerSpace = 0, | ||
| 746 | D3D12_ROOT_DESCRIPTOR_FLAGS flags = D3D12_ROOT_DESCRIPTOR_FLAG_NONE, | ||
| 747 | D3D12_SHADER_VISIBILITY visibility = D3D12_SHADER_VISIBILITY_ALL) noexcept | ||
| 748 | { | ||
| 749 | InitAsUnorderedAccessView(*this, shaderRegister, registerSpace, flags, visibility); | ||
| 750 | } | ||
| 751 | }; | ||
| 752 | |||
| 753 | //------------------------------------------------------------------------------------------------ | ||
| 754 | struct CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC : public D3D12_VERSIONED_ROOT_SIGNATURE_DESC | ||
| 755 | { | ||
| 756 | CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC() = default; | ||
| 757 | explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC &o) noexcept : | ||
| 758 | D3D12_VERSIONED_ROOT_SIGNATURE_DESC(o) | ||
| 759 | {} | ||
| 760 | explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC &o) noexcept | ||
| 761 | { | ||
| 762 | Version = D3D_ROOT_SIGNATURE_VERSION_1_0; | ||
| 763 | Desc_1_0 = o; | ||
| 764 | } | ||
| 765 | explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC1 &o) noexcept | ||
| 766 | { | ||
| 767 | Version = D3D_ROOT_SIGNATURE_VERSION_1_1; | ||
| 768 | Desc_1_1 = o; | ||
| 769 | } | ||
| 770 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 771 | explicit CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(const D3D12_ROOT_SIGNATURE_DESC2& o) noexcept | ||
| 772 | { | ||
| 773 | Version = D3D_ROOT_SIGNATURE_VERSION_1_2; | ||
| 774 | Desc_1_2 = o; | ||
| 775 | } | ||
| 776 | #endif | ||
| 777 | CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC( | ||
| 778 | UINT numParameters, | ||
| 779 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, | ||
| 780 | UINT numStaticSamplers = 0, | ||
| 781 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, | ||
| 782 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 783 | { | ||
| 784 | Init_1_0(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); | ||
| 785 | } | ||
| 786 | CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC( | ||
| 787 | UINT numParameters, | ||
| 788 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, | ||
| 789 | UINT numStaticSamplers = 0, | ||
| 790 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, | ||
| 791 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 792 | { | ||
| 793 | Init_1_1(numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); | ||
| 794 | } | ||
| 795 | CD3DX12_VERSIONED_ROOT_SIGNATURE_DESC(CD3DX12_DEFAULT) noexcept | ||
| 796 | { | ||
| 797 | Init_1_1(0, nullptr, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_NONE); | ||
| 798 | } | ||
| 799 | |||
| 800 | inline void Init_1_0( | ||
| 801 | UINT numParameters, | ||
| 802 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, | ||
| 803 | UINT numStaticSamplers = 0, | ||
| 804 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, | ||
| 805 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 806 | { | ||
| 807 | Init_1_0(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); | ||
| 808 | } | ||
| 809 | |||
| 810 | static inline void Init_1_0( | ||
| 811 | _Out_ D3D12_VERSIONED_ROOT_SIGNATURE_DESC &desc, | ||
| 812 | UINT numParameters, | ||
| 813 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER* _pParameters, | ||
| 814 | UINT numStaticSamplers = 0, | ||
| 815 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, | ||
| 816 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 817 | { | ||
| 818 | desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_0; | ||
| 819 | desc.Desc_1_0.NumParameters = numParameters; | ||
| 820 | desc.Desc_1_0.pParameters = _pParameters; | ||
| 821 | desc.Desc_1_0.NumStaticSamplers = numStaticSamplers; | ||
| 822 | desc.Desc_1_0.pStaticSamplers = _pStaticSamplers; | ||
| 823 | desc.Desc_1_0.Flags = flags; | ||
| 824 | } | ||
| 825 | |||
| 826 | inline void Init_1_1( | ||
| 827 | UINT numParameters, | ||
| 828 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, | ||
| 829 | UINT numStaticSamplers = 0, | ||
| 830 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, | ||
| 831 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 832 | { | ||
| 833 | Init_1_1(*this, numParameters, _pParameters, numStaticSamplers, _pStaticSamplers, flags); | ||
| 834 | } | ||
| 835 | |||
| 836 | static inline void Init_1_1( | ||
| 837 | _Out_ D3D12_VERSIONED_ROOT_SIGNATURE_DESC &desc, | ||
| 838 | UINT numParameters, | ||
| 839 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, | ||
| 840 | UINT numStaticSamplers = 0, | ||
| 841 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC* _pStaticSamplers = nullptr, | ||
| 842 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 843 | { | ||
| 844 | desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_1; | ||
| 845 | desc.Desc_1_1.NumParameters = numParameters; | ||
| 846 | desc.Desc_1_1.pParameters = _pParameters; | ||
| 847 | desc.Desc_1_1.NumStaticSamplers = numStaticSamplers; | ||
| 848 | desc.Desc_1_1.pStaticSamplers = _pStaticSamplers; | ||
| 849 | desc.Desc_1_1.Flags = flags; | ||
| 850 | } | ||
| 851 | |||
| 852 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 853 | static inline void Init_1_2( | ||
| 854 | _Out_ D3D12_VERSIONED_ROOT_SIGNATURE_DESC& desc, | ||
| 855 | UINT numParameters, | ||
| 856 | _In_reads_opt_(numParameters) const D3D12_ROOT_PARAMETER1* _pParameters, | ||
| 857 | UINT numStaticSamplers = 0, | ||
| 858 | _In_reads_opt_(numStaticSamplers) const D3D12_STATIC_SAMPLER_DESC1* _pStaticSamplers = nullptr, | ||
| 859 | D3D12_ROOT_SIGNATURE_FLAGS flags = D3D12_ROOT_SIGNATURE_FLAG_NONE) noexcept | ||
| 860 | { | ||
| 861 | desc.Version = D3D_ROOT_SIGNATURE_VERSION_1_2; | ||
| 862 | desc.Desc_1_2.NumParameters = numParameters; | ||
| 863 | desc.Desc_1_2.pParameters = _pParameters; | ||
| 864 | desc.Desc_1_2.NumStaticSamplers = numStaticSamplers; | ||
| 865 | desc.Desc_1_2.pStaticSamplers = _pStaticSamplers; | ||
| 866 | desc.Desc_1_2.Flags = flags; | ||
| 867 | } | ||
| 868 | #endif | ||
| 869 | }; | ||
| 870 | |||
| 871 | //------------------------------------------------------------------------------------------------ | ||
| 872 | struct CD3DX12_CPU_DESCRIPTOR_HANDLE : public D3D12_CPU_DESCRIPTOR_HANDLE | ||
| 873 | { | ||
| 874 | CD3DX12_CPU_DESCRIPTOR_HANDLE() = default; | ||
| 875 | explicit CD3DX12_CPU_DESCRIPTOR_HANDLE(const D3D12_CPU_DESCRIPTOR_HANDLE &o) noexcept : | ||
| 876 | D3D12_CPU_DESCRIPTOR_HANDLE(o) | ||
| 877 | {} | ||
| 878 | CD3DX12_CPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) noexcept { ptr = 0; } | ||
| 879 | CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) noexcept | ||
| 880 | { | ||
| 881 | InitOffsetted(other, offsetScaledByIncrementSize); | ||
| 882 | } | ||
| 883 | CD3DX12_CPU_DESCRIPTOR_HANDLE(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept | ||
| 884 | { | ||
| 885 | InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); | ||
| 886 | } | ||
| 887 | CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept | ||
| 888 | { | ||
| 889 | ptr = SIZE_T(INT64(ptr) + INT64(offsetInDescriptors) * INT64(descriptorIncrementSize)); | ||
| 890 | return *this; | ||
| 891 | } | ||
| 892 | CD3DX12_CPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) noexcept | ||
| 893 | { | ||
| 894 | ptr = SIZE_T(INT64(ptr) + INT64(offsetScaledByIncrementSize)); | ||
| 895 | return *this; | ||
| 896 | } | ||
| 897 | bool operator==(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) const noexcept | ||
| 898 | { | ||
| 899 | return (ptr == other.ptr); | ||
| 900 | } | ||
| 901 | bool operator!=(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE& other) const noexcept | ||
| 902 | { | ||
| 903 | return (ptr != other.ptr); | ||
| 904 | } | ||
| 905 | CD3DX12_CPU_DESCRIPTOR_HANDLE &operator=(const D3D12_CPU_DESCRIPTOR_HANDLE &other) noexcept | ||
| 906 | { | ||
| 907 | ptr = other.ptr; | ||
| 908 | return *this; | ||
| 909 | } | ||
| 910 | |||
| 911 | inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) noexcept | ||
| 912 | { | ||
| 913 | InitOffsetted(*this, base, offsetScaledByIncrementSize); | ||
| 914 | } | ||
| 915 | |||
| 916 | inline void InitOffsetted(_In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept | ||
| 917 | { | ||
| 918 | InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); | ||
| 919 | } | ||
| 920 | |||
| 921 | static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) noexcept | ||
| 922 | { | ||
| 923 | handle.ptr = SIZE_T(INT64(base.ptr) + INT64(offsetScaledByIncrementSize)); | ||
| 924 | } | ||
| 925 | |||
| 926 | static inline void InitOffsetted(_Out_ D3D12_CPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_CPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept | ||
| 927 | { | ||
| 928 | handle.ptr = SIZE_T(INT64(base.ptr) + INT64(offsetInDescriptors) * INT64(descriptorIncrementSize)); | ||
| 929 | } | ||
| 930 | }; | ||
| 931 | |||
| 932 | //------------------------------------------------------------------------------------------------ | ||
| 933 | struct CD3DX12_GPU_DESCRIPTOR_HANDLE : public D3D12_GPU_DESCRIPTOR_HANDLE | ||
| 934 | { | ||
| 935 | CD3DX12_GPU_DESCRIPTOR_HANDLE() = default; | ||
| 936 | explicit CD3DX12_GPU_DESCRIPTOR_HANDLE(const D3D12_GPU_DESCRIPTOR_HANDLE &o) noexcept : | ||
| 937 | D3D12_GPU_DESCRIPTOR_HANDLE(o) | ||
| 938 | {} | ||
| 939 | CD3DX12_GPU_DESCRIPTOR_HANDLE(CD3DX12_DEFAULT) noexcept { ptr = 0; } | ||
| 940 | CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetScaledByIncrementSize) noexcept | ||
| 941 | { | ||
| 942 | InitOffsetted(other, offsetScaledByIncrementSize); | ||
| 943 | } | ||
| 944 | CD3DX12_GPU_DESCRIPTOR_HANDLE(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &other, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept | ||
| 945 | { | ||
| 946 | InitOffsetted(other, offsetInDescriptors, descriptorIncrementSize); | ||
| 947 | } | ||
| 948 | CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept | ||
| 949 | { | ||
| 950 | ptr = UINT64(INT64(ptr) + INT64(offsetInDescriptors) * INT64(descriptorIncrementSize)); | ||
| 951 | return *this; | ||
| 952 | } | ||
| 953 | CD3DX12_GPU_DESCRIPTOR_HANDLE& Offset(INT offsetScaledByIncrementSize) noexcept | ||
| 954 | { | ||
| 955 | ptr = UINT64(INT64(ptr) + INT64(offsetScaledByIncrementSize)); | ||
| 956 | return *this; | ||
| 957 | } | ||
| 958 | inline bool operator==(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) const noexcept | ||
| 959 | { | ||
| 960 | return (ptr == other.ptr); | ||
| 961 | } | ||
| 962 | inline bool operator!=(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE& other) const noexcept | ||
| 963 | { | ||
| 964 | return (ptr != other.ptr); | ||
| 965 | } | ||
| 966 | CD3DX12_GPU_DESCRIPTOR_HANDLE &operator=(const D3D12_GPU_DESCRIPTOR_HANDLE &other) noexcept | ||
| 967 | { | ||
| 968 | ptr = other.ptr; | ||
| 969 | return *this; | ||
| 970 | } | ||
| 971 | |||
| 972 | inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) noexcept | ||
| 973 | { | ||
| 974 | InitOffsetted(*this, base, offsetScaledByIncrementSize); | ||
| 975 | } | ||
| 976 | |||
| 977 | inline void InitOffsetted(_In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept | ||
| 978 | { | ||
| 979 | InitOffsetted(*this, base, offsetInDescriptors, descriptorIncrementSize); | ||
| 980 | } | ||
| 981 | |||
| 982 | static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetScaledByIncrementSize) noexcept | ||
| 983 | { | ||
| 984 | handle.ptr = UINT64(INT64(base.ptr) + INT64(offsetScaledByIncrementSize)); | ||
| 985 | } | ||
| 986 | |||
| 987 | static inline void InitOffsetted(_Out_ D3D12_GPU_DESCRIPTOR_HANDLE &handle, _In_ const D3D12_GPU_DESCRIPTOR_HANDLE &base, INT offsetInDescriptors, UINT descriptorIncrementSize) noexcept | ||
| 988 | { | ||
| 989 | handle.ptr = UINT64(INT64(base.ptr) + INT64(offsetInDescriptors) * INT64(descriptorIncrementSize)); | ||
| 990 | } | ||
| 991 | }; | ||
| 992 | |||
| 993 | //------------------------------------------------------------------------------------------------ | ||
| 994 | // D3D12 exports a new method for serializing root signatures in the Windows 10 Anniversary Update. | ||
| 995 | // To help enable root signature 1.1 features when they are available and not require maintaining | ||
| 996 | // two code paths for building root signatures, this helper method reconstructs a 1.0 signature when | ||
| 997 | // 1.1 is not supported. | ||
| 998 | #ifdef __clang__ | ||
| 999 | #pragma clang diagnostic push | ||
| 1000 | #pragma clang diagnostic ignored "-Wcovered-switch-default" | ||
| 1001 | #endif | ||
| 1002 | |||
| 1003 | inline HRESULT D3DX12SerializeVersionedRootSignature( | ||
| 1004 | _In_ const D3D12_VERSIONED_ROOT_SIGNATURE_DESC* pRootSignatureDesc, | ||
| 1005 | D3D_ROOT_SIGNATURE_VERSION MaxVersion, | ||
| 1006 | _Outptr_ ID3DBlob** ppBlob, | ||
| 1007 | _Always_(_Outptr_opt_result_maybenull_) ID3DBlob** ppErrorBlob) noexcept | ||
| 1008 | { | ||
| 1009 | if (ppErrorBlob != nullptr) | ||
| 1010 | { | ||
| 1011 | *ppErrorBlob = nullptr; | ||
| 1012 | } | ||
| 1013 | |||
| 1014 | switch (MaxVersion) | ||
| 1015 | { | ||
| 1016 | case D3D_ROOT_SIGNATURE_VERSION_1_0: | ||
| 1017 | switch (pRootSignatureDesc->Version) | ||
| 1018 | { | ||
| 1019 | case D3D_ROOT_SIGNATURE_VERSION_1_0: | ||
| 1020 | return D3D12SerializeRootSignature(&pRootSignatureDesc->Desc_1_0, D3D_ROOT_SIGNATURE_VERSION_1, ppBlob, ppErrorBlob); | ||
| 1021 | |||
| 1022 | case D3D_ROOT_SIGNATURE_VERSION_1_1: | ||
| 1023 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 1024 | case D3D_ROOT_SIGNATURE_VERSION_1_2: | ||
| 1025 | #endif | ||
| 1026 | { | ||
| 1027 | HRESULT hr = S_OK; | ||
| 1028 | const D3D12_ROOT_SIGNATURE_DESC1& desc_1_1 = pRootSignatureDesc->Desc_1_1; | ||
| 1029 | |||
| 1030 | const SIZE_T ParametersSize = sizeof(D3D12_ROOT_PARAMETER) * desc_1_1.NumParameters; | ||
| 1031 | void* pParameters = (ParametersSize > 0) ? HeapAlloc(GetProcessHeap(), 0, ParametersSize) : nullptr; | ||
| 1032 | if (ParametersSize > 0 && pParameters == nullptr) | ||
| 1033 | { | ||
| 1034 | hr = E_OUTOFMEMORY; | ||
| 1035 | } | ||
| 1036 | auto pParameters_1_0 = static_cast<D3D12_ROOT_PARAMETER*>(pParameters); | ||
| 1037 | |||
| 1038 | if (SUCCEEDED(hr)) | ||
| 1039 | { | ||
| 1040 | for (UINT n = 0; n < desc_1_1.NumParameters; n++) | ||
| 1041 | { | ||
| 1042 | __analysis_assume(ParametersSize == sizeof(D3D12_ROOT_PARAMETER) * desc_1_1.NumParameters); | ||
| 1043 | pParameters_1_0[n].ParameterType = desc_1_1.pParameters[n].ParameterType; | ||
| 1044 | pParameters_1_0[n].ShaderVisibility = desc_1_1.pParameters[n].ShaderVisibility; | ||
| 1045 | |||
| 1046 | switch (desc_1_1.pParameters[n].ParameterType) | ||
| 1047 | { | ||
| 1048 | case D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS: | ||
| 1049 | pParameters_1_0[n].Constants.Num32BitValues = desc_1_1.pParameters[n].Constants.Num32BitValues; | ||
| 1050 | pParameters_1_0[n].Constants.RegisterSpace = desc_1_1.pParameters[n].Constants.RegisterSpace; | ||
| 1051 | pParameters_1_0[n].Constants.ShaderRegister = desc_1_1.pParameters[n].Constants.ShaderRegister; | ||
| 1052 | break; | ||
| 1053 | |||
| 1054 | case D3D12_ROOT_PARAMETER_TYPE_CBV: | ||
| 1055 | case D3D12_ROOT_PARAMETER_TYPE_SRV: | ||
| 1056 | case D3D12_ROOT_PARAMETER_TYPE_UAV: | ||
| 1057 | pParameters_1_0[n].Descriptor.RegisterSpace = desc_1_1.pParameters[n].Descriptor.RegisterSpace; | ||
| 1058 | pParameters_1_0[n].Descriptor.ShaderRegister = desc_1_1.pParameters[n].Descriptor.ShaderRegister; | ||
| 1059 | break; | ||
| 1060 | |||
| 1061 | case D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE: | ||
| 1062 | { | ||
| 1063 | const D3D12_ROOT_DESCRIPTOR_TABLE1& table_1_1 = desc_1_1.pParameters[n].DescriptorTable; | ||
| 1064 | |||
| 1065 | const SIZE_T DescriptorRangesSize = sizeof(D3D12_DESCRIPTOR_RANGE) * table_1_1.NumDescriptorRanges; | ||
| 1066 | void* pDescriptorRanges = (DescriptorRangesSize > 0 && SUCCEEDED(hr)) ? HeapAlloc(GetProcessHeap(), 0, DescriptorRangesSize) : nullptr; | ||
| 1067 | if (DescriptorRangesSize > 0 && pDescriptorRanges == nullptr) | ||
| 1068 | { | ||
| 1069 | hr = E_OUTOFMEMORY; | ||
| 1070 | } | ||
| 1071 | auto pDescriptorRanges_1_0 = static_cast<D3D12_DESCRIPTOR_RANGE*>(pDescriptorRanges); | ||
| 1072 | |||
| 1073 | if (SUCCEEDED(hr)) | ||
| 1074 | { | ||
| 1075 | for (UINT x = 0; x < table_1_1.NumDescriptorRanges; x++) | ||
| 1076 | { | ||
| 1077 | __analysis_assume(DescriptorRangesSize == sizeof(D3D12_DESCRIPTOR_RANGE) * table_1_1.NumDescriptorRanges); | ||
| 1078 | pDescriptorRanges_1_0[x].BaseShaderRegister = table_1_1.pDescriptorRanges[x].BaseShaderRegister; | ||
| 1079 | pDescriptorRanges_1_0[x].NumDescriptors = table_1_1.pDescriptorRanges[x].NumDescriptors; | ||
| 1080 | pDescriptorRanges_1_0[x].OffsetInDescriptorsFromTableStart = table_1_1.pDescriptorRanges[x].OffsetInDescriptorsFromTableStart; | ||
| 1081 | pDescriptorRanges_1_0[x].RangeType = table_1_1.pDescriptorRanges[x].RangeType; | ||
| 1082 | pDescriptorRanges_1_0[x].RegisterSpace = table_1_1.pDescriptorRanges[x].RegisterSpace; | ||
| 1083 | } | ||
| 1084 | } | ||
| 1085 | |||
| 1086 | D3D12_ROOT_DESCRIPTOR_TABLE& table_1_0 = pParameters_1_0[n].DescriptorTable; | ||
| 1087 | table_1_0.NumDescriptorRanges = table_1_1.NumDescriptorRanges; | ||
| 1088 | table_1_0.pDescriptorRanges = pDescriptorRanges_1_0; | ||
| 1089 | } | ||
| 1090 | break; | ||
| 1091 | |||
| 1092 | default: | ||
| 1093 | break; | ||
| 1094 | } | ||
| 1095 | } | ||
| 1096 | } | ||
| 1097 | |||
| 1098 | D3D12_STATIC_SAMPLER_DESC* pStaticSamplers = nullptr; | ||
| 1099 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 1100 | if (desc_1_1.NumStaticSamplers > 0 && pRootSignatureDesc->Version == D3D_ROOT_SIGNATURE_VERSION_1_2) | ||
| 1101 | { | ||
| 1102 | const SIZE_T SamplersSize = sizeof(D3D12_STATIC_SAMPLER_DESC) * desc_1_1.NumStaticSamplers; | ||
| 1103 | pStaticSamplers = static_cast<D3D12_STATIC_SAMPLER_DESC*>(HeapAlloc(GetProcessHeap(), 0, SamplersSize)); | ||
| 1104 | |||
| 1105 | if (pStaticSamplers == nullptr) | ||
| 1106 | { | ||
| 1107 | hr = E_OUTOFMEMORY; | ||
| 1108 | } | ||
| 1109 | else | ||
| 1110 | { | ||
| 1111 | const D3D12_ROOT_SIGNATURE_DESC2& desc_1_2 = pRootSignatureDesc->Desc_1_2; | ||
| 1112 | for (UINT n = 0; n < desc_1_1.NumStaticSamplers; ++n) | ||
| 1113 | { | ||
| 1114 | if ((desc_1_2.pStaticSamplers[n].Flags & ~D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR) != 0) | ||
| 1115 | { | ||
| 1116 | hr = E_INVALIDARG; | ||
| 1117 | break; | ||
| 1118 | } | ||
| 1119 | memcpy(pStaticSamplers + n, desc_1_2.pStaticSamplers + n, sizeof(D3D12_STATIC_SAMPLER_DESC)); | ||
| 1120 | } | ||
| 1121 | } | ||
| 1122 | } | ||
| 1123 | #endif | ||
| 1124 | |||
| 1125 | if (SUCCEEDED(hr)) | ||
| 1126 | { | ||
| 1127 | 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); | ||
| 1128 | hr = D3D12SerializeRootSignature(&desc_1_0, D3D_ROOT_SIGNATURE_VERSION_1, ppBlob, ppErrorBlob); | ||
| 1129 | } | ||
| 1130 | |||
| 1131 | if (pParameters) | ||
| 1132 | { | ||
| 1133 | for (UINT n = 0; n < desc_1_1.NumParameters; n++) | ||
| 1134 | { | ||
| 1135 | if (desc_1_1.pParameters[n].ParameterType == D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE) | ||
| 1136 | { | ||
| 1137 | auto pDescriptorRanges_1_0 = pParameters_1_0[n].DescriptorTable.pDescriptorRanges; | ||
| 1138 | HeapFree(GetProcessHeap(), 0, reinterpret_cast<void*>(const_cast<D3D12_DESCRIPTOR_RANGE*>(pDescriptorRanges_1_0))); | ||
| 1139 | } | ||
| 1140 | } | ||
| 1141 | HeapFree(GetProcessHeap(), 0, pParameters); | ||
| 1142 | } | ||
| 1143 | |||
| 1144 | if (pStaticSamplers) | ||
| 1145 | { | ||
| 1146 | HeapFree(GetProcessHeap(), 0, pStaticSamplers); | ||
| 1147 | } | ||
| 1148 | |||
| 1149 | return hr; | ||
| 1150 | } | ||
| 1151 | |||
| 1152 | default: | ||
| 1153 | break; | ||
| 1154 | } | ||
| 1155 | break; | ||
| 1156 | |||
| 1157 | case D3D_ROOT_SIGNATURE_VERSION_1_1: | ||
| 1158 | switch (pRootSignatureDesc->Version) | ||
| 1159 | { | ||
| 1160 | case D3D_ROOT_SIGNATURE_VERSION_1_0: | ||
| 1161 | case D3D_ROOT_SIGNATURE_VERSION_1_1: | ||
| 1162 | return D3D12SerializeVersionedRootSignature(pRootSignatureDesc, ppBlob, ppErrorBlob); | ||
| 1163 | |||
| 1164 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 1165 | case D3D_ROOT_SIGNATURE_VERSION_1_2: | ||
| 1166 | { | ||
| 1167 | HRESULT hr = S_OK; | ||
| 1168 | const D3D12_ROOT_SIGNATURE_DESC1& desc_1_1 = pRootSignatureDesc->Desc_1_1; | ||
| 1169 | |||
| 1170 | D3D12_STATIC_SAMPLER_DESC* pStaticSamplers = nullptr; | ||
| 1171 | if (desc_1_1.NumStaticSamplers > 0) | ||
| 1172 | { | ||
| 1173 | const SIZE_T SamplersSize = sizeof(D3D12_STATIC_SAMPLER_DESC) * desc_1_1.NumStaticSamplers; | ||
| 1174 | pStaticSamplers = static_cast<D3D12_STATIC_SAMPLER_DESC*>(HeapAlloc(GetProcessHeap(), 0, SamplersSize)); | ||
| 1175 | |||
| 1176 | if (pStaticSamplers == nullptr) | ||
| 1177 | { | ||
| 1178 | hr = E_OUTOFMEMORY; | ||
| 1179 | } | ||
| 1180 | else | ||
| 1181 | { | ||
| 1182 | const D3D12_ROOT_SIGNATURE_DESC2& desc_1_2 = pRootSignatureDesc->Desc_1_2; | ||
| 1183 | for (UINT n = 0; n < desc_1_1.NumStaticSamplers; ++n) | ||
| 1184 | { | ||
| 1185 | if ((desc_1_2.pStaticSamplers[n].Flags & ~D3D12_SAMPLER_FLAG_UINT_BORDER_COLOR) != 0) | ||
| 1186 | { | ||
| 1187 | hr = E_INVALIDARG; | ||
| 1188 | break; | ||
| 1189 | } | ||
| 1190 | memcpy(pStaticSamplers + n, desc_1_2.pStaticSamplers + n, sizeof(D3D12_STATIC_SAMPLER_DESC)); | ||
| 1191 | } | ||
| 1192 | } | ||
| 1193 | } | ||
| 1194 | |||
| 1195 | if (SUCCEEDED(hr)) | ||
| 1196 | { | ||
| 1197 | 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); | ||
| 1198 | hr = D3D12SerializeVersionedRootSignature(&desc, ppBlob, ppErrorBlob); | ||
| 1199 | } | ||
| 1200 | |||
| 1201 | if (pStaticSamplers) | ||
| 1202 | { | ||
| 1203 | HeapFree(GetProcessHeap(), 0, pStaticSamplers); | ||
| 1204 | } | ||
| 1205 | |||
| 1206 | return hr; | ||
| 1207 | } | ||
| 1208 | #endif | ||
| 1209 | |||
| 1210 | default: | ||
| 1211 | break; | ||
| 1212 | } | ||
| 1213 | break; | ||
| 1214 | |||
| 1215 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 609) | ||
| 1216 | case D3D_ROOT_SIGNATURE_VERSION_1_2: | ||
| 1217 | #endif | ||
| 1218 | default: | ||
| 1219 | return D3D12SerializeVersionedRootSignature(pRootSignatureDesc, ppBlob, ppErrorBlob); | ||
| 1220 | } | ||
| 1221 | |||
| 1222 | return E_INVALIDARG; | ||
| 1223 | } | ||
| 1224 | |||
| 1225 | #ifdef __clang__ | ||
| 1226 | #pragma clang diagnostic pop | ||
| 1227 | #endif | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_state_object.h b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_state_object.h new file mode 100644 index 0000000..579ecc8 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/d3dx12_state_object.h | |||
| @@ -0,0 +1,2570 @@ | |||
| 1 | //********************************************************* | ||
| 2 | // | ||
| 3 | // Copyright (c) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT License (MIT). | ||
| 5 | // | ||
| 6 | //********************************************************* | ||
| 7 | |||
| 8 | #pragma once | ||
| 9 | |||
| 10 | #ifndef __cplusplus | ||
| 11 | #error D3DX12 requires C++ | ||
| 12 | #endif | ||
| 13 | |||
| 14 | #include "d3dx12_default.h" | ||
| 15 | #include "d3d12.h" | ||
| 16 | #include "d3dx12_core.h" | ||
| 17 | |||
| 18 | //================================================================================================ | ||
| 19 | // D3DX12 State Object Creation Helpers | ||
| 20 | // | ||
| 21 | // Helper classes for creating new style state objects out of an arbitrary set of subobjects. | ||
| 22 | // Uses STL | ||
| 23 | // | ||
| 24 | // Start by instantiating CD3DX12_STATE_OBJECT_DESC (see its public methods). | ||
| 25 | // One of its methods is CreateSubobject(), which has a comment showing a couple of options for | ||
| 26 | // defining subobjects using the helper classes for each subobject (CD3DX12_DXIL_LIBRARY_SUBOBJECT | ||
| 27 | // etc.). The subobject helpers each have methods specific to the subobject for configuring its | ||
| 28 | // contents. | ||
| 29 | // | ||
| 30 | //================================================================================================ | ||
| 31 | #include <list> | ||
| 32 | #include <forward_list> | ||
| 33 | #include <vector> | ||
| 34 | #include <memory> | ||
| 35 | #include <string> | ||
| 36 | #include <vector> | ||
| 37 | #ifndef D3DX12_USE_ATL | ||
| 38 | #include <wrl/client.h> | ||
| 39 | #define D3DX12_COM_PTR Microsoft::WRL::ComPtr | ||
| 40 | #define D3DX12_COM_PTR_GET(x) x.Get() | ||
| 41 | #define D3DX12_COM_PTR_ADDRESSOF(x) x.GetAddressOf() | ||
| 42 | #else | ||
| 43 | #include <atlbase.h> | ||
| 44 | #define D3DX12_COM_PTR ATL::CComPtr | ||
| 45 | #define D3DX12_COM_PTR_GET(x) x.p | ||
| 46 | #define D3DX12_COM_PTR_ADDRESSOF(x) &x.p | ||
| 47 | #endif | ||
| 48 | |||
| 49 | //------------------------------------------------------------------------------------------------ | ||
| 50 | class CD3DX12_STATE_OBJECT_DESC | ||
| 51 | { | ||
| 52 | public: | ||
| 53 | CD3DX12_STATE_OBJECT_DESC() noexcept | ||
| 54 | { | ||
| 55 | Init(D3D12_STATE_OBJECT_TYPE_COLLECTION); | ||
| 56 | } | ||
| 57 | CD3DX12_STATE_OBJECT_DESC(D3D12_STATE_OBJECT_TYPE Type) noexcept | ||
| 58 | { | ||
| 59 | Init(Type); | ||
| 60 | } | ||
| 61 | void SetStateObjectType(D3D12_STATE_OBJECT_TYPE Type) noexcept { m_Desc.Type = Type; } | ||
| 62 | CD3DX12_STATE_OBJECT_DESC(const CD3DX12_STATE_OBJECT_DESC& other) = delete; | ||
| 63 | CD3DX12_STATE_OBJECT_DESC& operator=(const CD3DX12_STATE_OBJECT_DESC& other) = delete; | ||
| 64 | CD3DX12_STATE_OBJECT_DESC(CD3DX12_STATE_OBJECT_DESC&& other) = default; | ||
| 65 | CD3DX12_STATE_OBJECT_DESC& operator=(CD3DX12_STATE_OBJECT_DESC&& other) = default; | ||
| 66 | operator const D3D12_STATE_OBJECT_DESC& () | ||
| 67 | { | ||
| 68 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 69 | m_RepointedSubobjectVectors.clear(); | ||
| 70 | m_RepointedPrograms.clear(); | ||
| 71 | #endif | ||
| 72 | m_RepointedAssociations.clear(); | ||
| 73 | m_SubobjectArray.clear(); | ||
| 74 | m_SubobjectArray.reserve(m_Desc.NumSubobjects); | ||
| 75 | // Flatten subobjects into an array (each flattened subobject still has a | ||
| 76 | // member that's a pointer to its desc that's not flattened) | ||
| 77 | for (auto Iter = m_SubobjectList.begin(); | ||
| 78 | Iter != m_SubobjectList.end(); Iter++) | ||
| 79 | { | ||
| 80 | m_SubobjectArray.push_back(*Iter); | ||
| 81 | // Store new location in array so we can redirect pointers contained in subobjects | ||
| 82 | Iter->pSubobjectArrayLocation = &m_SubobjectArray.back(); | ||
| 83 | } | ||
| 84 | // For subobjects with pointer fields, create a new copy of those subobject definitions | ||
| 85 | // with fixed pointers | ||
| 86 | for (UINT i = 0; i < m_Desc.NumSubobjects; i++) | ||
| 87 | { | ||
| 88 | if (m_SubobjectArray[i].Type == D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION) | ||
| 89 | { | ||
| 90 | auto pOriginalSubobjectAssociation = | ||
| 91 | static_cast<const D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION*>(m_SubobjectArray[i].pDesc); | ||
| 92 | D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION Repointed = *pOriginalSubobjectAssociation; | ||
| 93 | auto pWrapper = | ||
| 94 | static_cast<const SUBOBJECT_WRAPPER*>(pOriginalSubobjectAssociation->pSubobjectToAssociate); | ||
| 95 | Repointed.pSubobjectToAssociate = pWrapper->pSubobjectArrayLocation; | ||
| 96 | m_RepointedAssociations.push_back(Repointed); | ||
| 97 | m_SubobjectArray[i].pDesc = &m_RepointedAssociations.back(); | ||
| 98 | } | ||
| 99 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 100 | else if (m_SubobjectArray[i].Type == D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM) | ||
| 101 | { | ||
| 102 | auto originalGenericProgramDesc = | ||
| 103 | static_cast<const D3D12_GENERIC_PROGRAM_DESC*>(m_SubobjectArray[i].pDesc); | ||
| 104 | D3D12_GENERIC_PROGRAM_DESC Repointed = *originalGenericProgramDesc; | ||
| 105 | if (originalGenericProgramDesc->NumSubobjects > 0) | ||
| 106 | { | ||
| 107 | m_RepointedSubobjectVectors.emplace_back(std::vector<const D3D12_STATE_SUBOBJECT*>()); | ||
| 108 | std::vector<D3D12_STATE_SUBOBJECT const*>& repointedGenericProgramSubobjects = m_RepointedSubobjectVectors.back(); | ||
| 109 | repointedGenericProgramSubobjects.resize(originalGenericProgramDesc->NumSubobjects); | ||
| 110 | for (UINT s = 0; s < originalGenericProgramDesc->NumSubobjects; s++) | ||
| 111 | { | ||
| 112 | auto pWrapper = | ||
| 113 | static_cast<const SUBOBJECT_WRAPPER*>(originalGenericProgramDesc->ppSubobjects[s]); | ||
| 114 | repointedGenericProgramSubobjects[s] = pWrapper->pSubobjectArrayLocation; | ||
| 115 | } | ||
| 116 | // Below: using ugly way to get pointer in case .data() is not defined | ||
| 117 | Repointed.ppSubobjects = &repointedGenericProgramSubobjects[0]; | ||
| 118 | } | ||
| 119 | m_RepointedPrograms.push_back(Repointed); | ||
| 120 | m_SubobjectArray[i].pDesc = &m_RepointedPrograms.back(); | ||
| 121 | } | ||
| 122 | #endif | ||
| 123 | } | ||
| 124 | // Below: using ugly way to get pointer in case .data() is not defined | ||
| 125 | m_Desc.pSubobjects = m_Desc.NumSubobjects ? &m_SubobjectArray[0] : nullptr; | ||
| 126 | return m_Desc; | ||
| 127 | } | ||
| 128 | operator const D3D12_STATE_OBJECT_DESC* () | ||
| 129 | { | ||
| 130 | // Cast calls the above final preparation work | ||
| 131 | return &static_cast<const D3D12_STATE_OBJECT_DESC&>(*this); | ||
| 132 | } | ||
| 133 | |||
| 134 | // CreateSubobject creates a sububject helper (e.g. CD3DX12_HIT_GROUP_SUBOBJECT) | ||
| 135 | // whose lifetime is owned by this class. | ||
| 136 | // e.g. | ||
| 137 | // | ||
| 138 | // CD3DX12_STATE_OBJECT_DESC Collection1(D3D12_STATE_OBJECT_TYPE_COLLECTION); | ||
| 139 | // auto Lib0 = Collection1.CreateSubobject<CD3DX12_DXIL_LIBRARY_SUBOBJECT>(); | ||
| 140 | // Lib0->SetDXILLibrary(&pMyAppDxilLibs[0]); | ||
| 141 | // Lib0->DefineExport(L"rayGenShader0"); // in practice these export listings might be | ||
| 142 | // // data/engine driven | ||
| 143 | // etc. | ||
| 144 | // | ||
| 145 | // Alternatively, users can instantiate sububject helpers explicitly, such as via local | ||
| 146 | // variables instead, passing the state object desc that should point to it into the helper | ||
| 147 | // constructor (or call mySubobjectHelper.AddToStateObject(Collection1)). | ||
| 148 | // In this alternative scenario, the user must keep the subobject alive as long as the state | ||
| 149 | // object it is associated with is alive, else its pointer references will be stale. | ||
| 150 | // e.g. | ||
| 151 | // | ||
| 152 | // CD3DX12_STATE_OBJECT_DESC RaytracingState2(D3D12_STATE_OBJECT_TYPE_RAYTRACING_PIPELINE); | ||
| 153 | // CD3DX12_DXIL_LIBRARY_SUBOBJECT LibA(RaytracingState2); | ||
| 154 | // LibA.SetDXILLibrary(&pMyAppDxilLibs[4]); // not manually specifying exports | ||
| 155 | // // - meaning all exports in the libraries | ||
| 156 | // // are exported | ||
| 157 | // etc. | ||
| 158 | |||
| 159 | template<typename T> | ||
| 160 | T* CreateSubobject() | ||
| 161 | { | ||
| 162 | T* pSubobject = new T(*this); | ||
| 163 | m_OwnedSubobjectHelpers.emplace_back(pSubobject); | ||
| 164 | return pSubobject; | ||
| 165 | } | ||
| 166 | |||
| 167 | template<typename T, typename U> | ||
| 168 | T* CreateSubobject(U&& arg) | ||
| 169 | { | ||
| 170 | T* pSubobject = new T(std::forward<U>(arg), *this); | ||
| 171 | m_OwnedSubobjectHelpers.emplace_back(pSubobject); | ||
| 172 | return pSubobject; | ||
| 173 | } | ||
| 174 | |||
| 175 | private: | ||
| 176 | D3D12_STATE_SUBOBJECT* TrackSubobject(D3D12_STATE_SUBOBJECT_TYPE Type, void* pDesc) | ||
| 177 | { | ||
| 178 | SUBOBJECT_WRAPPER Subobject; | ||
| 179 | Subobject.pSubobjectArrayLocation = nullptr; | ||
| 180 | Subobject.Type = Type; | ||
| 181 | Subobject.pDesc = pDesc; | ||
| 182 | m_SubobjectList.push_back(Subobject); | ||
| 183 | m_Desc.NumSubobjects++; | ||
| 184 | return &m_SubobjectList.back(); | ||
| 185 | } | ||
| 186 | void Init(D3D12_STATE_OBJECT_TYPE Type) noexcept | ||
| 187 | { | ||
| 188 | SetStateObjectType(Type); | ||
| 189 | m_Desc.pSubobjects = nullptr; | ||
| 190 | m_Desc.NumSubobjects = 0; | ||
| 191 | m_SubobjectList.clear(); | ||
| 192 | m_SubobjectArray.clear(); | ||
| 193 | m_RepointedAssociations.clear(); | ||
| 194 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 195 | m_RepointedSubobjectVectors.clear(); | ||
| 196 | m_RepointedPrograms.clear(); | ||
| 197 | #endif | ||
| 198 | } | ||
| 199 | typedef struct SUBOBJECT_WRAPPER : public D3D12_STATE_SUBOBJECT | ||
| 200 | { | ||
| 201 | D3D12_STATE_SUBOBJECT* pSubobjectArrayLocation; // new location when flattened into array | ||
| 202 | // for repointing pointers in subobjects | ||
| 203 | } SUBOBJECT_WRAPPER; | ||
| 204 | D3D12_STATE_OBJECT_DESC m_Desc; | ||
| 205 | std::list<SUBOBJECT_WRAPPER> m_SubobjectList; // Pointers to list nodes handed out so | ||
| 206 | // these can be edited live | ||
| 207 | std::vector<D3D12_STATE_SUBOBJECT> m_SubobjectArray; // Built at the end, copying list contents | ||
| 208 | |||
| 209 | std::list<D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION> | ||
| 210 | m_RepointedAssociations; // subobject type that contains pointers to other subobjects, | ||
| 211 | // repointed to flattened array | ||
| 212 | |||
| 213 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 214 | std::list<std::vector<D3D12_STATE_SUBOBJECT const*>> | ||
| 215 | m_RepointedSubobjectVectors; | ||
| 216 | std::list<D3D12_GENERIC_PROGRAM_DESC> | ||
| 217 | m_RepointedPrograms; | ||
| 218 | #endif | ||
| 219 | |||
| 220 | template<typename CStr, typename StdStr> | ||
| 221 | class StringContainer | ||
| 222 | { | ||
| 223 | public: | ||
| 224 | CStr LocalCopy(CStr string, bool bSingleString = false) | ||
| 225 | { | ||
| 226 | if (string) | ||
| 227 | { | ||
| 228 | if (bSingleString) | ||
| 229 | { | ||
| 230 | m_Strings.clear(); | ||
| 231 | m_Strings.push_back(string); | ||
| 232 | } | ||
| 233 | else | ||
| 234 | { | ||
| 235 | m_Strings.push_back(string); | ||
| 236 | } | ||
| 237 | return m_Strings.back().c_str(); | ||
| 238 | } | ||
| 239 | else | ||
| 240 | { | ||
| 241 | return nullptr; | ||
| 242 | } | ||
| 243 | } | ||
| 244 | void clear() noexcept { m_Strings.clear(); } | ||
| 245 | private: | ||
| 246 | std::list<StdStr> m_Strings; | ||
| 247 | }; | ||
| 248 | |||
| 249 | public: | ||
| 250 | class SUBOBJECT_HELPER_BASE | ||
| 251 | { | ||
| 252 | public: | ||
| 253 | SUBOBJECT_HELPER_BASE() noexcept { Init(); } | ||
| 254 | virtual ~SUBOBJECT_HELPER_BASE() = default; | ||
| 255 | virtual D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept = 0; | ||
| 256 | SUBOBJECT_HELPER_BASE(const SUBOBJECT_HELPER_BASE& other) = delete; | ||
| 257 | SUBOBJECT_HELPER_BASE& operator=(const SUBOBJECT_HELPER_BASE& other) = delete; | ||
| 258 | SUBOBJECT_HELPER_BASE(SUBOBJECT_HELPER_BASE&& other) = default; | ||
| 259 | SUBOBJECT_HELPER_BASE& operator=(SUBOBJECT_HELPER_BASE&& other) = default; | ||
| 260 | void AddToStateObject(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 261 | { | ||
| 262 | m_pSubobject = ContainingStateObject.TrackSubobject(Type(), Data()); | ||
| 263 | } | ||
| 264 | operator const D3D12_STATE_SUBOBJECT& () const noexcept { return *m_pSubobject; } | ||
| 265 | protected: | ||
| 266 | virtual void* Data() noexcept = 0; | ||
| 267 | void Init() noexcept { m_pSubobject = nullptr; } | ||
| 268 | D3D12_STATE_SUBOBJECT* m_pSubobject; | ||
| 269 | }; | ||
| 270 | |||
| 271 | private: | ||
| 272 | std::list<std::unique_ptr<SUBOBJECT_HELPER_BASE>> m_OwnedSubobjectHelpers; | ||
| 273 | |||
| 274 | friend class CD3DX12_DXIL_LIBRARY_SUBOBJECT; | ||
| 275 | friend class CD3DX12_EXISTING_COLLECTION_SUBOBJECT; | ||
| 276 | friend class CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT; | ||
| 277 | friend class CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; | ||
| 278 | friend class CD3DX12_HIT_GROUP_SUBOBJECT; | ||
| 279 | friend class CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT; | ||
| 280 | friend class CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT; | ||
| 281 | friend class CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT; | ||
| 282 | friend class CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT; | ||
| 283 | friend class CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT; | ||
| 284 | friend class CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT; | ||
| 285 | friend class CD3DX12_NODE_MASK_SUBOBJECT; | ||
| 286 | //TODO: SDK Version check should include all the newly added subobject type for the public release. | ||
| 287 | // The SDK version check will be changed based on when we release state objects. | ||
| 288 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 289 | friend class CD3DX12_GENERIC_PROGRAM_SUBOBJECT; | ||
| 290 | friend class CD3DX12_WORK_GRAPH_SUBOBJECT; | ||
| 291 | friend class CD3DX12_STREAM_OUTPUT_SUBOBJECT; | ||
| 292 | friend class CD3DX12_BLEND_SUBOBJECT; | ||
| 293 | friend class CD3DX12_RASTERIZER_SUBOBJECT; | ||
| 294 | friend class CD3DX12_DEPTH_STENCIL2_SUBOBJECT; | ||
| 295 | friend class CD3DX12_INPUT_LAYOUT_SUBOBJECT; | ||
| 296 | friend class CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT; | ||
| 297 | friend class CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT; | ||
| 298 | friend class CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT; | ||
| 299 | friend class CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT; | ||
| 300 | friend class CD3DX12_SAMPLE_DESC_SUBOBJECT; | ||
| 301 | friend class CD3DX12_FLAGS_SUBOBJECT; | ||
| 302 | friend class CD3DX12_VIEW_INSTANCING_SUBOBJECT; | ||
| 303 | friend class CD3DX12_DEPTH_STENCIL_SUBOBJECT; | ||
| 304 | friend class CD3DX12_DEPTH_STENCIL1_SUBOBJECT; | ||
| 305 | friend class CD3DX12_SAMPLE_MASK_SUBOBJECT; | ||
| 306 | friend class CD3DX12_NODE_OUTPUT_OVERRIDES; | ||
| 307 | friend class CD3DX12_NODE_HELPER_BASE; | ||
| 308 | friend class CD3DX12_SHADER_NODE; | ||
| 309 | friend class CD3DX12_BROADCASTING_LAUNCH_NODE_OVERRIDES; | ||
| 310 | friend class CD3DX12_COALESCING_LAUNCH_NODE_OVERRIDES; | ||
| 311 | friend class CD3DX12_THREAD_LAUNCH_NODE_OVERRIDES; | ||
| 312 | friend class CD3DX12_COMMON_COMPUTE_NODE_OVERRIDES; | ||
| 313 | #endif // D3D12_SDK_VERSION >= 612 | ||
| 314 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 618) | ||
| 315 | friend class CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT; | ||
| 316 | friend class CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT; | ||
| 317 | friend class CD3DX12_COMPILER_EXISTING_COLLECTION_SUBOBJECT; | ||
| 318 | friend class CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT; | ||
| 319 | #endif | ||
| 320 | }; | ||
| 321 | |||
| 322 | //------------------------------------------------------------------------------------------------ | ||
| 323 | class CD3DX12_DXIL_LIBRARY_SUBOBJECT | ||
| 324 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 325 | { | ||
| 326 | public: | ||
| 327 | CD3DX12_DXIL_LIBRARY_SUBOBJECT() noexcept | ||
| 328 | { | ||
| 329 | Init(); | ||
| 330 | } | ||
| 331 | CD3DX12_DXIL_LIBRARY_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 332 | { | ||
| 333 | Init(); | ||
| 334 | AddToStateObject(ContainingStateObject); | ||
| 335 | } | ||
| 336 | CD3DX12_DXIL_LIBRARY_SUBOBJECT(const CD3DX12_DXIL_LIBRARY_SUBOBJECT& other) = delete; | ||
| 337 | CD3DX12_DXIL_LIBRARY_SUBOBJECT& operator=(const CD3DX12_DXIL_LIBRARY_SUBOBJECT& other) = delete; | ||
| 338 | CD3DX12_DXIL_LIBRARY_SUBOBJECT(CD3DX12_DXIL_LIBRARY_SUBOBJECT&& other) = default; | ||
| 339 | CD3DX12_DXIL_LIBRARY_SUBOBJECT& operator=(CD3DX12_DXIL_LIBRARY_SUBOBJECT&& other) = default; | ||
| 340 | void SetDXILLibrary(const D3D12_SHADER_BYTECODE* pCode) noexcept | ||
| 341 | { | ||
| 342 | static const D3D12_SHADER_BYTECODE Default = {}; | ||
| 343 | m_Desc.DXILLibrary = pCode ? *pCode : Default; | ||
| 344 | } | ||
| 345 | void DefineExport( | ||
| 346 | LPCWSTR Name, | ||
| 347 | LPCWSTR ExportToRename = nullptr, | ||
| 348 | D3D12_EXPORT_FLAGS Flags = D3D12_EXPORT_FLAG_NONE) | ||
| 349 | { | ||
| 350 | D3D12_EXPORT_DESC Export; | ||
| 351 | Export.Name = m_Strings.LocalCopy(Name); | ||
| 352 | Export.ExportToRename = m_Strings.LocalCopy(ExportToRename); | ||
| 353 | Export.Flags = Flags; | ||
| 354 | m_Exports.push_back(Export); | ||
| 355 | m_Desc.pExports = &m_Exports[0]; // using ugly way to get pointer in case .data() is not defined | ||
| 356 | m_Desc.NumExports = static_cast<UINT>(m_Exports.size()); | ||
| 357 | } | ||
| 358 | template<size_t N> | ||
| 359 | void DefineExports(LPCWSTR(&Exports)[N]) | ||
| 360 | { | ||
| 361 | for (UINT i = 0; i < N; i++) | ||
| 362 | { | ||
| 363 | DefineExport(Exports[i]); | ||
| 364 | } | ||
| 365 | } | ||
| 366 | void DefineExports(const LPCWSTR* Exports, UINT N) | ||
| 367 | { | ||
| 368 | for (UINT i = 0; i < N; i++) | ||
| 369 | { | ||
| 370 | DefineExport(Exports[i]); | ||
| 371 | } | ||
| 372 | } | ||
| 373 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 374 | { | ||
| 375 | return D3D12_STATE_SUBOBJECT_TYPE_DXIL_LIBRARY; | ||
| 376 | } | ||
| 377 | operator const D3D12_DXIL_LIBRARY_DESC&() const noexcept { return m_Desc; } | ||
| 378 | private: | ||
| 379 | void Init() noexcept | ||
| 380 | { | ||
| 381 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 382 | m_Desc = {}; | ||
| 383 | m_Strings.clear(); | ||
| 384 | m_Exports.clear(); | ||
| 385 | } | ||
| 386 | void* Data() noexcept override { return &m_Desc; } | ||
| 387 | D3D12_DXIL_LIBRARY_DESC m_Desc; | ||
| 388 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_Strings; | ||
| 389 | std::vector<D3D12_EXPORT_DESC> m_Exports; | ||
| 390 | }; | ||
| 391 | |||
| 392 | //------------------------------------------------------------------------------------------------ | ||
| 393 | class CD3DX12_EXISTING_COLLECTION_SUBOBJECT | ||
| 394 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 395 | { | ||
| 396 | public: | ||
| 397 | CD3DX12_EXISTING_COLLECTION_SUBOBJECT() noexcept | ||
| 398 | { | ||
| 399 | Init(); | ||
| 400 | } | ||
| 401 | CD3DX12_EXISTING_COLLECTION_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 402 | { | ||
| 403 | Init(); | ||
| 404 | AddToStateObject(ContainingStateObject); | ||
| 405 | } | ||
| 406 | CD3DX12_EXISTING_COLLECTION_SUBOBJECT(const CD3DX12_EXISTING_COLLECTION_SUBOBJECT& other) = delete; | ||
| 407 | CD3DX12_EXISTING_COLLECTION_SUBOBJECT& operator=(const CD3DX12_EXISTING_COLLECTION_SUBOBJECT& other) = delete; | ||
| 408 | CD3DX12_EXISTING_COLLECTION_SUBOBJECT(CD3DX12_EXISTING_COLLECTION_SUBOBJECT&& other) = default; | ||
| 409 | CD3DX12_EXISTING_COLLECTION_SUBOBJECT& operator=(CD3DX12_EXISTING_COLLECTION_SUBOBJECT&& other) = default; | ||
| 410 | void SetExistingCollection(ID3D12StateObject*pExistingCollection) noexcept | ||
| 411 | { | ||
| 412 | m_Desc.pExistingCollection = pExistingCollection; | ||
| 413 | m_CollectionRef = pExistingCollection; | ||
| 414 | } | ||
| 415 | void DefineExport( | ||
| 416 | LPCWSTR Name, | ||
| 417 | LPCWSTR ExportToRename = nullptr, | ||
| 418 | D3D12_EXPORT_FLAGS Flags = D3D12_EXPORT_FLAG_NONE) | ||
| 419 | { | ||
| 420 | D3D12_EXPORT_DESC Export; | ||
| 421 | Export.Name = m_Strings.LocalCopy(Name); | ||
| 422 | Export.ExportToRename = m_Strings.LocalCopy(ExportToRename); | ||
| 423 | Export.Flags = Flags; | ||
| 424 | m_Exports.push_back(Export); | ||
| 425 | m_Desc.pExports = &m_Exports[0]; // using ugly way to get pointer in case .data() is not defined | ||
| 426 | m_Desc.NumExports = static_cast<UINT>(m_Exports.size()); | ||
| 427 | } | ||
| 428 | template<size_t N> | ||
| 429 | void DefineExports(LPCWSTR(&Exports)[N]) | ||
| 430 | { | ||
| 431 | for (UINT i = 0; i < N; i++) | ||
| 432 | { | ||
| 433 | DefineExport(Exports[i]); | ||
| 434 | } | ||
| 435 | } | ||
| 436 | void DefineExports(const LPCWSTR* Exports, UINT N) | ||
| 437 | { | ||
| 438 | for (UINT i = 0; i < N; i++) | ||
| 439 | { | ||
| 440 | DefineExport(Exports[i]); | ||
| 441 | } | ||
| 442 | } | ||
| 443 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 444 | { | ||
| 445 | return D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION; | ||
| 446 | } | ||
| 447 | operator const D3D12_EXISTING_COLLECTION_DESC&() const noexcept { return m_Desc; } | ||
| 448 | private: | ||
| 449 | void Init() noexcept | ||
| 450 | { | ||
| 451 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 452 | m_Desc = {}; | ||
| 453 | m_CollectionRef = nullptr; | ||
| 454 | m_Strings.clear(); | ||
| 455 | m_Exports.clear(); | ||
| 456 | } | ||
| 457 | void* Data() noexcept override { return &m_Desc; } | ||
| 458 | D3D12_EXISTING_COLLECTION_DESC m_Desc; | ||
| 459 | D3DX12_COM_PTR<ID3D12StateObject> m_CollectionRef; | ||
| 460 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_Strings; | ||
| 461 | std::vector<D3D12_EXPORT_DESC> m_Exports; | ||
| 462 | }; | ||
| 463 | |||
| 464 | //------------------------------------------------------------------------------------------------ | ||
| 465 | class CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT | ||
| 466 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 467 | { | ||
| 468 | public: | ||
| 469 | CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT() noexcept | ||
| 470 | { | ||
| 471 | Init(); | ||
| 472 | } | ||
| 473 | CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 474 | { | ||
| 475 | Init(); | ||
| 476 | AddToStateObject(ContainingStateObject); | ||
| 477 | } | ||
| 478 | CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT(const CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT& other) = delete; | ||
| 479 | CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT& operator=(const CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT& other) = delete; | ||
| 480 | CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT(CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT&& other) = default; | ||
| 481 | CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT& operator=(CD3DX12_SUBOBJECT_TO_EXPORTS_ASSOCIATION_SUBOBJECT&& other) = default; | ||
| 482 | void SetSubobjectToAssociate(const D3D12_STATE_SUBOBJECT& SubobjectToAssociate) noexcept | ||
| 483 | { | ||
| 484 | m_Desc.pSubobjectToAssociate = &SubobjectToAssociate; | ||
| 485 | } | ||
| 486 | void AddExport(LPCWSTR Export) | ||
| 487 | { | ||
| 488 | m_Desc.NumExports++; | ||
| 489 | m_Exports.push_back(m_Strings.LocalCopy(Export)); | ||
| 490 | m_Desc.pExports = &m_Exports[0]; // using ugly way to get pointer in case .data() is not defined | ||
| 491 | } | ||
| 492 | template<size_t N> | ||
| 493 | void AddExports(LPCWSTR (&Exports)[N]) | ||
| 494 | { | ||
| 495 | for (UINT i = 0; i < N; i++) | ||
| 496 | { | ||
| 497 | AddExport(Exports[i]); | ||
| 498 | } | ||
| 499 | } | ||
| 500 | void AddExports(const LPCWSTR* Exports, UINT N) | ||
| 501 | { | ||
| 502 | for (UINT i = 0; i < N; i++) | ||
| 503 | { | ||
| 504 | AddExport(Exports[i]); | ||
| 505 | } | ||
| 506 | } | ||
| 507 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 508 | { | ||
| 509 | return D3D12_STATE_SUBOBJECT_TYPE_SUBOBJECT_TO_EXPORTS_ASSOCIATION; | ||
| 510 | } | ||
| 511 | operator const D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION&() const noexcept { return m_Desc; } | ||
| 512 | private: | ||
| 513 | void Init() noexcept | ||
| 514 | { | ||
| 515 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 516 | m_Desc = {}; | ||
| 517 | m_Strings.clear(); | ||
| 518 | m_Exports.clear(); | ||
| 519 | } | ||
| 520 | void* Data() noexcept override { return &m_Desc; } | ||
| 521 | D3D12_SUBOBJECT_TO_EXPORTS_ASSOCIATION m_Desc; | ||
| 522 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_Strings; | ||
| 523 | std::vector<LPCWSTR> m_Exports; | ||
| 524 | }; | ||
| 525 | |||
| 526 | //------------------------------------------------------------------------------------------------ | ||
| 527 | class CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION | ||
| 528 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 529 | { | ||
| 530 | public: | ||
| 531 | CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION() noexcept | ||
| 532 | { | ||
| 533 | Init(); | ||
| 534 | } | ||
| 535 | CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 536 | { | ||
| 537 | Init(); | ||
| 538 | AddToStateObject(ContainingStateObject); | ||
| 539 | } | ||
| 540 | CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION(const CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& other) = delete; | ||
| 541 | CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& operator=(const CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& other) = delete; | ||
| 542 | CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION(CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION&& other) = default; | ||
| 543 | CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION& operator=(CD3DX12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION&& other) = default; | ||
| 544 | void SetSubobjectNameToAssociate(LPCWSTR SubobjectToAssociate) | ||
| 545 | { | ||
| 546 | m_Desc.SubobjectToAssociate = m_SubobjectName.LocalCopy(SubobjectToAssociate, true); | ||
| 547 | } | ||
| 548 | void AddExport(LPCWSTR Export) | ||
| 549 | { | ||
| 550 | m_Desc.NumExports++; | ||
| 551 | m_Exports.push_back(m_Strings.LocalCopy(Export)); | ||
| 552 | m_Desc.pExports = &m_Exports[0]; // using ugly way to get pointer in case .data() is not defined | ||
| 553 | } | ||
| 554 | template<size_t N> | ||
| 555 | void AddExports(LPCWSTR (&Exports)[N]) | ||
| 556 | { | ||
| 557 | for (UINT i = 0; i < N; i++) | ||
| 558 | { | ||
| 559 | AddExport(Exports[i]); | ||
| 560 | } | ||
| 561 | } | ||
| 562 | void AddExports(const LPCWSTR* Exports, UINT N) | ||
| 563 | { | ||
| 564 | for (UINT i = 0; i < N; i++) | ||
| 565 | { | ||
| 566 | AddExport(Exports[i]); | ||
| 567 | } | ||
| 568 | } | ||
| 569 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 570 | { | ||
| 571 | return D3D12_STATE_SUBOBJECT_TYPE_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION; | ||
| 572 | } | ||
| 573 | operator const D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION&() const noexcept { return m_Desc; } | ||
| 574 | private: | ||
| 575 | void Init() noexcept | ||
| 576 | { | ||
| 577 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 578 | m_Desc = {}; | ||
| 579 | m_Strings.clear(); | ||
| 580 | m_SubobjectName.clear(); | ||
| 581 | m_Exports.clear(); | ||
| 582 | } | ||
| 583 | void* Data() noexcept override { return &m_Desc; } | ||
| 584 | D3D12_DXIL_SUBOBJECT_TO_EXPORTS_ASSOCIATION m_Desc; | ||
| 585 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_Strings; | ||
| 586 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_SubobjectName; | ||
| 587 | std::vector<LPCWSTR> m_Exports; | ||
| 588 | }; | ||
| 589 | |||
| 590 | //------------------------------------------------------------------------------------------------ | ||
| 591 | class CD3DX12_HIT_GROUP_SUBOBJECT | ||
| 592 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 593 | { | ||
| 594 | public: | ||
| 595 | CD3DX12_HIT_GROUP_SUBOBJECT() noexcept | ||
| 596 | { | ||
| 597 | Init(); | ||
| 598 | } | ||
| 599 | CD3DX12_HIT_GROUP_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 600 | { | ||
| 601 | Init(); | ||
| 602 | AddToStateObject(ContainingStateObject); | ||
| 603 | } | ||
| 604 | CD3DX12_HIT_GROUP_SUBOBJECT(const CD3DX12_HIT_GROUP_SUBOBJECT& other) = delete; | ||
| 605 | CD3DX12_HIT_GROUP_SUBOBJECT& operator=(const CD3DX12_HIT_GROUP_SUBOBJECT& other) = delete; | ||
| 606 | CD3DX12_HIT_GROUP_SUBOBJECT(CD3DX12_HIT_GROUP_SUBOBJECT&& other) = default; | ||
| 607 | CD3DX12_HIT_GROUP_SUBOBJECT& operator=(CD3DX12_HIT_GROUP_SUBOBJECT&& other) = default; | ||
| 608 | void SetHitGroupExport(LPCWSTR exportName) | ||
| 609 | { | ||
| 610 | m_Desc.HitGroupExport = m_Strings[0].LocalCopy(exportName, true); | ||
| 611 | } | ||
| 612 | void SetHitGroupType(D3D12_HIT_GROUP_TYPE Type) noexcept { m_Desc.Type = Type; } | ||
| 613 | void SetAnyHitShaderImport(LPCWSTR importName) | ||
| 614 | { | ||
| 615 | m_Desc.AnyHitShaderImport = m_Strings[1].LocalCopy(importName, true); | ||
| 616 | } | ||
| 617 | void SetClosestHitShaderImport(LPCWSTR importName) | ||
| 618 | { | ||
| 619 | m_Desc.ClosestHitShaderImport = m_Strings[2].LocalCopy(importName, true); | ||
| 620 | } | ||
| 621 | void SetIntersectionShaderImport(LPCWSTR importName) | ||
| 622 | { | ||
| 623 | m_Desc.IntersectionShaderImport = m_Strings[3].LocalCopy(importName, true); | ||
| 624 | } | ||
| 625 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 626 | { | ||
| 627 | return D3D12_STATE_SUBOBJECT_TYPE_HIT_GROUP; | ||
| 628 | } | ||
| 629 | operator const D3D12_HIT_GROUP_DESC&() const noexcept { return m_Desc; } | ||
| 630 | private: | ||
| 631 | void Init() noexcept | ||
| 632 | { | ||
| 633 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 634 | m_Desc = {}; | ||
| 635 | for (UINT i = 0; i < m_NumStrings; i++) | ||
| 636 | { | ||
| 637 | m_Strings[i].clear(); | ||
| 638 | } | ||
| 639 | } | ||
| 640 | void* Data() noexcept override { return &m_Desc; } | ||
| 641 | D3D12_HIT_GROUP_DESC m_Desc; | ||
| 642 | static constexpr UINT m_NumStrings = 4; | ||
| 643 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> | ||
| 644 | m_Strings[m_NumStrings]; // one string for every entrypoint name | ||
| 645 | }; | ||
| 646 | |||
| 647 | //------------------------------------------------------------------------------------------------ | ||
| 648 | class CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT | ||
| 649 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 650 | { | ||
| 651 | public: | ||
| 652 | CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT() noexcept | ||
| 653 | : m_Desc({}) | ||
| 654 | { | ||
| 655 | Init(); | ||
| 656 | } | ||
| 657 | CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 658 | : m_Desc({}) | ||
| 659 | { | ||
| 660 | Init(); | ||
| 661 | AddToStateObject(ContainingStateObject); | ||
| 662 | } | ||
| 663 | CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT(const D3D12_RAYTRACING_SHADER_CONFIG &desc) | ||
| 664 | : m_Desc(desc) | ||
| 665 | { | ||
| 666 | Init(); | ||
| 667 | } | ||
| 668 | CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT(const D3D12_RAYTRACING_SHADER_CONFIG &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 669 | : m_Desc(desc) | ||
| 670 | { | ||
| 671 | Init(); | ||
| 672 | AddToStateObject(ContainingStateObject); | ||
| 673 | } | ||
| 674 | CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT(const CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT& other) = delete; | ||
| 675 | CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT& operator=(const CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT& other) = delete; | ||
| 676 | CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT(CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT&& other) = default; | ||
| 677 | CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT& operator=(CD3DX12_RAYTRACING_SHADER_CONFIG_SUBOBJECT&& other) = default; | ||
| 678 | void Config(UINT MaxPayloadSizeInBytes, UINT MaxAttributeSizeInBytes) noexcept | ||
| 679 | { | ||
| 680 | m_Desc.MaxPayloadSizeInBytes = MaxPayloadSizeInBytes; | ||
| 681 | m_Desc.MaxAttributeSizeInBytes = MaxAttributeSizeInBytes; | ||
| 682 | } | ||
| 683 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 684 | { | ||
| 685 | return D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_SHADER_CONFIG; | ||
| 686 | } | ||
| 687 | operator const D3D12_RAYTRACING_SHADER_CONFIG&() const noexcept { return m_Desc; } | ||
| 688 | operator D3D12_RAYTRACING_SHADER_CONFIG&() noexcept { return m_Desc; } | ||
| 689 | private: | ||
| 690 | void Init() noexcept | ||
| 691 | { | ||
| 692 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 693 | } | ||
| 694 | void* Data() noexcept override { return &m_Desc; } | ||
| 695 | D3D12_RAYTRACING_SHADER_CONFIG m_Desc; | ||
| 696 | }; | ||
| 697 | |||
| 698 | //------------------------------------------------------------------------------------------------ | ||
| 699 | class CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT | ||
| 700 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 701 | { | ||
| 702 | public: | ||
| 703 | CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT() noexcept | ||
| 704 | : m_Desc({}) | ||
| 705 | { | ||
| 706 | Init(); | ||
| 707 | } | ||
| 708 | CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 709 | : m_Desc({}) | ||
| 710 | { | ||
| 711 | Init(); | ||
| 712 | AddToStateObject(ContainingStateObject); | ||
| 713 | } | ||
| 714 | CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT(const D3D12_RAYTRACING_PIPELINE_CONFIG &desc) | ||
| 715 | : m_Desc(desc) | ||
| 716 | { | ||
| 717 | Init(); | ||
| 718 | } | ||
| 719 | CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT(const D3D12_RAYTRACING_PIPELINE_CONFIG &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 720 | : m_Desc(desc) | ||
| 721 | { | ||
| 722 | Init(); | ||
| 723 | AddToStateObject(ContainingStateObject); | ||
| 724 | } | ||
| 725 | CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT(const CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT& other) = delete; | ||
| 726 | CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT& operator=(const CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT& other) = delete; | ||
| 727 | CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT(CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT&& other) = default; | ||
| 728 | CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT& operator=(CD3DX12_RAYTRACING_PIPELINE_CONFIG_SUBOBJECT&& other) = default; | ||
| 729 | void Config(UINT MaxTraceRecursionDepth) noexcept | ||
| 730 | { | ||
| 731 | m_Desc.MaxTraceRecursionDepth = MaxTraceRecursionDepth; | ||
| 732 | } | ||
| 733 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 734 | { | ||
| 735 | return D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG; | ||
| 736 | } | ||
| 737 | operator const D3D12_RAYTRACING_PIPELINE_CONFIG&() const noexcept { return m_Desc; } | ||
| 738 | operator D3D12_RAYTRACING_PIPELINE_CONFIG&() noexcept { return m_Desc; } | ||
| 739 | private: | ||
| 740 | void Init() noexcept | ||
| 741 | { | ||
| 742 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 743 | } | ||
| 744 | void* Data() noexcept override { return &m_Desc; } | ||
| 745 | D3D12_RAYTRACING_PIPELINE_CONFIG m_Desc; | ||
| 746 | }; | ||
| 747 | |||
| 748 | //------------------------------------------------------------------------------------------------ | ||
| 749 | class CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT | ||
| 750 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 751 | { | ||
| 752 | public: | ||
| 753 | CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT() noexcept | ||
| 754 | : m_Desc({}) | ||
| 755 | { | ||
| 756 | Init(); | ||
| 757 | } | ||
| 758 | CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 759 | : m_Desc({}) | ||
| 760 | { | ||
| 761 | Init(); | ||
| 762 | AddToStateObject(ContainingStateObject); | ||
| 763 | } | ||
| 764 | CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT(const D3D12_RAYTRACING_PIPELINE_CONFIG1 &desc) | ||
| 765 | : m_Desc(desc) | ||
| 766 | { | ||
| 767 | Init(); | ||
| 768 | } | ||
| 769 | CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT(const D3D12_RAYTRACING_PIPELINE_CONFIG1 &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 770 | : m_Desc(desc) | ||
| 771 | { | ||
| 772 | Init(); | ||
| 773 | AddToStateObject(ContainingStateObject); | ||
| 774 | } | ||
| 775 | CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT(const CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT& other) = delete; | ||
| 776 | CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT& operator=(const CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT& other) = delete; | ||
| 777 | CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT(CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT&& other) = default; | ||
| 778 | CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT& operator=(CD3DX12_RAYTRACING_PIPELINE_CONFIG1_SUBOBJECT&& other) = default; | ||
| 779 | void Config(UINT MaxTraceRecursionDepth, D3D12_RAYTRACING_PIPELINE_FLAGS Flags) noexcept | ||
| 780 | { | ||
| 781 | m_Desc.MaxTraceRecursionDepth = MaxTraceRecursionDepth; | ||
| 782 | m_Desc.Flags = Flags; | ||
| 783 | } | ||
| 784 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 785 | { | ||
| 786 | return D3D12_STATE_SUBOBJECT_TYPE_RAYTRACING_PIPELINE_CONFIG1; | ||
| 787 | } | ||
| 788 | operator const D3D12_RAYTRACING_PIPELINE_CONFIG1&() const noexcept { return m_Desc; } | ||
| 789 | operator D3D12_RAYTRACING_PIPELINE_CONFIG1&() noexcept { return m_Desc; } | ||
| 790 | private: | ||
| 791 | void Init() noexcept | ||
| 792 | { | ||
| 793 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 794 | } | ||
| 795 | void* Data() noexcept override { return &m_Desc; } | ||
| 796 | D3D12_RAYTRACING_PIPELINE_CONFIG1 m_Desc; | ||
| 797 | }; | ||
| 798 | |||
| 799 | //------------------------------------------------------------------------------------------------ | ||
| 800 | class CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT | ||
| 801 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 802 | { | ||
| 803 | public: | ||
| 804 | CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT() noexcept | ||
| 805 | { | ||
| 806 | Init(); | ||
| 807 | } | ||
| 808 | CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 809 | { | ||
| 810 | Init(); | ||
| 811 | AddToStateObject(ContainingStateObject); | ||
| 812 | } | ||
| 813 | CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT(const CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT& other) = delete; | ||
| 814 | CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT& operator=(const CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT& other) = delete; | ||
| 815 | CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT&& other) = default; | ||
| 816 | CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT& operator=(CD3DX12_GLOBAL_ROOT_SIGNATURE_SUBOBJECT&& other) = default; | ||
| 817 | void SetRootSignature(ID3D12RootSignature* pRootSig) noexcept | ||
| 818 | { | ||
| 819 | m_pRootSig = pRootSig; | ||
| 820 | } | ||
| 821 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 822 | { | ||
| 823 | return D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_ROOT_SIGNATURE; | ||
| 824 | } | ||
| 825 | operator ID3D12RootSignature*() const noexcept { return D3DX12_COM_PTR_GET(m_pRootSig); } | ||
| 826 | private: | ||
| 827 | void Init() noexcept | ||
| 828 | { | ||
| 829 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 830 | m_pRootSig = nullptr; | ||
| 831 | } | ||
| 832 | void* Data() noexcept override { return D3DX12_COM_PTR_ADDRESSOF(m_pRootSig); } | ||
| 833 | D3DX12_COM_PTR<ID3D12RootSignature> m_pRootSig; | ||
| 834 | }; | ||
| 835 | |||
| 836 | |||
| 837 | //------------------------------------------------------------------------------------------------ | ||
| 838 | class CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT | ||
| 839 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 840 | { | ||
| 841 | public: | ||
| 842 | CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT() noexcept | ||
| 843 | { | ||
| 844 | Init(); | ||
| 845 | } | ||
| 846 | CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 847 | { | ||
| 848 | Init(); | ||
| 849 | AddToStateObject(ContainingStateObject); | ||
| 850 | } | ||
| 851 | CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT(const CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT& other) = delete; | ||
| 852 | CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT& operator=(const CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT& other) = delete; | ||
| 853 | CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT&& other) = default; | ||
| 854 | CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT& operator=(CD3DX12_LOCAL_ROOT_SIGNATURE_SUBOBJECT&& other) = default; | ||
| 855 | void SetRootSignature(ID3D12RootSignature* pRootSig) noexcept | ||
| 856 | { | ||
| 857 | m_pRootSig = pRootSig; | ||
| 858 | } | ||
| 859 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 860 | { | ||
| 861 | return D3D12_STATE_SUBOBJECT_TYPE_LOCAL_ROOT_SIGNATURE; | ||
| 862 | } | ||
| 863 | operator ID3D12RootSignature*() const noexcept { return D3DX12_COM_PTR_GET(m_pRootSig); } | ||
| 864 | private: | ||
| 865 | void Init() noexcept | ||
| 866 | { | ||
| 867 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 868 | m_pRootSig = nullptr; | ||
| 869 | } | ||
| 870 | void* Data() noexcept override { return D3DX12_COM_PTR_ADDRESSOF(m_pRootSig); } | ||
| 871 | D3DX12_COM_PTR<ID3D12RootSignature> m_pRootSig; | ||
| 872 | }; | ||
| 873 | |||
| 874 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 618) | ||
| 875 | //------------------------------------------------------------------------------------------------ | ||
| 876 | class CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT | ||
| 877 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 878 | { | ||
| 879 | public: | ||
| 880 | CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT() noexcept | ||
| 881 | : m_Desc({}) | ||
| 882 | { | ||
| 883 | Init(); | ||
| 884 | } | ||
| 885 | CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 886 | : m_Desc({}) | ||
| 887 | { | ||
| 888 | Init(); | ||
| 889 | AddToStateObject(ContainingStateObject); | ||
| 890 | } | ||
| 891 | CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT(const CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT& other) = delete; | ||
| 892 | CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT& operator=(const CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT& other) = delete; | ||
| 893 | CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT&& other) = default; | ||
| 894 | CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT& operator=(CD3DX12_GLOBAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT&& other) = default; | ||
| 895 | void SetRootSignature(const D3D12_SERIALIZED_ROOT_SIGNATURE_DESC* pDesc) noexcept | ||
| 896 | { | ||
| 897 | if (pDesc) | ||
| 898 | { | ||
| 899 | m_Desc.Desc = {}; | ||
| 900 | m_Desc.Desc.pSerializedBlob = pDesc->pSerializedBlob; | ||
| 901 | m_Desc.Desc.SerializedBlobSizeInBytes = pDesc->SerializedBlobSizeInBytes; | ||
| 902 | } | ||
| 903 | } | ||
| 904 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 905 | { | ||
| 906 | return D3D12_STATE_SUBOBJECT_TYPE_GLOBAL_SERIALIZED_ROOT_SIGNATURE; | ||
| 907 | } | ||
| 908 | operator const D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE&() const noexcept { return m_Desc; } | ||
| 909 | operator D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE&() noexcept { return m_Desc; } | ||
| 910 | private: | ||
| 911 | void Init() noexcept | ||
| 912 | { | ||
| 913 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 914 | m_Desc = {}; | ||
| 915 | } | ||
| 916 | void* Data() noexcept override { return &m_Desc; } | ||
| 917 | D3D12_GLOBAL_SERIALIZED_ROOT_SIGNATURE m_Desc; | ||
| 918 | }; | ||
| 919 | |||
| 920 | //------------------------------------------------------------------------------------------------ | ||
| 921 | class CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT | ||
| 922 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 923 | { | ||
| 924 | public: | ||
| 925 | CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT() noexcept | ||
| 926 | : m_Desc({}) | ||
| 927 | { | ||
| 928 | Init(); | ||
| 929 | } | ||
| 930 | CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 931 | : m_Desc({}) | ||
| 932 | { | ||
| 933 | Init(); | ||
| 934 | AddToStateObject(ContainingStateObject); | ||
| 935 | } | ||
| 936 | CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT(const CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT& other) = delete; | ||
| 937 | CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT& operator=(const CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT& other) = delete; | ||
| 938 | CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT(CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT&& other) = default; | ||
| 939 | CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT& operator=(CD3DX12_LOCAL_SERIALIZED_ROOT_SIGNATURE_SUBOBJECT&& other) = default; | ||
| 940 | void SetRootSignature(const D3D12_SERIALIZED_ROOT_SIGNATURE_DESC* pDesc) noexcept | ||
| 941 | { | ||
| 942 | if (pDesc) | ||
| 943 | { | ||
| 944 | m_Desc.Desc = {}; | ||
| 945 | m_Desc.Desc.pSerializedBlob = pDesc->pSerializedBlob; | ||
| 946 | m_Desc.Desc.SerializedBlobSizeInBytes = pDesc->SerializedBlobSizeInBytes; | ||
| 947 | } | ||
| 948 | } | ||
| 949 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 950 | { | ||
| 951 | return D3D12_STATE_SUBOBJECT_TYPE_LOCAL_SERIALIZED_ROOT_SIGNATURE; | ||
| 952 | } | ||
| 953 | operator const D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE&() const noexcept { return m_Desc; } | ||
| 954 | operator D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE&() noexcept { return m_Desc; } | ||
| 955 | private: | ||
| 956 | void Init() noexcept | ||
| 957 | { | ||
| 958 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 959 | m_Desc = {}; | ||
| 960 | } | ||
| 961 | void* Data() noexcept override { return &m_Desc; } | ||
| 962 | D3D12_LOCAL_SERIALIZED_ROOT_SIGNATURE m_Desc; | ||
| 963 | }; | ||
| 964 | |||
| 965 | |||
| 966 | //------------------------------------------------------------------------------------------------ | ||
| 967 | class CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT | ||
| 968 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 969 | { | ||
| 970 | public: | ||
| 971 | CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT() noexcept | ||
| 972 | { | ||
| 973 | Init(); | ||
| 974 | } | ||
| 975 | CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 976 | { | ||
| 977 | Init(); | ||
| 978 | AddToStateObject(ContainingStateObject); | ||
| 979 | } | ||
| 980 | CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT(const CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT& other) = delete; | ||
| 981 | CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT& operator=(const CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT& other) = delete; | ||
| 982 | CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT(CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT&& other) = default; | ||
| 983 | CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT& operator=(CD3DX12_EXISTING_COLLECTION_BY_KEY_SUBOBJECT&& other) = default; | ||
| 984 | void SetExistingCollection(const void* pKey, UINT KeySize) noexcept | ||
| 985 | { | ||
| 986 | const unsigned char* pKeyBytes = static_cast<const unsigned char *>(pKey); | ||
| 987 | m_Key.clear(); | ||
| 988 | m_Key.insert(m_Key.begin(), pKeyBytes, pKeyBytes + KeySize); | ||
| 989 | m_Desc.pKey = m_Key.data(); | ||
| 990 | m_Desc.KeySize = KeySize; | ||
| 991 | } | ||
| 992 | void DefineExport( | ||
| 993 | LPCWSTR Name, | ||
| 994 | LPCWSTR ExportToRename = nullptr, | ||
| 995 | D3D12_EXPORT_FLAGS Flags = D3D12_EXPORT_FLAG_NONE) | ||
| 996 | { | ||
| 997 | D3D12_EXPORT_DESC Export; | ||
| 998 | Export.Name = m_Strings.LocalCopy(Name); | ||
| 999 | Export.ExportToRename = m_Strings.LocalCopy(ExportToRename); | ||
| 1000 | Export.Flags = Flags; | ||
| 1001 | m_Exports.push_back(Export); | ||
| 1002 | m_Desc.pExports = &m_Exports[0]; // using ugly way to get pointer in case .data() is not defined | ||
| 1003 | m_Desc.NumExports = static_cast<UINT>(m_Exports.size()); | ||
| 1004 | } | ||
| 1005 | template<size_t N> | ||
| 1006 | void DefineExports(LPCWSTR(&Exports)[N]) | ||
| 1007 | { | ||
| 1008 | for (UINT i = 0; i < N; i++) | ||
| 1009 | { | ||
| 1010 | DefineExport(Exports[i]); | ||
| 1011 | } | ||
| 1012 | } | ||
| 1013 | void DefineExports(const LPCWSTR* Exports, UINT N) | ||
| 1014 | { | ||
| 1015 | for (UINT i = 0; i < N; i++) | ||
| 1016 | { | ||
| 1017 | DefineExport(Exports[i]); | ||
| 1018 | } | ||
| 1019 | } | ||
| 1020 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1021 | { | ||
| 1022 | return D3D12_STATE_SUBOBJECT_TYPE_EXISTING_COLLECTION_BY_KEY; | ||
| 1023 | } | ||
| 1024 | operator const D3D12_EXISTING_COLLECTION_BY_KEY_DESC&() const noexcept { return m_Desc; } | ||
| 1025 | private: | ||
| 1026 | void Init() noexcept | ||
| 1027 | { | ||
| 1028 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1029 | m_Desc = {}; | ||
| 1030 | m_Strings.clear(); | ||
| 1031 | m_Exports.clear(); | ||
| 1032 | } | ||
| 1033 | void* Data() noexcept override { return &m_Desc; } | ||
| 1034 | D3D12_EXISTING_COLLECTION_BY_KEY_DESC m_Desc; | ||
| 1035 | std::vector<unsigned char> m_Key; | ||
| 1036 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_Strings; | ||
| 1037 | std::vector<D3D12_EXPORT_DESC> m_Exports; | ||
| 1038 | }; | ||
| 1039 | |||
| 1040 | #endif // defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 618) | ||
| 1041 | |||
| 1042 | //------------------------------------------------------------------------------------------------ | ||
| 1043 | class CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT | ||
| 1044 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1045 | { | ||
| 1046 | public: | ||
| 1047 | CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT() noexcept | ||
| 1048 | : m_Desc({}) | ||
| 1049 | { | ||
| 1050 | Init(); | ||
| 1051 | } | ||
| 1052 | CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1053 | : m_Desc({}) | ||
| 1054 | { | ||
| 1055 | Init(); | ||
| 1056 | AddToStateObject(ContainingStateObject); | ||
| 1057 | } | ||
| 1058 | CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT(const D3D12_STATE_OBJECT_CONFIG &desc) noexcept | ||
| 1059 | : m_Desc(desc) | ||
| 1060 | { | ||
| 1061 | Init(); | ||
| 1062 | } | ||
| 1063 | CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT(const D3D12_STATE_OBJECT_CONFIG &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1064 | : m_Desc(desc) | ||
| 1065 | { | ||
| 1066 | Init(); | ||
| 1067 | AddToStateObject(ContainingStateObject); | ||
| 1068 | } | ||
| 1069 | CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT(const CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT& other) = delete; | ||
| 1070 | CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT& operator=(const CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT& other) = delete; | ||
| 1071 | CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT(CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT&& other) = default; | ||
| 1072 | CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT& operator=(CD3DX12_STATE_OBJECT_CONFIG_SUBOBJECT&& other) = default; | ||
| 1073 | void SetFlags(D3D12_STATE_OBJECT_FLAGS Flags) noexcept | ||
| 1074 | { | ||
| 1075 | m_Desc.Flags = Flags; | ||
| 1076 | } | ||
| 1077 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1078 | { | ||
| 1079 | return D3D12_STATE_SUBOBJECT_TYPE_STATE_OBJECT_CONFIG; | ||
| 1080 | } | ||
| 1081 | operator const D3D12_STATE_OBJECT_CONFIG&() const noexcept { return m_Desc; } | ||
| 1082 | operator D3D12_STATE_OBJECT_CONFIG&() noexcept { return m_Desc; } | ||
| 1083 | private: | ||
| 1084 | void Init() noexcept | ||
| 1085 | { | ||
| 1086 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1087 | } | ||
| 1088 | void* Data() noexcept override { return &m_Desc; } | ||
| 1089 | D3D12_STATE_OBJECT_CONFIG m_Desc; | ||
| 1090 | }; | ||
| 1091 | |||
| 1092 | //------------------------------------------------------------------------------------------------ | ||
| 1093 | class CD3DX12_NODE_MASK_SUBOBJECT | ||
| 1094 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1095 | { | ||
| 1096 | public: | ||
| 1097 | CD3DX12_NODE_MASK_SUBOBJECT() noexcept | ||
| 1098 | : m_Desc({}) | ||
| 1099 | { | ||
| 1100 | Init(); | ||
| 1101 | } | ||
| 1102 | CD3DX12_NODE_MASK_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1103 | : m_Desc({}) | ||
| 1104 | { | ||
| 1105 | Init(); | ||
| 1106 | AddToStateObject(ContainingStateObject); | ||
| 1107 | } | ||
| 1108 | CD3DX12_NODE_MASK_SUBOBJECT(const D3D12_NODE_MASK &desc) noexcept | ||
| 1109 | : m_Desc(desc) | ||
| 1110 | { | ||
| 1111 | Init(); | ||
| 1112 | } | ||
| 1113 | CD3DX12_NODE_MASK_SUBOBJECT(const D3D12_NODE_MASK &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1114 | : m_Desc(desc) | ||
| 1115 | { | ||
| 1116 | Init(); | ||
| 1117 | AddToStateObject(ContainingStateObject); | ||
| 1118 | } | ||
| 1119 | CD3DX12_NODE_MASK_SUBOBJECT(const CD3DX12_NODE_MASK_SUBOBJECT& other) = delete; | ||
| 1120 | CD3DX12_NODE_MASK_SUBOBJECT& operator=(const CD3DX12_NODE_MASK_SUBOBJECT& other) = delete; | ||
| 1121 | CD3DX12_NODE_MASK_SUBOBJECT(CD3DX12_NODE_MASK_SUBOBJECT&& other) = default; | ||
| 1122 | CD3DX12_NODE_MASK_SUBOBJECT& operator=(CD3DX12_NODE_MASK_SUBOBJECT&& other) = default; | ||
| 1123 | void SetNodeMask(UINT NodeMask) noexcept | ||
| 1124 | { | ||
| 1125 | m_Desc.NodeMask = NodeMask; | ||
| 1126 | } | ||
| 1127 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1128 | { | ||
| 1129 | return D3D12_STATE_SUBOBJECT_TYPE_NODE_MASK; | ||
| 1130 | } | ||
| 1131 | operator const D3D12_NODE_MASK&() const noexcept { return m_Desc; } | ||
| 1132 | operator D3D12_NODE_MASK&() noexcept { return m_Desc; } | ||
| 1133 | private: | ||
| 1134 | void Init() noexcept | ||
| 1135 | { | ||
| 1136 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1137 | } | ||
| 1138 | void* Data() noexcept override { return &m_Desc; } | ||
| 1139 | D3D12_NODE_MASK m_Desc; | ||
| 1140 | }; | ||
| 1141 | |||
| 1142 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 1143 | //------------------------------------------------------------------------------------------------ | ||
| 1144 | class CD3DX12_STREAM_OUTPUT_SUBOBJECT | ||
| 1145 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1146 | { | ||
| 1147 | public: | ||
| 1148 | CD3DX12_STREAM_OUTPUT_SUBOBJECT() | ||
| 1149 | { | ||
| 1150 | Init(); | ||
| 1151 | } | ||
| 1152 | CD3DX12_STREAM_OUTPUT_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1153 | { | ||
| 1154 | Init(); | ||
| 1155 | AddToStateObject(ContainingStateObject); | ||
| 1156 | } | ||
| 1157 | void AddSODeclEntry(const D3D12_SO_DECLARATION_ENTRY &entry) | ||
| 1158 | { | ||
| 1159 | m_soDecalEntries.emplace_back(D3D12_SO_DECLARATION_ENTRY{ | ||
| 1160 | entry.Stream, | ||
| 1161 | m_Strings.LocalCopy(entry.SemanticName), | ||
| 1162 | entry.SemanticIndex, | ||
| 1163 | entry.StartComponent, | ||
| 1164 | entry.ComponentCount, | ||
| 1165 | entry.OutputSlot | ||
| 1166 | }); | ||
| 1167 | m_Desc.NumEntries++; | ||
| 1168 | // Below: using ugly way to get pointer in case .data() is not defined | ||
| 1169 | m_Desc.pSODeclaration = &m_soDecalEntries[0]; | ||
| 1170 | } | ||
| 1171 | void SetSODeclEntries(const D3D12_SO_DECLARATION_ENTRY* soDeclEntries, UINT numEntries) | ||
| 1172 | { | ||
| 1173 | m_soDecalEntries.resize(numEntries); | ||
| 1174 | for (UINT i = 0; i < numEntries; i++) | ||
| 1175 | { | ||
| 1176 | m_soDecalEntries[i] = D3D12_SO_DECLARATION_ENTRY{ | ||
| 1177 | soDeclEntries[i].Stream, | ||
| 1178 | m_Strings.LocalCopy(soDeclEntries[i].SemanticName), | ||
| 1179 | soDeclEntries[i].SemanticIndex, | ||
| 1180 | soDeclEntries[i].StartComponent, | ||
| 1181 | soDeclEntries[i].ComponentCount, | ||
| 1182 | soDeclEntries[i].OutputSlot | ||
| 1183 | }; | ||
| 1184 | } | ||
| 1185 | m_Desc.NumEntries = numEntries; | ||
| 1186 | // Below: using ugly way to get pointer in case .data() is not defined | ||
| 1187 | if (numEntries > 0) | ||
| 1188 | { | ||
| 1189 | m_Desc.pSODeclaration = &m_soDecalEntries[0]; | ||
| 1190 | } | ||
| 1191 | } | ||
| 1192 | void SetBufferStrides(const UINT* bufferStrides, UINT numStrides) | ||
| 1193 | { | ||
| 1194 | for (UINT i = 0; i < numStrides; ++i) | ||
| 1195 | { | ||
| 1196 | m_Strides[i] = bufferStrides[i]; | ||
| 1197 | } | ||
| 1198 | m_Desc.pBufferStrides = m_Strides; | ||
| 1199 | m_Desc.NumStrides = numStrides; | ||
| 1200 | } | ||
| 1201 | void SetRasterizedStream(UINT rasterizedStream) | ||
| 1202 | { | ||
| 1203 | m_Desc.RasterizedStream = rasterizedStream; | ||
| 1204 | } | ||
| 1205 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1206 | { | ||
| 1207 | return D3D12_STATE_SUBOBJECT_TYPE_STREAM_OUTPUT; | ||
| 1208 | } | ||
| 1209 | operator const D3D12_STREAM_OUTPUT_DESC& () const noexcept { return m_Desc; } | ||
| 1210 | |||
| 1211 | private: | ||
| 1212 | void Init() | ||
| 1213 | { | ||
| 1214 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1215 | m_Desc = {}; | ||
| 1216 | } | ||
| 1217 | void* Data() noexcept override { return &m_Desc; } | ||
| 1218 | D3D12_STREAM_OUTPUT_DESC m_Desc; | ||
| 1219 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCSTR, std::string> m_Strings; | ||
| 1220 | std::vector<D3D12_SO_DECLARATION_ENTRY> m_soDecalEntries; | ||
| 1221 | UINT m_Strides[D3D12_SO_STREAM_COUNT]; | ||
| 1222 | }; | ||
| 1223 | |||
| 1224 | //------------------------------------------------------------------------------------------------ | ||
| 1225 | class CD3DX12_BLEND_SUBOBJECT | ||
| 1226 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1227 | { | ||
| 1228 | public: | ||
| 1229 | CD3DX12_BLEND_SUBOBJECT() | ||
| 1230 | : m_Desc(CD3DX12_BLEND_DESC(D3D12_DEFAULT)) | ||
| 1231 | { | ||
| 1232 | Init(); | ||
| 1233 | } | ||
| 1234 | CD3DX12_BLEND_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1235 | : m_Desc(CD3DX12_BLEND_DESC(D3D12_DEFAULT)) | ||
| 1236 | { | ||
| 1237 | Init(); | ||
| 1238 | AddToStateObject(ContainingStateObject); | ||
| 1239 | } | ||
| 1240 | CD3DX12_BLEND_SUBOBJECT(const D3D12_BLEND_DESC &desc) | ||
| 1241 | : m_Desc(desc) | ||
| 1242 | { | ||
| 1243 | Init(); | ||
| 1244 | } | ||
| 1245 | CD3DX12_BLEND_SUBOBJECT(const D3D12_BLEND_DESC &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1246 | : m_Desc(desc) | ||
| 1247 | { | ||
| 1248 | Init(); | ||
| 1249 | AddToStateObject(ContainingStateObject); | ||
| 1250 | } | ||
| 1251 | void SetAlphaToCoverageEnable(bool alphaToCoverageEnable) | ||
| 1252 | { | ||
| 1253 | m_Desc.AlphaToCoverageEnable = alphaToCoverageEnable; | ||
| 1254 | } | ||
| 1255 | void SetIndependentBlendEnable(bool independentBlendEnable) | ||
| 1256 | { | ||
| 1257 | m_Desc.IndependentBlendEnable = independentBlendEnable; | ||
| 1258 | } | ||
| 1259 | void SetRenderTarget(UINT renderTargetIndex, const D3D12_RENDER_TARGET_BLEND_DESC& renderTargetBlendDesc) | ||
| 1260 | { | ||
| 1261 | m_Desc.RenderTarget[renderTargetIndex].BlendEnable = renderTargetBlendDesc.BlendEnable; | ||
| 1262 | m_Desc.RenderTarget[renderTargetIndex].BlendOp = renderTargetBlendDesc.BlendOp; | ||
| 1263 | m_Desc.RenderTarget[renderTargetIndex].BlendOpAlpha = renderTargetBlendDesc.BlendOpAlpha; | ||
| 1264 | m_Desc.RenderTarget[renderTargetIndex].DestBlend = renderTargetBlendDesc.DestBlend; | ||
| 1265 | m_Desc.RenderTarget[renderTargetIndex].DestBlendAlpha = renderTargetBlendDesc.DestBlendAlpha; | ||
| 1266 | m_Desc.RenderTarget[renderTargetIndex].LogicOp = renderTargetBlendDesc.LogicOp; | ||
| 1267 | m_Desc.RenderTarget[renderTargetIndex].LogicOpEnable = renderTargetBlendDesc.LogicOpEnable; | ||
| 1268 | m_Desc.RenderTarget[renderTargetIndex].RenderTargetWriteMask = renderTargetBlendDesc.RenderTargetWriteMask; | ||
| 1269 | m_Desc.RenderTarget[renderTargetIndex].SrcBlend = renderTargetBlendDesc.SrcBlend; | ||
| 1270 | m_Desc.RenderTarget[renderTargetIndex].SrcBlendAlpha = renderTargetBlendDesc.SrcBlendAlpha; | ||
| 1271 | } | ||
| 1272 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1273 | { | ||
| 1274 | return D3D12_STATE_SUBOBJECT_TYPE_BLEND; | ||
| 1275 | } | ||
| 1276 | operator const D3D12_BLEND_DESC& () const noexcept { return m_Desc; } | ||
| 1277 | operator D3D12_BLEND_DESC& () noexcept { return m_Desc; } | ||
| 1278 | private: | ||
| 1279 | void Init() noexcept | ||
| 1280 | { | ||
| 1281 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1282 | } | ||
| 1283 | void* Data() noexcept override { return &m_Desc; } | ||
| 1284 | CD3DX12_BLEND_DESC m_Desc; | ||
| 1285 | }; | ||
| 1286 | |||
| 1287 | //------------------------------------------------------------------------------------------------ | ||
| 1288 | class CD3DX12_RASTERIZER_SUBOBJECT | ||
| 1289 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1290 | { | ||
| 1291 | public: | ||
| 1292 | CD3DX12_RASTERIZER_SUBOBJECT() | ||
| 1293 | : m_Desc(CD3DX12_RASTERIZER_DESC2(D3D12_DEFAULT)) | ||
| 1294 | { | ||
| 1295 | Init(); | ||
| 1296 | } | ||
| 1297 | CD3DX12_RASTERIZER_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1298 | : m_Desc(CD3DX12_RASTERIZER_DESC2(D3D12_DEFAULT)) | ||
| 1299 | { | ||
| 1300 | Init(); | ||
| 1301 | AddToStateObject(ContainingStateObject); | ||
| 1302 | } | ||
| 1303 | CD3DX12_RASTERIZER_SUBOBJECT(const D3D12_RASTERIZER_DESC2 &desc) | ||
| 1304 | : m_Desc(desc) | ||
| 1305 | { | ||
| 1306 | Init(); | ||
| 1307 | } | ||
| 1308 | CD3DX12_RASTERIZER_SUBOBJECT(const D3D12_RASTERIZER_DESC2 &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1309 | : m_Desc(desc) | ||
| 1310 | { | ||
| 1311 | Init(); | ||
| 1312 | AddToStateObject(ContainingStateObject); | ||
| 1313 | } | ||
| 1314 | void SetFillMode(D3D12_FILL_MODE fillMode) | ||
| 1315 | { | ||
| 1316 | m_Desc.FillMode = fillMode; | ||
| 1317 | } | ||
| 1318 | void SetCullMode(D3D12_CULL_MODE cullMode) | ||
| 1319 | { | ||
| 1320 | m_Desc.CullMode = cullMode; | ||
| 1321 | } | ||
| 1322 | void SetFrontCounterClockwise(BOOL frontCounterClockwise) | ||
| 1323 | { | ||
| 1324 | m_Desc.FrontCounterClockwise = frontCounterClockwise; | ||
| 1325 | } | ||
| 1326 | void SetDepthBias(FLOAT depthBias) | ||
| 1327 | { | ||
| 1328 | m_Desc.DepthBias = depthBias; | ||
| 1329 | } | ||
| 1330 | void SetDepthBiasClamp(FLOAT depthBiasClamp) | ||
| 1331 | { | ||
| 1332 | m_Desc.DepthBiasClamp = depthBiasClamp; | ||
| 1333 | } | ||
| 1334 | void SetSlopeScaledDepthBias(FLOAT slopeScaledDepthBias) | ||
| 1335 | { | ||
| 1336 | m_Desc.SlopeScaledDepthBias = slopeScaledDepthBias; | ||
| 1337 | } | ||
| 1338 | void SetDepthClipEnable(BOOL depthClipEnable) | ||
| 1339 | { | ||
| 1340 | m_Desc.DepthClipEnable = depthClipEnable; | ||
| 1341 | } | ||
| 1342 | void SetLineRasterizationMode(D3D12_LINE_RASTERIZATION_MODE lineRasterizationMode) | ||
| 1343 | { | ||
| 1344 | m_Desc.LineRasterizationMode = lineRasterizationMode; | ||
| 1345 | } | ||
| 1346 | void SetForcedSampleCount(UINT forcedSampleCount) | ||
| 1347 | { | ||
| 1348 | m_Desc.ForcedSampleCount = forcedSampleCount; | ||
| 1349 | } | ||
| 1350 | void SetConservativeRaster(D3D12_CONSERVATIVE_RASTERIZATION_MODE conservativeRaster) | ||
| 1351 | { | ||
| 1352 | m_Desc.ConservativeRaster = conservativeRaster; | ||
| 1353 | } | ||
| 1354 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1355 | { | ||
| 1356 | return D3D12_STATE_SUBOBJECT_TYPE_RASTERIZER; | ||
| 1357 | } | ||
| 1358 | operator const D3D12_RASTERIZER_DESC2& () const noexcept { return m_Desc; } | ||
| 1359 | operator D3D12_RASTERIZER_DESC2& () noexcept { return m_Desc; } | ||
| 1360 | private: | ||
| 1361 | void Init() noexcept | ||
| 1362 | { | ||
| 1363 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1364 | } | ||
| 1365 | void* Data() noexcept override { return &m_Desc; } | ||
| 1366 | CD3DX12_RASTERIZER_DESC2 m_Desc; | ||
| 1367 | }; | ||
| 1368 | |||
| 1369 | //------------------------------------------------------------------------------------------------ | ||
| 1370 | class CD3DX12_DEPTH_STENCIL2_SUBOBJECT | ||
| 1371 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1372 | { | ||
| 1373 | public: | ||
| 1374 | CD3DX12_DEPTH_STENCIL2_SUBOBJECT() | ||
| 1375 | : m_Desc(CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEFAULT)) | ||
| 1376 | { | ||
| 1377 | Init(); | ||
| 1378 | } | ||
| 1379 | CD3DX12_DEPTH_STENCIL2_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1380 | : m_Desc(CD3DX12_DEPTH_STENCIL_DESC2(D3D12_DEFAULT)) | ||
| 1381 | { | ||
| 1382 | Init(); | ||
| 1383 | AddToStateObject(ContainingStateObject); | ||
| 1384 | } | ||
| 1385 | CD3DX12_DEPTH_STENCIL2_SUBOBJECT(const D3D12_DEPTH_STENCIL_DESC2 &desc) | ||
| 1386 | : m_Desc(desc) | ||
| 1387 | { | ||
| 1388 | Init(); | ||
| 1389 | } | ||
| 1390 | CD3DX12_DEPTH_STENCIL2_SUBOBJECT(const D3D12_DEPTH_STENCIL_DESC2 &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1391 | : m_Desc(desc) | ||
| 1392 | { | ||
| 1393 | Init(); | ||
| 1394 | AddToStateObject(ContainingStateObject); | ||
| 1395 | } | ||
| 1396 | void SetDepthEnable(BOOL depthEnable) | ||
| 1397 | { | ||
| 1398 | m_Desc.DepthEnable = depthEnable; | ||
| 1399 | } | ||
| 1400 | void SetDepthWriteMask(D3D12_DEPTH_WRITE_MASK depthWriteMask) | ||
| 1401 | { | ||
| 1402 | m_Desc.DepthWriteMask = depthWriteMask; | ||
| 1403 | } | ||
| 1404 | void SetDepthFunc(D3D12_COMPARISON_FUNC depthFunc) | ||
| 1405 | { | ||
| 1406 | m_Desc.DepthFunc = depthFunc; | ||
| 1407 | } | ||
| 1408 | void SetStencilEnable(BOOL stencilEnable) | ||
| 1409 | { | ||
| 1410 | m_Desc.StencilEnable = stencilEnable; | ||
| 1411 | } | ||
| 1412 | void SetFrontFace(D3D12_DEPTH_STENCILOP_DESC1 frontFace) | ||
| 1413 | { | ||
| 1414 | m_Desc.FrontFace = { | ||
| 1415 | frontFace.StencilFailOp, | ||
| 1416 | frontFace.StencilDepthFailOp, | ||
| 1417 | frontFace.StencilPassOp, | ||
| 1418 | frontFace.StencilFunc, | ||
| 1419 | frontFace.StencilReadMask, | ||
| 1420 | frontFace.StencilWriteMask | ||
| 1421 | }; | ||
| 1422 | } | ||
| 1423 | void SetBackFace(D3D12_DEPTH_STENCILOP_DESC1 backFace) | ||
| 1424 | { | ||
| 1425 | m_Desc.BackFace = { | ||
| 1426 | backFace.StencilFailOp, | ||
| 1427 | backFace.StencilDepthFailOp, | ||
| 1428 | backFace.StencilPassOp, | ||
| 1429 | backFace.StencilFunc, | ||
| 1430 | backFace.StencilReadMask, | ||
| 1431 | backFace.StencilWriteMask | ||
| 1432 | }; | ||
| 1433 | } | ||
| 1434 | void SetDepthBoundsTestEnable(BOOL depthBoundsTestEnable) | ||
| 1435 | { | ||
| 1436 | m_Desc.DepthBoundsTestEnable = depthBoundsTestEnable; | ||
| 1437 | } | ||
| 1438 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1439 | { | ||
| 1440 | return D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL2; | ||
| 1441 | } | ||
| 1442 | operator const D3D12_DEPTH_STENCIL_DESC2& () const noexcept { return m_Desc; } | ||
| 1443 | operator D3D12_DEPTH_STENCIL_DESC2& () noexcept { return m_Desc; } | ||
| 1444 | private: | ||
| 1445 | void Init() noexcept | ||
| 1446 | { | ||
| 1447 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1448 | } | ||
| 1449 | void* Data() noexcept override { return &m_Desc; } | ||
| 1450 | CD3DX12_DEPTH_STENCIL_DESC2 m_Desc; | ||
| 1451 | }; | ||
| 1452 | |||
| 1453 | //------------------------------------------------------------------------------------------------ | ||
| 1454 | class CD3DX12_INPUT_LAYOUT_SUBOBJECT | ||
| 1455 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1456 | { | ||
| 1457 | public: | ||
| 1458 | CD3DX12_INPUT_LAYOUT_SUBOBJECT() | ||
| 1459 | { | ||
| 1460 | Init(); | ||
| 1461 | } | ||
| 1462 | CD3DX12_INPUT_LAYOUT_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1463 | { | ||
| 1464 | Init(); | ||
| 1465 | AddToStateObject(ContainingStateObject); | ||
| 1466 | } | ||
| 1467 | void AddInputLayoutElementDesc(D3D12_INPUT_ELEMENT_DESC inputLayoutElementDesc) | ||
| 1468 | { | ||
| 1469 | m_inputLayoutElements.emplace_back( | ||
| 1470 | D3D12_INPUT_ELEMENT_DESC{ | ||
| 1471 | m_Strings.LocalCopy(inputLayoutElementDesc.SemanticName), | ||
| 1472 | inputLayoutElementDesc.SemanticIndex, | ||
| 1473 | inputLayoutElementDesc.Format, | ||
| 1474 | inputLayoutElementDesc.InputSlot, | ||
| 1475 | inputLayoutElementDesc.AlignedByteOffset, | ||
| 1476 | inputLayoutElementDesc.InputSlotClass, | ||
| 1477 | inputLayoutElementDesc.InstanceDataStepRate | ||
| 1478 | }); | ||
| 1479 | ++m_Desc.NumElements; | ||
| 1480 | // Below: using ugly way to get pointer in case .data() is not defined | ||
| 1481 | m_Desc.pInputElementDescs = &m_inputLayoutElements[0]; | ||
| 1482 | } | ||
| 1483 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1484 | { | ||
| 1485 | return D3D12_STATE_SUBOBJECT_TYPE_INPUT_LAYOUT; | ||
| 1486 | } | ||
| 1487 | operator const D3D12_INPUT_LAYOUT_DESC& () const noexcept { return m_Desc; } | ||
| 1488 | private: | ||
| 1489 | void Init() noexcept | ||
| 1490 | { | ||
| 1491 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1492 | m_Desc = {}; | ||
| 1493 | m_inputLayoutElements.clear(); | ||
| 1494 | } | ||
| 1495 | void* Data() noexcept override { return &m_Desc; } | ||
| 1496 | D3D12_INPUT_LAYOUT_DESC m_Desc; | ||
| 1497 | std::vector<D3D12_INPUT_ELEMENT_DESC> m_inputLayoutElements; | ||
| 1498 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCSTR, std::string> m_Strings; | ||
| 1499 | }; | ||
| 1500 | |||
| 1501 | //------------------------------------------------------------------------------------------------ | ||
| 1502 | class CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT | ||
| 1503 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1504 | { | ||
| 1505 | public: | ||
| 1506 | CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT() | ||
| 1507 | : m_Desc(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED) | ||
| 1508 | { | ||
| 1509 | Init(); | ||
| 1510 | } | ||
| 1511 | CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1512 | : m_Desc(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED) | ||
| 1513 | { | ||
| 1514 | Init(); | ||
| 1515 | AddToStateObject(ContainingStateObject); | ||
| 1516 | } | ||
| 1517 | CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE desc) | ||
| 1518 | : m_Desc(desc) | ||
| 1519 | { | ||
| 1520 | Init(); | ||
| 1521 | } | ||
| 1522 | CD3DX12_IB_STRIP_CUT_VALUE_SUBOBJECT(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1523 | : m_Desc(desc) | ||
| 1524 | { | ||
| 1525 | Init(); | ||
| 1526 | AddToStateObject(ContainingStateObject); | ||
| 1527 | } | ||
| 1528 | void SetIBStripCutValue(D3D12_INDEX_BUFFER_STRIP_CUT_VALUE ibStripCutValue) | ||
| 1529 | { | ||
| 1530 | m_Desc = ibStripCutValue; | ||
| 1531 | } | ||
| 1532 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1533 | { | ||
| 1534 | return D3D12_STATE_SUBOBJECT_TYPE_IB_STRIP_CUT_VALUE; | ||
| 1535 | } | ||
| 1536 | operator const D3D12_INDEX_BUFFER_STRIP_CUT_VALUE& () const noexcept { return m_Desc; } | ||
| 1537 | operator D3D12_INDEX_BUFFER_STRIP_CUT_VALUE& () noexcept { return m_Desc; } | ||
| 1538 | private: | ||
| 1539 | void Init() noexcept | ||
| 1540 | { | ||
| 1541 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1542 | } | ||
| 1543 | void* Data() noexcept override { return &m_Desc; } | ||
| 1544 | D3D12_INDEX_BUFFER_STRIP_CUT_VALUE m_Desc; | ||
| 1545 | }; | ||
| 1546 | |||
| 1547 | //------------------------------------------------------------------------------------------------ | ||
| 1548 | class CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT | ||
| 1549 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1550 | { | ||
| 1551 | public: | ||
| 1552 | CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT() | ||
| 1553 | : m_Desc(D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED) | ||
| 1554 | { | ||
| 1555 | Init(); | ||
| 1556 | } | ||
| 1557 | CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1558 | : m_Desc(D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED) | ||
| 1559 | { | ||
| 1560 | Init(); | ||
| 1561 | AddToStateObject(ContainingStateObject); | ||
| 1562 | } | ||
| 1563 | CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT(D3D12_PRIMITIVE_TOPOLOGY_TYPE desc) | ||
| 1564 | : m_Desc(desc) | ||
| 1565 | { | ||
| 1566 | Init(); | ||
| 1567 | } | ||
| 1568 | CD3DX12_PRIMITIVE_TOPOLOGY_SUBOBJECT(D3D12_PRIMITIVE_TOPOLOGY_TYPE desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1569 | : m_Desc(desc) | ||
| 1570 | { | ||
| 1571 | Init(); | ||
| 1572 | AddToStateObject(ContainingStateObject); | ||
| 1573 | } | ||
| 1574 | void SetPrimitiveTopologyType(D3D12_PRIMITIVE_TOPOLOGY_TYPE primitiveTopologytype) | ||
| 1575 | { | ||
| 1576 | m_Desc = primitiveTopologytype; | ||
| 1577 | } | ||
| 1578 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1579 | { | ||
| 1580 | return D3D12_STATE_SUBOBJECT_TYPE_PRIMITIVE_TOPOLOGY; | ||
| 1581 | } | ||
| 1582 | operator const D3D12_PRIMITIVE_TOPOLOGY_TYPE& () const noexcept { return m_Desc; } | ||
| 1583 | operator D3D12_PRIMITIVE_TOPOLOGY_TYPE& () noexcept { return m_Desc; } | ||
| 1584 | private: | ||
| 1585 | void Init() noexcept | ||
| 1586 | { | ||
| 1587 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1588 | } | ||
| 1589 | void* Data() noexcept override { return &m_Desc; } | ||
| 1590 | D3D12_PRIMITIVE_TOPOLOGY_TYPE m_Desc; | ||
| 1591 | }; | ||
| 1592 | |||
| 1593 | //------------------------------------------------------------------------------------------------ | ||
| 1594 | class CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT | ||
| 1595 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1596 | { | ||
| 1597 | public: | ||
| 1598 | CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT() | ||
| 1599 | : m_Desc({}) | ||
| 1600 | { | ||
| 1601 | Init(); | ||
| 1602 | } | ||
| 1603 | CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1604 | : m_Desc({}) | ||
| 1605 | { | ||
| 1606 | Init(); | ||
| 1607 | AddToStateObject(ContainingStateObject); | ||
| 1608 | } | ||
| 1609 | CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT(const D3D12_RT_FORMAT_ARRAY &desc) | ||
| 1610 | : m_Desc(desc) | ||
| 1611 | { | ||
| 1612 | Init(); | ||
| 1613 | } | ||
| 1614 | CD3DX12_RENDER_TARGET_FORMATS_SUBOBJECT(const D3D12_RT_FORMAT_ARRAY &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1615 | : m_Desc(desc) | ||
| 1616 | { | ||
| 1617 | Init(); | ||
| 1618 | AddToStateObject(ContainingStateObject); | ||
| 1619 | } | ||
| 1620 | void SetNumRenderTargets(UINT numRenderTargets) | ||
| 1621 | { | ||
| 1622 | m_Desc.NumRenderTargets = numRenderTargets; | ||
| 1623 | } | ||
| 1624 | void SetRenderTargetFormat(UINT renderTarget, DXGI_FORMAT renderTargetFormat) | ||
| 1625 | { | ||
| 1626 | m_Desc.RTFormats[renderTarget] = renderTargetFormat; | ||
| 1627 | } | ||
| 1628 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1629 | { | ||
| 1630 | return D3D12_STATE_SUBOBJECT_TYPE_RENDER_TARGET_FORMATS; | ||
| 1631 | } | ||
| 1632 | operator const D3D12_RT_FORMAT_ARRAY& () const noexcept { return m_Desc; } | ||
| 1633 | operator D3D12_RT_FORMAT_ARRAY& () noexcept { return m_Desc; } | ||
| 1634 | private: | ||
| 1635 | void Init() noexcept | ||
| 1636 | { | ||
| 1637 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1638 | } | ||
| 1639 | void* Data() noexcept override { return &m_Desc; } | ||
| 1640 | D3D12_RT_FORMAT_ARRAY m_Desc; | ||
| 1641 | }; | ||
| 1642 | |||
| 1643 | //------------------------------------------------------------------------------------------------ | ||
| 1644 | class CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT | ||
| 1645 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1646 | { | ||
| 1647 | public: | ||
| 1648 | CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT() | ||
| 1649 | : m_Desc(DXGI_FORMAT_UNKNOWN) | ||
| 1650 | { | ||
| 1651 | Init(); | ||
| 1652 | } | ||
| 1653 | CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1654 | : m_Desc(DXGI_FORMAT_UNKNOWN) | ||
| 1655 | { | ||
| 1656 | Init(); | ||
| 1657 | AddToStateObject(ContainingStateObject); | ||
| 1658 | } | ||
| 1659 | CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT(DXGI_FORMAT desc) | ||
| 1660 | : m_Desc(desc) | ||
| 1661 | { | ||
| 1662 | Init(); | ||
| 1663 | } | ||
| 1664 | CD3DX12_DEPTH_STENCIL_FORMAT_SUBOBJECT(DXGI_FORMAT desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1665 | : m_Desc(desc) | ||
| 1666 | { | ||
| 1667 | Init(); | ||
| 1668 | AddToStateObject(ContainingStateObject); | ||
| 1669 | } | ||
| 1670 | void SetDepthStencilFormat(DXGI_FORMAT depthStencilFormat) | ||
| 1671 | { | ||
| 1672 | m_Desc = depthStencilFormat; | ||
| 1673 | } | ||
| 1674 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1675 | { | ||
| 1676 | return D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL_FORMAT; | ||
| 1677 | } | ||
| 1678 | operator const DXGI_FORMAT& () const noexcept { return m_Desc; } | ||
| 1679 | operator DXGI_FORMAT& () noexcept { return m_Desc; } | ||
| 1680 | private: | ||
| 1681 | void Init() noexcept | ||
| 1682 | { | ||
| 1683 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1684 | } | ||
| 1685 | void* Data() noexcept override { return &m_Desc; } | ||
| 1686 | DXGI_FORMAT m_Desc; | ||
| 1687 | }; | ||
| 1688 | |||
| 1689 | //------------------------------------------------------------------------------------------------ | ||
| 1690 | class CD3DX12_SAMPLE_DESC_SUBOBJECT | ||
| 1691 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1692 | { | ||
| 1693 | public: | ||
| 1694 | CD3DX12_SAMPLE_DESC_SUBOBJECT() | ||
| 1695 | : m_Desc({1, 0}) | ||
| 1696 | { | ||
| 1697 | Init(); | ||
| 1698 | } | ||
| 1699 | CD3DX12_SAMPLE_DESC_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1700 | : m_Desc({1, 0}) | ||
| 1701 | { | ||
| 1702 | Init(); | ||
| 1703 | AddToStateObject(ContainingStateObject); | ||
| 1704 | } | ||
| 1705 | CD3DX12_SAMPLE_DESC_SUBOBJECT(const DXGI_SAMPLE_DESC &desc) | ||
| 1706 | : m_Desc(desc) | ||
| 1707 | { | ||
| 1708 | Init(); | ||
| 1709 | } | ||
| 1710 | CD3DX12_SAMPLE_DESC_SUBOBJECT(const DXGI_SAMPLE_DESC &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1711 | : m_Desc(desc) | ||
| 1712 | { | ||
| 1713 | Init(); | ||
| 1714 | AddToStateObject(ContainingStateObject); | ||
| 1715 | } | ||
| 1716 | void SetCount(UINT count) | ||
| 1717 | { | ||
| 1718 | m_Desc.Count = count; | ||
| 1719 | } | ||
| 1720 | void SetQuality(UINT quality) | ||
| 1721 | { | ||
| 1722 | m_Desc.Quality = quality; | ||
| 1723 | } | ||
| 1724 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1725 | { | ||
| 1726 | return D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_DESC; | ||
| 1727 | } | ||
| 1728 | operator const DXGI_SAMPLE_DESC& () const noexcept { return m_Desc; } | ||
| 1729 | operator DXGI_SAMPLE_DESC& () noexcept { return m_Desc; } | ||
| 1730 | private: | ||
| 1731 | void Init() noexcept | ||
| 1732 | { | ||
| 1733 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1734 | m_Desc = {}; | ||
| 1735 | } | ||
| 1736 | void* Data() noexcept override { return &m_Desc; } | ||
| 1737 | DXGI_SAMPLE_DESC m_Desc; | ||
| 1738 | }; | ||
| 1739 | |||
| 1740 | //------------------------------------------------------------------------------------------------ | ||
| 1741 | class CD3DX12_FLAGS_SUBOBJECT | ||
| 1742 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1743 | { | ||
| 1744 | public: | ||
| 1745 | CD3DX12_FLAGS_SUBOBJECT() | ||
| 1746 | : m_Desc(D3D12_PIPELINE_STATE_FLAG_NONE) | ||
| 1747 | { | ||
| 1748 | Init(); | ||
| 1749 | } | ||
| 1750 | CD3DX12_FLAGS_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1751 | : m_Desc(D3D12_PIPELINE_STATE_FLAG_NONE) | ||
| 1752 | { | ||
| 1753 | Init(); | ||
| 1754 | AddToStateObject(ContainingStateObject); | ||
| 1755 | } | ||
| 1756 | CD3DX12_FLAGS_SUBOBJECT(D3D12_PIPELINE_STATE_FLAGS desc) | ||
| 1757 | : m_Desc(desc) | ||
| 1758 | { | ||
| 1759 | Init(); | ||
| 1760 | } | ||
| 1761 | CD3DX12_FLAGS_SUBOBJECT(D3D12_PIPELINE_STATE_FLAGS desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1762 | : m_Desc(desc) | ||
| 1763 | { | ||
| 1764 | Init(); | ||
| 1765 | AddToStateObject(ContainingStateObject); | ||
| 1766 | } | ||
| 1767 | void SetFlags(D3D12_PIPELINE_STATE_FLAGS flags) | ||
| 1768 | { | ||
| 1769 | m_Desc = flags; | ||
| 1770 | } | ||
| 1771 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1772 | { | ||
| 1773 | return D3D12_STATE_SUBOBJECT_TYPE_FLAGS; | ||
| 1774 | } | ||
| 1775 | operator const D3D12_PIPELINE_STATE_FLAGS& () const noexcept { return m_Desc; } | ||
| 1776 | operator D3D12_PIPELINE_STATE_FLAGS& () noexcept { return m_Desc; } | ||
| 1777 | private: | ||
| 1778 | void Init() noexcept | ||
| 1779 | { | ||
| 1780 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1781 | } | ||
| 1782 | void* Data() noexcept override { return &m_Desc; } | ||
| 1783 | D3D12_PIPELINE_STATE_FLAGS m_Desc; | ||
| 1784 | }; | ||
| 1785 | |||
| 1786 | //------------------------------------------------------------------------------------------------ | ||
| 1787 | class CD3DX12_VIEW_INSTANCING_SUBOBJECT | ||
| 1788 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1789 | { | ||
| 1790 | public: | ||
| 1791 | CD3DX12_VIEW_INSTANCING_SUBOBJECT() | ||
| 1792 | { | ||
| 1793 | Init(); | ||
| 1794 | } | ||
| 1795 | CD3DX12_VIEW_INSTANCING_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1796 | { | ||
| 1797 | Init(); | ||
| 1798 | AddToStateObject(ContainingStateObject); | ||
| 1799 | } | ||
| 1800 | void AddViewInstanceLocation(D3D12_VIEW_INSTANCE_LOCATION viewInstanceLocation) | ||
| 1801 | { | ||
| 1802 | m_Desc.ViewInstanceCount++; | ||
| 1803 | m_viewInstanceLocations.emplace_back( | ||
| 1804 | D3D12_VIEW_INSTANCE_LOCATION | ||
| 1805 | { | ||
| 1806 | viewInstanceLocation.ViewportArrayIndex, | ||
| 1807 | viewInstanceLocation.RenderTargetArrayIndex | ||
| 1808 | } | ||
| 1809 | ); | ||
| 1810 | // Below: using ugly way to get pointer in case .data() is not defined | ||
| 1811 | m_Desc.pViewInstanceLocations = &m_viewInstanceLocations[0]; | ||
| 1812 | } | ||
| 1813 | void SetFlags(D3D12_VIEW_INSTANCING_FLAGS flags) | ||
| 1814 | { | ||
| 1815 | m_Desc.Flags = flags; | ||
| 1816 | } | ||
| 1817 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1818 | { | ||
| 1819 | return D3D12_STATE_SUBOBJECT_TYPE_VIEW_INSTANCING; | ||
| 1820 | } | ||
| 1821 | operator const D3D12_VIEW_INSTANCING_DESC& () const noexcept { return m_Desc; } | ||
| 1822 | private: | ||
| 1823 | void Init() noexcept | ||
| 1824 | { | ||
| 1825 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1826 | m_Desc = CD3DX12_VIEW_INSTANCING_DESC(D3D12_DEFAULT); | ||
| 1827 | m_viewInstanceLocations.clear(); | ||
| 1828 | } | ||
| 1829 | void* Data() noexcept override { return &m_Desc; } | ||
| 1830 | CD3DX12_VIEW_INSTANCING_DESC m_Desc; | ||
| 1831 | std::vector<D3D12_VIEW_INSTANCE_LOCATION> m_viewInstanceLocations; | ||
| 1832 | }; | ||
| 1833 | |||
| 1834 | //------------------------------------------------------------------------------------------------ | ||
| 1835 | class CD3DX12_DEPTH_STENCIL_SUBOBJECT | ||
| 1836 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1837 | { | ||
| 1838 | public: | ||
| 1839 | CD3DX12_DEPTH_STENCIL_SUBOBJECT() | ||
| 1840 | : m_Desc(CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT)) | ||
| 1841 | { | ||
| 1842 | Init(); | ||
| 1843 | } | ||
| 1844 | CD3DX12_DEPTH_STENCIL_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1845 | : m_Desc(CD3DX12_DEPTH_STENCIL_DESC(D3D12_DEFAULT)) | ||
| 1846 | { | ||
| 1847 | Init(); | ||
| 1848 | AddToStateObject(ContainingStateObject); | ||
| 1849 | } | ||
| 1850 | CD3DX12_DEPTH_STENCIL_SUBOBJECT(const D3D12_DEPTH_STENCIL_DESC &desc) | ||
| 1851 | : m_Desc(desc) | ||
| 1852 | { | ||
| 1853 | Init(); | ||
| 1854 | } | ||
| 1855 | CD3DX12_DEPTH_STENCIL_SUBOBJECT(const D3D12_DEPTH_STENCIL_DESC &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1856 | : m_Desc(desc) | ||
| 1857 | { | ||
| 1858 | Init(); | ||
| 1859 | AddToStateObject(ContainingStateObject); | ||
| 1860 | } | ||
| 1861 | void SetDepthEnable(BOOL depthEnable) | ||
| 1862 | { | ||
| 1863 | m_Desc.DepthEnable = depthEnable; | ||
| 1864 | } | ||
| 1865 | void SetDepthWriteMask(D3D12_DEPTH_WRITE_MASK depthWriteMask) | ||
| 1866 | { | ||
| 1867 | m_Desc.DepthWriteMask = depthWriteMask; | ||
| 1868 | } | ||
| 1869 | void SetDepthFunc(D3D12_COMPARISON_FUNC depthFunc) | ||
| 1870 | { | ||
| 1871 | m_Desc.DepthFunc = depthFunc; | ||
| 1872 | } | ||
| 1873 | void SetStencilEnable(BOOL stencilEnable) | ||
| 1874 | { | ||
| 1875 | m_Desc.StencilEnable = stencilEnable; | ||
| 1876 | } | ||
| 1877 | void SetStencilReadMask(UINT8 stencilReadMask) | ||
| 1878 | { | ||
| 1879 | m_Desc.StencilReadMask = stencilReadMask; | ||
| 1880 | } | ||
| 1881 | void SetStencilWriteMask(UINT8 stencilWriteMask) | ||
| 1882 | { | ||
| 1883 | m_Desc.StencilWriteMask = stencilWriteMask; | ||
| 1884 | } | ||
| 1885 | void SetFrontFace(D3D12_DEPTH_STENCILOP_DESC frontFace) | ||
| 1886 | { | ||
| 1887 | m_Desc.FrontFace = { | ||
| 1888 | frontFace.StencilFailOp, | ||
| 1889 | frontFace.StencilDepthFailOp, | ||
| 1890 | frontFace.StencilPassOp, | ||
| 1891 | frontFace.StencilFunc | ||
| 1892 | }; | ||
| 1893 | } | ||
| 1894 | void SetBackFace(D3D12_DEPTH_STENCILOP_DESC backFace) | ||
| 1895 | { | ||
| 1896 | m_Desc.BackFace = { | ||
| 1897 | backFace.StencilFailOp, | ||
| 1898 | backFace.StencilDepthFailOp, | ||
| 1899 | backFace.StencilPassOp, | ||
| 1900 | backFace.StencilFunc | ||
| 1901 | }; | ||
| 1902 | } | ||
| 1903 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1904 | { | ||
| 1905 | return D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL; | ||
| 1906 | } | ||
| 1907 | operator const D3D12_DEPTH_STENCIL_DESC& () const noexcept { return m_Desc; } | ||
| 1908 | operator D3D12_DEPTH_STENCIL_DESC& () noexcept { return m_Desc; } | ||
| 1909 | private: | ||
| 1910 | void Init() noexcept | ||
| 1911 | { | ||
| 1912 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 1913 | } | ||
| 1914 | void* Data() noexcept override { return &m_Desc; } | ||
| 1915 | CD3DX12_DEPTH_STENCIL_DESC m_Desc; | ||
| 1916 | }; | ||
| 1917 | |||
| 1918 | //------------------------------------------------------------------------------------------------ | ||
| 1919 | class CD3DX12_DEPTH_STENCIL1_SUBOBJECT | ||
| 1920 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 1921 | { | ||
| 1922 | public: | ||
| 1923 | CD3DX12_DEPTH_STENCIL1_SUBOBJECT() | ||
| 1924 | : m_Desc(CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEFAULT)) | ||
| 1925 | { | ||
| 1926 | Init(); | ||
| 1927 | } | ||
| 1928 | CD3DX12_DEPTH_STENCIL1_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1929 | : m_Desc(CD3DX12_DEPTH_STENCIL_DESC1(D3D12_DEFAULT)) | ||
| 1930 | { | ||
| 1931 | Init(); | ||
| 1932 | AddToStateObject(ContainingStateObject); | ||
| 1933 | } | ||
| 1934 | CD3DX12_DEPTH_STENCIL1_SUBOBJECT(const D3D12_DEPTH_STENCIL_DESC1 &desc) | ||
| 1935 | : m_Desc(desc) | ||
| 1936 | { | ||
| 1937 | Init(); | ||
| 1938 | } | ||
| 1939 | CD3DX12_DEPTH_STENCIL1_SUBOBJECT(const D3D12_DEPTH_STENCIL_DESC1 &desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 1940 | : m_Desc(desc) | ||
| 1941 | { | ||
| 1942 | Init(); | ||
| 1943 | AddToStateObject(ContainingStateObject); | ||
| 1944 | } | ||
| 1945 | void SetDepthEnable(BOOL depthEnable) | ||
| 1946 | { | ||
| 1947 | m_Desc.DepthEnable = depthEnable; | ||
| 1948 | } | ||
| 1949 | void SetDepthWriteMask(D3D12_DEPTH_WRITE_MASK depthWriteMask) | ||
| 1950 | { | ||
| 1951 | m_Desc.DepthWriteMask = depthWriteMask; | ||
| 1952 | } | ||
| 1953 | void SetDepthFunc(D3D12_COMPARISON_FUNC depthFunc) | ||
| 1954 | { | ||
| 1955 | m_Desc.DepthFunc = depthFunc; | ||
| 1956 | } | ||
| 1957 | void SetStencilEnable(BOOL stencilEnable) | ||
| 1958 | { | ||
| 1959 | m_Desc.StencilEnable = stencilEnable; | ||
| 1960 | } | ||
| 1961 | void SetStencilReadMask(UINT8 stencilReadMask) | ||
| 1962 | { | ||
| 1963 | m_Desc.StencilReadMask = stencilReadMask; | ||
| 1964 | } | ||
| 1965 | void SetStencilWriteMask(UINT8 stencilWriteMask) | ||
| 1966 | { | ||
| 1967 | m_Desc.StencilWriteMask = stencilWriteMask; | ||
| 1968 | } | ||
| 1969 | void SetFrontFace(D3D12_DEPTH_STENCILOP_DESC frontFace) | ||
| 1970 | { | ||
| 1971 | m_Desc.FrontFace = { | ||
| 1972 | frontFace.StencilFailOp, | ||
| 1973 | frontFace.StencilDepthFailOp, | ||
| 1974 | frontFace.StencilPassOp, | ||
| 1975 | frontFace.StencilFunc | ||
| 1976 | }; | ||
| 1977 | } | ||
| 1978 | void SetBackFace(D3D12_DEPTH_STENCILOP_DESC backFace) | ||
| 1979 | { | ||
| 1980 | m_Desc.BackFace = { | ||
| 1981 | backFace.StencilFailOp, | ||
| 1982 | backFace.StencilDepthFailOp, | ||
| 1983 | backFace.StencilPassOp, | ||
| 1984 | backFace.StencilFunc | ||
| 1985 | }; | ||
| 1986 | } | ||
| 1987 | void SetDepthBoundsTestEnable(BOOL depthBoundsTestEnable) | ||
| 1988 | { | ||
| 1989 | m_Desc.DepthBoundsTestEnable = depthBoundsTestEnable; | ||
| 1990 | } | ||
| 1991 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 1992 | { | ||
| 1993 | return D3D12_STATE_SUBOBJECT_TYPE_DEPTH_STENCIL1; | ||
| 1994 | } | ||
| 1995 | operator const D3D12_DEPTH_STENCIL_DESC1& () const noexcept { return m_Desc; } | ||
| 1996 | operator D3D12_DEPTH_STENCIL_DESC1& () noexcept { return m_Desc; } | ||
| 1997 | private: | ||
| 1998 | void Init() noexcept | ||
| 1999 | { | ||
| 2000 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 2001 | } | ||
| 2002 | void* Data() noexcept override { return &m_Desc; } | ||
| 2003 | CD3DX12_DEPTH_STENCIL_DESC1 m_Desc; | ||
| 2004 | }; | ||
| 2005 | |||
| 2006 | //------------------------------------------------------------------------------------------------ | ||
| 2007 | class CD3DX12_SAMPLE_MASK_SUBOBJECT | ||
| 2008 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 2009 | { | ||
| 2010 | public: | ||
| 2011 | CD3DX12_SAMPLE_MASK_SUBOBJECT() | ||
| 2012 | : m_Desc(0xffffffffu) | ||
| 2013 | { | ||
| 2014 | Init(); | ||
| 2015 | } | ||
| 2016 | CD3DX12_SAMPLE_MASK_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 2017 | : m_Desc(0xffffffffu) | ||
| 2018 | { | ||
| 2019 | Init(); | ||
| 2020 | AddToStateObject(ContainingStateObject); | ||
| 2021 | } | ||
| 2022 | CD3DX12_SAMPLE_MASK_SUBOBJECT(UINT desc) | ||
| 2023 | : m_Desc(desc) | ||
| 2024 | { | ||
| 2025 | Init(); | ||
| 2026 | } | ||
| 2027 | CD3DX12_SAMPLE_MASK_SUBOBJECT(UINT desc, CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 2028 | : m_Desc(desc) | ||
| 2029 | { | ||
| 2030 | Init(); | ||
| 2031 | AddToStateObject(ContainingStateObject); | ||
| 2032 | } | ||
| 2033 | void SetSampleMask(UINT sampleMask) | ||
| 2034 | { | ||
| 2035 | m_Desc = sampleMask; | ||
| 2036 | } | ||
| 2037 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 2038 | { | ||
| 2039 | return D3D12_STATE_SUBOBJECT_TYPE_SAMPLE_MASK; | ||
| 2040 | } | ||
| 2041 | operator const UINT& () const noexcept { return m_Desc; } | ||
| 2042 | operator UINT& () noexcept { return m_Desc; } | ||
| 2043 | private: | ||
| 2044 | void Init() noexcept | ||
| 2045 | { | ||
| 2046 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 2047 | } | ||
| 2048 | void* Data() noexcept override { return &m_Desc; } | ||
| 2049 | UINT m_Desc; | ||
| 2050 | }; | ||
| 2051 | |||
| 2052 | //------------------------------------------------------------------------------------------------ | ||
| 2053 | class CD3DX12_GENERIC_PROGRAM_SUBOBJECT | ||
| 2054 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 2055 | { | ||
| 2056 | public: | ||
| 2057 | CD3DX12_GENERIC_PROGRAM_SUBOBJECT() | ||
| 2058 | { | ||
| 2059 | Init(); | ||
| 2060 | } | ||
| 2061 | CD3DX12_GENERIC_PROGRAM_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 2062 | { | ||
| 2063 | Init(); | ||
| 2064 | AddToStateObject(ContainingStateObject); | ||
| 2065 | } | ||
| 2066 | void SetProgramName(LPCWSTR ProgramName) | ||
| 2067 | { | ||
| 2068 | m_Desc.ProgramName = m_Strings.LocalCopy(ProgramName); | ||
| 2069 | } | ||
| 2070 | void AddExport(LPCWSTR exportName) | ||
| 2071 | { | ||
| 2072 | m_Exports.emplace_back(m_Strings.LocalCopy(exportName)); | ||
| 2073 | m_Desc.NumExports++; | ||
| 2074 | // Below: using ugly way to get pointer in case .data() is not defined | ||
| 2075 | m_Desc.pExports = &m_Exports[0]; | ||
| 2076 | } | ||
| 2077 | void AddSubobject(const D3D12_STATE_SUBOBJECT& subobject) | ||
| 2078 | { | ||
| 2079 | m_Subobjects.emplace_back(&subobject); | ||
| 2080 | m_Desc.NumSubobjects++; | ||
| 2081 | // Below: using ugly way to get pointer in case .data() is not defined | ||
| 2082 | m_Desc.ppSubobjects = &m_Subobjects[0]; | ||
| 2083 | } | ||
| 2084 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 2085 | { | ||
| 2086 | return D3D12_STATE_SUBOBJECT_TYPE_GENERIC_PROGRAM; | ||
| 2087 | } | ||
| 2088 | operator const D3D12_GENERIC_PROGRAM_DESC& () const noexcept { return m_Desc; } | ||
| 2089 | private: | ||
| 2090 | void Init() noexcept | ||
| 2091 | { | ||
| 2092 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 2093 | m_Desc = {}; | ||
| 2094 | } | ||
| 2095 | void* Data() noexcept override { return &m_Desc; } | ||
| 2096 | D3D12_GENERIC_PROGRAM_DESC m_Desc; | ||
| 2097 | std::vector<LPCWSTR> m_Exports; | ||
| 2098 | std::vector<D3D12_STATE_SUBOBJECT const*> m_Subobjects; | ||
| 2099 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_Strings; | ||
| 2100 | }; | ||
| 2101 | |||
| 2102 | //------------------------------------------------------------------------------------------------ | ||
| 2103 | class CD3DX12_NODE_OUTPUT_OVERRIDES | ||
| 2104 | { | ||
| 2105 | public: | ||
| 2106 | CD3DX12_NODE_OUTPUT_OVERRIDES(const D3D12_NODE_OUTPUT_OVERRIDES** ppOwner, UINT* pNumOutputOverrides) noexcept | ||
| 2107 | { | ||
| 2108 | m_Desc.clear(); | ||
| 2109 | m_ppOwner = ppOwner; | ||
| 2110 | *m_ppOwner = nullptr; | ||
| 2111 | m_pNumOutputOverrides = pNumOutputOverrides; | ||
| 2112 | *m_pNumOutputOverrides = 0; | ||
| 2113 | } | ||
| 2114 | void NewOutputOverride() | ||
| 2115 | { | ||
| 2116 | m_Desc.emplace_back(D3D12_NODE_OUTPUT_OVERRIDES{}); | ||
| 2117 | *m_ppOwner = m_Desc.data(); | ||
| 2118 | (*m_pNumOutputOverrides)++; | ||
| 2119 | } | ||
| 2120 | void OutputIndex(UINT index) | ||
| 2121 | { | ||
| 2122 | m_Desc.back().OutputIndex = index; | ||
| 2123 | } | ||
| 2124 | void NewName(LPCWSTR Name, UINT ArrayIndex = 0) | ||
| 2125 | { | ||
| 2126 | m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(Name),ArrayIndex }); | ||
| 2127 | m_Desc.back().pNewName = &m_NodeIDs.front(); | ||
| 2128 | } | ||
| 2129 | void AllowSparseNodes(BOOL bAllow) | ||
| 2130 | { | ||
| 2131 | m_UINTs.emplace_front((UINT)bAllow); | ||
| 2132 | m_Desc.back().pAllowSparseNodes = (BOOL*)&m_UINTs.front(); | ||
| 2133 | } | ||
| 2134 | void MaxOutputRecords(UINT maxOutputRecords) noexcept | ||
| 2135 | { | ||
| 2136 | m_UINTs.emplace_front(maxOutputRecords); | ||
| 2137 | m_Desc.back().pMaxRecords = &m_UINTs.front(); | ||
| 2138 | } | ||
| 2139 | void MaxOutputRecordsSharedWith(UINT outputIndex) noexcept | ||
| 2140 | { | ||
| 2141 | m_UINTs.emplace_front(outputIndex); | ||
| 2142 | m_Desc.back().pMaxRecordsSharedWithOutputIndex = &m_UINTs.front(); | ||
| 2143 | } | ||
| 2144 | private: | ||
| 2145 | std::vector<D3D12_NODE_OUTPUT_OVERRIDES> m_Desc; | ||
| 2146 | // Cached parameters | ||
| 2147 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_Strings; | ||
| 2148 | std::forward_list<UINT> m_UINTs; | ||
| 2149 | std::forward_list<D3D12_NODE_ID> m_NodeIDs; | ||
| 2150 | const D3D12_NODE_OUTPUT_OVERRIDES** m_ppOwner; | ||
| 2151 | UINT* m_pNumOutputOverrides; | ||
| 2152 | }; | ||
| 2153 | |||
| 2154 | //------------------------------------------------------------------------------------------------ | ||
| 2155 | class CD3DX12_WORK_GRAPH_SUBOBJECT; | ||
| 2156 | |||
| 2157 | //------------------------------------------------------------------------------------------------ | ||
| 2158 | class CD3DX12_NODE_HELPER_BASE | ||
| 2159 | { | ||
| 2160 | protected: | ||
| 2161 | struct Backreference | ||
| 2162 | { | ||
| 2163 | CD3DX12_WORK_GRAPH_SUBOBJECT *m_pGraph; | ||
| 2164 | UINT m_NodeIndex; | ||
| 2165 | }; | ||
| 2166 | public: | ||
| 2167 | CD3DX12_NODE_HELPER_BASE(const Backreference &BackRef) | ||
| 2168 | : m_BackRef(BackRef) | ||
| 2169 | { | ||
| 2170 | } | ||
| 2171 | virtual ~CD3DX12_NODE_HELPER_BASE() = default; | ||
| 2172 | protected: | ||
| 2173 | D3D12_NODE *GetNode() const; | ||
| 2174 | const Backreference m_BackRef; | ||
| 2175 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_Strings; | ||
| 2176 | }; | ||
| 2177 | |||
| 2178 | //------------------------------------------------------------------------------------------------ | ||
| 2179 | class CD3DX12_SHADER_NODE // Not specifying launch mode. | ||
| 2180 | // Don't need to distinguish if no parameter overriding is happening | ||
| 2181 | : public CD3DX12_NODE_HELPER_BASE | ||
| 2182 | { | ||
| 2183 | public: | ||
| 2184 | CD3DX12_SHADER_NODE( | ||
| 2185 | const Backreference &BackRef, | ||
| 2186 | LPCWSTR _Shader = nullptr) | ||
| 2187 | : CD3DX12_NODE_HELPER_BASE(BackRef) | ||
| 2188 | { | ||
| 2189 | GetNode()->NodeType = D3D12_NODE_TYPE_SHADER; | ||
| 2190 | Shader(_Shader); | ||
| 2191 | } | ||
| 2192 | void Shader(LPCWSTR _Shader) | ||
| 2193 | { | ||
| 2194 | GetNode()->Shader.Shader = m_Strings.LocalCopy(_Shader); | ||
| 2195 | } | ||
| 2196 | LPCWSTR GetShaderName() const { return GetNode()->Shader.Shader; } | ||
| 2197 | }; | ||
| 2198 | |||
| 2199 | #endif // D3D12_SDK_VERSION >= 612 | ||
| 2200 | |||
| 2201 | |||
| 2202 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 2203 | |||
| 2204 | //------------------------------------------------------------------------------------------------ | ||
| 2205 | // Use this class when defining a broadcasting launch node where configuration parameters | ||
| 2206 | // need to be overridden. If overrides are not needed, just use CD3DX12_COMPUTE_SHADER_NODE | ||
| 2207 | class CD3DX12_BROADCASTING_LAUNCH_NODE_OVERRIDES | ||
| 2208 | : public CD3DX12_NODE_HELPER_BASE | ||
| 2209 | { | ||
| 2210 | public: | ||
| 2211 | CD3DX12_BROADCASTING_LAUNCH_NODE_OVERRIDES( | ||
| 2212 | const Backreference &BackRef, | ||
| 2213 | LPCWSTR _Shader = nullptr) : | ||
| 2214 | CD3DX12_NODE_HELPER_BASE(BackRef), | ||
| 2215 | m_NodeOutputOverrides(&Overrides.pOutputOverrides, &Overrides.NumOutputOverrides) | ||
| 2216 | { | ||
| 2217 | Overrides = {}; | ||
| 2218 | D3D12_NODE *pNode = GetNode(); | ||
| 2219 | pNode->NodeType = D3D12_NODE_TYPE_SHADER; | ||
| 2220 | pNode->Shader.OverridesType = D3D12_NODE_OVERRIDES_TYPE_BROADCASTING_LAUNCH; | ||
| 2221 | pNode->Shader.pBroadcastingLaunchOverrides = &Overrides; | ||
| 2222 | Shader(_Shader); | ||
| 2223 | } | ||
| 2224 | void Shader(LPCWSTR _Shader) | ||
| 2225 | { | ||
| 2226 | GetNode()->Shader.Shader = m_Strings.LocalCopy(_Shader); | ||
| 2227 | } | ||
| 2228 | LPCWSTR GetShaderName() const { return GetNode()->Shader.Shader; } | ||
| 2229 | void LocalRootArgumentsTableIndex(UINT index) | ||
| 2230 | { | ||
| 2231 | m_UINTs.emplace_front(index); | ||
| 2232 | Overrides.pLocalRootArgumentsTableIndex = &m_UINTs.front(); | ||
| 2233 | } | ||
| 2234 | void ProgramEntry(BOOL bIsProgramEntry) | ||
| 2235 | { | ||
| 2236 | m_UINTs.emplace_front(bIsProgramEntry); | ||
| 2237 | Overrides.pProgramEntry = (BOOL*)&m_UINTs.front(); | ||
| 2238 | } | ||
| 2239 | void NewName(D3D12_NODE_ID NodeID) | ||
| 2240 | { | ||
| 2241 | m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); | ||
| 2242 | Overrides.pNewName = &m_NodeIDs.front(); | ||
| 2243 | } | ||
| 2244 | void ShareInputOf(D3D12_NODE_ID NodeID) | ||
| 2245 | { | ||
| 2246 | m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); | ||
| 2247 | Overrides.pShareInputOf = &m_NodeIDs.front(); | ||
| 2248 | } | ||
| 2249 | void DispatchGrid(UINT x, UINT y, UINT z) | ||
| 2250 | { | ||
| 2251 | m_UINT3s.emplace_front(UINT3{ x,y,z }); | ||
| 2252 | Overrides.pDispatchGrid = (UINT*)&m_UINT3s.front(); | ||
| 2253 | } | ||
| 2254 | void MaxDispatchGrid(UINT x, UINT y, UINT z) | ||
| 2255 | { | ||
| 2256 | m_UINT3s.emplace_front(UINT3{x,y,z}); | ||
| 2257 | Overrides.pMaxDispatchGrid = (UINT*)&m_UINT3s.front(); | ||
| 2258 | } | ||
| 2259 | CD3DX12_NODE_OUTPUT_OVERRIDES& NodeOutputOverrides() | ||
| 2260 | { | ||
| 2261 | return m_NodeOutputOverrides; | ||
| 2262 | } | ||
| 2263 | D3D12_BROADCASTING_LAUNCH_OVERRIDES Overrides; | ||
| 2264 | private: | ||
| 2265 | // Cached parameters | ||
| 2266 | std::forward_list<UINT> m_UINTs; | ||
| 2267 | struct UINT3 | ||
| 2268 | { | ||
| 2269 | UINT x; | ||
| 2270 | UINT y; | ||
| 2271 | UINT z; | ||
| 2272 | }; | ||
| 2273 | std::forward_list<UINT3> m_UINT3s; | ||
| 2274 | std::forward_list<D3D12_NODE_ID> m_NodeIDs; | ||
| 2275 | CD3DX12_NODE_OUTPUT_OVERRIDES m_NodeOutputOverrides; | ||
| 2276 | }; | ||
| 2277 | |||
| 2278 | //------------------------------------------------------------------------------------------------ | ||
| 2279 | // Use this class when defining a coalescing launch node where configuration parameters | ||
| 2280 | // need to be overridden. If overrides are not needed, just use CD3DX12_COMPUTE_SHADER_NODE | ||
| 2281 | class CD3DX12_COALESCING_LAUNCH_NODE_OVERRIDES | ||
| 2282 | : public CD3DX12_NODE_HELPER_BASE | ||
| 2283 | { | ||
| 2284 | public: | ||
| 2285 | CD3DX12_COALESCING_LAUNCH_NODE_OVERRIDES( | ||
| 2286 | const Backreference &BackRef, | ||
| 2287 | LPCWSTR _Shader = nullptr) : | ||
| 2288 | CD3DX12_NODE_HELPER_BASE(BackRef), | ||
| 2289 | m_NodeOutputOverrides(&Overrides.pOutputOverrides, &Overrides.NumOutputOverrides) | ||
| 2290 | { | ||
| 2291 | Overrides = {}; | ||
| 2292 | D3D12_NODE *pNode = GetNode(); | ||
| 2293 | pNode->NodeType = D3D12_NODE_TYPE_SHADER; | ||
| 2294 | pNode->Shader.OverridesType = D3D12_NODE_OVERRIDES_TYPE_COALESCING_LAUNCH; | ||
| 2295 | pNode->Shader.pCoalescingLaunchOverrides = &Overrides; | ||
| 2296 | Shader(_Shader); | ||
| 2297 | } | ||
| 2298 | void Shader(LPCWSTR _Shader) | ||
| 2299 | { | ||
| 2300 | GetNode()->Shader.Shader = m_Strings.LocalCopy(_Shader); | ||
| 2301 | } | ||
| 2302 | LPCWSTR GetShaderName() const { return GetNode()->Shader.Shader; } | ||
| 2303 | void LocalRootArgumentsTableIndex(UINT index) | ||
| 2304 | { | ||
| 2305 | m_UINTs.emplace_front(index); | ||
| 2306 | Overrides.pLocalRootArgumentsTableIndex = &m_UINTs.front(); | ||
| 2307 | } | ||
| 2308 | void ProgramEntry(BOOL bIsProgramEntry) | ||
| 2309 | { | ||
| 2310 | m_UINTs.emplace_front(bIsProgramEntry); | ||
| 2311 | Overrides.pProgramEntry = (BOOL*)&m_UINTs.front(); | ||
| 2312 | } | ||
| 2313 | void NewName(D3D12_NODE_ID NodeID) | ||
| 2314 | { | ||
| 2315 | m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); | ||
| 2316 | Overrides.pNewName = &m_NodeIDs.front(); | ||
| 2317 | } | ||
| 2318 | void ShareInputOf(D3D12_NODE_ID NodeID) | ||
| 2319 | { | ||
| 2320 | m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); | ||
| 2321 | Overrides.pShareInputOf = &m_NodeIDs.front(); | ||
| 2322 | } | ||
| 2323 | CD3DX12_NODE_OUTPUT_OVERRIDES& NodeOutputOverrides() | ||
| 2324 | { | ||
| 2325 | return m_NodeOutputOverrides; | ||
| 2326 | } | ||
| 2327 | D3D12_COALESCING_LAUNCH_OVERRIDES Overrides; | ||
| 2328 | private: | ||
| 2329 | // Cached parameters | ||
| 2330 | std::forward_list<UINT> m_UINTs; | ||
| 2331 | struct UINT3 | ||
| 2332 | { | ||
| 2333 | UINT x; | ||
| 2334 | UINT y; | ||
| 2335 | UINT z; | ||
| 2336 | }; | ||
| 2337 | std::forward_list<UINT3> m_UINT3s; | ||
| 2338 | std::forward_list<D3D12_NODE_ID> m_NodeIDs; | ||
| 2339 | CD3DX12_NODE_OUTPUT_OVERRIDES m_NodeOutputOverrides; | ||
| 2340 | }; | ||
| 2341 | |||
| 2342 | //------------------------------------------------------------------------------------------------ | ||
| 2343 | // Use this class when defining a thread launch node where configuration parameters | ||
| 2344 | // need to be overridden. If overrides are not needed, just use CD3DX12_COMPUTE_SHADER_NODE | ||
| 2345 | class CD3DX12_THREAD_LAUNCH_NODE_OVERRIDES | ||
| 2346 | : public CD3DX12_NODE_HELPER_BASE | ||
| 2347 | { | ||
| 2348 | public: | ||
| 2349 | CD3DX12_THREAD_LAUNCH_NODE_OVERRIDES( | ||
| 2350 | const Backreference &BackRef, | ||
| 2351 | LPCWSTR _Shader = nullptr) : | ||
| 2352 | CD3DX12_NODE_HELPER_BASE(BackRef), | ||
| 2353 | m_NodeOutputOverrides(&Overrides.pOutputOverrides, &Overrides.NumOutputOverrides) | ||
| 2354 | { | ||
| 2355 | Overrides = {}; | ||
| 2356 | D3D12_NODE *pNode = GetNode(); | ||
| 2357 | pNode->NodeType = D3D12_NODE_TYPE_SHADER; | ||
| 2358 | pNode->Shader.OverridesType = D3D12_NODE_OVERRIDES_TYPE_THREAD_LAUNCH; | ||
| 2359 | pNode->Shader.pThreadLaunchOverrides = &Overrides; | ||
| 2360 | Shader(_Shader); | ||
| 2361 | } | ||
| 2362 | void Shader(LPCWSTR _Shader) | ||
| 2363 | { | ||
| 2364 | GetNode()->Shader.Shader = m_Strings.LocalCopy(_Shader); | ||
| 2365 | } | ||
| 2366 | LPCWSTR GetShaderName() const { return GetNode()->Shader.Shader; } | ||
| 2367 | void LocalRootArgumentsTableIndex(UINT index) | ||
| 2368 | { | ||
| 2369 | m_UINTs.emplace_front(index); | ||
| 2370 | Overrides.pLocalRootArgumentsTableIndex = &m_UINTs.front(); | ||
| 2371 | } | ||
| 2372 | void ProgramEntry(BOOL bIsProgramEntry) | ||
| 2373 | { | ||
| 2374 | m_UINTs.emplace_front(bIsProgramEntry); | ||
| 2375 | Overrides.pProgramEntry = (BOOL*)&m_UINTs.front(); | ||
| 2376 | } | ||
| 2377 | void NewName(D3D12_NODE_ID NodeID) | ||
| 2378 | { | ||
| 2379 | m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); | ||
| 2380 | Overrides.pNewName = &m_NodeIDs.front(); | ||
| 2381 | } | ||
| 2382 | void ShareInputOf(D3D12_NODE_ID NodeID) | ||
| 2383 | { | ||
| 2384 | m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); | ||
| 2385 | Overrides.pShareInputOf = &m_NodeIDs.front(); | ||
| 2386 | } | ||
| 2387 | CD3DX12_NODE_OUTPUT_OVERRIDES& NodeOutputOverrides() | ||
| 2388 | { | ||
| 2389 | return m_NodeOutputOverrides; | ||
| 2390 | } | ||
| 2391 | D3D12_THREAD_LAUNCH_OVERRIDES Overrides; | ||
| 2392 | private: | ||
| 2393 | // Cached parameters | ||
| 2394 | std::forward_list<UINT> m_UINTs; | ||
| 2395 | std::forward_list<D3D12_NODE_ID> m_NodeIDs; | ||
| 2396 | CD3DX12_NODE_OUTPUT_OVERRIDES m_NodeOutputOverrides; | ||
| 2397 | }; | ||
| 2398 | |||
| 2399 | //------------------------------------------------------------------------------------------------ | ||
| 2400 | // Use this class when defining a node where configuration parameters | ||
| 2401 | // need to be overridden for parameters that are common to all launch node types. | ||
| 2402 | // This option is a convenience if you don't want to determine what the launch mode is | ||
| 2403 | // and just want to override a setting that isn't specific to launch mode. | ||
| 2404 | // If overrides are not needed, just use CD3DX12_COMPUTE_SHADER_NODE | ||
| 2405 | class CD3DX12_COMMON_COMPUTE_NODE_OVERRIDES | ||
| 2406 | : public CD3DX12_NODE_HELPER_BASE | ||
| 2407 | { | ||
| 2408 | public: | ||
| 2409 | CD3DX12_COMMON_COMPUTE_NODE_OVERRIDES( | ||
| 2410 | const Backreference &BackRef, | ||
| 2411 | LPCWSTR _Shader = nullptr) : | ||
| 2412 | CD3DX12_NODE_HELPER_BASE(BackRef), | ||
| 2413 | m_NodeOutputOverrides(&Overrides.pOutputOverrides, &Overrides.NumOutputOverrides) | ||
| 2414 | { | ||
| 2415 | Overrides = {}; | ||
| 2416 | D3D12_NODE *pNode = GetNode(); | ||
| 2417 | pNode->NodeType = D3D12_NODE_TYPE_SHADER; | ||
| 2418 | pNode->Shader.OverridesType = D3D12_NODE_OVERRIDES_TYPE_COMMON_COMPUTE; | ||
| 2419 | pNode->Shader.pThreadLaunchOverrides = &Overrides; | ||
| 2420 | Shader(_Shader); | ||
| 2421 | } | ||
| 2422 | void Shader(LPCWSTR _Shader) | ||
| 2423 | { | ||
| 2424 | GetNode()->Shader.Shader = m_Strings.LocalCopy(_Shader); | ||
| 2425 | } | ||
| 2426 | LPCWSTR GetShaderName() const { return GetNode()->Shader.Shader; } | ||
| 2427 | void LocalRootArgumentsTableIndex(UINT index) | ||
| 2428 | { | ||
| 2429 | m_UINTs.emplace_front(index); | ||
| 2430 | Overrides.pLocalRootArgumentsTableIndex = &m_UINTs.front(); | ||
| 2431 | } | ||
| 2432 | void ProgramEntry(BOOL bIsProgramEntry) | ||
| 2433 | { | ||
| 2434 | m_UINTs.emplace_front(bIsProgramEntry); | ||
| 2435 | Overrides.pProgramEntry = (BOOL*)&m_UINTs.front(); | ||
| 2436 | } | ||
| 2437 | void NewName(D3D12_NODE_ID NodeID) | ||
| 2438 | { | ||
| 2439 | m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); | ||
| 2440 | Overrides.pNewName = &m_NodeIDs.front(); | ||
| 2441 | } | ||
| 2442 | void ShareInputOf(D3D12_NODE_ID NodeID) | ||
| 2443 | { | ||
| 2444 | m_NodeIDs.emplace_front(D3D12_NODE_ID{ m_Strings.LocalCopy(NodeID.Name),NodeID.ArrayIndex }); | ||
| 2445 | Overrides.pShareInputOf = &m_NodeIDs.front(); | ||
| 2446 | } | ||
| 2447 | CD3DX12_NODE_OUTPUT_OVERRIDES& NodeOutputOverrides() | ||
| 2448 | { | ||
| 2449 | return m_NodeOutputOverrides; | ||
| 2450 | } | ||
| 2451 | D3D12_THREAD_LAUNCH_OVERRIDES Overrides; | ||
| 2452 | private: | ||
| 2453 | // Cached parameters | ||
| 2454 | std::forward_list<UINT> m_UINTs; | ||
| 2455 | std::forward_list<D3D12_NODE_ID> m_NodeIDs; | ||
| 2456 | CD3DX12_NODE_OUTPUT_OVERRIDES m_NodeOutputOverrides; | ||
| 2457 | }; | ||
| 2458 | |||
| 2459 | //------------------------------------------------------------------------------------------------ | ||
| 2460 | class CD3DX12_WORK_GRAPH_SUBOBJECT | ||
| 2461 | : public CD3DX12_STATE_OBJECT_DESC::SUBOBJECT_HELPER_BASE | ||
| 2462 | { | ||
| 2463 | public: | ||
| 2464 | CD3DX12_WORK_GRAPH_SUBOBJECT() noexcept | ||
| 2465 | { | ||
| 2466 | Init(); | ||
| 2467 | } | ||
| 2468 | CD3DX12_WORK_GRAPH_SUBOBJECT(CD3DX12_STATE_OBJECT_DESC& ContainingStateObject) | ||
| 2469 | { | ||
| 2470 | Init(); | ||
| 2471 | AddToStateObject(ContainingStateObject); | ||
| 2472 | } | ||
| 2473 | D3D12_STATE_SUBOBJECT_TYPE Type() const noexcept override | ||
| 2474 | { | ||
| 2475 | return D3D12_STATE_SUBOBJECT_TYPE_WORK_GRAPH; | ||
| 2476 | } | ||
| 2477 | void IncludeAllAvailableNodes() | ||
| 2478 | { | ||
| 2479 | m_Desc.Flags |= D3D12_WORK_GRAPH_FLAG_INCLUDE_ALL_AVAILABLE_NODES; | ||
| 2480 | } | ||
| 2481 | |||
| 2482 | |||
| 2483 | void SetProgramName(LPCWSTR ProgramName) | ||
| 2484 | { | ||
| 2485 | m_Desc.ProgramName = m_Strings.LocalCopy(ProgramName); | ||
| 2486 | } | ||
| 2487 | void AddEntrypoint(D3D12_NODE_ID Entrypoint) | ||
| 2488 | { | ||
| 2489 | m_Entrypoints.emplace_back(D3D12_NODE_ID{ m_Strings.LocalCopy(Entrypoint.Name),Entrypoint.ArrayIndex }); | ||
| 2490 | m_Desc.NumEntrypoints++; | ||
| 2491 | m_Desc.pEntrypoints = m_Entrypoints.data(); | ||
| 2492 | } | ||
| 2493 | |||
| 2494 | template<typename T> | ||
| 2495 | T* CreateNode() | ||
| 2496 | { | ||
| 2497 | m_NodeDescs.push_back({}); | ||
| 2498 | m_Desc.NumExplicitlyDefinedNodes++; | ||
| 2499 | m_Desc.pExplicitlyDefinedNodes = m_NodeDescs.data(); | ||
| 2500 | T* pNodeHelper = new T({this, (UINT)m_NodeDescs.size() - 1}); | ||
| 2501 | m_OwnedNodeHelpers.emplace_back(pNodeHelper); | ||
| 2502 | return pNodeHelper; | ||
| 2503 | } | ||
| 2504 | CD3DX12_SHADER_NODE* CreateShaderNode(LPCWSTR Shader = nullptr) | ||
| 2505 | { | ||
| 2506 | auto pNode = CreateNode<CD3DX12_SHADER_NODE>(); | ||
| 2507 | pNode->Shader(Shader); | ||
| 2508 | return pNode; | ||
| 2509 | } | ||
| 2510 | CD3DX12_BROADCASTING_LAUNCH_NODE_OVERRIDES* CreateBroadcastingLaunchNodeOverrides(LPCWSTR Shader = nullptr) | ||
| 2511 | { | ||
| 2512 | auto pNode = CreateNode<CD3DX12_BROADCASTING_LAUNCH_NODE_OVERRIDES>(); | ||
| 2513 | pNode->Shader(Shader); | ||
| 2514 | return pNode; | ||
| 2515 | } | ||
| 2516 | CD3DX12_COALESCING_LAUNCH_NODE_OVERRIDES* CreateCoalescingLaunchNodeOverrides(LPCWSTR Shader = nullptr) | ||
| 2517 | { | ||
| 2518 | auto pNode = CreateNode<CD3DX12_COALESCING_LAUNCH_NODE_OVERRIDES>(); | ||
| 2519 | pNode->Shader(Shader); | ||
| 2520 | return pNode; | ||
| 2521 | } | ||
| 2522 | CD3DX12_THREAD_LAUNCH_NODE_OVERRIDES* CreateThreadLaunchNodeOverrides(LPCWSTR Shader = nullptr) | ||
| 2523 | { | ||
| 2524 | auto pNode = CreateNode<CD3DX12_THREAD_LAUNCH_NODE_OVERRIDES>(); | ||
| 2525 | pNode->Shader(Shader); | ||
| 2526 | return pNode; | ||
| 2527 | } | ||
| 2528 | CD3DX12_COMMON_COMPUTE_NODE_OVERRIDES* CreateCommonComputeNodeOverrides(LPCWSTR Shader = nullptr) | ||
| 2529 | { | ||
| 2530 | auto pNode = CreateNode<CD3DX12_COMMON_COMPUTE_NODE_OVERRIDES>(); | ||
| 2531 | pNode->Shader(Shader); | ||
| 2532 | return pNode; | ||
| 2533 | } | ||
| 2534 | #endif // D3D12_SDK_VERSION >= 612 | ||
| 2535 | |||
| 2536 | |||
| 2537 | #if defined(D3D12_SDK_VERSION) && (D3D12_SDK_VERSION >= 612) | ||
| 2538 | |||
| 2539 | operator const D3D12_WORK_GRAPH_DESC& () noexcept | ||
| 2540 | { | ||
| 2541 | return m_Desc; | ||
| 2542 | } | ||
| 2543 | private: | ||
| 2544 | void Init() noexcept | ||
| 2545 | { | ||
| 2546 | SUBOBJECT_HELPER_BASE::Init(); | ||
| 2547 | m_Desc = {}; | ||
| 2548 | m_Entrypoints.clear(); | ||
| 2549 | m_NodeDescs.clear(); | ||
| 2550 | } | ||
| 2551 | void* Data() noexcept override { return &m_Desc; } | ||
| 2552 | D3D12_WORK_GRAPH_DESC m_Desc; | ||
| 2553 | std::vector<D3D12_NODE_ID> m_Entrypoints; | ||
| 2554 | std::vector<D3D12_NODE> m_NodeDescs; | ||
| 2555 | CD3DX12_STATE_OBJECT_DESC::StringContainer<LPCWSTR, std::wstring> m_Strings; | ||
| 2556 | std::vector<std::unique_ptr<const CD3DX12_NODE_HELPER_BASE>> m_OwnedNodeHelpers; | ||
| 2557 | friend class CD3DX12_NODE_HELPER_BASE; | ||
| 2558 | }; | ||
| 2559 | |||
| 2560 | inline D3D12_NODE * CD3DX12_NODE_HELPER_BASE::GetNode() const | ||
| 2561 | { | ||
| 2562 | return &m_BackRef.m_pGraph->m_NodeDescs[m_BackRef.m_NodeIndex]; | ||
| 2563 | } | ||
| 2564 | #endif // D3D12_SDK_VERSION >= 612 | ||
| 2565 | |||
| 2566 | #undef D3DX12_COM_PTR | ||
| 2567 | #undef D3DX12_COM_PTR_GET | ||
| 2568 | #undef D3DX12_COM_PTR_ADDRESSOF | ||
| 2569 | |||
| 2570 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/dxcore.h b/contrib/DirectX-Headers-1.618.2/include/directx/dxcore.h new file mode 100644 index 0000000..4244eaa --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/dxcore.h | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | /************************************************************ | ||
| 2 | * * | ||
| 3 | * Copyright (c) Microsoft Corporation. * | ||
| 4 | * Licensed under the MIT license. * | ||
| 5 | * * | ||
| 6 | ************************************************************/ | ||
| 7 | |||
| 8 | #ifndef _DXCOREEXTMODULE_H_ | ||
| 9 | #define _DXCOREEXTMODULE_H_ | ||
| 10 | |||
| 11 | #include <winapifamily.h> | ||
| 12 | #include "dxcore_interface.h" | ||
| 13 | |||
| 14 | #pragma region Application Family or OneCore Family | ||
| 15 | #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) | ||
| 16 | |||
| 17 | #if (_WIN32_WINNT >= _WIN32_WINNT_WIN10) | ||
| 18 | |||
| 19 | STDAPI | ||
| 20 | DXCoreCreateAdapterFactory( | ||
| 21 | REFIID riid, | ||
| 22 | _COM_Outptr_ void** ppvFactory | ||
| 23 | ); | ||
| 24 | |||
| 25 | template <class T> | ||
| 26 | HRESULT | ||
| 27 | DXCoreCreateAdapterFactory( | ||
| 28 | _COM_Outptr_ T** ppvFactory | ||
| 29 | ) | ||
| 30 | { | ||
| 31 | return DXCoreCreateAdapterFactory(IID_PPV_ARGS(ppvFactory)); | ||
| 32 | } | ||
| 33 | |||
| 34 | #endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN10) | ||
| 35 | |||
| 36 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */ | ||
| 37 | #pragma endregion | ||
| 38 | |||
| 39 | #endif // _DXCOREEXTMODULE_H_ | ||
| 40 | |||
| 41 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/dxcore_interface.h b/contrib/DirectX-Headers-1.618.2/include/directx/dxcore_interface.h new file mode 100644 index 0000000..318208e --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/dxcore_interface.h | |||
| @@ -0,0 +1,497 @@ | |||
| 1 | // | ||
| 2 | // DXCore Interface | ||
| 3 | // Copyright (C) Microsoft Corporation. | ||
| 4 | // Licensed under the MIT license. | ||
| 5 | // | ||
| 6 | |||
| 7 | #ifndef __dxcore_interface_h__ | ||
| 8 | #define __dxcore_interface_h__ | ||
| 9 | |||
| 10 | #ifndef COM_NO_WINDOWS_H | ||
| 11 | #include "windows.h" | ||
| 12 | #include "ole2.h" | ||
| 13 | #endif /*COM_NO_WINDOWS_H*/ | ||
| 14 | |||
| 15 | #include <stdint.h> | ||
| 16 | |||
| 17 | #ifdef __cplusplus | ||
| 18 | |||
| 19 | #define _FACDXCORE 0x880 | ||
| 20 | #define MAKE_DXCORE_HRESULT( code ) MAKE_HRESULT( 1, _FACDXCORE, code ) | ||
| 21 | |||
| 22 | enum class DXCoreAdapterProperty : uint32_t | ||
| 23 | { | ||
| 24 | InstanceLuid = 0, | ||
| 25 | DriverVersion = 1, | ||
| 26 | DriverDescription = 2, | ||
| 27 | HardwareID = 3, // Use HardwareIDParts instead, if available. | ||
| 28 | KmdModelVersion = 4, | ||
| 29 | ComputePreemptionGranularity = 5, | ||
| 30 | GraphicsPreemptionGranularity = 6, | ||
| 31 | DedicatedAdapterMemory = 7, | ||
| 32 | DedicatedSystemMemory = 8, | ||
| 33 | SharedSystemMemory = 9, | ||
| 34 | AcgCompatible = 10, | ||
| 35 | IsHardware = 11, | ||
| 36 | IsIntegrated = 12, | ||
| 37 | IsDetachable = 13, | ||
| 38 | HardwareIDParts = 14, | ||
| 39 | PhysicalAdapterCount = 15, | ||
| 40 | AdapterEngineCount = 16, | ||
| 41 | AdapterEngineName = 17, | ||
| 42 | }; | ||
| 43 | |||
| 44 | enum class DXCoreAdapterState : uint32_t | ||
| 45 | { | ||
| 46 | IsDriverUpdateInProgress = 0, | ||
| 47 | AdapterMemoryBudget = 1, | ||
| 48 | AdapterMemoryUsageBytes = 2, | ||
| 49 | AdapterMemoryUsageByProcessBytes = 3, | ||
| 50 | AdapterEngineRunningTimeMicroseconds = 4, | ||
| 51 | AdapterEngineRunningTimeByProcessMicroseconds = 5, | ||
| 52 | AdapterTemperatureCelsius = 6, | ||
| 53 | AdapterInUseProcessCount = 7, | ||
| 54 | AdapterInUseProcessSet = 8, | ||
| 55 | AdapterEngineFrequencyHertz = 9, | ||
| 56 | AdapterMemoryFrequencyHertz = 10 | ||
| 57 | }; | ||
| 58 | |||
| 59 | enum class DXCoreSegmentGroup : uint32_t | ||
| 60 | { | ||
| 61 | Local = 0, | ||
| 62 | NonLocal = 1 | ||
| 63 | }; | ||
| 64 | |||
| 65 | enum class DXCoreNotificationType : uint32_t | ||
| 66 | { | ||
| 67 | AdapterListStale = 0, | ||
| 68 | AdapterNoLongerValid = 1, | ||
| 69 | AdapterBudgetChange = 2, | ||
| 70 | AdapterHardwareContentProtectionTeardown = 3 | ||
| 71 | }; | ||
| 72 | |||
| 73 | enum class DXCoreAdapterPreference : uint32_t | ||
| 74 | { | ||
| 75 | Hardware = 0, | ||
| 76 | MinimumPower = 1, | ||
| 77 | HighPerformance = 2 | ||
| 78 | }; | ||
| 79 | |||
| 80 | enum class DXCoreWorkload : uint32_t | ||
| 81 | { | ||
| 82 | Graphics = 0, | ||
| 83 | Compute = 1, | ||
| 84 | Media = 2, | ||
| 85 | MachineLearning = 3, | ||
| 86 | }; | ||
| 87 | |||
| 88 | enum class DXCoreRuntimeFilterFlags : uint32_t | ||
| 89 | { | ||
| 90 | None = 0x0, | ||
| 91 | D3D11 = 0x1, | ||
| 92 | D3D12 = 0x2 | ||
| 93 | }; | ||
| 94 | |||
| 95 | DEFINE_ENUM_FLAG_OPERATORS(DXCoreRuntimeFilterFlags) | ||
| 96 | |||
| 97 | enum class DXCoreHardwareTypeFilterFlags : uint32_t | ||
| 98 | { | ||
| 99 | None = 0x0, | ||
| 100 | GPU = 0x1, | ||
| 101 | ComputeAccelerator = 0x2, | ||
| 102 | NPU = 0x4, | ||
| 103 | MediaAccelerator = 0x8 | ||
| 104 | }; | ||
| 105 | |||
| 106 | DEFINE_ENUM_FLAG_OPERATORS(DXCoreHardwareTypeFilterFlags) | ||
| 107 | |||
| 108 | struct DXCoreHardwareID | ||
| 109 | { | ||
| 110 | uint32_t vendorID; | ||
| 111 | uint32_t deviceID; | ||
| 112 | uint32_t subSysID; | ||
| 113 | uint32_t revision; | ||
| 114 | }; | ||
| 115 | |||
| 116 | struct DXCoreHardwareIDParts | ||
| 117 | { | ||
| 118 | uint32_t vendorID; | ||
| 119 | uint32_t deviceID; | ||
| 120 | uint32_t subSystemID; | ||
| 121 | uint32_t subVendorID; | ||
| 122 | uint32_t revisionID; | ||
| 123 | }; | ||
| 124 | |||
| 125 | struct DXCoreAdapterMemoryBudgetNodeSegmentGroup | ||
| 126 | { | ||
| 127 | uint32_t nodeIndex; | ||
| 128 | DXCoreSegmentGroup segmentGroup; | ||
| 129 | }; | ||
| 130 | |||
| 131 | struct DXCoreAdapterMemoryBudget | ||
| 132 | { | ||
| 133 | uint64_t budget; | ||
| 134 | uint64_t currentUsage; | ||
| 135 | uint64_t availableForReservation; | ||
| 136 | uint64_t currentReservation; | ||
| 137 | }; | ||
| 138 | |||
| 139 | struct DXCoreAdapterEngineIndex | ||
| 140 | { | ||
| 141 | uint32_t physicalAdapterIndex; | ||
| 142 | uint32_t engineIndex; | ||
| 143 | }; | ||
| 144 | |||
| 145 | struct DXCoreEngineQueryInput | ||
| 146 | { | ||
| 147 | DXCoreAdapterEngineIndex adapterEngineIndex; | ||
| 148 | uint32_t processId; | ||
| 149 | }; | ||
| 150 | |||
| 151 | struct DXCoreEngineQueryOutput | ||
| 152 | { | ||
| 153 | uint64_t runningTime; | ||
| 154 | bool processQuerySucceeded; | ||
| 155 | }; | ||
| 156 | |||
| 157 | enum class DXCoreMemoryType : uint32_t | ||
| 158 | { | ||
| 159 | Dedicated = 0, | ||
| 160 | Shared = 1 | ||
| 161 | }; | ||
| 162 | |||
| 163 | struct DXCoreMemoryUsage | ||
| 164 | { | ||
| 165 | uint64_t committed; | ||
| 166 | uint64_t resident; | ||
| 167 | }; | ||
| 168 | |||
| 169 | struct DXCoreMemoryQueryInput | ||
| 170 | { | ||
| 171 | uint32_t physicalAdapterIndex; | ||
| 172 | DXCoreMemoryType memoryType; | ||
| 173 | }; | ||
| 174 | |||
| 175 | struct DXCoreProcessMemoryQueryInput | ||
| 176 | { | ||
| 177 | uint32_t physicalAdapterIndex; | ||
| 178 | DXCoreMemoryType memoryType; | ||
| 179 | uint32_t processId; | ||
| 180 | }; | ||
| 181 | |||
| 182 | struct DXCoreProcessMemoryQueryOutput | ||
| 183 | { | ||
| 184 | DXCoreMemoryUsage memoryUsage; | ||
| 185 | bool processQuerySucceeded; | ||
| 186 | }; | ||
| 187 | |||
| 188 | struct DXCoreAdapterProcessSetQueryInput | ||
| 189 | { | ||
| 190 | uint32_t arraySize; | ||
| 191 | _Field_size_(arraySize) uint32_t* processIds; | ||
| 192 | }; | ||
| 193 | |||
| 194 | struct DXCoreAdapterProcessSetQueryOutput | ||
| 195 | { | ||
| 196 | uint32_t processesWritten; | ||
| 197 | uint32_t processesTotal; | ||
| 198 | }; | ||
| 199 | |||
| 200 | struct DXCoreEngineNamePropertyInput | ||
| 201 | { | ||
| 202 | DXCoreAdapterEngineIndex adapterEngineIndex; | ||
| 203 | uint32_t engineNameLength; | ||
| 204 | _Field_size_(engineNameLength) wchar_t *engineName; | ||
| 205 | }; | ||
| 206 | |||
| 207 | struct DXCoreEngineNamePropertyOutput | ||
| 208 | { | ||
| 209 | uint32_t engineNameLength; | ||
| 210 | }; | ||
| 211 | |||
| 212 | struct DXCoreFrequencyQueryOutput | ||
| 213 | { | ||
| 214 | uint64_t frequency; | ||
| 215 | uint64_t maxFrequency; | ||
| 216 | uint64_t maxOverclockedFrequency; | ||
| 217 | }; | ||
| 218 | |||
| 219 | typedef void (STDMETHODCALLTYPE *PFN_DXCORE_NOTIFICATION_CALLBACK)( | ||
| 220 | DXCoreNotificationType notificationType, | ||
| 221 | _In_ IUnknown *object, | ||
| 222 | _In_opt_ void *context); | ||
| 223 | |||
| 224 | static_assert(sizeof(bool) == 1, "bool assumed as one byte"); | ||
| 225 | |||
| 226 | DEFINE_GUID(IID_IDXCoreAdapterFactory, 0x78ee5945, 0xc36e, 0x4b13, 0xa6, 0x69, 0x00, 0x5d, 0xd1, 0x1c, 0x0f, 0x06); | ||
| 227 | DEFINE_GUID(IID_IDXCoreAdapterFactory1, 0xd5682e19, 0x6d21, 0x401c, 0x82, 0x7a, 0x9a, 0x51, 0xa4, 0xea, 0x35, 0xd7); | ||
| 228 | DEFINE_GUID(IID_IDXCoreAdapterList, 0x526c7776, 0x40e9, 0x459b, 0xb7, 0x11, 0xf3, 0x2a, 0xd7, 0x6d, 0xfc, 0x28); | ||
| 229 | DEFINE_GUID(IID_IDXCoreAdapter, 0xf0db4c7f, 0xfe5a, 0x42a2, 0xbd, 0x62, 0xf2, 0xa6, 0xcf, 0x6f, 0xc8, 0x3e); | ||
| 230 | DEFINE_GUID(IID_IDXCoreAdapter1, 0xa0783366, 0xcfa3, 0x43be, 0x9d, 0x79, 0x55, 0xb2, 0xda, 0x97, 0xc6, 0x3c); | ||
| 231 | |||
| 232 | DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D11_GRAPHICS, 0x8c47866b, 0x7583, 0x450d, 0xf0, 0xf0, 0x6b, 0xad, 0xa8, 0x95, 0xaf, 0x4b); | ||
| 233 | DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D12_GRAPHICS, 0x0c9ece4d, 0x2f6e, 0x4f01, 0x8c, 0x96, 0xe8, 0x9e, 0x33, 0x1b, 0x47, 0xb1); | ||
| 234 | DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D12_CORE_COMPUTE, 0x248e2800, 0xa793, 0x4724, 0xab, 0xaa, 0x23, 0xa6, 0xde, 0x1b, 0xe0, 0x90); | ||
| 235 | DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D12_GENERIC_ML, 0xb71b0d41, 0x1088, 0x422f, 0xa2, 0x7c, 0x2, 0x50, 0xb7, 0xd3, 0xa9, 0x88); | ||
| 236 | DEFINE_GUID(DXCORE_ADAPTER_ATTRIBUTE_D3D12_GENERIC_MEDIA, 0x8eb2c848, 0x82f6, 0x4b49, 0xaa, 0x87, 0xae, 0xcf, 0xcf, 0x1, 0x74, 0xc6); | ||
| 237 | |||
| 238 | DEFINE_GUID(DXCORE_HARDWARE_TYPE_ATTRIBUTE_GPU, 0xb69eb219, 0x3ded, 0x4464, 0x97, 0x9f, 0xa0, 0xb, 0xd4, 0x68, 0x70, 0x6); | ||
| 239 | DEFINE_GUID(DXCORE_HARDWARE_TYPE_ATTRIBUTE_COMPUTE_ACCELERATOR, 0xe0b195da, 0x58ef, 0x4a22, 0x90, 0xf1, 0x1f, 0x28, 0x16, 0x9c, 0xab, 0x8d); | ||
| 240 | DEFINE_GUID(DXCORE_HARDWARE_TYPE_ATTRIBUTE_NPU, 0xd46140c4, 0xadd7, 0x451b, 0x9e, 0x56, 0x6, 0xfe, 0x8c, 0x3b, 0x58, 0xed); | ||
| 241 | DEFINE_GUID(DXCORE_HARDWARE_TYPE_ATTRIBUTE_MEDIA_ACCELERATOR, 0x66bdb96a, 0x50b, 0x44c7, 0xa4, 0xfd, 0xd1, 0x44, 0xce, 0xa, 0xb4, 0x43); | ||
| 242 | |||
| 243 | /* interface IDXCoreAdapter */ | ||
| 244 | MIDL_INTERFACE("f0db4c7f-fe5a-42a2-bd62-f2a6cf6fc83e") | ||
| 245 | IDXCoreAdapter : public IUnknown | ||
| 246 | { | ||
| 247 | public: | ||
| 248 | virtual bool STDMETHODCALLTYPE IsValid() = 0; | ||
| 249 | |||
| 250 | virtual bool STDMETHODCALLTYPE IsAttributeSupported( | ||
| 251 | REFGUID attributeGUID) = 0; | ||
| 252 | |||
| 253 | virtual bool STDMETHODCALLTYPE IsPropertySupported( | ||
| 254 | DXCoreAdapterProperty property) = 0; | ||
| 255 | |||
| 256 | virtual HRESULT STDMETHODCALLTYPE GetProperty( | ||
| 257 | DXCoreAdapterProperty property, | ||
| 258 | size_t bufferSize, | ||
| 259 | _Out_writes_bytes_(bufferSize) void *propertyData) = 0; | ||
| 260 | |||
| 261 | template <class T> | ||
| 262 | HRESULT GetProperty( | ||
| 263 | DXCoreAdapterProperty property, | ||
| 264 | _Out_writes_bytes_(sizeof(T)) T *propertyData) | ||
| 265 | { | ||
| 266 | return GetProperty(property, | ||
| 267 | sizeof(T), | ||
| 268 | (void*)propertyData); | ||
| 269 | } | ||
| 270 | |||
| 271 | virtual HRESULT STDMETHODCALLTYPE GetPropertySize( | ||
| 272 | DXCoreAdapterProperty property, | ||
| 273 | _Out_ size_t *bufferSize) = 0; | ||
| 274 | |||
| 275 | virtual bool STDMETHODCALLTYPE IsQueryStateSupported( | ||
| 276 | DXCoreAdapterState property) = 0; | ||
| 277 | |||
| 278 | virtual HRESULT STDMETHODCALLTYPE QueryState( | ||
| 279 | DXCoreAdapterState state, | ||
| 280 | size_t inputStateDetailsSize, | ||
| 281 | _In_reads_bytes_opt_(inputStateDetailsSize) const void *inputStateDetails, | ||
| 282 | size_t outputBufferSize, | ||
| 283 | _Out_writes_bytes_(outputBufferSize) void *outputBuffer) = 0; | ||
| 284 | |||
| 285 | template <class T1, class T2> | ||
| 286 | HRESULT QueryState( | ||
| 287 | DXCoreAdapterState state, | ||
| 288 | _In_reads_bytes_opt_(sizeof(T1)) const T1 *inputStateDetails, | ||
| 289 | _Out_writes_bytes_(sizeof(T2)) T2 *outputBuffer) | ||
| 290 | { | ||
| 291 | return QueryState(state, | ||
| 292 | sizeof(T1), | ||
| 293 | (const void*)inputStateDetails, | ||
| 294 | sizeof(T2), | ||
| 295 | (void*)outputBuffer); | ||
| 296 | } | ||
| 297 | |||
| 298 | template <class T> | ||
| 299 | HRESULT QueryState( | ||
| 300 | DXCoreAdapterState state, | ||
| 301 | _Out_writes_bytes_(sizeof(T)) T *outputBuffer) | ||
| 302 | { | ||
| 303 | return QueryState(state, | ||
| 304 | 0, | ||
| 305 | nullptr, | ||
| 306 | sizeof(T), | ||
| 307 | (void*)outputBuffer); | ||
| 308 | } | ||
| 309 | |||
| 310 | virtual bool STDMETHODCALLTYPE IsSetStateSupported( | ||
| 311 | DXCoreAdapterState property) = 0; | ||
| 312 | |||
| 313 | virtual HRESULT STDMETHODCALLTYPE SetState( | ||
| 314 | DXCoreAdapterState state, | ||
| 315 | size_t inputStateDetailsSize, | ||
| 316 | _In_reads_bytes_opt_(inputStateDetailsSize) const void *inputStateDetails, | ||
| 317 | size_t inputDataSize, | ||
| 318 | _In_reads_bytes_(inputDataSize) const void *inputData) = 0; | ||
| 319 | |||
| 320 | template <class T1, class T2> | ||
| 321 | HRESULT SetState( | ||
| 322 | DXCoreAdapterState state, | ||
| 323 | const T1 *inputStateDetails, | ||
| 324 | const T2 *inputData) | ||
| 325 | { | ||
| 326 | return SetState(state, | ||
| 327 | sizeof(T1), | ||
| 328 | (const void*)inputStateDetails, | ||
| 329 | sizeof(T2), | ||
| 330 | (const void*)inputData); | ||
| 331 | } | ||
| 332 | |||
| 333 | virtual HRESULT STDMETHODCALLTYPE GetFactory( | ||
| 334 | REFIID riid, | ||
| 335 | _COM_Outptr_ void** ppvFactory | ||
| 336 | ) = 0; | ||
| 337 | |||
| 338 | template <class T> | ||
| 339 | HRESULT GetFactory( | ||
| 340 | _COM_Outptr_ T** ppvFactory | ||
| 341 | ) | ||
| 342 | { | ||
| 343 | return GetFactory(IID_PPV_ARGS(ppvFactory)); | ||
| 344 | } | ||
| 345 | }; | ||
| 346 | |||
| 347 | /* interface IDXCoreAdapter1 */ | ||
| 348 | MIDL_INTERFACE("a0783366-cfa3-43be-9d79-55b2da97c63c") | ||
| 349 | IDXCoreAdapter1 : public IDXCoreAdapter | ||
| 350 | { | ||
| 351 | public: | ||
| 352 | virtual HRESULT STDMETHODCALLTYPE GetPropertyWithInput( | ||
| 353 | DXCoreAdapterProperty property, | ||
| 354 | size_t inputPropertyDetailsSize, | ||
| 355 | _In_reads_bytes_opt_(inputPropertyDetailsSize) const void *inputPropertyDetails, | ||
| 356 | size_t outputBufferSize, | ||
| 357 | _Out_writes_bytes_(outputBufferSize) void *outputBuffer) = 0; | ||
| 358 | |||
| 359 | template <class T1, class T2> | ||
| 360 | HRESULT GetPropertyWithInput( | ||
| 361 | DXCoreAdapterProperty property, | ||
| 362 | _In_reads_bytes_opt_(sizeof(T1)) const T1 *inputPropertyDetails, | ||
| 363 | _Out_writes_bytes_(sizeof(T2)) T2 *outputBuffer) | ||
| 364 | { | ||
| 365 | return GetPropertyWithInput(property, | ||
| 366 | sizeof(T1), | ||
| 367 | (const void*)inputPropertyDetails, | ||
| 368 | sizeof(T2), | ||
| 369 | (void*)outputBuffer); | ||
| 370 | } | ||
| 371 | }; | ||
| 372 | |||
| 373 | /* interface IDXCoreAdapterList */ | ||
| 374 | MIDL_INTERFACE("526c7776-40e9-459b-b711-f32ad76dfc28") | ||
| 375 | IDXCoreAdapterList : public IUnknown | ||
| 376 | { | ||
| 377 | public: | ||
| 378 | virtual HRESULT STDMETHODCALLTYPE GetAdapter( | ||
| 379 | uint32_t index, | ||
| 380 | REFIID riid, | ||
| 381 | _COM_Outptr_ void **ppvAdapter) = 0; | ||
| 382 | |||
| 383 | template<class T> | ||
| 384 | HRESULT STDMETHODCALLTYPE GetAdapter( | ||
| 385 | uint32_t index, | ||
| 386 | _COM_Outptr_ T **ppvAdapter) | ||
| 387 | { | ||
| 388 | return GetAdapter(index, | ||
| 389 | IID_PPV_ARGS(ppvAdapter)); | ||
| 390 | } | ||
| 391 | |||
| 392 | virtual uint32_t STDMETHODCALLTYPE GetAdapterCount() = 0; | ||
| 393 | |||
| 394 | virtual bool STDMETHODCALLTYPE IsStale() = 0; | ||
| 395 | |||
| 396 | virtual HRESULT STDMETHODCALLTYPE GetFactory( | ||
| 397 | REFIID riid, | ||
| 398 | _COM_Outptr_ void** ppvFactory | ||
| 399 | ) = 0; | ||
| 400 | |||
| 401 | template <class T> | ||
| 402 | HRESULT GetFactory( | ||
| 403 | _COM_Outptr_ T** ppvFactory | ||
| 404 | ) | ||
| 405 | { | ||
| 406 | return GetFactory(IID_PPV_ARGS(ppvFactory)); | ||
| 407 | } | ||
| 408 | |||
| 409 | virtual HRESULT STDMETHODCALLTYPE Sort( | ||
| 410 | uint32_t numPreferences, | ||
| 411 | _In_reads_(numPreferences) const DXCoreAdapterPreference* preferences) = 0; | ||
| 412 | |||
| 413 | virtual bool STDMETHODCALLTYPE IsAdapterPreferenceSupported( | ||
| 414 | DXCoreAdapterPreference preference) = 0; | ||
| 415 | }; | ||
| 416 | |||
| 417 | /* interface IDXCoreAdapterFactory */ | ||
| 418 | MIDL_INTERFACE("78ee5945-c36e-4b13-a669-005dd11c0f06") | ||
| 419 | IDXCoreAdapterFactory : public IUnknown | ||
| 420 | { | ||
| 421 | public: | ||
| 422 | |||
| 423 | virtual HRESULT STDMETHODCALLTYPE CreateAdapterList( | ||
| 424 | uint32_t numAttributes, | ||
| 425 | _In_reads_(numAttributes) const GUID *filterAttributes, | ||
| 426 | REFIID riid, | ||
| 427 | _COM_Outptr_ void **ppvAdapterList) = 0; | ||
| 428 | |||
| 429 | template<class T> | ||
| 430 | HRESULT STDMETHODCALLTYPE CreateAdapterList( | ||
| 431 | uint32_t numAttributes, | ||
| 432 | _In_reads_(numAttributes) const GUID *filterAttributes, | ||
| 433 | _COM_Outptr_ T **ppvAdapterList) | ||
| 434 | { | ||
| 435 | return CreateAdapterList(numAttributes, | ||
| 436 | filterAttributes, | ||
| 437 | IID_PPV_ARGS(ppvAdapterList)); | ||
| 438 | } | ||
| 439 | |||
| 440 | virtual HRESULT STDMETHODCALLTYPE GetAdapterByLuid( | ||
| 441 | const LUID &adapterLUID, | ||
| 442 | REFIID riid, | ||
| 443 | _COM_Outptr_ void **ppvAdapter) = 0; | ||
| 444 | |||
| 445 | template<class T> | ||
| 446 | HRESULT STDMETHODCALLTYPE GetAdapterByLuid( | ||
| 447 | const LUID &adapterLUID, | ||
| 448 | _COM_Outptr_ T **ppvAdapter) | ||
| 449 | { | ||
| 450 | return GetAdapterByLuid(adapterLUID, | ||
| 451 | IID_PPV_ARGS(ppvAdapter)); | ||
| 452 | } | ||
| 453 | |||
| 454 | virtual bool STDMETHODCALLTYPE IsNotificationTypeSupported( | ||
| 455 | DXCoreNotificationType notificationType) = 0; | ||
| 456 | |||
| 457 | virtual HRESULT STDMETHODCALLTYPE RegisterEventNotification( | ||
| 458 | _In_ IUnknown *dxCoreObject, | ||
| 459 | DXCoreNotificationType notificationType, | ||
| 460 | _In_ PFN_DXCORE_NOTIFICATION_CALLBACK callbackFunction, | ||
| 461 | _In_opt_ void *callbackContext, | ||
| 462 | _Out_ uint32_t *eventCookie) = 0; | ||
| 463 | |||
| 464 | virtual HRESULT STDMETHODCALLTYPE UnregisterEventNotification( | ||
| 465 | uint32_t eventCookie) = 0; | ||
| 466 | }; | ||
| 467 | |||
| 468 | /* interface IDXCoreAdapterFactory1 */ | ||
| 469 | MIDL_INTERFACE("d5682e19-6d21-401c-827a-9a51a4ea35d7") | ||
| 470 | IDXCoreAdapterFactory1 : public IDXCoreAdapterFactory | ||
| 471 | { | ||
| 472 | public: | ||
| 473 | virtual HRESULT STDMETHODCALLTYPE CreateAdapterListByWorkload( | ||
| 474 | DXCoreWorkload workload, | ||
| 475 | DXCoreRuntimeFilterFlags runtimeFilter, | ||
| 476 | DXCoreHardwareTypeFilterFlags hardwareTypeFilter, | ||
| 477 | REFIID riid, | ||
| 478 | _COM_Outptr_ void **ppvAdapterList) = 0; | ||
| 479 | |||
| 480 | template<class T> | ||
| 481 | HRESULT STDMETHODCALLTYPE CreateAdapterListByWorkload( | ||
| 482 | DXCoreWorkload workload, | ||
| 483 | DXCoreRuntimeFilterFlags runtimeFilter, | ||
| 484 | DXCoreHardwareTypeFilterFlags hardwareTypeFilter, | ||
| 485 | _COM_Outptr_ T **ppvAdapterList) | ||
| 486 | { | ||
| 487 | return CreateAdapterListByWorkload(workload, | ||
| 488 | runtimeFilter, | ||
| 489 | hardwareTypeFilter, | ||
| 490 | IID_PPV_ARGS(ppvAdapterList)); | ||
| 491 | } | ||
| 492 | }; | ||
| 493 | |||
| 494 | #endif // __cplusplus | ||
| 495 | |||
| 496 | #endif // __dxcore_interface_h__ | ||
| 497 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/dxgicommon.h b/contrib/DirectX-Headers-1.618.2/include/directx/dxgicommon.h new file mode 100644 index 0000000..f83aa01 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/dxgicommon.h | |||
| @@ -0,0 +1,57 @@ | |||
| 1 | // | ||
| 2 | // Copyright (C) Microsoft Corporation. | ||
| 3 | // Licensed under the MIT license | ||
| 4 | // | ||
| 5 | |||
| 6 | #ifndef __dxgicommon_h__ | ||
| 7 | #define __dxgicommon_h__ | ||
| 8 | |||
| 9 | |||
| 10 | typedef struct DXGI_RATIONAL | ||
| 11 | { | ||
| 12 | UINT Numerator; | ||
| 13 | UINT Denominator; | ||
| 14 | } DXGI_RATIONAL; | ||
| 15 | |||
| 16 | // The following values are used with DXGI_SAMPLE_DESC::Quality: | ||
| 17 | #define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN 0xffffffff | ||
| 18 | #define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN 0xfffffffe | ||
| 19 | |||
| 20 | typedef struct DXGI_SAMPLE_DESC | ||
| 21 | { | ||
| 22 | UINT Count; | ||
| 23 | UINT Quality; | ||
| 24 | } DXGI_SAMPLE_DESC; | ||
| 25 | |||
| 26 | typedef enum DXGI_COLOR_SPACE_TYPE | ||
| 27 | { | ||
| 28 | DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0, | ||
| 29 | DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1, | ||
| 30 | DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2, | ||
| 31 | DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3, | ||
| 32 | DXGI_COLOR_SPACE_RESERVED = 4, | ||
| 33 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5, | ||
| 34 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6, | ||
| 35 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7, | ||
| 36 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8, | ||
| 37 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9, | ||
| 38 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10, | ||
| 39 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11, | ||
| 40 | DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12, | ||
| 41 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13, | ||
| 42 | DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14, | ||
| 43 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15, | ||
| 44 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16, | ||
| 45 | DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17, | ||
| 46 | DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 = 18, | ||
| 47 | DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 = 19, | ||
| 48 | DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709 = 20, | ||
| 49 | DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020 = 21, | ||
| 50 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709 = 22, | ||
| 51 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020 = 23, | ||
| 52 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020 = 24, | ||
| 53 | DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF | ||
| 54 | } DXGI_COLOR_SPACE_TYPE; | ||
| 55 | |||
| 56 | #endif // __dxgicommon_h__ | ||
| 57 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/dxgicommon.idl b/contrib/DirectX-Headers-1.618.2/include/directx/dxgicommon.idl new file mode 100644 index 0000000..4e13486 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/dxgicommon.idl | |||
| @@ -0,0 +1,53 @@ | |||
| 1 | // | ||
| 2 | // Copyright (C) Microsoft Corporation. | ||
| 3 | // Licensed under the MIT license | ||
| 4 | // | ||
| 5 | |||
| 6 | import "ocidl.idl"; | ||
| 7 | |||
| 8 | typedef struct DXGI_RATIONAL | ||
| 9 | { | ||
| 10 | UINT Numerator; | ||
| 11 | UINT Denominator; | ||
| 12 | } DXGI_RATIONAL; | ||
| 13 | |||
| 14 | // The following values are used with DXGI_SAMPLE_DESC::Quality: | ||
| 15 | #define DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN 0xffffffff | ||
| 16 | #define DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN 0xfffffffe | ||
| 17 | |||
| 18 | typedef struct DXGI_SAMPLE_DESC | ||
| 19 | { | ||
| 20 | UINT Count; | ||
| 21 | UINT Quality; | ||
| 22 | } DXGI_SAMPLE_DESC; | ||
| 23 | |||
| 24 | typedef enum DXGI_COLOR_SPACE_TYPE | ||
| 25 | { | ||
| 26 | DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 = 0, | ||
| 27 | DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709 = 1, | ||
| 28 | DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709 = 2, | ||
| 29 | DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020 = 3, | ||
| 30 | DXGI_COLOR_SPACE_RESERVED = 4, | ||
| 31 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 = 5, | ||
| 32 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 = 6, | ||
| 33 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 = 7, | ||
| 34 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 = 8, | ||
| 35 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 = 9, | ||
| 36 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 = 10, | ||
| 37 | DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 = 11, | ||
| 38 | DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020 = 12, | ||
| 39 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020 = 13, | ||
| 40 | DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020 = 14, | ||
| 41 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020 = 15, | ||
| 42 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16, | ||
| 43 | DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020 = 17, | ||
| 44 | DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020 = 18, | ||
| 45 | DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020 = 19, | ||
| 46 | DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P709 = 20, | ||
| 47 | DXGI_COLOR_SPACE_RGB_STUDIO_G24_NONE_P2020 = 21, | ||
| 48 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P709 = 22, | ||
| 49 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_LEFT_P2020 = 23, | ||
| 50 | DXGI_COLOR_SPACE_YCBCR_STUDIO_G24_TOPLEFT_P2020 = 24, | ||
| 51 | DXGI_COLOR_SPACE_CUSTOM = 0xFFFFFFFF | ||
| 52 | } DXGI_COLOR_SPACE_TYPE; | ||
| 53 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/dxgiformat.h b/contrib/DirectX-Headers-1.618.2/include/directx/dxgiformat.h new file mode 100644 index 0000000..83e6c07 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/dxgiformat.h | |||
| @@ -0,0 +1,144 @@ | |||
| 1 | // | ||
| 2 | // Copyright (C) Microsoft Corporation. | ||
| 3 | // Licensed under the MIT license | ||
| 4 | // | ||
| 5 | |||
| 6 | #ifndef __dxgiformat_h__ | ||
| 7 | #define __dxgiformat_h__ | ||
| 8 | |||
| 9 | #define DXGI_FORMAT_DEFINED 1 | ||
| 10 | |||
| 11 | typedef enum DXGI_FORMAT | ||
| 12 | { | ||
| 13 | DXGI_FORMAT_UNKNOWN = 0, | ||
| 14 | DXGI_FORMAT_R32G32B32A32_TYPELESS = 1, | ||
| 15 | DXGI_FORMAT_R32G32B32A32_FLOAT = 2, | ||
| 16 | DXGI_FORMAT_R32G32B32A32_UINT = 3, | ||
| 17 | DXGI_FORMAT_R32G32B32A32_SINT = 4, | ||
| 18 | DXGI_FORMAT_R32G32B32_TYPELESS = 5, | ||
| 19 | DXGI_FORMAT_R32G32B32_FLOAT = 6, | ||
| 20 | DXGI_FORMAT_R32G32B32_UINT = 7, | ||
| 21 | DXGI_FORMAT_R32G32B32_SINT = 8, | ||
| 22 | DXGI_FORMAT_R16G16B16A16_TYPELESS = 9, | ||
| 23 | DXGI_FORMAT_R16G16B16A16_FLOAT = 10, | ||
| 24 | DXGI_FORMAT_R16G16B16A16_UNORM = 11, | ||
| 25 | DXGI_FORMAT_R16G16B16A16_UINT = 12, | ||
| 26 | DXGI_FORMAT_R16G16B16A16_SNORM = 13, | ||
| 27 | DXGI_FORMAT_R16G16B16A16_SINT = 14, | ||
| 28 | DXGI_FORMAT_R32G32_TYPELESS = 15, | ||
| 29 | DXGI_FORMAT_R32G32_FLOAT = 16, | ||
| 30 | DXGI_FORMAT_R32G32_UINT = 17, | ||
| 31 | DXGI_FORMAT_R32G32_SINT = 18, | ||
| 32 | DXGI_FORMAT_R32G8X24_TYPELESS = 19, | ||
| 33 | DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20, | ||
| 34 | DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21, | ||
| 35 | DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22, | ||
| 36 | DXGI_FORMAT_R10G10B10A2_TYPELESS = 23, | ||
| 37 | DXGI_FORMAT_R10G10B10A2_UNORM = 24, | ||
| 38 | DXGI_FORMAT_R10G10B10A2_UINT = 25, | ||
| 39 | DXGI_FORMAT_R11G11B10_FLOAT = 26, | ||
| 40 | DXGI_FORMAT_R8G8B8A8_TYPELESS = 27, | ||
| 41 | DXGI_FORMAT_R8G8B8A8_UNORM = 28, | ||
| 42 | DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29, | ||
| 43 | DXGI_FORMAT_R8G8B8A8_UINT = 30, | ||
| 44 | DXGI_FORMAT_R8G8B8A8_SNORM = 31, | ||
| 45 | DXGI_FORMAT_R8G8B8A8_SINT = 32, | ||
| 46 | DXGI_FORMAT_R16G16_TYPELESS = 33, | ||
| 47 | DXGI_FORMAT_R16G16_FLOAT = 34, | ||
| 48 | DXGI_FORMAT_R16G16_UNORM = 35, | ||
| 49 | DXGI_FORMAT_R16G16_UINT = 36, | ||
| 50 | DXGI_FORMAT_R16G16_SNORM = 37, | ||
| 51 | DXGI_FORMAT_R16G16_SINT = 38, | ||
| 52 | DXGI_FORMAT_R32_TYPELESS = 39, | ||
| 53 | DXGI_FORMAT_D32_FLOAT = 40, | ||
| 54 | DXGI_FORMAT_R32_FLOAT = 41, | ||
| 55 | DXGI_FORMAT_R32_UINT = 42, | ||
| 56 | DXGI_FORMAT_R32_SINT = 43, | ||
| 57 | DXGI_FORMAT_R24G8_TYPELESS = 44, | ||
| 58 | DXGI_FORMAT_D24_UNORM_S8_UINT = 45, | ||
| 59 | DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46, | ||
| 60 | DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47, | ||
| 61 | DXGI_FORMAT_R8G8_TYPELESS = 48, | ||
| 62 | DXGI_FORMAT_R8G8_UNORM = 49, | ||
| 63 | DXGI_FORMAT_R8G8_UINT = 50, | ||
| 64 | DXGI_FORMAT_R8G8_SNORM = 51, | ||
| 65 | DXGI_FORMAT_R8G8_SINT = 52, | ||
| 66 | DXGI_FORMAT_R16_TYPELESS = 53, | ||
| 67 | DXGI_FORMAT_R16_FLOAT = 54, | ||
| 68 | DXGI_FORMAT_D16_UNORM = 55, | ||
| 69 | DXGI_FORMAT_R16_UNORM = 56, | ||
| 70 | DXGI_FORMAT_R16_UINT = 57, | ||
| 71 | DXGI_FORMAT_R16_SNORM = 58, | ||
| 72 | DXGI_FORMAT_R16_SINT = 59, | ||
| 73 | DXGI_FORMAT_R8_TYPELESS = 60, | ||
| 74 | DXGI_FORMAT_R8_UNORM = 61, | ||
| 75 | DXGI_FORMAT_R8_UINT = 62, | ||
| 76 | DXGI_FORMAT_R8_SNORM = 63, | ||
| 77 | DXGI_FORMAT_R8_SINT = 64, | ||
| 78 | DXGI_FORMAT_A8_UNORM = 65, | ||
| 79 | DXGI_FORMAT_R1_UNORM = 66, | ||
| 80 | DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67, | ||
| 81 | DXGI_FORMAT_R8G8_B8G8_UNORM = 68, | ||
| 82 | DXGI_FORMAT_G8R8_G8B8_UNORM = 69, | ||
| 83 | DXGI_FORMAT_BC1_TYPELESS = 70, | ||
| 84 | DXGI_FORMAT_BC1_UNORM = 71, | ||
| 85 | DXGI_FORMAT_BC1_UNORM_SRGB = 72, | ||
| 86 | DXGI_FORMAT_BC2_TYPELESS = 73, | ||
| 87 | DXGI_FORMAT_BC2_UNORM = 74, | ||
| 88 | DXGI_FORMAT_BC2_UNORM_SRGB = 75, | ||
| 89 | DXGI_FORMAT_BC3_TYPELESS = 76, | ||
| 90 | DXGI_FORMAT_BC3_UNORM = 77, | ||
| 91 | DXGI_FORMAT_BC3_UNORM_SRGB = 78, | ||
| 92 | DXGI_FORMAT_BC4_TYPELESS = 79, | ||
| 93 | DXGI_FORMAT_BC4_UNORM = 80, | ||
| 94 | DXGI_FORMAT_BC4_SNORM = 81, | ||
| 95 | DXGI_FORMAT_BC5_TYPELESS = 82, | ||
| 96 | DXGI_FORMAT_BC5_UNORM = 83, | ||
| 97 | DXGI_FORMAT_BC5_SNORM = 84, | ||
| 98 | DXGI_FORMAT_B5G6R5_UNORM = 85, | ||
| 99 | DXGI_FORMAT_B5G5R5A1_UNORM = 86, | ||
| 100 | DXGI_FORMAT_B8G8R8A8_UNORM = 87, | ||
| 101 | DXGI_FORMAT_B8G8R8X8_UNORM = 88, | ||
| 102 | DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89, | ||
| 103 | DXGI_FORMAT_B8G8R8A8_TYPELESS = 90, | ||
| 104 | DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91, | ||
| 105 | DXGI_FORMAT_B8G8R8X8_TYPELESS = 92, | ||
| 106 | DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93, | ||
| 107 | DXGI_FORMAT_BC6H_TYPELESS = 94, | ||
| 108 | DXGI_FORMAT_BC6H_UF16 = 95, | ||
| 109 | DXGI_FORMAT_BC6H_SF16 = 96, | ||
| 110 | DXGI_FORMAT_BC7_TYPELESS = 97, | ||
| 111 | DXGI_FORMAT_BC7_UNORM = 98, | ||
| 112 | DXGI_FORMAT_BC7_UNORM_SRGB = 99, | ||
| 113 | DXGI_FORMAT_AYUV = 100, | ||
| 114 | DXGI_FORMAT_Y410 = 101, | ||
| 115 | DXGI_FORMAT_Y416 = 102, | ||
| 116 | DXGI_FORMAT_NV12 = 103, | ||
| 117 | DXGI_FORMAT_P010 = 104, | ||
| 118 | DXGI_FORMAT_P016 = 105, | ||
| 119 | DXGI_FORMAT_420_OPAQUE = 106, | ||
| 120 | DXGI_FORMAT_YUY2 = 107, | ||
| 121 | DXGI_FORMAT_Y210 = 108, | ||
| 122 | DXGI_FORMAT_Y216 = 109, | ||
| 123 | DXGI_FORMAT_NV11 = 110, | ||
| 124 | DXGI_FORMAT_AI44 = 111, | ||
| 125 | DXGI_FORMAT_IA44 = 112, | ||
| 126 | DXGI_FORMAT_P8 = 113, | ||
| 127 | DXGI_FORMAT_A8P8 = 114, | ||
| 128 | DXGI_FORMAT_B4G4R4A4_UNORM = 115, | ||
| 129 | |||
| 130 | DXGI_FORMAT_P208 = 130, | ||
| 131 | DXGI_FORMAT_V208 = 131, | ||
| 132 | DXGI_FORMAT_V408 = 132, | ||
| 133 | |||
| 134 | |||
| 135 | DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE = 189, | ||
| 136 | DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE = 190, | ||
| 137 | |||
| 138 | DXGI_FORMAT_A4B4G4R4_UNORM = 191, | ||
| 139 | |||
| 140 | |||
| 141 | DXGI_FORMAT_FORCE_UINT = 0xffffffff | ||
| 142 | } DXGI_FORMAT; | ||
| 143 | |||
| 144 | #endif // __dxgiformat_h__ | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/directx/dxgiformat.idl b/contrib/DirectX-Headers-1.618.2/include/directx/dxgiformat.idl new file mode 100644 index 0000000..34cc883 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/directx/dxgiformat.idl | |||
| @@ -0,0 +1,139 @@ | |||
| 1 | // | ||
| 2 | // Copyright (C) Microsoft Corporation. | ||
| 3 | // Licensed under the MIT license | ||
| 4 | // | ||
| 5 | |||
| 6 | |||
| 7 | typedef enum DXGI_FORMAT | ||
| 8 | { | ||
| 9 | DXGI_FORMAT_UNKNOWN = 0, | ||
| 10 | DXGI_FORMAT_R32G32B32A32_TYPELESS = 1, | ||
| 11 | DXGI_FORMAT_R32G32B32A32_FLOAT = 2, | ||
| 12 | DXGI_FORMAT_R32G32B32A32_UINT = 3, | ||
| 13 | DXGI_FORMAT_R32G32B32A32_SINT = 4, | ||
| 14 | DXGI_FORMAT_R32G32B32_TYPELESS = 5, | ||
| 15 | DXGI_FORMAT_R32G32B32_FLOAT = 6, | ||
| 16 | DXGI_FORMAT_R32G32B32_UINT = 7, | ||
| 17 | DXGI_FORMAT_R32G32B32_SINT = 8, | ||
| 18 | DXGI_FORMAT_R16G16B16A16_TYPELESS = 9, | ||
| 19 | DXGI_FORMAT_R16G16B16A16_FLOAT = 10, | ||
| 20 | DXGI_FORMAT_R16G16B16A16_UNORM = 11, | ||
| 21 | DXGI_FORMAT_R16G16B16A16_UINT = 12, | ||
| 22 | DXGI_FORMAT_R16G16B16A16_SNORM = 13, | ||
| 23 | DXGI_FORMAT_R16G16B16A16_SINT = 14, | ||
| 24 | DXGI_FORMAT_R32G32_TYPELESS = 15, | ||
| 25 | DXGI_FORMAT_R32G32_FLOAT = 16, | ||
| 26 | DXGI_FORMAT_R32G32_UINT = 17, | ||
| 27 | DXGI_FORMAT_R32G32_SINT = 18, | ||
| 28 | DXGI_FORMAT_R32G8X24_TYPELESS = 19, | ||
| 29 | DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20, | ||
| 30 | DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21, | ||
| 31 | DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22, | ||
| 32 | DXGI_FORMAT_R10G10B10A2_TYPELESS = 23, | ||
| 33 | DXGI_FORMAT_R10G10B10A2_UNORM = 24, | ||
| 34 | DXGI_FORMAT_R10G10B10A2_UINT = 25, | ||
| 35 | DXGI_FORMAT_R11G11B10_FLOAT = 26, | ||
| 36 | DXGI_FORMAT_R8G8B8A8_TYPELESS = 27, | ||
| 37 | DXGI_FORMAT_R8G8B8A8_UNORM = 28, | ||
| 38 | DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29, | ||
| 39 | DXGI_FORMAT_R8G8B8A8_UINT = 30, | ||
| 40 | DXGI_FORMAT_R8G8B8A8_SNORM = 31, | ||
| 41 | DXGI_FORMAT_R8G8B8A8_SINT = 32, | ||
| 42 | DXGI_FORMAT_R16G16_TYPELESS = 33, | ||
| 43 | DXGI_FORMAT_R16G16_FLOAT = 34, | ||
| 44 | DXGI_FORMAT_R16G16_UNORM = 35, | ||
| 45 | DXGI_FORMAT_R16G16_UINT = 36, | ||
| 46 | DXGI_FORMAT_R16G16_SNORM = 37, | ||
| 47 | DXGI_FORMAT_R16G16_SINT = 38, | ||
| 48 | DXGI_FORMAT_R32_TYPELESS = 39, | ||
| 49 | DXGI_FORMAT_D32_FLOAT = 40, | ||
| 50 | DXGI_FORMAT_R32_FLOAT = 41, | ||
| 51 | DXGI_FORMAT_R32_UINT = 42, | ||
| 52 | DXGI_FORMAT_R32_SINT = 43, | ||
| 53 | DXGI_FORMAT_R24G8_TYPELESS = 44, | ||
| 54 | DXGI_FORMAT_D24_UNORM_S8_UINT = 45, | ||
| 55 | DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46, | ||
| 56 | DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47, | ||
| 57 | DXGI_FORMAT_R8G8_TYPELESS = 48, | ||
| 58 | DXGI_FORMAT_R8G8_UNORM = 49, | ||
| 59 | DXGI_FORMAT_R8G8_UINT = 50, | ||
| 60 | DXGI_FORMAT_R8G8_SNORM = 51, | ||
| 61 | DXGI_FORMAT_R8G8_SINT = 52, | ||
| 62 | DXGI_FORMAT_R16_TYPELESS = 53, | ||
| 63 | DXGI_FORMAT_R16_FLOAT = 54, | ||
| 64 | DXGI_FORMAT_D16_UNORM = 55, | ||
| 65 | DXGI_FORMAT_R16_UNORM = 56, | ||
| 66 | DXGI_FORMAT_R16_UINT = 57, | ||
| 67 | DXGI_FORMAT_R16_SNORM = 58, | ||
| 68 | DXGI_FORMAT_R16_SINT = 59, | ||
| 69 | DXGI_FORMAT_R8_TYPELESS = 60, | ||
| 70 | DXGI_FORMAT_R8_UNORM = 61, | ||
| 71 | DXGI_FORMAT_R8_UINT = 62, | ||
| 72 | DXGI_FORMAT_R8_SNORM = 63, | ||
| 73 | DXGI_FORMAT_R8_SINT = 64, | ||
| 74 | DXGI_FORMAT_A8_UNORM = 65, | ||
| 75 | DXGI_FORMAT_R1_UNORM = 66, | ||
| 76 | DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67, | ||
| 77 | DXGI_FORMAT_R8G8_B8G8_UNORM = 68, | ||
| 78 | DXGI_FORMAT_G8R8_G8B8_UNORM = 69, | ||
| 79 | DXGI_FORMAT_BC1_TYPELESS = 70, | ||
| 80 | DXGI_FORMAT_BC1_UNORM = 71, | ||
| 81 | DXGI_FORMAT_BC1_UNORM_SRGB = 72, | ||
| 82 | DXGI_FORMAT_BC2_TYPELESS = 73, | ||
| 83 | DXGI_FORMAT_BC2_UNORM = 74, | ||
| 84 | DXGI_FORMAT_BC2_UNORM_SRGB = 75, | ||
| 85 | DXGI_FORMAT_BC3_TYPELESS = 76, | ||
| 86 | DXGI_FORMAT_BC3_UNORM = 77, | ||
| 87 | DXGI_FORMAT_BC3_UNORM_SRGB = 78, | ||
| 88 | DXGI_FORMAT_BC4_TYPELESS = 79, | ||
| 89 | DXGI_FORMAT_BC4_UNORM = 80, | ||
| 90 | DXGI_FORMAT_BC4_SNORM = 81, | ||
| 91 | DXGI_FORMAT_BC5_TYPELESS = 82, | ||
| 92 | DXGI_FORMAT_BC5_UNORM = 83, | ||
| 93 | DXGI_FORMAT_BC5_SNORM = 84, | ||
| 94 | DXGI_FORMAT_B5G6R5_UNORM = 85, | ||
| 95 | DXGI_FORMAT_B5G5R5A1_UNORM = 86, | ||
| 96 | DXGI_FORMAT_B8G8R8A8_UNORM = 87, | ||
| 97 | DXGI_FORMAT_B8G8R8X8_UNORM = 88, | ||
| 98 | DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89, | ||
| 99 | DXGI_FORMAT_B8G8R8A8_TYPELESS = 90, | ||
| 100 | DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91, | ||
| 101 | DXGI_FORMAT_B8G8R8X8_TYPELESS = 92, | ||
| 102 | DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93, | ||
| 103 | DXGI_FORMAT_BC6H_TYPELESS = 94, | ||
| 104 | DXGI_FORMAT_BC6H_UF16 = 95, | ||
| 105 | DXGI_FORMAT_BC6H_SF16 = 96, | ||
| 106 | DXGI_FORMAT_BC7_TYPELESS = 97, | ||
| 107 | DXGI_FORMAT_BC7_UNORM = 98, | ||
| 108 | DXGI_FORMAT_BC7_UNORM_SRGB = 99, | ||
| 109 | DXGI_FORMAT_AYUV = 100, | ||
| 110 | DXGI_FORMAT_Y410 = 101, | ||
| 111 | DXGI_FORMAT_Y416 = 102, | ||
| 112 | DXGI_FORMAT_NV12 = 103, | ||
| 113 | DXGI_FORMAT_P010 = 104, | ||
| 114 | DXGI_FORMAT_P016 = 105, | ||
| 115 | DXGI_FORMAT_420_OPAQUE = 106, | ||
| 116 | DXGI_FORMAT_YUY2 = 107, | ||
| 117 | DXGI_FORMAT_Y210 = 108, | ||
| 118 | DXGI_FORMAT_Y216 = 109, | ||
| 119 | DXGI_FORMAT_NV11 = 110, | ||
| 120 | DXGI_FORMAT_AI44 = 111, | ||
| 121 | DXGI_FORMAT_IA44 = 112, | ||
| 122 | DXGI_FORMAT_P8 = 113, | ||
| 123 | DXGI_FORMAT_A8P8 = 114, | ||
| 124 | DXGI_FORMAT_B4G4R4A4_UNORM = 115, | ||
| 125 | |||
| 126 | DXGI_FORMAT_P208 = 130, | ||
| 127 | DXGI_FORMAT_V208 = 131, | ||
| 128 | DXGI_FORMAT_V408 = 132, | ||
| 129 | |||
| 130 | |||
| 131 | DXGI_FORMAT_SAMPLER_FEEDBACK_MIN_MIP_OPAQUE = 189, | ||
| 132 | DXGI_FORMAT_SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE = 190, | ||
| 133 | |||
| 134 | DXGI_FORMAT_A4B4G4R4_UNORM = 191, | ||
| 135 | |||
| 136 | |||
| 137 | DXGI_FORMAT_FORCE_UINT = 0xffffffff | ||
| 138 | } DXGI_FORMAT; | ||
| 139 | |||
diff --git a/contrib/DirectX-Headers-1.618.2/include/dxguids/dxguids.h b/contrib/DirectX-Headers-1.618.2/include/dxguids/dxguids.h new file mode 100644 index 0000000..7615570 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/dxguids/dxguids.h | |||
| @@ -0,0 +1,201 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #ifndef __cplusplus | ||
| 7 | #error "This header requires C++" | ||
| 8 | #endif | ||
| 9 | |||
| 10 | constexpr inline bool ConstexprIsEqualGUID(REFGUID a, REFGUID b) | ||
| 11 | { | ||
| 12 | return a.Data1 == b.Data1 && | ||
| 13 | a.Data2 == b.Data2 && | ||
| 14 | a.Data3 == b.Data3 && | ||
| 15 | a.Data4[0] == b.Data4[0] && | ||
| 16 | a.Data4[1] == b.Data4[1] && | ||
| 17 | a.Data4[2] == b.Data4[2] && | ||
| 18 | a.Data4[3] == b.Data4[3] && | ||
| 19 | a.Data4[4] == b.Data4[4] && | ||
| 20 | a.Data4[5] == b.Data4[5] && | ||
| 21 | a.Data4[6] == b.Data4[6] && | ||
| 22 | a.Data4[7] == b.Data4[7]; | ||
| 23 | } | ||
| 24 | |||
| 25 | template <typename T> GUID uuidof() = delete; | ||
| 26 | template <typename T> GUID uuidof(T*) { return uuidof<T>(); } | ||
| 27 | template <typename T> GUID uuidof(T**) { return uuidof<T>(); } | ||
| 28 | template <typename T> GUID uuidof(T&) { return uuidof<T>(); } | ||
| 29 | |||
| 30 | // Each COM interface (e.g. ID3D12Device) has a unique interface ID (IID) associated with it. With MSVC, the IID is defined | ||
| 31 | // along with the interface declaration using compiler intrinsics (__declspec(uuid(...)); the IID can then be retrieved | ||
| 32 | // using __uuidof. These intrinsics are not supported with all toolchains, so these helpers redefine IID values that can be | ||
| 33 | // used with the various adapter COM helpers (ComPtr, IID_PPV_ARGS, etc.) for Linux. IIDs are stable and cannot change, but as | ||
| 34 | // a precaution we statically assert the values are as expected when compiling for Windows. | ||
| 35 | #if defined(_MSC_VER) | ||
| 36 | #define _DXGUIDS_SUPPORT_STATIC_ASSERT_IID | ||
| 37 | #elif defined(__CRT_UUID_DECL) | ||
| 38 | /* match _mingw.h */ | ||
| 39 | #if __cpp_constexpr >= 200704l && __cpp_inline_variables >= 201606L | ||
| 40 | #define _DXGUIDS_SUPPORT_STATIC_ASSERT_IID | ||
| 41 | #endif /* __cpp_constexpr >= 200704l && __cpp_inline_variables >= 201606L */ | ||
| 42 | #endif /* _MSC_VER */ | ||
| 43 | |||
| 44 | #ifdef _DXGUIDS_SUPPORT_STATIC_ASSERT_IID | ||
| 45 | #define _WINADAPTER_ASSERT_IID(InterfaceName) \ | ||
| 46 | static_assert(ConstexprIsEqualGUID(uuidof<InterfaceName>(), __uuidof(InterfaceName)), "GUID definition mismatch: "#InterfaceName); | ||
| 47 | #else | ||
| 48 | #define _WINADAPTER_ASSERT_IID(InterfaceName) | ||
| 49 | #endif | ||
| 50 | |||
| 51 | #ifdef __CRT_UUID_DECL | ||
| 52 | #define WINADAPTER_IID(InterfaceName, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ | ||
| 53 | template <> constexpr GUID uuidof<InterfaceName>() \ | ||
| 54 | { \ | ||
| 55 | return { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }; \ | ||
| 56 | } \ | ||
| 57 | __CRT_UUID_DECL(InterfaceName, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ | ||
| 58 | _WINADAPTER_ASSERT_IID(InterfaceName) | ||
| 59 | #else | ||
| 60 | #define WINADAPTER_IID(InterfaceName, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ | ||
| 61 | template <> constexpr GUID uuidof<InterfaceName>() \ | ||
| 62 | { \ | ||
| 63 | return { l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }; \ | ||
| 64 | } \ | ||
| 65 | _WINADAPTER_ASSERT_IID(InterfaceName) | ||
| 66 | #endif /* defined(_WIN32) && defined(__MINGW32__) */ | ||
| 67 | |||
| 68 | // Direct3D | ||
| 69 | #ifdef __d3d12_h__ | ||
| 70 | WINADAPTER_IID(ID3D12Object, 0xc4fec28f, 0x7966, 0x4e95, 0x9f, 0x94, 0xf4, 0x31, 0xcb, 0x56, 0xc3, 0xb8); | ||
| 71 | WINADAPTER_IID(ID3D12DeviceChild, 0x905db94b, 0xa00c, 0x4140, 0x9d, 0xf5, 0x2b, 0x64, 0xca, 0x9e, 0xa3, 0x57); | ||
| 72 | WINADAPTER_IID(ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b, 0xe5, 0xa9, 0x46, 0xa1, 0x42, 0x92, 0x14); | ||
| 73 | WINADAPTER_IID(ID3D12RootSignatureDeserializer, 0x34AB647B, 0x3CC8, 0x46AC, 0x84, 0x1B, 0xC0, 0x96, 0x56, 0x45, 0xC0, 0x46); | ||
| 74 | WINADAPTER_IID(ID3D12VersionedRootSignatureDeserializer, 0x7F91CE67, 0x090C, 0x4BB7, 0xB7, 0x8E, 0xED, 0x8F, 0xF2, 0xE3, 0x1D, 0xA0); | ||
| 75 | WINADAPTER_IID(ID3D12Pageable, 0x63ee58fb, 0x1268, 0x4835, 0x86, 0xda, 0xf0, 0x08, 0xce, 0x62, 0xf0, 0xd6); | ||
| 76 | WINADAPTER_IID(ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90, 0xee, 0x98, 0x84, 0x26, 0x5e, 0x8d, 0xf3); | ||
| 77 | WINADAPTER_IID(ID3D12Resource, 0x696442be, 0xa72e, 0x4059, 0xbc, 0x79, 0x5b, 0x5c, 0x98, 0x04, 0x0f, 0xad); | ||
| 78 | WINADAPTER_IID(ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9, 0x99, 0xb4, 0x4d, 0x73, 0xf0, 0x9b, 0x24); | ||
| 79 | WINADAPTER_IID(ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad, 0xf6, 0xbe, 0x5a, 0x60, 0xd9, 0x5a, 0x76); | ||
| 80 | WINADAPTER_IID(ID3D12Fence1, 0x433685fe, 0xe22b, 0x4ca0, 0xa8, 0xdb, 0xb5, 0xb4, 0xf4, 0xdd, 0x0e, 0x4a); | ||
| 81 | WINADAPTER_IID(ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8, 0x28, 0xac, 0xe9, 0x48, 0x62, 0x24, 0x45); | ||
| 82 | WINADAPTER_IID(ID3D12DescriptorHeap, 0x8efb471d, 0x616c, 0x4f49, 0x90, 0xf7, 0x12, 0x7b, 0xb7, 0x63, 0xfa, 0x51); | ||
| 83 | WINADAPTER_IID(ID3D12QueryHeap, 0x0d9658ae, 0xed45, 0x469e, 0xa6, 0x1d, 0x97, 0x0e, 0xc5, 0x83, 0xca, 0xb4); | ||
| 84 | WINADAPTER_IID(ID3D12CommandSignature, 0xc36a797c, 0xec80, 0x4f0a, 0x89, 0x85, 0xa7, 0xb2, 0x47, 0x50, 0x82, 0xd1); | ||
| 85 | WINADAPTER_IID(ID3D12CommandList, 0x7116d91c, 0xe7e4, 0x47ce, 0xb8, 0xc6, 0xec, 0x81, 0x68, 0xf4, 0x37, 0xe5); | ||
| 86 | WINADAPTER_IID(ID3D12GraphicsCommandList, 0x5b160d0f, 0xac1b, 0x4185, 0x8b, 0xa8, 0xb3, 0xae, 0x42, 0xa5, 0xa4, 0x55); | ||
| 87 | WINADAPTER_IID(ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb, 0x38, 0x94, 0x6d, 0x7d, 0x0e, 0x7c, 0xa7); | ||
| 88 | WINADAPTER_IID(ID3D12GraphicsCommandList2, 0x38C3E585, 0xFF17, 0x412C, 0x91, 0x50, 0x4F, 0xC6, 0xF9, 0xD7, 0x2A, 0x28); | ||
| 89 | WINADAPTER_IID(ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c, 0xfc, 0x5b, 0xaa, 0xe0, 0x76, 0x16, 0xed); | ||
| 90 | WINADAPTER_IID(ID3D12CommandQueue1, 0x3a3c3165, 0x0ee7, 0x4b8e, 0xa0, 0xaf, 0x63, 0x56, 0xb4, 0xc3, 0xbb, 0xb9); | ||
| 91 | WINADAPTER_IID(ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe, 0x54, 0x18, 0x21, 0x33, 0x9b, 0x85, 0xf7); | ||
| 92 | WINADAPTER_IID(ID3D12PipelineLibrary, 0xc64226a8, 0x9201, 0x46af, 0xb4, 0xcc, 0x53, 0xfb, 0x9f, 0xf7, 0x41, 0x4f); | ||
| 93 | WINADAPTER_IID(ID3D12PipelineLibrary1, 0x80eabf42, 0x2568, 0x4e5e, 0xbd, 0x82, 0xc3, 0x7f, 0x86, 0x96, 0x1d, 0xc3); | ||
| 94 | WINADAPTER_IID(ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88, 0x95, 0xc1, 0xf2, 0x33, 0x86, 0x86, 0x3e); | ||
| 95 | WINADAPTER_IID(ID3D12Device2, 0x30baa41e, 0xb15b, 0x475c, 0xa0, 0xbb, 0x1a, 0xf5, 0xc5, 0xb6, 0x43, 0x28); | ||
| 96 | WINADAPTER_IID(ID3D12Device3, 0x81dadc15, 0x2bad, 0x4392, 0x93, 0xc5, 0x10, 0x13, 0x45, 0xc4, 0xaa, 0x98); | ||
| 97 | WINADAPTER_IID(ID3D12ProtectedSession, 0xA1533D18, 0x0AC1, 0x4084, 0x85, 0xB9, 0x89, 0xA9, 0x61, 0x16, 0x80, 0x6B); | ||
| 98 | WINADAPTER_IID(ID3D12ProtectedResourceSession, 0x6CD696F4, 0xF289, 0x40CC, 0x80, 0x91, 0x5A, 0x6C, 0x0A, 0x09, 0x9C, 0x3D); | ||
| 99 | WINADAPTER_IID(ID3D12Device4, 0xe865df17, 0xa9ee, 0x46f9, 0xa4, 0x63, 0x30, 0x98, 0x31, 0x5a, 0xa2, 0xe5); | ||
| 100 | WINADAPTER_IID(ID3D12LifetimeOwner, 0xe667af9f, 0xcd56, 0x4f46, 0x83, 0xce, 0x03, 0x2e, 0x59, 0x5d, 0x70, 0xa8); | ||
| 101 | WINADAPTER_IID(ID3D12SwapChainAssistant, 0xf1df64b6, 0x57fd, 0x49cd, 0x88, 0x07, 0xc0, 0xeb, 0x88, 0xb4, 0x5c, 0x8f); | ||
| 102 | WINADAPTER_IID(ID3D12LifetimeTracker, 0x3fd03d36, 0x4eb1, 0x424a, 0xa5, 0x82, 0x49, 0x4e, 0xcb, 0x8b, 0xa8, 0x13); | ||
| 103 | WINADAPTER_IID(ID3D12StateObject, 0x47016943, 0xfca8, 0x4594, 0x93, 0xea, 0xaf, 0x25, 0x8b, 0x55, 0x34, 0x6d); | ||
| 104 | WINADAPTER_IID(ID3D12StateObjectProperties, 0xde5fa827, 0x9bf9, 0x4f26, 0x89, 0xff, 0xd7, 0xf5, 0x6f, 0xde, 0x38, 0x60); | ||
| 105 | WINADAPTER_IID(ID3D12Device5, 0x8b4f173b, 0x2fea, 0x4b80, 0x8f, 0x58, 0x43, 0x07, 0x19, 0x1a, 0xb9, 0x5d); | ||
| 106 | WINADAPTER_IID(ID3D12DeviceRemovedExtendedDataSettings, 0x82BC481C, 0x6B9B, 0x4030, 0xAE, 0xDB, 0x7E, 0xE3, 0xD1, 0xDF, 0x1E, 0x63); | ||
| 107 | WINADAPTER_IID(ID3D12DeviceRemovedExtendedDataSettings1, 0xDBD5AE51, 0x3317, 0x4F0A, 0xAD, 0xF9, 0x1D, 0x7C, 0xED, 0xCA, 0xAE, 0x0B); | ||
| 108 | WINADAPTER_IID(ID3D12DeviceRemovedExtendedDataSettings2, 0x61552388, 0x01ab, 0x4008, 0xa4, 0x36, 0x83, 0xdb, 0x18, 0x95, 0x66, 0xea); | ||
| 109 | WINADAPTER_IID(ID3D12DeviceRemovedExtendedData, 0x98931D33, 0x5AE8, 0x4791, 0xAA, 0x3C, 0x1A, 0x73, 0xA2, 0x93, 0x4E, 0x71); | ||
| 110 | WINADAPTER_IID(ID3D12DeviceRemovedExtendedData1, 0x9727A022, 0xCF1D, 0x4DDA, 0x9E, 0xBA, 0xEF, 0xFA, 0x65, 0x3F, 0xC5, 0x06); | ||
| 111 | WINADAPTER_IID(ID3D12DeviceRemovedExtendedData2, 0x67FC5816, 0xE4CA, 0x4915, 0xBF, 0x18, 0x42, 0x54, 0x12, 0x72, 0xDA, 0x54); | ||
| 112 | WINADAPTER_IID(ID3D12Device6, 0xc70b221b, 0x40e4, 0x4a17, 0x89, 0xaf, 0x02, 0x5a, 0x07, 0x27, 0xa6, 0xdc); | ||
| 113 | WINADAPTER_IID(ID3D12ProtectedResourceSession1, 0xD6F12DD6, 0x76FB, 0x406E, 0x89, 0x61, 0x42, 0x96, 0xEE, 0xFC, 0x04, 0x09); | ||
| 114 | WINADAPTER_IID(ID3D12Device7, 0x5c014b53, 0x68a1, 0x4b9b, 0x8b, 0xd1, 0xdd, 0x60, 0x46, 0xb9, 0x35, 0x8b); | ||
| 115 | WINADAPTER_IID(ID3D12Device8, 0x9218E6BB, 0xF944, 0x4F7E, 0xA7, 0x5C, 0xB1, 0xB2, 0xC7, 0xB7, 0x01, 0xF3); | ||
| 116 | WINADAPTER_IID(ID3D12Resource1, 0x9D5E227A, 0x4430, 0x4161, 0x88, 0xB3, 0x3E, 0xCA, 0x6B, 0xB1, 0x6E, 0x19); | ||
| 117 | WINADAPTER_IID(ID3D12Resource2, 0xBE36EC3B, 0xEA85, 0x4AEB, 0xA4, 0x5A, 0xE9, 0xD7, 0x64, 0x04, 0xA4, 0x95); | ||
| 118 | WINADAPTER_IID(ID3D12Heap1, 0x572F7389, 0x2168, 0x49E3, 0x96, 0x93, 0xD6, 0xDF, 0x58, 0x71, 0xBF, 0x6D); | ||
| 119 | WINADAPTER_IID(ID3D12GraphicsCommandList3, 0x6FDA83A7, 0xB84C, 0x4E38, 0x9A, 0xC8, 0xC7, 0xBD, 0x22, 0x01, 0x6B, 0x3D); | ||
| 120 | WINADAPTER_IID(ID3D12MetaCommand, 0xDBB84C27, 0x36CE, 0x4FC9, 0xB8, 0x01, 0xF0, 0x48, 0xC4, 0x6A, 0xC5, 0x70); | ||
| 121 | WINADAPTER_IID(ID3D12GraphicsCommandList4, 0x8754318e, 0xd3a9, 0x4541, 0x98, 0xcf, 0x64, 0x5b, 0x50, 0xdc, 0x48, 0x74); | ||
| 122 | WINADAPTER_IID(ID3D12ShaderCacheSession, 0x28e2495d, 0x0f64, 0x4ae4, 0xa6, 0xec, 0x12, 0x92, 0x55, 0xdc, 0x49, 0xa8); | ||
| 123 | WINADAPTER_IID(ID3D12Device9, 0x4c80e962, 0xf032, 0x4f60, 0xbc, 0x9e, 0xeb, 0xc2, 0xcf, 0xa1, 0xd8, 0x3c); | ||
| 124 | WINADAPTER_IID(ID3D12Device10, 0x517f8718, 0xaa66, 0x49f9, 0xb0, 0x2b, 0xa7, 0xab, 0x89, 0xc0, 0x60, 0x31); | ||
| 125 | WINADAPTER_IID(ID3D12Device11, 0x5405c344, 0xd457, 0x444e, 0xb4, 0xdd, 0x23, 0x66, 0xe4, 0x5a, 0xee, 0x39); | ||
| 126 | WINADAPTER_IID(ID3D12VirtualizationGuestDevice, 0xbc66d368, 0x7373, 0x4943, 0x87, 0x57, 0xfc, 0x87, 0xdc, 0x79, 0xe4, 0x76); | ||
| 127 | WINADAPTER_IID(ID3D12Tools, 0x7071e1f0, 0xe84b, 0x4b33, 0x97, 0x4f, 0x12, 0xfa, 0x49, 0xde, 0x65, 0xc5); | ||
| 128 | WINADAPTER_IID(ID3D12SDKConfiguration, 0xe9eb5314, 0x33aa, 0x42b2, 0xa7, 0x18, 0xd7, 0x7f, 0x58, 0xb1, 0xf1, 0xc7); | ||
| 129 | WINADAPTER_IID(ID3D12SDKConfiguration1, 0x8aaf9303, 0xad25, 0x48b9, 0x9a, 0x57, 0xd9, 0xc3, 0x7e, 0x00, 0x9d, 0x9f); | ||
| 130 | WINADAPTER_IID(ID3D12DeviceFactory, 0x61f307d3, 0xd34e, 0x4e7c, 0x83, 0x74, 0x3b, 0xa4, 0xde, 0x23, 0xcc, 0xcb); | ||
| 131 | WINADAPTER_IID(ID3D12DeviceConfiguration, 0x78dbf87b, 0xf766, 0x422b, 0xa6, 0x1c, 0xc8, 0xc4, 0x46, 0xbd, 0xb9, 0xad); | ||
| 132 | WINADAPTER_IID(ID3D12GraphicsCommandList5, 0x55050859, 0x4024, 0x474c, 0x87, 0xf5, 0x64, 0x72, 0xea, 0xee, 0x44, 0xea); | ||
| 133 | WINADAPTER_IID(ID3D12GraphicsCommandList6, 0xc3827890, 0xe548, 0x4cfa, 0x96, 0xcf, 0x56, 0x89, 0xa9, 0x37, 0x0f, 0x80); | ||
| 134 | WINADAPTER_IID(ID3D12GraphicsCommandList7, 0xdd171223, 0x8b61, 0x4769, 0x90, 0xe3, 0x16, 0x0c, 0xcd, 0xe4, 0xe2, 0xc1); | ||
| 135 | WINADAPTER_IID(ID3D12GraphicsCommandList8, 0xee936ef9, 0x599d, 0x4d28, 0x93, 0x8e, 0x23, 0xc4, 0xad, 0x05, 0xce, 0x51); | ||
| 136 | #endif | ||
| 137 | |||
| 138 | // Direct3D Video | ||
| 139 | #ifdef __d3d12video_h__ | ||
| 140 | WINADAPTER_IID(ID3D12VideoDecoderHeap,0x0946B7C9,0xEBF6,0x4047,0xBB,0x73,0x86,0x83,0xE2,0x7D,0xBB,0x1F); | ||
| 141 | WINADAPTER_IID(ID3D12VideoDevice,0x1F052807,0x0B46,0x4ACC,0x8A,0x89,0x36,0x4F,0x79,0x37,0x18,0xA4); | ||
| 142 | WINADAPTER_IID(ID3D12VideoDecoder,0xC59B6BDC,0x7720,0x4074,0xA1,0x36,0x17,0xA1,0x56,0x03,0x74,0x70); | ||
| 143 | WINADAPTER_IID(ID3D12VideoProcessor,0x304FDB32,0xBEDE,0x410A,0x85,0x45,0x94,0x3A,0xC6,0xA4,0x61,0x38); | ||
| 144 | WINADAPTER_IID(ID3D12VideoDecodeCommandList,0x3B60536E,0xAD29,0x4E64,0xA2,0x69,0xF8,0x53,0x83,0x7E,0x5E,0x53); | ||
| 145 | WINADAPTER_IID(ID3D12VideoProcessCommandList,0xAEB2543A,0x167F,0x4682,0xAC,0xC8,0xD1,0x59,0xED,0x4A,0x62,0x09); | ||
| 146 | WINADAPTER_IID(ID3D12VideoDecodeCommandList1,0xD52F011B,0xB56E,0x453C,0xA0,0x5A,0xA7,0xF3,0x11,0xC8,0xF4,0x72); | ||
| 147 | WINADAPTER_IID(ID3D12VideoProcessCommandList1,0x542C5C4D,0x7596,0x434F,0x8C,0x93,0x4E,0xFA,0x67,0x66,0xF2,0x67); | ||
| 148 | WINADAPTER_IID(ID3D12VideoMotionEstimator,0x33FDAE0E,0x098B,0x428F,0x87,0xBB,0x34,0xB6,0x95,0xDE,0x08,0xF8); | ||
| 149 | WINADAPTER_IID(ID3D12VideoMotionVectorHeap,0x5BE17987,0x743A,0x4061,0x83,0x4B,0x23,0xD2,0x2D,0xAE,0xA5,0x05); | ||
| 150 | WINADAPTER_IID(ID3D12VideoDevice1,0x981611AD,0xA144,0x4C83,0x98,0x90,0xF3,0x0E,0x26,0xD6,0x58,0xAB); | ||
| 151 | WINADAPTER_IID(ID3D12VideoEncodeCommandList,0x8455293A,0x0CBD,0x4831,0x9B,0x39,0xFB,0xDB,0xAB,0x72,0x47,0x23); | ||
| 152 | WINADAPTER_IID(ID3D12VideoDecoder1,0x79A2E5FB,0xCCD2,0x469A,0x9F,0xDE,0x19,0x5D,0x10,0x95,0x1F,0x7E); | ||
| 153 | WINADAPTER_IID(ID3D12VideoDecoderHeap1,0xDA1D98C5,0x539F,0x41B2,0xBF,0x6B,0x11,0x98,0xA0,0x3B,0x6D,0x26); | ||
| 154 | WINADAPTER_IID(ID3D12VideoProcessor1,0xF3CFE615,0x553F,0x425C,0x86,0xD8,0xEE,0x8C,0x1B,0x1F,0xB0,0x1C); | ||
| 155 | WINADAPTER_IID(ID3D12VideoExtensionCommand,0x554E41E8,0xAE8E,0x4A8C,0xB7,0xD2,0x5B,0x4F,0x27,0x4A,0x30,0xE4); | ||
| 156 | WINADAPTER_IID(ID3D12VideoDevice2,0xF019AC49,0xF838,0x4A95,0x9B,0x17,0x57,0x94,0x37,0xC8,0xF5,0x13); | ||
| 157 | WINADAPTER_IID(ID3D12VideoDecodeCommandList2,0x6e120880,0xc114,0x4153,0x80,0x36,0xd2,0x47,0x05,0x1e,0x17,0x29); | ||
| 158 | WINADAPTER_IID(ID3D12VideoDecodeCommandList3,0x2aee8c37,0x9562,0x42da,0x8a,0xbf,0x61,0xef,0xeb,0x2e,0x45,0x13); | ||
| 159 | WINADAPTER_IID(ID3D12VideoProcessCommandList2,0xdb525ae4,0x6ad6,0x473c,0xba,0xa7,0x59,0xb2,0xe3,0x70,0x82,0xe4); | ||
| 160 | WINADAPTER_IID(ID3D12VideoProcessCommandList3,0x1a0a4ca4,0x9f08,0x40ce,0x95,0x58,0xb4,0x11,0xfd,0x26,0x66,0xff); | ||
| 161 | WINADAPTER_IID(ID3D12VideoEncodeCommandList1,0x94971eca,0x2bdb,0x4769,0x88,0xcf,0x36,0x75,0xea,0x75,0x7e,0xbc); | ||
| 162 | WINADAPTER_IID(ID3D12VideoEncoder,0x2E0D212D,0x8DF9,0x44A6,0xA7,0x70,0xBB,0x28,0x9B,0x18,0x27,0x37); | ||
| 163 | WINADAPTER_IID(ID3D12VideoEncoderHeap,0x22B35D96,0x876A,0x44C0,0xB2,0x5E,0xFB,0x8C,0x9C,0x7F,0x1C,0x4A); | ||
| 164 | WINADAPTER_IID(ID3D12VideoEncoderHeap1,0xea8f1968,0x4aa0,0x43a4,0x9d,0x30,0xba,0x86,0xec,0x84,0xd4,0xf9); | ||
| 165 | WINADAPTER_IID(ID3D12VideoDevice3,0x4243ADB4,0x3A32,0x4666,0x97,0x3C,0x0C,0xCC,0x56,0x25,0xDC,0x44); | ||
| 166 | WINADAPTER_IID(ID3D12VideoDevice4,0xe59ad09e,0xf1ae,0x42bb,0x89,0x83,0x9f,0x6e,0x55,0x86,0xc4,0xeb); | ||
| 167 | WINADAPTER_IID(ID3D12VideoEncodeCommandList2,0x895491e2,0xe701,0x46a9,0x9a,0x1f,0x8d,0x34,0x80,0xed,0x86,0x7a); | ||
| 168 | WINADAPTER_IID(ID3D12VideoEncodeCommandList3,0x7f027b22,0x1515,0x4e85,0xaa,0x0d,0x02,0x64,0x86,0x58,0x05,0x76); | ||
| 169 | WINADAPTER_IID(ID3D12VideoEncodeCommandList4,0x69aeb5b7,0x55f2,0x4012,0x8b,0x73,0x3a,0x88,0xd6,0x5a,0x20,0x4c); | ||
| 170 | #endif | ||
| 171 | |||
| 172 | #ifdef __d3d12sdklayers_h__ | ||
| 173 | WINADAPTER_IID(ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9, 0x89, 0xf0, 0x27, 0x44, 0x82, 0x45, 0xe0); | ||
| 174 | WINADAPTER_IID(ID3D12Debug1, 0xaffaa4ca, 0x63fe, 0x4d8e, 0xb8, 0xad, 0x15, 0x90, 0x00, 0xaf, 0x43, 0x04); | ||
| 175 | WINADAPTER_IID(ID3D12Debug2, 0x93a665c4, 0xa3b2, 0x4e5d, 0xb6, 0x92, 0xa2, 0x6a, 0xe1, 0x4e, 0x33, 0x74); | ||
| 176 | WINADAPTER_IID(ID3D12Debug3, 0x5cf4e58f, 0xf671, 0x4ff1, 0xa5, 0x42, 0x36, 0x86, 0xe3, 0xd1, 0x53, 0xd1); | ||
| 177 | WINADAPTER_IID(ID3D12Debug4, 0x014b816e, 0x9ec5, 0x4a2f, 0xa8, 0x45, 0xff, 0xbe, 0x44, 0x1c, 0xe1, 0x3a); | ||
| 178 | WINADAPTER_IID(ID3D12Debug5, 0x548d6b12, 0x09fa, 0x40e0, 0x90, 0x69, 0x5d, 0xcd, 0x58, 0x9a, 0x52, 0xc9); | ||
| 179 | WINADAPTER_IID(ID3D12Debug6, 0x82a816d6, 0x5d01, 0x4157, 0x97, 0xd0, 0x49, 0x75, 0x46, 0x3f, 0xd1, 0xed); | ||
| 180 | WINADAPTER_IID(ID3D12DebugDevice1, 0xa9b71770, 0xd099, 0x4a65, 0xa6, 0x98, 0x3d, 0xee, 0x10, 0x02, 0x0f, 0x88); | ||
| 181 | WINADAPTER_IID(ID3D12DebugDevice, 0x3febd6dd, 0x4973, 0x4787, 0x81, 0x94, 0xe4, 0x5f, 0x9e, 0x28, 0x92, 0x3e); | ||
| 182 | WINADAPTER_IID(ID3D12DebugDevice2, 0x60eccbc1, 0x378d, 0x4df1, 0x89, 0x4c, 0xf8, 0xac, 0x5c, 0xe4, 0xd7, 0xdd); | ||
| 183 | WINADAPTER_IID(ID3D12DebugCommandQueue, 0x09e0bf36, 0x54ac, 0x484f, 0x88, 0x47, 0x4b, 0xae, 0xea, 0xb6, 0x05, 0x3a); | ||
| 184 | WINADAPTER_IID(ID3D12DebugCommandQueue1, 0x16be35a2, 0xbfd6, 0x49f2, 0xbc, 0xae, 0xea, 0xae, 0x4a, 0xff, 0x86, 0x2d); | ||
| 185 | WINADAPTER_IID(ID3D12DebugCommandList1, 0x102ca951, 0x311b, 0x4b01, 0xb1, 0x1f, 0xec, 0xb8, 0x3e, 0x06, 0x1b, 0x37); | ||
| 186 | WINADAPTER_IID(ID3D12DebugCommandList, 0x09e0bf36, 0x54ac, 0x484f, 0x88, 0x47, 0x4b, 0xae, 0xea, 0xb6, 0x05, 0x3f); | ||
| 187 | WINADAPTER_IID(ID3D12DebugCommandList2, 0xaeb575cf, 0x4e06, 0x48be, 0xba, 0x3b, 0xc4, 0x50, 0xfc, 0x96, 0x65, 0x2e); | ||
| 188 | WINADAPTER_IID(ID3D12DebugCommandList3, 0x197d5e15, 0x4d37, 0x4d34, 0xaf, 0x78, 0x72, 0x4c, 0xd7, 0x0f, 0xdb, 0x1f); | ||
| 189 | WINADAPTER_IID(ID3D12SharingContract, 0x0adf7d52, 0x929c, 0x4e61, 0xad, 0xdb, 0xff, 0xed, 0x30, 0xde, 0x66, 0xef); | ||
| 190 | WINADAPTER_IID(ID3D12InfoQueue, 0x0742a90b, 0xc387, 0x483f, 0xb9, 0x46, 0x30, 0xa7, 0xe4, 0xe6, 0x14, 0x58); | ||
| 191 | WINADAPTER_IID(ID3D12InfoQueue1, 0x2852dd88, 0xb484, 0x4c0c, 0xb6, 0xb1, 0x67, 0x16, 0x85, 0x00, 0xe6, 0x00); | ||
| 192 | #endif | ||
| 193 | |||
| 194 | // DXCore | ||
| 195 | #ifdef __dxcore_interface_h__ | ||
| 196 | WINADAPTER_IID(IDXCoreAdapterFactory, 0x78ee5945, 0xc36e, 0x4b13, 0xa6, 0x69, 0x00, 0x5d, 0xd1, 0x1c, 0x0f, 0x06); | ||
| 197 | WINADAPTER_IID(IDXCoreAdapterFactory1, 0xd5682e19, 0x6d21, 0x401c, 0x82, 0x7a, 0x9a, 0x51, 0xa4, 0xea, 0x35, 0xd7); | ||
| 198 | WINADAPTER_IID(IDXCoreAdapterList, 0x526c7776, 0x40e9, 0x459b, 0xb7, 0x11, 0xf3, 0x2a, 0xd7, 0x6d, 0xfc, 0x28); | ||
| 199 | WINADAPTER_IID(IDXCoreAdapter, 0xf0db4c7f, 0xfe5a, 0x42a2, 0xbd, 0x62, 0xf2, 0xa6, 0xcf, 0x6f, 0xc8, 0x3e); | ||
| 200 | WINADAPTER_IID(IDXCoreAdapter1, 0xa0783366, 0xcfa3, 0x43be, 0x9d, 0x79, 0x55, 0xb2, 0xda, 0x97, 0xc6, 0x3c); | ||
| 201 | #endif | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/basetsd.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/basetsd.h new file mode 100644 index 0000000..4c75ef2 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/basetsd.h | |||
| @@ -0,0 +1,406 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | // These #defines prevent the idl-generated headers from trying to include | ||
| 7 | // Windows.h from the SDK rather than this one. | ||
| 8 | #define RPC_NO_WINDOWS_H | ||
| 9 | #define COM_NO_WINDOWS_H | ||
| 10 | |||
| 11 | // Allcaps type definitions | ||
| 12 | #include <stddef.h> | ||
| 13 | #include <stdint.h> | ||
| 14 | #include <string.h> | ||
| 15 | #include <limits.h> | ||
| 16 | |||
| 17 | // Note: using fixed-width here to match Windows widths | ||
| 18 | // Specifically this is different for 'long' vs 'LONG' | ||
| 19 | typedef uint8_t UINT8; | ||
| 20 | typedef int8_t INT8; | ||
| 21 | typedef uint16_t UINT16; | ||
| 22 | typedef int16_t INT16; | ||
| 23 | typedef uint32_t UINT32, UINT, ULONG, DWORD, BOOL, WINBOOL; | ||
| 24 | typedef int32_t INT32, INT, LONG; | ||
| 25 | typedef uint64_t UINT64, ULONG_PTR; | ||
| 26 | typedef int64_t INT64, LONG_PTR; | ||
| 27 | typedef void VOID, *HANDLE, *RPC_IF_HANDLE, *LPVOID; | ||
| 28 | typedef const void *LPCVOID; | ||
| 29 | typedef size_t SIZE_T; | ||
| 30 | typedef float FLOAT; | ||
| 31 | typedef double DOUBLE; | ||
| 32 | typedef unsigned char BYTE; | ||
| 33 | typedef int HWND; | ||
| 34 | typedef int PALETTEENTRY; | ||
| 35 | typedef int HDC; | ||
| 36 | typedef uint16_t WORD; | ||
| 37 | typedef void* PVOID; | ||
| 38 | typedef char BOOLEAN; | ||
| 39 | typedef uint64_t ULONGLONG; | ||
| 40 | typedef uint16_t USHORT, *PUSHORT; | ||
| 41 | typedef int64_t LONGLONG, *PLONGLONG; | ||
| 42 | typedef int64_t LONG_PTR, *PLONG_PTR; | ||
| 43 | typedef int64_t LONG64, *PLONG64; | ||
| 44 | typedef uint64_t ULONG64, *PULONG64; | ||
| 45 | typedef wchar_t WCHAR, *PWSTR; | ||
| 46 | typedef uint8_t UCHAR, *PUCHAR; | ||
| 47 | typedef uint64_t ULONG_PTR, *PULONG_PTR; | ||
| 48 | typedef uint64_t UINT_PTR, *PUINT_PTR; | ||
| 49 | typedef int64_t INT_PTR, *PINT_PTR; | ||
| 50 | |||
| 51 | // Note: WCHAR is not the same between Windows and Linux, to enable | ||
| 52 | // string manipulation APIs to work with resulting strings. | ||
| 53 | // APIs to D3D/DXCore will work on Linux wchars, but beware with | ||
| 54 | // interactions directly with the Windows kernel. | ||
| 55 | typedef char CHAR, *PSTR, *LPSTR, TCHAR, *PTSTR; | ||
| 56 | typedef const char *LPCSTR, *PCSTR, *LPCTSTR, *PCTSTR; | ||
| 57 | typedef wchar_t WCHAR, *PWSTR, *LPWSTR, *PWCHAR; | ||
| 58 | typedef const wchar_t *LPCWSTR, *PCWSTR; | ||
| 59 | |||
| 60 | #undef LONG_MAX | ||
| 61 | #define LONG_MAX INT_MAX | ||
| 62 | #undef ULONG_MAX | ||
| 63 | #define ULONG_MAX UINT_MAX | ||
| 64 | |||
| 65 | // Misc defines | ||
| 66 | #define MIDL_INTERFACE(x) interface | ||
| 67 | #define __analysis_assume(x) | ||
| 68 | #define TRUE 1u | ||
| 69 | #define FALSE 0u | ||
| 70 | #define DECLSPEC_UUID(x) | ||
| 71 | #define DECLSPEC_NOVTABLE | ||
| 72 | #define DECLSPEC_SELECTANY | ||
| 73 | #ifdef __cplusplus | ||
| 74 | #define EXTERN_C extern "C" | ||
| 75 | #else | ||
| 76 | #define EXTERN_C extern | ||
| 77 | #endif | ||
| 78 | #define APIENTRY | ||
| 79 | #define OUT | ||
| 80 | #define IN | ||
| 81 | #define CONST const | ||
| 82 | #define MAX_PATH 260 | ||
| 83 | #define GENERIC_ALL 0x10000000L | ||
| 84 | #define C_ASSERT(expr) static_assert((expr)) | ||
| 85 | #define _countof(a) (sizeof(a) / sizeof(*(a))) | ||
| 86 | |||
| 87 | typedef struct tagRECTL | ||
| 88 | { | ||
| 89 | LONG left; | ||
| 90 | LONG top; | ||
| 91 | LONG right; | ||
| 92 | LONG bottom; | ||
| 93 | } RECTL; | ||
| 94 | |||
| 95 | typedef struct tagPOINT | ||
| 96 | { | ||
| 97 | int x; | ||
| 98 | int y; | ||
| 99 | } POINT; | ||
| 100 | |||
| 101 | typedef struct _GUID { | ||
| 102 | uint32_t Data1; | ||
| 103 | uint16_t Data2; | ||
| 104 | uint16_t Data3; | ||
| 105 | uint8_t Data4[ 8 ]; | ||
| 106 | } GUID; | ||
| 107 | |||
| 108 | #ifdef INITGUID | ||
| 109 | #ifdef __cplusplus | ||
| 110 | #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 } } | ||
| 111 | #else | ||
| 112 | #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 } } | ||
| 113 | #endif | ||
| 114 | #else | ||
| 115 | #define DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) EXTERN_C const GUID name | ||
| 116 | #endif | ||
| 117 | |||
| 118 | typedef GUID IID; | ||
| 119 | typedef GUID UUID; | ||
| 120 | typedef GUID CLSID; | ||
| 121 | #ifdef __cplusplus | ||
| 122 | #define REFGUID const GUID & | ||
| 123 | #define REFIID const IID & | ||
| 124 | #define REFCLSID const IID & | ||
| 125 | |||
| 126 | __inline int InlineIsEqualGUID(REFGUID rguid1, REFGUID rguid2) | ||
| 127 | { | ||
| 128 | return ( | ||
| 129 | ((uint32_t *)&rguid1)[0] == ((uint32_t *)&rguid2)[0] && | ||
| 130 | ((uint32_t *)&rguid1)[1] == ((uint32_t *)&rguid2)[1] && | ||
| 131 | ((uint32_t *)&rguid1)[2] == ((uint32_t *)&rguid2)[2] && | ||
| 132 | ((uint32_t *)&rguid1)[3] == ((uint32_t *)&rguid2)[3]); | ||
| 133 | } | ||
| 134 | |||
| 135 | inline bool operator==(REFGUID guidOne, REFGUID guidOther) | ||
| 136 | { | ||
| 137 | return !!InlineIsEqualGUID(guidOne, guidOther); | ||
| 138 | } | ||
| 139 | |||
| 140 | inline bool operator!=(REFGUID guidOne, REFGUID guidOther) | ||
| 141 | { | ||
| 142 | return !(guidOne == guidOther); | ||
| 143 | } | ||
| 144 | |||
| 145 | #else | ||
| 146 | #define REFGUID const GUID * | ||
| 147 | #define REFIID const IID * | ||
| 148 | #define REFCLSID const IID * | ||
| 149 | #endif | ||
| 150 | |||
| 151 | // SAL annotations | ||
| 152 | #define _In_ | ||
| 153 | #define _In_z_ | ||
| 154 | #define _In_opt_ | ||
| 155 | #define _In_opt_z_ | ||
| 156 | #define _In_reads_(x) | ||
| 157 | #define _In_reads_opt_(x) | ||
| 158 | #define _In_reads_bytes_(x) | ||
| 159 | #define _In_reads_bytes_opt_(x) | ||
| 160 | #define _In_range_(x, y) | ||
| 161 | #define _In_bytecount_(x) | ||
| 162 | #define _Out_ | ||
| 163 | #define _Out_opt_ | ||
| 164 | #define _Outptr_ | ||
| 165 | #define _Outptr_opt_result_z_ | ||
| 166 | #define _Outptr_opt_result_bytebuffer_(x) | ||
| 167 | #define _COM_Outptr_ | ||
| 168 | #define _COM_Outptr_result_maybenull_ | ||
| 169 | #define _COM_Outptr_opt_ | ||
| 170 | #define _COM_Outptr_opt_result_maybenull_ | ||
| 171 | #define _Out_writes_(x) | ||
| 172 | #define _Out_writes_z_(x) | ||
| 173 | #define _Out_writes_opt_(x) | ||
| 174 | #define _Out_writes_all_(x) | ||
| 175 | #define _Out_writes_all_opt_(x) | ||
| 176 | #define _Out_writes_to_opt_(x, y) | ||
| 177 | #define _Out_writes_bytes_(x) | ||
| 178 | #define _Out_writes_bytes_all_(x) | ||
| 179 | #define _Out_writes_bytes_all_opt_(x) | ||
| 180 | #define _Out_writes_bytes_opt_(x) | ||
| 181 | #define _Inout_ | ||
| 182 | #define _Inout_opt_ | ||
| 183 | #define _Inout_updates_(x) | ||
| 184 | #define _Inout_updates_bytes_(x) | ||
| 185 | #define _Field_size_(x) | ||
| 186 | #define _Field_size_opt_(x) | ||
| 187 | #define _Field_size_bytes_(x) | ||
| 188 | #define _Field_size_full_(x) | ||
| 189 | #define _Field_size_full_opt_(x) | ||
| 190 | #define _Field_size_bytes_full_(x) | ||
| 191 | #define _Field_size_bytes_full_opt_(x) | ||
| 192 | #define _Field_size_bytes_part_(x, y) | ||
| 193 | #define _Field_range_(x, y) | ||
| 194 | #define _Field_z_ | ||
| 195 | #define _Check_return_ | ||
| 196 | #define _IRQL_requires_(x) | ||
| 197 | #define _IRQL_requires_min_(x) | ||
| 198 | #define _IRQL_requires_max_(x) | ||
| 199 | #define _At_(x, y) | ||
| 200 | #define _Always_(x) | ||
| 201 | #define _Return_type_success_(x) | ||
| 202 | #define _Translates_Win32_to_HRESULT_(x) | ||
| 203 | #define _Maybenull_ | ||
| 204 | #define _Outptr_result_maybenull_ | ||
| 205 | #define _Outptr_result_nullonfailure_ | ||
| 206 | #define _Analysis_assume_(x) | ||
| 207 | #define _Success_(x) | ||
| 208 | #define _In_count_(x) | ||
| 209 | #define _In_opt_count_(x) | ||
| 210 | #define _Use_decl_annotations_ | ||
| 211 | #define _Null_terminated_ | ||
| 212 | |||
| 213 | // Calling conventions | ||
| 214 | #define __cdecl | ||
| 215 | #define __stdcall | ||
| 216 | #define STDMETHODCALLTYPE | ||
| 217 | #define STDAPICALLTYPE | ||
| 218 | #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE | ||
| 219 | #define WINAPI | ||
| 220 | |||
| 221 | #define interface struct | ||
| 222 | #if defined (__cplusplus) && !defined (CINTERFACE) | ||
| 223 | #define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method | ||
| 224 | #define STDMETHOD_(type, method) virtual type STDMETHODCALLTYPE method | ||
| 225 | #define PURE = 0 | ||
| 226 | #define THIS_ | ||
| 227 | #define THIS void | ||
| 228 | #define DECLARE_INTERFACE(iface) interface DECLSPEC_NOVTABLE iface | ||
| 229 | #define DECLARE_INTERFACE_(iface, baseiface) interface DECLSPEC_NOVTABLE iface : public baseiface | ||
| 230 | |||
| 231 | interface IUnknown; | ||
| 232 | extern "C++" | ||
| 233 | { | ||
| 234 | template<typename T> void** IID_PPV_ARGS_Helper(T** pp) | ||
| 235 | { | ||
| 236 | (void)static_cast<IUnknown*>(*pp); | ||
| 237 | return reinterpret_cast<void**>(pp); | ||
| 238 | } | ||
| 239 | } | ||
| 240 | #define IID_PPV_ARGS(ppType) __uuidof (**(ppType)), IID_PPV_ARGS_Helper (ppType) | ||
| 241 | #else | ||
| 242 | #define STDMETHOD(method) HRESULT (STDMETHODCALLTYPE *method) | ||
| 243 | #define STDMETHOD_(type, method) type (STDMETHODCALLTYPE *method) | ||
| 244 | #define PURE | ||
| 245 | #define THIS_ INTERFACE *This, | ||
| 246 | #define THIS INTERFACE *This | ||
| 247 | #ifdef CONST_VTABLE | ||
| 248 | #define DECLARE_INTERFACE(iface) typedef interface iface { const struct iface##Vtbl *lpVtbl; } iface; typedef const struct iface##Vtbl iface##Vtbl; const struct iface##Vtbl | ||
| 249 | #else | ||
| 250 | #define DECLARE_INTERFACE(iface) typedef interface iface { struct iface##Vtbl *lpVtbl; } iface; typedef struct iface##Vtbl iface##Vtbl; struct iface##Vtbl | ||
| 251 | #endif | ||
| 252 | #define DECLARE_INTERFACE_(iface, baseiface) DECLARE_INTERFACE (iface) | ||
| 253 | #endif | ||
| 254 | |||
| 255 | #define IFACEMETHOD(method) /*override*/ STDMETHOD (method) | ||
| 256 | #define IFACEMETHOD_(type, method) /*override*/ STDMETHOD_(type, method) | ||
| 257 | #ifndef BEGIN_INTERFACE | ||
| 258 | #define BEGIN_INTERFACE | ||
| 259 | #define END_INTERFACE | ||
| 260 | #endif | ||
| 261 | |||
| 262 | // Error codes | ||
| 263 | typedef LONG HRESULT; | ||
| 264 | #define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) | ||
| 265 | #define FAILED(hr) (((HRESULT)(hr)) < 0) | ||
| 266 | #define S_OK ((HRESULT)0L) | ||
| 267 | #define S_FALSE ((HRESULT)1L) | ||
| 268 | #define E_NOTIMPL ((HRESULT)0x80004001L) | ||
| 269 | #define E_OUTOFMEMORY ((HRESULT)0x8007000EL) | ||
| 270 | #define E_INVALIDARG ((HRESULT)0x80070057L) | ||
| 271 | #define E_NOINTERFACE ((HRESULT)0x80004002L) | ||
| 272 | #define E_POINTER ((HRESULT)0x80004003L) | ||
| 273 | #define E_HANDLE ((HRESULT)0x80070006L) | ||
| 274 | #define E_ABORT ((HRESULT)0x80004004L) | ||
| 275 | #define E_FAIL ((HRESULT)0x80004005L) | ||
| 276 | #define E_ACCESSDENIED ((HRESULT)0x80070005L) | ||
| 277 | #define E_UNEXPECTED ((HRESULT)0x8000FFFFL) | ||
| 278 | #define DXGI_ERROR_INVALID_CALL ((HRESULT)0x887A0001L) | ||
| 279 | #define DXGI_ERROR_NOT_FOUND ((HRESULT)0x887A0002L) | ||
| 280 | #define DXGI_ERROR_MORE_DATA ((HRESULT)0x887A0003L) | ||
| 281 | #define DXGI_ERROR_UNSUPPORTED ((HRESULT)0x887A0004L) | ||
| 282 | #define DXGI_ERROR_DEVICE_REMOVED ((HRESULT)0x887A0005L) | ||
| 283 | #define DXGI_ERROR_DEVICE_HUNG ((HRESULT)0x887A0006L) | ||
| 284 | #define DXGI_ERROR_DEVICE_RESET ((HRESULT)0x887A0007L) | ||
| 285 | #define DXGI_ERROR_DRIVER_INTERNAL_ERROR ((HRESULT)0x887A0020L) | ||
| 286 | #define DXGI_ERROR_SDK_COMPONENT_MISSING ((HRESULT)0x887A002DL) | ||
| 287 | |||
| 288 | typedef struct _LUID | ||
| 289 | { | ||
| 290 | ULONG LowPart; | ||
| 291 | LONG HighPart; | ||
| 292 | } LUID; | ||
| 293 | |||
| 294 | typedef struct _RECT | ||
| 295 | { | ||
| 296 | int left; | ||
| 297 | int top; | ||
| 298 | int right; | ||
| 299 | int bottom; | ||
| 300 | } RECT; | ||
| 301 | |||
| 302 | typedef union _LARGE_INTEGER { | ||
| 303 | struct { | ||
| 304 | uint32_t LowPart; | ||
| 305 | uint32_t HighPart; | ||
| 306 | } u; | ||
| 307 | int64_t QuadPart; | ||
| 308 | } LARGE_INTEGER; | ||
| 309 | typedef LARGE_INTEGER *PLARGE_INTEGER; | ||
| 310 | |||
| 311 | typedef union _ULARGE_INTEGER { | ||
| 312 | struct { | ||
| 313 | uint32_t LowPart; | ||
| 314 | uint32_t HighPart; | ||
| 315 | } u; | ||
| 316 | uint64_t QuadPart; | ||
| 317 | } ULARGE_INTEGER; | ||
| 318 | typedef ULARGE_INTEGER *PULARGE_INTEGER; | ||
| 319 | |||
| 320 | #define DECLARE_HANDLE(name) \ | ||
| 321 | struct name##__ { \ | ||
| 322 | int unused; \ | ||
| 323 | }; \ | ||
| 324 | typedef struct name##__ *name | ||
| 325 | |||
| 326 | typedef struct _SECURITY_ATTRIBUTES { | ||
| 327 | DWORD nLength; | ||
| 328 | LPVOID lpSecurityDescriptor; | ||
| 329 | WINBOOL bInheritHandle; | ||
| 330 | } SECURITY_ATTRIBUTES; | ||
| 331 | |||
| 332 | struct STATSTG; | ||
| 333 | |||
| 334 | #ifdef __cplusplus | ||
| 335 | // ENUM_FLAG_OPERATORS | ||
| 336 | // Define operator overloads to enable bit operations on enum values that are | ||
| 337 | // used to define flags. Use DEFINE_ENUM_FLAG_OPERATORS(YOUR_TYPE) to enable these | ||
| 338 | // operators on YOUR_TYPE. | ||
| 339 | extern "C++" { | ||
| 340 | template <size_t S> | ||
| 341 | struct _ENUM_FLAG_INTEGER_FOR_SIZE; | ||
| 342 | |||
| 343 | template <> | ||
| 344 | struct _ENUM_FLAG_INTEGER_FOR_SIZE<1> | ||
| 345 | { | ||
| 346 | typedef int8_t type; | ||
| 347 | }; | ||
| 348 | |||
| 349 | template <> | ||
| 350 | struct _ENUM_FLAG_INTEGER_FOR_SIZE<2> | ||
| 351 | { | ||
| 352 | typedef int16_t type; | ||
| 353 | }; | ||
| 354 | |||
| 355 | template <> | ||
| 356 | struct _ENUM_FLAG_INTEGER_FOR_SIZE<4> | ||
| 357 | { | ||
| 358 | typedef int32_t type; | ||
| 359 | }; | ||
| 360 | |||
| 361 | template <> | ||
| 362 | struct _ENUM_FLAG_INTEGER_FOR_SIZE<8> | ||
| 363 | { | ||
| 364 | typedef int64_t type; | ||
| 365 | }; | ||
| 366 | |||
| 367 | // used as an approximation of std::underlying_type<T> | ||
| 368 | template <class T> | ||
| 369 | struct _ENUM_FLAG_SIZED_INTEGER | ||
| 370 | { | ||
| 371 | typedef typename _ENUM_FLAG_INTEGER_FOR_SIZE<sizeof(T)>::type type; | ||
| 372 | }; | ||
| 373 | |||
| 374 | } | ||
| 375 | #define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) \ | ||
| 376 | extern "C++" { \ | ||
| 377 | inline constexpr ENUMTYPE operator | (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)a) | ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); } \ | ||
| 378 | inline ENUMTYPE &operator |= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type &)a) |= ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); } \ | ||
| 379 | inline constexpr ENUMTYPE operator & (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)a) & ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); } \ | ||
| 380 | inline ENUMTYPE &operator &= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type &)a) &= ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); } \ | ||
| 381 | inline constexpr ENUMTYPE operator ~ (ENUMTYPE a) { return ENUMTYPE(~((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)a)); } \ | ||
| 382 | inline constexpr ENUMTYPE operator ^ (ENUMTYPE a, ENUMTYPE b) { return ENUMTYPE(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)a) ^ ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); } \ | ||
| 383 | inline ENUMTYPE &operator ^= (ENUMTYPE &a, ENUMTYPE b) { return (ENUMTYPE &)(((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type &)a) ^= ((_ENUM_FLAG_SIZED_INTEGER<ENUMTYPE>::type)b)); } \ | ||
| 384 | } | ||
| 385 | #else | ||
| 386 | #define DEFINE_ENUM_FLAG_OPERATORS(ENUMTYPE) /* */ | ||
| 387 | #endif | ||
| 388 | |||
| 389 | // D3DX12 uses these | ||
| 390 | #include <stdlib.h> | ||
| 391 | #define HeapAlloc(heap, flags, size) malloc(size) | ||
| 392 | #define HeapFree(heap, flags, ptr) free(ptr) | ||
| 393 | |||
| 394 | #if defined(lint) | ||
| 395 | // Note: lint -e530 says don't complain about uninitialized variables for | ||
| 396 | // this variable. Error 527 has to do with unreachable code. | ||
| 397 | // -restore restores checking to the -save state | ||
| 398 | #define UNREFERENCED_PARAMETER(P) \ | ||
| 399 | /*lint -save -e527 -e530 */ \ | ||
| 400 | { \ | ||
| 401 | (P) = (P); \ | ||
| 402 | } \ | ||
| 403 | /*lint -restore */ | ||
| 404 | #else | ||
| 405 | #define UNREFERENCED_PARAMETER(P) (P) | ||
| 406 | #endif | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/oaidl.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/oaidl.h new file mode 100644 index 0000000..76f5b5f --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/oaidl.h | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | // Stub header to satisfy d3d12.h include | ||
| 5 | #pragma once \ No newline at end of file | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/ocidl.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/ocidl.h new file mode 100644 index 0000000..76f5b5f --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/ocidl.h | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | // Stub header to satisfy d3d12.h include | ||
| 5 | #pragma once \ No newline at end of file | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/rpc.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/rpc.h new file mode 100644 index 0000000..76f5b5f --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/rpc.h | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | // Stub header to satisfy d3d12.h include | ||
| 5 | #pragma once \ No newline at end of file | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/rpcndr.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/rpcndr.h new file mode 100644 index 0000000..68aa390 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/rpcndr.h | |||
| @@ -0,0 +1,78 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | // Stub header to satisfy d3d12.h include | ||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include "basetsd.h" | ||
| 8 | |||
| 9 | #define __RPCNDR_H_VERSION__ | ||
| 10 | |||
| 11 | #ifdef CONST_VTABLE | ||
| 12 | #define CONST_VTBL const | ||
| 13 | #else | ||
| 14 | #define CONST_VTBL | ||
| 15 | #endif | ||
| 16 | |||
| 17 | /* Macros for __uuidof template-based emulation */ | ||
| 18 | #if defined(__cplusplus) | ||
| 19 | #if __cpp_constexpr >= 200704l && __cpp_inline_variables >= 201606L | ||
| 20 | #define __wsl_stub_uuidof_use_constexpr 1 | ||
| 21 | #else | ||
| 22 | #define __wsl_stub_uuidof_use_constexpr 0 | ||
| 23 | #endif | ||
| 24 | #ifndef __GNUC__ | ||
| 25 | #error "Only support for compilers that support for `GNU C++ extension`" | ||
| 26 | #endif | ||
| 27 | extern "C++" { | ||
| 28 | #if __wsl_stub_uuidof_use_constexpr | ||
| 29 | __extension__ template<typename T> struct __wsl_stub_uuidof_s; | ||
| 30 | __extension__ template<typename T> constexpr const GUID &__wsl_stub_uuidof(); | ||
| 31 | #else | ||
| 32 | __extension__ template<typename T> const GUID &__wsl_stub_uuidof(); | ||
| 33 | #endif | ||
| 34 | } | ||
| 35 | |||
| 36 | #if __wsl_stub_uuidof_use_constexpr | ||
| 37 | #define __CRT_UUID_DECL(type, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ | ||
| 38 | extern "C++" \ | ||
| 39 | { \ | ||
| 40 | template <> \ | ||
| 41 | struct __wsl_stub_uuidof_s<type> \ | ||
| 42 | { \ | ||
| 43 | static constexpr IID __uuid_inst = { \ | ||
| 44 | l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}}; \ | ||
| 45 | }; \ | ||
| 46 | template <> \ | ||
| 47 | constexpr const GUID &__wsl_stub_uuidof<type>() \ | ||
| 48 | { \ | ||
| 49 | return __wsl_stub_uuidof_s<type>::__uuid_inst; \ | ||
| 50 | } \ | ||
| 51 | template <> \ | ||
| 52 | constexpr const GUID &__wsl_stub_uuidof<type *>() \ | ||
| 53 | { \ | ||
| 54 | return __wsl_stub_uuidof_s<type>::__uuid_inst; \ | ||
| 55 | } \ | ||
| 56 | } | ||
| 57 | #else | ||
| 58 | #define __CRT_UUID_DECL(type, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \ | ||
| 59 | extern "C++" \ | ||
| 60 | { \ | ||
| 61 | template <> \ | ||
| 62 | inline const GUID &__wsl_stub_uuidof<type>() \ | ||
| 63 | { \ | ||
| 64 | static const IID __uuid_inst = { \ | ||
| 65 | l, w1, w2, {b1, b2, b3, b4, b5, b6, b7, b8}}; \ | ||
| 66 | return __uuid_inst; \ | ||
| 67 | } \ | ||
| 68 | template <> \ | ||
| 69 | inline const GUID &__wsl_stub_uuidof<type *>() \ | ||
| 70 | { \ | ||
| 71 | return __wsl_stub_uuidof<type>(); \ | ||
| 72 | } \ | ||
| 73 | } | ||
| 74 | #endif | ||
| 75 | #define __uuidof(type) __wsl_stub_uuidof<__typeof(type)>() | ||
| 76 | #else | ||
| 77 | #define __CRT_UUID_DECL(type, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) | ||
| 78 | #endif | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/unknwn.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/unknwn.h new file mode 100644 index 0000000..e08ad1e --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/unknwn.h | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "unknwnbase.h" | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/unknwnbase.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/unknwnbase.h new file mode 100644 index 0000000..7a54651 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/unknwnbase.h | |||
| @@ -0,0 +1,124 @@ | |||
| 1 | /*------------------------------------------------------------------------------------- | ||
| 2 | * | ||
| 3 | * Copyright (c) Microsoft Corporation | ||
| 4 | * Licensed under the MIT license | ||
| 5 | * | ||
| 6 | *-------------------------------------------------------------------------------------*/ | ||
| 7 | |||
| 8 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ | ||
| 9 | |||
| 10 | /* File created by MIDL compiler version 8.01.0627 */ | ||
| 11 | |||
| 12 | /* verify that the <rpcndr.h> version is high enough to compile this file*/ | ||
| 13 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | ||
| 14 | #define __REQUIRED_RPCNDR_H_VERSION__ 500 | ||
| 15 | #endif | ||
| 16 | |||
| 17 | /* verify that the <rpcsal.h> version is high enough to compile this file*/ | ||
| 18 | #ifndef __REQUIRED_RPCSAL_H_VERSION__ | ||
| 19 | #define __REQUIRED_RPCSAL_H_VERSION__ 100 | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #include "rpc.h" | ||
| 23 | #include "rpcndr.h" | ||
| 24 | |||
| 25 | #ifndef __RPCNDR_H_VERSION__ | ||
| 26 | #error this stub requires an updated version of <rpcndr.h> | ||
| 27 | #endif /* __RPCNDR_H_VERSION__ */ | ||
| 28 | |||
| 29 | #ifndef COM_NO_WINDOWS_H | ||
| 30 | #include "windows.h" | ||
| 31 | #include "ole2.h" | ||
| 32 | #endif /*COM_NO_WINDOWS_H*/ | ||
| 33 | |||
| 34 | #ifndef __unknwnbase_h__ | ||
| 35 | #define __unknwnbase_h__ | ||
| 36 | |||
| 37 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) | ||
| 38 | #pragma once | ||
| 39 | #endif | ||
| 40 | |||
| 41 | /* Forward Declarations */ | ||
| 42 | |||
| 43 | #ifndef __IUnknown_FWD_DEFINED__ | ||
| 44 | #define __IUnknown_FWD_DEFINED__ | ||
| 45 | typedef interface IUnknown IUnknown; | ||
| 46 | |||
| 47 | #endif /* __IUnknown_FWD_DEFINED__ */ | ||
| 48 | |||
| 49 | #ifndef __IUnknown_INTERFACE_DEFINED__ | ||
| 50 | #define __IUnknown_INTERFACE_DEFINED__ | ||
| 51 | |||
| 52 | /* interface IUnknown */ | ||
| 53 | /* [unique][uuid][object][local] */ | ||
| 54 | |||
| 55 | typedef /* [unique] */ IUnknown *LPUNKNOWN; | ||
| 56 | |||
| 57 | EXTERN_C const IID IID_IUnknown; | ||
| 58 | |||
| 59 | #if defined(__cplusplus) && !defined(CINTERFACE) | ||
| 60 | extern "C++" | ||
| 61 | { | ||
| 62 | MIDL_INTERFACE("00000000-0000-0000-c000-000000000046") | ||
| 63 | IUnknown | ||
| 64 | { | ||
| 65 | BEGIN_INTERFACE | ||
| 66 | |||
| 67 | virtual HRESULT STDMETHODCALLTYPE QueryInterface( | ||
| 68 | REFIID riid, | ||
| 69 | void **ppvObject) = 0; | ||
| 70 | |||
| 71 | virtual ULONG STDMETHODCALLTYPE AddRef() = 0; | ||
| 72 | |||
| 73 | virtual ULONG STDMETHODCALLTYPE Release() = 0; | ||
| 74 | |||
| 75 | template <class Q> | ||
| 76 | HRESULT | ||
| 77 | STDMETHODCALLTYPE | ||
| 78 | QueryInterface(_COM_Outptr_ Q * *pp) | ||
| 79 | { | ||
| 80 | return QueryInterface(__uuidof(Q), (void **)pp); | ||
| 81 | } | ||
| 82 | END_INTERFACE | ||
| 83 | }; | ||
| 84 | } | ||
| 85 | #ifdef __CRT_UUID_DECL | ||
| 86 | __CRT_UUID_DECL(IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46) | ||
| 87 | #endif | ||
| 88 | #else | ||
| 89 | typedef struct IUnknownVtbl { | ||
| 90 | BEGIN_INTERFACE | ||
| 91 | |||
| 92 | /*** IUnknown methods ***/ | ||
| 93 | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | ||
| 94 | IUnknown *This, | ||
| 95 | REFIID riid, | ||
| 96 | void **ppvObject); | ||
| 97 | |||
| 98 | ULONG (STDMETHODCALLTYPE *AddRef)( | ||
| 99 | IUnknown *This); | ||
| 100 | |||
| 101 | ULONG (STDMETHODCALLTYPE *Release)( | ||
| 102 | IUnknown *This); | ||
| 103 | |||
| 104 | END_INTERFACE | ||
| 105 | } IUnknownVtbl; | ||
| 106 | |||
| 107 | interface IUnknown { | ||
| 108 | CONST_VTBL IUnknownVtbl* lpVtbl; | ||
| 109 | }; | ||
| 110 | |||
| 111 | #ifdef COBJMACROS | ||
| 112 | /*** IUnknown methods ***/ | ||
| 113 | #define IUnknown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | ||
| 114 | #define IUnknown_AddRef(This) (This)->lpVtbl->AddRef(This) | ||
| 115 | #define IUnknown_Release(This) (This)->lpVtbl->Release(This) | ||
| 116 | #endif | ||
| 117 | |||
| 118 | #endif | ||
| 119 | |||
| 120 | #endif /* __IUnknown_INTERFACE_DEFINED__ */ | ||
| 121 | |||
| 122 | DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46); | ||
| 123 | |||
| 124 | #endif /* __unknwnbase_h__ */ | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/winapifamily.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/winapifamily.h new file mode 100644 index 0000000..064c4c2 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/winapifamily.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | // Stub header to satisfy d3d12.h include. Unconditionally light up all APIs. | ||
| 5 | #pragma once | ||
| 6 | #define WINAPI_FAMILY_PARTITION(Partitions) 1 \ No newline at end of file | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/wrl/client.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/wrl/client.h new file mode 100644 index 0000000..64293a7 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/wrl/client.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | // Stub to satisfy d3dx12.h include | ||
| 5 | #pragma once | ||
| 6 | #include <wsl/wrladapter.h> \ No newline at end of file | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/wrl/implements.h b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/wrl/implements.h new file mode 100644 index 0000000..5a3979e --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/stubs/wrl/implements.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | // Stub to satisfy DML TF runtime includes | ||
| 5 | #pragma once | ||
| 6 | #include <wsl/wrladapter.h> \ No newline at end of file | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/winadapter.h b/contrib/DirectX-Headers-1.618.2/include/wsl/winadapter.h new file mode 100644 index 0000000..ccb2b3c --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/winadapter.h | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #include <unknwn.h> | ||
diff --git a/contrib/DirectX-Headers-1.618.2/include/wsl/wrladapter.h b/contrib/DirectX-Headers-1.618.2/include/wsl/wrladapter.h new file mode 100644 index 0000000..fcfd894 --- /dev/null +++ b/contrib/DirectX-Headers-1.618.2/include/wsl/wrladapter.h | |||
| @@ -0,0 +1,803 @@ | |||
| 1 | // Copyright (c) Microsoft Corporation. | ||
| 2 | // Licensed under the MIT License. | ||
| 3 | |||
| 4 | #pragma once | ||
| 5 | |||
| 6 | #include "winadapter.h" | ||
| 7 | |||
| 8 | // defined by winadapter.h and needed by some windows headers, but conflicts | ||
| 9 | // with some libc++ implementation headers | ||
| 10 | #ifdef __in | ||
| 11 | #undef __in | ||
| 12 | #endif | ||
| 13 | #ifdef __out | ||
| 14 | #undef __out | ||
| 15 | #endif | ||
| 16 | |||
| 17 | #include <type_traits> | ||
| 18 | #include <atomic> | ||
| 19 | #include <memory> | ||
| 20 | #include <new> | ||
| 21 | #include <climits> | ||
| 22 | #include <cassert> | ||
| 23 | |||
| 24 | namespace Microsoft | ||
| 25 | { | ||
| 26 | namespace WRL | ||
| 27 | { | ||
| 28 | namespace Details | ||
| 29 | { | ||
| 30 | struct BoolStruct { int Member; }; | ||
| 31 | typedef int BoolStruct::* BoolType; | ||
| 32 | |||
| 33 | template <typename T> // T should be the ComPtr<T> or a derived type of it, not just the interface | ||
| 34 | class ComPtrRefBase | ||
| 35 | { | ||
| 36 | public: | ||
| 37 | typedef typename T::InterfaceType InterfaceType; | ||
| 38 | |||
| 39 | operator IUnknown**() const throw() | ||
| 40 | { | ||
| 41 | static_assert(__is_base_of(IUnknown, InterfaceType), "Invalid cast: InterfaceType does not derive from IUnknown"); | ||
| 42 | return reinterpret_cast<IUnknown**>(ptr_->ReleaseAndGetAddressOf()); | ||
| 43 | } | ||
| 44 | |||
| 45 | protected: | ||
| 46 | T* ptr_; | ||
| 47 | }; | ||
| 48 | |||
| 49 | template <typename T> | ||
| 50 | class ComPtrRef : public Details::ComPtrRefBase<T> // T should be the ComPtr<T> or a derived type of it, not just the interface | ||
| 51 | { | ||
| 52 | using Super = Details::ComPtrRefBase<T>; | ||
| 53 | using InterfaceType = typename Super::InterfaceType; | ||
| 54 | public: | ||
| 55 | ComPtrRef(_In_opt_ T* ptr) throw() | ||
| 56 | { | ||
| 57 | this->ptr_ = ptr; | ||
| 58 | } | ||
| 59 | |||
| 60 | // Conversion operators | ||
| 61 | operator void**() const throw() | ||
| 62 | { | ||
| 63 | return reinterpret_cast<void**>(this->ptr_->ReleaseAndGetAddressOf()); | ||
| 64 | } | ||
| 65 | |||
| 66 | // This is our operator ComPtr<U> (or the latest derived class from ComPtr (e.g. WeakRef)) | ||
| 67 | operator T*() throw() | ||
| 68 | { | ||
| 69 | *this->ptr_ = nullptr; | ||
| 70 | return this->ptr_; | ||
| 71 | } | ||
| 72 | |||
| 73 | // We define operator InterfaceType**() here instead of on ComPtrRefBase<T>, since | ||
| 74 | // if InterfaceType is IUnknown or IInspectable, having it on the base will collide. | ||
| 75 | operator InterfaceType**() throw() | ||
| 76 | { | ||
| 77 | return this->ptr_->ReleaseAndGetAddressOf(); | ||
| 78 | } | ||
| 79 | |||
| 80 | // This is used for IID_PPV_ARGS in order to do __uuidof(**(ppType)). | ||
| 81 | // It does not need to clear ptr_ at this point, it is done at IID_PPV_ARGS_Helper(ComPtrRef&) later in this file. | ||
| 82 | InterfaceType* operator *() throw() | ||
| 83 | { | ||
| 84 | return this->ptr_->Get(); | ||
| 85 | } | ||
| 86 | |||
| 87 | // Explicit functions | ||
| 88 | InterfaceType* const * GetAddressOf() const throw() | ||
| 89 | { | ||
| 90 | return this->ptr_->GetAddressOf(); | ||
| 91 | } | ||
| 92 | |||
| 93 | InterfaceType** ReleaseAndGetAddressOf() throw() | ||
| 94 | { | ||
| 95 | return this->ptr_->ReleaseAndGetAddressOf(); | ||
| 96 | } | ||
| 97 | }; | ||
| 98 | } | ||
| 99 | |||
| 100 | template <typename T> | ||
| 101 | class ComPtr | ||
| 102 | { | ||
| 103 | public: | ||
| 104 | typedef T InterfaceType; | ||
| 105 | |||
| 106 | protected: | ||
| 107 | InterfaceType *ptr_; | ||
| 108 | template<class U> friend class ComPtr; | ||
| 109 | |||
| 110 | void InternalAddRef() const throw() | ||
| 111 | { | ||
| 112 | if (ptr_ != nullptr) | ||
| 113 | { | ||
| 114 | ptr_->AddRef(); | ||
| 115 | } | ||
| 116 | } | ||
| 117 | |||
| 118 | unsigned long InternalRelease() throw() | ||
| 119 | { | ||
| 120 | unsigned long ref = 0; | ||
| 121 | T* temp = ptr_; | ||
| 122 | |||
| 123 | if (temp != nullptr) | ||
| 124 | { | ||
| 125 | ptr_ = nullptr; | ||
| 126 | ref = temp->Release(); | ||
| 127 | } | ||
| 128 | |||
| 129 | return ref; | ||
| 130 | } | ||
| 131 | |||
| 132 | public: | ||
| 133 | ComPtr() throw() : ptr_(nullptr) | ||
| 134 | { | ||
| 135 | } | ||
| 136 | |||
| 137 | ComPtr(decltype(nullptr)) throw() : ptr_(nullptr) | ||
| 138 | { | ||
| 139 | } | ||
| 140 | |||
| 141 | template<class U> | ||
| 142 | ComPtr(_In_opt_ U *other) throw() : ptr_(other) | ||
| 143 | { | ||
| 144 | InternalAddRef(); | ||
| 145 | } | ||
| 146 | |||
| 147 | ComPtr(const ComPtr& other) throw() : ptr_(other.ptr_) | ||
| 148 | { | ||
| 149 | InternalAddRef(); | ||
| 150 | } | ||
| 151 | |||
| 152 | // copy constructor that allows to instantiate class when U* is convertible to T* | ||
| 153 | template<class U> | ||
| 154 | ComPtr(const ComPtr<U> &other, typename std::enable_if<std::is_convertible<U*, T*>::value, void *>::type * = 0) throw() : | ||
| 155 | ptr_(other.ptr_) | ||
| 156 | { | ||
| 157 | InternalAddRef(); | ||
| 158 | } | ||
| 159 | |||
| 160 | ComPtr(_Inout_ ComPtr &&other) throw() : ptr_(nullptr) | ||
| 161 | { | ||
| 162 | if (this != reinterpret_cast<ComPtr*>(&reinterpret_cast<unsigned char&>(other))) | ||
| 163 | { | ||
| 164 | Swap(other); | ||
| 165 | } | ||
| 166 | } | ||
| 167 | |||
| 168 | // Move constructor that allows instantiation of a class when U* is convertible to T* | ||
| 169 | template<class U> | ||
| 170 | ComPtr(_Inout_ ComPtr<U>&& other, typename std::enable_if<std::is_convertible<U*, T*>::value, void *>::type * = 0) throw() : | ||
| 171 | ptr_(other.ptr_) | ||
| 172 | { | ||
| 173 | other.ptr_ = nullptr; | ||
| 174 | } | ||
| 175 | |||
| 176 | ~ComPtr() throw() | ||
| 177 | { | ||
| 178 | InternalRelease(); | ||
| 179 | } | ||
| 180 | |||
| 181 | ComPtr& operator=(decltype(nullptr)) throw() | ||
| 182 | { | ||
| 183 | InternalRelease(); | ||
| 184 | return *this; | ||
| 185 | } | ||
| 186 | |||
| 187 | ComPtr& operator=(_In_opt_ T *other) throw() | ||
| 188 | { | ||
| 189 | if (ptr_ != other) | ||
| 190 | { | ||
| 191 | ComPtr(other).Swap(*this); | ||
| 192 | } | ||
| 193 | return *this; | ||
| 194 | } | ||
| 195 | |||
| 196 | template <typename U> | ||
| 197 | ComPtr& operator=(_In_opt_ U *other) throw() | ||
| 198 | { | ||
| 199 | ComPtr(other).Swap(*this); | ||
| 200 | return *this; | ||
| 201 | } | ||
| 202 | |||
| 203 | ComPtr& operator=(const ComPtr &other) throw() | ||
| 204 | { | ||
| 205 | if (ptr_ != other.ptr_) | ||
| 206 | { | ||
| 207 | ComPtr(other).Swap(*this); | ||
| 208 | } | ||
| 209 | return *this; | ||
| 210 | } | ||
| 211 | |||
| 212 | template<class U> | ||
| 213 | ComPtr& operator=(const ComPtr<U>& other) throw() | ||
| 214 | { | ||
| 215 | ComPtr(other).Swap(*this); | ||
| 216 | return *this; | ||
| 217 | } | ||
| 218 | |||
| 219 | ComPtr& operator=(_Inout_ ComPtr &&other) throw() | ||
| 220 | { | ||
| 221 | ComPtr(static_cast<ComPtr&&>(other)).Swap(*this); | ||
| 222 | return *this; | ||
| 223 | } | ||
| 224 | |||
| 225 | template<class U> | ||
| 226 | ComPtr& operator=(_Inout_ ComPtr<U>&& other) throw() | ||
| 227 | { | ||
| 228 | ComPtr(static_cast<ComPtr<U>&&>(other)).Swap(*this); | ||
| 229 | return *this; | ||
| 230 | } | ||
| 231 | |||
| 232 | void Swap(_Inout_ ComPtr&& r) throw() | ||
| 233 | { | ||
| 234 | T* tmp = ptr_; | ||
| 235 | ptr_ = r.ptr_; | ||
| 236 | r.ptr_ = tmp; | ||
| 237 | } | ||
| 238 | |||
| 239 | void Swap(_Inout_ ComPtr& r) throw() | ||
| 240 | { | ||
| 241 | T* tmp = ptr_; | ||
| 242 | ptr_ = r.ptr_; | ||
| 243 | r.ptr_ = tmp; | ||
| 244 | } | ||
| 245 | |||
| 246 | operator Details::BoolType() const throw() | ||
| 247 | { | ||
| 248 | return Get() != nullptr ? &Details::BoolStruct::Member : nullptr; | ||
| 249 | } | ||
| 250 | |||
| 251 | T* Get() const throw() | ||
| 252 | { | ||
| 253 | return ptr_; | ||
| 254 | } | ||
| 255 | |||
| 256 | InterfaceType* operator->() const throw() | ||
| 257 | { | ||
| 258 | return ptr_; | ||
| 259 | } | ||
| 260 | |||
| 261 | Details::ComPtrRef<ComPtr<T>> operator&() throw() | ||
| 262 | { | ||
| 263 | return Details::ComPtrRef<ComPtr<T>>(this); | ||
| 264 | } | ||
| 265 | |||
| 266 | const Details::ComPtrRef<const ComPtr<T>> operator&() const throw() | ||
| 267 | { | ||
| 268 | return Details::ComPtrRef<const ComPtr<T>>(this); | ||
| 269 | } | ||
| 270 | |||
| 271 | T* const* GetAddressOf() const throw() | ||
| 272 | { | ||
| 273 | return &ptr_; | ||
| 274 | } | ||
| 275 | |||
| 276 | T** GetAddressOf() throw() | ||
| 277 | { | ||
| 278 | return &ptr_; | ||
| 279 | } | ||
| 280 | |||
| 281 | T** ReleaseAndGetAddressOf() throw() | ||
| 282 | { | ||
| 283 | InternalRelease(); | ||
| 284 | return &ptr_; | ||
| 285 | } | ||
| 286 | |||
| 287 | T* Detach() throw() | ||
| 288 | { | ||
| 289 | T* ptr = ptr_; | ||
| 290 | ptr_ = nullptr; | ||
| 291 | return ptr; | ||
| 292 | } | ||
| 293 | |||
| 294 | void Attach(_In_opt_ InterfaceType* other) throw() | ||
| 295 | { | ||
| 296 | if (ptr_ != nullptr) | ||
| 297 | { | ||
| 298 | auto ref = ptr_->Release(); | ||
| 299 | // DBG_UNREFERENCED_LOCAL_VARIABLE(ref); | ||
| 300 | // Attaching to the same object only works if duplicate references are being coalesced. Otherwise | ||
| 301 | // re-attaching will cause the pointer to be released and may cause a crash on a subsequent dereference. | ||
| 302 | assert(ref != 0 || ptr_ != other); | ||
| 303 | } | ||
| 304 | |||
| 305 | ptr_ = other; | ||
| 306 | } | ||
| 307 | |||
| 308 | unsigned long Reset() | ||
| 309 | { | ||
| 310 | return InternalRelease(); | ||
| 311 | } | ||
| 312 | |||
| 313 | // Previously, unsafe behavior could be triggered when 'this' is ComPtr<IInspectable> or ComPtr<IUnknown> and CopyTo is used to copy to another type U. | ||
| 314 | // The user will use operator& to convert the destination into a ComPtrRef, which can then implicit cast to IInspectable** and IUnknown**. | ||
| 315 | // If this overload of CopyTo is not present, it will implicitly cast to IInspectable or IUnknown and match CopyTo(InterfaceType**) instead. | ||
| 316 | // A valid polymoprhic downcast requires run-time type checking via QueryInterface, so CopyTo(InterfaceType**) will break type safety. | ||
| 317 | // This overload matches ComPtrRef before the implicit cast takes place, preventing the unsafe downcast. | ||
| 318 | template <typename U> | ||
| 319 | HRESULT CopyTo(Details::ComPtrRef<ComPtr<U>> ptr, typename std::enable_if< | ||
| 320 | (std::is_same<T, IUnknown>::value) | ||
| 321 | && !std::is_same<U*, T*>::value, void *>::type * = 0) const throw() | ||
| 322 | { | ||
| 323 | return ptr_->QueryInterface(__uuidof(U), ptr); | ||
| 324 | } | ||
| 325 | |||
| 326 | HRESULT CopyTo(_Outptr_result_maybenull_ InterfaceType** ptr) const throw() | ||
| 327 | { | ||
| 328 | InternalAddRef(); | ||
| 329 | *ptr = ptr_; | ||
| 330 | return S_OK; | ||
| 331 | } | ||
| 332 | |||
| 333 | HRESULT CopyTo(REFIID riid, _Outptr_result_nullonfailure_ void** ptr) const throw() | ||
| 334 | { | ||
| 335 | return ptr_->QueryInterface(riid, ptr); | ||
| 336 | } | ||
| 337 | |||
| 338 | template<typename U> | ||
| 339 | HRESULT CopyTo(_Outptr_result_nullonfailure_ U** ptr) const throw() | ||
| 340 | { | ||
| 341 | return ptr_->QueryInterface(__uuidof(U), reinterpret_cast<void**>(ptr)); | ||
| 342 | } | ||
| 343 | |||
| 344 | // query for U interface | ||
| 345 | template<typename U> | ||
| 346 | HRESULT As(_Inout_ Details::ComPtrRef<ComPtr<U>> p) const throw() | ||
| 347 | { | ||
| 348 | return ptr_->QueryInterface(__uuidof(U), p); | ||
| 349 | } | ||
| 350 | |||
| 351 | // query for U interface | ||
| 352 | template<typename U> | ||
| 353 | HRESULT As(_Out_ ComPtr<U>* p) const throw() | ||
| 354 | { | ||
| 355 | return ptr_->QueryInterface(__uuidof(U), reinterpret_cast<void**>(p->ReleaseAndGetAddressOf())); | ||
| 356 | } | ||
| 357 | |||
| 358 | // query for riid interface and return as IUnknown | ||
| 359 | HRESULT AsIID(REFIID riid, _Out_ ComPtr<IUnknown>* p) const throw() | ||
| 360 | { | ||
| 361 | return ptr_->QueryInterface(riid, reinterpret_cast<void**>(p->ReleaseAndGetAddressOf())); | ||
| 362 | } | ||
| 363 | |||
| 364 | }; // ComPtr | ||
| 365 | |||
| 366 | |||
| 367 | namespace Details | ||
| 368 | { | ||
| 369 | // Empty struct used as default template parameter | ||
| 370 | class Nil | ||
| 371 | { | ||
| 372 | }; | ||
| 373 | |||
| 374 | // Empty struct used for validating template parameter types in Implements | ||
| 375 | struct ImplementsBase | ||
| 376 | { | ||
| 377 | }; | ||
| 378 | |||
| 379 | class RuntimeClassBase | ||
| 380 | { | ||
| 381 | protected: | ||
| 382 | template<typename T> | ||
| 383 | static HRESULT AsIID(_In_ T* implements, REFIID riid, _Outptr_result_nullonfailure_ void **ppvObject) noexcept | ||
| 384 | { | ||
| 385 | *ppvObject = nullptr; | ||
| 386 | bool isRefDelegated = false; | ||
| 387 | // Prefer InlineIsEqualGUID over other forms since it's better perf on 4-byte aligned data, which is almost always the case. | ||
| 388 | if (InlineIsEqualGUID(riid, __uuidof(IUnknown))) | ||
| 389 | { | ||
| 390 | *ppvObject = implements->CastToUnknown(); | ||
| 391 | static_cast<IUnknown*>(*ppvObject)->AddRef(); | ||
| 392 | return S_OK; | ||
| 393 | } | ||
| 394 | |||
| 395 | HRESULT hr = implements->CanCastTo(riid, ppvObject, &isRefDelegated); | ||
| 396 | if (SUCCEEDED(hr) && !isRefDelegated) | ||
| 397 | { | ||
| 398 | static_cast<IUnknown*>(*ppvObject)->AddRef(); | ||
| 399 | } | ||
| 400 | |||
| 401 | #ifdef _MSC_VER | ||
| 402 | #pragma warning(push) | ||
| 403 | #pragma warning(disable: 6102) // '*ppvObject' is used but may not be initialized | ||
| 404 | #endif | ||
| 405 | _Analysis_assume_(SUCCEEDED(hr) || (*ppvObject == nullptr)); | ||
| 406 | #ifdef _MSC_VER | ||
| 407 | #pragma warning(pop) | ||
| 408 | #endif | ||
| 409 | return hr; | ||
| 410 | } | ||
| 411 | |||
| 412 | public: | ||
| 413 | HRESULT RuntimeClassInitialize() noexcept | ||
| 414 | { | ||
| 415 | return S_OK; | ||
| 416 | } | ||
| 417 | }; | ||
| 418 | |||
| 419 | // Interface traits provides casting and filling iids methods helpers | ||
| 420 | template<typename I0> | ||
| 421 | struct InterfaceTraits | ||
| 422 | { | ||
| 423 | typedef I0 Base; | ||
| 424 | |||
| 425 | template<typename T> | ||
| 426 | static Base* CastToBase(_In_ T* ptr) noexcept | ||
| 427 | { | ||
| 428 | return static_cast<Base*>(ptr); | ||
| 429 | } | ||
| 430 | |||
| 431 | template<typename T> | ||
| 432 | static IUnknown* CastToUnknown(_In_ T* ptr) noexcept | ||
| 433 | { | ||
| 434 | return static_cast<IUnknown*>(static_cast<Base*>(ptr)); | ||
| 435 | } | ||
| 436 | |||
| 437 | template <typename T> | ||
| 438 | _Success_(return == true) | ||
| 439 | static bool CanCastTo(_In_ T* ptr, REFIID riid, _Outptr_ void **ppv) noexcept | ||
| 440 | { | ||
| 441 | // Prefer InlineIsEqualGUID over other forms since it's better perf on 4-byte aligned data, which is almost always the case. | ||
| 442 | if (InlineIsEqualGUID(riid, __uuidof(Base))) | ||
| 443 | { | ||
| 444 | *ppv = static_cast<Base*>(ptr); | ||
| 445 | return true; | ||
| 446 | } | ||
| 447 | |||
| 448 | return false; | ||
| 449 | } | ||
| 450 | }; | ||
| 451 | |||
| 452 | // Specialization for Nil parameter | ||
| 453 | template<> | ||
| 454 | struct InterfaceTraits<Nil> | ||
| 455 | { | ||
| 456 | typedef Nil Base; | ||
| 457 | |||
| 458 | template <typename T> | ||
| 459 | _Success_(return == true) | ||
| 460 | static bool CanCastTo(_In_ T*, REFIID, _Outptr_ void **) noexcept | ||
| 461 | { | ||
| 462 | return false; | ||
| 463 | } | ||
| 464 | }; | ||
| 465 | |||
| 466 | // ChainInterfaces - template allows specifying a derived COM interface along with its class hierarchy to allow QI for the base interfaces | ||
| 467 | template <typename I0, typename I1, typename I2 = Nil, typename I3 = Nil, | ||
| 468 | typename I4 = Nil, typename I5 = Nil, typename I6 = Nil, | ||
| 469 | typename I7 = Nil, typename I8 = Nil, typename I9 = Nil> | ||
| 470 | struct ChainInterfaces : I0 | ||
| 471 | { | ||
| 472 | protected: | ||
| 473 | HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv) throw() | ||
| 474 | { | ||
| 475 | typename InterfaceTraits<I0>::Base* ptr = InterfaceTraits<I0>::CastToBase(this); | ||
| 476 | |||
| 477 | return (InterfaceTraits<I0>::CanCastTo(this, riid, ppv) || | ||
| 478 | InterfaceTraits<I1>::CanCastTo(ptr, riid, ppv) || | ||
| 479 | InterfaceTraits<I2>::CanCastTo(ptr, riid, ppv) || | ||
| 480 | InterfaceTraits<I3>::CanCastTo(ptr, riid, ppv) || | ||
| 481 | InterfaceTraits<I4>::CanCastTo(ptr, riid, ppv) || | ||
| 482 | InterfaceTraits<I5>::CanCastTo(ptr, riid, ppv) || | ||
| 483 | InterfaceTraits<I6>::CanCastTo(ptr, riid, ppv) || | ||
| 484 | InterfaceTraits<I7>::CanCastTo(ptr, riid, ppv) || | ||
| 485 | InterfaceTraits<I8>::CanCastTo(ptr, riid, ppv) || | ||
| 486 | InterfaceTraits<I9>::CanCastTo(ptr, riid, ppv)) ? S_OK : E_NOINTERFACE; | ||
| 487 | } | ||
| 488 | |||
| 489 | IUnknown* CastToUnknown() throw() | ||
| 490 | { | ||
| 491 | return InterfaceTraits<I0>::CastToUnknown(this); | ||
| 492 | } | ||
| 493 | }; | ||
| 494 | |||
| 495 | // Helper template used by Implements. This template traverses a list of interfaces and adds them as base class and information | ||
| 496 | // to enable QI. | ||
| 497 | template <typename ...TInterfaces> | ||
| 498 | struct ImplementsHelper; | ||
| 499 | |||
| 500 | template <typename T> | ||
| 501 | struct ImplementsMarker | ||
| 502 | {}; | ||
| 503 | |||
| 504 | template <typename I0, bool isImplements> | ||
| 505 | struct MarkImplements; | ||
| 506 | |||
| 507 | template <typename I0> | ||
| 508 | struct MarkImplements<I0, false> | ||
| 509 | { | ||
| 510 | typedef I0 Type; | ||
| 511 | }; | ||
| 512 | |||
| 513 | template <typename I0> | ||
| 514 | struct MarkImplements<I0, true> | ||
| 515 | { | ||
| 516 | typedef ImplementsMarker<I0> Type; | ||
| 517 | }; | ||
| 518 | |||
| 519 | // AdjustImplements pre-processes the type list for more efficient builds. | ||
| 520 | template <typename ...Bases> | ||
| 521 | struct AdjustImplements; | ||
| 522 | |||
| 523 | template <typename I0, typename ...Bases> | ||
| 524 | struct AdjustImplements<I0, Bases...> | ||
| 525 | { | ||
| 526 | typedef ImplementsHelper<typename MarkImplements<I0, std::is_base_of<ImplementsBase, I0>::value>::Type, Bases...> Type; | ||
| 527 | }; | ||
| 528 | |||
| 529 | // Use AdjustImplements to remove instances of "Nil" from the type list. | ||
| 530 | template <typename ...Bases> | ||
| 531 | struct AdjustImplements<Nil, Bases...> | ||
| 532 | { | ||
| 533 | typedef typename AdjustImplements<Bases...>::Type Type; | ||
| 534 | }; | ||
| 535 | |||
| 536 | template <> | ||
| 537 | struct AdjustImplements<> | ||
| 538 | { | ||
| 539 | typedef ImplementsHelper<> Type; | ||
| 540 | }; | ||
| 541 | |||
| 542 | // Specialization handles unadorned interfaces | ||
| 543 | template <typename I0, typename ...TInterfaces> | ||
| 544 | struct ImplementsHelper<I0, TInterfaces...> : | ||
| 545 | I0, | ||
| 546 | AdjustImplements<TInterfaces...>::Type | ||
| 547 | { | ||
| 548 | template <typename ...> friend struct ImplementsHelper; | ||
| 549 | friend class RuntimeClassBase; | ||
| 550 | |||
| 551 | protected: | ||
| 552 | |||
| 553 | HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv, bool *pRefDelegated = nullptr) noexcept | ||
| 554 | { | ||
| 555 | // Prefer InlineIsEqualGUID over other forms since it's better perf on 4-byte aligned data, which is almost always the case. | ||
| 556 | if (InlineIsEqualGUID(riid, __uuidof(I0))) | ||
| 557 | { | ||
| 558 | *ppv = reinterpret_cast<I0*>(reinterpret_cast<void*>(this)); | ||
| 559 | return S_OK; | ||
| 560 | } | ||
| 561 | return AdjustImplements<TInterfaces...>::Type::CanCastTo(riid, ppv, pRefDelegated); | ||
| 562 | } | ||
| 563 | |||
| 564 | IUnknown* CastToUnknown() noexcept | ||
| 565 | { | ||
| 566 | return reinterpret_cast<I0*>(reinterpret_cast<void*>(this)); | ||
| 567 | } | ||
| 568 | }; | ||
| 569 | |||
| 570 | |||
| 571 | // Selector is used to "tag" base interfaces to be used in casting, since a runtime class may indirectly derive from | ||
| 572 | // the same interface or Implements<> template multiple times | ||
| 573 | template <typename base, typename disciminator> | ||
| 574 | struct Selector : public base | ||
| 575 | { | ||
| 576 | }; | ||
| 577 | |||
| 578 | // Specialization handles types that derive from ImplementsHelper (e.g. nested Implements). | ||
| 579 | template <typename I0, typename ...TInterfaces> | ||
| 580 | struct ImplementsHelper<ImplementsMarker<I0>, TInterfaces...> : | ||
| 581 | Selector<I0, ImplementsHelper<ImplementsMarker<I0>, TInterfaces...>>, | ||
| 582 | Selector<typename AdjustImplements<TInterfaces...>::Type, ImplementsHelper<ImplementsMarker<I0>, TInterfaces...>> | ||
| 583 | { | ||
| 584 | template <typename ...> friend struct ImplementsHelper; | ||
| 585 | friend class RuntimeClassBase; | ||
| 586 | |||
| 587 | protected: | ||
| 588 | typedef Selector<I0, ImplementsHelper<ImplementsMarker<I0>, TInterfaces...>> CurrentType; | ||
| 589 | typedef Selector<typename AdjustImplements<TInterfaces...>::Type, ImplementsHelper<ImplementsMarker<I0>, TInterfaces...>> BaseType; | ||
| 590 | |||
| 591 | HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv, bool *pRefDelegated = nullptr) noexcept | ||
| 592 | { | ||
| 593 | HRESULT hr = CurrentType::CanCastTo(riid, ppv); | ||
| 594 | if (hr == E_NOINTERFACE) | ||
| 595 | { | ||
| 596 | hr = BaseType::CanCastTo(riid, ppv, pRefDelegated); | ||
| 597 | } | ||
| 598 | return hr; | ||
| 599 | } | ||
| 600 | |||
| 601 | IUnknown* CastToUnknown() noexcept | ||
| 602 | { | ||
| 603 | // First in list wins. | ||
| 604 | return CurrentType::CastToUnknown(); | ||
| 605 | } | ||
| 606 | }; | ||
| 607 | |||
| 608 | // terminal case specialization. | ||
| 609 | template <> | ||
| 610 | struct ImplementsHelper<> | ||
| 611 | { | ||
| 612 | template <typename ...> friend struct ImplementsHelper; | ||
| 613 | friend class RuntimeClassBase; | ||
| 614 | |||
| 615 | protected: | ||
| 616 | HRESULT CanCastTo(_In_ REFIID /*riid*/, _Outptr_ void ** /*ppv*/, bool * /*pRefDelegated*/ = nullptr) noexcept | ||
| 617 | { | ||
| 618 | return E_NOINTERFACE; | ||
| 619 | } | ||
| 620 | |||
| 621 | // IUnknown* CastToUnknown() noexcept; // not defined for terminal case. | ||
| 622 | }; | ||
| 623 | |||
| 624 | // Specialization handles chaining interfaces | ||
| 625 | template <typename C0, typename C1, typename C2, typename C3, typename C4, typename C5, typename C6, typename C7, typename C8, typename C9, typename ...TInterfaces> | ||
| 626 | struct ImplementsHelper<ChainInterfaces<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>, TInterfaces...> : | ||
| 627 | ChainInterfaces<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>, | ||
| 628 | AdjustImplements<TInterfaces...>::Type | ||
| 629 | { | ||
| 630 | template <typename ...> friend struct ImplementsHelper; | ||
| 631 | friend class RuntimeClassBase; | ||
| 632 | |||
| 633 | protected: | ||
| 634 | typedef typename AdjustImplements<TInterfaces...>::Type BaseType; | ||
| 635 | |||
| 636 | HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv, bool *pRefDelegated = nullptr) noexcept | ||
| 637 | { | ||
| 638 | HRESULT hr = ChainInterfaces<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>::CanCastTo(riid, ppv); | ||
| 639 | if (FAILED(hr)) | ||
| 640 | { | ||
| 641 | hr = BaseType::CanCastTo(riid, ppv, pRefDelegated); | ||
| 642 | } | ||
| 643 | |||
| 644 | return hr; | ||
| 645 | } | ||
| 646 | |||
| 647 | IUnknown* CastToUnknown() noexcept | ||
| 648 | { | ||
| 649 | return ChainInterfaces<C0, C1, C2, C3, C4, C5, C6, C7, C8, C9>::CastToUnknown(); | ||
| 650 | } | ||
| 651 | }; | ||
| 652 | |||
| 653 | // Implements - template implementing QI using the information provided through its template parameters | ||
| 654 | // Each template parameter has to be one of the following: | ||
| 655 | // * COM Interface | ||
| 656 | // * A class that implements one or more COM interfaces | ||
| 657 | // * ChainInterfaces template | ||
| 658 | template <typename I0, typename ...TInterfaces> | ||
| 659 | struct Implements : | ||
| 660 | AdjustImplements<I0, TInterfaces...>::Type, | ||
| 661 | ImplementsBase | ||
| 662 | { | ||
| 663 | public: | ||
| 664 | typedef I0 FirstInterface; | ||
| 665 | protected: | ||
| 666 | typedef typename AdjustImplements<I0, TInterfaces...>::Type BaseType; | ||
| 667 | template <typename ...> friend struct ImplementsHelper; | ||
| 668 | friend class RuntimeClassBase; | ||
| 669 | |||
| 670 | HRESULT CanCastTo(REFIID riid, _Outptr_ void **ppv) noexcept | ||
| 671 | { | ||
| 672 | return BaseType::CanCastTo(riid, ppv); | ||
| 673 | } | ||
| 674 | |||
| 675 | IUnknown* CastToUnknown() noexcept | ||
| 676 | { | ||
| 677 | return BaseType::CastToUnknown(); | ||
| 678 | } | ||
| 679 | }; | ||
| 680 | |||
| 681 | // Used on RuntimeClass to protect it from being constructed with new | ||
| 682 | class DontUseNewUseMake | ||
| 683 | { | ||
| 684 | private: | ||
| 685 | void* operator new(size_t) noexcept | ||
| 686 | { | ||
| 687 | assert(false); | ||
| 688 | return 0; | ||
| 689 | } | ||
| 690 | |||
| 691 | public: | ||
| 692 | void* operator new(size_t, _In_ void* placement) noexcept | ||
| 693 | { | ||
| 694 | return placement; | ||
| 695 | } | ||
| 696 | }; | ||
| 697 | |||
| 698 | template <typename ...TInterfaces> | ||
| 699 | class RuntimeClassImpl : | ||
| 700 | public AdjustImplements<TInterfaces...>::Type, | ||
| 701 | public RuntimeClassBase, | ||
| 702 | public DontUseNewUseMake | ||
| 703 | { | ||
| 704 | public: | ||
| 705 | STDMETHOD(QueryInterface)(REFIID riid, _Outptr_result_nullonfailure_ void **ppvObject) | ||
| 706 | { | ||
| 707 | return Super::AsIID(this, riid, ppvObject); | ||
| 708 | } | ||
| 709 | |||
| 710 | STDMETHOD_(ULONG, AddRef)() | ||
| 711 | { | ||
| 712 | return InternalAddRef(); | ||
| 713 | } | ||
| 714 | |||
| 715 | STDMETHOD_(ULONG, Release)() | ||
| 716 | { | ||
| 717 | ULONG ref = InternalRelease(); | ||
| 718 | if (ref == 0) | ||
| 719 | { | ||
| 720 | this->~RuntimeClassImpl(); | ||
| 721 | delete[] reinterpret_cast<char*>(this); | ||
| 722 | } | ||
| 723 | |||
| 724 | return ref; | ||
| 725 | } | ||
| 726 | |||
| 727 | protected: | ||
| 728 | using Super = RuntimeClassBase; | ||
| 729 | static const LONG c_lProtectDestruction = -(LONG_MAX / 2); | ||
| 730 | |||
| 731 | RuntimeClassImpl() noexcept = default; | ||
| 732 | |||
| 733 | virtual ~RuntimeClassImpl() noexcept | ||
| 734 | { | ||
| 735 | // Set refcount_ to -(LONG_MAX/2) to protect destruction and | ||
| 736 | // also catch mismatched Release in debug builds | ||
| 737 | refcount_ = static_cast<ULONG>(c_lProtectDestruction); | ||
| 738 | } | ||
| 739 | |||
| 740 | ULONG InternalAddRef() noexcept | ||
| 741 | { | ||
| 742 | return ++refcount_; | ||
| 743 | } | ||
| 744 | |||
| 745 | ULONG InternalRelease() noexcept | ||
| 746 | { | ||
| 747 | return --refcount_; | ||
| 748 | } | ||
| 749 | |||
| 750 | unsigned long GetRefCount() const noexcept | ||
| 751 | { | ||
| 752 | return refcount_; | ||
| 753 | } | ||
| 754 | |||
| 755 | std::atomic<ULONG> refcount_{1}; | ||
| 756 | }; | ||
| 757 | } | ||
| 758 | |||
| 759 | template <typename ...TInterfaces> | ||
| 760 | class Base : public Details::RuntimeClassImpl<TInterfaces...> | ||
| 761 | { | ||
| 762 | Base(const Base&) = delete; | ||
| 763 | Base& operator=(const Base&) = delete; | ||
| 764 | |||
| 765 | protected: | ||
| 766 | HRESULT CustomQueryInterface(REFIID /*riid*/, _Outptr_result_nullonfailure_ void** /*ppvObject*/, _Out_ bool *handled) | ||
| 767 | { | ||
| 768 | *handled = false; | ||
| 769 | return S_OK; | ||
| 770 | } | ||
| 771 | |||
| 772 | public: | ||
| 773 | Base() throw() = default; | ||
| 774 | typedef Base RuntimeClassT; | ||
| 775 | }; | ||
| 776 | |||
| 777 | // Creates a Nano-COM object wrapped in a smart pointer. | ||
| 778 | template <typename T, typename ...TArgs> | ||
| 779 | ComPtr<T> Make(TArgs&&... args) | ||
| 780 | { | ||
| 781 | std::unique_ptr<char[]> buffer(new(std::nothrow) char[sizeof(T)]); | ||
| 782 | ComPtr<T> object; | ||
| 783 | |||
| 784 | if (buffer) | ||
| 785 | { | ||
| 786 | T* ptr = new (buffer.get())T(std::forward<TArgs>(args)...); | ||
| 787 | object.Attach(ptr); | ||
| 788 | buffer.release(); | ||
| 789 | } | ||
| 790 | |||
| 791 | return object; | ||
| 792 | } | ||
| 793 | |||
| 794 | using Details::ChainInterfaces; | ||
| 795 | } | ||
| 796 | } | ||
| 797 | |||
| 798 | // Overloaded global function to provide to IID_PPV_ARGS that support Details::ComPtrRef | ||
| 799 | template<typename T> | ||
| 800 | void** IID_PPV_ARGS_Helper(Microsoft::WRL::Details::ComPtrRef<T> pp) throw() | ||
| 801 | { | ||
| 802 | return pp; | ||
| 803 | } | ||
