Module: Mesa Branch: main Commit: 6413b860c4bc7ce748017b98d680629f783ceadc URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6413b860c4bc7ce748017b98d680629f783ceadc
Author: Timur Kristóf <[email protected]> Date: Wed Nov 8 10:09:08 2023 +0100 ac: Rename SDMA max copy size macros to reflect SDMA version. This naming is more accurate and closer to the HW. Signed-off-by: Timur Kristóf <[email protected]> Reviewed-by: Tatsuyuki Ishi <[email protected]> Reviewed-by: Samuel Pitoiset <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26110> --- src/amd/common/sid.h | 8 +++++--- src/amd/vulkan/radv_sdma.c | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/amd/common/sid.h b/src/amd/common/sid.h index 6d255f8caa0..20a318a2ba2 100644 --- a/src/amd/common/sid.h +++ b/src/amd/common/sid.h @@ -351,10 +351,12 @@ #define SDMA_TS_SUB_OPCODE_GET_LOCAL_TIMESTAMP 0x1 #define SDMA_TS_SUB_OPCODE_GET_GLOBAL_TIMESTAMP 0x2 #define CIK_SDMA_OPCODE_SRBM_WRITE 0xe + /* There is apparently an undocumented HW limitation that - prevents the HW from copying the last 255 bytes of (1 << 22) - 1 */ -#define CIK_SDMA_COPY_MAX_SIZE 0x3fff00 /* almost 4 MB*/ -#define GFX103_SDMA_COPY_MAX_SIZE 0x3fffff00 /* almost 1 GB */ + * prevents the HW from copying the last 255 bytes of (1 << 22) - 1 + */ +#define SDMA_V2_0_COPY_MAX_BYTES 0x3fff00 /* almost 4 MB*/ +#define SDMA_V5_2_COPY_MAX_BYTES 0x3fffff00 /* almost 1 GB */ #define SDMA_NOP_PAD CIK_SDMA_PACKET(CIK_SDMA_OPCODE_NOP, 0, 0) /* header-only version */ diff --git a/src/amd/vulkan/radv_sdma.c b/src/amd/vulkan/radv_sdma.c index e3f4dcaf1d2..9cd829c92f6 100644 --- a/src/amd/vulkan/radv_sdma.c +++ b/src/amd/vulkan/radv_sdma.c @@ -358,7 +358,7 @@ radv_sdma_copy_buffer(const struct radv_device *device, struct radeon_cmdbuf *cs return; enum amd_gfx_level gfx_level = device->physical_device->rad_info.gfx_level; - unsigned max_size_per_packet = gfx_level >= GFX10_3 ? GFX103_SDMA_COPY_MAX_SIZE : CIK_SDMA_COPY_MAX_SIZE; + unsigned max_size_per_packet = gfx_level >= GFX10_3 ? SDMA_V5_2_COPY_MAX_BYTES : SDMA_V2_0_COPY_MAX_BYTES; unsigned align = ~0u; unsigned ncopy = DIV_ROUND_UP(size, max_size_per_packet);
