From 8bd7a6f48c03b8bec2740cae392b6b1b00cbe1fc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 7 Mar 2014 17:25:05 +0100 Subject: [PATCH] st/dri: flush drawable textures before unreferencing MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This fixes piglit/fbo-sys-blit with fast clear on radeonsi. Reviewed-by: Michel Dänzer --- src/gallium/state_trackers/dri/drm/dri2.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/gallium/state_trackers/dri/drm/dri2.c b/src/gallium/state_trackers/dri/drm/dri2.c index 3d8d5697327..4f2a87e86ce 100644 --- a/src/gallium/state_trackers/dri/drm/dri2.c +++ b/src/gallium/state_trackers/dri/drm/dri2.c @@ -237,6 +237,14 @@ dri2_drawable_process_buffers(struct dri_context *ctx, if (i == ST_ATTACHMENT_DEPTH_STENCIL && alloc_depthstencil) continue; + /* Flush the texture before unreferencing, so that other clients can + * see what the driver has rendered. + */ + if (i != ST_ATTACHMENT_DEPTH_STENCIL && drawable->textures[i]) { + struct pipe_context *pipe = ctx->st->pipe; + pipe->flush_resource(pipe, drawable->textures[i]); + } + pipe_resource_reference(&drawable->textures[i], NULL); } -- 2.30.2