Modificateurs du registre source du nuanceur de pixels

Utilisez des modificateurs de registre source pour modifier la valeur lue à partir d’un registre avant l’exécution d’une instruction. Le contenu d’un registre source reste inchangé. Les modificateurs sont utiles pour ajuster la plage de données d’inscription en préparation de l’instruction. Un ensemble de modificateurs appelés sélecteurs copie ou réplique les données à partir d’un seul canal (r,g,b,a) dans les autres canaux.

ps_1_1 - ps_1_4

Ce tableau identifie les versions qui prennent en charge chaque modificateur :

Modificateurs du registre source Syntaxe Version 1_1 Version 1_2 Version 1_3 Version 1_4
Biais register_bias X X X X
Inverser 1 - Inscrire X X X X
negate - inscrire X X X X
mettre à l’échelle de 2 register_x2 X
mise à l’échelle signée register_bx2 X X X X
Modificateurs texld et texcrd register_d* X X X X
registre source swizzling register.xyzw X X X X

 

Les modificateurs du registre source ne peuvent être utilisés que sur des instructions arithmétiques. Ils ne peuvent pas être utilisés dans les instructions d’adresse de texture. L’exception à ceci est la mise à l’échelle de 2 modificateurs. Pour la version 1_1, l’échelle signée peut être utilisée sur l’argument source de n’importe quelle instruction texm*. Pour la version 1_2 ou 1_3, l’échelle signée peut être utilisée sur l’argument source de n’importe quelle instruction d’adresse de texture.

Certaines restrictions spécifiques au modificateur :

  • La negate peut être combinée avec le biais, la mise à l’échelle signée ou le modificateur scalex2. Lorsqu’elle est combinée, la négation est exécutée en dernier.
  • L’inverse ne peut pas être combiné avec tout autre modificateur.
  • L’inverse, la négation, le biais, la mise à l’échelle signée et scalex2 peuvent être combinés avec l’un des sélecteurs.
  • Les modificateurs de registre source ne doivent pas être utilisés sur les registres constants, car ils entraînent des résultats non définis. Pour la version 1_4, les modificateurs sur les constantes ne sont pas autorisés et échouent à la validation.

ps_2_0 et versions ultérieures

Pour la version ps_2_0 et vers le haut, le nombre de modificateurs a été simplifié.

Negate

Annulez le contenu du registre source.

Modificateur de composant Description
- r Négation de la source

 

Le modificateur de négation ne peut pas être utilisé sur le deuxième registre source de ces instructions : m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps et m4x4 - ps.

Versions du nuanceur de pixels 2_0 2_x 2_sw 3_0 3_sw
- x x x x x

 

Valeur absolue

Prenez la valeur absolue du registre.

Versions du nuanceur de pixels 2_0 2_x 2_sw 3_0 3_sw
abs x x

 

Si un nuanceur de version 3 lit à partir d’un ou plusieurs registres flottants constants (c#), l’un des éléments suivants doit être vrai.

  • Tous les registres à virgule flottante constante doivent utiliser le modificateur abs.
  • Aucun des registres à virgule flottante constante ne peut utiliser le modificateur abs.

Modificateurs de registre du nuanceur de pixels