summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/d3d1x/d3dapi/d3d11shader.idl
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/d3d1x/d3dapi/d3d11shader.idl')
-rw-r--r--src/gallium/state_trackers/d3d1x/d3dapi/d3d11shader.idl287
1 files changed, 287 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/d3d1x/d3dapi/d3d11shader.idl b/src/gallium/state_trackers/d3d1x/d3dapi/d3d11shader.idl
new file mode 100644
index 00000000000..09588a02f5a
--- /dev/null
+++ b/src/gallium/state_trackers/d3d1x/d3dapi/d3d11shader.idl
@@ -0,0 +1,287 @@
+/**************************************************************************
+ *
+ * Copyright 2010 Luca Barbieri
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the
+ * next paragraph) shall be included in all copies or substantial
+ * portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE COPYRIGHT OWNER(S) AND/OR ITS SUPPLIERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ **************************************************************************/
+
+import "d3dcommon.idl";
+
+typedef enum D3D11_SHADER_VERSION_TYPE
+{
+ D3D11_SHVER_PIXEL_SHADER,
+ D3D11_SHVER_VERTEX_SHADER,
+ D3D11_SHVER_GEOMETRY_SHADER,
+
+ D3D11_SHVER_HULL_SHADER,
+ D3D11_SHVER_DOMAIN_SHADER,
+ D3D11_SHVER_COMPUTE_SHADER,
+} D3D11_SHADER_VERSION_TYPE;
+
+cpp_quote("#define D3D11_SHVER_GET_TYPE(v) (((v) >> 16) & 0xffff)")
+cpp_quote("#define D3D11_SHVER_GET_MAJOR(v) (((v) >> 4) & 0xf)")
+cpp_quote("#define D3D11_SHVER_GET_MINOR(v) (((v) >> 0) & 0xf)")
+
+typedef D3D_RESOURCE_RETURN_TYPE D3D11_RESOURCE_RETURN_TYPE;
+typedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE;
+
+typedef struct _D3D11_SIGNATURE_PARAMETER_DESC
+{
+ LPCSTR SemanticName;
+ UINT SemanticIndex;
+ UINT Register;
+ D3D_NAME SystemValueType;
+ D3D_REGISTER_COMPONENT_TYPE ComponentType;
+ BYTE Mask;
+ BYTE ReadWriteMask;
+ UINT Stream;
+} D3D11_SIGNATURE_PARAMETER_DESC;
+
+typedef struct _D3D11_SHADER_BUFFER_DESC
+{
+ LPCSTR Name;
+ D3D_CBUFFER_TYPE Type;
+ UINT Variables;
+ UINT Size;
+ UINT uFlags;
+} D3D11_SHADER_BUFFER_DESC;
+
+typedef struct _D3D11_SHADER_VARIABLE_DESC
+{
+ LPCSTR Name;
+ UINT StartOffset;
+ UINT Size;
+ UINT uFlags;
+ LPVOID DefaultValue;
+ UINT StartTexture;
+ UINT TextureSize;
+ UINT StartSampler;
+ UINT SamplerSize;
+} D3D11_SHADER_VARIABLE_DESC;
+
+typedef struct _D3D11_SHADER_TYPE_DESC
+{
+ D3D_SHADER_VARIABLE_CLASS Class;
+ D3D_SHADER_VARIABLE_TYPE Type;
+ UINT Rows;
+ UINT Columns;
+ UINT Elements;
+ UINT Members;
+ UINT Offset;
+ LPCSTR Name;
+} D3D11_SHADER_TYPE_DESC;
+
+typedef D3D_TESSELLATOR_DOMAIN D3D11_TESSELLATOR_DOMAIN;
+typedef D3D_TESSELLATOR_PARTITIONING D3D11_TESSELLATOR_PARTITIONING;
+typedef D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D11_TESSELLATOR_OUTPUT_PRIMITIVE;
+
+typedef struct _D3D11_SHADER_DESC
+{
+ UINT Version;
+ LPCSTR 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;
+} D3D11_SHADER_DESC;
+
+typedef struct _D3D11_SHADER_INPUT_BIND_DESC
+{
+ LPCSTR Name;
+ D3D_SHADER_INPUT_TYPE Type;
+ UINT BindPoint;
+ UINT BindCount;
+
+ UINT uFlags;
+ D3D_RESOURCE_RETURN_TYPE ReturnType;
+ D3D_SRV_DIMENSION Dimension;
+ UINT NumSamples;
+} D3D11_SHADER_INPUT_BIND_DESC;
+
+[local, object, uuid("6e6ffa6a-9bae-4613-a51e-91652d508c21")]
+interface ID3D11ShaderReflectionType
+{
+ HRESULT GetDesc(
+ [out] D3D11_SHADER_TYPE_DESC *pDesc
+ );
+
+ ID3D11ShaderReflectionType* GetMemberTypeByIndex(
+ [in] UINT Index
+ );
+
+ ID3D11ShaderReflectionType* GetMemberTypeByName(
+ [in] LPCSTR Name
+ );
+
+ LPCSTR GetMemberTypeName(
+ [in] UINT Index
+ );
+
+ HRESULT IsEqual(
+ [in] ID3D11ShaderReflectionType* pType
+ );
+ ID3D11ShaderReflectionType* GetSubType();
+ ID3D11ShaderReflectionType* GetBaseClass();
+ UINT GetNumInterfaces();
+ ID3D11ShaderReflectionType* GetInterfaceByIndex(
+ [in] UINT uIndex
+ );
+ HRESULT IsOfType(
+ [in] ID3D11ShaderReflectionType* pType
+ );
+ HRESULT ImplementsInterface(
+ [in] ID3D11ShaderReflectionType* pBase
+ );
+};
+
+interface ID3D11ShaderReflectionConstantBuffer;
+
+[object, local, uuid("51f23923-f3e5-4bd1-91cb-606177d8db4c")]
+interface ID3D11ShaderReflectionVariable
+{
+ HRESULT GetDesc(
+ [out] D3D11_SHADER_VARIABLE_DESC *pDesc
+ );
+
+ ID3D11ShaderReflectionType* GetType();
+ ID3D11ShaderReflectionConstantBuffer* GetBuffer();
+
+ UINT GetInterfaceSlot(
+ [in] UINT uArrayIndex
+ );
+};
+
+[object, local, uuid("eb62d63d-93dd-4318-8ae8-c6f83ad371b8")]
+interface ID3D11ShaderReflectionConstantBuffer
+{
+ HRESULT GetDesc(
+ [out] D3D11_SHADER_BUFFER_DESC *pDesc
+ );
+
+ ID3D11ShaderReflectionVariable* GetVariableByIndex(
+ [in] UINT Index
+ );
+
+ ID3D11ShaderReflectionVariable* GetVariableByName(
+ [in] LPCSTR Name
+ );
+};
+
+[object,local,uuid("0a233719-3960-4578-9d7c-203b8b1d9cc1")]
+interface ID3D11ShaderReflection
+{
+ HRESULT GetDesc(
+ [out] D3D11_SHADER_DESC *pDesc
+ );
+
+ ID3D11ShaderReflectionConstantBuffer* GetConstantBufferByIndex(
+ [in] UINT Index
+ );
+
+ ID3D11ShaderReflectionConstantBuffer* GetConstantBufferByName(
+ [in] LPCSTR Name
+ );
+
+ HRESULT GetResourceBindingDesc(
+ [in] UINT ResourceIndex,
+ [out] D3D11_SHADER_INPUT_BIND_DESC *pDesc
+ );
+
+ HRESULT GetInputParameterDesc(
+ [in] UINT ParameterIndex,
+ [out] D3D11_SIGNATURE_PARAMETER_DESC *pDesc
+ );
+
+ HRESULT GetOutputParameterDesc
+ (
+ [in] UINT ParameterIndex,
+ [out] D3D11_SIGNATURE_PARAMETER_DESC *pDesc
+ );
+
+ HRESULT GetPatchConstantParameterDesc(
+ [in] UINT ParameterIndex,
+ [out] D3D11_SIGNATURE_PARAMETER_DESC *pDesc
+ );
+
+ ID3D11ShaderReflectionVariable* GetVariableByName(
+ [in] LPCSTR Name
+ );
+
+ HRESULT GetResourceBindingDescByName(
+ [in] LPCSTR Name,
+ [out] D3D11_SHADER_INPUT_BIND_DESC *pDesc
+ );
+
+ UINT GetMovInstructionCount();
+ UINT GetMovcInstructionCount();
+ UINT GetConversionInstructionCount();
+ UINT GetBitwiseInstructionCount();
+ D3D_PRIMITIVE GetGSInputPrimitive();
+ BOOL IsSampleFrequencyShader();
+ UINT GetNumInterfaceSlots();
+
+ HRESULT GetMinFeatureLevel(
+ [out] D3D_FEATURE_LEVEL* pLevel
+ );
+
+ UINT GetThreadGroupSize(
+ [out,optional] UINT* pSizeX,
+ [out,optional] UINT* pSizeY,
+ [out,optional] UINT* pSizeZ
+ );
+};
+