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.
|
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 |