setp_comp - ps
Defina o registro de predicado.
Sintaxe
setp_comp dst, src0, src1 |
---|
Em que:
_comp é uma comparação por canal entre os dois registros de origem. Pode ser um dos seguintes:
Sintaxe Comparação _Gt Maior que _Tenente Menor que _Ge Maior ou igual _Le Inferior ou igual _Eq Igual a _Ne É diferente de dst é o registro de registro de predicado , p0.
src0 é um registro de origem.
src1 é um registro de origem.
Comentários
Versões do sombreador de pixel | 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 instrução funciona como:
per channel in destination write mask
{
dst.channel = src0.channel cmp src1.channel
}
Para cada canal que pode ser gravado de acordo com a máscara de gravação de destino, salve o resultado booliano da operação de comparação entre os canais correspondentes de src0 e src1 (depois que os swizzles do modificador de origem tiverem sido resolvidos).
Os registros de origem permitem que os swizzles de componente arbitrário sejam especificados.
O registro de destino permite máscaras de gravação arbitrárias.
O registro dst deve ser o registro de predicado.
Aplicando o registro de predicado
Depois que o registro de predicado tiver sido inicializado com setp_comp, ele poderá ser usado para controlar uma instrução por componente. Esta é a sintaxe:
([!]p0[.swizzle]) instruction dest, src0, ...
Em que:
- [!] é um NOT booliano opcional
- p0 é o registro de predicado
- [.swizzle] é um swizzle opcional a ser aplicado ao conteúdo do registro de predicado antes de usá-lo para mascarar a instrução. Os swizzles disponíveis são: .xyzw (padrão quando nenhum especificado) ou qualquer swizzle de replicação: .x/.r, .y/.g, .z/.b ou .a/.w.
- instrução é qualquer instrução aritmética ou textura. Não pode ser uma instrução de controle de fluxo estático ou dinâmico.
- dest, src0, ... são os registros exigidos pela instrução
Supondo que o registro de predicado tenha sido configurado com valores de componente (true, true, false, false), ele pode ser aplicado a esta instrução:
(p0) add r1, r2, r3
para executar uma adição de dois componentes.
r1.x = r2.x + r3.x
r1.y = r2.y + r3.y
Os componentes z e w de r1 não serão gravados, pois o registro de predicado continha false nos componentes z e w.
Aplicar o registro de predicado a uma instrução aritmética ou de textura aumenta sua contagem de slots de instrução em 1.
O registro de predicado também pode ser aplicado às instruções pred - ps, callnz pred - ps e breakp - ps . Essas instruções de controle de fluxo não têm nenhum aumento na contagem de slots de instrução ao usar o registro de predicado.
Tópicos relacionados