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);