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 |
Topik terkait