diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_shader_decompiler.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp index 3adf7f0cb..849839fe3 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -2009,16 +2009,19 @@ private: | |||
| 2009 | expr += GetSampler(meta->sampler); | 2009 | expr += GetSampler(meta->sampler); |
| 2010 | expr += ", "; | 2010 | expr += ", "; |
| 2011 | 2011 | ||
| 2012 | expr += constructors.at(operation.GetOperandsCount() - 1); | 2012 | expr += constructors.at(operation.GetOperandsCount() + (meta->array ? 1 : 0) - 1); |
| 2013 | expr += '('; | 2013 | expr += '('; |
| 2014 | for (std::size_t i = 0; i < count; ++i) { | 2014 | for (std::size_t i = 0; i < count; ++i) { |
| 2015 | expr += VisitOperand(operation, i).AsInt(); | 2015 | if (i > 0) { |
| 2016 | const std::size_t next = i + 1; | ||
| 2017 | if (next == count) | ||
| 2018 | expr += ')'; | ||
| 2019 | else if (next < count) | ||
| 2020 | expr += ", "; | 2016 | expr += ", "; |
| 2017 | } | ||
| 2018 | expr += VisitOperand(operation, i).AsInt(); | ||
| 2021 | } | 2019 | } |
| 2020 | if (meta->array) { | ||
| 2021 | expr += ", "; | ||
| 2022 | expr += Visit(meta->array).AsInt(); | ||
| 2023 | } | ||
| 2024 | expr += ')'; | ||
| 2022 | 2025 | ||
| 2023 | if (meta->lod && !meta->sampler.IsBuffer()) { | 2026 | if (meta->lod && !meta->sampler.IsBuffer()) { |
| 2024 | expr += ", "; | 2027 | expr += ", "; |