summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2019-10-15 19:40:42 -0400
committerGravatar Lioncash2019-10-15 19:40:58 -0400
commit6947bf8e44409babf6c551f00c8135edd74ca19d (patch)
treee6d724dddb24c7985821f9d4257e3ade53d55501 /src
parentgl_shader_decompiler: Resolve fallthrough within ExprDecompiler's ExprCondCod... (diff)
downloadyuzu-6947bf8e44409babf6c551f00c8135edd74ca19d.tar.gz
yuzu-6947bf8e44409babf6c551f00c8135edd74ca19d.tar.xz
yuzu-6947bf8e44409babf6c551f00c8135edd74ca19d.zip
vk_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_vulkan/vk_shader_decompiler.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
index 8bcd04221..4fb1ca372 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()));