xref: /aosp_15_r20/external/angle/third_party/glslang/src/Test/hlsl.structbuffer.atomics.frag (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1
2RWByteAddressBuffer sbuf;
3
4float4 main(uint pos : FOO) : SV_Target0
5{
6    uint u;
7
8    sbuf.InterlockedAdd(8, 1);
9    sbuf.InterlockedAdd(8, 1, u);
10    sbuf.InterlockedAnd(8, 1);
11    sbuf.InterlockedAnd(8, 1, u);
12    sbuf.InterlockedCompareExchange(8, 1, 2, u);
13    // sbuf.InterlockedCompareStore(8, 1, 2); // TODO: ...
14    sbuf.InterlockedExchange(8, 1, u);
15    sbuf.InterlockedMax(8, 1);
16    sbuf.InterlockedMax(8, 1, u);
17    sbuf.InterlockedMin(8, 1);
18    sbuf.InterlockedMin(8, 1, u);
19    sbuf.InterlockedOr(8, 1);
20    sbuf.InterlockedOr(8, 1, u);
21    sbuf.InterlockedXor(8, 1);
22    sbuf.InterlockedXor(8, 1, u);
23
24    return sbuf.Load(pos);
25}
26