ac/radeonsi: fix CIK copy max size
authorDave Airlie <airlied@redhat.com>
Wed, 29 Aug 2018 03:52:15 +0000 (13:52 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 31 Aug 2018 05:11:49 +0000 (15:11 +1000)
While adding transfer queues to radv, I started writing some tests,
the first test I wrote fell over copying a buffer larger than this
limit.

Checked AMDVLK and found the correct limit.

Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/amd/common/sid.h

index d696c01d4ddd6692cdcacaaffe6e8573fb2a00df..851a823c72a43351138e7e5b538319ef71c69e7b 100644 (file)
 #define        SDMA_TS_SUB_OPCODE_GET_LOCAL_TIMESTAMP     0x1
 #define        SDMA_TS_SUB_OPCODE_GET_GLOBAL_TIMESTAMP    0x2
 #define    CIK_SDMA_PACKET_SRBM_WRITE              0xe
-#define    CIK_SDMA_COPY_MAX_SIZE                  0x3fffe0
+/* There is apparently an undocumented HW "feature" that
+   prevents the HW from copying past 256 bytes of (1 << 22) */
+#define    CIK_SDMA_COPY_MAX_SIZE                  0x3fff00
 
 enum amd_cmp_class_flags {
        S_NAN = 1 << 0,        // Signaling NaN