123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- /*
- * Copyright 2020 Paul Gofman for CodeWeavers
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
- import "oaidl.idl";
- import "ocidl.idl";
- import "d3dcommon.idl";
- typedef enum D3D12_SHADER_VERSION_TYPE
- {
- D3D12_SHVER_PIXEL_SHADER = 0x0,
- D3D12_SHVER_VERTEX_SHADER = 0x1,
- D3D12_SHVER_GEOMETRY_SHADER = 0x2,
- D3D12_SHVER_HULL_SHADER = 0x3,
- D3D12_SHVER_DOMAIN_SHADER = 0x4,
- D3D12_SHVER_COMPUTE_SHADER = 0x5,
- D3D12_SHVER_RESERVED0 = 0xfff0,
- } D3D12_SHADER_VERSION_TYPE;
- typedef struct _D3D12_SHADER_DESC
- {
- UINT Version;
- const char *Creator;
- UINT Flags;
- UINT ConstantBuffers;
- UINT BoundResources;
- UINT InputParameters;
- UINT OutputParameters;
- UINT InstructionCount;
- UINT TempRegisterCount;
- UINT TempArrayCount;
- UINT DefCount;
- UINT DclCount;
- UINT TextureNormalInstructions;
- UINT TextureLoadInstructions;
- UINT TextureCompInstructions;
- UINT TextureBiasInstructions;
- UINT TextureGradientInstructions;
- UINT FloatInstructionCount;
- UINT IntInstructionCount;
- UINT UintInstructionCount;
- UINT StaticFlowControlCount;
- UINT DynamicFlowControlCount;
- UINT MacroInstructionCount;
- UINT ArrayInstructionCount;
- UINT CutInstructionCount;
- UINT EmitInstructionCount;
- D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
- UINT GSMaxOutputVertexCount;
- D3D_PRIMITIVE InputPrimitive;
- UINT PatchConstantParameters;
- UINT cGSInstanceCount;
- UINT cControlPoints;
- D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
- D3D_TESSELLATOR_PARTITIONING HSPartitioning;
- D3D_TESSELLATOR_DOMAIN TessellatorDomain;
- UINT cBarrierInstructions;
- UINT cInterlockedInstructions;
- UINT cTextureStoreInstructions;
- } D3D12_SHADER_DESC;
- typedef struct _D3D12_SHADER_VARIABLE_DESC
- {
- const char *Name;
- UINT StartOffset;
- UINT Size;
- UINT uFlags;
- void *DefaultValue;
- UINT StartTexture;
- UINT TextureSize;
- UINT StartSampler;
- UINT SamplerSize;
- } D3D12_SHADER_VARIABLE_DESC;
- typedef struct _D3D12_SHADER_TYPE_DESC
- {
- D3D_SHADER_VARIABLE_CLASS Class;
- D3D_SHADER_VARIABLE_TYPE Type;
- UINT Rows;
- UINT Columns;
- UINT Elements;
- UINT Members;
- UINT Offset;
- const char *Name;
- } D3D12_SHADER_TYPE_DESC;
- typedef struct _D3D12_SHADER_BUFFER_DESC
- {
- const char *Name;
- D3D_CBUFFER_TYPE Type;
- UINT Variables;
- UINT Size;
- UINT uFlags;
- } D3D12_SHADER_BUFFER_DESC;
- typedef struct _D3D12_SHADER_INPUT_BIND_DESC
- {
- const char *Name;
- D3D_SHADER_INPUT_TYPE Type;
- UINT BindPoint;
- UINT BindCount;
- UINT uFlags;
- D3D_RESOURCE_RETURN_TYPE ReturnType;
- D3D_SRV_DIMENSION Dimension;
- UINT NumSamples;
- UINT Space;
- UINT uID;
- } D3D12_SHADER_INPUT_BIND_DESC;
- typedef struct _D3D12_SIGNATURE_PARAMETER_DESC
- {
- const char *SemanticName;
- UINT SemanticIndex;
- UINT Register;
- D3D_NAME SystemValueType;
- D3D_REGISTER_COMPONENT_TYPE ComponentType;
- BYTE Mask;
- BYTE ReadWriteMask;
- UINT Stream;
- D3D_MIN_PRECISION MinPrecision;
- } D3D12_SIGNATURE_PARAMETER_DESC;
- typedef struct _D3D12_PARAMETER_DESC
- {
- const char *Name;
- const char *SemanticName;
- D3D_SHADER_VARIABLE_TYPE Type;
- D3D_SHADER_VARIABLE_CLASS Class;
- UINT Rows;
- UINT Columns;
- D3D_INTERPOLATION_MODE InterpolationMode;
- D3D_PARAMETER_FLAGS Flags;
- UINT FirstInRegister;
- UINT FirstInComponent;
- UINT FirstOutRegister;
- UINT FirstOutComponent;
- } D3D12_PARAMETER_DESC;
- typedef struct _D3D12_FUNCTION_DESC
- {
- UINT Version;
- const char *Creator;
- UINT Flags;
- UINT ConstantBuffers;
- UINT BoundResources;
- UINT InstructionCount;
- UINT TempRegisterCount;
- UINT TempArrayCount;
- UINT DefCount;
- UINT DclCount;
- UINT TextureNormalInstructions;
- UINT TextureLoadInstructions;
- UINT TextureCompInstructions;
- UINT TextureBiasInstructions;
- UINT TextureGradientInstructions;
- UINT FloatInstructionCount;
- UINT IntInstructionCount;
- UINT UintInstructionCount;
- UINT StaticFlowControlCount;
- UINT DynamicFlowControlCount;
- UINT MacroInstructionCount;
- UINT ArrayInstructionCount;
- UINT MovInstructionCount;
- UINT MovcInstructionCount;
- UINT ConversionInstructionCount;
- UINT BitwiseInstructionCount;
- D3D_FEATURE_LEVEL MinFeatureLevel;
- UINT64 RequiredFeatureFlags;
- const char *Name;
- INT FunctionParameterCount;
- BOOL HasReturn;
- BOOL Has10Level9VertexShader;
- BOOL Has10Level9PixelShader;
- } D3D12_FUNCTION_DESC;
- typedef struct _D3D12_LIBRARY_DESC
- {
- const char *Creator;
- UINT Flags;
- UINT FunctionCount;
- } D3D12_LIBRARY_DESC;
- interface ID3D12ShaderReflectionConstantBuffer;
- [
- uuid(e913c351-783d-48ca-a1d1-4f306284ad56),
- object,
- local,
- ]
- interface ID3D12ShaderReflectionType
- {
- HRESULT GetDesc(D3D12_SHADER_TYPE_DESC *desc);
- ID3D12ShaderReflectionType *GetMemberTypeByIndex(UINT index);
- ID3D12ShaderReflectionType *GetMemberTypeByName(const char *name);
- const char *GetMemberTypeName(UINT index);
- HRESULT IsEqual(ID3D12ShaderReflectionType *type);
- ID3D12ShaderReflectionType *GetSubType();
- ID3D12ShaderReflectionType *GetBaseClass();
- UINT GetNumInterfaces();
- ID3D12ShaderReflectionType *GetInterfaceByIndex(UINT index);
- HRESULT IsOfType(ID3D12ShaderReflectionType *type);
- HRESULT ImplementsInterface(ID3D12ShaderReflectionType *base);
- }
- [
- uuid(8337a8a6-a216-444a-b2f4-314733a73aea),
- object,
- local,
- ]
- interface ID3D12ShaderReflectionVariable
- {
- HRESULT GetDesc(D3D12_SHADER_VARIABLE_DESC *desc);
- ID3D12ShaderReflectionType *GetType();
- ID3D12ShaderReflectionConstantBuffer *GetBuffer();
- UINT GetInterfaceSlot(UINT index);
- }
- [
- uuid(c59598b4-48b3-4869-b9b1-b1618b14a8b7),
- object,
- local,
- ]
- interface ID3D12ShaderReflectionConstantBuffer
- {
- HRESULT GetDesc(D3D12_SHADER_BUFFER_DESC *desc);
- ID3D12ShaderReflectionVariable *GetVariableByIndex(UINT index);
- ID3D12ShaderReflectionVariable *GetVariableByName(const char *name);
- }
- [
- uuid(5a58797d-a72c-478d-8ba2-efc6b0efe88e),
- object,
- local,
- ]
- interface ID3D12ShaderReflection : IUnknown
- {
- HRESULT GetDesc(D3D12_SHADER_DESC *desc);
- ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByIndex(UINT index);
- ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByName(const char *name);
- HRESULT GetResourceBindingDesc(UINT index, D3D12_SHADER_INPUT_BIND_DESC *desc);
- HRESULT GetInputParameterDesc(UINT index, D3D12_SIGNATURE_PARAMETER_DESC *desc);
- HRESULT GetOutputParameterDesc(UINT index, D3D12_SIGNATURE_PARAMETER_DESC *desc);
- HRESULT GetPatchConstantParameterDesc(UINT index, D3D12_SIGNATURE_PARAMETER_DESC *desc);
- ID3D12ShaderReflectionVariable *GetVariableByName(const char *name);
- HRESULT GetResourceBindingDescByName(const char *name, D3D12_SHADER_INPUT_BIND_DESC *desc);
- UINT GetMovInstructionCount();
- UINT GetMovcInstructionCount();
- UINT GetConversionInstructionCount();
- UINT GetBitwiseInstructionCount();
- D3D_PRIMITIVE GetGSInputPrimitive();
- BOOL IsSampleFrequencyShader();
- UINT GetNumInterfaceSlots();
- HRESULT GetMinFeatureLevel(D3D_FEATURE_LEVEL *level);
- UINT GetThreadGroupSize(UINT *sizex, UINT *sizey, UINT *sizez);
- UINT64 GetRequiresFlags();
- }
- [
- uuid(ec25f42d-7006-4f2b-b33e-02cc3375733f),
- object,
- local,
- ]
- interface ID3D12FunctionParameterReflection
- {
- HRESULT GetDesc(D3D12_PARAMETER_DESC *desc);
- }
- [
- uuid(1108795c-2772-4ba9-b2a8-d464dc7e2799),
- object,
- local,
- ]
- interface ID3D12FunctionReflection
- {
- HRESULT GetDesc(D3D12_FUNCTION_DESC *desc);
- ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByIndex(UINT index);
- ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByName(const char *name);
- HRESULT GetResourceBindingDesc(UINT index, D3D12_SHADER_INPUT_BIND_DESC *desc);
- ID3D12ShaderReflectionVariable *GetVariableByName(const char *name);
- HRESULT GetResourceBindingDescByName(const char *name, D3D12_SHADER_INPUT_BIND_DESC *desc);
- ID3D12FunctionParameterReflection *GetFunctionParameter(INT index);
- }
- [
- uuid(8e349d19-54db-4a56-9dc9-119d87bdb804),
- object,
- local,
- ]
- interface ID3D12LibraryReflection : IUnknown
- {
- HRESULT GetDesc(D3D12_LIBRARY_DESC *desc);
- ID3D12FunctionReflection *GetFunctionByIndex(INT index);
- }
|