boucle - vs

Démarrer une boucle... bloc endloop .

Syntaxe

boucle aL, i #

 

Où :

Notes

Versions du nuanceur de vertex 1_1 2_0 2_x 2_sw 3_0 3_sw
loop x x x x x

 

  • Le registre du compteur de boucles (aL) contient le nombre de boucles actuel et peut être utilisé pour l’adressage relatif dans le registre entier constant (c#) ou les registres de sortie (o#) à l’intérieur du bloc de boucles.
  • i#.x spécifie le nombre d’itérations. La plage juridique est [0, 255]. Notez que cette instruction n’incrémente ni ne décrémente la valeur de i#.x.
  • i#.y spécifie la valeur initiale du registre de compteurs de boucles (aL). La plage juridique est [0, 255]. Notez que cette instruction n’incrémente ni ne décrémente la valeur de i#.y.
  • i#.z spécifie la taille de l’étape/de la foulée. La plage juridique est [-128, 127].
  • i#.w n’est pas utilisé et doit être défini sur 0.
  • Les blocs de boucle peuvent être imbriqués. Consultez Limites d’imbrication du contrôle de flux.
  • En cas d’imbrication, la valeur du registre du compteur de boucles (aL) fait référence au bloc de boucle englobant immédiat.
  • Les blocs de boucles sont autorisés à se trouver complètement à l’intérieur d’un bloc if* ou à l’entourer complètement. Aucun stradling n’est autorisé.

Exemple

loop aL, i3
    add r1, r0, c2[aL]
endloop

Instructions du nuanceur de vertex