All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [igt-dev] [v7 6/8] tests/kms_plane_scaling: Add negative test to check num of scalers
  2022-02-25 14:44 ` [igt-dev] [v7 6/8] tests/kms_plane_scaling: Add negative test to check num of scalers Swati Sharma
@ 2022-02-25 14:41   ` Petri Latvala
  2022-02-25 15:50     ` Petri Latvala
  0 siblings, 1 reply; 14+ messages in thread
From: Petri Latvala @ 2022-02-25 14:41 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

On Fri, Feb 25, 2022 at 08:14:34PM +0530, Swati Sharma wrote:
> To validate i915 supports max of 2 scalers, applied upscaling on
> 3 planes simultaneously. This is a negative test and commit is expected
> to fail.
> 
> v2: -add check for min 2 scalers
>     -add igt_require() for overlay planes, fixes CRASH on KBL
> v3: -rebase
> 
> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> ---
>  tests/kms_plane_scaling.c | 73 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 73 insertions(+)
> 
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 6fc10d59..5df9ba24 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -652,6 +652,71 @@ test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
>  	igt_remove_fb(display->drm_fd, &d->fb[2]);
>  }
>  
> +static void
> +test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output)
> +{
> +	igt_display_t *display = &d->display;
> +	igt_pipe_t *pipe_obj = &display->pipes[pipe];
> +	int width, height, width1, height1;
> +	drmModeModeInfo *mode;
> +
> +	cleanup_crtc(d);
> +
> +	igt_output_set_pipe(output, pipe);
> +
> +	width = height = 20;
> +	mode = igt_output_get_mode(output);
> +	width1 = mode->hdisplay;
> +	height1 = mode->vdisplay;
> +
> +	d->plane1 = igt_pipe_get_plane_type_index(pipe_obj, DRM_PLANE_TYPE_OVERLAY, 0);
> +	igt_require(d->plane1);
> +	d->plane2 = igt_pipe_get_plane_type_index(pipe_obj, DRM_PLANE_TYPE_OVERLAY, 1);
> +	igt_require(d->plane2);
> +	d->plane3 = igt_pipe_get_plane_type_index(pipe_obj, DRM_PLANE_TYPE_OVERLAY, 2);
> +	igt_require(d->plane3);
> +
> +	igt_create_color_pattern_fb(display->drm_fd,
> +                                    width, height,
> +                                    DRM_FORMAT_XRGB8888,
> +                                    I915_TILING_NONE,
> +                                    1.0, 0.0, 0.0, &d->fb[1]);
> +	igt_create_color_pattern_fb(display->drm_fd,
> +                                    width, height,
> +                                    DRM_FORMAT_XRGB8888,
> +                                    I915_TILING_NONE,
> +                                    0.0, 1.0, 0.0, &d->fb[2]);
> +	igt_create_color_pattern_fb(display->drm_fd,
> +                                    width, height,
> +                                    DRM_FORMAT_XRGB8888,
> +                                    I915_TILING_NONE,
> +                                    0.0, 0.0, 1.0, &d->fb[3]);
> +
> +	igt_plane_set_fb(d->plane1, &d->fb[1]);
> +	igt_plane_set_fb(d->plane2, &d->fb[2]);
> +	igt_plane_set_fb(d->plane3, &d->fb[3]);
> +
> +	/* first plane upscaling */
> +	igt_plane_set_size(d->plane1, width1, height1);
> +	/* second plane upscaling */
> +	igt_plane_set_size(d->plane2, width1, height1);
> +	/* third plane upscaling */
> +	igt_plane_set_size(d->plane3, width1, height1);
> +
> +	/* This commit is expectd to fail as we can have max 2 scalers/pipe
> +	 * In dmesg, you can find: Too many scaling requests 3 > 2
> +	 * */

That assumption only holds for i915 devices, and that can possibly
change in the future.

As the goal is to test that too many scalings is rejected with EINVAL,
this assumption needs to be written down:

igt_require(get_num_scalers(d, pipe) < 3);

done preferably before creating the fbs to save some time.


-- 
Petri Latvala



> +	igt_assert_eq(igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL), -EINVAL);
> +
> +	/* cleanup */
> +	igt_plane_set_fb(d->plane1, NULL);
> +	igt_plane_set_fb(d->plane2, NULL);
> +	igt_plane_set_fb(d->plane3, NULL);
> +	igt_remove_fb(display->drm_fd, &d->fb[1]);
> +	igt_remove_fb(display->drm_fd, &d->fb[2]);
> +	igt_remove_fb(display->drm_fd, &d->fb[3]);
> +}
> +
>  static void test_scaler_with_multi_pipe_plane(data_t *d)
>  {
>  	igt_display_t *display = &d->display;
> @@ -990,6 +1055,14 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>  				}
>  			}
>  		}
> +
> +		igt_describe("Negative test for number of scalers per pipe.");
> +		igt_subtest_with_dynamic("invalid-num-scalers") {
> +			for_each_pipe_with_valid_output(&data.display, pipe, output)
> +				igt_dynamic_f("pipe-%s-%s-invalid-num-scalers",
> +					       kmstest_pipe_name(pipe), igt_output_name(output))
> +					test_invalid_num_scalers(&data, pipe, output);
> +		}
>  	}
>  
>  	igt_describe("Tests scaling with multi-pipe scenario.");
> -- 
> 2.25.1
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [igt-dev] [v7 0/8] Addition of new plane scaling test cases
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
@ 2022-02-25 14:42 ` Petri Latvala
  2022-02-25 14:44 ` [igt-dev] [v7 1/8] tests/kms_plane_scaling: Removal of plane-scaling subtest Swati Sharma
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Petri Latvala @ 2022-02-25 14:42 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

On Fri, Feb 25, 2022 at 08:14:28PM +0530, Swati Sharma wrote:
> In this series, combination of downscaling and upscaling
> testcases are added. Also, code refactoring is done for
> existing code.
> 
>     v2:-minor fixes, to prevent CI crashes
>     v3:-added subtests for testing upscaling/downscaling for
>         each plane individually (Ville)
>        -modified existing subtests for each N plane scaling
>         combo (Ville)
>     v4:-removal of i915sm (Ville)
>        -code reusablity (Ville)
>     v5:-use enum (Viile)
>        -limit while loop (Ville)
>        -add assert for fail/pass (Ville)
>        -added primary plane for testing (Ville)
>     v6:-after rebase, made changes accordingly to make
>         test cases consistent and for better coverage (Petri)
>     v7:-renaming of existing tests
>        -added 0.75 scaling factor downscaling tests (Petri)
> 
> Swati Sharma (8):
>   tests/kms_plane_scaling: Removal of plane-scaling subtest
>   tests/kms_plane_scaling: Minor changes with existing tests
>   tests/kms_plane_scaling: Upscaling on 2 planes
>   tests/kms_plane_scaling: Downscaling on 2 planes
>   tests/kms_plane_scaling: Upscaling and downscaling scenario
>   tests/kms_plane_scaling: Add negative test to check num of scalers
>   tests/kms_plane_scaling: Refactor clipping-clamping subtest
>   tests/kms_plane_scaling: Cleanup
> 
>  tests/kms_plane_scaling.c | 790 ++++++++++++++++++++++----------------
>  1 file changed, 463 insertions(+), 327 deletions(-)
> 
> -- 
> 2.25.1
> 


One comment made on one patch, with that addressed the series is
Reviewed-by: Petri Latvala <petri.latvala@intel.com>

as long as CI doesn't choke on this.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [igt-dev] [v7 0/8] Addition of new plane scaling test cases
@ 2022-02-25 14:44 Swati Sharma
  2022-02-25 14:42 ` Petri Latvala
                   ` (10 more replies)
  0 siblings, 11 replies; 14+ messages in thread
From: Swati Sharma @ 2022-02-25 14:44 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

In this series, combination of downscaling and upscaling
testcases are added. Also, code refactoring is done for
existing code.

    v2:-minor fixes, to prevent CI crashes
    v3:-added subtests for testing upscaling/downscaling for
        each plane individually (Ville)
       -modified existing subtests for each N plane scaling
        combo (Ville)
    v4:-removal of i915sm (Ville)
       -code reusablity (Ville)
    v5:-use enum (Viile)
       -limit while loop (Ville)
       -add assert for fail/pass (Ville)
       -added primary plane for testing (Ville)
    v6:-after rebase, made changes accordingly to make
        test cases consistent and for better coverage (Petri)
    v7:-renaming of existing tests
       -added 0.75 scaling factor downscaling tests (Petri)

Swati Sharma (8):
  tests/kms_plane_scaling: Removal of plane-scaling subtest
  tests/kms_plane_scaling: Minor changes with existing tests
  tests/kms_plane_scaling: Upscaling on 2 planes
  tests/kms_plane_scaling: Downscaling on 2 planes
  tests/kms_plane_scaling: Upscaling and downscaling scenario
  tests/kms_plane_scaling: Add negative test to check num of scalers
  tests/kms_plane_scaling: Refactor clipping-clamping subtest
  tests/kms_plane_scaling: Cleanup

 tests/kms_plane_scaling.c | 790 ++++++++++++++++++++++----------------
 1 file changed, 463 insertions(+), 327 deletions(-)

-- 
2.25.1

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [igt-dev] [v7 1/8] tests/kms_plane_scaling: Removal of plane-scaling subtest
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
  2022-02-25 14:42 ` Petri Latvala
@ 2022-02-25 14:44 ` Swati Sharma
  2022-02-25 14:44 ` [igt-dev] [v7 2/8] tests/kms_plane_scaling: Minor changes with existing tests Swati Sharma
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Swati Sharma @ 2022-02-25 14:44 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

The test case has dead code, primary_plane_scaling is always 0.
Also, upscaling and downscaling scenarios seems little bit messy.
Lets simplify those scenarios by introducing new subtests covering both
upscaling and downscaling.

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 179 --------------------------------------
 1 file changed, 179 deletions(-)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index bd1bc073..ac39d37b 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -355,178 +355,6 @@ static void test_scaler_with_pixel_format_pipe(data_t *d, int width, int height,
 	}
 }
 
