D3D12_SIGNATURE_PARAMETER_DESC-Struktur (d3d12shader.h)
Beschreibt eine Shadersignatur.
Syntax
typedef struct _D3D12_SIGNATURE_PARAMETER_DESC {
LPCSTR SemanticName;
UINT SemanticIndex;
UINT Register;
D3D_NAME SystemValueType;
D3D_REGISTER_COMPONENT_TYPE ComponentType;
BYTE Mask;
BYTE ReadWriteMask;
UINT Stream;
D3D_MIN_PRECISION MinPrecision;
} D3D12_SIGNATURE_PARAMETER_DESC;
Member
SemanticName
Eine Zeichenfolge pro Parameter, die angibt, wie die Daten verwendet werden. Weitere Informationen finden Sie unter Semantik.
SemanticIndex
Semantischer Index, der die Semantik ändert. Wird verwendet, um verschiedene Parameter zu unterscheiden, die dieselbe Semantik verwenden.
Register
Das Register, das die Daten dieser Variablen enthält.
SystemValueType
Ein D3D_NAME typisierter Wert, der eine vordefinierte Zeichenfolge identifiziert, die die Funktionalität bestimmter Pipelinephasen bestimmt.
ComponentType
Ein D3D_REGISTER_COMPONENT_TYPE typisierter Wert, der den komponentenspezifischen Datentyp identifiziert, der in einem Register gespeichert ist. Jedes Register kann bis zu vier Komponenten von Daten speichern.
Mask
Mask, die angibt, welche Komponenten eines Registers verwendet werden.
ReadWriteMask
Maske, die angibt, ob eine bestimmte Komponente nie geschrieben (wenn die Signatur eine Ausgabesignatur ist) oder immer gelesen wird (wenn es sich bei der Signatur um eine Eingabesignatur handelt).
Stream
Gibt an, welchen Stream der Geometrie-Shader für den Signaturparameter verwendet.
MinPrecision
Ein D3D_MIN_PRECISION typisierter Wert, der die minimale gewünschte Interpolationsgenauigkeit angibt. Weitere Informationen finden Sie unter Verwenden der minimalen HLSL-Genauigkeit.
Hinweise
Ein Shader kann n-Eingaben annehmen und m-Ausgaben erzeugen. Die Reihenfolge der Eingabe- (oder Ausgabe)-Parameter, der zugehörigen Typen und der angefügten Semantik bilden die Shadersignatur. Jeder Shader verfügt über eine Eingabe- und eine Ausgabesignatur.
Beim Kompilieren eines Shaders oder effekts überprüfen einige API-Aufrufe Shadersignaturen. Das heißt, sie vergleichen die Ausgabesignatur eines Shaders (z. B. einen Vertex-Shader) mit der Eingabesignatur eines anderen Shaders (z. B. einem Pixelshader). Dadurch wird sichergestellt, dass ein Shader Daten ausgibt, die mit einem Downstream-Shader kompatibel sind, der diese Daten verbraucht. Kompatibel bedeutet, dass eine Shadersignatur eine exakt übereinstimmende Teilmenge der vorherigen Shaderphase ist. Exakte Übereinstimmung bedeutet, dass Parametertypen und Semantik genau übereinstimmen müssen. Teilmenge bedeutet, dass ein Parameter, der für eine Downstreamphase nicht erforderlich ist, diesen Parameter nicht in seine Shadersignatur einschließen muss.
Rufen Sie eine Shadersignatur aus einem Shader oder effekt ab, indem Sie APIs wie ID3D12ShaderReflection::GetInputParameterDesc aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Header | d3d12shader.h |