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 | sí |
Modelo de sombreador 4.1 | sí |
Modelo de sombreador 4 | sí |
Modelo de sombreador 3 (DirectX HLSL) | no |
Modelo de sombreador 2 (DirectX HLSL) | no |
Modelo de sombreador 1 (DirectX HLSL) | no |
Temas relacionados