dcl_maxOutputVertexCount (sm4 – asm)

Deklariert die maximale Anzahl von Scheitelpunkten, die von einem Geometrie-Shader ausgegeben werden können.

dcl_maxOutputVertexCount Anzahl
Element Beschreibung
Count
[in] Eine 32-Bit-Ganzzahl ohne Vorzeichen zwischen 1 und n, einschließlich.

Ein Geometrie-Shader kann maximal 1024 32-Bit-Werte ausgeben. Dieses Maximum umfasst die Größe der Eingabedaten und die Größe der vom Shader erstellten Daten.

Hier sind einige Einschränkungen:

  • Wenn die Anzahl der Scheitelpunkte erreicht wird, bevor der Geometrie-Shader ausgeführt wird, wird der Shader beendet.
  • Ein Geometrie-Shader kann das Ende seines Programms erreichen, bevor er vertices ausgibt. das ist völlig legal.
  • Wenn Sie einen Geometrie-Shader debuggen, können Sie die Anzahl der generierten Scheitelpunkte ermitteln, indem Sie die Anzahl der generierten Emittanweisungen zählen.

Diese Anweisung gilt für die folgenden Shaderphasen:

Vertexshader Geometrie-Shader Pixelshader
x

Diese Anweisung ist enthalten, um das Debuggen eines Shaders in der Assembly zu unterstützen. Sie können keinen Shader in der Assemblysprache mit Shader Model 4 erstellen.

Beispiel

Hier einige Beispiele.

Gehen Sie davon aus, dass Eingabedaten aus Position (.xyzw) und Farbe (.rgb) bestehen. Jede Komponente verbraucht ein Byte; Bei 7 Bytes ist die maximale Anzahl von Scheitelpunkten, die der Shader generieren kann, 1024 / (4 + 3) = 146.

dcl_maxOutputVertexCount 146

Angenommen, Ihr Geometrie-Shader erstellt 32 Vektoren mit vier Komponenten. Die maximale Anzahl von Scheitelpunkten, die der Shader generieren kann, wäre 1024 / (32 * 4) = 8.

dcl_maxOutputVertexCount 8

Minimales Shadermodell

Diese Funktion wird in den folgenden Shadermodellen unterstützt.

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

Shadermodell 4-Assembly (DirectX HLSL)