Compartir a través de


Máscara de escritura del registro de destino

Una máscara de escritura controla qué componentes de un registro de destino se escriben una vez completada una instrucción. Se permite una máscara de escritura de salida siempre que los componentes estén en el orden de .rgba o .xyzw. Es decir, .rba y .xw son máscaras válidas. Los registros de texturas tienen un conjunto de reglas y registros que no son de textura tienen otro conjunto de reglas.

Sintaxis

dst.writemask

 

where

  • dst es un registro de destino.
  • writemask es una secuencia de máscaras de conjunto: (x,y,z,w) o (rojo, verde, azul, alfa).

Comentarios

Están disponibles las siguientes máscaras de escritura de destino.

Versiones del sombreador de píxeles 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
.xyzw (valor predeterminado) 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
máscara arbitraria x x x x x x

 

La máscara arbitraria permite combinar cualquier conjunto de canales para generar una máscara. Los canales deben aparecer en el orden r, g, b, a , por ejemplo, register.rba, que actualiza los canales rojo, azul y alfa del destino. La máscara arbitraria está disponible en la versión 1_4 o posterior.

Si no se especifica ninguna máscara de escritura de destino, la máscara de escritura de destino tiene como valor predeterminado el caso rgba. En otras palabras, se actualizan todos los canales del registro de destino.

Para las versiones 1_0 a 1_3, la instrucción aritmética dp3 -ps dp3 solo puede usar las máscaras de escritura de salida .rgb o .rgba.

Las máscaras de escritura del registro de destino solo se admiten para las operaciones aritméticas. No se pueden usar en las instrucciones de direccionamiento de textura, con la excepción de las instrucciones de la versión 1_4, texcrd - ps y texld - ps_2_0 y versiones posteriores.

El valor predeterminado es escribir los cuatro canales de color.

// 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

La máscara de escritura alfa también se conoce como máscara de escritura escalar, ya que usa la canalización escalar.

add r0.a, t1, v1

Por lo tanto, esta instrucción coloca efectivamente la suma del componente alfa de t1 y el componente alfa de v1 en r0.a.

La máscara de escritura de color se usa para controlar la escritura en los canales de color.

// The color write mask is also referred to as the vector write mask, 
//   because it uses the vector pipeline.
mul r0.rgb, t0, v0

Para la versión 1_4, las máscaras de escritura de destino se pueden usar en cualquier combinación siempre que las máscaras estén ordenadas r,g,b,a.

// This example updates the red, blue, and alpha channels.
mov r0.rba, r1

Una instrucción emitida conjuntamente permite emitir dos instrucciones potencialmente diferentes simultáneamente. Esto se logra mediante la ejecución de las instrucciones de la canalización alfa y la canalización RGB.

  mul r0.rgb, t0, v0
+ add r1.a,   t1, c1

La ventaja de emparejar instrucciones de esta manera es que permite realizar diferentes operaciones en el vector y la canalización escalar en paralelo.

Estos registros de salida del sombreador de vértices están restringidos a las siguientes máscaras de escritura:

Tipo de registro Máscara de escritura necesaria
oFog no se permite ninguna máscara de escritura explícita en este registro escalar
Opta no se permite ninguna máscara de escritura explícita en este registro escalar
Opos .xyzw(que es el valor predeterminado)
Ot # máscara combinada: .x | .xy | .xyz | .xyzw (que es el valor predeterminado)

 

Modificadores de registro del sombreador de píxeles