Mesa (master): r600g: flush depth texture before a blit from it.

Dave Airlie airlied at kemper.freedesktop.org
Thu Feb 3 23:05:05 UTC 2011


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Feb  3 14:45:40 2011 +1000

r600g: flush depth texture before a blit from it.

If we are going to blit from a depth texture we need to flush
it before we blit from it.

Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/gallium/drivers/r600/r600_blit.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_blit.c b/src/gallium/drivers/r600/r600_blit.c
index bf21ab4..c11268c 100644
--- a/src/gallium/drivers/r600/r600_blit.c
+++ b/src/gallium/drivers/r600/r600_blit.c
@@ -208,8 +208,14 @@ static void r600_resource_copy_region(struct pipe_context *ctx,
 				      unsigned src_level,
 				      const struct pipe_box *src_box)
 {
+	struct r600_resource_texture *rsrc = (struct r600_resource_texture*)src;
+
+	if (rsrc->depth && !rsrc->is_flushing_texture)
+		r600_texture_depth_flush(ctx, src);
+
 	r600_hw_copy_region(ctx, dst, dst_level, dstx, dsty, dstz,
 			    src, src_level, src_box);
+
 }
 
 void r600_init_blit_functions(struct r600_pipe_context *rctx)




More information about the mesa-commit mailing list