setp_comp - ps
Establezca el registro de predicado.
Sintaxis
setp_comp dst, src0, src1 |
---|
Donde:
_comp es una comparación por canal entre los dos registros de origen. Puede tener uno de los valores siguientes:
Sintaxis De comparación _Gt Mayor que _Lt Menor que _Ge Mayor o igual que _le Menor o igual que _Eq Igual a _Ne No es igual a dst es el registro de registro de predicado , p0.
src0 es un registro de origen.
src1 es un registro de origen.
Comentarios
Versiones del sombreador de píxeles | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
setp_comp | x | x | x | x |
Esta instrucción funciona como:
per channel in destination write mask
{
dst.channel = src0.channel cmp src1.channel
}
Para cada canal que se puede escribir según la máscara de escritura de destino, guarde el resultado booleano de la operación de comparación entre los canales correspondientes de src0 y src1 (después de que se hayan resuelto los modificadores de origen).
Los registros de origen permiten especificar swizzles de componente arbitrarios.
El registro de destino permite máscaras de escritura arbitrarias.
El registro dst debe ser el registro de predicado.
Aplicación del registro de predicados
Una vez que el registro de predicado se ha inicializado con setp_comp, se puede usar para controlar una instrucción por componente. Esta es la sintaxis:
([!]p0[.swizzle]) instruction dest, src0, ...
Donde:
- [!] es un valor booleano opcional NOT.
- p0 es el registro de predicado
- [.swizzle] es un swizzle opcional que se aplica al contenido del registro de predicado antes de usarlo para enmascarar la instrucción. Los swizzles disponibles son: .xyzw (valor predeterminado cuando no se especifica ninguno) o cualquier replicación swizzle: .x/.r, .y/.g, .z/.b o .a/.w.
- la instrucción es cualquier instrucción aritmética o de textura. No puede ser una instrucción de control de flujo estático o dinámico.
- dest, src0, ... son los registros requeridos por la instrucción
Suponiendo que el registro de predicado se ha configurado con los valores de componentes (true, true, false, false), se puede aplicar a esta instrucción:
(p0) add r1, r2, r3
para realizar una adición de 2 componentes.
r1.x = r2.x + r3.x
r1.y = r2.y + r3.y
Los componentes z y w de r1 no se escribirán porque el registro de predicado contenía false en los componentes z y w.
La aplicación del registro de predicado a una instrucción aritmética o de textura aumenta su recuento de ranuras de instrucción en 1.
El registro de predicado también se puede aplicar a si pred - ps, callnz pred - ps and breakp - ps instructions. Estas instrucciones de control de flujo no tienen ningún aumento en el recuento de ranuras de instrucción al usar el registro de predicado.
Temas relacionados