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
1 changed files with 5 additions and 0 deletions

View File

@ -36,6 +36,7 @@ void ShaderGen::DefineMacro(std::stringstream& ss, const char* name, bool enable
void ShaderGen::SetGLSLVersionString()
{
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);
Assert(glsl_version != nullptr);
@ -58,6 +59,10 @@ void ShaderGen::SetGLSLVersionString()
major_version = 3;
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
{