Partager via


D3D12_SHADER_DESC structure (d3d12shader.h)

Décrit un nuanceur.

Syntaxe

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;

Membres

Version

Version du nuanceur, sous la forme d’un UINT encodé qui correspond à un modèle de nuanceur, tel que « ps_5_0 ». Version décrit le type de programme, un numéro de version principale et un numéro de version secondaire. Le type de programme est une constante d’énumération D3D12_SHADER_VERSION_TYPE . La version est décodée de la manière suivante :

  • Type de programme = (Version & 0xFFFF0000) >> 16
  • Version principale = (Version & 0x000000F0) >> 4
  • Version mineure = (Version & 0x0000000F)

Creator

Nom de l’auteur du nuanceur.

Flags

Indicateurs de compilation/analyse du nuanceur.

ConstantBuffers

Nombre de mémoires tampons de constante de nuanceur.

BoundResources

Nombre de ressources (textures et mémoires tampons) liées à un nuanceur.

InputParameters

Nombre de paramètres dans la signature d’entrée.

OutputParameters

Nombre de paramètres dans la signature de sortie.

InstructionCount

Nombre d’instructions de langage intermédiaire dans le nuanceur compilé.

TempRegisterCount

Nombre de registres temporaires dans le nuanceur compilé.

TempArrayCount

Nombre de tableaux temporaires utilisés.

DefCount

Nombre de constantes définie.

DclCount

Nombre de déclarations (entrée + sortie).

TextureNormalInstructions

Nombre d’instructions de texture non classées.

TextureLoadInstructions

Nombre d’instructions de chargement de textures

TextureCompInstructions

Instructions de comparaison du nombre de textures

TextureBiasInstructions

Nombre d’instructions de biais de texture

TextureGradientInstructions

Nombre d’instructions de dégradé de texture.

FloatInstructionCount

Nombre d’instructions arithmétiques à virgule flottante utilisées.

IntInstructionCount

Nombre d’instructions arithmétiques d’entier signé utilisées.

UintInstructionCount

Nombre d’instructions arithmétiques d’entier non signé utilisées.

StaticFlowControlCount

Nombre d’instructions de contrôle de flux statique utilisées.

DynamicFlowControlCount

Nombre d’instructions de contrôle de flux dynamique utilisées.

MacroInstructionCount

Nombre d’instructions de macro utilisées.

ArrayInstructionCount

Nombre d’instructions de tableau utilisées.

CutInstructionCount

Nombre d’instructions de coupe utilisées.

EmitInstructionCount

Nombre d’instructions d’émission utilisées.

GSOutputTopology

Valeur D3D_PRIMITIVE_TOPOLOGY typée qui représente la topologie de sortie du nuanceur géométrique.

GSMaxOutputVertexCount

Nombre maximal de vertex de sortie du nuanceur geometry.

InputPrimitive

Valeur de type D3D_PRIMITIVE qui représente la primitive d’entrée d’un nuanceur de géométrie ou d’un nuanceur de coque.

PatchConstantParameters

Nombre de paramètres dans la signature de constante de correctif.

cGSInstanceCount

Nombre d’instances de nuanceur geometry.

cControlPoints

Nombre de points de contrôle dans le nuanceur de coque et le nuanceur de domaine.

HSOutputPrimitive

Valeur D3D_TESSELLATOR_OUTPUT_PRIMITIVE typée qui représente le type primitif de sortie du tessellateur.

HSPartitioning

Valeur de type D3D_TESSELLATOR_PARTITIONING qui représente le mode de partitionnement du tessellateur.

TessellatorDomain

Valeur de type D3D_TESSELLATOR_DOMAIN qui représente le domaine tessellateur.

cBarrierInstructions

Nombre d’instructions de barrière dans un nuanceur de calcul.

cInterlockedInstructions

Nombre d’instructions verrouillées dans un nuanceur de calcul.

cTextureStoreInstructions

Nombre d’écritures de texture dans un nuanceur de calcul.

Remarques

Un nuanceur est écrit en HLSL et compilé dans un langage intermédiaire par le compilateur HLSL. La description du nuanceur retourne des informations sur le nuanceur compilé. Pour obtenir une description du nuanceur, appelez ID3D12ShaderReflection ::GetDesc.

Configuration requise

Condition requise Valeur
En-tête d3d12shader.h

Voir aussi

Structures de nuanceur