Freigeben über


D3D12_SHADER_DESC-Struktur (d3d12shader.h)

Beschreibt einen Shader.

Syntax

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;

Member

Version

Die Shaderversion als codiertes UINT, das einem Shadermodell entspricht, z. B. "ps_5_0". Version beschreibt den Programmtyp, eine Hauptversionsnummer und eine Nebenversionsnummer. Der Programmtyp ist eine D3D12_SHADER_VERSION_TYPE Enumerationskonstante. Die Version wird wie folgt decodiert:

  • Programmtyp = (Version & 0xFFFF0000) >> 16
  • Hauptversion = (Version & 0x000000F0) >> 4
  • Nebenversion = (Version & 0x0000000F)

Creator

Der Name des Absenders des Shaders.

Flags

Shaderkompilierungs-/Analyseflags.

ConstantBuffers

Die Anzahl der Shaderkonstantenpuffer.

BoundResources

Die Anzahl der an einen Shader gebundenen Ressourcen (Texturen und Puffer).

InputParameters

Die Anzahl der Parameter in der Eingabesignatur.

OutputParameters

Die Anzahl der Parameter in der Ausgabesignatur.

InstructionCount

Die Anzahl von Anweisungen in mittlerer Sprache im kompilierten Shader.

TempRegisterCount

Die Anzahl der temporären Register im kompilierten Shader.

TempArrayCount

Anzahl der verwendeten temporären Arrays.

DefCount

Anzahl der definierten Konstanten.

DclCount

Anzahl der Deklarationen (Eingabe + Ausgabe).

TextureNormalInstructions

Anzahl der nicht kategorisierten Texturanweisungen.

TextureLoadInstructions

Anzahl der Anweisungen zum Laden der Textur

TextureCompInstructions

Anzahl der Anweisungen zum Texturvergleich

TextureBiasInstructions

Anzahl der Anweisungen für Texturverzerrungen

TextureGradientInstructions

Anzahl der Anweisungen für den Texturverlauf.

FloatInstructionCount

Anzahl der verwendeten Gleitkommaarithmetikanweisungen.

IntInstructionCount

Anzahl der verwendeten ganzzahligen Arithmetischen Anweisungen mit Vorzeichen.

UintInstructionCount

Anzahl der verwendeten arithmetischen Arithmetikanweisungen ohne Vorzeichen.

StaticFlowControlCount

Anzahl der verwendeten statischen Flusssteuerungsanweisungen.

DynamicFlowControlCount

Anzahl der verwendeten Anweisungen zur dynamischen Flusssteuerung.

MacroInstructionCount

Anzahl der verwendeten Makroanweisungen.

ArrayInstructionCount

Anzahl der verwendeten Arrayanweisungen.

CutInstructionCount

Anzahl der verwendeten Schnittanweisungen.

EmitInstructionCount

Anzahl der verwendeten Ausgabeanweisungen.

GSOutputTopology

Der D3D_PRIMITIVE_TOPOLOGY-typisierte Wert, der die Geometrie-Shaderausgabetopologie darstellt.

GSMaxOutputVertexCount

Maximale Vertexanzahl des Geometrie-Shaders.

InputPrimitive

Der D3D_PRIMITIVE-Typwert, der die Eingabegrundsätze für einen Geometrie-Shader oder einen Hull-Shader darstellt.

PatchConstantParameters

Anzahl der Parameter in der Signatur der Patchkonstante.

cGSInstanceCount

Anzahl der Geometrie-Shaderinstanzen.

cControlPoints

Anzahl der Kontrollpunkte im Hull-Shader und Domänenshader.

HSOutputPrimitive

Der D3D_TESSELLATOR_OUTPUT_PRIMITIVE typisierte Wert, der den Tessellator-Ausgabegrundtyp darstellt.

HSPartitioning

Der D3D_TESSELLATOR_PARTITIONING-Typwert, der den Partitionierungsmodus des Tessellators darstellt.

TessellatorDomain

Der D3D_TESSELLATOR_DOMAIN typisierte Wert, der die Domäne tessellator darstellt.

cBarrierInstructions

Anzahl der Barriereanweisungen in einem Compute-Shader.

cInterlockedInstructions

Anzahl der ineinander verzahnten Anweisungen in einem Compute-Shader.

cTextureStoreInstructions

Anzahl der Texturschreibvorgänge in einem Compute-Shader.

Hinweise

Ein Shader wird in HLSL geschrieben und vom HLSL-Compiler in eine Zwischensprache kompiliert. Die Shaderbeschreibung gibt Informationen zum kompilierten Shader zurück. Rufen Sie ID3D12ShaderReflection::GetDesc auf, um eine Shaderbeschreibung abzurufen.

Anforderungen

Anforderung Wert
Header d3d12shader.h

Weitere Informationen

Shader-Strukturen