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.
  • minRegister è v per un registro di input vertex o pixel shader oppure per un registro di output del vertex shader.
  • M è un numero intero che indica il numero di registro.
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
Modello shader 4.1
Modello shader 4
Modello shader 3 (DirectX HLSL) no
Modello shader 2 (DirectX HLSL) no
Modello shader 1 (DirectX HLSL) no

Assembly del modello shader 4 (DirectX HLSL)