-/* does iterative scaling on plane2 */
-static void iterate_plane_scaling(data_t *d, drmModeModeInfo *mode)
-{
-	igt_display_t *display = &d->display;
-
-	if (mode->hdisplay >= d->fb[1].width) {
-		int w, h;
-		/* fixed fb */
-		igt_fb_set_position(&d->fb[1], d->plane2, 0, 0);
-		igt_fb_set_size(&d->fb[1], d->plane2, d->fb[1].width, d->fb[1].height);
-		igt_plane_set_position(d->plane2, 0, 0);
-
-		/* adjust plane size */
-		for (w = d->fb[1].width; w <= mode->hdisplay; w+=10) {
-			h = w * d->fb[1].height / d->fb[1].width;
-			igt_plane_set_size(d->plane2, w, h);
-			igt_display_commit2(display, COMMIT_ATOMIC);
-		}
-	} else {
-		int w, h;
-		/* fixed plane */
-		igt_plane_set_position(d->plane2, 0, 0);
-		igt_plane_set_size(d->plane2, mode->hdisplay, mode->vdisplay);
-		igt_fb_set_position(&d->fb[1], d->plane2, 0, 0);
-
-		/* adjust fb size */
-		for (w = mode->hdisplay; w <= d->fb[1].width; w+=10) {
-			/* Source coordinates must not be clipped. */
-			h = min(w * mode->hdisplay / mode->vdisplay, d->fb[1].height);
-			igt_fb_set_size(&d->fb[1], d->plane2, w, h);
-			igt_display_commit2(display, COMMIT_ATOMIC);
-		}
-	}
-}
-
-static void
-test_plane_scaling_on_pipe(data_t *d, enum pipe pipe, igt_output_t *output)
-{
-	igt_display_t *display = &d->display;
-	igt_pipe_t *pipe_obj = &display->pipes[pipe];
-	drmModeModeInfo *mode;
-	int primary_plane_scaling = 0; /* For now */
-	uint64_t modifier = is_i915_device(display->drm_fd) ?
-		I915_FORMAT_MOD_X_TILED : DRM_FORMAT_MOD_LINEAR;
-
-	igt_require(get_num_scalers(d, pipe) > 0);
-
-	igt_skip_on(!igt_display_has_format_mod(display, DRM_FORMAT_XRGB8888,
-						modifier));
-
-	mode = igt_output_get_mode(output);
-
-	/* Set up display with plane 1 */
-	d->plane1 = igt_pipe_get_plane_type(pipe_obj, DRM_PLANE_TYPE_PRIMARY);
-	prepare_crtc(d, output, pipe, d->plane1, mode);
-
-	igt_create_color_pattern_fb(display->drm_fd, 600, 600,
-				    DRM_FORMAT_XRGB8888,
-				    modifier,
-				    .5, .5, .5, &d->fb[1]);
-
-	igt_create_pattern_fb(d->drm_fd,
-			      mode->hdisplay, mode->vdisplay,
-			      DRM_FORMAT_XRGB8888,
-			      modifier,
-			      &d->fb[2]);
-
-	if (primary_plane_scaling) {
-		/* Primary plane upscaling */
-		igt_fb_set_position(&d->fb[0], d->plane1, 100, 100);
-		igt_fb_set_size(&d->fb[0], d->plane1, 500, 500);
-		igt_plane_set_position(d->plane1, 0, 0);
-		igt_plane_set_size(d->plane1, mode->hdisplay, mode->vdisplay);
-		igt_display_commit2(display, COMMIT_ATOMIC);
-
-		/* Primary plane 1:1 no scaling */
-		igt_fb_set_position(&d->fb[0], d->plane1, 0, 0);
-		igt_fb_set_size(&d->fb[0], d->plane1, d->fb[0].width, d->fb[0].height);
-		igt_plane_set_position(d->plane1, 0, 0);
-		igt_plane_set_size(d->plane1, mode->hdisplay, mode->vdisplay);
-		igt_display_commit2(display, COMMIT_ATOMIC);
-	}
-
-	/* Set up fb[1]->plane2 mapping. */
-	d->plane2 = igt_pipe_get_plane_type_index(pipe_obj,
-						  DRM_PLANE_TYPE_OVERLAY, 0);
-
-	if (!d->plane2) {
-		igt_debug("Plane-2 doesnt exist on pipe %s\n", kmstest_pipe_name(pipe));
-		return;
-	}
-
-	igt_plane_set_fb(d->plane2, &d->fb[1]);
-
-	/* 2nd plane windowed */
-	igt_fb_set_position(&d->fb[1], d->plane2, 100, 100);
-	igt_fb_set_size(&d->fb[1], d->plane2, d->fb[1].width-200, d->fb[1].height-200);
-	igt_plane_set_position(d->plane2, 100, 100);
-	igt_plane_set_size(d->plane2, mode->hdisplay-200, mode->vdisplay-200);
-	igt_display_commit2(display, COMMIT_ATOMIC);
-
-	iterate_plane_scaling(d, mode);
-
-	/* 2nd plane up scaling */
-	igt_fb_set_position(&d->fb[1], d->plane2, 100, 100);
-	igt_fb_set_size(&d->fb[1], d->plane2, 500, 500);
-	igt_plane_set_position(d->plane2, 10, 10);
-	igt_plane_set_size(d->plane2, mode->hdisplay-20, mode->vdisplay-20);
-	igt_display_commit2(display, COMMIT_ATOMIC);
-
-	/* 2nd plane downscaling */
-	igt_fb_set_position(&d->fb[1], d->plane2, 0, 0);
-	igt_fb_set_size(&d->fb[1], d->plane2, d->fb[1].width, d->fb[1].height);
-	igt_plane_set_position(d->plane2, 10, 10);
-
-	/* Downscale (10/9)x of original image */
-	igt_plane_set_size(d->plane2, (d->fb[1].width * 10)/9, (d->fb[1].height * 10)/9);
-	igt_display_commit2(display, COMMIT_ATOMIC);
-
-	if (primary_plane_scaling) {
-		/* Primary plane up scaling */
-		igt_fb_set_position(&d->fb[0], d->plane1, 100, 100);
-		igt_fb_set_size(&d->fb[0], d->plane1, 500, 500);
-		igt_plane_set_position(d->plane1, 0, 0);
-		igt_plane_set_size(d->plane1, mode->hdisplay, mode->vdisplay);
-		igt_display_commit2(display, COMMIT_ATOMIC);
-	}
-
-	/* Set up fb[2]->plane3 mapping. */
-	d->plane3 = igt_pipe_get_plane_type_index(pipe_obj,
-						  DRM_PLANE_TYPE_OVERLAY, 1);
-	if(!d->plane3) {
-		igt_debug("Plane-3 doesnt exist on pipe %s\n", kmstest_pipe_name(pipe));
-		return;
-	}
-
-	igt_plane_set_fb(d->plane3, &d->fb[2]);
-
-	/* 3rd plane windowed - no scaling */
-	igt_fb_set_position(&d->fb[2], d->plane3, 100, 100);
-	igt_fb_set_size(&d->fb[2], d->plane3, d->fb[2].width-300, d->fb[2].height-300);
-	igt_plane_set_position(d->plane3, 100, 100);
-	igt_plane_set_size(d->plane3, mode->hdisplay-300, mode->vdisplay-300);
-	igt_display_commit2(display, COMMIT_ATOMIC);
-
-	/* Switch scaler from plane 2 to plane 3 */
-	igt_fb_set_position(&d->fb[1], d->plane2, 100, 100);
-	igt_fb_set_size(&d->fb[1], d->plane2, d->fb[1].width-200, d->fb[1].height-200);
-	igt_plane_set_position(d->plane2, 100, 100);
-	igt_plane_set_size(d->plane2, d->fb[1].width-200, d->fb[1].height-200);
-
-	igt_fb_set_position(&d->fb[2], d->plane3, 100, 100);
-	igt_fb_set_size(&d->fb[2], d->plane3, d->fb[2].width-400, d->fb[2].height-400);
-	igt_plane_set_position(d->plane3, 10, 10);
-	igt_plane_set_size(d->plane3, mode->hdisplay-300, mode->vdisplay-300);
-	igt_display_commit2(display, COMMIT_ATOMIC);
-
-	if (primary_plane_scaling) {
-		/* Switch scaler from plane 1 to plane 2 */
-		igt_fb_set_position(&d->fb[0], d->plane1, 0, 0);
-		igt_fb_set_size(&d->fb[0], d->plane1, d->fb[0].width, d->fb[0].height);
-		igt_plane_set_position(d->plane1, 0, 0);
-		igt_plane_set_size(d->plane1, mode->hdisplay, mode->vdisplay);
-
-		igt_fb_set_position(&d->fb[1], d->plane2, 100, 100);
-		igt_fb_set_size(&d->fb[1], d->plane2, d->fb[1].width-500,d->fb[1].height-500);
-		igt_plane_set_position(d->plane2, 100, 100);
-		igt_plane_set_size(d->plane2, mode->hdisplay-200, mode->vdisplay-200);
-		igt_display_commit2(display, COMMIT_ATOMIC);
-	}
-}
-
 static void
 __test_scaler_with_clipping_clamping_scenario(data_t *d, drmModeModeInfo *mode)
 {
@@ -751,13 +579,6 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 	igt_subtest_group {
 		igt_output_t *output;
 
-		igt_describe("Tests plane scaling per pipe.");
-		igt_subtest_with_dynamic("plane-scaling") {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-plane-scaling", kmstest_pipe_name(pipe))
-					test_plane_scaling_on_pipe(&data, pipe, output);
-		}
-
 		igt_describe("Tests upscaling with pixel formats, from 20x20 fb.");
 		igt_subtest_with_dynamic("upscale-with-pixel-format-20x20") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] [v7 2/8] tests/kms_plane_scaling: Minor changes with existing tests
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
  2022-02-25 14:42 ` Petri Latvala
  2022-02-25 14:44 ` [igt-dev] [v7 1/8] tests/kms_plane_scaling: Removal of plane-scaling subtest Swati Sharma
@ 2022-02-25 14:44 ` Swati Sharma
  2022-02-25 14:44 ` [igt-dev] [v7 3/8] tests/kms_plane_scaling: Upscaling on 2 planes Swati Sharma
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Swati Sharma @ 2022-02-25 14:44 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

In this patch,
	-output name is added to dynamic subtests
	-rename of existing tests
	-change in multiplier

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 77 ++++++++++++++++++++-------------------
 1 file changed, 40 insertions(+), 37 deletions(-)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index ac39d37b..5f608acd 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -145,10 +145,10 @@ static void check_scaling_pipe_plane_rot(data_t *d, igt_plane_t *plane,
 
 	if (is_upscale)
 		igt_create_color_fb(display->drm_fd, width, height,
-		       	pixel_format, modifier, 0.0, 1.0, 0.0, &d->fb[0]);
+			pixel_format, modifier, 0.0, 1.0, 0.0, &d->fb[0]);
 	else
 		igt_create_color_fb(display->drm_fd, mode->hdisplay, mode->vdisplay,
-		       	pixel_format, modifier, 0.0, 1.0, 0.0, &d->fb[0]);
+			pixel_format, modifier, 0.0, 1.0, 0.0, &d->fb[0]);
 
 
 	igt_plane_set_fb(plane, &d->fb[0]);
@@ -582,47 +582,49 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		igt_describe("Tests upscaling with pixel formats, from 20x20 fb.");
 		igt_subtest_with_dynamic("upscale-with-pixel-format-20x20") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-upscale-with-pixel-format", kmstest_pipe_name(pipe))
+				igt_dynamic_f("pipe-%s-%s-upscale-with-pixel-format", kmstest_pipe_name(pipe), igt_output_name(output))
 					test_scaler_with_pixel_format_pipe(&data, 20, 20, true, pipe, output);
 		}
 
