vk_shader_decompiler: Resolve fallthrough within ExprDecompiler's ExprCondCode operator()

This would previously result in NeverExecute and UnusedIndex being
treated as regular predicates.
This commit is contained in:
Lioncash 2019-10-15 19:40:42 -04:00
parent b42a74ff2c
commit 6947bf8e44

View File

@ -1682,10 +1682,13 @@ public:
switch (index) { switch (index) {
case Tegra::Shader::Pred::NeverExecute: case Tegra::Shader::Pred::NeverExecute:
target = decomp.v_false; target = decomp.v_false;
break;
case Tegra::Shader::Pred::UnusedIndex: case Tegra::Shader::Pred::UnusedIndex:
target = decomp.v_true; target = decomp.v_true;
break;
default: default:
target = decomp.predicates.at(index); target = decomp.predicates.at(index);
break;
} }
} else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) { } else if (const auto flag = std::get_if<InternalFlagNode>(&*cc)) {
target = decomp.internal_flags.at(static_cast<u32>(flag->GetFlag())); target = decomp.internal_flags.at(static_cast<u32>(flag->GetFlag()));