mirror of
https://github.com/yuzu-mirror/yuzu.git
synced 2024-11-14 16:39:59 +00:00
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:
parent
b42a74ff2c
commit
6947bf8e44
1 changed files with 3 additions and 0 deletions
|
@ -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()));
|
||||||
|
|
Loading…
Reference in a new issue