From 6349b3235cc07d396325863ece9ca6261daf8e77 Mon Sep 17 00:00:00 2001 From: Grigori Goronzy Date: Tue, 1 Oct 2013 20:02:10 +0200 Subject: [PATCH] st/egl: flush resources before presentation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes regression on r600g due to fast clear introduced by commit edbbfac6. Signed-off-by: Marek Olšák --- src/gallium/state_trackers/egl/x11/native_dri2.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/gallium/state_trackers/egl/x11/native_dri2.c b/src/gallium/state_trackers/egl/x11/native_dri2.c index 3aa7c17dbc5..3c58979e295 100644 --- a/src/gallium/state_trackers/egl/x11/native_dri2.c +++ b/src/gallium/state_trackers/egl/x11/native_dri2.c @@ -290,6 +290,12 @@ dri2_surface_flush_frontbuffer(struct native_surface *nsurf) { struct dri2_surface *dri2surf = dri2_surface(nsurf); struct dri2_display *dri2dpy = dri2surf->dri2dpy; + struct native_display *ndpy = &dri2dpy->base; + struct pipe_context *pipe = ndpy_get_copy_context(ndpy); + + /* flush buffer */ + pipe->flush_resource(pipe, dri2surf->textures[NATIVE_ATTACHMENT_FRONT_LEFT]); + pipe->flush(pipe, NULL, 0); /* copy to real front buffer */ if (dri2surf->have_fake) @@ -313,9 +319,14 @@ dri2_surface_swap_buffers(struct native_surface *nsurf, int num_rects, { struct dri2_surface *dri2surf = dri2_surface(nsurf); struct dri2_display *dri2dpy = dri2surf->dri2dpy; + struct native_display *ndpy = &dri2dpy->base; + struct pipe_context *pipe = ndpy_get_copy_context(ndpy); /* copy to front buffer */ if (dri2surf->have_back) { + pipe->flush_resource(pipe, dri2surf->textures[NATIVE_ATTACHMENT_BACK_LEFT]); + pipe->flush(pipe, NULL, 0); + if (num_rects > 0) x11_drawable_copy_buffers_region(dri2dpy->xscr, dri2surf->drawable, num_rects, rects, -- 2.30.2