Condividi tramite


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

Vedi anche

Strutture shader