loop (sm4 - asm)

Especifica un bucle que recorre en iteración hasta que se encuentra una instrucción de interrupción.

bucle

 

Comentarios

loop puede iterar indefinidamente, aunque la ejecución general del sombreador puede verse forzada a finalizar después de ejecutarse algún número de instrucciones.

Los bloques de control de flujo pueden anidar hasta 64 profundidades por subrutina y principal. El compilador HLSL no generará subrutinas que superen este límite. El comportamiento de las instrucciones de flujo de control más allá de 64 niveles de profundidad por subrutina no está definido.

El formato de token contiene el desplazamiento de la instrucción endloop correspondiente en el Sombreador como comodidad.

En el ejemplo siguiente se muestra cómo usar la instrucción de bucle.

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

Esta instrucción se aplica a las siguientes fases del sombreador:

Sombreador de vértices Sombreador de geometría Sombreador de píxeles
x x x

 

Modelo de sombreador mínimo

Esta función se admite en los siguientes modelos de sombreador.

Modelo de sombreador Compatible
Modelo de sombreador 5
Modelo de sombreador 4.1
Modelo de sombreador 4
Modelo de sombreador 3 (DirectX HLSL) no
Modelo de sombreador 2 (DirectX HLSL) no
Modelo de sombreador 1 (DirectX HLSL) no

 

Ensamblado del modelo de sombreador 4 (DirectX HLSL)