[igt-dev] [PATCH i-g-t] tests/kms_plane_scaling: reduce repetitive work per round
Juha-Pekka Heikkila
juhapekka.heikkila at gmail.com
Tue Jan 5 11:13:43 UTC 2021
create needed planes only when needed and not destroying them in between.
This reduces execution time for clipping clamping dynamic tests on my ICL
from 75s to 29s
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
---
tests/kms_plane_scaling.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 89b82416d..c63eb428f 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -483,19 +483,8 @@ test_plane_scaling_on_pipe(data_t *d, enum pipe pipe, igt_output_t *output)
}
static void
-__test_scaler_with_clipping_clamping_scenario(data_t *d, drmModeModeInfo *mode,
- uint32_t f1, uint32_t f2)
+__test_scaler_with_clipping_clamping_scenario(data_t *d, drmModeModeInfo *mode)
{
- cleanup_fbs(d);
-
- igt_create_pattern_fb(d->drm_fd,
- mode->hdisplay, mode->vdisplay, f1,
- LOCAL_I915_FORMAT_MOD_X_TILED, &d->fb[1]);
-
- igt_create_pattern_fb(d->drm_fd,
- mode->hdisplay, mode->vdisplay, f2,
- LOCAL_I915_FORMAT_MOD_Y_TILED, &d->fb[2]);
-
igt_plane_set_fb(d->plane1, &d->fb[1]);
igt_plane_set_fb(d->plane2, &d->fb[2]);
@@ -549,6 +538,10 @@ test_scaler_with_clipping_clamping_scenario(data_t *d, enum pipe pipe, igt_outpu
igt_vec_init(&tested_formats2, sizeof(uint32_t));
+ igt_create_pattern_fb(d->drm_fd,
+ mode->hdisplay, mode->vdisplay, f1,
+ LOCAL_I915_FORMAT_MOD_X_TILED, &d->fb[1]);
+
for (int j = 0; j < d->plane2->drm_plane->count_formats; j++) {
unsigned f2 = d->plane2->drm_plane->formats[j];
@@ -556,8 +549,15 @@ test_scaler_with_clipping_clamping_scenario(data_t *d, enum pipe pipe, igt_outpu
!can_scale(d, f2))
continue;
- __test_scaler_with_clipping_clamping_scenario(d, mode, f1, f2);
+ igt_create_pattern_fb(d->drm_fd,
+ mode->hdisplay, mode->vdisplay, f2,
+ LOCAL_I915_FORMAT_MOD_Y_TILED,
+ &d->fb[2]);
+
+ __test_scaler_with_clipping_clamping_scenario(d, mode);
+ igt_remove_fb(d->drm_fd, &d->fb[2]);
}
+ igt_remove_fb(d->drm_fd, &d->fb[1]);
igt_vec_fini(&tested_formats2);
}
--
2.28.0
More information about the igt-dev
mailing list