callc (sm4 - asm)
Secara kondisional memanggil subroutine yang ditandai dengan tempat label l# muncul dalam program.
callc{_z|_nz} src0.select_component, l # |
---|
Item | Deskripsi |
---|---|
src0 |
[in] Komponen untuk menguji kondisi. |
L # |
[in] Label subroutine. |
Keterangan
Ketika ret ditemui, kembalikan eksekusi ke instruksi setelah panggilan ini.
Format token berisi offset label yang sesuai di Shader sebagai kenyamanan.
Contoh berikut menunjukkan instruksi panggilan.
...
callc_z r1.y, l3 // if all bits in r0.x are 0, call l3
callc_nz r2.z, l3 // if any bit in r0.x is nonzero, call l3
...
ret
label l3
...
retc_nz r0.x
...
ret
Batasan
- Subroutine dapat bersarang dalam 32.
- Tumpukan alamat pengembalian dikelola secara transparan oleh implementasi.
- Jika sudah ada 32 entri pada tumpukan alamat pengembalian dan panggilan dikeluarkan, panggilan akan dilewati.
- Tidak ada tumpukan parameter otomatis. Aplikasi dapat menggunakan array register sementara yang dapat diindeks (x#[]) untuk mengimplementasikan tumpukan secara manual. Namun, alamat pengembalian panggilan sub-rutin tidak terlihat dan ortogonal untuk manajemen tumpukan manual yang dilakukan oleh aplikasi.
- Pengindeksan parameter l# tidak diizinkan.
- Register 32-bit yang disediakan oleh src0 diuji pada tingkat bit. Jika ada bit yang bukan nol, callc_nz akan melakukan panggilan. Jika semua bit nol, callc_z akan melakukan panggilan.
- Rekursi tidak diizinkan.
Instruksi ini berlaku untuk tahap shader berikut:
Vertex Shader | Shader Geometri | Piksel Bayangan |
---|---|---|
x | x | x |
Minimum Shader Model
Fungsi ini didukung dalam model shader berikut.
Shader Model | Didukung |
---|---|
Model Shader 5 | ya |
Model Shader 4.1 | ya |
Model Shader 4 | ya |
Shader Model 3 (DirectX HLSL) | tidak |
Shader Model 2 (DirectX HLSL) | tidak |
Shader Model 1 (DirectX HLSL) | tidak |
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk