gl_shader_decompiler: Declare predicates on use.
- Used by Super Mario Odyssey (when going in game).
This commit is contained in:
parent
25ba4d1b68
commit
4283019aa0
@ -657,16 +657,17 @@ private:
|
|||||||
* @param instr Instruction to generate the if condition for.
|
* @param instr Instruction to generate the if condition for.
|
||||||
* @returns string containing the predicate condition.
|
* @returns string containing the predicate condition.
|
||||||
*/
|
*/
|
||||||
std::string GetPredicateCondition(u64 index, bool negate) const {
|
std::string GetPredicateCondition(u64 index, bool negate) {
|
||||||
using Tegra::Shader::Pred;
|
using Tegra::Shader::Pred;
|
||||||
std::string variable;
|
std::string variable;
|
||||||
|
|
||||||
// Index 7 is used as an 'Always True' condition.
|
// Index 7 is used as an 'Always True' condition.
|
||||||
if (index == static_cast<u64>(Pred::UnusedIndex))
|
if (index == static_cast<u64>(Pred::UnusedIndex)) {
|
||||||
variable = "true";
|
variable = "true";
|
||||||
else
|
} else {
|
||||||
variable = 'p' + std::to_string(index) + '_' + suffix;
|
variable = 'p' + std::to_string(index) + '_' + suffix;
|
||||||
|
declr_predicates.insert(variable);
|
||||||
|
}
|
||||||
if (negate) {
|
if (negate) {
|
||||||
return "!(" + variable + ')';
|
return "!(" + variable + ')';
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user