for (Instrucción)
Ejecuta de forma iterativa una serie de instrucciones, basadas en la evaluación de la expresión condicional.
[Attribute] for ( Initializer; Condicional; Iterador ) { bloque de instrucciones; }
Parámetros
-
Atributo
-
Parámetro opcional que controla cómo se compila la instrucción. Cuando no se especifica ningún atributo, el compilador intentará primero emitir una versión enrollada del bucle y, si se produce un error, o si algunas operaciones serían más fáciles si el bucle se desenrolló, revertirá a una versión no enrollada del bucle.
Atributo Descripción unroll(x) Desenrolle el bucle hasta que deje de ejecutarse. Opcionalmente, puede especificar el número máximo de veces que se va a ejecutar el bucle. No es compatible con el atributo [loop]. bucle Genere código que use el control de flujo para ejecutar cada iteración del bucle. No es compatible con el atributo [unroll]. fastopt Reduce el tiempo de compilación, pero genera optimizaciones menos agresivas. Si usa este atributo, el compilador no anulará los bucles.
Este atributo solo afecta a los destinos del modelo de sombreador que admiten instrucciones de interrupción . Este atributo está disponible en el modelo de sombreador vs_2_x y el modelo de sombreador 3 y versiones posteriores . Resulta especialmente útil en el modelo de sombreador 4 y versiones posteriores cuando el compilador compila bucles. El compilador simula bucles de forma predeterminada para evaluar si puede anular su inscripción. Si no desea que el compilador desenrolle bucles, use este atributo para reducir el tiempo de compilación.allow_uav_condition Permite que una condición de terminación del bucle de sombreador de proceso se base en una lectura de UAV. El bucle no debe contener intrínsecos de sincronización. -
Inicializador
-
Valor inicial del contador de bucles.
-
Condicional
-
Expresión condicional. Si la expresión condicional se evalúa como true, se ejecuta el bloque de instrucciones . El bucle finaliza cuando la expresión se evalúa como false.
-
Iterador
-
Actualice el valor del contador de bucles.
-
Bloque de instrucciones
-
Una o varias instrucciones HLSL.
Comentarios
Los atributos [unroll] y [loop] son mutuamente excluyentes y generarán errores del compilador cuando se especifiquen ambos.
Los atributos [fastopt] y [allow_uav_condition] se omiten si se especifica [desenrollar].