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.
Rubriques connexes