Condividi tramite


Istruzione for

Esegue in modo iterativo una serie di istruzioni, in base alla valutazione dell'espressione condizionale.

[Attributo] per ( Inizializzatore; Condizionale; Iterator ) { Statement Block; }

Parametri

Attributo

Parametro facoltativo che controlla la modalità di compilazione dell'istruzione. Quando non viene specificato alcun attributo, il compilatore tenterà prima di tutto di generare una versione di rollback del ciclo e, in caso contrario, se alcune operazioni sarebbero più facili se il ciclo è stato annullato, eseguirà il fallback a una versione di rollback del ciclo non eseguito.

Attributo Descrizione
unroll(x) Annullare la registrazione del ciclo fino a quando non viene interrotta l'esecuzione. Facoltativamente, è possibile specificare il numero massimo di esecuzioni del ciclo. Non compatibile con l'attributo [loop].
loop Generare codice che usa il controllo flusso per eseguire ogni iterazione del ciclo. Non compatibile con l'attributo [annulla registrazione].
fastopt Riduce il tempo di compilazione, ma produce ottimizzazioni meno aggressive. Se si usa questo attributo, il compilatore non annulla la registrazione.
Questo attributo influisce solo sulle destinazioni del modello shader che supportano le istruzioni di interruzione . Questo attributo è disponibile nel modello shader vs_2_x e nel modello shader 3 e versioni successive. È particolarmente utile nel modello shader 4 e versioni successive quando il compilatore compila cicli. Il compilatore simula cicli per impostazione predefinita per valutare se può annullare la registrazione. Se non si vuole che il compilatore eseduca cicli di registrazione, usare questo attributo per ridurre il tempo di compilazione.
allow_uav_condition Consente a una condizione di terminazione del ciclo di shader di calcolo di essere basata su una lettura UAV. Il ciclo non deve contenere oggetti intrinseci di sincronizzazione.

Inizializzatore

Valore iniziale del contatore di cicli.

Condizionale

Espressione condizionale. Se l'espressione condizionale restituisce true, viene eseguito il blocco di istruzioni. Il ciclo termina quando l'espressione restituisce false.

Iteratore

Aggiornare il valore del contatore del ciclo.

Blocco di istruzioni

Una o più istruzioni HLSL.

Commenti

Gli attributi [unroll] e [loop] si escludono a vicenda e generano errori del compilatore quando vengono specificati entrambi.

Gli attributi [fastopt] e [allow_uav_condition] vengono ignorati se viene specificato [annulla registrazione].

Vedi anche

Controllo flusso