setp_comp - vs

Impostare il registro del predicato.

Sintassi

setp_comp dst, src0, src1

 

Dove:

  • _comp è un confronto per canale tra i due registri di origine. I possibili valori sono i seguenti:

    Sintassi Confronto
    _Gt Maggiore di
    _Tenente Minore di
    _Ge Maggiore o uguale a
    _le Minore o uguale a
    _Eq Uguale a
    _ne Diverso da

     

  • dst è il registro del predicato , p0.

  • src0 è un registro di origine.

  • src1 è un registro di origine.

Commenti

Versioni del vertex shader 1_1 2_0 2_x 2_sw 3_0 3_sw
setp_comp x x x x

 

Questa istruzione funziona come segue:

per channel in destination write mask
{
  dst.channel = src0.channel cmp src1.channel
}

Per ogni canale che può essere scritto in base alla maschera di scrittura di destinazione, salvare il risultato booleano dell'operazione di confronto tra i canali corrispondenti di src0 e src1 (dopo che il modificatore di origine è stato risolto).

I registri di origine consentono di specificare swizzles arbitrari dei componenti.

Il registro di destinazione consente maschere di scrittura arbitrarie.

Il registro dest deve essere il registro predicato.

Applicazione del registro predicato

Dopo aver inizializzato il registro dei predicati con setp, può essere usato per controllare un'istruzione per ogni componente. Ecco la sintassi:

([!]p0[.swizzle]) instruction dest, srcReg, ...

Dove:

  • [!] è un VALORE BOoleano facoltativo
  • p0 è il registro dei predicati
  • [.swizzle] è uno swizzle facoltativo da applicare al contenuto del registro predicato prima di usarlo per mascherare l'istruzione. I swizzles disponibili sono: .xyzw (impostazione predefinita quando non è specificato alcun valore) o qualsiasi swizzle replicato: .x/.r, .y/.g, .z/.b o .a/.w.
  • l'istruzione è un'istruzione aritmetica o trama. Non può trattarsi di un'istruzione di controllo del flusso statico o dinamico.
  • dest, srcReg, ... sono i registri richiesti dall'istruzione

Supponendo che il registro dei predicati sia stato configurato con (true, true, false, false), è possibile applicarlo a questa istruzione:

// given r0 = 0,0,1,1
// given r1 = 1,1,0,0
setp_le p0, r0, r1
(p0) add r2, r3, r4

per eseguire l'aggiunta di un componente 2.

r2.x = r3.x + r4.x
r2.y = r3.y + r4.y

I componenti x e y di r2 non verranno scritti perché il registro dei predicati contiene false nei componenti z e w.

L'applicazione del registro predicato a un'istruzione aritmetica o trama aumenta il numero di slot di istruzioni di 1.

Il registro dei predicati può essere applicato anche a se pred - vs, callnz pred - vs e breakp - vs instructions. Queste istruzioni di controllo del flusso non comportano un aumento del numero di slot di istruzioni quando si usa il registro dei predicati.

Istruzioni per vertex shader