dcl_input vGSInstanceID (sm5 - asm)

Aktivieren Sie die Geometry-Shader-Instanziierung.

dcl_input vGSInstanceID, instanceCount
Element BESCHREIBUNG
vGSInstanceID
[in] Die instance-ID.
instanceCount
[in] Die anzahl der instance.

Bemerkungen

Der instanceCount-Parameter der Deklaration gibt an, wie viele Instanzen der Geometry-Shader für jeden Eingabegrundtyp ausführen soll. Der maximale Wert für instanceCount ist 32.

Die maximale Anzahl von Scheitelpunkten, die über dcl_maxOutputVertexCount für die Ausgabe deklariert werden, gilt einzeln für jeden instance.

Die instance Anzahl in dieser Deklaration, multipliziert mit der maximalen Vertexanzahl pro instance über dcl_maxOutputVertexCount, muss = 1024 sein<.

Die Datenmenge, die ein gegebener Geometrieshader instance ausgeben kann, beträgt maximal 1024 Skalar, überprüft durch Zählen aller Skalar, die für die Eingabe deklariert werden, und multiplizieren sich mit der deklarierten Ausgabevertexanzahl.

Die Verwendung der Geometry-Shader-Instanziierung erhöht effektiv die Gesamtmenge der Daten, die pro Eingabegrundtyp ausgegeben werden können. 1024 Skalar für eine einzelne instance ergibt bis zu 1.024 x 32 Skalare von Ausgabedaten für alle Geometry-Shaderinstanzen für einen einzelnen Eingabegrundtyp. Je mehr Instanzen, desto weniger Scheitelpunkte können jedoch instance ausgeben. Ein einzelner instance (keine Instancing) kann 1024 Scheitelpunkte ausgeben. Wenn Sie *32 Instanzen deklarieren, bedeutet dies, dass jede instance nur 1024/32 = 32 Scheitelpunkte ausgeben kann.

Die Geometry-Shader-Deklaration stellt dem Programm ein eigenständiges 32-Bit-Ganzzahleingaberegister vGSInstanceID zur Verfügung. Jeder Geometry-Shader instance wird durch den Wert in vGSInstanceID [0,1,2...] identifiziert.

vGSInstanceID ist nicht Teil des Geometrieshader-Eingabevertexarrays (z. B. 3 Scheitelpunkte bei der Eingabe eines Dreiecks). Das Register vGSInstanceID steht für sich allein, z. B. vPrimitiveID.

Wenn jeder Geometrieshader instance endet, gibt es einen impliziten Schnitt in der Ausgabetopologie, sodass aufeinander folgende Instanzen nicht voneinander abhängen.

Obwohl Hardware jeden Geometrieshader instance parallel ausführen kann, wird die Ausgabe aller Instanzen am Ende serialisiert, als ob alle Instanzgeometrie-Shaderaufrufe sequenziell in einer Schleife ausgeführt werden, die vGSInstanceID von 0 auf instanceCount-1 iteriert, wobei implizite Ausgabetopologiekürzungen am Ende jedes instance.

Diese Anweisung gilt für die folgenden Shaderphasen:

Scheitelpunkt Hull Domain Geometrie Pixel Compute
X

Minimales Shadermodell

Diese Anweisung wird in den folgenden Shadermodellen unterstützt:

Shadermodell Unterstützt
Shadermodell 5 ja
Shadermodell 4.1 Nein
Shadermodell 4 Nein
Shadermodell 3 (DirectX HLSL) Nein
Shadermodell 2 (DirectX HLSL) Nein
Shadermodell 1 (DirectX HLSL) Nein

Assembly des Shadermodells 5 (DirectX HLSL)