Skip to content

Commit

Permalink
OpenGLDevice: More Mali driver workarounds
Browse files Browse the repository at this point in the history
  • Loading branch information
stenzek committed Dec 16, 2023
1 parent fb0ad26 commit 0632c33
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
7 changes: 6 additions & 1 deletion src/util/gl/context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,12 @@ static void DisableBrokenExtensions(const char* gl_vendor, const char* gl_render
gl_major_version >= 3 && gl_minor_version >= 2 && major_version > 0))
{
// r32p0 and beyond seem okay.
Log_VerbosePrintf("Keeping copy_image for driver version '%s'", gl_version);
//Log_VerbosePrintf("Keeping copy_image for driver version '%s'", gl_version);

// Framebuffer blits still end up faster.
Log_VerbosePrintf("Newer Mali driver detected, disabling GL_{EXT,OES}_copy_image.");
GLAD_GL_EXT_copy_image = 0;
GLAD_GL_OES_copy_image = 0;
}
else
{
Expand Down
4 changes: 3 additions & 1 deletion src/util/opengl_device.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -507,7 +507,9 @@ bool OpenGLDevice::CheckFeatures(bool* buggy_pbo, FeatureMask disabled_features)
// noperspective is not supported in GLSL ES.
m_features.noperspective_interpolation = !is_gles;

m_features.texture_copy_to_self = !(disabled_features & FEATURE_MASK_TEXTURE_COPY_TO_SELF);
// glBlitFramebufer with same source/destination should be legal, but on Mali (at least Bifrost) it breaks.
// So, blit from the shadow texture, like in the other renderers.
m_features.texture_copy_to_self = !vendor_id_arm && !(disabled_features & FEATURE_MASK_TEXTURE_COPY_TO_SELF);

m_features.geometry_shaders =
!(disabled_features & FEATURE_MASK_GEOMETRY_SHADERS) && (GLAD_GL_VERSION_3_2 || GLAD_GL_ES_VERSION_3_2);
Expand Down

0 comments on commit 0632c33

Please sign in to comment.