Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un jeton d’instruction informe le pilote d’une opération spécifique à effectuer et se compose des bits suivants :
Bribes
[15:00] Bits 0 à 15 indiquent un code d’opération. D3DSIO_* est un exemple de code d’opération, où * représente l’instruction. Par exemple, l’extrait de code suivant montre une instruction ADD :
// D3DSIO_ADD d, s1, s2
[23:16] Les bits 16 à 23 indiquent des contrôles spécifiques liés au code d’opération.
[27:24] Pour les versions de nuanceur de pixels et de vertex antérieures à 2_0, les bits 24 à 27 sont réservés et définis sur 0x0.
Pour les nuanceurs de pixels et de vertex versions 2_0 et ultérieures, les bits 24 à 27 spécifient la taille dans les DWORDs de l’instruction à l’exclusion du jeton d’instruction lui-même (autrement dit, le nombre de jetons qui composent l’instruction à l’exclusion du jeton d’instruction).
[28] Pour les versions de nuanceur de pixels et de vertex antérieures à 2_0, le bit 28 est réservé et défini sur 0x0.
Pour les versions 2_0 et ultérieures des nuanceurs de pixels et de vertex, le bit 28 indique si l’instruction est prédicée (c’est-à-dire qu’elle contient un jeton source de prédicat supplémentaire à la fin du code du nuanceur). Si ce bit est défini sur 0x1, l’instruction est prédicée.
[29] Réservé. Cette valeur est définie sur 0x0.
[30] Pour les versions de shader de pixel précédentes à 2_0, le bit 30 est le bit de co-émission. Si la valeur est 1, exécutez cette instruction avec des instructions précédentes ; sinon, exécutez séparément.
Pour le nuanceur de pixels version 2_0 et ultérieure et toutes les versions de nuanceur de vertex, le bit 30 est réservé et défini sur 0x0.
[31] Bit 31 est égal à zéro (0x0).
commentaires
Pour plus d’informations sur les opérations qui peuvent être spécifiées dans les bits 0 à 15 des jetons d’instruction, consultez la référence du nuanceur de pixels et la référence du nuanceur de vertex dans la dernière documentation du Kit de développement logiciel (SDK) DirectX.
Une fois que le runtime DirectX3D reçoit le code du nuanceur d’une application, le runtime valide le code avant de passer le code au pilote. En règle générale, le runtime préfixe les instructions d’assembleur avec « D3DSIO_ » pour créer le code d’opération. Par exemple, les instructions d’assembleur suivantes correspondent aux opérations en mode noyau :
| Instruction assembleur | Opération en mode noyau |
|---|---|
ajouter |
D3DSIO_ADD |
Mov |
D3DSIO_MOV |
sub |
D3DSIO_SUB |
Tex |
D3DSIO_TEX |
texcoord |
D3DSIO_TEXCOORD |
Notez que dans toutes les versions du nuanceur de vertex, l’instruction de sous-assembleur est implémentée en tant qu’opération de D3DSIO_ADD avec le modificateur source (bits 27:24) du deuxième jeu de sources à négation (0x1).
Les instructions tex et texcoord s’appliquent aux versions de nuanceur de pixels 1_0 à 1_3 ; chaque instruction a un paramètre de destination associé à celui-ci.
Les instructions texld et texcrd sont nouvelles pour le nuanceur de pixels version 1_4 et ultérieure ; chaque instruction a à la fois des paramètres de destination et de source associés.
Le runtime convertit les instructions d’assembleur tex et texld en mode noyau D3DSIO_TEX. Le runtime convertit les instructions d’assembleur texcoord et texcrd en mode noyau D3DSIO_TEXCOORD. Les pilotes vérifient d’abord la version du nuanceur de pixels du code de nuanceur, puis traitent les instructions en conséquence. Par exemple, si un pilote vérifie qu’il a reçu le code nuanceur de pixels version 1_4 lors d'une opération D3DSIO_TEX, le pilote détermine que les paramètres de destination et de source suivent le jeton d’instruction.
Exigences
Disponible dans Windows Vista et versions ultérieures des systèmes d’exploitation Windows.