setp_comp - ps
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 pixel shader | 1_1 | 1_2 | 1_3 | 1_4 | 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 dst deve essere il registro dei predicati.
Applicazione del registro predicato
Dopo aver inizializzato il registro dei predicati con setp_comp, può essere usato per controllare un'istruzione per ogni componente. Ecco la sintassi:
([!]p0[.swizzle]) instruction dest, src0, ...
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, src0, ... 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:
(p0) add r1, r2, r3
per eseguire l'aggiunta di un componente 2.
r1.x = r2.x + r3.x
r1.y = r2.y + r3.y
I componenti z e w di r1 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 predicato può essere applicato anche a se pred - ps, callnz pred - ps e breakp - istruzioni ps . Queste istruzioni di controllo del flusso non comportano un aumento del numero di slot di istruzioni quando si usa il registro dei predicati.
Argomenti correlati