Partager via


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
L #
[in] Étiquette de la sous-routine.

Notes

Lorsqu’un ret est rencontré, retournez l’exécution à l’instruction après cet appel.

Le format de jeton contient le décalage de l’étiquette correspondante dans le nuanceur par commodité.

L’exemple suivant montre l’instruction d’appel.

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

Restrictions

  • Les sous-routines peuvent imbriquer 32 profondeurs.
  • La pile d’adresses de retour est gérée de manière transparente par l’implémentation.
  • S’il y a déjà 32 entrées dans 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 registre 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 pour toute gestion manuelle de la pile 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 Pris en charge
Modèle de nuanceur 5 Oui
Modèle de nuanceur 4.1 Oui
Modèle de nuanceur 4 Oui
Modèle de nuanceur 3 (DirectX HLSL) non
Shader Model 2 (DirectX HLSL) non
Modèle de nuanceur 1 (DirectX HLSL) non

Shader Model 4 Assembly (DirectX HLSL)