[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