atomic_cmp_store (sm5 - asm)
Atom membandingkan dan menulis ke memori.
atomic_cmp_store dest, dstAddress[.swizzle], src0[.select_component], src1[.select_component] |
---|
Item | Deskripsi |
---|---|
Dest |
[in] Komponen untuk dibandingkan dengan src0. Nilai ini harus berupa tampilan akses tidak berurut (UAV) (u#). Dalam shader komputasi juga dapat berupa memori bersama grup utas (g#). |
dstAddress |
[in] Alamat memori. |
src0 |
[in] Nilai 32-bit untuk dibandingkan dengan tujuan. |
src1 |
[in] Nilai untuk menulis ke memori jika nilai yang dibandingkan identik. |
Keterangan
Instruksi ini melakukan perbandingan nilai 32-bit komponen tunggal dari operand src0 dengan dest pada 32-bit per alamat komponen dstAddress.
Jika nilai yang dibandingkan identik, nilai komponen tunggal 32-bit dalam src1 ditulis ke memori tujuan. Jika tidak, tujuan tidak diubah.
Seluruh operasi perbandingan dan penulisan dilakukan secara atomik.
Jika dest adalah u#, dest dapat dinyatakan sebagai mentah, ditik, atau terstruktur. Jika diketik, harus dinyatakan sebagai UINT/SINT dengan format sumber daya terikat yang R32_UINT/_SINT.
Jika dest adalah g#, itu harus dinyatakan sebagai mentah atau terstruktur.
Jumlah komponen yang diambil dari alamat ditentukan oleh dimensi dest u# atau g#.
Tidak ada yang dikembalikan ke shader.
Jika pemanggilan shader tidak aktif, misalnya jika piksel telah dibuang sebelumnya dalam eksekusinya, atau instruksi piksel/sampel tidak mengubah memori tujuan sama sekali (diam-diam).
Alamat di luar batas pada u# tidak menyebabkan apa pun ditulis ke memori, kecuali jika u# disusun, dan byte offset ke dalam struct (komponen kedua alamat) menyebabkan akses di luar batas, maka seluruh isi UAV menjadi tidak terdefinisi.
Di luar batas alamat pada g# (batas g#tertentu, dibandingkan dengan semua memori bersama) menyebabkan seluruh konten semua memori bersama menjadi tidak terdefinisi.
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