imm_atomic_alloc (sm5 - asm)
Secara atomik menaikkan penghitung 32-bit tersembunyi yang disimpan dengan tampilan Akses tidak berurut Hitungan atau Tambahkan (UAV), mengembalikan nilai asli.
imm_atomic_alloc dest[.single_component_mask], dstUAV |
---|
Item | Deskripsi |
---|---|
Dest |
[in] Berisi nilai penghitung yang dikembalikan. |
dstUAV |
[in] Buffer UAV Terstruktur dengan bendera Hitung atau Tambahkan. |
Keterangan
Ada nilai penghitung bilangan bulat 32-bit tersembunyi yang tidak ditandatangani yang terkait dengan setiap tampilan Count atau Append Buffer yang diinisialisasi saat tampilan terikat ke alur, termasuk opsi untuk mempertahankan nilai sebelumnya.
Instruksi ini melakukan kenaikan atom dari nilai penghitung, mengembalikan nilai asli ke tujuan.
Untuk Tambahkan UAV, nilai yang dikembalikan hanya berlaku selama durasi pemanggilan shader. setelah itu implementasi dapat mengatur ulang tata letak memori. Setiap alamat memori berdasarkan nilai yang dikembalikan harus terbatas pada pemanggilan shader.
Untuk Tambahkan UAV, dalam pemanggilan shader, pengkompilasi HLSL dapat menggunakan nilai yang dikembalikan sebagai indeks struct yang digunakan untuk mengakses buffer terstruktur. Mengakses indeks struktur apa pun selain lokasi yang dikembalikan oleh panggilan ke imm_atomic_alloc atau _consume menghasilkan hasil yang tidak terdefinisi dalam lokasi memori mana dalam UAV yang diakses adalah acak dan hanya diperbaiki selama masa pemanggilan shader.
Untuk Count UAV, nilai yang dikembalikan dapat disimpan oleh aplikasi sebagai referensi ke lokasi tetap dalam UAV yang bermakna setelah pemanggilan shader berakhir. Lokasi mana pun dalam Count UAV mungkin selalu diakses terlepas dari nilai hitungannya.
Tidak ada penjepitan hitungan, sehingga membungkus luapan.
Shader yang sama tidak dapat mencoba imm_atomic_alloc dan imm_atomic_consume pada UAV yang sama. Selanjutnya, GPU tidak dapat mengizinkan beberapa pemanggilan shader untuk mencampur imm_atomic_alloc dan imm_atomic_consume pada UAV yang sama.
Instruksi ini berlaku untuk tahap shader berikut:
Puncak | Hull | Domain | Geometri | Pixel | Compute |
---|---|---|---|---|---|
X | X |
Karena UAV tersedia di semua tahap shader untuk Direct3D 11.1, instruksi ini berlaku untuk semua tahap shader untuk runtime Direct3D 11.1, yang tersedia dimulai dengan Windows 8.
Puncak | Hull | Domain | Geometri | Pixel | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Minimum Shader Model
Instruksi ini didukung dalam model shader berikut:
Shader Model | Didukung |
---|---|
Model Shader 5 | ya |
Model Shader 4.1 | tidak |
Model Shader 4 | tidak |
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