[igt-dev] [PATCH i-g-t 1/3] lib/intel_batchbuffer: add create without relocs

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Fri Apr 1 06:10:50 UTC 2022


On Thu, Mar 31, 2022 at 06:34:28PM +0200, Kamil Konieczny wrote:
> There is create function with relocations, so add its
> counterpart without it.
> 
> v3: moved down after intel_bb_create_with_relocs_and_context,
>     added function description (Zbigniew review)
> v2: change to HIGH_TO_LOW allocation (Zbigniew)
> 
> Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>

Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>

--
Zbigniew
> ---
>  lib/intel_batchbuffer.c | 21 +++++++++++++++++++++
>  lib/intel_batchbuffer.h |  1 +
>  2 files changed, 22 insertions(+)
> 
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
> index 2cd472d1..ebf3c598 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -1558,6 +1558,27 @@ intel_bb_create_with_relocs_and_context(int i915, uint32_t ctx, uint32_t size)
>  				 INTEL_ALLOCATOR_NONE, ALLOC_STRATEGY_NONE);
>  }
>  
> +/**
> + * intel_bb_create_no_relocs:
> + * @i915: drm fd
> + * @size: size of the batchbuffer
> + *
> + * Creates bb with disabled relocations.
> + * This enables passing addresses and requires pinning objects.
> + *
> + * Returns:
> + *
> + * Pointer the intel_bb, asserts on failure.
> + */
> +struct intel_bb *intel_bb_create_no_relocs(int i915, uint32_t size)
> +{
> +	igt_require(gem_uses_full_ppgtt(i915));
> +
> +	return __intel_bb_create(i915, 0, size, false, 0, 0,
> +				 INTEL_ALLOCATOR_SIMPLE,
> +				 ALLOC_STRATEGY_HIGH_TO_LOW);
> +}
> +
>  static void __intel_bb_destroy_relocations(struct intel_bb *ibb)
>  {
>  	uint32_t i;
> diff --git a/lib/intel_batchbuffer.h b/lib/intel_batchbuffer.h
> index 75d41ea3..36b6b61d 100644
> --- a/lib/intel_batchbuffer.h
> +++ b/lib/intel_batchbuffer.h
> @@ -526,6 +526,7 @@ intel_bb_create_with_context(int i915, uint32_t ctx, uint32_t size);
>  struct intel_bb *intel_bb_create_with_relocs(int i915, uint32_t size);
>  struct intel_bb *
>  intel_bb_create_with_relocs_and_context(int i915, uint32_t ctx, uint32_t size);
> +struct intel_bb *intel_bb_create_no_relocs(int i915, uint32_t size);
>  void intel_bb_destroy(struct intel_bb *ibb);
>  
>  /* make it safe to use intel_allocator after failed test */
> -- 
> 2.32.0
> 


More information about the igt-dev mailing list