Fungsi InterlockedAdd (referensi HLSL)
Melakukan penambahan nilai atom yang dijamin ke variabel sumber daya tujuan.
Sintaks
void InterlockedAdd(
in R dest,
in T value,
out T original_value
);
Parameter
-
dest [in]
-
Jenis: R
Alamat tujuan.
-
value [in]
-
Jenis: T
Nilai input.
-
original_value [out]
-
Jenis: T
Pilihan. Nilai input asli.
Mengembalikan nilai
Fungsi ini tidak mengembalikan nilai.
Keterangan
Operasi ini hanya dapat dilakukan pada sumber daya yang diketik int atau uint dan variabel memori bersama. Ada dua kemungkinan penggunaan untuk fungsi ini. Yang pertama adalah ketika R adalah jenis variabel memori bersama. Dalam hal ini, fungsi melakukan add of value atom ke register memori bersama yang dirujuk oleh dest. Skenario kedua adalah ketika R adalah jenis variabel sumber daya. Dalam skenario ini, fungsi melakukan penambahan nilai atomik ke lokasi sumber daya yang direferensikan oleh dest. Fungsi kelebihan beban memiliki variabel output tambahan yang akan diatur ke nilai asli tujuan. Operasi kelebihan beban ini hanya tersedia ketika R dapat dibaca dan dapat ditulis.
Operasi yang saling diblokir tidak menyiratkan pagar/pembatas memori apa pun.
Minimum Shader Model
Fungsi ini didukung dalam model shader berikut.
Shader Model | Didukung |
---|---|
Model Shader 5 dan model shader yang lebih tinggi | ya |
Fungsi ini didukung dalam jenis shader berikut:
Puncak | Hull | Domain | Geometri | Pixel | Compute |
---|---|---|---|---|---|
x | x | x | x | x | x |
Lihat juga