setp_comp - ps
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 Register , p0.
src0 adalah register sumber.
src1 adalah register sumber.
Keterangan
Versi shader piksel | 1_1 | 1_2 | 1_3 | 1_4 | 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 swizzle pengubah sumber diselesaikan).
Register sumber memungkinkan swizzle komponen arbitrer ditentukan.
Register tujuan memungkinkan masker tulis arbitrer.
Register dst harus berupa register predikat.
Menerapkan Register Predikat
Setelah register predikat diinisialisasi dengan setp_comp, itu dapat digunakan untuk mengontrol instruksi per komponen. Berikut sintaksnya:
([!]p0[.swizzle]) instruction dest, src0, ...
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 aritmetika, atau tekstur apa pun. Ini tidak boleh berupa instruksi kontrol aliran statis atau dinamis.
- dest, src0, ... 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:
(p0) add r1, r2, r3
untuk melakukan penambahan 2 komponen.
r1.x = r2.x + r3.x
r1.y = r2.y + r3.y
Komponen z dan w r1 tidak akan ditulis karena register predikat 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 - ps, callnz pred - ps dan breakp - ps instruksi. Instruksi kontrol alur ini tidak memiliki peningkatan jumlah slot instruksi saat menggunakan register predikat.
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk