Source register swizzling (referensi HLSL PS)

Swizzling mengacu pada kemampuan untuk menyalin komponen register sumber apa pun ke komponen register sementara. Menggeser tidak memengaruhi data register sumber. Sebelum instruksi berjalan, data dalam register sumber disalin ke register sementara.

Source Swizzling

Swizzle sumber memungkinkan komponen individual dari register sumber untuk mengambil nilai salah satu dari empat komponen dari register sumber yang sama sebelum register dibaca untuk komputasi.

Misalnya, swizzle .zxxy berarti:

  • Komponen .x akan mengambil nilai komponen .z
  • Komponen .y akan mengambil nilai komponen .x
  • Komponen .z akan mengambil nilai komponen .x
  • Komponen .w akan mengambil nilai komponen .y

Komponen dapat muncul dalam urutan apa pun. Jika kurang dari empat komponen ditentukan, komponen terakhir akan diulang. Contohnya:

.xy  = .xyyy
.wzx = .wzxx
.z   = .zzzz

Jika tidak ada komponen yang ditentukan, tidak ada geser yang diterapkan.

Beberapa instruksi memiliki batasan untuk swizzle sumber. Mereka tercantum di halaman referensi instruksi yang dihormati.

Versi shader piksel 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
.X x x x x x x
.Y x x x x x x
.Z x* x* x* x x x x x x
.W x x x x x x x x x
.xyzw (default) x x x x x x x x x
.yzxw x x x x x
.zxyw x x x x x
.wzyx x x x x x
gerimis arbitrer x x x x

 

* Hanya tersedia jika masker tulis tujuan adalah .w (.a).

Swizzle Arbitrer

Swizzles dapat diterapkan ke register sumber dalam urutan arbitrer; artinya, setiap register sumber dapat mengambil masker komponen apa pun, dalam urutan apa pun.

Replikasi Swizzle

Replikasi swizzle menyalin satu komponen ke komponen lainnya. Ini, tepat salah satu komponen .x, .y, .z, .w swizzle (atau .r, .g, .b, .a equivalents) harus ditentukan.

Pengubah Daftar Sumber Pemecah Piksel

Daftar ps_1_1__ps_1_2__ps_1_3__ps_1_4

Daftar ps_2_0

Daftar ps_2_x

daftar ps_3_0