diff --git a/gfx/gl/AndroidSurfaceTexture.cpp b/gfx/gl/AndroidSurfaceTexture.cpp index d927e0146b76..696b01ad3598 100644 --- a/gfx/gl/AndroidSurfaceTexture.cpp +++ b/gfx/gl/AndroidSurfaceTexture.cpp @@ -129,9 +129,11 @@ void AndroidSurfaceTexture::UpdateCanDetach() { // The API for attach/detach only exists on 16+, and PowerVR has some sort of - // fencing issue. + // fencing issue. Additionally, attach/detach seems to be busted on at least some + // Mali adapters (400MP2 for sure, bug 1131793) mCanDetach = AndroidBridge::Bridge()->GetAPIVersion() >= 16 && - (!mAttachedContext || mAttachedContext->Vendor() != GLVendor::Imagination); + (!mAttachedContext || mAttachedContext->Vendor() != GLVendor::Imagination) && + (!mAttachedContext || mAttachedContext->Vendor() != GLVendor::ARM /* Mali */); } bool diff --git a/gfx/gl/GLContext.cpp b/gfx/gl/GLContext.cpp index 0e20f279bf7b..31499935cedc 100644 --- a/gfx/gl/GLContext.cpp +++ b/gfx/gl/GLContext.cpp @@ -584,7 +584,8 @@ GLContext::InitWithPrefix(const char *prefix, bool trygl) "Imagination", "nouveau", "Vivante", - "VMware, Inc." + "VMware, Inc.", + "ARM" }; mVendor = GLVendor::Other; diff --git a/gfx/gl/GLContext.h b/gfx/gl/GLContext.h index e901b7003e84..fb8602b653c1 100644 --- a/gfx/gl/GLContext.h +++ b/gfx/gl/GLContext.h @@ -154,6 +154,7 @@ enum class GLVendor { Nouveau, Vivante, VMware, + ARM, Other };