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.

Instruções de sombreador de pixel