Mesa (master): egl_softpipe: Flush when switching current context.

Brian Paul brianp at kemper.freedesktop.org
Wed Aug 5 22:09:33 UTC 2009


Module: Mesa
Branch: master
Commit: 0153614cb0ce52e5b2321de73ad6cd73e106bb34
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0153614cb0ce52e5b2321de73ad6cd73e106bb34

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Wed Aug  5 16:07:39 2009 -0600

egl_softpipe: Flush when switching current context.

Signed-off-by: Chia-I Wu <olvaffe at gmail.com>

---

 src/gallium/winsys/egl_xlib/egl_xlib.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/src/gallium/winsys/egl_xlib/egl_xlib.c b/src/gallium/winsys/egl_xlib/egl_xlib.c
index 2acfbf8..1ea4b72 100644
--- a/src/gallium/winsys/egl_xlib/egl_xlib.c
+++ b/src/gallium/winsys/egl_xlib/egl_xlib.c
@@ -425,10 +425,14 @@ xlib_eglMakeCurrent(_EGLDriver *drv, EGLDisplay dpy,
    struct xlib_egl_context *context = lookup_context(ctx);
    struct xlib_egl_surface *draw_surf = lookup_surface(draw);
    struct xlib_egl_surface *read_surf = lookup_surface(read);
+   struct st_context *oldctx = st_get_current();
 
    if (!_eglMakeCurrent(drv, dpy, draw, read, context))
       return EGL_FALSE;
 
+   /* Flush before switching context.  Check client API? */
+   if (oldctx)
+      st_flush(oldctx, PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME, NULL);
    st_make_current((context ? context->Context : NULL),
                    (draw_surf ? draw_surf->Framebuffer : NULL),
                    (read_surf ? read_surf->Framebuffer : NULL));




More information about the mesa-commit mailing list