struttura D3D12_SHADER_DESC (d3d12shader.h)
Descrive uno shader.
Sintassi
typedef struct _D3D12_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;
} D3D12_SHADER_DESC;
Members
Version
Versione dello shader, come UINT codificato che corrisponde a un modello di shader, ad esempio "ps_5_0". La versione descrive il tipo di programma, un numero di versione principale e un numero di versione secondaria. Il tipo di programma è una costante di enumerazione D3D12_SHADER_VERSION_TYPE . La versione viene decodificata nel modo seguente:
- Tipo di programma = (versione & 0xFFFF0000) >> 16
- Versione principale = (versione & 0x000000F0) >> 4
- Versione secondaria = (versione & 0x0000000F)
Creator
Nome dell'origine dello shader.
Flags
Flag di compilazione/analisi dello shader.
ConstantBuffers
Numero di buffer costanti shader.
BoundResources
Numero di risorse (trame e buffer) associate a uno shader.
InputParameters
Numero di parametri nella firma di input.
OutputParameters
Numero di parametri nella firma di output.
InstructionCount
Numero di istruzioni del linguaggio intermedio nello shader compilato.
TempRegisterCount
Numero di registri temporanei nello shader compilato.
TempArrayCount
Numero di matrici temporanee utilizzate.
DefCount
Numero di definizioni costanti.
DclCount
Numero di dichiarazioni (input e output).
TextureNormalInstructions
Numero di istruzioni di trama non suddivise in categorie.
TextureLoadInstructions
Numero di istruzioni per il caricamento delle trame
TextureCompInstructions
Numero di istruzioni di confronto delle trame
TextureBiasInstructions
Numero di istruzioni per la distorsione delle trame
TextureGradientInstructions
Numero di istruzioni sulla sfumatura di trama.
FloatInstructionCount
Numero di istruzioni aritmetiche a virgola mobile utilizzate.
IntInstructionCount
Numero di istruzioni aritmetiche con intero con segno utilizzate.
UintInstructionCount
Numero di istruzioni aritmetiche integer senza segno utilizzate.
StaticFlowControlCount
Numero di istruzioni per il controllo del flusso statico utilizzate.
DynamicFlowControlCount
Numero di istruzioni di controllo del flusso dinamiche usate.
MacroInstructionCount
Numero di istruzioni di macro utilizzate.
ArrayInstructionCount
Numero di istruzioni per la matrice usate.
CutInstructionCount
Numero di istruzioni taglia utilizzate.
EmitInstructionCount
Numero di istruzioni di emissione usate.
GSOutputTopology
Valore tipizzato D3D_PRIMITIVE_TOPOLOGY che rappresenta la topologia di output del geometry shader.
GSMaxOutputVertexCount
Numero massimo di vertici di output del geometry shader.
InputPrimitive
Valore tipizzato D3D_PRIMITIVE che rappresenta la primitiva di input per uno shader geometry shader o hull shader.
PatchConstantParameters
Numero di parametri nella firma della costante patch.
cGSInstanceCount
Numero di istanze geometry shader.
cControlPoints
Numero di punti di controllo nello hull shader e nello shader di dominio.
HSOutputPrimitive
Valore tipizzato D3D_TESSELLATOR_OUTPUT_PRIMITIVE che rappresenta il tipo primitivo di output del tassellatore.
HSPartitioning
Valore tipizzato D3D_TESSELLATOR_PARTITIONING che rappresenta la modalità di partizionamento a mosaico.
TessellatorDomain
Valore tipizzato D3D_TESSELLATOR_DOMAIN che rappresenta il dominio del tassellatore.
cBarrierInstructions
Numero di istruzioni relative alle barriere in uno shader di calcolo.
cInterlockedInstructions
Numero di istruzioni interlocked in un compute shader.
cTextureStoreInstructions
Numero di scritture di trame in uno shader di calcolo.
Commenti
Uno shader viene scritto in HLSL e compilato in un linguaggio intermedio dal compilatore HLSL. La descrizione dello shader restituisce informazioni sullo shader compilato. Per ottenere una descrizione dello shader, chiamare ID3D12ShaderReflection::GetDesc.
Requisiti
Requisito | Valore |
---|---|
Intestazione | d3d12shader.h |