mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-04-04 16:31:30 +00:00
[qfcc] Use correct memory semantics for atomic ops
It seems it's supposed to be Relaxed, and there is no None anyway (and checks aren't done until the intrinsic is instantiated).
This commit is contained in:
parent
06573a6a8c
commit
6c5bf8cb80
1 changed files with 16 additions and 16 deletions
|
@ -992,54 +992,54 @@ SRC_LINE
|
|||
"#define inout @inout" "\n"
|
||||
"@overload uint atomicAdd(uintr mem, const uint data)" "\n"
|
||||
"= " SPV(OpAtomicIAdd) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload int atomicAdd(intr mem, const int data)" "\n"
|
||||
"= " SPV(OpAtomicIAdd) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload uint atomicMin(uintr mem, const uint data)" "\n"
|
||||
"= " SPV(OpAtomicUMin) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload int atomicMin(intr mem, const int data)" "\n"
|
||||
"= " SPV(OpAtomicSMin) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload uint atomicMax(uintr mem, const uint data)" "\n"
|
||||
"= " SPV(OpAtomicUMax) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload int atomicMax(intr mem, const int data)" "\n"
|
||||
"= " SPV(OpAtomicUMax) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload uint atomicAnd(uintr mem, const uint data)" "\n"
|
||||
"= " SPV(OpAtomicAnd) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload int atomicAnd(intr mem, const int data)" "\n"
|
||||
"= " SPV(OpAtomicAnd) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload uint atomicOr(uintr mem, const uint data)" "\n"
|
||||
"= " SPV(OpAtomicOr) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload int atomicOr(intr mem, const int data)" "\n"
|
||||
"= " SPV(OpAtomicOr) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload uint atomicXor(uintr mem, const uint data)" "\n"
|
||||
"= " SPV(OpAtomicXor) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload int atomicXor(intr mem, const int data)" "\n"
|
||||
"= " SPV(OpAtomicXor) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload uint atomicExchange(uintr mem, const uint data)" "\n"
|
||||
"= " SPV(OpAtomicExchange) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload int atomicExchange(intr mem, const int data)" "\n"
|
||||
"= " SPV(OpAtomicExchange) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];" "\n"
|
||||
"@overload uint atomicCompSwap(uintr mem, const uint compare," "\n"
|
||||
"const uint data)" "\n"
|
||||
"= " SPV(OpAtomicCompareExchange) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];""\n"
|
||||
"@overload int atomicCompSwap(intr mem, const int compare," "\n"
|
||||
"const int data)" "\n"
|
||||
"= " SPV(OpAtomicCompareExchange) "[mem, Scope.Device," "\n"
|
||||
"MemorySemantics.None, data];" "\n"
|
||||
"MemorySemantics.Relaxed, data];""\n"
|
||||
"#undef intr" "\n"
|
||||
"#undef uintr" "\n"
|
||||
"#undef uint" "\n"
|
||||
|
|
Loading…
Reference in a new issue