Index: ui/gl/gl_context_egl.cc |
diff --git a/ui/gl/gl_context_egl.cc b/ui/gl/gl_context_egl.cc |
index f77c9f9d5eceae26aa917cf340a79621cba7e2cc..e3e18ff879b2b0e72b596b7a868b61ef5c60205f 100644 |
--- a/ui/gl/gl_context_egl.cc |
+++ b/ui/gl/gl_context_egl.cc |
@@ -75,7 +75,16 @@ bool GLContextEGL::MakeCurrent(GLSurface* surface) { |
if (IsCurrent(surface)) |
return true; |
- TRACE_EVENT0("gpu", "GLContextEGL::MakeCurrent"); |
+ TRACE_EVENT2("gpu", "GLContextEGL::MakeCurrent", |
+ "context", context_, |
+ "surface", surface); |
+ |
+ // Mali work-around: glFlush() does not synchronize between contexts |
+ // chrome-os-partner:10068 |
+#if defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL) |
+ if (eglGetCurrentContext() != NULL) |
+ glFinish(); |
+#endif // defined(OS_CHROMEOS) && defined(ARCH_CPU_ARMEL) |
if (!eglMakeCurrent(display_, |
surface->GetHandle(), |