Instrução for
Executa iterativamente uma série de instruções, com base na avaliação da expressão condicional.
[Atributo] para ( Inicializador; Condicional; Iterador ) { Bloco de Instrução; }
Parâmetros
-
Atributo
-
Um parâmetro opcional que controla como a instrução é compilada. Quando nenhum atributo for especificado, o compilador tentará primeiro emitir uma versão rolada do loop e, se isso falhar, ou se algumas operações forem mais fáceis se o loop tiver sido cancelado, retornará para uma versão não rolada do loop.
Atributo Descrição unroll(x) Cancele o registro do loop até que ele pare de ser executado. Opcionalmente, é possível especificar o número máximo de vezes que o loop deve ser executado. Não compatível com o atributo [loop] . loop Gere o código que usa o controle de fluxo para executar cada iteração do loop. Não compatível com o atributo [unroll] . fastopt Reduz o tempo de compilação, mas produz otimizações menos agressivas. Se você usar esse atributo, o compilador não cancelará o registro de loops.
Esse atributo afeta apenas destinos de modelo de sombreador que dão suporte a instruções de interrupção . Esse atributo está disponível no modelo de sombreador vs_2_x e no modelo de sombreador 3 e posterior. Ele é particularmente útil no modelo de sombreador 4 e posterior quando o compilador compila loops. O compilador simula loops por padrão para avaliar se ele pode cancelá-los. Se você não quiser que o compilador cancele o registro de loops, use esse atributo para reduzir o tempo de compilação.allow_uav_condition Permite que uma condição de encerramento de loop de sombreador de computação seja baseada em uma leitura de UAV. O loop não deve conter intrínsecos de sincronização. -
Inicializador
-
O valor inicial do contador de loops.
-
Condicional
-
Uma expressão condicional. Se a expressão condicional for avaliada como true, o bloco de instrução será executado. O loop termina quando a expressão é avaliada como false.
-
Iterador
-
Atualize o valor do contador de loop.
-
Bloco de Instrução
-
Uma ou mais instruções HLSL.
Comentários
Os atributos [cancelar registro] e [loop] são mutuamente exclusivos e gerarão erros do compilador quando ambos forem especificados.
Os atributos [fastopt] e [allow_uav_condition] serão ignorados se [cancelar o registro] for especificado.