radeonsi: SDMA v4 size field is size - 1
authorTatsuyuki Ishi <ishitatsuyuki@gmail.com>
Tue, 28 Feb 2023 06:29:34 +0000 (15:29 +0900)
committerMarge Bot <emma+marge@anholt.net>
Thu, 2 Mar 2023 15:29:47 +0000 (15:29 +0000)
After cross-checking with kernel and the old buffer copy code, it seems
that the size field should be size - 1 instead.

Fixes: 46c95047bd7 ("radeonsi: implement si_sdma_copy_image for gfx7+")

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21585>

src/gallium/drivers/radeonsi/si_sdma_copy_image.c

index d542fe7..c9b0dc4 100644 (file)
@@ -134,7 +134,7 @@ bool si_sdma_v4_v5_copy_texture(struct si_context *sctx, struct si_texture *sdst
       radeon_emit(CIK_SDMA_PACKET(CIK_SDMA_OPCODE_COPY,
                                   CIK_SDMA_COPY_SUB_OPCODE_LINEAR,
                                   (tmz ? 4 : 0)));
-      radeon_emit(bytes);
+      radeon_emit(bytes - 1);
       radeon_emit(0);
       radeon_emit(src_address);
       radeon_emit(src_address >> 32);