RetroArch
d3d12shader.h
Go to the documentation of this file.
1 //
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 //
5 // File: D3D12Shader.h
6 // Content: D3D12 Shader Types and APIs
7 //
9 
10 #ifndef __D3D12SHADER_H__
11 #define __D3D12SHADER_H__
12 
13 #include "d3dcommon.h"
14 
16 {
20 
21  // D3D11 Shaders
25 
28 
29 #define D3D12_SHVER_GET_TYPE(_Version) \
30  (((_Version) >> 16) & 0xffff)
31 #define D3D12_SHVER_GET_MAJOR(_Version) \
32  (((_Version) >> 4) & 0xf)
33 #define D3D12_SHVER_GET_MINOR(_Version) \
34  (((_Version) >> 0) & 0xf)
35 
36 // Slot ID for library function return
37 #define D3D_RETURN_PARAMETER_INDEX (-1)
38 
40 
42 
43 
45 {
46  LPCSTR SemanticName; // Name of the semantic
47  UINT SemanticIndex; // Index of the semantic
48  UINT Register; // Number of member variables
49  D3D_NAME SystemValueType;// A predefined system value, or D3D_NAME_UNDEFINED if not applicable
50  D3D_REGISTER_COMPONENT_TYPE ComponentType; // Scalar type (e.g. uint, float, etc.)
51  BYTE Mask; // Mask to indicate which components of the register
52  // are used (combination of D3D10_COMPONENT_MASK values)
53  BYTE ReadWriteMask; // Mask to indicate whether a given component is
54  // never written (if this is an output signature) or
55  // always read (if this is an input signature).
56  // (combination of D3D_MASK_* values)
57  UINT Stream; // Stream index
58  D3D_MIN_PRECISION MinPrecision; // Minimum desired interpolation precision
60 
62 {
63  LPCSTR Name; // Name of the constant buffer
64  D3D_CBUFFER_TYPE Type; // Indicates type of buffer content
65  UINT Variables; // Number of member variables
66  UINT Size; // Size of CB (in bytes)
67  UINT uFlags; // Buffer description flags
69 
71 {
72  LPCSTR Name; // Name of the variable
73  UINT StartOffset; // Offset in constant buffer's backing store
74  UINT Size; // Size of variable (in bytes)
75  UINT uFlags; // Variable flags
76  LPVOID DefaultValue; // Raw pointer to default value
77  UINT StartTexture; // First texture index (or -1 if no textures used)
78  UINT TextureSize; // Number of texture slots possibly used.
79  UINT StartSampler; // First sampler index (or -1 if no textures used)
80  UINT SamplerSize; // Number of sampler slots possibly used.
82 
84 {
85  D3D_SHADER_VARIABLE_CLASS Class; // Variable class (e.g. object, matrix, etc.)
86  D3D_SHADER_VARIABLE_TYPE Type; // Variable type (e.g. float, sampler, etc.)
87  UINT Rows; // Number of rows (for matrices, 1 for other numeric, 0 if not applicable)
88  UINT Columns; // Number of columns (for vectors & matrices, 1 for other numeric, 0 if not applicable)
89  UINT Elements; // Number of elements (0 if not an array)
90  UINT Members; // Number of members (0 if not a structure)
91  UINT Offset; // Offset from the start of structure (0 if not a structure member)
92  LPCSTR Name; // Name of type, can be NULL
94 
96 
98 
100 
101 typedef struct _D3D12_SHADER_DESC
102 {
103  UINT Version; // Shader version
104  LPCSTR Creator; // Creator string
105  UINT Flags; // Shader compilation/parse flags
106 
107  UINT ConstantBuffers; // Number of constant buffers
108  UINT BoundResources; // Number of bound resources
109  UINT InputParameters; // Number of parameters in the input signature
110  UINT OutputParameters; // Number of parameters in the output signature
111 
112  UINT InstructionCount; // Number of emitted instructions
113  UINT TempRegisterCount; // Number of temporary registers used
114  UINT TempArrayCount; // Number of temporary arrays used
115  UINT DefCount; // Number of constant defines
116  UINT DclCount; // Number of declarations (input + output)
117  UINT TextureNormalInstructions; // Number of non-categorized texture instructions
118  UINT TextureLoadInstructions; // Number of texture load instructions
119  UINT TextureCompInstructions; // Number of texture comparison instructions
120  UINT TextureBiasInstructions; // Number of texture bias instructions
121  UINT TextureGradientInstructions; // Number of texture gradient instructions
122  UINT FloatInstructionCount; // Number of floating point arithmetic instructions used
123  UINT IntInstructionCount; // Number of signed integer arithmetic instructions used
124  UINT UintInstructionCount; // Number of unsigned integer arithmetic instructions used
125  UINT StaticFlowControlCount; // Number of static flow control instructions used
126  UINT DynamicFlowControlCount; // Number of dynamic flow control instructions used
127  UINT MacroInstructionCount; // Number of macro instructions used
128  UINT ArrayInstructionCount; // Number of array instructions used
129  UINT CutInstructionCount; // Number of cut instructions used
130  UINT EmitInstructionCount; // Number of emit instructions used
131  D3D_PRIMITIVE_TOPOLOGY GSOutputTopology; // Geometry shader output topology
132  UINT GSMaxOutputVertexCount; // Geometry shader maximum output vertex count
133  D3D_PRIMITIVE InputPrimitive; // GS/HS input primitive
134  UINT PatchConstantParameters; // Number of parameters in the patch constant signature
135  UINT cGSInstanceCount; // Number of Geometry shader instances
136  UINT cControlPoints; // Number of control points in the HS->DS stage
137  D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive; // Primitive output by the tessellator
138  D3D_TESSELLATOR_PARTITIONING HSPartitioning; // Partitioning mode of the tessellator
139  D3D_TESSELLATOR_DOMAIN TessellatorDomain; // Domain of the tessellator (quad, tri, isoline)
140  // instruction counts
141  UINT cBarrierInstructions; // Number of barrier instructions in a compute shader
142  UINT cInterlockedInstructions; // Number of interlocked instructions
143  UINT cTextureStoreInstructions; // Number of texture writes
145 
147 {
148  LPCSTR Name; // Name of the resource
149  D3D_SHADER_INPUT_TYPE Type; // Type of resource (e.g. texture, cbuffer, etc.)
150  UINT BindPoint; // Starting bind point
151  UINT BindCount; // Number of contiguous bind points (for arrays)
152 
153  UINT uFlags; // Input binding flags
154  D3D_RESOURCE_RETURN_TYPE ReturnType; // Return type (if texture)
155  D3D_SRV_DIMENSION Dimension; // Dimension (if texture)
156  UINT NumSamples; // Number of samples (0 if not MS texture)
157  UINT Space; // Register space
158  UINT uID; // Range ID in the bytecode
160 
161 #define D3D_SHADER_REQUIRES_DOUBLES 0x00000001
162 #define D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL 0x00000002
163 #define D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE 0x00000004
164 #define D3D_SHADER_REQUIRES_64_UAVS 0x00000008
165 #define D3D_SHADER_REQUIRES_MINIMUM_PRECISION 0x00000010
166 #define D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS 0x00000020
167 #define D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS 0x00000040
168 #define D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING 0x00000080
169 #define D3D_SHADER_REQUIRES_TILED_RESOURCES 0x00000100
170 #define D3D_SHADER_REQUIRES_STENCIL_REF 0x00000200
171 #define D3D_SHADER_REQUIRES_INNER_COVERAGE 0x00000400
172 #define D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00000800
173 #define D3D_SHADER_REQUIRES_ROVS 0x00001000
174 #define D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x00002000
175 
176 
177 typedef struct _D3D12_LIBRARY_DESC
178 {
179  LPCSTR Creator; // The name of the originator of the library.
180  UINT Flags; // Compilation flags.
181  UINT FunctionCount; // Number of functions exported from the library.
183 
184 typedef struct _D3D12_FUNCTION_DESC
185 {
186  UINT Version; // Shader version
187  LPCSTR Creator; // Creator string
188  UINT Flags; // Shader compilation/parse flags
189 
190  UINT ConstantBuffers; // Number of constant buffers
191  UINT BoundResources; // Number of bound resources
192 
193  UINT InstructionCount; // Number of emitted instructions
194  UINT TempRegisterCount; // Number of temporary registers used
195  UINT TempArrayCount; // Number of temporary arrays used
196  UINT DefCount; // Number of constant defines
197  UINT DclCount; // Number of declarations (input + output)
198  UINT TextureNormalInstructions; // Number of non-categorized texture instructions
199  UINT TextureLoadInstructions; // Number of texture load instructions
200  UINT TextureCompInstructions; // Number of texture comparison instructions
201  UINT TextureBiasInstructions; // Number of texture bias instructions
202  UINT TextureGradientInstructions; // Number of texture gradient instructions
203  UINT FloatInstructionCount; // Number of floating point arithmetic instructions used
204  UINT IntInstructionCount; // Number of signed integer arithmetic instructions used
205  UINT UintInstructionCount; // Number of unsigned integer arithmetic instructions used
206  UINT StaticFlowControlCount; // Number of static flow control instructions used
207  UINT DynamicFlowControlCount; // Number of dynamic flow control instructions used
208  UINT MacroInstructionCount; // Number of macro instructions used
209  UINT ArrayInstructionCount; // Number of array instructions used
210  UINT MovInstructionCount; // Number of mov instructions used
211  UINT MovcInstructionCount; // Number of movc instructions used
212  UINT ConversionInstructionCount; // Number of type conversion instructions used
213  UINT BitwiseInstructionCount; // Number of bitwise arithmetic instructions used
214  D3D_FEATURE_LEVEL MinFeatureLevel; // Min target of the function byte code
215  UINT64 RequiredFeatureFlags; // Required feature flags
216 
217  LPCSTR Name; // Function name
218  INT FunctionParameterCount; // Number of logical parameters in the function signature (not including return)
219  BOOL HasReturn; // TRUE, if function returns a value, false - it is a subroutine
220  BOOL Has10Level9VertexShader; // TRUE, if there is a 10L9 VS blob
221  BOOL Has10Level9PixelShader; // TRUE, if there is a 10L9 PS blob
223 
224 typedef struct _D3D12_PARAMETER_DESC
225 {
226  LPCSTR Name; // Parameter name.
227  LPCSTR SemanticName; // Parameter semantic name (+index).
228  D3D_SHADER_VARIABLE_TYPE Type; // Element type.
229  D3D_SHADER_VARIABLE_CLASS Class; // Scalar/Vector/Matrix.
230  UINT Rows; // Rows are for matrix parameters.
231  UINT Columns; // Components or Columns in matrix.
233  D3D_PARAMETER_FLAGS Flags; // Parameter modifiers.
234 
235  UINT FirstInRegister; // The first input register for this parameter.
236  UINT FirstInComponent; // The first input register component for this parameter.
237  UINT FirstOutRegister; // The first output register for this parameter.
238  UINT FirstOutComponent; // The first output register component for this parameter.
240 
241 
243 // Interfaces ////////////////////////////////////////////////////////////////
245 
248 
251 
254 
257 
260 
263 
266 
267 
268 // {E913C351-783D-48CA-A1D1-4F306284AD56}
269 interface DECLSPEC_UUID("E913C351-783D-48CA-A1D1-4F306284AD56") ID3D12ShaderReflectionType;
270 DEFINE_GUID(IID_ID3D12ShaderReflectionType,
271 0xe913c351, 0x783d, 0x48ca, 0xa1, 0xd1, 0x4f, 0x30, 0x62, 0x84, 0xad, 0x56);
272 
273 #undef INTERFACE
274 #define INTERFACE ID3D12ShaderReflectionType
275 
277 {
278  STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_SHADER_TYPE_DESC *pDesc) PURE;
279 
280  STDMETHOD_(ID3D12ShaderReflectionType*, GetMemberTypeByIndex)(THIS_ _In_ UINT Index) PURE;
281  STDMETHOD_(ID3D12ShaderReflectionType*, GetMemberTypeByName)(THIS_ _In_ LPCSTR Name) PURE;
282  STDMETHOD_(LPCSTR, GetMemberTypeName)(THIS_ _In_ UINT Index) PURE;
283 
284  STDMETHOD(IsEqual)(THIS_ _In_ ID3D12ShaderReflectionType* pType) PURE;
285  STDMETHOD_(ID3D12ShaderReflectionType*, GetSubType)(THIS) PURE;
286  STDMETHOD_(ID3D12ShaderReflectionType*, GetBaseClass)(THIS) PURE;
287  STDMETHOD_(UINT, GetNumInterfaces)(THIS) PURE;
288  STDMETHOD_(ID3D12ShaderReflectionType*, GetInterfaceByIndex)(THIS_ _In_ UINT uIndex) PURE;
289  STDMETHOD(IsOfType)(THIS_ _In_ ID3D12ShaderReflectionType* pType) PURE;
290  STDMETHOD(ImplementsInterface)(THIS_ _In_ ID3D12ShaderReflectionType* pBase) PURE;
291 };
292 
293 // {8337A8A6-A216-444A-B2F4-314733A73AEA}
294 interface DECLSPEC_UUID("8337A8A6-A216-444A-B2F4-314733A73AEA") ID3D12ShaderReflectionVariable;
295 DEFINE_GUID(IID_ID3D12ShaderReflectionVariable,
296 0x8337a8a6, 0xa216, 0x444a, 0xb2, 0xf4, 0x31, 0x47, 0x33, 0xa7, 0x3a, 0xea);
297 
298 #undef INTERFACE
299 #define INTERFACE ID3D12ShaderReflectionVariable
300 
302 {
303  STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_SHADER_VARIABLE_DESC *pDesc) PURE;
304 
305  STDMETHOD_(ID3D12ShaderReflectionType*, GetType)(THIS) PURE;
306  STDMETHOD_(ID3D12ShaderReflectionConstantBuffer*, GetBuffer)(THIS) PURE;
307 
308  STDMETHOD_(UINT, GetInterfaceSlot)(THIS_ _In_ UINT uArrayIndex) PURE;
309 };
310 
311 // {C59598B4-48B3-4869-B9B1-B1618B14A8B7}
312 interface DECLSPEC_UUID("C59598B4-48B3-4869-B9B1-B1618B14A8B7") ID3D12ShaderReflectionConstantBuffer;
313 DEFINE_GUID(IID_ID3D12ShaderReflectionConstantBuffer,
314 0xc59598b4, 0x48b3, 0x4869, 0xb9, 0xb1, 0xb1, 0x61, 0x8b, 0x14, 0xa8, 0xb7);
315 
316 #undef INTERFACE
317 #define INTERFACE ID3D12ShaderReflectionConstantBuffer
318 
320 {
321  STDMETHOD(GetDesc)(THIS_ D3D12_SHADER_BUFFER_DESC *pDesc) PURE;
322 
323  STDMETHOD_(ID3D12ShaderReflectionVariable*, GetVariableByIndex)(THIS_ _In_ UINT Index) PURE;
324  STDMETHOD_(ID3D12ShaderReflectionVariable*, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE;
325 };
326 
327 // The ID3D12ShaderReflection IID may change from SDK version to SDK version
328 // if the reflection API changes. This prevents new code with the new API
329 // from working with an old binary. Recompiling with the new header
330 // will pick up the new IID.
331 
332 // {5A58797D-A72C-478D-8BA2-EFC6B0EFE88E}
333 interface DECLSPEC_UUID("5A58797D-A72C-478D-8BA2-EFC6B0EFE88E") ID3D12ShaderReflection;
334 DEFINE_GUID(IID_ID3D12ShaderReflection,
335 0x5a58797d, 0xa72c, 0x478d, 0x8b, 0xa2, 0xef, 0xc6, 0xb0, 0xef, 0xe8, 0x8e);
336 
337 #undef INTERFACE
338 #define INTERFACE ID3D12ShaderReflection
339 
341 {
342  STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid,
343  _Out_ LPVOID *ppv) PURE;
344  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
345  STDMETHOD_(ULONG, Release)(THIS) PURE;
346 
347  STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_SHADER_DESC *pDesc) PURE;
348 
349  STDMETHOD_(ID3D12ShaderReflectionConstantBuffer*, GetConstantBufferByIndex)(THIS_ _In_ UINT Index) PURE;
350  STDMETHOD_(ID3D12ShaderReflectionConstantBuffer*, GetConstantBufferByName)(THIS_ _In_ LPCSTR Name) PURE;
351 
352  STDMETHOD(GetResourceBindingDesc)(THIS_ _In_ UINT ResourceIndex,
353  _Out_ D3D12_SHADER_INPUT_BIND_DESC *pDesc) PURE;
354 
355  STDMETHOD(GetInputParameterDesc)(THIS_ _In_ UINT ParameterIndex,
356  _Out_ D3D12_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
357  STDMETHOD(GetOutputParameterDesc)(THIS_ _In_ UINT ParameterIndex,
358  _Out_ D3D12_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
359  STDMETHOD(GetPatchConstantParameterDesc)(THIS_ _In_ UINT ParameterIndex,
360  _Out_ D3D12_SIGNATURE_PARAMETER_DESC *pDesc) PURE;
361 
362  STDMETHOD_(ID3D12ShaderReflectionVariable*, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE;
363 
364  STDMETHOD(GetResourceBindingDescByName)(THIS_ _In_ LPCSTR Name,
365  _Out_ D3D12_SHADER_INPUT_BIND_DESC *pDesc) PURE;
366 
367  STDMETHOD_(UINT, GetMovInstructionCount)(THIS) PURE;
368  STDMETHOD_(UINT, GetMovcInstructionCount)(THIS) PURE;
369  STDMETHOD_(UINT, GetConversionInstructionCount)(THIS) PURE;
370  STDMETHOD_(UINT, GetBitwiseInstructionCount)(THIS) PURE;
371 
372  STDMETHOD_(D3D_PRIMITIVE, GetGSInputPrimitive)(THIS) PURE;
373  STDMETHOD_(BOOL, IsSampleFrequencyShader)(THIS) PURE;
374 
375  STDMETHOD_(UINT, GetNumInterfaceSlots)(THIS) PURE;
376  STDMETHOD(GetMinFeatureLevel)(THIS_ _Out_ enum D3D_FEATURE_LEVEL* pLevel) PURE;
377 
378  STDMETHOD_(UINT, GetThreadGroupSize)(THIS_
379  _Out_opt_ UINT* pSizeX,
380  _Out_opt_ UINT* pSizeY,
381  _Out_opt_ UINT* pSizeZ) PURE;
382 
383  STDMETHOD_(UINT64, GetRequiresFlags)(THIS) PURE;
384 };
385 
386 // {8E349D19-54DB-4A56-9DC9-119D87BDB804}
387 interface DECLSPEC_UUID("8E349D19-54DB-4A56-9DC9-119D87BDB804") ID3D12LibraryReflection;
388 DEFINE_GUID(IID_ID3D12LibraryReflection,
389 0x8e349d19, 0x54db, 0x4a56, 0x9d, 0xc9, 0x11, 0x9d, 0x87, 0xbd, 0xb8, 0x4);
390 
391 #undef INTERFACE
392 #define INTERFACE ID3D12LibraryReflection
393 
395 {
396  STDMETHOD(QueryInterface)(THIS_ _In_ REFIID iid, _Out_ LPVOID * ppv) PURE;
397  STDMETHOD_(ULONG, AddRef)(THIS) PURE;
398  STDMETHOD_(ULONG, Release)(THIS) PURE;
399 
400  STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_LIBRARY_DESC * pDesc) PURE;
401 
402  STDMETHOD_(ID3D12FunctionReflection *, GetFunctionByIndex)(THIS_ _In_ INT FunctionIndex) PURE;
403 };
404 
405 // {1108795C-2772-4BA9-B2A8-D464DC7E2799}
406 interface DECLSPEC_UUID("1108795C-2772-4BA9-B2A8-D464DC7E2799") ID3D12FunctionReflection;
407 DEFINE_GUID(IID_ID3D12FunctionReflection,
408 0x1108795c, 0x2772, 0x4ba9, 0xb2, 0xa8, 0xd4, 0x64, 0xdc, 0x7e, 0x27, 0x99);
409 
410 #undef INTERFACE
411 #define INTERFACE ID3D12FunctionReflection
412 
414 {
415  STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_FUNCTION_DESC * pDesc) PURE;
416 
417  STDMETHOD_(ID3D12ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ _In_ UINT BufferIndex) PURE;
418  STDMETHOD_(ID3D12ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ _In_ LPCSTR Name) PURE;
419 
420  STDMETHOD(GetResourceBindingDesc)(THIS_ _In_ UINT ResourceIndex,
421  _Out_ D3D12_SHADER_INPUT_BIND_DESC * pDesc) PURE;
422 
423  STDMETHOD_(ID3D12ShaderReflectionVariable *, GetVariableByName)(THIS_ _In_ LPCSTR Name) PURE;
424 
425  STDMETHOD(GetResourceBindingDescByName)(THIS_ _In_ LPCSTR Name,
426  _Out_ D3D12_SHADER_INPUT_BIND_DESC * pDesc) PURE;
427 
428  // Use D3D_RETURN_PARAMETER_INDEX to get description of the return value.
429  STDMETHOD_(ID3D12FunctionParameterReflection *, GetFunctionParameter)(THIS_ _In_ INT ParameterIndex) PURE;
430 };
431 
432 // {EC25F42D-7006-4F2B-B33E-02CC3375733F}
433 interface DECLSPEC_UUID("EC25F42D-7006-4F2B-B33E-02CC3375733F") ID3D12FunctionParameterReflection;
434 DEFINE_GUID(IID_ID3D12FunctionParameterReflection,
435 0xec25f42d, 0x7006, 0x4f2b, 0xb3, 0x3e, 0x2, 0xcc, 0x33, 0x75, 0x73, 0x3f);
436 
437 #undef INTERFACE
438 #define INTERFACE ID3D12FunctionParameterReflection
439 
441 {
442  STDMETHOD(GetDesc)(THIS_ _Out_ D3D12_PARAMETER_DESC * pDesc) PURE;
443 };
444 
445 
447 // APIs //////////////////////////////////////////////////////////////////////
449 
450 #ifdef __cplusplus
451 extern "C" {
452 #endif //__cplusplus
453 
454 #ifdef __cplusplus
455 }
456 #endif //__cplusplus
457 
458 #endif //__D3D12SHADER_H__
459 
LPCSTR Name
Definition: d3d12shader.h:217
UINT ConstantBuffers
Definition: d3d12shader.h:107
enum _D3D_SHADER_VARIABLE_CLASS D3D_SHADER_VARIABLE_CLASS
D3D_INTERPOLATION_MODE InterpolationMode
Definition: d3d12shader.h:232
D3D_NAME SystemValueType
Definition: d3d12shader.h:49
UINT TextureGradientInstructions
Definition: d3d12shader.h:202
UINT uFlags
Definition: d3d12shader.h:67
UINT Members
Definition: d3d12shader.h:90
UINT Offset
Definition: d3d12shader.h:91
UINT EmitInstructionCount
Definition: d3d12shader.h:130
D3D_REGISTER_COMPONENT_TYPE ComponentType
Definition: d3d12shader.h:50
D3D_FEATURE_LEVEL
Definition: d3dcommon.h:79
interface ID3D12ShaderReflection ID3D12ShaderReflection
Definition: d3d12shader.h:255
UINT DefCount
Definition: d3d12shader.h:115
UINT MacroInstructionCount
Definition: d3d12shader.h:208
D3D_PRIMITIVE_TOPOLOGY GSOutputTopology
Definition: d3d12shader.h:131
struct _D3D12_SHADER_TYPE_DESC D3D12_SHADER_TYPE_DESC
struct _D3D12_SHADER_VARIABLE_DESC D3D12_SHADER_VARIABLE_DESC
struct _D3D12_SHADER_INPUT_BIND_DESC D3D12_SHADER_INPUT_BIND_DESC
UINT cBarrierInstructions
Definition: d3d12shader.h:141
Definition: d3d12shader.h:18
UINT FirstInComponent
Definition: d3d12shader.h:236
D3D_RESOURCE_RETURN_TYPE D3D12_RESOURCE_RETURN_TYPE
Definition: d3d12shader.h:39
D3D_SHADER_VARIABLE_TYPE Type
Definition: d3d12shader.h:86
UINT ConversionInstructionCount
Definition: d3d12shader.h:212
GLfixed GLfixed x2
Definition: glsym_gl.h:1051
D3D_PRIMITIVE
Definition: d3dcommon.h:207
UINT Flags
Definition: d3d12shader.h:180
UINT cTextureStoreInstructions
Definition: d3d12shader.h:143
UINT BindCount
Definition: d3d12shader.h:151
D3D_TESSELLATOR_PARTITIONING
Definition: d3dcommon.h:913
interface ID3D12FunctionParameterReflection ID3D12FunctionParameterReflection
Definition: d3d12shader.h:264
UINT cControlPoints
Definition: d3d12shader.h:136
D3D_SHADER_VARIABLE_CLASS Class
Definition: d3d12shader.h:85
struct _D3D12_LIBRARY_DESC D3D12_LIBRARY_DESC
UINT InputParameters
Definition: d3d12shader.h:109
uint64_t UINT64
Definition: coretypes.h:8
interface ID3D12ShaderReflectionType * LPD3D12SHADERREFLECTIONTYPE
Definition: d3d12shader.h:247
UINT MovcInstructionCount
Definition: d3d12shader.h:211
D3D_TESSELLATOR_OUTPUT_PRIMITIVE D3D12_TESSELLATOR_OUTPUT_PRIMITIVE
Definition: d3d12shader.h:99
LPCSTR SemanticName
Definition: d3d12shader.h:227
UINT Flags
Definition: d3d12shader.h:188
interface ID3D12FunctionReflection * LPD3D12FUNCTIONREFLECTION
Definition: d3d12shader.h:262
Definition: d3d12shader.h:22
D3D_TESSELLATOR_OUTPUT_PRIMITIVE
Definition: d3dcommon.h:928
interface ID3D12ShaderReflectionVariable ID3D12ShaderReflectionVariable
Definition: d3d12shader.h:249
struct _D3D12_SIGNATURE_PARAMETER_DESC D3D12_SIGNATURE_PARAMETER_DESC
interface ID3D12ShaderReflectionType ID3D12ShaderReflectionType
Definition: d3d12shader.h:246
BOOL Has10Level9PixelShader
Definition: d3d12shader.h:221
UINT Columns
Definition: d3d12shader.h:231
D3D_CBUFFER_TYPE Type
Definition: d3d12shader.h:64
D3D_NAME
Definition: d3dcommon.h:805
struct _D3D12_FUNCTION_DESC D3D12_FUNCTION_DESC
D3D_CBUFFER_TYPE D3D12_CBUFFER_TYPE
Definition: d3d12shader.h:41
interface ID3D12ShaderReflectionVariable * LPD3D12SHADERREFLECTIONVARIABLE
Definition: d3d12shader.h:250
Definition: d3d12shader.h:101
UINT BindPoint
Definition: d3d12shader.h:150
interface ID3D12FunctionParameterReflection * LPD3D12FUNCTIONPARAMETERREFLECTION
Definition: d3d12shader.h:265
UINT cGSInstanceCount
Definition: d3d12shader.h:135
UINT Version
Definition: d3d12shader.h:103
UINT SemanticIndex
Definition: d3d12shader.h:47
interface ID3D12ShaderReflection * LPD3D12SHADERREFLECTION
Definition: d3d12shader.h:256
D3D_TESSELLATOR_DOMAIN D3D12_TESSELLATOR_DOMAIN
Definition: d3d12shader.h:95
D3D_MIN_PRECISION
Definition: d3dcommon.h:943
D3D12_SHADER_VERSION_TYPE
Definition: d3d12shader.h:15
BOOL Has10Level9VertexShader
Definition: d3d12shader.h:220
UINT NumSamples
Definition: d3d12shader.h:156
D3D_INTERPOLATION_MODE
Definition: d3dcommon.h:956
interface ID3D12ShaderReflectionConstantBuffer ID3D12ShaderReflectionConstantBuffer
Definition: d3d12shader.h:252
UINT TextureGradientInstructions
Definition: d3d12shader.h:121
UINT TextureSize
Definition: d3d12shader.h:78
UINT StartTexture
Definition: d3d12shader.h:77
UINT StaticFlowControlCount
Definition: d3d12shader.h:206
D3D_SHADER_INPUT_TYPE Type
Definition: d3d12shader.h:149
UINT StartOffset
Definition: d3d12shader.h:73
LPCSTR Creator
Definition: d3d12shader.h:187
UINT ArrayInstructionCount
Definition: d3d12shader.h:128
UINT Elements
Definition: d3d12shader.h:89
UINT uID
Definition: d3d12shader.h:158
D3D_FEATURE_LEVEL MinFeatureLevel
Definition: d3d12shader.h:214
LPCSTR Name
Definition: d3d12shader.h:63
DECLARE_INTERFACE_(ID3D12ShaderReflection, IUnknown)
Definition: d3d12shader.h:340
UINT ConstantBuffers
Definition: d3d12shader.h:190
UINT cInterlockedInstructions
Definition: d3d12shader.h:142
UINT TextureCompInstructions
Definition: d3d12shader.h:200
D3D_REGISTER_COMPONENT_TYPE
Definition: d3dcommon.h:887
UINT OutputParameters
Definition: d3d12shader.h:110
D3D_TESSELLATOR_DOMAIN
Definition: d3dcommon.h:900
D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive
Definition: d3d12shader.h:137
UINT ArrayInstructionCount
Definition: d3d12shader.h:209
Definition: d3d12shader.h:61
UINT UintInstructionCount
Definition: d3d12shader.h:205
UINT StaticFlowControlCount
Definition: d3d12shader.h:125
Definition: d3d12shader.h:19
UINT Flags
Definition: d3d12shader.h:105
UINT DefCount
Definition: d3d12shader.h:196
UINT Rows
Definition: d3d12shader.h:87
interface ID3D12LibraryReflection * LPD3D12LIBRARYREFLECTION
Definition: d3d12shader.h:259
UINT Register
Definition: d3d12shader.h:48
D3D_RESOURCE_RETURN_TYPE ReturnType
Definition: d3d12shader.h:154
UINT PatchConstantParameters
Definition: d3d12shader.h:134
DEFINE_GUID(IID_ID3D12ShaderReflectionType, 0xe913c351, 0x783d, 0x48ca, 0xa1, 0xd1, 0x4f, 0x30, 0x62, 0x84, 0xad, 0x56)
BYTE ReadWriteMask
Definition: d3d12shader.h:53
Definition: d3d12shader.h:177
UINT FirstOutComponent
Definition: d3d12shader.h:238
UINT TextureCompInstructions
Definition: d3d12shader.h:119
UINT BitwiseInstructionCount
Definition: d3d12shader.h:213
struct _D3D12_PARAMETER_DESC D3D12_PARAMETER_DESC
D3D_SRV_DIMENSION
Definition: d3dcommon.h:294
UINT Variables
Definition: d3d12shader.h:65
Definition: d3d12shader.h:83
UINT Rows
Definition: d3d12shader.h:230
UINT uFlags
Definition: d3d12shader.h:75
Definition: d3d12shader.h:44
UINT CutInstructionCount
Definition: d3d12shader.h:129
D3D_TESSELLATOR_DOMAIN TessellatorDomain
Definition: d3d12shader.h:139
#define A(i)
Definition: ecp_curves.c:884
UINT GSMaxOutputVertexCount
Definition: d3d12shader.h:132
LPVOID DefaultValue
Definition: d3d12shader.h:76
DECLARE_INTERFACE(ID3D12ShaderReflectionType)
Definition: d3d12shader.h:276
LPCSTR Name
Definition: d3d12shader.h:148
UINT TempArrayCount
Definition: d3d12shader.h:195
enum _D3D_SHADER_INPUT_TYPE D3D_SHADER_INPUT_TYPE
UINT TempRegisterCount
Definition: d3d12shader.h:194
Definition: d3d12shader.h:224
UINT SamplerSize
Definition: d3d12shader.h:80
Definition: d3d12shader.h:17
interface ID3D12FunctionReflection ID3D12FunctionReflection
Definition: d3d12shader.h:261
UINT FirstOutRegister
Definition: d3d12shader.h:237
UINT Columns
Definition: d3d12shader.h:88
Definition: d3d12shader.h:146
enum _D3D_CBUFFER_TYPE D3D_CBUFFER_TYPE
UINT TextureBiasInstructions
Definition: d3d12shader.h:201
UINT TempArrayCount
Definition: d3d12shader.h:114
D3D_TESSELLATOR_PARTITIONING D3D12_TESSELLATOR_PARTITIONING
Definition: d3d12shader.h:97
BOOL HasReturn
Definition: d3d12shader.h:219
Definition: d3d12shader.h:70
static INLINE ULONG Release(void *object)
Definition: dxgi_common.h:253
UINT MacroInstructionCount
Definition: d3d12shader.h:127
UINT InstructionCount
Definition: d3d12shader.h:193
UINT FunctionCount
Definition: d3d12shader.h:181
UINT UintInstructionCount
Definition: d3d12shader.h:124
unsigned int BOOL
Definition: gctypes.h:51
enum _D3D_SHADER_VARIABLE_TYPE D3D_SHADER_VARIABLE_TYPE
UINT TextureBiasInstructions
Definition: d3d12shader.h:120
LPCSTR Creator
Definition: d3d12shader.h:179
interface ID3D12ShaderReflectionConstantBuffer * LPD3D12SHADERREFLECTIONCONSTANTBUFFER
Definition: d3d12shader.h:253
enum _D3D_PARAMETER_FLAGS D3D_PARAMETER_FLAGS
D3D_TESSELLATOR_PARTITIONING HSPartitioning
Definition: d3d12shader.h:138
D3D_PRIMITIVE_TOPOLOGY
Definition: d3dcommon.h:108
D3D_PARAMETER_FLAGS Flags
Definition: d3d12shader.h:233
D3D_MIN_PRECISION MinPrecision
Definition: d3d12shader.h:58
LPCSTR Creator
Definition: d3d12shader.h:104
Definition: glslang_tab.cpp:135
interface DECLSPEC_UUID("E913C351-783D-48CA-A1D1-4F306284AD56") ID3D12ShaderReflectionType
Definition: d3d12shader.h:184
UINT DynamicFlowControlCount
Definition: d3d12shader.h:207
D3D_RESOURCE_RETURN_TYPE
Definition: d3dcommon.h:860
UINT TextureLoadInstructions
Definition: d3d12shader.h:199
struct _D3D12_SHADER_BUFFER_DESC D3D12_SHADER_BUFFER_DESC
UINT64 RequiredFeatureFlags
Definition: d3d12shader.h:215
Definition: glslang_tab.cpp:136
D3D_SRV_DIMENSION Dimension
Definition: d3d12shader.h:155
UINT StartSampler
Definition: d3d12shader.h:79
Definition: d3d12shader.h:23
INT FunctionParameterCount
Definition: d3d12shader.h:218
UINT MovInstructionCount
Definition: d3d12shader.h:210
UINT Stream
Definition: d3d12shader.h:57
Definition: d3d12shader.h:24
D3D_SHADER_VARIABLE_TYPE Type
Definition: d3d12shader.h:228
LPCSTR Name
Definition: d3d12shader.h:72
LPCSTR Name
Definition: d3d12shader.h:92
LPCSTR Name
Definition: d3d12shader.h:226
UINT Size
Definition: d3d12shader.h:66
UINT Version
Definition: d3d12shader.h:186
D3D_PRIMITIVE InputPrimitive
Definition: d3d12shader.h:133
UINT Size
Definition: d3d12shader.h:74
D3D_SHADER_VARIABLE_CLASS Class
Definition: d3d12shader.h:229
UINT Space
Definition: d3d12shader.h:157
UINT FloatInstructionCount
Definition: d3d12shader.h:122
LPCSTR SemanticName
Definition: d3d12shader.h:46
BYTE Mask
Definition: d3d12shader.h:51
UINT TextureNormalInstructions
Definition: d3d12shader.h:117
UINT IntInstructionCount
Definition: d3d12shader.h:204
Definition: d3d12shader.h:26
UINT TempRegisterCount
Definition: d3d12shader.h:113
UINT DynamicFlowControlCount
Definition: d3d12shader.h:126
UINT IntInstructionCount
Definition: d3d12shader.h:123
UINT FirstInRegister
Definition: d3d12shader.h:235
UINT TextureNormalInstructions
Definition: d3d12shader.h:198
UINT FloatInstructionCount
Definition: d3d12shader.h:203
UINT BoundResources
Definition: d3d12shader.h:108
UINT TextureLoadInstructions
Definition: d3d12shader.h:118
UINT DclCount
Definition: d3d12shader.h:197
struct _D3D12_SHADER_DESC D3D12_SHADER_DESC
UINT uFlags
Definition: d3d12shader.h:153
interface ID3D12LibraryReflection ID3D12LibraryReflection
Definition: d3d12shader.h:258
UINT DclCount
Definition: d3d12shader.h:116
UINT BoundResources
Definition: d3d12shader.h:191
UINT InstructionCount
Definition: d3d12shader.h:112