Share via


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.

Confira também

Controle de fluxo