Pengubah Daftar Sumber Pemecah Piksel

Gunakan pengubah register sumber untuk mengubah nilai yang dibaca dari register sebelum instruksi berjalan. Isi register sumber dibiarkan tidak berubah. Pengubah berguna untuk menyesuaikan rentang data register dalam persiapan untuk instruksi. Sekumpulan pengubah yang disebut pemilih menyalin atau mereplikasi data dari satu saluran (r,g,b,a) ke saluran lain.

ps_1_1 - ps_1_4

Tabel ini mengidentifikasi versi yang mendukung setiap pengubah:

Pengubah register sumber Sintaks Versi 1_1 Versi 1_2 Versi 1_3 Versi 1_4
Bias register_bias X X X X
Balikkan 1 - daftar X X X X
negate -Daftar X X X X
skala sebesar 2 register_x2 X
penskalakan yang ditandatangani register_bx2 X X X X
pengubah texld dan texcrd register_d* X X X X
sumber register swizzling register.xyzw X X X X

 

Pengubah register sumber hanya dapat digunakan pada instruksi aritmatika. Mereka tidak dapat digunakan pada instruksi alamat tekstur. Pengecualian untuk ini adalah skala dengan 2 pengubah. Untuk versi 1_1, skala yang ditandatangani dapat digunakan pada argumen sumber dari instruksi texm* apa pun. Untuk versi 1_2 atau 1_3, skala yang ditandatangani dapat digunakan pada argumen sumber dari instruksi alamat tekstur apa pun.

Beberapa pembatasan khusus pengubah:

  • Negasi dapat dikombinasikan dengan bias, penskalakan yang ditandatangani, atau pengubah scalex2. Saat digabungkan, negasi dijalankan terakhir.
  • Invert tidak dapat dikombinasikan dengan pengubah lain.
  • Invert, negate, bias, signed scaling, dan scalex2 dapat dikombinasikan dengan salah satu pemilih.
  • Pengubah register sumber tidak boleh digunakan pada register konstan karena akan menyebabkan hasil yang tidak terdefinisi. Untuk versi 1_4, pengubah pada konstanta tidak diizinkan dan akan gagal validasi.

ps_2_0 ke Atas

Untuk versi ps_2_0 dan yang lebih baru, jumlah pengubah telah disederhanakan.

Meniadakan

Meniadakan isi register sumber.

Pengubah komponen Deskripsi
-R Negasi sumber

 

Pengubah negasi tidak dapat digunakan pada register sumber kedua dari instruksi ini: m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps, dan m4x4 - ps.

Versi shader piksel 2_0 2_x 2_sw 3_0 3_sw
- x x x x x

 

Nilai Absolut

Ambil nilai absolut register.

Versi shader piksel 2_0 2_x 2_sw 3_0 3_sw
abs x x

 

Jika ada shader versi 3 yang dibaca dari satu atau beberapa register float konstan (c#), salah satu dari berikut ini harus benar.

  • Semua register titik mengambang konstan harus menggunakan pengubah abs.
  • Tidak ada register titik mengambang konstan dapat menggunakan pengubah abs.

Pengubah Daftar Pixel Shader