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 masque d’écriture contrôle les composants d’un registre de destination écrits une fois qu’une instruction est terminée. Un masque d’écriture de sortie est autorisé tant que les composants sont dans l’ordre de .rgba ou .xyzw. Autrement dit, .rba et .xw sont des masques valides. Les registres de texture ont un ensemble de règles et les registres autres que les registres de texture ont un autre ensemble de règles.
Syntaxe
| dst.writemask |
|---|
où
- dst est un registre de destination.
- writemask est une séquence de masques de l’ensemble : (x,y,z,w) ou (rouge, vert, bleu, alpha).
Remarques
Les masques d’écriture de destination suivants sont disponibles.
| Versions du nuanceur de pixels | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
|---|---|---|---|---|---|---|---|---|---|
| .xyzw (par défaut) | x | x | x | x | x | x | x | x | x |
| .Xyz | x | x | x | x | x | x | x | x | x |
| .w | x | x | x | x | x | x | x | x | x |
| masque arbitraire | x | x | x | x | x | x |
Le masque arbitraire permet à n’importe quel ensemble de canaux d’être combinés pour produire un masque. Les canaux doivent être répertoriés dans l’ordre r, g, b, a - par exemple, register.rba, qui met à jour les canaux rouge, bleu et alpha de la destination. Le masque arbitraire est disponible dans la version 1_4 ou ultérieure.
Si aucun masque d’écriture de destination n’est spécifié, le masque d’écriture de destination est défini par défaut sur la casse rgba. En d’autres termes, tous les canaux du registre de destination sont mis à jour.
Pour les versions 1_0 à 1_3, les dp3 - ps instruction arithmétique dp3 peuvent utiliser uniquement les masques d’écriture de sortie .rgb ou .rgba.
Les masques d’écriture du registre de destination sont pris en charge uniquement pour les opérations arithmétiques. Ils ne peuvent pas être utilisés sur les instructions d’adressage de texture, à l’exception des instructions de la version 1_4, texcrd - ps et texld - ps_2_0 et up.
La valeur par défaut consiste à écrire les quatre canaux de couleur.
// All four color channels can be written by explicitly listing them.
mul r0.rgba, t0, v0
// Or, the default mask can be used to write all four channels.
mul r0, t0, v0
Le masque d’écriture alpha est également appelé masque d’écriture scalaire, car il utilise le pipeline scalaire.
add r0.a, t1, v1
Ainsi, cette instruction place efficacement la somme du composant alpha de t1 et du composant alpha de v1 dans r0.a.
Le masque d’écriture de couleur est utilisé pour contrôler l’écriture dans les canaux de couleur.
// The color write mask is also referred to as the vector write mask,
// because it uses the vector pipeline.
mul r0.rgb, t0, v0
Pour la version 1_4, les masques d’écriture de destination peuvent être utilisés dans n’importe quelle combinaison tant que les masques sont commandés r,g,b,a.
// This example updates the red, blue, and alpha channels.
mov r0.rba, r1
Une instruction co-émise permet d’émettre simultanément deux instructions potentiellement différentes. Pour ce faire, exécutez les instructions dans le pipeline alpha et le pipeline RVB.
mul r0.rgb, t0, v0
+ add r1.a, t1, c1
L’avantage des instructions de jumelage de cette façon est qu’il permet d’effectuer différentes opérations dans le pipeline vectoriel et scalaire en parallèle.
Ces registres de sortie de nuanceur de vertex sont limités aux masques d’écriture suivants :
| Type d’inscription | Masque d’écriture obligatoire |
|---|---|
| oFog | aucun masque d’écriture explicite n’est autorisé sur ce registre scalaire |
| Opte | aucun masque d’écriture explicite n’est autorisé sur ce registre scalaire |
| oPos | .xyzw(qui est la valeur par défaut) |
| Ot# | masque combiné : .x | .xy | .xyz | .xyzw (qui est la valeur par défaut) |
Rubriques connexes