Mesa (master): st/dri: flush drawable textures before unreferencing

Marek Olšák mareko at kemper.freedesktop.org
Tue Mar 11 18:05:34 UTC 2014


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

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Fri Mar  7 17:25:05 2014 +0100

st/dri: flush drawable textures before unreferencing

This fixes piglit/fbo-sys-blit with fast clear on radeonsi.

Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>

---

 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 3d8d569..4f2a87e 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);
    }
 




More information about the mesa-commit mailing list