dcl_uav_structured (sm5 - asm)
Deklarasikan tampilan akses tidak berurut (UAV) untuk digunakan oleh shader.
dcl_uav_structured[_glc] dstUAV, structByteStride |
---|
Item | Deskripsi |
---|---|
dstUAV |
[in] UAV itu. |
structByteStride |
[in] Ukuran struktur dalam byte. |
Keterangan
dstUAV adalah register u# yang dideklarasikan sebagai referensi ke UnorderedAccessView dari buffer terstruktur dengan langkah yang ditentukan yang harus terikat ke slot UAV # di API.
Isi struktur tidak memiliki jenis; operasi yang dilakukan pada memori dapat secara implisit menafsirkan data sebagai memiliki jenis.
structByteStride adalah ukuran struktur dalam byte dalam buffer yang dideklarasikan. Nilai ini harus lebih besar dari nol. structByteStride berjenis uint, dan harus kelipatan 4.
Instruksi yang mereferensikan u# terstruktur mengambil alamat 2D, di mana komponen pertama memilih [struct], dan komponen kedua memilih [offset dalam struct, dalam byte yang selaras].
Bendera _glc berarti "koheren secara global". Tidak adanya _glc berarti UAV dinyatakan hanya sebagai "kelompok koheren" dalam shader komputasi, atau "secara lokal koheren" dalam pemanggilan shader piksel tunggal.
Bendera _opc adalah penghitung pelestarian pesanan. Ini menunjukkan bahwa jika UAV terikat ke slot # (u#), itu harus dibuat dengan bendera COUNTER. Ini berarti bahwa operasi imm_atomic_alloc atau imm_atomic_consume dalam shader memanipulasi penghitung yang nilainya dapat digunakan dalam shader sebagai referensi permanen ke lokasi di UAV. Data tidak dapat diurutkan ulang setelah shader berakhir.
Tidak adanya bendera _opc berarti bahwa jika shader menggunakan instruksiimm_atomic_alloc atau imm_atomic_consume dan UAV terikat ke slot # (u), itu harus dibuat dengan bendera APPEND, yang menyediakan penghitung yang tidak menjamin urutan dipertahankan setelah pemanggilan shader.
Jika bendera _opc tidak ada dan shader tidak berisi instruksi imm_atomic_alloc atau imm_atomic_consume , UAV yang terikat ke slot # (u) diizinkan untuk dibuat dengan bendera COUNTER (penghitung akan tidak digunakan oleh shader ini), tanpa bendera (tanpa penghitung), tetapi tidak dengan bendera APPEND.
Catatan
cs_4_0 dan cs_4_1 mendukung dcl_tgsm_structured, tetapi tidak dcl_tgsm_raw.
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 |
Catatan
Instruksi ini didukung dalam cs_4_0 dan cs_4_1.