AtomicMinMaxS32Shared.glsl 592 B

123456789101112131415161718192021
  1. int Helper_AtomicMaxS32(int offset, int value)
  2. {
  3. uint oldValue, newValue;
  4. do
  5. {
  6. oldValue = $SHARED_MEM$[offset];
  7. newValue = uint(max(int(oldValue), value));
  8. } while (atomicCompSwap($SHARED_MEM$[offset], newValue, oldValue) != oldValue);
  9. return int(oldValue);
  10. }
  11. int Helper_AtomicMinS32(int offset, int value)
  12. {
  13. uint oldValue, newValue;
  14. do
  15. {
  16. oldValue = $SHARED_MEM$[offset];
  17. newValue = uint(min(int(oldValue), value));
  18. } while (atomicCompSwap($SHARED_MEM$[offset], newValue, oldValue) != oldValue);
  19. return int(oldValue);
  20. }