setp_comp - vs
Atur register predikat.
Sintaks
setp_comp dst, src0, src1 |
---|
Di mana:
_comp adalah perbandingan per saluran antara dua register sumber. Bisa jadi salah satu dari yang berikut:
Sintaks Perbandingan _Gt Lebih besar dari _Lt Kurang dari _Ge Lebih besar dari atau sama dengan _Le Kurang dari atau sama dengan _Eq Sama dengan _Ne Tidak sama dengan dst adalah Register Predikat , p0.
src0 adalah register sumber.
src1 adalah register sumber.
Keterangan
Versi shader vertex | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
setp_comp | x | x | x | x |
Instruksi ini beroperasi sebagai:
per channel in destination write mask
{
dst.channel = src0.channel cmp src1.channel
}
Untuk setiap saluran yang dapat ditulis sesuai dengan masker tulis tujuan, simpan hasil boolean dari operasi perbandingan antara saluran src0 dan src1 yang sesuai (setelah moncong pengubah sumber diselesaikan).
Register sumber memungkinkan swizzle komponen arbitrer ditentukan.
Register tujuan memungkinkan masker tulis arbitrer.
Register dest harus berupa register predikat.
Menerapkan Register Predikat
Setelah register predikat diinisialisasi dengan setp, itu dapat digunakan untuk mengontrol instruksi per komponen. Berikut sintaksnya:
([!]p0[.swizzle]) instruction dest, srcReg, ...
Di mana:
- [!] adalah boolean opsional NOT
- p0 adalah register predikat
- [.swizzle] adalah gerimis opsional untuk diterapkan pada isi daftar predikat sebelum menggunakannya untuk menutupi instruksi. Swizzle yang tersedia adalah: .xyzw (default ketika tidak ada yang ditentukan), atau swizzle replikasi apa pun: .x/.r, .y/.g, .z/.b atau .a/.w.
- instruksi adalah instruksi aritmatika, atau tekstur apa pun. Ini tidak boleh berupa instruksi kontrol aliran statis atau dinamis.
- dest, srcReg, ... adalah register yang diperlukan oleh instruksi
Dengan asumsi register predikat telah disiapkan dengan nilai komponen (true, true, false, false), itu dapat diterapkan ke instruksi ini:
// given r0 = 0,0,1,1
// given r1 = 1,1,0,0
setp_le p0, r0, r1
(p0) add r2, r3, r4
untuk melakukan penambahan 2 komponen.
r2.x = r3.x + r4.x
r2.y = r3.y + r4.y
Komponen x dan y r2 tidak akan ditulis karena predikat register berisi false dalam komponen z dan w.
Menerapkan register predikat ke instruksi aritmatika atau tekstur meningkatkan jumlah slot instruksinya sebesar 1.
Predikat register juga dapat diterapkan ke jika pred - vs, callnz pred - vs dan breakp - vs instruksi. Instruksi kontrol alur ini tidak memiliki peningkatan jumlah slot instruksi saat menggunakan register predikat.
Topik terkait