if (sm4 - asm)
Ramo basato sul risultato OR logico.
if{_z|_nz} src0.select_component |
---|
Elemento | Descrizione |
---|---|
src0 |
[in] Contiene il componente in cui testare la condizione. |
Commenti
Il formato del token contiene l'offset dell'istruzione endif corrispondente nello shader per praticità.
Nell'esempio seguente viene illustrato come usare questa istruzione.
if_z r0.x // if all bits in r0.x are zero
...
else // (optional)
...
endif
if_nz r1.x // if any bit in r0.x is nonzero
...
else // (optional)
...
endif
Restrizioni
- Gli operandi di origine (se 4 vettori di componenti) devono usare un singolo selettore componente.
- Il registro a 32 bit fornito da src0 viene testato a livello di bit. Se un bit è diverso da zero, if_z sarà true. Se tutti i bit sono zero, if_nz sarà true.
- I blocchi di controllo del flusso possono annidare fino a 64 profondità per subroutine (e main). Il compilatore HLSL non genererà subroutine che superano questo limite. Il comportamento delle istruzioni del flusso di controllo oltre i 64 livelli di profondità (per subroutine) non è definito.
Questa istruzione si applica alle fasi dello shader seguenti:
Vertex shader | Geometry shader | Pixel shader |
---|---|---|
x | x | x |
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 |