As defined by the spec: "All rendering calls for the currently bound context, for the current rendering API, made prior to eglWaitClient, are guaranteed to be executed before native rendering calls made after eglWaitClient which affect the read or draw surfaces associated with that context.
The same result can be achieved using client API-specific calls such as glFinish or vgFinish." v2: call glFinish() to ensure identical behaviour Signed-off-by: Tapani Pälli <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106337 --- src/egl/drivers/dri2/egl_dri2.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index de56c16221..5cf366a04c 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -123,6 +123,7 @@ static void dri2_##x() \ }\ DECL_GLCALL(glFlush); +DECL_GLCALL(glFinish); #undef DECL_GLCALL @@ -1723,17 +1724,14 @@ dri2_query_buffer_age(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *surf) static EGLBoolean dri2_wait_client(_EGLDriver *drv, _EGLDisplay *disp, _EGLContext *ctx) { - struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); - _EGLSurface *surf = ctx->DrawSurface; - __DRIdrawable *dri_drawable = dri2_dpy->vtbl->get_dri_drawable(surf); - (void) drv; + (void) disp; + (void) ctx; /* FIXME: If EGL allows frontbuffer rendering for window surfaces, * we need to copy fake to real here.*/ - if (dri2_dpy->flush != NULL) - dri2_dpy->flush->flush(dri_drawable); + dri2_glFinish(); return EGL_TRUE; } -- 2.13.6 _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
