summaryrefslogtreecommitdiffstats
path: root/ui/gl
diff options
context:
space:
mode:
authorsheu@chromium.org <sheu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-22 10:00:42 +0000
committersheu@chromium.org <sheu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-22 10:00:42 +0000
commitda731fa4cdc22c96ee043b84c3db7fe167bb1456 (patch)
tree7724f48a54743ba655d8793dfac959ecb3364545 /ui/gl
parentc83264e947e7780cae4258cb0a48e9e11b35d807 (diff)
downloadchromium_src-da731fa4cdc22c96ee043b84c3db7fe167bb1456.zip
chromium_src-da731fa4cdc22c96ee043b84c3db7fe167bb1456.tar.gz
chromium_src-da731fa4cdc22c96ee043b84c3db7fe167bb1456.tar.bz2
Use glFinish() before EGL context switch for ARM
Temp workaround for issues on Mali. Apparently we don't care about this affecting Kaen. BUG=None TEST=local build, run Change-Id: I914503cd40d5b587cf6c5b60fa19ad41fd0e709b Review URL: https://chromiumcodereview.appspot.com/10636006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@143568 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gl')
-rw-r--r--ui/gl/gl_context_egl.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/ui/gl/gl_context_egl.cc b/ui/gl/gl_context_egl.cc
index f77c9f9..e3e18ff 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(),