[PATCH i-g-t 08/15] lib/intel_blt: add emit batchbuffer end
Francois Dugast
francois.dugast at intel.com
Mon May 19 08:55:14 UTC 2025
On Tue, May 13, 2025 at 08:58:03PM +0200, Zbigniew Kempczyński wrote:
> Blitter functions allow emit BBE on demand. This gives the caller
> to combine different emit functions in single batch.
>
> Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Francois Dugast <francois.dugast at intel.com>
Reviewed-by: Francois Dugast <francois.dugast at intel.com>
> ---
> lib/intel_blt.c | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/lib/intel_blt.c b/lib/intel_blt.c
> index 6bfaf09a2b..04549ab42e 100644
> --- a/lib/intel_blt.c
> +++ b/lib/intel_blt.c
> @@ -1820,7 +1820,9 @@ void blt_mem_copy_init(int fd, struct blt_mem_copy_data *mem,
> mem->copy_type = copy_type;
> }
>
> -static void emit_blt_mem_copy(int fd, uint64_t ahnd, const struct blt_mem_copy_data *mem)
> +static void emit_blt_mem_copy(int fd, uint64_t ahnd,
> + const struct blt_mem_copy_data *mem,
> + bool emit_bbe)
> {
> uint64_t dst_offset, src_offset;
> int i;
> @@ -1846,7 +1848,9 @@ static void emit_blt_mem_copy(int fd, uint64_t ahnd, const struct blt_mem_copy_d
> batch[i++] = dst_offset;
> batch[i++] = dst_offset << 32;
> batch[i++] = mem->src.mocs_index << XE2_MEM_COPY_MOCS_SHIFT | mem->dst.mocs_index;
> - batch[i++] = MI_BATCH_BUFFER_END;
> +
> + if (emit_bbe)
> + batch[i++] = MI_BATCH_BUFFER_END;
>
> munmap(batch, mem->bb.size);
> }
> @@ -1880,7 +1884,7 @@ int blt_mem_copy(int fd, const intel_ctx_t *ctx,
> 0, mem->dst.pat_index);
> bb_offset = get_offset(ahnd, mem->bb.handle, mem->bb.size, 0);
>
> - emit_blt_mem_copy(fd, ahnd, mem);
> + emit_blt_mem_copy(fd, ahnd, mem, true);
>
> if (mem->driver == INTEL_DRIVER_XE) {
> intel_ctx_xe_exec(ctx, ahnd, CANONICAL(bb_offset));
> --
> 2.43.0
>
More information about the igt-dev
mailing list