appel (SM4-ASM)

Appelle une sous-routine marquée par l’emplacement où l’étiquette l # apparaît dans le programme.

appeler l#
Élément Description
budget#
[dans ] l’étiquette de la sous-routine.

Notes

Quand un RET est rencontré, retourne l’exécution à l’instruction après cet appel.

Le format de jeton contient le décalage de l’étiquette correspondante dans le nuanceur pour des raisons pratiques.

L’exemple suivant illustre l’instruction call.

                ...
                call l3
                ...
                ret
                label l3
                    ...
                    retc_nz r0.x
                    ...
                ret

Restrictions

  • Les sous-routines peuvent imbriquer 32 en profondeur.
  • La pile d’adresses de retour est gérée de façon transparente par l’implémentation de.
  • S’il existe déjà 32 entrées sur la pile d’adresses de retour et qu’un appel est émis, l’appel est ignoré.
  • Il n’existe pas de pile de paramètres automatique. L’application peut utiliser un tableau de registres temporaire indexable (x # [ ] ) pour implémenter manuellement une pile. Toutefois, les adresses de retour d’appel de sous-routine ne sont pas visibles et sont orthogonales à toute gestion de pile manuelle effectuée par l’application.
  • L’indexation du paramètre l # n’est pas autorisée.
  • La récursivité n’est pas autorisée.

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

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
Shader, modèle 5 Oui
Modèle de nuanceur 4,1 Oui
Nuanceur modèle 4 Oui
Shader Model 3 (DirectX HLSL) non
Shader Model 2 (DirectX HLSL) non
Shader Model 1 (DirectX HLSL) non

Assembly modèle 4 du nuanceur (DirectX HLSL)