diff options
author | boliu <boliu@chromium.org> | 2014-10-21 16:46:08 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-10-21 23:46:24 +0000 |
commit | bf634aa33aa21ce25ef680bca6305b9ad64acfbc (patch) | |
tree | b75256ada3dacfd2c3a942e10b42f5fdb98cc25e | |
parent | 013109b88a7996ab9dce709aa02a34833084e44c (diff) | |
download | chromium_src-bf634aa33aa21ce25ef680bca6305b9ad64acfbc.zip chromium_src-bf634aa33aa21ce25ef680bca6305b9ad64acfbc.tar.gz chromium_src-bf634aa33aa21ce25ef680bca6305b9ad64acfbc.tar.bz2 |
gpu: Use egl client wait if server wait not available
Check for EGL_KHR_wait_sync extension before calling eglWaitSyncKHR. If
extension not present, fallback to EGL_KHR_fence_sync and
eglClientWaitSyncKHR.
BUG=
Review URL: https://codereview.chromium.org/670843002
Cr-Commit-Position: refs/heads/master@{#300569}
-rwxr-xr-x | ui/gl/generate_bindings.py | 2 | ||||
-rw-r--r-- | ui/gl/gl_fence_egl.cc | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/ui/gl/generate_bindings.py b/ui/gl/generate_bindings.py index b135cac..5a73056 100755 --- a/ui/gl/generate_bindings.py +++ b/ui/gl/generate_bindings.py @@ -1079,7 +1079,7 @@ EGL_FUNCTIONS = [ 'EGLuint64CHROMIUM* sbc', }, { 'return_type': 'EGLint', 'versions': [{ 'name': 'eglWaitSyncKHR', - 'extensions': ['EGL_KHR_fence_sync'] }], + 'extensions': ['EGL_KHR_fence_sync', 'EGL_KHR_wait_sync'] }], 'arguments': 'EGLDisplay dpy, EGLSyncKHR sync, EGLint flags' } ] diff --git a/ui/gl/gl_fence_egl.cc b/ui/gl/gl_fence_egl.cc index ebc33bf..2ff18fc 100644 --- a/ui/gl/gl_fence_egl.cc +++ b/ui/gl/gl_fence_egl.cc @@ -42,6 +42,10 @@ void GLFenceEGL::ClientWait() { } void GLFenceEGL::ServerWait() { + if (!gfx::g_driver_egl.ext.b_EGL_KHR_wait_sync) { + ClientWait(); + return; + } if (!flush_event_.get() || flush_event_->IsSignaled()) { EGLint flags = 0; eglWaitSyncKHR(display_, sync_, flags); |