summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasiliy Ulyanov <v.ulyanov@samsung.com>2015-07-01 10:49:30 +0300
committerjinhyung.jo <jinhyung.jo@samsung.com>2015-08-04 17:48:39 +0900
commitfd48cd8b5fdd8f25fa349df5dda7d22ec0399103 (patch)
tree6ba16dd4566316f0d10c12a22a879753cc88aa00
parenteba4ad167a41a44eab8aa5bb0f1ce6cb21c2ffa6 (diff)
downloademulator-yagl-fd48cd8b5fdd8f25fa349df5dda7d22ec0399103.tar.gz
emulator-yagl-fd48cd8b5fdd8f25fa349df5dda7d22ec0399103.tar.bz2
emulator-yagl-fd48cd8b5fdd8f25fa349df5dda7d22ec0399103.zip
YaGL: mark eglMakeCurrent call as 'flushing'
According to EGL spec the currently bound context needs to be flushed before being released or another context is made current. Without flushing we may miss some GL calls if there are several threads rendering to a single context. Change-Id: Id6680a086d895ba94b4c279b18443d93017838d1 Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
-rw-r--r--EGL/yagl_egl_calls.in2
-rw-r--r--EGL/yagl_host_egl_calls.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/EGL/yagl_egl_calls.in b/EGL/yagl_egl_calls.in
index 90fabea..0bdbaf3 100644
--- a/EGL/yagl_egl_calls.in
+++ b/EGL/yagl_egl_calls.in
@@ -12,7 +12,7 @@ EGLBoolean eglReleaseThread(EGLint &error)
EGLBoolean eglSurfaceAttrib(yagl_host_handle dpy, yagl_host_handle surface, EGLint attribute, EGLint value, EGLint &error)
yagl_host_handle eglCreateContext(yagl_host_handle dpy, yagl_host_handle config, yagl_host_handle share_context, const EGLint *attrib_list, EGLint &error)
EGLBoolean eglDestroyContext(yagl_host_handle dpy, yagl_host_handle ctx, EGLint &error)
-void eglMakeCurrent(yagl_host_handle dpy, yagl_host_handle draw, yagl_host_handle read, yagl_host_handle ctx)
+@void eglMakeCurrent(yagl_host_handle dpy, yagl_host_handle draw, yagl_host_handle read, yagl_host_handle ctx)
EGLBoolean eglQueryContext(yagl_host_handle dpy, yagl_host_handle ctx, EGLint attribute, EGLint &value, EGLint &error)
@void eglSwapBuffers(yagl_host_handle dpy, yagl_host_handle surface)
@void eglCopyBuffers(yagl_host_handle dpy, yagl_host_handle surface)
diff --git a/EGL/yagl_host_egl_calls.c b/EGL/yagl_host_egl_calls.c
index 8070c46..766748a 100644
--- a/EGL/yagl_host_egl_calls.c
+++ b/EGL/yagl_host_egl_calls.c
@@ -265,6 +265,7 @@ void yagl_host_eglMakeCurrent(yagl_host_handle dpy, yagl_host_handle draw, yagl_
yagl_transport_put_out_yagl_host_handle(t, read);
yagl_transport_put_out_yagl_host_handle(t, ctx);
yagl_transport_end(t);
+ yagl_transport_flush(t, NULL);
}
/*