dcl_indexRange (sm4 - asm)

Deklariert einen Bereich von Registern, auf den vom Index zugegriffen wird (eine ganze Zahl, die im Shader berechnet wird).

dcl_indexRange minRegisterM, maxRegisterN
Element Beschreibung
minRegisterM
[in] Das erste Register für den Zugriff nach Index.
  • minRegister ist entweder v für ein Vertex- oder Pixelshader-Eingaberegister oder o für ein Vertex-Shaderausgaberegister.
  • M ist eine ganze Zahl, die die Registernummer angibt.
maxRegisterN
[in] Das letzte Register, auf das nach Index zugegriffen werden soll. Dasselbe Formular wie minRegister mit Ausnahme von N ist die Registernummer.

Die folgenden Einschränkungen gelten für alle Register:

  • Die Register min und max müssen denselben Typ aufweisen und die gleichen Komponentenmasken aufweisen (wenn Masken deklariert werden).
  • Ein Register kann mehrere Indexbereiche aufweisen, solange sie sich nicht überschneiden.
  • Die Mindestregisternummer muss kleiner als die maximale Registernummer sein.
  • Ein Indexregister kann keinen Systemwert enthalten.
  • Die Indizierung eines Registers außerhalb der Deklaration max index führt zu undefinierten Ergebnissen.

Pixelshader-Eingaberegister müssen denselben Interpolationsmodus verwenden. Pixelshaderausgaberegister sind nicht indizierbar.

Ein Geometrie-Shader-Eingaberegister verfügt über zwei Dimensionen (Vertexachse, Attributachse); Der Indexbereich gilt nur für die Attributachse, da die Vertexachse immer vollständig indiziert werden kann.

Diese Anweisung gilt für die folgenden Shaderphasen:

Vertexshader Geometrie-Shader Pixelshader
x x x

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

Beispiel

Beispiel:

dcl_indexRange v1, v3
dcl_indexRange v4, v9

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

Assembly des Shadermodells 4 (DirectX HLSL)