Bagikan melalui


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.

Instruksi Pixel Shader