summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2019-10-22 13:16:46 -0400
committerGravatar GitHub2019-10-22 13:16:46 -0400
commit7ecf9f72289d81f73030b612f19d8cde0de3dad6 (patch)
tree79545c4e360b949b45163e8c5814bf0cceabf7b0
parentMerge pull request #3003 from ReinUsesLisp/flush-mme-trace (diff)
parentvk_shader_decompiler: Resolve fallthrough within ExprDecompiler's ExprCondCod... (diff)
downloadyuzu-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.cpp3
-rw-r--r--src/video_core/renderer_vulkan/vk_shader_decompiler.cpp3
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()));