boucle (sm4 - asm)

Spécifie une boucle qui itère jusqu’à ce qu’une instruction d’arrêt soit rencontrée.

loop

 

Notes

la boucle peut itérer indéfiniment, même si l’exécution globale du nuanceur peut être forcée à se terminer après l’exécution d’un certain nombre d’instructions.

Les blocs de contrôle de flux peuvent imbriquer jusqu’à 64 profondeurs par sous-routine et main. Le compilateur HLSL ne génère pas de sous-routines qui dépassent cette limite. Le comportement des instructions de flux de contrôle au-delà de 64 niveaux de profondeur par sous-routine n’est pas défini.

Le format de jeton contient le décalage de l’instruction endloop correspondante dans le nuanceur à titre pratique.

L’exemple suivant montre comment utiliser l’instruction de boucle.

                loop
                    // example of termination condition
                    if_nz r0.x
                        break
                    endif
                    ...
                endloop

Cette instruction s’applique aux étapes de nuanceur suivantes :

Nuanceur de sommets Nuanceur de géométrie Nuanceur de pixels
x x x

 

Modèle de nuanceur minimal

Cette fonction est prise en charge dans les modèles de nuanceur suivants.

Modèle de nuanceur Prise en charge
Modèle de nuanceur 5 Oui
Modèle de nuanceur 4.1 Oui
Modèle de nuanceur 4 Oui
Nuanceur modèle 3 (DirectX HLSL) non
Nuanceur modèle 2 (DirectX HLSL) non
Nuanceur Modèle 1 (DirectX HLSL) non

 

Assembly de nuanceur modèle 4 (DirectX HLSL)