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.

Instruksi Vertex Shader