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