-		igt_describe("Tests upscaling with pixel formats, scaling factor 4.");
-		igt_subtest_with_dynamic("upscale-with-pixel-format-factor-4") {
+		igt_describe("Tests upscaling with pixel formats for 0.25 scaling factor.");
+		igt_subtest_with_dynamic("upscale-with-pixel-format-factor-0-25") {
 			for_each_pipe_with_single_output(&data.display, pipe, output) {
 				drmModeModeInfo *mode;
 
 				mode = igt_output_get_mode(output);
 
-				igt_dynamic_f("pipe-%s-upscale-with-pixel-format", kmstest_pipe_name(pipe))
-					test_scaler_with_pixel_format_pipe(&data, mode->hdisplay / 4,
-							mode->vdisplay / 4, true, pipe, output);
+				igt_dynamic_f("pipe-%s-%s-upscale-with-pixel-format", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_scaler_with_pixel_format_pipe(&data, 0.25 * mode->hdisplay,
+							0.25 * mode->vdisplay, true, pipe, output);
 			}
 		}
 
-		igt_describe("Tests downscaling with pixel formats, scaling factor 4.");
-		igt_subtest_with_dynamic("downscale-with-pixel-format-factor-4") {
+		igt_describe("Tests downscaling with pixel formats for 0.25 scaling factor.");
+		igt_subtest_with_dynamic("downscale-with-pixel-format-factor-0-25") {
 			for_each_pipe_with_single_output(&data.display, pipe, output) {
 				drmModeModeInfo *mode;
 
 				mode = igt_output_get_mode(output);
-				igt_dynamic_f("pipe-%s-downscale-with-pixel-format", kmstest_pipe_name(pipe))
-					test_scaler_with_pixel_format_pipe(&data, mode->hdisplay / 4,
-							mode->vdisplay / 4, false, pipe, output);
+
+				igt_dynamic_f("pipe-%s-%s-downscale-with-pixel-format", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_scaler_with_pixel_format_pipe(&data, 0.25 * mode->hdisplay,
+							0.25 * mode->vdisplay, false, pipe, output);
 			}
 		}
 
-		igt_describe("Tests downscaling with pixel formats, scaling factor 2.");
-		igt_subtest_with_dynamic("downscale-with-pixel-format-factor-2") {
+		igt_describe("Tests downscaling with pixel formats for 0.5 scaling factor.");
+		igt_subtest_with_dynamic("downscale-with-pixel-format-factor-0-5") {
 			for_each_pipe_with_single_output(&data.display, pipe, output) {
 				drmModeModeInfo *mode;
 
 				mode = igt_output_get_mode(output);
 
-				igt_dynamic_f("pipe-%s-downscale-with-pixel-format", kmstest_pipe_name(pipe))
-					test_scaler_with_pixel_format_pipe(&data, mode->hdisplay / 2,
-							mode->vdisplay / 2, false, pipe, output);
+				igt_dynamic_f("pipe-%s-%s-downscale-with-pixel-format", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_scaler_with_pixel_format_pipe(&data, 0.5 * mode->hdisplay,
+							0.5 * mode->vdisplay, false, pipe, output);
 			}
 		}
+
 		igt_describe("Tests scaling with pixel formats, unity scaling.");
 		igt_subtest_with_dynamic("scaler-with-pixel-format-unity-scaling") {
 			for_each_pipe_with_single_output(&data.display, pipe, output) {
@@ -630,7 +632,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 
 				mode = igt_output_get_mode(output);
 
-				igt_dynamic_f("pipe-%s-scaler-with-pixel-format", kmstest_pipe_name(pipe))
+				igt_dynamic_f("pipe-%s-%s-scaler-with-pixel-format", kmstest_pipe_name(pipe), igt_output_name(output))
 					test_scaler_with_pixel_format_pipe(&data, mode->hdisplay,
 							mode->vdisplay, true, pipe, output);
 			}
@@ -639,48 +641,49 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		igt_describe("Tests upscaling with tiling rotation, from 20x20 fb.");
 		igt_subtest_with_dynamic("upscale-with-rotation-20x20") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-upscale-with-rotation", kmstest_pipe_name(pipe))
+				igt_dynamic_f("pipe-%s-%s-upscale-with-rotation", kmstest_pipe_name(pipe), igt_output_name(output))
 					test_scaler_with_rotation_pipe(&data, 20, 20, true, pipe, output);
 		}
 
-		igt_describe("Tests upscaling with tiling rotation, scaling factor 4.");
-		igt_subtest_with_dynamic("upscale-with-rotation-factor-4") {
+		igt_describe("Tests upscaling with tiling rotation for 0.25 scaling factor.");
+		igt_subtest_with_dynamic("upscale-with-rotation-factor-0-25") {
 			for_each_pipe_with_single_output(&data.display, pipe, output) {
 				drmModeModeInfo *mode;
 
 				mode = igt_output_get_mode(output);
 
-				igt_dynamic_f("pipe-%s-upscale-with-rotation", kmstest_pipe_name(pipe))
-					test_scaler_with_rotation_pipe(&data, mode->hdisplay / 4,
-							mode->vdisplay / 4, true, pipe, output);
+				igt_dynamic_f("pipe-%s-%s-upscale-with-rotation", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_scaler_with_rotation_pipe(&data, 0.25 * mode->hdisplay,
+							0.25 * mode->vdisplay, true, pipe, output);
 			}
 		}
 
-		igt_describe("Tests downscaling with tiling rotation, scaling factor 4.");
-		igt_subtest_with_dynamic("downscale-with-rotation-factor-4") {
+		igt_describe("Tests downscaling with tiling rotation for 0.25 scaling factor");
+		igt_subtest_with_dynamic("downscale-with-rotation-factor-0-25") {
 			for_each_pipe_with_single_output(&data.display, pipe, output) {
 				drmModeModeInfo *mode;
 
 				mode = igt_output_get_mode(output);
 
-				igt_dynamic_f("pipe-%s-downscale-with-rotation", kmstest_pipe_name(pipe))
-					test_scaler_with_rotation_pipe(&data, mode->hdisplay / 4,
-							mode->vdisplay / 4, false, pipe, output);
+				igt_dynamic_f("pipe-%s-%s-downscale-with-rotation", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_scaler_with_rotation_pipe(&data, 0.25 * mode->hdisplay,
+							0.25 * mode->vdisplay, false, pipe, output);
 			}
 		}
 
-		igt_describe("Tests downscaling with tiling rotation, scaling factor 2.");
-		igt_subtest_with_dynamic("downscale-with-rotation-factor-2") {
+		igt_describe("Tests downscaling with tiling rotation for 0.5 scaling factor.");
+		igt_subtest_with_dynamic("downscale-with-rotation-factor-0-5") {
 			for_each_pipe_with_single_output(&data.display, pipe, output) {
 				drmModeModeInfo *mode;
 
 				mode = igt_output_get_mode(output);
 
-				igt_dynamic_f("pipe-%s-downscale-with-rotation", kmstest_pipe_name(pipe))
-					test_scaler_with_rotation_pipe(&data, mode->hdisplay / 2,
-							mode->vdisplay / 2, false, pipe, output);
+				igt_dynamic_f("pipe-%s-%s-downscale-with-rotation", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_scaler_with_rotation_pipe(&data, 0.5 * mode->hdisplay,
+							0.5 * mode->vdisplay, false, pipe, output);
 			}
 		}
+
 		igt_describe("Tests scaling with tiling rotation, unity scaling.");
 		igt_subtest_with_dynamic("scaler-with-rotation-unity-scaling") {
 			for_each_pipe_with_single_output(&data.display, pipe, output) {
@@ -688,7 +691,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 
 				mode = igt_output_get_mode(output);
 
-				igt_dynamic_f("pipe-%s-scaler-with-rotation", kmstest_pipe_name(pipe))
+				igt_dynamic_f("pipe-%s-%s-scaler-with-rotation", kmstest_pipe_name(pipe), igt_output_name(output))
 					test_scaler_with_rotation_pipe(&data, mode->hdisplay,
 							mode->vdisplay, true, pipe, output);
 			}
@@ -697,7 +700,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		igt_describe("Tests scaling with clipping and clamping.");
 		igt_subtest_with_dynamic("scaler-with-clipping-clamping") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-scaler-with-clipping-clamping", kmstest_pipe_name(pipe))
+				igt_dynamic_f("pipe-%s-%s-scaler-with-clipping-clamping", kmstest_pipe_name(pipe), igt_output_name(output))
 					test_scaler_with_clipping_clamping_scenario(&data, pipe, output);
 		}
 	}
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] [v7 3/8] tests/kms_plane_scaling: Upscaling on 2 planes
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
                   ` (2 preceding siblings ...)
  2022-02-25 14:44 ` [igt-dev] [v7 2/8] tests/kms_plane_scaling: Minor changes with existing tests Swati Sharma
@ 2022-02-25 14:44 ` Swati Sharma
  2022-02-25 14:44 ` [igt-dev] [v7 4/8] tests/kms_plane_scaling: Downscaling " Swati Sharma
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Swati Sharma @ 2022-02-25 14:44 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

i915 driver supports 2 scalers per pipe. Added test case
to upscale 2 planes simultaneously on single pipe.

v2: -add check for min 2 scalers
    -add igt_require() for overlay planes, fixes CRASH on KBL
v3: -test modified for n planes (Ville)
v4: -modularized the code
    -removed i915 dependency (Ville)
v5: -added primary plane back (Ville)
    -whitespace fixed (Ville)
v6: -rebase
    -modified tests after rebase for consistency and more coverage
    (Petri)
v7: -renaming tests

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 121 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 121 insertions(+)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 5f608acd..706a09ad 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -29,6 +29,10 @@
 
 IGT_TEST_DESCRIPTION("Test display plane scaling");
 
+enum scaler_combo_test_type {
+	TEST_PLANES_UPSCALE = 0,
+};
+
 typedef struct {
 	uint32_t devid;
 	int drm_fd;
@@ -467,6 +471,85 @@ static void find_connected_pipe(igt_display_t *display, bool second, enum pipe *
 		igt_require_f(found, "No valid outputs found\n");
 }
 
+static void
+__test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
+			    enum pipe pipe, igt_output_t *output,
+			    igt_plane_t *p1, igt_plane_t *p2,
+			    struct igt_fb *fb1, struct igt_fb *fb2,
+			    enum scaler_combo_test_type test_type)
+{
+	igt_display_t *display = &d->display;
+	drmModeModeInfo *mode;
+	int ret;
+
+	mode = igt_output_get_mode(output);
+
+	igt_plane_set_fb(p1, fb1);
+	igt_plane_set_fb(p2, fb2);
+
+	if (test_type == TEST_PLANES_UPSCALE) {
+		/* first plane upscaling */
+		igt_plane_set_size(p1, mode->hdisplay, mode->vdisplay);
+		/* second plane upscaling */
+		igt_plane_set_size(p2, mode->hdisplay - 20, mode->vdisplay - 20);
+	}
+
+	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+
+	igt_plane_set_fb(p1, NULL);
+	igt_plane_set_fb(p2, NULL);
+
+	igt_skip_on_f(ret == -EINVAL || ret == -ERANGE, "Scaling op not supported by driver\n");
+	igt_assert_eq(ret, 0);
+}
+
+static void setup_fb(int fd, int width, int height,
+		     double r, double g, double b,
+		     struct igt_fb *fb)
+{
+	igt_create_color_pattern_fb(fd, width, height,
+				    DRM_FORMAT_XRGB8888,
+				    I915_TILING_NONE,
+				    r, g, b, fb);
+}
+
+static void
+test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
+			  enum pipe pipe, igt_output_t *output,
+			  enum scaler_combo_test_type test_type)
+{
+	igt_display_t *display = &d->display;
+
+	cleanup_crtc(d);
+
+	igt_output_set_pipe(output, pipe);
+
+	if (test_type == TEST_PLANES_UPSCALE) {
+		setup_fb(display->drm_fd, w1, h1, 1.0, 0.0, 0.0, &d->fb[1]);
+		setup_fb(display->drm_fd, w2, h2, 0.0, 1.0, 0.0, &d->fb[2]);
+	}
+
+	for (int k = 0; k < display->pipes[pipe].n_planes; k++) {
+		igt_plane_t *p1, *p2;
+
+		p1 = &display->pipes[pipe].planes[k];
+		igt_require(p1);
+		p2 = &display->pipes[pipe].planes[k+1];
+		igt_require(p2);
+
+		if (p1->type == DRM_PLANE_TYPE_CURSOR || p2->type == DRM_PLANE_TYPE_CURSOR)
+				continue;
+
+		__test_planes_scaling_combo(d, w1, h1, w2, h2,
+					    pipe, output, p1, p2,
+					    &d->fb[1], &d->fb[2],
+					    test_type);
+	}
+
+	igt_remove_fb(display->drm_fd, &d->fb[1]);
+	igt_remove_fb(display->drm_fd, &d->fb[2]);
+}
+
 static void test_scaler_with_multi_pipe_plane(data_t *d)
 {
 	igt_display_t *display = &d->display;
@@ -703,6 +786,44 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 				igt_dynamic_f("pipe-%s-%s-scaler-with-clipping-clamping", kmstest_pipe_name(pipe), igt_output_name(output))
 					test_scaler_with_clipping_clamping_scenario(&data, pipe, output);
 		}
+
+		igt_describe("Tests upscaling of 2 planes, from 20x20 fb.");
+		igt_subtest_with_dynamic("planes-upscale-20x20") {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-upscale", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_planes_scaling_combo(&data, 20, 20, 20, 20,
+							pipe, output, TEST_PLANES_UPSCALE);
+		}
+
+		igt_describe("Tests upscaling of 2 planes for 0.25 scaling factor.");
+		igt_subtest_with_dynamic("planes-upscale-factor-0-25") {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-upscale", kmstest_pipe_name(pipe), igt_output_name(output)) {
+					drmModeModeInfo *mode;
+
+					mode = igt_output_get_mode(output);
+
+					test_planes_scaling_combo(&data,
+							0.25 * mode->hdisplay, 0.25 * mode->vdisplay,
+							0.25 * mode->hdisplay, 0.25 * mode->vdisplay,
+							pipe, output, TEST_PLANES_UPSCALE);
+				}
+		}
+
+		igt_describe("Tests scaling of 2 planes, unity scaling.");
+		igt_subtest_with_dynamic("planes-scaling-unity-scaling") {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-unity-scaling", kmstest_pipe_name(pipe), igt_output_name(output)) {
+					drmModeModeInfo *mode;
+
+					mode = igt_output_get_mode(output);
+
+					test_planes_scaling_combo(&data,
+							mode->hdisplay, mode->vdisplay,
+							mode->hdisplay, mode->vdisplay,
+							pipe, output, TEST_PLANES_UPSCALE);
+				}
+		}
 	}
 
 	igt_describe("Tests scaling with multi-pipe scenario.");
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] [v7 4/8] tests/kms_plane_scaling: Downscaling on 2 planes
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
                   ` (3 preceding siblings ...)
  2022-02-25 14:44 ` [igt-dev] [v7 3/8] tests/kms_plane_scaling: Upscaling on 2 planes Swati Sharma
@ 2022-02-25 14:44 ` Swati Sharma
  2022-02-25 14:44 ` [igt-dev] [v7 5/8] tests/kms_plane_scaling: Upscaling and downscaling scenario Swati Sharma
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Swati Sharma @ 2022-02-25 14:44 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

Added test case to downscale 2 planes simultaneously.
i915 driver supports max of 3:1 downscaling limit.

v2: -add check for min 2 scalers
    -add igt_require() for overlay planes, fixes CRASH on KBL
v3: -test modified for n planes (Ville)
v4: -code optimization
v5: -limiting while loop (Ville)
v6: -rebase
    -modified tests after rebase for consistency and more coverage
     (Petri)
v7: -rename tests
    -add 0.75 scaling factor test (Petri)

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 58 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 706a09ad..83debe5d 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -31,6 +31,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
 
 enum scaler_combo_test_type {
 	TEST_PLANES_UPSCALE = 0,
+	TEST_PLANES_DOWNSCALE,
 };
 
 typedef struct {
@@ -493,6 +494,12 @@ __test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
 		/* second plane upscaling */
 		igt_plane_set_size(p2, mode->hdisplay - 20, mode->vdisplay - 20);
 	}
+	if (test_type == TEST_PLANES_DOWNSCALE) {
+		/* first plane downscaling */
+		igt_plane_set_size(p1, w1, h1);
+		/* second plane downscaling */
+		igt_plane_set_size(p2, w2, h2);
+	}
 
 	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 
@@ -519,15 +526,21 @@ test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
 			  enum scaler_combo_test_type test_type)
 {
 	igt_display_t *display = &d->display;
+	drmModeModeInfo *mode;
 
 	cleanup_crtc(d);
 
 	igt_output_set_pipe(output, pipe);
+	mode = igt_output_get_mode(output);
 
 	if (test_type == TEST_PLANES_UPSCALE) {
 		setup_fb(display->drm_fd, w1, h1, 1.0, 0.0, 0.0, &d->fb[1]);
 		setup_fb(display->drm_fd, w2, h2, 0.0, 1.0, 0.0, &d->fb[2]);
 	}
+	if (test_type == TEST_PLANES_DOWNSCALE) {
+		setup_fb(display->drm_fd, mode->hdisplay, mode->vdisplay, 1.0, 0.0, 0.0, &d->fb[1]);
+		setup_fb(display->drm_fd, mode->hdisplay, mode->vdisplay, 0.0, 1.0, 0.0, &d->fb[2]);
+	}
 
 	for (int k = 0; k < display->pipes[pipe].n_planes; k++) {
 		igt_plane_t *p1, *p2;
@@ -824,6 +837,51 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 							pipe, output, TEST_PLANES_UPSCALE);
 				}
 		}
+
+		igt_describe("Tests downscaling of 2 planes for 0.25 scaling factor.");
+		igt_subtest_with_dynamic("planes-downscale-factor-0-25") {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-downscale", kmstest_pipe_name(pipe), igt_output_name(output)) {
+					drmModeModeInfo *mode;
+
+					mode = igt_output_get_mode(output);
+
+					test_planes_scaling_combo(&data,
+							0.25 * mode->hdisplay, 0.25 * mode->vdisplay,
+							0.25 * mode->hdisplay, 0.25 * mode->vdisplay,
+							pipe, output, TEST_PLANES_DOWNSCALE);
+				}
+		}
+
+		igt_describe("Tests downscaling of 2 planes for 0.5 scaling factor.");
+		igt_subtest_with_dynamic("planes-downscale-factor-0-5") {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-downscale", kmstest_pipe_name(pipe), igt_output_name(output)) {
+					drmModeModeInfo *mode;
+
+					mode = igt_output_get_mode(output);
+
+					test_planes_scaling_combo(&data,
+							0.5 * mode->hdisplay, 0.5 * mode->vdisplay,
+							0.5 * mode->hdisplay, 0.5 * mode->vdisplay,
+							pipe, output, TEST_PLANES_DOWNSCALE);
+				}
+		}
+
+		igt_describe("Tests downscaling of 2 planes for 0.75 scaling factor.");
+		igt_subtest_with_dynamic("planes-downscale-factor-0-75") {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-downscale", kmstest_pipe_name(pipe), igt_output_name(output)) {
+					drmModeModeInfo *mode;
+
+					mode = igt_output_get_mode(output);
+
+					test_planes_scaling_combo(&data,
+							0.75 * mode->hdisplay, 0.75 * mode->vdisplay,
+							0.75 * mode->hdisplay, 0.75 * mode->vdisplay,
+							pipe, output, TEST_PLANES_DOWNSCALE);
+				}
+		}
 	}
 
 	igt_describe("Tests scaling with multi-pipe scenario.");
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] [v7 5/8] tests/kms_plane_scaling: Upscaling and downscaling scenario
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
                   ` (4 preceding siblings ...)
  2022-02-25 14:44 ` [igt-dev] [v7 4/8] tests/kms_plane_scaling: Downscaling " Swati Sharma
