[PATCH i-g-t 5/8] tests/intel: replace intel_buf_init_using_handle()

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Mon Feb 12 14:33:09 UTC 2024


On Fri, Feb 09, 2024 at 06:34:30PM +0000, Matthew Auld wrote:
> Require the original object size, if the caller created the object and
> convert all existing users over.
> 
> Signed-off-by: Matthew Auld <matthew.auld at intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> ---
>  lib/intel_bufops.c                  | 17 ++++++++++-------
>  lib/intel_bufops.h                  | 17 ++++++++++-------
>  tests/intel/gem_set_tiling_vs_blt.c |  7 ++++---
>  3 files changed, 24 insertions(+), 17 deletions(-)
> 
> diff --git a/lib/intel_bufops.c b/lib/intel_bufops.c
> index 914034af6..7f72f4762 100644
> --- a/lib/intel_bufops.c
> +++ b/lib/intel_bufops.c
> @@ -1011,7 +1011,7 @@ void intel_buf_close(struct buf_ops *bops, struct intel_buf *buf)
>  }
>  
>  /**
> - * intel_buf_init_using_handle
> + * intel_buf_init_using_handle_and_size
>   * @bops: pointer to buf_ops
>   * @handle: BO handle created by the caller
>   * @buf: pointer to intel_buf structure to be filled
> @@ -1021,6 +1021,7 @@ void intel_buf_close(struct buf_ops *bops, struct intel_buf *buf)
>   * @alignment: alignment of the stride for linear surfaces
>   * @tiling: surface tiling
>   * @compression: surface compression type
> + * @size: real bo size
>   *
>   * Function configures BO handle within intel_buf structure passed by the caller
>   * (with all its metadata - width, height, ...). Useful if BO was created
> @@ -1029,14 +1030,16 @@ void intel_buf_close(struct buf_ops *bops, struct intel_buf *buf)
>   * Note: intel_buf_close() can be used because intel_buf is aware it is not
>   * buffer owner so it won't close it underneath.
>   */
> -void intel_buf_init_using_handle(struct buf_ops *bops,
> -				 uint32_t handle,
> -				 struct intel_buf *buf,
> -				 int width, int height, int bpp, int alignment,
> -				 uint32_t req_tiling, uint32_t compression)
> +void intel_buf_init_using_handle_and_size(struct buf_ops *bops,
> +					  uint32_t handle,
> +					  struct intel_buf *buf,
> +					  int width, int height, int bpp, int alignment,
> +					  uint32_t req_tiling, uint32_t compression,
> +					  uint64_t size)
>  {
> +	igt_assert(handle);

I would assert on size either.

>  	__intel_buf_init(bops, handle, buf, width, height, bpp, alignment,
> -			 req_tiling, compression, 0, 0, -1, DEFAULT_PAT_INDEX);
> +			 req_tiling, compression, size, 0, -1, DEFAULT_PAT_INDEX);
>  }
>  
>  /**
> diff --git a/lib/intel_bufops.h b/lib/intel_bufops.h
> index 54a143c5b..75ddf5d4c 100644
> --- a/lib/intel_bufops.h
> +++ b/lib/intel_bufops.h
> @@ -154,7 +154,8 @@ void intel_buf_init_using_handle(struct buf_ops *bops,
>  				 uint32_t handle,
>  				 struct intel_buf *buf,
>  				 int width, int height, int bpp, int alignment,
> -				 uint32_t req_tiling, uint32_t compression);
> +				 uint32_t req_tiling, uint32_t compression,
> +				 uint64_t size);

Hmm, is this intel_buf_init_using_handle() prototype or it should be
intel_buf_init_using_handle_and_size()? I'm not sure why this diff
looks so.

>  void intel_buf_init_full(struct buf_ops *bops,
>  			 uint32_t handle,
>  			 struct intel_buf *buf,
> @@ -172,12 +173,14 @@ struct intel_buf *intel_buf_create(struct buf_ops *bops,
>  				   int bpp, int alignment,
>  				   uint32_t req_tiling, uint32_t compression);
>  
> -struct intel_buf *intel_buf_create_using_handle(struct buf_ops *bops,
> -						uint32_t handle,
> -						int width, int height,
> -						int bpp, int alignment,
> -						uint32_t req_tiling,
> -						uint32_t compression);
> +void intel_buf_init_using_handle_and_size(struct buf_ops *bops,
> +					  uint32_t handle,
> +					  struct intel_buf *buf,
> +					  int width, int height,
> +					  int bpp, int alignment,
> +					  uint32_t req_tiling,
> +					  uint32_t compression,
> +					  uint64_t size);
>  
>  struct intel_buf *intel_buf_create_using_handle_and_size(struct buf_ops *bops,
>  							 uint32_t handle,
> diff --git a/tests/intel/gem_set_tiling_vs_blt.c b/tests/intel/gem_set_tiling_vs_blt.c
> index e9d5e3c63..9077e0f3f 100644
> --- a/tests/intel/gem_set_tiling_vs_blt.c
> +++ b/tests/intel/gem_set_tiling_vs_blt.c
> @@ -138,9 +138,10 @@ static void do_test(struct buf_ops *bops, uint32_t tiling, unsigned stride,
>  	gem_munmap(ptr, TEST_SIZE);
>  
>  	/* Reuse previously aligned in the gtt object */
> -	intel_buf_init_using_handle(bops, test_buf->handle, test_buf,
> -				    TEST_WIDTH(stride), TEST_HEIGHT(stride), 32,
> -				    0, tiling, I915_COMPRESSION_NONE);
> +	intel_buf_init_using_handle_and_size(bops, test_buf->handle, test_buf,
> +					     TEST_WIDTH(stride), TEST_HEIGHT(stride), 32,
> +					     0, tiling, I915_COMPRESSION_NONE,
> +					     test_buf->bo_size);
>  	igt_assert_eq_u32(intel_buf_size(test_buf), TEST_SIZE);
>  	intel_buf_set_ownership(test_buf, true);
>  	intel_bb_add_intel_buf(ibb, test_buf, false);
> -- 
> 2.43.0
> 

Rest is correct imo:

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

--
Zbigniew


More information about the igt-dev mailing list