[PATCH i-g-t 4/5] tests/intel/xe_render_copy: Expose render duration

Thomas Hellström thomas.hellstrom at linux.intel.com
Wed Mar 19 12:48:22 UTC 2025


On Wed, 2025-03-05 at 10:06 +0100, Francois Dugast wrote:
> If the argument duration_ns is provided (not NULL), render() writes
> into it the duration of the rendering execution, which is only a part
> of the overall function. It can be used to observe the relative
> change
> of rendering duration under various hardware stressing conditions.
> 
> Signed-off-by: Francois Dugast <francois.dugast at intel.com>
Reviewed-by: Thomas Hellström <thomas.hellstrom at linux.intel.com>

> ---
>  tests/intel/xe_render_copy.c | 10 ++++++++--
>  1 file changed, 8 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/intel/xe_render_copy.c
> b/tests/intel/xe_render_copy.c
> index ffe5f7ef1..2125e0667 100644
> --- a/tests/intel/xe_render_copy.c
> +++ b/tests/intel/xe_render_copy.c
> @@ -260,7 +260,8 @@ static const char * const testname[] = {
>  
>  static int render(struct buf_ops *bops, uint32_t tiling,
>  		  uint32_t width, uint32_t height,
> -		  enum render_copy_testtype testtype)
> +		  enum render_copy_testtype testtype,
> +		  uint64_t *duration_ns)
>  {
>  	struct intel_bb *ibb;
>  	struct intel_buf src, dst, final, grfs;
> @@ -271,6 +272,7 @@ static int render(struct buf_ops *bops, uint32_t
> tiling,
>  	int compression = testtype == COPY_FULL_COMPRESSED ?
> I915_COMPRESSION_RENDER :
>  							    
> I915_COMPRESSION_NONE;
>  	bool is_compressed;
> +	struct timespec tv;
>  	struct posrc {
>  		uint32_t x0, y0;
>  		uint32_t x1, y1;
> @@ -329,6 +331,8 @@ static int render(struct buf_ops *bops, uint32_t
> tiling,
>  	render_copy = igt_get_render_copyfunc(devid);
>  	igt_assert(render_copy);
>  
> +	if (duration_ns)
> +		igt_gettime(&tv);
>  	switch (testtype) {
>  	case COPY_SQUARE:
>  	case COPY_VSTRIPES:
> @@ -404,6 +408,8 @@ static int render(struct buf_ops *bops, uint32_t
> tiling,
>  	}
>  
>  	intel_bb_sync(ibb);
> +	if (duration_ns)
> +		*duration_ns = igt_nsec_elapsed(&tv);
>  	intel_bb_destroy(ibb);
>  
>  	if (write_png) {
> @@ -491,7 +497,7 @@ igt_main_args("dpiW:H:", NULL, help_str,
> opt_handler, NULL)
>  				tiling_name =
> blt_tiling_name(tiling);
>  				tiling =
> blt_tile_to_i915_tile(tiling);
>  				igt_dynamic_f("render-%s-%ux%u",
> tiling_name, surfwidth, surfheight)
> -					render(bops, tiling,
> surfwidth, surfheight, id);
> +					render(bops, tiling,
> surfwidth, surfheight, id, NULL);
>  			}
>  		}
>  	}



More information about the igt-dev mailing list