radeonsi: Fix si_dma_copy(_tile) for compressed formats
authorMichel Dänzer <michel.daenzer@amd.com>
Wed, 10 Sep 2014 09:43:56 +0000 (18:43 +0900)
committerMichel Dänzer <michel@daenzer.net>
Tue, 30 Sep 2014 09:55:48 +0000 (18:55 +0900)
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@amd.com>
src/gallium/drivers/radeonsi/si_dma.c

index cd6ff4a2eb5f1c3560f0c7ba6cbdeb1ea14a59de..ff647228f50dd803799d6c0cac8fb4cd600da47a 100644 (file)
@@ -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,