summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
diff options
context:
space:
mode:
authorPokechu22 <Pokechu022@gmail.com>2023-03-05 22:02:42 -0800
committerPokechu22 <Pokechu022@gmail.com>2023-04-08 15:32:27 -0700
commit3f143d1bc979421afadcee9debe7988c887a1970 (patch)
tree1b0ed8e7f3fcf30d48f92af9fdb875cfe7440923 /Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
parent53beda526bf9d8b72cc8316550fbcacb107fd2f1 (diff)
OGL: Only specify precision for sampler2DMSArray when it is defined
See https://bugs.dolphin-emu.org/issues/13198
Diffstat (limited to 'Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
index b7dba51cf2..f13ca7eb8e 100644
--- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
+++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
@@ -722,6 +722,9 @@ void ProgramShaderCache::CreateHeader()
break;
}
+ // The sampler2DMSArray keyword is reserved in GLSL ES 3.0 and 3.1, but is available in 3.2.
+ const bool use_multisample_2d_array_precision = v >= GlslEs320;
+
std::string shader_shuffle_string;
if (g_ogl_config.bSupportsKHRShaderSubgroup)
{
@@ -849,7 +852,7 @@ void ProgramShaderCache::CreateHeader()
(is_glsles && g_ActiveConfig.backend_info.bSupportsPaletteConversion) ?
"precision highp usamplerBuffer;" :
"",
- v > GlslEs300 ? "precision highp sampler2DMSArray;" : "",
+ use_multisample_2d_array_precision ? "precision highp sampler2DMSArray;" : "",
v >= GlslEs310 ? "precision highp image2DArray;" : "");
}