forked from Mirror/Ryujinx
63f1663fa9
* Fix 8 and 16-bit STG * Fix 8 and 16-bit STS * Shader cache version bump
21 lines
No EOL
592 B
GLSL
21 lines
No EOL
592 B
GLSL
int Helper_AtomicMaxS32(int offset, int value)
|
|
{
|
|
uint oldValue, newValue;
|
|
do
|
|
{
|
|
oldValue = $SHARED_MEM$[offset];
|
|
newValue = uint(max(int(oldValue), value));
|
|
} while (atomicCompSwap($SHARED_MEM$[offset], oldValue, newValue) != oldValue);
|
|
return int(oldValue);
|
|
}
|
|
|
|
int Helper_AtomicMinS32(int offset, int value)
|
|
{
|
|
uint oldValue, newValue;
|
|
do
|
|
{
|
|
oldValue = $SHARED_MEM$[offset];
|
|
newValue = uint(min(int(oldValue), value));
|
|
} while (atomicCompSwap($SHARED_MEM$[offset], oldValue, newValue) != oldValue);
|
|
return int(oldValue);
|
|
} |