dcl_indexRange (sm4 - asm)
Dichiara un intervallo di registri a cui si accederà in base all'indice (un numero intero calcolato nello shader).
dcl_indexRange minRegisterM, maxRegisterN |
---|
Elemento | Descrizione |
---|---|
minRegisterM |
[in] Primo registro per l'accesso in base all'indice.
|
maxRegisterN |
[in] Ultimo registro per l'accesso in base all'indice. Lo stesso formato di minRegister , ad eccezione di N , è il numero di registro. |
Le restrizioni seguenti si applicano a tutti i registri:
- I registri min e max devono essere dello stesso tipo e hanno le stesse maschere del componente (se le maschere sono dichiarate).
- Un registro può avere più intervalli di indici, purché non si sovrappongano.
- Il numero minimo del registro deve essere minore del numero massimo di registrazione.
- Un registro di indice non può contenere un valore di sistema.
- L'indicizzazione di un registro al di fuori della dichiarazione di indice max produce risultati non definiti.
I registri di input del pixel shader devono usare la stessa modalità di interpolazione; I registri di output pixel shader non sono indicizzabili.
Un registro di input geometry shader ha due dimensioni (asse dei vertici, asse degli attributi); l'intervallo di indici si applica solo all'asse degli attributi perché l'asse dei vertici è sempre completamente indicizzato.
Questa istruzione si applica alle fasi dello shader seguenti:
Vertex shader | Geometry shader | Pixel shader |
---|---|---|
x | x | x |
Questa istruzione è inclusa per facilitare il debug di uno shader nell'assembly; non è possibile creare uno shader nel linguaggio assembly usando il modello shader 4.
Esempio
Ecco un esempio.
dcl_indexRange v1, v3
dcl_indexRange v4, v9
Modello minimo shader
Questa funzione è supportata nei modelli di shader seguenti.
Modello di shader | Supportato |
---|---|
Modello shader 5 | sì |
Modello shader 4.1 | sì |
Modello shader 4 | sì |
Modello shader 3 (DirectX HLSL) | no |
Modello shader 2 (DirectX HLSL) | no |
Modello shader 1 (DirectX HLSL) | no |