Daftar Sementara (referensi HLSL VS)

Register sementara vertex shader digunakan untuk menyimpan hasil perantara.

Register sementara harus diinisialisasi sebelum digunakan. Setiap pendaftaran sementara memiliki akses tulis tunggal dan baca tiga kali. Ini berarti bahwa satu instruksi shader dapat menggunakan sebanyak tiga register sementara sebagai input.

Nilai dalam register sementara yang tersisa dari pemanggilan sebelumnya dari shader vertex tidak dapat digunakan.

Register terdiri dari properti yang menentukan perilaku setiap register.

Properti Deskripsi
Nama r[n]. n adalah nomor register opsional. Defaultnya adalah 0, dan merupakan nilai yang digunakan jika tidak ada nilai yang ditentukan.
Jumlah Maksimal 12 register.
Izin I/O Baca/tulis. Register ini dapat dibaca atau ditulis oleh API atau oleh shader.
Membaca port Berapa kali register dapat dibaca dalam satu instruksi adalah 3. Register sementara adalah satu-satunya register yang dapat dibaca dan ditulis lebih dari sekali dalam satu instruksi.

 

Setiap pendaftaran sementara memiliki akses tulis tunggal dan baca tiga kali. Oleh karena itu, instruksi dapat memiliki sebanyak tiga register sementara dalam set operan sumber inputnya.

Tidak ada nilai dalam register sementara yang tersisa dari pemanggilan sebelumnya dari shader vertex yang dapat digunakan. Shader vertex yang membaca nilai dari register sementara sebelum menulis ke itu akan gagal panggilan API Direct3D untuk membuat shader vertex.

Contoh

Berikut adalah contoh menggunakan register sementara:

def c4, 0,0,0,1
...
// Decompress position
mov r0.x, v0.x
mov r0.y, c4.w       // 1
mov r0.z, v0.y
mov r0.w, c4.w       // 1

// Compute theta from distance and time
mov r4.xz, r0        // xz
Versi shader vertex 1_1 2_0 2_sw 2_x 3_0 3_sw
Daftar Sementara x x x x x x

 

Daftar Vertex Shader