Pengubah Daftar Sumber Pixel Shader

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 sebagai 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
penskalan yang ditandatangani register_bx2 X X X X
pengubah texld dan texcrd register_d* X X X X
swizzling register sumber 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 pengubah bias, penskalan yang ditandatangani, atau scalex2. Jika digabungkan, negasi dijalankan terakhir.
  • Invert tidak dapat digabungkan dengan pengubah lainnya.
  • Membalikkan, meniadakan, bias, penskalaan yang ditandatangani, 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 negate 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 membaca dari satu atau beberapa register float konstanta (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