blob: d42e65e39a857636c1da0b226fda0a8fd0aada20 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
//TEST:SIMPLE(filecheck=CHECK): -target spirv -emit-spirv-directly -O0 -g
//CHECK: OpEntryPoint
float atomicAdd(__ref float value, float amount)
{
__target_switch
{
case cpp:
__requirePrelude("#include <atomic>");
__intrinsic_asm "std::atomic_ref(*$0).fetch_add($1)";
case spirv:
return __atomic_add(value, amount);
}
}
RWStructuredBuffer<float> outputBuffer;
[numthreads(4, 1, 1)]
[shader("compute")]
void computeMain(int3 dispatchThreadID : SV_DispatchThreadID) {
atomicAdd(outputBuffer[0], 1);
}
|