[PATCH i-g-t 4/5] tests/intel/xe_render_copy: Expose render duration
Francois Dugast
francois.dugast at intel.com
Wed Mar 5 09:06:14 UTC 2025
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>
---
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);
}
}
}
--
2.43.0
More information about the igt-dev
mailing list