diff options
| author | 2019-10-22 13:16:46 -0400 | |
|---|---|---|
| committer | 2019-10-22 13:16:46 -0400 | |
| commit | 7ecf9f72289d81f73030b612f19d8cde0de3dad6 (patch) | |
| tree | 79545c4e360b949b45163e8c5814bf0cceabf7b0 | |
| parent | Merge pull request #3003 from ReinUsesLisp/flush-mme-trace (diff) | |
| parent | vk_shader_decompiler: Resolve fallthrough within ExprDecompiler's ExprCondCod... (diff) | |
| download | yuzu-7ecf9f72289d81f73030b612f19d8cde0de3dad6.tar.gz yuzu-7ecf9f72289d81f73030b612f19d8cde0de3dad6.tar.xz yuzu-7ecf9f72289d81f73030b612f19d8cde0de3dad6.zip | |
Merge pull request #2983 from lioncash/fallthrough
gl_shader_decompiler/vk_shader_decompiler: Resolve implicit fallthrough cases
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 3 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_shader_decompiler.cpp | 3 |
2 files changed, 6 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 a3524a6a9..baec66ff0 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -2314,10 +2314,13 @@ public: | |||
| 2314 | switch (index) { | 2314 | switch (index) { |
| 2315 | case Tegra::Shader::Pred::NeverExecute: | 2315 | case Tegra::Shader::Pred::NeverExecute: |
| 2316 | target = "false"; | 2316 | target = "false"; |
| 2317 | break; | ||
| 2317 | case Tegra::Shader::Pred::UnusedIndex: | 2318 | case Tegra::Shader::Pred::UnusedIndex: |
| 2318 | target = "true"; | 2319 | target = "true"; |
| 2320 | break; | ||
| 2319 | default: | 2321 | default: |
| 2320 | target = decomp.GetPredicate(index); | 2322 | target = decomp.GetPredicate(index); |
| 2323 | break; | ||
| 2321 | } | 2324 | } |
| 2322 | } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) { | 2325 | } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) { |
| 2323 | target = decomp.GetInternalFlag(flag->GetFlag()); | 2326 | target = decomp.GetInternalFlag(flag->GetFlag()); |
diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp index 3fb016b96..0d943a826 100644 --- a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp +++ b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp | |||
| @@ -1682,10 +1682,13 @@ public: | |||
| 1682 | switch (index) { | 1682 | switch (index) { |
| 1683 | case Tegra::Shader::Pred::NeverExecute: | 1683 | case Tegra::Shader::Pred::NeverExecute: |
| 1684 | target = decomp.v_false; | 1684 | target = decomp.v_false; |
| 1685 | break; | ||
| 1685 | case Tegra::Shader::Pred::UnusedIndex: | 1686 | case Tegra::Shader::Pred::UnusedIndex: |
| 1686 | target = decomp.v_true; | 1687 | target = decomp.v_true; |
| 1688 | break; | ||
| 1687 | default: | 1689 | default: |
| 1688 | target = decomp.predicates.at(index); | 1690 | target = decomp.predicates.at(index); |
| 1691 | break; | ||
| 1689 | } | 1692 | } |
| 1690 | } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) { | 1693 | } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) { |
| 1691 | target = decomp.internal_flags.at(static_cast<u32>(flag->GetFlag())); | 1694 | target = decomp.internal_flags.at(static_cast<u32>(flag->GetFlag())); |