summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-12-21 01:36:25 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-12-21 01:36:25 +0100
commitaf93909c9c3378f8acceba837a7816e1da8181a0 (patch)
tree5e923a30f2c9a60aca8dbc57d3313d4218b5e8fb
parentMerge pull request #3234 from ReinUsesLisp/i2f-u8-selector (diff)
downloadyuzu-af93909c9c3378f8acceba837a7816e1da8181a0.tar
yuzu-af93909c9c3378f8acceba837a7816e1da8181a0.tar.gz
yuzu-af93909c9c3378f8acceba837a7816e1da8181a0.tar.bz2
yuzu-af93909c9c3378f8acceba837a7816e1da8181a0.tar.lz
yuzu-af93909c9c3378f8acceba837a7816e1da8181a0.tar.xz
yuzu-af93909c9c3378f8acceba837a7816e1da8181a0.tar.zst
yuzu-af93909c9c3378f8acceba837a7816e1da8181a0.zip
-rw-r--r--src/video_core/renderer_vulkan/vk_shader_decompiler.cpp24
1 files changed, 1 insertions, 23 deletions
diff --git a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
index 6227bc70b..fae8c95c8 100644
--- a/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
+++ b/src/video_core/renderer_vulkan/vk_shader_decompiler.cpp
@@ -2552,29 +2552,7 @@ public:
}
Id operator()(const ExprCondCode& expr) {
- const Node cc = decomp.ir.GetConditionCode(expr.cc);
- Id target;
-
- if (const auto pred = std::get_if<PredicateNode>(&*cc)) {
- const auto index = pred->GetIndex();
- switch (index) {
- case Tegra::Shader::Pred::NeverExecute:
- target = decomp.v_false;
- break;
- case Tegra::Shader::Pred::UnusedIndex:
- target = decomp.v_true;
- break;
- default:
- target = decomp.predicates.at(index);
- break;
- }
- } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) {
- target = decomp.internal_flags.at(static_cast<u32>(flag->GetFlag()));
- } else {
- UNREACHABLE();
- }
-
- return decomp.OpLoad(decomp.t_bool, target);
+ return decomp.AsBool(decomp.Visit(decomp.ir.GetConditionCode(expr.cc)));
}
Id operator()(const ExprVar& expr) {