ShaderGen: Try disabling GLSL ES 3.2 on PowerVR

This commit is contained in:
Connor McLaughlin 2021-03-08 11:34:17 +10:00
parent 5e0ebb5d5f
commit ad7e0d48c6

View file

@ -36,6 +36,7 @@ void ShaderGen::DefineMacro(std::stringstream& ss, const char* name, bool enable
void ShaderGen::SetGLSLVersionString() void ShaderGen::SetGLSLVersionString()
{ {
const char* glsl_version = reinterpret_cast<const char*>(glGetString(GL_SHADING_LANGUAGE_VERSION)); const char* glsl_version = reinterpret_cast<const char*>(glGetString(GL_SHADING_LANGUAGE_VERSION));
const char* gl_renderer = reinterpret_cast<const char*>(glGetString(GL_RENDERER));
const bool glsl_es = (m_render_api == HostDisplay::RenderAPI::OpenGLES); const bool glsl_es = (m_render_api == HostDisplay::RenderAPI::OpenGLES);
Assert(glsl_version != nullptr); Assert(glsl_version != nullptr);
@ -58,6 +59,10 @@ void ShaderGen::SetGLSLVersionString()
major_version = 3; major_version = 3;
minor_version = 20; minor_version = 20;
} }
// Special cases - PowerVR's GLES 3.2 driver seems to choke on our shaders.
if (glsl_es && std::strstr(gl_renderer, "PowerVR Rogue") && major_version >= 3)
minor_version = std::min(minor_version, 10);
} }
else else
{ {