@ 2022-02-25 14:44 ` Swati Sharma
  2022-02-25 14:44 ` [igt-dev] [v7 6/8] tests/kms_plane_scaling: Add negative test to check num of scalers Swati Sharma
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Swati Sharma @ 2022-02-25 14:44 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

Upscaling on first plane and downscaling on second plane.

v2: -add check for min 2 scalers
    -add igt_require() for overlay planes, fixes CRASH on KBL
v3: -test modified for n planes (Ville)
v4: -code optimization
v5: -limiting while loop and few other changes based on prev. patches
v6: -rebase
    -modified tests after rebase for consistency and more coverage
    (Petri)
v7: -rename tests
    -added 0.75 scaling factor downscaling tests (Petri)

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 108 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 108 insertions(+)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 83debe5d..6fc10d59 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -32,6 +32,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
 enum scaler_combo_test_type {
 	TEST_PLANES_UPSCALE = 0,
 	TEST_PLANES_DOWNSCALE,
+	TEST_PLANES_UPSCALE_DOWNSCALE
 };
 
 typedef struct {
@@ -52,6 +53,84 @@ typedef struct {
 	bool extended;
 } data_t;
 
+const struct {
+	const char * const describe;
+	const char * const name;
+	const double sf_plane1;
+	const double sf_plane2;
+} upscale_downscale_tests[] = {
+		{
+			"Tests upscaling (20x20) and downscaling (scaling factor 0.25) of 2 planes.",
+			"planes-upscale-20x20-downscale-factor-0-25",
+			0.0,
+			0.25,
+		},
+		{
+			"Tests upscaling (20x20) and downscaling (scaling factor 0.5) of 2 planes.",
+			"planes-upscale-20x20-downscale-factor-0-5",
+			0.0,
+			0.5,
+		},
+		{
+			"Tests upscaling (20x20) and downscaling (scaling factor 0.75) of 2 planes.",
+			"planes-upscale-20x20-downscale-factor-0-75",
+			0.0,
+			0.75,
+		},
+		{
+			"Tests upscaling (scaling factor 0.25) and downscaling (scaling factor 0.25) of 2 planes.",
+			"planes-upscale-factor-0-25-downscale-factor-0-25",
+			0.25,
+			0.25,
+		},
+		{
+			"Tests upscaling (scaling factor 0.25) and downscaling (scaling factor 0.5) of 2 planes.",
+			"planes-upscale-factor-0-25-downscale-factor-0-5",
+			0.25,
+			0.5,
+		},
+		{
+			"Tests upscaling (scaling factor 0.25) and downscaling (scaling factor 0.75) of 2 planes.",
+			"planes-upscale-factor-0-25-downscale-factor-0-75",
+			0.25,
+			0.75,
+		},
+		{
+			"Tests scaling (unity) and downscaling (scaling factor 0.25) of 2 planes.",
+			"planes-unity-scaling-downscale-factor-0-25",
+			1.0,
+			0.25,
+		},
+		{
+			"Tests scaling (unity) and downscaling (scaling factor 0.5) of 2 planes.",
+			"planes-unity-scaling-downscale-factor-0-5",
+			1.0,
+			0.5,
+		},
+		{
+			"Tests scaling (unity) and downscaling (scaling factor 0.75) of 2 planes.",
+			"planes-unity-scaling-downscale-factor-0-75",
+			1.0,
+			0.75,
+		},
+};
+
+static int get_width(drmModeModeInfo *mode, double scaling_factor)
+{
+	if (scaling_factor == 0.0)
+		return 20;
+	else
+		return mode->hdisplay * scaling_factor;
+}
+
+static int get_height(drmModeModeInfo *mode, double scaling_factor)
+{
+	if (scaling_factor == 0.0)
+		return 20;
+	else
+		return mode->vdisplay * scaling_factor;
+}
+
 static int get_num_scalers(data_t* d, enum pipe pipe)
 {
 	if (!is_i915_device(d->drm_fd))
@@ -500,6 +579,12 @@ __test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
 		/* second plane downscaling */
 		igt_plane_set_size(p2, w2, h2);
 	}
+	if (test_type == TEST_PLANES_UPSCALE_DOWNSCALE) {
+		/* first plane upscaling */
+		igt_plane_set_size(p1, mode->hdisplay, mode->vdisplay);
+		/* second plane downscaling */
+		igt_plane_set_size(p2, w2, h2);
+	}
 
 	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 
@@ -541,6 +626,10 @@ test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
 		setup_fb(display->drm_fd, mode->hdisplay, mode->vdisplay, 1.0, 0.0, 0.0, &d->fb[1]);
 		setup_fb(display->drm_fd, mode->hdisplay, mode->vdisplay, 0.0, 1.0, 0.0, &d->fb[2]);
 	}
