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

Matthew Auld matthew.auld at intel.com
Wed Jan 24 08:37:54 UTC 2024


On 24/01/2024 04:56, Zbigniew Kempczyński wrote:
> On Tue, Jan 23, 2024 at 06:33:23PM +0000, Matthew Auld wrote:
>> 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 as 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.
>>
>> BSpec: 57561
>> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
>> Cc: 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
>>
> 
> +Sai
> 
> At first glance I don't like removing (1 << 19). For M_MATRIX
> we require BYTE_COPY. I'm not sure Sai is working on such tests
> but we discussed offline sometime I would like to have such
> tests here.

This patch is enabling BYTE_COPY mode. Setting bit 19 turns on the 
PAGE_COPY mode.  Matrix Copy looks to require BYTE_COPY. Also there 
doesn't seem to be a bit 19 on PVC, it seems to only support byte copy.

> 
> --
> Zbigniew


More information about the igt-dev mailing list