diff options
| author | 2018-08-08 21:51:09 -0400 | |
|---|---|---|
| committer | 2018-08-08 23:26:31 -0400 | |
| commit | 4283019aa0928f8bf564b0031c21b1231e08f8e2 (patch) | |
| tree | f2ff2510af4c4f348d126afc597baefd6380088f /src | |
| parent | Merge pull request #982 from bunnei/stub-unk-63 (diff) | |
| download | yuzu-4283019aa0928f8bf564b0031c21b1231e08f8e2.tar.gz yuzu-4283019aa0928f8bf564b0031c21b1231e08f8e2.tar.xz yuzu-4283019aa0928f8bf564b0031c21b1231e08f8e2.zip | |
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: | |||
| 657 | * @param instr Instruction to generate the if condition for. | 657 | * @param instr Instruction to generate the if condition for. |
| 658 | * @returns string containing the predicate condition. | 658 | * @returns string containing the predicate condition. |
| 659 | */ | 659 | */ |
| 660 | std::string GetPredicateCondition(u64 index, bool negate) const { | 660 | std::string GetPredicateCondition(u64 index, bool negate) { |
| 661 | using Tegra::Shader::Pred; | 661 | using Tegra::Shader::Pred; |
| 662 | std::string variable; | 662 | std::string variable; |
| 663 | 663 | ||
| 664 | // Index 7 is used as an 'Always True' condition. | 664 | // Index 7 is used as an 'Always True' condition. |
| 665 | if (index == static_cast<u64>(Pred::UnusedIndex)) | 665 | if (index == static_cast<u64>(Pred::UnusedIndex)) { |
| 666 | variable = "true"; | 666 | variable = "true"; |
| 667 | else | 667 | } else { |
| 668 | variable = 'p' + std::to_string(index) + '_' + suffix; | 668 | variable = 'p' + std::to_string(index) + '_' + suffix; |
| 669 | 669 | declr_predicates.insert(variable); | |
| 670 | } | ||
| 670 | if (negate) { | 671 | if (negate) { |
| 671 | return "!(" + variable + ')'; | 672 | return "!(" + variable + ')'; |
| 672 | } | 673 | } |