+	if (test_type == TEST_PLANES_UPSCALE_DOWNSCALE) {
+		setup_fb(display->drm_fd, w1, h1, 1.0, 0.0, 0.0, &d->fb[1]);
+		setup_fb(display->drm_fd, mode->hdisplay, mode->vdisplay, 0.0, 1.0, 0.0, &d->fb[2]);
+	}
 
 	for (int k = 0; k < display->pipes[pipe].n_planes; k++) {
 		igt_plane_t *p1, *p2;
@@ -882,6 +971,25 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 							pipe, output, TEST_PLANES_DOWNSCALE);
 				}
 		}
+
+		for (int index = 0; index < ARRAY_SIZE(upscale_downscale_tests); index++) {
+			igt_describe(upscale_downscale_tests[index].describe);
+			igt_subtest_with_dynamic(upscale_downscale_tests[index].name) {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-upscale-downscale", kmstest_pipe_name(pipe), igt_output_name(output)) {
+					drmModeModeInfo *mode;
+
+					mode = igt_output_get_mode(output);
+
+					test_planes_scaling_combo(&data,
+							get_width(mode, upscale_downscale_tests[index].sf_plane1),
+							get_height(mode, upscale_downscale_tests[index].sf_plane1),
+							get_width(mode, upscale_downscale_tests[index].sf_plane2),
+							get_height(mode,upscale_downscale_tests[index].sf_plane2),
+							pipe, output, TEST_PLANES_UPSCALE_DOWNSCALE);
+				}
+			}
+		}
 	}
 
 	igt_describe("Tests scaling with multi-pipe scenario.");
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] [v7 6/8] tests/kms_plane_scaling: Add negative test to check num of scalers
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
                   ` (5 preceding siblings ...)
  2022-02-25 14:44 ` [igt-dev] [v7 5/8] tests/kms_plane_scaling: Upscaling and downscaling scenario Swati Sharma
@ 2022-02-25 14:44 ` Swati Sharma
  2022-02-25 14:41   ` Petri Latvala
  2022-02-25 14:44 ` [igt-dev] [v7 7/8] tests/kms_plane_scaling: Refactor clipping-clamping subtest Swati Sharma
                   ` (3 subsequent siblings)
  10 siblings, 1 reply; 14+ messages in thread
From: Swati Sharma @ 2022-02-25 14:44 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

To validate i915 supports max of 2 scalers, applied upscaling on
3 planes simultaneously. This is a negative test and commit is expected
to fail.

v2: -add check for min 2 scalers
    -add igt_require() for overlay planes, fixes CRASH on KBL
v3: -rebase

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 73 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 6fc10d59..5df9ba24 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -652,6 +652,71 @@ test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
 	igt_remove_fb(display->drm_fd, &d->fb[2]);
 }
 
+static void
+test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output)
+{
+	igt_display_t *display = &d->display;
+	igt_pipe_t *pipe_obj = &display->pipes[pipe];
+	int width, height, width1, height1;
+	drmModeModeInfo *mode;
+
+	cleanup_crtc(d);
+
+	igt_output_set_pipe(output, pipe);
+
+	width = height = 20;
+	mode = igt_output_get_mode(output);
+	width1 = mode->hdisplay;
+	height1 = mode->vdisplay;
+
+	d->plane1 = igt_pipe_get_plane_type_index(pipe_obj, DRM_PLANE_TYPE_OVERLAY, 0);
+	igt_require(d->plane1);
+	d->plane2 = igt_pipe_get_plane_type_index(pipe_obj, DRM_PLANE_TYPE_OVERLAY, 1);
+	igt_require(d->plane2);
+	d->plane3 = igt_pipe_get_plane_type_index(pipe_obj, DRM_PLANE_TYPE_OVERLAY, 2);
+	igt_require(d->plane3);
+
+	igt_create_color_pattern_fb(display->drm_fd,
+                                    width, height,
+                                    DRM_FORMAT_XRGB8888,
+                                    I915_TILING_NONE,
+                                    1.0, 0.0, 0.0, &d->fb[1]);
+	igt_create_color_pattern_fb(display->drm_fd,
+                                    width, height,
+                                    DRM_FORMAT_XRGB8888,
+                                    I915_TILING_NONE,
+                                    0.0, 1.0, 0.0, &d->fb[2]);
+	igt_create_color_pattern_fb(display->drm_fd,
+                                    width, height,
+                                    DRM_FORMAT_XRGB8888,
+                                    I915_TILING_NONE,
+                                    0.0, 0.0, 1.0, &d->fb[3]);
+
+	igt_plane_set_fb(d->plane1, &d->fb[1]);
+	igt_plane_set_fb(d->plane2, &d->fb[2]);
+	igt_plane_set_fb(d->plane3, &d->fb[3]);
+
+	/* first plane upscaling */
+	igt_plane_set_size(d->plane1, width1, height1);
+	/* second plane upscaling */
+	igt_plane_set_size(d->plane2, width1, height1);
+	/* third plane upscaling */
+	igt_plane_set_size(d->plane3, width1, height1);
+
+	/* This commit is expectd to fail as we can have max 2 scalers/pipe
+	 * In dmesg, you can find: Too many scaling requests 3 > 2
+	 * */
+	igt_assert_eq(igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL), -EINVAL);
+
+	/* cleanup */
+	igt_plane_set_fb(d->plane1, NULL);
+	igt_plane_set_fb(d->plane2, NULL);
+	igt_plane_set_fb(d->plane3, NULL);
+	igt_remove_fb(display->drm_fd, &d->fb[1]);
+	igt_remove_fb(display->drm_fd, &d->fb[2]);
+	igt_remove_fb(display->drm_fd, &d->fb[3]);
+}
+
 static void test_scaler_with_multi_pipe_plane(data_t *d)
 {
 	igt_display_t *display = &d->display;
@@ -990,6 +1055,14 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 				}
 			}
 		}
+
+		igt_describe("Negative test for number of scalers per pipe.");
+		igt_subtest_with_dynamic("invalid-num-scalers") {
+			for_each_pipe_with_valid_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-invalid-num-scalers",
+					       kmstest_pipe_name(pipe), igt_output_name(output))
+					test_invalid_num_scalers(&data, pipe, output);
+		}
 	}
 
 	igt_describe("Tests scaling with multi-pipe scenario.");
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] [v7 7/8] tests/kms_plane_scaling: Refactor clipping-clamping subtest
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
                   ` (6 preceding siblings ...)
  2022-02-25 14:44 ` [igt-dev] [v7 6/8] tests/kms_plane_scaling: Add negative test to check num of scalers Swati Sharma
@ 2022-02-25 14:44 ` Swati Sharma
  2022-02-25 14:44 ` [igt-dev] [v7 8/8] tests/kms_plane_scaling: Cleanup Swati Sharma
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 14+ messages in thread
From: Swati Sharma @ 2022-02-25 14:44 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

Reused same logic as other subtests (tiling, pixel-format)
to make it consistent. Now, this subtest is tested for
all planes.

v2: rebase

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 174 +++++++++++++++-----------------------
 1 file changed, 66 insertions(+), 108 deletions(-)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 5df9ba24..e6ebb46d 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -161,45 +161,16 @@ static void cleanup_crtc(data_t *data)
 	cleanup_fbs(data);
 }
 
