hlsl.structbuffer.atomics.frag 649 B

1234567891011121314151617181920212223242526
  1. RWByteAddressBuffer sbuf;
  2. float4 main(uint pos : FOO) : SV_Target0
  3. {
  4. uint u;
  5. sbuf.InterlockedAdd(8, 1);
  6. sbuf.InterlockedAdd(8, 1, u);
  7. sbuf.InterlockedAnd(8, 1);
  8. sbuf.InterlockedAnd(8, 1, u);
  9. sbuf.InterlockedCompareExchange(8, 1, 2, u);
  10. // sbuf.InterlockedCompareStore(8, 1, 2); // TODO: ...
  11. sbuf.InterlockedExchange(8, 1, u);
  12. sbuf.InterlockedMax(8, 1);
  13. sbuf.InterlockedMax(8, 1, u);
  14. sbuf.InterlockedMin(8, 1);
  15. sbuf.InterlockedMin(8, 1, u);
  16. sbuf.InterlockedOr(8, 1);
  17. sbuf.InterlockedOr(8, 1, u);
  18. sbuf.InterlockedXor(8, 1);
  19. sbuf.InterlockedXor(8, 1, u);
  20. return sbuf.Load(pos);
  21. }