Share via


Instruction for

Exécute de manière itérative une série d’instructions basées sur l’évaluation de l’expression conditionnelle.

[Attribut] pour ( Initialiseur ; Conditionnelle; Iterator ) { Statement Block; }

Paramètres

Attribut

Paramètre facultatif qui contrôle la compilation de l’instruction. Lorsqu’aucun attribut n’est spécifié, le compilateur tente d’abord d’émettre une version roulée de la boucle, et si cela échoue, ou si certaines opérations sont plus faciles si la boucle a été annulée, revient à une version annulée de la boucle.

Attribut Description
unroll(x) Déroulez la boucle jusqu’à ce qu’elle cesse de s’exécuter. Peut éventuellement spécifier le nombre maximal d’exécutions de la boucle. Non compatible avec l’attribut [loop].
loop Générez du code qui utilise le contrôle de flux pour exécuter chaque itération de la boucle. Non compatible avec l’attribut [unroll].
fastopt Réduit le temps de compilation, mais produit des optimisations moins agressives. Si vous utilisez cet attribut, le compilateur ne déploie pas les boucles.
Cet attribut affecte uniquement les cibles de modèle de nuanceur qui prennent en charge les instructions d’arrêt . Cet attribut est disponible dans le modèle de nuanceur vs_2_x et le modèle de nuanceur 3 et ultérieur. Il est particulièrement utile dans le modèle de nuanceur 4 et les versions ultérieures lorsque le compilateur compile des boucles. Le compilateur simule des boucles par défaut pour évaluer s’il peut les désinscrire. Si vous ne souhaitez pas que le compilateur déroule les boucles, utilisez cet attribut pour réduire le temps de compilation.
allow_uav_condition Permet à une condition d’arrêt de boucle de nuanceur de calcul d’être basée sur une lecture UAV. La boucle ne doit pas contenir d’intrinsèques de synchronisation.

Initialiseur

Valeur initiale du compteur de boucle.

Conditionnelle

Expression conditionnelle. Si l’expression conditionnelle prend la valeur true, le bloc d’instructions est exécuté. La boucle se termine lorsque l’expression prend la valeur false.

Itérateur

Mettez à jour la valeur du compteur de boucles.

Bloc d’instructions

Une ou plusieurs instructions HLSL.

Notes

Les attributs [unroll] et [loop] s’excluent mutuellement et génèrent des erreurs du compilateur lorsque les deux sont spécifiés.

Les attributs [fastopt] et [allow_uav_condition] sont ignorés si [unroll] est spécifié.

Voir aussi

Contrôle de flux