[PATCH i-g-t v2 7/7] lib/intel_blt: use BYTE_COPY mode on xe2

Matthew Auld matthew.auld at intel.com
Thu Jan 25 10:56:45 UTC 2024


Currently we see various CAT errors and timeouts on xe2 when running
xe_copy_basic. If selecting PAGE_COPY mode for MEM_COPY, the page size
is defined as 256B block on xe2. Also the width should be defined in
number of pages, and not bytes, which likely explains the CAT errors.
However the caller in xe_copy_basic is not using a size that is aligned
to 256B, so rather just select the more general BYTE_COPY mode instead,
which should work for any reasonable number of bytes. Also bit 19
doesn't look to be supported on PVC, where byte copy is all we seem to
have. In addition the matrix copy also expects byte copy.

BSpec: 57561
Signed-off-by: Matthew Auld <matthew.auld at intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Acked-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
---
 lib/intel_blt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/intel_blt.c b/lib/intel_blt.c
index e41e261ea..25d251c4f 100644
--- a/lib/intel_blt.c
+++ b/lib/intel_blt.c
@@ -1613,7 +1613,7 @@ static void emit_blt_mem_copy(int fd, uint64_t ahnd, const struct blt_mem_data *
 	optype = mem->src.type == M_MATRIX ? 1 << 17 : 0;
 
 	i = 0;
-	batch[i++] = MEM_COPY_CMD | (1 << 19) | optype;
+	batch[i++] = MEM_COPY_CMD | optype;
 	batch[i++] = mem->src.width - 1;
 	batch[i++] = mem->src.height - 1;
 	batch[i++] = mem->src.pitch - 1;
-- 
2.43.0



More information about the igt-dev mailing list