summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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:
2552 } 2552 }
2553 2553
2554 Id operator()(const ExprCondCode& expr) { 2554 Id operator()(const ExprCondCode& expr) {
2555 const Node cc = decomp.ir.GetConditionCode(expr.cc); 2555 return decomp.AsBool(decomp.Visit(decomp.ir.GetConditionCode(expr.cc)));
2556 Id target;
2557
2558 if (const auto pred = std::get_if<PredicateNode>(&*cc)) {
2559 const auto index = pred->GetIndex();
2560 switch (index) {
2561 case Tegra::Shader::Pred::NeverExecute:
2562 target = decomp.v_false;
2563 break;
2564 case Tegra::Shader::Pred::UnusedIndex:
2565 target = decomp.v_true;
2566 break;
2567 default:
2568 target = decomp.predicates.at(index);
2569 break;
2570 }
2571 } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) {
2572 target = decomp.internal_flags.at(static_cast<u32>(flag->GetFlag()));
2573 } else {
2574 UNREACHABLE();
2575 }
2576
2577 return decomp.OpLoad(decomp.t_bool, target);
2578 } 2556 }
2579 2557
2580 Id operator()(const ExprVar& expr) { 2558 Id operator()(const ExprVar& expr) {