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

Shader Model 5 Assembly (DirectX HLSL)