[PATCH v9 4/8] drm/xe: Track number of written dwords from workaround batch buffer emission
Tvrtko Ursulin
tvrtko.ursulin at igalia.com
Fri Jul 11 15:16:10 UTC 2025
On 11/07/2025 04:32, Lucas De Marchi wrote:
> On Wed, Jul 09, 2025 at 11:54:51AM +0100, Tvrtko Ursulin wrote:
>> Indirect context setup will need to get to the number of written dwords.
>> Lets add it as an output parameter so it can be accessed from the finish
>> helper regardless of whether code is writing directly or via an shadow
>> buffer.
>>
>> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at igalia.com>
>> Cc: Lucas De Marchi <lucas.demarchi at intel.com>
>> ---
>> drivers/gpu/drm/xe/xe_lrc.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
>> index 5d5b76f16829..229cfde91799 100644
>> --- a/drivers/gpu/drm/xe/xe_lrc.c
>> +++ b/drivers/gpu/drm/xe/xe_lrc.c
>> @@ -991,6 +991,7 @@ struct bo_setup_state {
>> /* State: */
>> u32 *buffer;
>> u32 *ptr;
>> + unsigned int written;
>
> nit: since everywhere we use "len" for the number of dwords, it would
> probably make more sense here. As well as s/buffer/bounce/ in the
> previous patch... but not critical.
I opted to leave both as is since to me current names read a bit more
obvious. Especially written. Bounce makes sense but I wanted to make it
bounce_buffer to look less weird, but then it was long, so left it all.
> Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>
Thanks!
Regards,
Tvrtko
>
> Lucas De Marchi
>
>
>> };
>>
>> static int setup_bo(struct bo_setup_state *state)
>> @@ -1023,6 +1024,7 @@ static int setup_bo(struct bo_setup_state *state)
>> goto fail;
>>
>> state->ptr += len;
>> + state->written += len;
>> }
>>
>> return 0;
>> @@ -1039,7 +1041,7 @@ static void finish_bo(struct bo_setup_state *state)
>>
>> xe_map_memcpy_to(gt_to_xe(state->lrc->gt), &state->lrc->bo->vmap,
>> state->offset, state->buffer,
>> - (state->ptr - state->buffer) * sizeof(u32));
>> + state->written * sizeof(u32));
>> kfree(state->buffer);
>> }
>>
>> @@ -1063,6 +1065,7 @@ static int setup_wa_bb(struct xe_lrc *lrc,
>> struct xe_hw_engine *hwe)
>> return ret;
>>
>> *state.ptr++ = MI_BATCH_BUFFER_END;
>> + state.written++;
>>
>> finish_bo(&state);
>>
>> --
>> 2.48.0
>>
More information about the Intel-xe
mailing list