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 |