diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2021-08-30 14:02:40 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-30 14:02:40 -0300 |
| commit | 416dc8fde49f8eb42d47b1ab606028a5cabe8f90 (patch) | |
| tree | 1ab4ddfb6b8b923360e25cb481088fdd1d991718 /Ryujinx.Graphics.Shader/CodeGen/Glsl/HelperFunctions/ShuffleUp.glsl | |
| parent | 82cefc8dd3babb781d4b7229435e26911fb083dd (diff) | |
Fix out-of-bounds shader thread shuffle (#2605)
* Fix out-of-bounds shader thread shuffle
* Shader cache version bump
Diffstat (limited to 'Ryujinx.Graphics.Shader/CodeGen/Glsl/HelperFunctions/ShuffleUp.glsl')
| -rw-r--r-- | Ryujinx.Graphics.Shader/CodeGen/Glsl/HelperFunctions/ShuffleUp.glsl | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Ryujinx.Graphics.Shader/CodeGen/Glsl/HelperFunctions/ShuffleUp.glsl b/Ryujinx.Graphics.Shader/CodeGen/Glsl/HelperFunctions/ShuffleUp.glsl index 4e74f217..0781678a 100644 --- a/Ryujinx.Graphics.Shader/CodeGen/Glsl/HelperFunctions/ShuffleUp.glsl +++ b/Ryujinx.Graphics.Shader/CodeGen/Glsl/HelperFunctions/ShuffleUp.glsl @@ -1,9 +1,9 @@ float Helper_ShuffleUp(float x, uint index, uint mask, out bool valid) { - uint clamp = mask & 0x1fu; uint segMask = (mask >> 8) & 0x1fu; uint minThreadId = gl_SubGroupInvocationARB & segMask; uint srcThreadId = gl_SubGroupInvocationARB - index; - valid = srcThreadId >= minThreadId; - return valid ? readInvocationARB(x, srcThreadId) : x; + valid = int(srcThreadId) >= int(minThreadId); + float v = readInvocationARB(x, srcThreadId); + return valid ? v : x; }
\ No newline at end of file |
