diff options
| author | Techjar <tecknojar@gmail.com> | 2021-06-07 22:32:25 -0400 |
|---|---|---|
| committer | Techjar <tecknojar@gmail.com> | 2021-06-07 22:32:25 -0400 |
| commit | 58238e75a7d2a153fdbd51b5f39fd00f390eafbf (patch) | |
| tree | fc202be04201c6e174925c5bea4bb2b454abf4c7 /Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp | |
| parent | 638909aec6ef07483f9c9301d4926bbd7d9d6bb0 (diff) | |
Vulkan: Fix subgroup reduction
It seems that we were writing values from helper invocations, which
produces wrong results.
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp index f0f39f27f6..450fcbe558 100644 --- a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp +++ b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp @@ -103,7 +103,7 @@ static const char SUBGROUP_HELPER_HEADER[] = R"( #define SUPPORTS_SUBGROUP_REDUCTION 1 #define CAN_USE_SUBGROUP_REDUCTION true #define IS_HELPER_INVOCATION gl_HelperInvocation - #define IS_FIRST_ACTIVE_INVOCATION (gl_SubgroupInvocationID == subgroupBallotFindLSB(subgroupBallot(true))) + #define IS_FIRST_ACTIVE_INVOCATION (gl_SubgroupInvocationID == subgroupBallotFindLSB(subgroupBallot(!gl_HelperInvocation))) #define SUBGROUP_MIN(value) value = subgroupMin(value) #define SUBGROUP_MAX(value) value = subgroupMax(value) )"; |
