diff options
| author | 2019-10-15 19:38:47 -0400 | |
|---|---|---|
| committer | 2019-10-15 19:38:55 -0400 | |
| commit | b42a74ff2cd621649edd2c21243547efa736271a (patch) | |
| tree | a69a6bac37c4a884fb58c9e0f0faca7baa2abb74 /src | |
| parent | Merge pull request #2977 from lioncash/algorithm (diff) | |
| download | yuzu-b42a74ff2cd621649edd2c21243547efa736271a.tar.gz yuzu-b42a74ff2cd621649edd2c21243547efa736271a.tar.xz yuzu-b42a74ff2cd621649edd2c21243547efa736271a.zip | |
gl_shader_decompiler: Resolve fallthrough within ExprDecompiler's ExprCondCode operator()
This would previously result in NeverExecute and UnusedIndex being
treated as regular predicates.
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 6a610a3bc..bb972bf37 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -2316,10 +2316,13 @@ public: | |||
| 2316 | switch (index) { | 2316 | switch (index) { |
| 2317 | case Tegra::Shader::Pred::NeverExecute: | 2317 | case Tegra::Shader::Pred::NeverExecute: |
| 2318 | target = "false"; | 2318 | target = "false"; |
| 2319 | break; | ||
| 2319 | case Tegra::Shader::Pred::UnusedIndex: | 2320 | case Tegra::Shader::Pred::UnusedIndex: |
| 2320 | target = "true"; | 2321 | target = "true"; |
| 2322 | break; | ||
| 2321 | default: | 2323 | default: |
| 2322 | target = decomp.GetPredicate(index); | 2324 | target = decomp.GetPredicate(index); |
| 2325 | break; | ||
| 2323 | } | 2326 | } |
| 2324 | } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) { | 2327 | } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) { |
| 2325 | target = decomp.GetInternalFlag(flag->GetFlag()); | 2328 | target = decomp.GetInternalFlag(flag->GetFlag()); |