diff options
author | bunnei <bunneidev@gmail.com> | 2018-08-08 21:51:09 -0400 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-08-08 23:26:31 -0400 |
commit | 4283019aa0928f8bf564b0031c21b1231e08f8e2 (patch) | |
tree | f2ff2510af4c4f348d126afc597baefd6380088f /src | |
parent | 25ba4d1b68b77d35db94a5f16e2f98b42be50370 (diff) |
gl_shader_decompiler: Declare predicates on use.
- Used by Super Mario Odyssey (when going in game).
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index dd240a4ce..ea7779429 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp @@ -657,16 +657,17 @@ private: * @param instr Instruction to generate the if condition for. * @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; std::string variable; // 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"; - else + } else { variable = 'p' + std::to_string(index) + '_' + suffix; - + declr_predicates.insert(variable); + } if (negate) { return "!(" + variable + ')'; } |