[PATCH v8 4/7] drm/xe: Allow specifying number of extra dwords at the end of wa bb emission
Lucas De Marchi
lucas.demarchi at intel.com
Tue Jul 8 22:11:08 UTC 2025
On Thu, Jul 03, 2025 at 09:20:56AM +0100, Tvrtko Ursulin wrote:
>Indirect context setup will need more than one.
>
>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 | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_lrc.c b/drivers/gpu/drm/xe/xe_lrc.c
>index 7f8911a10cc9..e278c12a41f9 100644
>--- a/drivers/gpu/drm/xe/xe_lrc.c
>+++ b/drivers/gpu/drm/xe/xe_lrc.c
>@@ -982,6 +982,7 @@ static u32 *
> setup_bo(struct xe_lrc *lrc,
> struct xe_hw_engine *hwe,
> const size_t max_size,
>+ unsigned int reserve_dw,
> unsigned int offset,
> const struct bo_setup *funcs,
> unsigned int num_funcs,
one by one these arguments make sense. Together they are pretty hard to
add a call to this function. We will probably need to change this to
keep the state separate or something like that.
Lucas De Marchi
>@@ -1010,10 +1011,9 @@ setup_bo(struct xe_lrc *lrc,
> remain -= len;
>
> /*
>- * There should always be at least 1 additional dword for
>- * the end marker
>+ * Caller has asked for at least reserve_dw to remain unused.
> */
>- if (len < 0 || xe_gt_WARN_ON(lrc->gt, remain < 1))
>+ if (len < 0 || xe_gt_WARN_ON(lrc->gt, remain < reserve_dw))
> goto fail;
>
> cmd += len;
>@@ -1049,7 +1049,7 @@ static int setup_wa_bb(struct xe_lrc *lrc, struct xe_hw_engine *hwe)
> unsigned int written = 0;
> u32 *cmd, *buf = NULL;
>
>- cmd = setup_bo(lrc, hwe, LRC_WA_BB_SIZE, offset, funcs,
>+ cmd = setup_bo(lrc, hwe, LRC_WA_BB_SIZE, 1, offset, funcs,
> ARRAY_SIZE(funcs), &buf, &written);
> if (IS_ERR(cmd))
> return PTR_ERR(cmd);
>--
>2.48.0
>
More information about the Intel-xe
mailing list