Partager via


Modificateurs de 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 de registre en préparation de l’instruction. Un ensemble de modificateurs appelés sélecteurs copie ou réplique les données d’un canal unique (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 de registre source Syntaxe Version 1_1 Version 1_2 Version 1_3 Version 1_4
Biais register_bias X X X X
Inverser 1 - s’inscrire X X X X
negate -Registre X X X X
mettre à l’échelle par 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 de registre source ne peuvent être utilisés que sur des instructions arithmétiques. Ils ne peuvent pas être utilisés sur les instructions d’adresse de texture. L’exception à cela est le modificateur d’échelle par 2 . 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 :

  • Negate peut être combiné avec le biais, la mise à l’échelle signée ou le modificateur scalex2. En cas de combinaison, negate est exécuté en dernier.
  • Invert ne peut pas être combiné avec un autre modificateur.
  • L’inversion, la nongate, le biais, la mise à l’échelle signée et scalex2 peuvent être combinés avec n’importe quel sélecteur.
  • 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 la validation échoue.

ps_2_0 et versions ultérieures

Pour les versions ps_2_0 et ultérieures, le nombre de modificateurs a été simplifié.

Negate

Annulez le contenu du registre source.

Modificateur de composant Description
-R Négation source

 

Le modificateur negate ne peut pas être utilisé dans 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 float constants (c#), l’un des éléments suivants doit être true.

  • 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