Mesa (master): r600g: fix transfer function for tiling.

Dave Airlie airlied at kemper.freedesktop.org
Mon Oct 18 03:48:36 UTC 2010


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Wed Oct 13 10:44:46 2010 +1000

r600g: fix transfer function for tiling.

this makes readback with tiled back work better.

---

 src/gallium/drivers/r600/r600_texture.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_texture.c b/src/gallium/drivers/r600/r600_texture.c
index 07156bb..edaebf8 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
@@ -349,8 +349,6 @@ struct pipe_transfer* r600_texture_get_transfer(struct pipe_context *ctx,
 	trans->transfer.sr = sr;
 	trans->transfer.usage = usage;
 	trans->transfer.box = *box;
-	trans->transfer.stride = rtex->pitch_in_bytes[sr.level];
-	trans->offset = r600_texture_get_offset(rtex, sr.level, box->z, sr.face);
 	if (rtex->depth) {
 		r = r600_texture_depth_flush(ctx, texture);
 		if (r < 0) {
@@ -398,7 +396,10 @@ struct pipe_transfer* r600_texture_get_transfer(struct pipe_context *ctx,
 			/* Always referenced in the blit. */
 			ctx->flush(ctx, 0, NULL);
 		}
+		return &trans->transfer;
 	}
+	trans->transfer.stride = rtex->pitch_in_bytes[sr.level];
+	trans->offset = r600_texture_get_offset(rtex, sr.level, box->z, sr.face);
 	return &trans->transfer;
 }
 




More information about the mesa-commit mailing list