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 |