-static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe,
-			igt_plane_t *plane, drmModeModeInfo *mode)
+static bool test_pipe_iteration(data_t *data, enum pipe pipe, int iteration)
 {
-	igt_display_t *display = &data->display;
-	uint64_t modifier = is_i915_device(data->drm_fd) ?
-		I915_FORMAT_MOD_X_TILED : DRM_FORMAT_MOD_LINEAR;
-
-	cleanup_crtc(data);
-
-	igt_output_set_pipe(output, pipe);
+	if (!is_i915_device(data->drm_fd) ||
+	    data->extended)
+		return true;
 
-	igt_skip_on(!igt_display_has_format_mod(display, DRM_FORMAT_XRGB8888,
-						modifier));
+	if ((pipe > PIPE_B) && (iteration >= 2))
+		return false;
 
-	/* allocate fb for plane 1 */
-	igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
-			      DRM_FORMAT_XRGB8888,
-			      modifier,
-			      &data->fb[0]);
-
-	igt_plane_set_fb(plane, &data->fb[0]);
-
-	if (plane->type != DRM_PLANE_TYPE_PRIMARY) {
-		igt_plane_t *primary;
-		int ret;
-
-		/* Do we succeed without enabling the primary plane? */
-		ret = igt_display_try_commit2(display, COMMIT_ATOMIC);
-		if (!ret)
-			return;
-
-		/*
-		 * Fallback: set the primary plane to actually enable the pipe.
-		 * Some drivers always require the primary plane to be enabled.
-		 */
-		primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
-		igt_plane_set_fb(primary, &data->fb[0]);
-	}
-	igt_display_commit2(display, COMMIT_ATOMIC);
+	return true;
 }
 
 static void check_scaling_pipe_plane_rot(data_t *d, igt_plane_t *plane,
@@ -337,18 +308,6 @@ static bool test_format(data_t *data,
 	return true;
 }
 
-static bool test_pipe_iteration(data_t *data, enum pipe pipe, int iteration)
-{
-	if (!is_i915_device(data->drm_fd) ||
-	    data->extended)
-		return true;
-
-	if ((pipe > PIPE_B) && (iteration >= 2))
-		return false;
-
-	return true;
-}
-
 static void test_scaler_with_rotation_pipe(data_t *d,
 					   int width, int height,
 					   bool is_upscale,
@@ -440,89 +399,82 @@ static void test_scaler_with_pixel_format_pipe(data_t *d, int width, int height,
 }
 
 static void
-__test_scaler_with_clipping_clamping_scenario(data_t *d, drmModeModeInfo *mode)
+__test_scaler_with_clipping_clamping(data_t *d, igt_plane_t *plane,
+				     uint32_t pixel_format,
+				     uint64_t modifier,
+				     int width, int height,
+				     enum pipe pipe,
+				     igt_output_t *output,
+				     igt_rotation_t rot)
+
 {
-	igt_plane_set_fb(d->plane1, &d->fb[1]);
-	igt_plane_set_fb(d->plane2, &d->fb[2]);
+	igt_display_t *display = &d->display;
+	drmModeModeInfo *mode;
+
+	cleanup_crtc(d);
+
+	igt_output_set_pipe(output, pipe);
+	mode = igt_output_get_mode(output);
 
-	igt_fb_set_position(&d->fb[1], d->plane1, 0, 0);
-	igt_fb_set_size(&d->fb[1], d->plane1, 300, 300);
-	igt_plane_set_position(d->plane1, 100, 400);
-	igt_fb_set_position(&d->fb[2], d->plane2, 0, 0);
-	igt_fb_set_size(&d->fb[2], d->plane2, 400, 400);
-	igt_plane_set_position(d->plane2, 100, 100);
+	igt_create_color_fb(display->drm_fd, mode->hdisplay, mode->vdisplay,
+			    pixel_format, modifier, 0.0, 1.0, 0.0, &d->fb[0]);
+	igt_plane_set_fb(plane, &d->fb[0]);
 
-	/* scaled window size is outside the modeset area.*/
-	igt_plane_set_size(d->plane1, mode->hdisplay + 200,
-					    mode->vdisplay + 200);
-	igt_plane_set_size(d->plane2, mode->hdisplay + 100,
-					    mode->vdisplay + 100);
+	/* scaled window size is outside the modeset area. */
+	igt_plane_set_size(plane, width, height);
+	igt_plane_set_rotation(plane, rot);
 
 	/*
-	 * Can't guarantee that the clipped coordinates are
-	 * suitably aligned for yuv. So allow the commit to fail.
+	 * can't guarantee that the clipped coordinates are
+	 * suitably aligned for yuv. so allow commit to fail.
 	 */
-	if (igt_format_is_yuv(d->fb[1].drm_format) ||
-	    igt_format_is_yuv(d->fb[2].drm_format))
+	if (igt_format_is_yuv(d->fb[0].drm_format))
 		igt_display_try_commit2(&d->display, COMMIT_ATOMIC);
 	else
 		igt_display_commit2(&d->display, COMMIT_ATOMIC);
+
+	igt_plane_set_fb(plane, NULL);
+	igt_remove_fb(display->drm_fd, &d->fb[0]);
 }
 
 static void
-test_scaler_with_clipping_clamping_scenario(data_t *d, enum pipe pipe, igt_output_t *output)
+test_scaler_with_clipping_clamping(data_t *d, int width, int height,
+				   enum pipe pipe, igt_output_t *output)
 {
-	igt_pipe_t *pipe_obj = &d->display.pipes[pipe];
-	drmModeModeInfo *mode;
-	struct igt_vec tested_formats1;
-
-	igt_require(get_num_scalers(d, pipe) >= 2);
-
-	mode = igt_output_get_mode(output);
-	d->plane1 = igt_pipe_get_plane_type(pipe_obj, DRM_PLANE_TYPE_PRIMARY);
-	d->plane2 = igt_pipe_get_plane_type(pipe_obj, DRM_PLANE_TYPE_OVERLAY);
-	prepare_crtc(d, output, pipe, d->plane1, mode);
-
-	igt_vec_init(&tested_formats1, sizeof(uint32_t));
+	igt_display_t *display = &d->display;
+	igt_plane_t *plane;
 
-	for (int i = 0; i < d->plane1->drm_plane->count_formats; i++) {
-		unsigned f1 = d->plane1->drm_plane->formats[i];
-		struct igt_vec tested_formats2;
+	igt_require(get_num_scalers(d, pipe) > 0);
 
-		if (!test_pipe_iteration(d, pipe, i))
-			continue;
+	igt_output_set_pipe(output, pipe);
 
-		if (!test_format(d, &tested_formats1, f1) ||
-		    !can_scale(d, f1))
+	for_each_plane_on_pipe(display, pipe, plane) {
+		if (plane->type == DRM_PLANE_TYPE_CURSOR)
 			continue;
 
-		igt_vec_init(&tested_formats2, sizeof(uint32_t));
+		for (int i = 0; i < ARRAY_SIZE(modifiers); i++) {
+			uint64_t modifier = modifiers[i];
+			struct igt_vec tested_formats;
 
-		igt_create_pattern_fb(d->drm_fd,
-				      mode->hdisplay, mode->vdisplay, f1,
-				      I915_FORMAT_MOD_X_TILED, &d->fb[1]);
+			igt_vec_init(&tested_formats, sizeof(uint32_t));
 
-		for (int j = 0; j < d->plane2->drm_plane->count_formats; j++) {
-			unsigned f2 = d->plane2->drm_plane->formats[j];
+			for (int j = 0; j < plane->drm_plane->count_formats; j++) {
+				uint32_t format = plane->drm_plane->formats[j];
 
-			if (!test_format(d, &tested_formats2, f2) ||
-			    !can_scale(d, f2))
-				continue;
+				if (!test_pipe_iteration(d, pipe, j))
+					continue;
 
-			igt_create_pattern_fb(d->drm_fd,
-					      mode->hdisplay, mode->vdisplay, f2,
-					      I915_FORMAT_MOD_Y_TILED,
-					      &d->fb[2]);
+				if (test_format(d, &tested_formats, format) &&
+				    igt_plane_has_format_mod(plane, format, modifier) &&
+				    can_scale(d, format))
+						__test_scaler_with_clipping_clamping(d, plane, width, height,
+										     format, modifier,
+										     pipe, output, IGT_ROTATION_0);
+			}
 
-			__test_scaler_with_clipping_clamping_scenario(d, mode);
-			igt_remove_fb(d->drm_fd, &d->fb[2]);
+			igt_vec_fini(&tested_formats);
 		}
-		igt_remove_fb(d->drm_fd, &d->fb[1]);
-
-		igt_vec_fini(&tested_formats2);
 	}
-
-	igt_vec_fini(&tested_formats1);
 }
 
 static void find_connected_pipe(igt_display_t *display, bool second, enum pipe *pipe, igt_output_t **output)
@@ -949,9 +901,15 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 
 		igt_describe("Tests scaling with clipping and clamping.");
 		igt_subtest_with_dynamic("scaler-with-clipping-clamping") {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
+			for_each_pipe_with_single_output(&data.display, pipe, output) {
+				drmModeModeInfo *mode;
+
+				mode = igt_output_get_mode(output);
+
 				igt_dynamic_f("pipe-%s-%s-scaler-with-clipping-clamping", kmstest_pipe_name(pipe), igt_output_name(output))
-					test_scaler_with_clipping_clamping_scenario(&data, pipe, output);
+					test_scaler_with_clipping_clamping(&data, mode->hdisplay + 200,
+						    mode->vdisplay + 200, pipe, output);
+			}
 		}
 
 		igt_describe("Tests upscaling of 2 planes, from 20x20 fb.");
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] [v7 8/8] tests/kms_plane_scaling: Cleanup
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
                   ` (7 preceding siblings ...)
  2022-02-25 14:44 ` [igt-dev] [v7 7/8] tests/kms_plane_scaling: Refactor clipping-clamping subtest Swati Sharma
@ 2022-02-25 14:44 ` Swati Sharma
  2022-02-25 15:59 ` [igt-dev] ✓ Fi.CI.BAT: success for Addition of new plane scaling test cases (rev9) Patchwork
  2022-02-26 12:21 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  10 siblings, 0 replies; 14+ messages in thread
From: Swati Sharma @ 2022-02-25 14:44 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index e6ebb46d..5ae973c7 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -26,7 +26,6 @@
 #include "igt_vec.h"
 #include <math.h>
 
-
 IGT_TEST_DESCRIPTION("Test display plane scaling");
 
 enum scaler_combo_test_type {
@@ -39,10 +38,6 @@ typedef struct {
 	uint32_t devid;
 	int drm_fd;
 	igt_display_t display;
-	igt_crc_t ref_crc;
-
-	int image_w;
-	int image_h;
 
 	struct igt_fb fb[4];
 
@@ -316,8 +311,7 @@ static void test_scaler_with_rotation_pipe(data_t *d,
 {
 	igt_display_t *display = &d->display;
 	igt_plane_t *plane;
-	uint64_t modifier = is_i915_device(d->drm_fd) ?
-		I915_FORMAT_MOD_Y_TILED : DRM_FORMAT_MOD_LINEAR;
+	uint64_t modifier = DRM_FORMAT_MOD_LINEAR;
 
 	igt_require(get_num_scalers(d, pipe) > 0);
 
@@ -732,12 +726,12 @@ static void test_scaler_with_multi_pipe_plane(data_t *d)
 	mode1 = igt_output_get_mode(output1);
 	mode2 = igt_output_get_mode(output2);
 
-	/* Upscaling Primary */
+	/* upscaling primary */
 	igt_plane_set_size(d->plane1, mode1->hdisplay, mode1->vdisplay);
 	igt_plane_set_size(d->plane3, mode2->hdisplay, mode2->vdisplay);
 	igt_display_commit2(display, COMMIT_ATOMIC);
 
-	/* Upscaling Sprites */
+	/* upscaling sprites */
 	igt_plane_set_size(d->plane2 ?: d->plane1, mode1->hdisplay, mode1->vdisplay);
 	igt_plane_set_size(d->plane4 ?: d->plane3, mode2->hdisplay, mode2->vdisplay);
 	igt_display_commit2(display, COMMIT_ATOMIC);
-- 
2.25.1

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [igt-dev] [v7 6/8] tests/kms_plane_scaling: Add negative test to check num of scalers
  2022-02-25 14:41   ` Petri Latvala
@ 2022-02-25 15:50     ` Petri Latvala
  0 siblings, 0 replies; 14+ messages in thread
From: Petri Latvala @ 2022-02-25 15:50 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

On Fri, Feb 25, 2022 at 04:41:22PM +0200, Petri Latvala wrote:
> On Fri, Feb 25, 2022 at 08:14:34PM +0530, Swati Sharma wrote:
> > To validate i915 supports max of 2 scalers, applied upscaling on
> > 3 planes simultaneously. This is a negative test and commit is expected
> > to fail.
> > 
> > v2: -add check for min 2 scalers
> >     -add igt_require() for overlay planes, fixes CRASH on KBL
> > v3: -rebase
> > 
> > Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> > ---
> >  tests/kms_plane_scaling.c | 73 +++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 73 insertions(+)
> > 
> > diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> > index 6fc10d59..5df9ba24 100644
> > --- a/tests/kms_plane_scaling.c
> > +++ b/tests/kms_plane_scaling.c
> > @@ -652,6 +652,71 @@ test_planes_scaling_combo(data_t *d, int w1, int h1, int w2, int h2,
> >  	igt_remove_fb(display->drm_fd, &d->fb[2]);
> >  }
> >  
> > +static void
> > +test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output)
> > +{
> > +	igt_display_t *display = &d->display;
> > +	igt_pipe_t *pipe_obj = &display->pipes[pipe];
> > +	int width, height, width1, height1;
> > +	drmModeModeInfo *mode;
> > +
> > +	cleanup_crtc(d);
> > +
> > +	igt_output_set_pipe(output, pipe);
> > +
> > +	width = height = 20;
> > +	mode = igt_output_get_mode(output);
> > +	width1 = mode->hdisplay;
> > +	height1 = mode->vdisplay;
> > +
> > +	d->plane1 = igt_pipe_get_plane_type_index(pipe_obj, DRM_PLANE_TYPE_OVERLAY, 0);
> > +	igt_require(d->plane1);
> > +	d->plane2 = igt_pipe_get_plane_type_index(pipe_obj, DRM_PLANE_TYPE_OVERLAY, 1);
> > +	igt_require(d->plane2);
> > +	d->plane3 = igt_pipe_get_plane_type_index(pipe_obj, DRM_PLANE_TYPE_OVERLAY, 2);
> > +	igt_require(d->plane3);
> > +
> > +	igt_create_color_pattern_fb(display->drm_fd,
> > +                                    width, height,
> > +                                    DRM_FORMAT_XRGB8888,
> > +                                    I915_TILING_NONE,
> > +                                    1.0, 0.0, 0.0, &d->fb[1]);
> > +	igt_create_color_pattern_fb(display->drm_fd,
> > +                                    width, height,
> > +                                    DRM_FORMAT_XRGB8888,
> > +                                    I915_TILING_NONE,
> > +                                    0.0, 1.0, 0.0, &d->fb[2]);
> > +	igt_create_color_pattern_fb(display->drm_fd,
> > +                                    width, height,
> > +                                    DRM_FORMAT_XRGB8888,
> > +                                    I915_TILING_NONE,
> > +                                    0.0, 0.0, 1.0, &d->fb[3]);
> > +
> > +	igt_plane_set_fb(d->plane1, &d->fb[1]);
> > +	igt_plane_set_fb(d->plane2, &d->fb[2]);
> > +	igt_plane_set_fb(d->plane3, &d->fb[3]);
> > +
> > +	/* first plane upscaling */
> > +	igt_plane_set_size(d->plane1, width1, height1);
> > +	/* second plane upscaling */
> > +	igt_plane_set_size(d->plane2, width1, height1);
> > +	/* third plane upscaling */
> > +	igt_plane_set_size(d->plane3, width1, height1);
> > +
> > +	/* This commit is expectd to fail as we can have max 2 scalers/pipe
> > +	 * In dmesg, you can find: Too many scaling requests 3 > 2
> > +	 * */
> 
> That assumption only holds for i915 devices, and that can possibly
> change in the future.
> 
> As the goal is to test that too many scalings is rejected with EINVAL,
> this assumption needs to be written down:
> 
> igt_require(get_num_scalers(d, pipe) < 3);
> 
> done preferably before creating the fbs to save some time.
> 
> 

Some notes from offline discussion:

This test will eventually be changed to not assume number of scalers
at all, and will test for EINVAL or success.


-- 
Petri Latvala

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for Addition of new plane scaling test cases (rev9)
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
                   ` (8 preceding siblings ...)
  2022-02-25 14:44 ` [igt-dev] [v7 8/8] tests/kms_plane_scaling: Cleanup Swati Sharma
@ 2022-02-25 15:59 ` Patchwork
  2022-02-26 12:21 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  10 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2022-02-25 15:59 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 5304 bytes --]

== Series Details ==

Series: Addition of new plane scaling test cases (rev9)
URL   : https://patchwork.freedesktop.org/series/98333/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_11286 -> IGTPW_6709
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/index.html

Participating hosts (40 -> 39)
------------------------------

  Additional (1): fi-pnv-d510 
  Missing    (2): fi-bsw-cyan bat-jsl-2 

Known issues
------------

  Here are the changes found in IGTPW_6709 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_flink_basic@bad-flink:
    - fi-skl-6600u:       [PASS][1] -> [FAIL][2] ([i915#4547])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11286/fi-skl-6600u/igt@gem_flink_basic@bad-flink.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/fi-skl-6600u/igt@gem_flink_basic@bad-flink.html

  * igt@i915_selftest@live@hangcheck:
    - bat-dg1-5:          [PASS][3] -> [DMESG-FAIL][4] ([i915#4494] / [i915#4957])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11286/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
    - bat-dg1-6:          [PASS][5] -> [DMESG-FAIL][6] ([i915#4494] / [i915#4957])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11286/bat-dg1-6/igt@i915_selftest@live@hangcheck.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/bat-dg1-6/igt@i915_selftest@live@hangcheck.html

  * igt@prime_vgem@basic-userptr:
    - fi-pnv-d510:        NOTRUN -> [SKIP][7] ([fdo#109271]) +57 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/fi-pnv-d510/igt@prime_vgem@basic-userptr.html

  * igt@runner@aborted:
    - fi-skl-6600u:       NOTRUN -> [FAIL][8] ([i915#4312])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/fi-skl-6600u/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@kms_flip@basic-flip-vs-modeset@a-edp1:
    - {bat-adlp-6}:       [DMESG-WARN][9] ([i915#3576]) -> [PASS][10] +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11286/bat-adlp-6/igt@kms_flip@basic-flip-vs-modeset@a-edp1.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/bat-adlp-6/igt@kms_flip@basic-flip-vs-modeset@a-edp1.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
  [i915#4547]: https://gitlab.freedesktop.org/drm/intel/issues/4547
  [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
  [i915#5127]: https://gitlab.freedesktop.org/drm/intel/issues/5127


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_6358 -> IGTPW_6709

  CI-20190529: 20190529
  CI_DRM_11286: dffe2b49e799972ee24c6cff45c905183c7f8cd9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6709: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/index.html
  IGT_6358: f814ccc7ace5cf482be646374a45814185d4f2ec @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git



== Testlist changes ==

+igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5
+igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25
+igt@kms_plane_scaling@downscale-with-rotation-factor-0-5
+igt@kms_plane_scaling@downscale-with-rotation-factor-0-25
+igt@kms_plane_scaling@invalid-num-scalers
+igt@kms_plane_scaling@planes-downscale-factor-0-5
+igt@kms_plane_scaling@planes-downscale-factor-0-25
+igt@kms_plane_scaling@planes-downscale-factor-0-75
+igt@kms_plane_scaling@planes-scaling-unity-scaling
+igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5
+igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25
+igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75
+igt@kms_plane_scaling@planes-upscale-20x20
+igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5
+igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25
+igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-75
+igt@kms_plane_scaling@planes-upscale-factor-0-25
+igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5
+igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25
+igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75
+igt@kms_plane_scaling@upscale-with-pixel-format-factor-0-25
+igt@kms_plane_scaling@upscale-with-rotation-factor-0-25
-igt@kms_plane_scaling@downscale-with-pixel-format-factor-2
-igt@kms_plane_scaling@downscale-with-pixel-format-factor-4
-igt@kms_plane_scaling@downscale-with-rotation-factor-2
-igt@kms_plane_scaling@downscale-with-rotation-factor-4
-igt@kms_plane_scaling@plane-scaling
-igt@kms_plane_scaling@upscale-with-pixel-format-factor-4
-igt@kms_plane_scaling@upscale-with-rotation-factor-4

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/index.html

[-- Attachment #2: Type: text/html, Size: 6285 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for Addition of new plane scaling test cases (rev9)
  2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
                   ` (9 preceding siblings ...)
  2022-02-25 15:59 ` [igt-dev] ✓ Fi.CI.BAT: success for Addition of new plane scaling test cases (rev9) Patchwork
@ 2022-02-26 12:21 ` Patchwork
  10 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2022-02-26 12:21 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 30261 bytes --]

== Series Details ==

Series: Addition of new plane scaling test cases (rev9)
URL   : https://patchwork.freedesktop.org/series/98333/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_11286_full -> IGTPW_6709_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_6709_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_6709_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/index.html

Participating hosts (11 -> 8)
------------------------------

  Missing    (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_6709_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_cursor_crc@pipe-a-cursor-256x256-rapid-movement:
    - shard-iclb:         NOTRUN -> [DMESG-WARN][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-iclb4/igt@kms_cursor_crc@pipe-a-cursor-256x256-rapid-movement.html

  * {igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-edp-1-planes-downscale} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][2] +23 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-iclb8/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-edp-1-planes-downscale.html

  * {igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-1-planes-upscale-downscale} (NEW):
    - {shard-tglu}:       NOTRUN -> [SKIP][3] +19 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-tglu-3/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-1-planes-upscale-downscale.html

  * {igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-edp-1-planes-upscale-downscale} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][4] +27 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-tglb1/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-edp-1-planes-upscale-downscale.html

  * {igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-a-dp-1-scaler-with-clipping-clamping} (NEW):
    - shard-kbl:          NOTRUN -> [FAIL][5] +2 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-kbl3/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-a-dp-1-scaler-with-clipping-clamping.html

  * {igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-a-hdmi-a-1-scaler-with-clipping-clamping} (NEW):
    - {shard-tglu}:       NOTRUN -> [FAIL][6] +3 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-tglu-3/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-a-hdmi-a-1-scaler-with-clipping-clamping.html

  * {igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-dp-1-scaler-with-clipping-clamping} (NEW):
    - shard-apl:          NOTRUN -> [FAIL][7] +2 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-apl7/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-dp-1-scaler-with-clipping-clamping.html

  * {igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-edp-1-scaler-with-clipping-clamping} (NEW):
    - shard-tglb:         NOTRUN -> [FAIL][8] +3 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-tglb1/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-edp-1-scaler-with-clipping-clamping.html

  * {igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-hdmi-a-2-scaler-with-clipping-clamping} (NEW):
    - shard-glk:          NOTRUN -> [FAIL][9] +2 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-glk3/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-hdmi-a-2-scaler-with-clipping-clamping.html

  * {igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-edp-1-scaler-with-clipping-clamping} (NEW):
    - shard-iclb:         NOTRUN -> [FAIL][10] +2 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-iclb1/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-edp-1-scaler-with-clipping-clamping.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1:
    - {shard-tglu}:       NOTRUN -> [DMESG-WARN][11]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/shard-tglu-5/igt@kms_flip@flip-vs-suspend-interruptible@a-hdmi-a1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_11286_full and IGTPW_6709_full:

### New IGT tests (351) ###

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-a-dp-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [10.97] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-a-edp-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [35.47] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-a-hdmi-a-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [15.18] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-a-vga-1-downscale-with-pixel-format:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-b-dp-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [11.33] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-b-edp-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [37.50] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-b-hdmi-a-2-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [15.26] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-b-vga-1-downscale-with-pixel-format:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-c-dp-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [7.60] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-c-edp-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [37.55] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-25@pipe-c-hdmi-a-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [15.20] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5@pipe-a-dp-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [10.92] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5@pipe-a-hdmi-a-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [14.92] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5@pipe-a-vga-1-downscale-with-pixel-format:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5@pipe-b-dp-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [11.31] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5@pipe-b-hdmi-a-2-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [15.12] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5@pipe-b-vga-1-downscale-with-pixel-format:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5@pipe-c-dp-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [7.57] s

  * igt@kms_plane_scaling@downscale-with-pixel-format-factor-0-5@pipe-c-hdmi-a-1-downscale-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [15.08] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-a-dp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [0.51, 0.78] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-a-edp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [1.03, 1.05] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-a-hdmi-a-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [1.19] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-a-vga-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-b-dp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [0.65, 0.97] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-b-edp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [2.17, 2.19] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-b-hdmi-a-2-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [1.19] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-b-vga-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-c-dp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [0.58, 0.95] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-c-edp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [2.16, 2.20] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-c-hdmi-a-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [1.12] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-25@pipe-d-edp-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [2.17] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-a-dp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [0.51, 0.78] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-a-edp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [1.05, 1.06] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-a-hdmi-a-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [0.82, 1.17] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-a-vga-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-b-dp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [0.65, 0.98] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-b-edp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [2.15] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-b-hdmi-a-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [0.83] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-b-hdmi-a-2-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [1.20] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-b-vga-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-c-dp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [0.59, 0.99] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-c-edp-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [2.13, 2.15] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-c-hdmi-a-1-downscale-with-rotation:
    - Statuses : 2 skip(s)
    - Exec time: [0.85, 1.63] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-d-edp-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [2.17] s

  * igt@kms_plane_scaling@downscale-with-rotation-factor-0-5@pipe-d-hdmi-a-1-downscale-with-rotation:
    - Statuses : 1 skip(s)
    - Exec time: [0.82] s

  * igt@kms_plane_scaling@invalid-num-scalers:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-a-dp-1-invalid-num-scalers:
    - Statuses : 2 skip(s)
    - Exec time: [0.00] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-a-edp-1-invalid-num-scalers:
    - Statuses : 2 pass(s)
    - Exec time: [0.03, 0.04] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-a-hdmi-a-1-invalid-num-scalers:
    - Statuses : 1 pass(s)
    - Exec time: [0.14] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-a-hdmi-a-2-invalid-num-scalers:
    - Statuses : 1 pass(s)
    - Exec time: [0.07] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-a-vga-1-invalid-num-scalers:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-b-dp-1-invalid-num-scalers:
    - Statuses : 2 skip(s)
    - Exec time: [0.00] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-b-edp-1-invalid-num-scalers:
    - Statuses : 2 pass(s)
    - Exec time: [0.02, 0.03] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-b-hdmi-a-1-invalid-num-scalers:
    - Statuses : 1 pass(s)
    - Exec time: [0.05] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-b-hdmi-a-2-invalid-num-scalers:
    - Statuses : 1 pass(s)
    - Exec time: [0.04] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-b-vga-1-invalid-num-scalers:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-c-dp-1-invalid-num-scalers:
    - Statuses : 2 skip(s)
    - Exec time: [0.00] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-c-edp-1-invalid-num-scalers:
    - Statuses : 2 pass(s)
    - Exec time: [0.02, 0.03] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-c-hdmi-a-1-invalid-num-scalers:
    - Statuses : 1 pass(s)
    - Exec time: [0.07] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-c-hdmi-a-2-invalid-num-scalers:
    - Statuses : 1 pass(s)
    - Exec time: [0.07] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-d-edp-1-invalid-num-scalers:
    - Statuses : 1 pass(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a-dp-1-planes-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.06, 0.17] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a-edp-1-planes-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.05] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a-hdmi-a-1-planes-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.04, 0.16] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-a-vga-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.05] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-dp-1-planes-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.05, 0.13] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-edp-1-planes-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.04, 0.05] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-hdmi-a-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-hdmi-a-2-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.10] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-vga-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-dp-1-planes-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.05, 0.13] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-edp-1-planes-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.04] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-c-hdmi-a-1-planes-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.03, 0.15] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-edp-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.04] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d-hdmi-a-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-dp-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.39] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.30, 1.35] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-hdmi-a-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.13, 0.39] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-vga-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.05] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-dp-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.34] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-edp-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.26, 1.33] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-hdmi-a-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-hdmi-a-2-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.40] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-b-vga-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-c-dp-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.13] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-c-edp-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.28, 1.34] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-c-hdmi-a-1-planes-downscale:
    - Statuses : 1 pass(s) 1 skip(s)
    - Exec time: [0.11, 0.12] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-d-edp-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-d-hdmi-a-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a-dp-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.12, 0.22] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a-edp-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.14, 0.19] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a-hdmi-a-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.10, 0.37] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-a-vga-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.05] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b-dp-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.23, 0.35] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b-edp-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.24, 1.34] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b-hdmi-a-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.14] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b-hdmi-a-2-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.37] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-b-vga-1-planes-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-c-dp-1-planes-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.05, 0.12] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-c-edp-1-planes-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-c-hdmi-a-1-planes-downscale:
    - Statuses : 1 pass(s) 1 skip(s)
    - Exec time: [0.12, 0.15] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-d-edp-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-downscale-factor-0-75@pipe-d-hdmi-a-1-planes-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-a-dp-1-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.22] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-a-edp-1-planes-unity-scaling:
    - Statuses : 2 pass(s)
    - Exec time: [0.15, 0.19] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-a-hdmi-a-1-planes-unity-scaling:
    - Statuses : 2 pass(s)
    - Exec time: [0.18, 0.36] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-a-vga-1-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-b-dp-1-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.35] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-b-edp-1-planes-unity-scaling:
    - Statuses : 2 pass(s)
    - Exec time: [1.25, 1.27] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-b-hdmi-a-1-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.20] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-b-hdmi-a-2-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.31] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-b-vga-1-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.16] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-c-dp-1-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.31] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-c-edp-1-planes-unity-scaling:
    - Statuses : 2 pass(s)
    - Exec time: [1.27, 1.28] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-c-hdmi-a-1-planes-unity-scaling:
    - Statuses : 2 pass(s)
    - Exec time: [0.20, 0.31] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-d-edp-1-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-scaling-unity-scaling@pipe-d-hdmi-a-1-planes-unity-scaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.21] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-dp-1-planes-upscale-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.07, 0.18] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-edp-1-planes-upscale-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.05] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.03, 0.17] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-a-vga-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-dp-1-planes-upscale-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.06, 0.13] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-edp-1-planes-upscale-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.03, 0.04] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.04] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-hdmi-a-2-planes-upscale-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.09] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-b-vga-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.14] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-c-dp-1-planes-upscale-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.05, 0.13] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-c-edp-1-planes-upscale-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.03, 0.04] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-c-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 2 skip(s)
    - Exec time: [0.04, 0.11] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-edp-1-planes-upscale-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.04] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 skip(s)
    - Exec time: [0.04] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-dp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.24, 0.38] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-edp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.30, 1.35] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.35] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-vga-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-b-dp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.23, 0.33] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-b-edp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.27, 1.33] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-b-hdmi-a-2-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.34] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-b-vga-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.14] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-dp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.23, 0.32] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.28, 1.34] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.35] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-d-edp-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-a-dp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.24] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-a-edp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.15, 0.19] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-a-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.10, 0.37] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-a-vga-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-b-dp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.23, 0.33] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-b-edp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.26, 1.28] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-b-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.14] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-b-hdmi-a-2-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.35] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-b-vga-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.16] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-c-dp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.23, 0.30] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-c-edp-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-c-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 2 pass(s)
    - Exec time: [0.12, 0.35] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d-edp-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [1.28] s

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-75@pipe-d-hdmi-a-1-planes-upscale-downscale:
    - Statuses : 1 pass(s)
    - Exec time: [0.14] s

  * igt@kms_plane_scaling@planes-upscale-20x20:
    - Statuses :

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6709/index.html

