Mesa (master): radeonsi: Fix si_dma_copy(_tile) for compressed formats

Michel Dänzer daenzer at kemper.freedesktop.org
Tue Sep 30 09:56:09 UTC 2014


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

Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Wed Sep 10 18:43:56 2014 +0900

radeonsi: Fix si_dma_copy(_tile) for compressed formats

Fixes GPUVM faults when running the piglit test "getteximage-formats
init-by-rendering" with R600_DEBUG=forcedma on SI.

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeonsi/si_dma.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_dma.c b/src/gallium/drivers/radeonsi/si_dma.c
index cd6ff4a..ff64722 100644
--- a/src/gallium/drivers/radeonsi/si_dma.c
+++ b/src/gallium/drivers/radeonsi/si_dma.c
@@ -172,7 +172,7 @@ static void si_dma_copy_tile(struct si_context *ctx,
 	 * dma packet will be using the copy_height which is always smaller or equal
 	 * to the linear height
 	 */
-	height = rtiled->surface.level[tiled_lvl].npix_y;
+	height = rtiled->surface.level[tiled_lvl].nblk_y;
 	base = rtiled->surface.level[tiled_lvl].offset;
 	addr = rlinear->surface.level[linear_lvl].offset;
 	addr += rlinear->surface.level[linear_lvl].slice_size * linear_z;
@@ -302,7 +302,7 @@ void si_dma_copy(struct pipe_context *ctx,
 		dst_offset += rdst->surface.level[dst_level].slice_size * dst_z;
 		dst_offset += dst_y * dst_pitch + dst_x * bpp;
 		si_dma_copy_buffer(sctx, dst, src, dst_offset, src_offset,
-			    src_box->height * src_pitch);
+				   copy_height * src_pitch);
 	} else {
 		si_dma_copy_tile(sctx, dst, dst_level, dst_x, dst_y, dst_z,
 				 src, src_level, src_x, src_y, src_box->z,




More information about the mesa-commit mailing list