GL/Context: Disable GL_{EXT,OES}_copy_image on Mali

It is **very** slow because it seems to be implemented on the CPU...
This commit is contained in:
Connor McLaughlin 2021-02-06 19:10:25 +10:00
parent c6ed19cc7b
commit 5a9abd55a1
1 changed files with 13 additions and 0 deletions

View File

@ -52,6 +52,17 @@ static bool ShouldPreferESContext()
#endif
}
static void DisableBrokenExtensions(const char* gl_vendor, const char* gl_renderer)
{
if (std::strstr(gl_vendor, "ARM") && std::strstr(gl_renderer, "Mali"))
{
// GL_{EXT,OES}_copy_image seem to be implemented on the CPU in the Mali drivers...
Log_VerbosePrintf("Mali driver detected, disabling GL_{EXT,OES}_copy_image");
GLAD_GL_EXT_copy_image = 0;
GLAD_GL_OES_copy_image = 0;
}
}
Context::Context(const WindowInfo& wi) : m_wi(wi) {}
Context::~Context() = default;
@ -149,6 +160,8 @@ std::unique_ptr<GL::Context> Context::Create(const WindowInfo& wi, const Version
Log_InfoPrintf("GL_VERSION: %s", gl_version);
Log_InfoPrintf("GL_SHADING_LANGUAGE_VERSION: %s", gl_shading_language_version);
DisableBrokenExtensions(gl_vendor, gl_renderer);
return context;
}