diff options
| author | 2020-03-12 17:43:03 -0300 | |
|---|---|---|
| committer | 2020-03-12 18:10:29 -0300 | |
| commit | 38fe070d78324afd735709a70fc52b97f84bca1e (patch) | |
| tree | 788a0276c669a51b22d74d69b05ab6adb2b49ee5 /src | |
| parent | Merge pull request #3494 from ReinUsesLisp/fix-cs-pipeline (diff) | |
| download | yuzu-38fe070d78324afd735709a70fc52b97f84bca1e.tar.gz yuzu-38fe070d78324afd735709a70fc52b97f84bca1e.tar.xz yuzu-38fe070d78324afd735709a70fc52b97f84bca1e.zip | |
gl_shader_decompiler: Add layer component to texelFetch
TexelFetch was not emitting the array component generating invalid GLSL.
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 3a41ed30c..b148aa057 100644 --- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp +++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp | |||
| @@ -1822,16 +1822,19 @@ private: | |||
| 1822 | expr += GetSampler(meta->sampler); | 1822 | expr += GetSampler(meta->sampler); |
| 1823 | expr += ", "; | 1823 | expr += ", "; |
| 1824 | 1824 | ||
| 1825 | expr += constructors.at(operation.GetOperandsCount() - 1); | 1825 | expr += constructors.at(operation.GetOperandsCount() + (meta->array ? 1 : 0) - 1); |
| 1826 | expr += '('; | 1826 | expr += '('; |
| 1827 | for (std::size_t i = 0; i < count; ++i) { | 1827 | for (std::size_t i = 0; i < count; ++i) { |
| 1828 | expr += VisitOperand(operation, i).AsInt(); | 1828 | if (i > 0) { |
| 1829 | const std::size_t next = i + 1; | ||
| 1830 | if (next == count) | ||
| 1831 | expr += ')'; | ||
| 1832 | else if (next < count) | ||
| 1833 | expr += ", "; | 1829 | expr += ", "; |
| 1830 | } | ||
| 1831 | expr += VisitOperand(operation, i).AsInt(); | ||
| 1834 | } | 1832 | } |
| 1833 | if (meta->array) { | ||
| 1834 | expr += ", "; | ||
| 1835 | expr += Visit(meta->array).AsInt(); | ||
| 1836 | } | ||
| 1837 | expr += ')'; | ||
| 1835 | 1838 | ||
| 1836 | if (meta->lod && !meta->sampler.IsBuffer()) { | 1839 | if (meta->lod && !meta->sampler.IsBuffer()) { |
| 1837 | expr += ", "; | 1840 | expr += ", "; |