[-- Attachment #2: Type: text/html, Size: 36223 bytes --]

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2022-02-26 12:21 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-25 14:44 [igt-dev] [v7 0/8] Addition of new plane scaling test cases Swati Sharma
2022-02-25 14:42 ` Petri Latvala
2022-02-25 14:44 ` [igt-dev] [v7 1/8] tests/kms_plane_scaling: Removal of plane-scaling subtest Swati Sharma
2022-02-25 14:44 ` [igt-dev] [v7 2/8] tests/kms_plane_scaling: Minor changes with existing tests Swati Sharma
2022-02-25 14:44 ` [igt-dev] [v7 3/8] tests/kms_plane_scaling: Upscaling on 2 planes Swati Sharma
2022-02-25 14:44 ` [igt-dev] [v7 4/8] tests/kms_plane_scaling: Downscaling " Swati Sharma
2022-02-25 14:44 ` [igt-dev] [v7 5/8] tests/kms_plane_scaling: Upscaling and downscaling scenario Swati Sharma
2022-02-25 14:44 ` [igt-dev] [v7 6/8] tests/kms_plane_scaling: Add negative test to check num of scalers Swati Sharma
2022-02-25 14:41   ` Petri Latvala
2022-02-25 15:50     ` Petri Latvala
2022-02-25 14:44 ` [igt-dev] [v7 7/8] tests/kms_plane_scaling: Refactor clipping-clamping subtest Swati Sharma
2022-02-25 14:44 ` [igt-dev] [v7 8/8] tests/kms_plane_scaling: Cleanup Swati Sharma
2022-02-25 15:59 ` [igt-dev] ✓ Fi.CI.BAT: success for Addition of new plane scaling test cases (rev9) Patchwork
2022-02-26 12:21 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.