ciclo (sm4 - asm)

Specifica un ciclo che esegue l'iterazione fino a quando non viene rilevata un'istruzione di interruzione.

loop

 

Commenti

il ciclo può eseguire un'iterazione indefinita, anche se l'esecuzione complessiva di Shader potrebbe essere costretta a terminare dopo l'esecuzione di un certo numero di istruzioni.

I blocchi di controllo 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 profondi per subroutine non è definito.

Il formato del token contiene l'offset dell'istruzione endloop corrispondente in Shader come praticità.

Nell'esempio seguente viene illustrato come usare l'istruzione ciclo.

                loop
                    // example of termination condition
                    if_nz r0.x
                        break
                    endif
                    ...
                endloop

Questa istruzione si applica alle fasi dello shader seguenti:

Vertex shader Geometry shader Pixel shader
x x x

 

Modello di shader minimo

Questa funzione è supportata nei modelli 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

 

Shader Model 4 Assembly (DirectX HLSL)