All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [v4 0/9] Addition of new plane scaling test cases
@ 2022-02-15 12:23 Swati Sharma
  2022-02-15 12:23 ` [igt-dev] [v4 1/9] tests/kms_plane_scaling: Removal of plane-scaling subtest Swati Sharma
                   ` (10 more replies)
  0 siblings, 11 replies; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

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)

TODO: crc based validation (once this series is merged, will
work for crc based validation for all subtests, if possible)

Swati Sharma (9):
  tests/kms_plane_scaling: Removal of plane-scaling subtest
  tests/kms_plane_scaling: Add output name in dynamic subtests
  tests/kms_plane_scaling: Upscaling each plane
  tests/kms_plane_scaling: Downscaling each plane
  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.c | 712 +++++++++++++++++++++++---------------
 1 file changed, 440 insertions(+), 272 deletions(-)

-- 
2.25.1

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

* [igt-dev] [v4 1/9] tests/kms_plane_scaling: Removal of plane-scaling subtest
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
@ 2022-02-15 12:23 ` Swati Sharma
  2022-02-15 12:23 ` [igt-dev] [v4 2/9] tests/kms_plane_scaling: Add output name in dynamic subtests Swati Sharma
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

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 85db11ee..4e2be7f2 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -323,178 +323,6 @@ static void test_scaler_with_pixel_format_pipe(data_t *d, enum pipe pipe, igt_ou
 	}
 }
 
-/* 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)
 {
@@ -719,13 +547,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 scaling with pixel formats.");
 		igt_subtest_with_dynamic("scaler-with-pixel-format") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-- 
2.25.1

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

* [igt-dev] [v4 2/9] tests/kms_plane_scaling: Add output name in dynamic subtests
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
  2022-02-15 12:23 ` [igt-dev] [v4 1/9] tests/kms_plane_scaling: Removal of plane-scaling subtest Swati Sharma
@ 2022-02-15 12:23 ` Swati Sharma
  2022-02-15 12:23 ` [igt-dev] [v4 3/9] tests/kms_plane_scaling: Upscaling each plane Swati Sharma
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

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

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 4e2be7f2..1cf62841 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -550,21 +550,21 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		igt_describe("Tests scaling with pixel formats.");
 		igt_subtest_with_dynamic("scaler-with-pixel-format") {
 			for_each_pipe_with_single_output(&data.display, pipe, 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, pipe, output);
 		}
 
 		igt_describe("Tests scaling with tiling rotation.");
 		igt_subtest_with_dynamic("scaler-with-rotation") {
 			for_each_pipe_with_single_output(&data.display, pipe, 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, pipe, output);
 		}
 
 		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] 20+ messages in thread

* [igt-dev] [v4 3/9] tests/kms_plane_scaling: Upscaling each plane
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
  2022-02-15 12:23 ` [igt-dev] [v4 1/9] tests/kms_plane_scaling: Removal of plane-scaling subtest Swati Sharma
  2022-02-15 12:23 ` [igt-dev] [v4 2/9] tests/kms_plane_scaling: Add output name in dynamic subtests Swati Sharma
@ 2022-02-15 12:23 ` Swati Sharma
  2022-02-15 20:43   ` Ville Syrjälä
  2022-02-15 12:23 ` [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling " Swati Sharma
                   ` (7 subsequent siblings)
  10 siblings, 1 reply; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

Subtest for testing upscaling for each plane
individually (checked 1 plane per "class" like
we do in other tests)

v2: -set modifier as LINEAR (Ville)
    -shared code for upscaling and downscaling tests (Ville)
    -removed num_scaler() check and added try_commit() (Ville)

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

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 1cf62841..39f2de3c 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -29,6 +29,11 @@
 
 IGT_TEST_DESCRIPTION("Test display plane scaling");
 
+/* Test flags. */
+enum {
+	TEST_UPSCALING = 1 << 0,
+};
+
 typedef struct {
 	uint32_t devid;
 	int drm_fd;
@@ -230,6 +235,65 @@ static bool test_format(data_t *data,
 	return true;
 }
 
+static void
+__test_plane_upscaling(data_t *d, igt_plane_t *plane,
+		       enum pipe pipe, igt_output_t *output)
+{
+	igt_display_t *display = &d->display;
+	int width, height, ret;
+	drmModeModeInfo *mode;
+
+	cleanup_crtc(d);
+
+	igt_output_set_pipe(output, pipe);
+	mode = igt_output_get_mode(output);
+	width = height = 20;
+
+	igt_create_color_pattern_fb(display->drm_fd,
+                                    width, height,
+                                    DRM_FORMAT_XRGB8888,
+                                    I915_TILING_NONE,
+                                    1.0, 0.0, 0.0, &d->fb[0]);
+
+	igt_plane_set_fb(plane, &d->fb[0]);
+	igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
+	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	igt_plane_set_fb(plane, NULL);
+	igt_remove_fb(display->drm_fd, &d->fb[0]);
+
+	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
+}
+
+static void
+test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t flags)
+{
+	igt_display_t *display = &d->display;
+	uint64_t modifier = DRM_FORMAT_MOD_LINEAR;
+	igt_plane_t *plane;
+
+	for_each_plane_on_pipe(display, pipe, plane) {
+		struct igt_vec tested_formats;
+
+		if (plane->type == DRM_PLANE_TYPE_CURSOR)
+			continue;
+
+		igt_vec_init(&tested_formats, sizeof(uint32_t));
+
+		for (int j = 0; j < plane->drm_plane->count_formats; j++) {
+			uint32_t format = plane->drm_plane->formats[j];
+			if (test_format(d, &tested_formats, format) &&
+			    igt_plane_has_format_mod(plane, format, modifier) &&
+			    can_scale(d, format))
+				if (flags & TEST_UPSCALING)
+					__test_plane_upscaling(d, plane, pipe, output);
+		}
+
+		igt_vec_fini(&tested_formats);
+	}
+}
+
 static bool test_pipe_iteration(data_t *data, enum pipe pipe, int iteration)
 {
 	if (!is_i915_device(data->drm_fd) ||
@@ -547,6 +611,13 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 	igt_subtest_group {
 		igt_output_t *output;
 
+		igt_describe("Tests plane upscaling.");
+		igt_subtest_with_dynamic("plane-upscaling") {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-upscaling", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_plane_scaling(&data, pipe, output, TEST_UPSCALING);
+		}
+
 		igt_describe("Tests scaling with pixel formats.");
 		igt_subtest_with_dynamic("scaler-with-pixel-format") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-- 
2.25.1

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

* [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling each plane
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
                   ` (2 preceding siblings ...)
  2022-02-15 12:23 ` [igt-dev] [v4 3/9] tests/kms_plane_scaling: Upscaling each plane Swati Sharma
@ 2022-02-15 12:23 ` Swati Sharma
  2022-02-15 20:43   ` Ville Syrjälä
       [not found]   ` <a85c6701-43ad-4b25-6184-8798e8db2e2d@quicinc.com>
  2022-02-15 12:23 ` [igt-dev] [v4 5/9] tests/kms_plane_scaling: Upscaling on 2 planes Swati Sharma
                   ` (6 subsequent siblings)
  10 siblings, 2 replies; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

Subtest for testing downscaling for each plane
individually (checked 1 plane per "class" like
we do in other tests).

v2: -set modifier as LINEAR (Ville)
    -shared code for upscaling and downscaling tests (Ville)
    -removed num_scaler() check and added try_commit() (Ville)

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

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 39f2de3c..e960a6c5 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -32,6 +32,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
 /* Test flags. */
 enum {
 	TEST_UPSCALING = 1 << 0,
+	TEST_DOWNSCALING = 1 << 1,
 };
 
 typedef struct {
@@ -266,6 +267,48 @@ __test_plane_upscaling(data_t *d, igt_plane_t *plane,
 	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
 }
 
+static void
+__test_plane_downscaling(data_t *d, igt_plane_t *plane,
+		         enum pipe pipe, igt_output_t *output)
+{
+	igt_display_t *display = &d->display;
+	int width, height;
+	drmModeModeInfo *mode;
+	bool test_complete = false;
+	int scaling = 50;
+	int ret;
+
+	cleanup_crtc(d);
+
+	igt_output_set_pipe(output, pipe);
+	mode = igt_output_get_mode(output);
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
+	igt_create_color_pattern_fb(display->drm_fd,
+				    width, height,
+				    DRM_FORMAT_XRGB8888,
+				    I915_TILING_NONE,
+				    1.0, 0.0, 0.0, &d->fb[0]);
+
+	igt_plane_set_fb(plane, &d->fb[0]);
+
+	while(!test_complete) {
+		igt_plane_set_size(plane, (width * scaling) / 100, (height * scaling) / 100);
+		ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+
+		if (ret != -EINVAL)
+			test_complete = true;
+
+		scaling += 5;
+	}
+
+	igt_plane_set_fb(plane, NULL);
+	igt_remove_fb(display->drm_fd, &d->fb[0]);
+
+	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
+}
+
 static void
 test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t flags)
 {
@@ -285,9 +328,12 @@ test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t fla
 			uint32_t format = plane->drm_plane->formats[j];
 			if (test_format(d, &tested_formats, format) &&
 			    igt_plane_has_format_mod(plane, format, modifier) &&
-			    can_scale(d, format))
+			    can_scale(d, format)) {
 				if (flags & TEST_UPSCALING)
 					__test_plane_upscaling(d, plane, pipe, output);
+				if (flags & TEST_DOWNSCALING)
+					__test_plane_downscaling(d, plane, pipe, output);
+				}
 		}
 
 		igt_vec_fini(&tested_formats);
@@ -618,6 +664,13 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 					test_plane_scaling(&data, pipe, output, TEST_UPSCALING);
 		}
 
+		igt_describe("Tests plane downscaling.");
+		igt_subtest_with_dynamic("plane-downscaling") {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-downscaling", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_plane_scaling(&data, pipe, output, TEST_DOWNSCALING);
+		}
+
 		igt_describe("Tests scaling with pixel formats.");
 		igt_subtest_with_dynamic("scaler-with-pixel-format") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-- 
2.25.1

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

* [igt-dev] [v4 5/9] tests/kms_plane_scaling: Upscaling on 2 planes
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
                   ` (3 preceding siblings ...)
  2022-02-15 12:23 ` [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling " Swati Sharma
@ 2022-02-15 12:23 ` Swati Sharma
  2022-02-15 20:43   ` Ville Syrjälä
  2022-02-15 12:23 ` [igt-dev] [v4 6/9] tests/kms_plane_scaling: Downscaling " Swati Sharma
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

i915 driver supports 2 scalers per pipe. Added test case
to upscale 2 overlay 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)

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

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index e960a6c5..11bf5af9 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -33,6 +33,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
 enum {
 	TEST_UPSCALING = 1 << 0,
 	TEST_DOWNSCALING = 1 << 1,
+	TEST_UPSCALING_UPSCALING = 1 << 2,
 };
 
 typedef struct {
@@ -340,6 +341,83 @@ test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t fla
 	}
 }
 
+static void
+__test_planes_upscaling_upscaling(data_t *d, enum pipe pipe, igt_output_t *output,
+				  igt_plane_t *overlay1, igt_plane_t *overlay2,
+				  struct igt_fb *fb1, struct igt_fb *fb2)
+{
+	igt_display_t *display = &d->display;
+	drmModeModeInfo *mode;
+	int width, height;
+	int ret;
+
+	mode = igt_output_get_mode(output);
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
+	igt_plane_set_fb(overlay1, fb1);
+	igt_plane_set_fb(overlay2, fb2);
+
+	/* 1st overlay plane upscaling */
+	igt_plane_set_size(overlay1, width, height);
+	/* 2nd overlay plane upscaling */
+	igt_plane_set_size(overlay2, width - 20, height - 20);
+	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+
+	igt_plane_set_fb(overlay1, NULL);
+	igt_plane_set_fb(overlay2, NULL);
+
+	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
+}
+
+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_plane_scaling_combo(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t flags)
+{
+	igt_display_t *display = &d->display;
+	int width, height;
+
+	cleanup_crtc(d);
+
+	width = height = 20;
+
+	if (flags & TEST_UPSCALING_UPSCALING) {
+		setup_fb(display->drm_fd, width, height, 1.0, 0.0, 0.0, &d->fb[1]);
+		setup_fb(display->drm_fd, width, height, 0.0, 1.0, 0.0, &d->fb[2]);
+	}
+
+	igt_output_set_pipe(output, pipe);
+
+	for (int k = 0; k < display->pipes[pipe].n_planes; k++) {
+		igt_plane_t *plane1, *plane2;
+
+		plane1 = &display->pipes[pipe].planes[k];
+		igt_require(plane1);
+		plane2 = &display->pipes[pipe].planes[k+1];
+		igt_require(plane2);
+
+		if (plane1->type == DRM_PLANE_TYPE_PRIMARY  || plane1->type == DRM_PLANE_TYPE_CURSOR ||
+		    plane2->type == DRM_PLANE_TYPE_PRIMARY || plane2->type ==DRM_PLANE_TYPE_CURSOR)
+				continue;
+
+		if (flags & TEST_UPSCALING_UPSCALING)
+			__test_planes_upscaling_upscaling(d, pipe, output, plane1, plane2,
+							  &d->fb[1], &d->fb[2]);
+	}
+
+	igt_remove_fb(display->drm_fd, &d->fb[1]);
+        igt_remove_fb(display->drm_fd, &d->fb[2]);
+}
+
 static bool test_pipe_iteration(data_t *data, enum pipe pipe, int iteration)
 {
 	if (!is_i915_device(data->drm_fd) ||
@@ -671,6 +749,13 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 					test_plane_scaling(&data, pipe, output, TEST_DOWNSCALING);
 		}
 
+		igt_describe("Tests upscaling of 2 overlay planes.");
+		igt_subtest_with_dynamic("planes-upscaling-upscaling") {
+			for_each_pipe_with_single_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-upscaling-upscaling", kmstest_pipe_name(pipe), igt_output_name(output))
+					test_plane_scaling_combo(&data, pipe, output, TEST_UPSCALING_UPSCALING);
+		}
+
 		igt_describe("Tests scaling with pixel formats.");
 		igt_subtest_with_dynamic("scaler-with-pixel-format") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-- 
2.25.1

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

* [igt-dev] [v4 6/9] tests/kms_plane_scaling: Downscaling on 2 planes
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
                   ` (4 preceding siblings ...)
  2022-02-15 12:23 ` [igt-dev] [v4 5/9] tests/kms_plane_scaling: Upscaling on 2 planes Swati Sharma
@ 2022-02-15 12:23 ` Swati Sharma
  2022-02-15 12:23 ` [igt-dev] [v4 7/9] tests/kms_plane_scaling: Upscaling and downscaling scenario Swati Sharma
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

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

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

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 11bf5af9..df0c7959 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -34,6 +34,7 @@ enum {
 	TEST_UPSCALING = 1 << 0,
 	TEST_DOWNSCALING = 1 << 1,
 	TEST_UPSCALING_UPSCALING = 1 << 2,
+	TEST_DOWNSCALING_DOWNSCALING = 1 << 3,
 };
 
 typedef struct {
@@ -370,6 +371,44 @@ __test_planes_upscaling_upscaling(data_t *d, enum pipe pipe, igt_output_t *outpu
 	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
 }
 
+static void
+__test_planes_downscaling_downscaling(data_t *d, enum pipe pipe, igt_output_t *output,
+				      igt_plane_t *overlay1, igt_plane_t *overlay2,
+				      struct igt_fb *fb1, struct igt_fb *fb2)
+{
+	igt_display_t *display = &d->display;
+	drmModeModeInfo *mode;
+	bool test_complete = false;
+	int width, height;
+	int scaling = 50;
+	int ret;
+
+	mode = igt_output_get_mode(output);
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
+	igt_plane_set_fb(overlay1, fb1);
+	igt_plane_set_fb(overlay2, fb2);
+
+	while (!test_complete) {
+		/* 1st overlay plane downscaling */
+		igt_plane_set_size(overlay1, (width * scaling) / 100, (height * scaling) / 100);
+		/* 2nd overlay plane downscaling */
+		igt_plane_set_size(overlay2, (width * scaling) / 100, (height * scaling) / 100);
+		ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+
+		if (ret != -EINVAL)
+			test_complete = true;
+
+		scaling += 5;
+	}
+
+	igt_plane_set_fb(overlay1, NULL);
+	igt_plane_set_fb(overlay2, NULL);
+
+	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
+}
+
 static void setup_fb(int fd, int width, int height,
 		     double r, double g, double b,
 		     struct igt_fb *fb)
@@ -384,16 +423,24 @@ static void
 test_plane_scaling_combo(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t flags)
 {
 	igt_display_t *display = &d->display;
-	int width, height;
-
+	int width, height, width1, height1;
+	drmModeModeInfo *mode;
 	cleanup_crtc(d);
 
 	width = height = 20;
 
+	mode = igt_output_get_mode(output);
+	width1 = mode->hdisplay;
+	height = mode->vdisplay;
+
 	if (flags & TEST_UPSCALING_UPSCALING) {
 		setup_fb(display->drm_fd, width, height, 1.0, 0.0, 0.0, &d->fb[1]);
 		setup_fb(display->drm_fd, width, height, 0.0, 1.0, 0.0, &d->fb[2]);
 	}
+	if (flags & TEST_DOWNSCALING_DOWNSCALING) {
+		setup_fb(display->drm_fd, width1, height1, 1.0, 0.0, 0.0, &d->fb[1]);
+		setup_fb(display->drm_fd, width1, height1, 0.0, 1.0, 0.0, &d->fb[2]);
+	}
 
 	igt_output_set_pipe(output, pipe);
 
@@ -412,6 +459,9 @@ test_plane_scaling_combo(data_t *d, enum pipe pipe, igt_output_t *output, uint32
 		if (flags & TEST_UPSCALING_UPSCALING)
 			__test_planes_upscaling_upscaling(d, pipe, output, plane1, plane2,
 							  &d->fb[1], &d->fb[2]);
+		if (flags & TEST_DOWNSCALING_DOWNSCALING)
+			__test_planes_downscaling_downscaling(d, pipe, output, plane1, plane2,
+							      &d->fb[1], &d->fb[2]);
 	}
 
 	igt_remove_fb(display->drm_fd, &d->fb[1]);
@@ -756,6 +806,14 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 					test_plane_scaling_combo(&data, pipe, output, TEST_UPSCALING_UPSCALING);
 		}
 
+		igt_describe("Tests downscaling of 2 overlay planes.");
+		igt_subtest_with_dynamic("planes-downscaling-downscaling") {
+			for_each_pipe_with_valid_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-downscaling-downscaling",
+					      kmstest_pipe_name(pipe), igt_output_name(output))
+					test_plane_scaling_combo(&data, pipe, output, TEST_DOWNSCALING_DOWNSCALING);
+		}
+
 		igt_describe("Tests scaling with pixel formats.");
 		igt_subtest_with_dynamic("scaler-with-pixel-format") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-- 
2.25.1

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

* [igt-dev] [v4 7/9] tests/kms_plane_scaling: Upscaling and downscaling scenario
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
                   ` (5 preceding siblings ...)
  2022-02-15 12:23 ` [igt-dev] [v4 6/9] tests/kms_plane_scaling: Downscaling " Swati Sharma
@ 2022-02-15 12:23 ` Swati Sharma
  2022-02-15 12:23 ` [igt-dev] [v4 8/9] tests/kms_plane_scaling: Add negative test to check num of scalers Swati Sharma
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

Upscaling on first overlay plane and downscaling on second
overlay 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

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

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index df0c7959..181c58e1 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -35,6 +35,7 @@ enum {
 	TEST_DOWNSCALING = 1 << 1,
 	TEST_UPSCALING_UPSCALING = 1 << 2,
 	TEST_DOWNSCALING_DOWNSCALING = 1 << 3,
+	TEST_UPSCALING_DOWNSCALING = 1 << 4,
 };
 
 typedef struct {
@@ -409,6 +410,44 @@ __test_planes_downscaling_downscaling(data_t *d, enum pipe pipe, igt_output_t *o
 	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
 }
 
+static void
+__test_planes_upscaling_downscaling(data_t *d, enum pipe pipe, igt_output_t *output,
+				    igt_plane_t *overlay1, igt_plane_t *overlay2,
+				    struct igt_fb *fb1, struct igt_fb *fb2)
+{
+	igt_display_t *display = &d->display;
+	drmModeModeInfo *mode;
+	bool test_complete = false;
+	int width, height;
+	int scaling = 50;
+	int ret;
+
+	mode = igt_output_get_mode(output);
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
+	igt_plane_set_fb(overlay1, fb1);
+	igt_plane_set_fb(overlay2, fb2);
+
+	while (!test_complete) {
+		/* 1st overlay plane upscaling */
+		igt_plane_set_size(overlay1, width, height);
+		/* 2nd overlay plane downscaling */
+		igt_plane_set_size(overlay2, (width * scaling) / 100, (height * scaling) / 100);
+		ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+
+		if (ret != -EINVAL)
+			test_complete = true;
+
+		scaling += 5;
+	}
+
+	igt_plane_set_fb(overlay1, NULL);
+	igt_plane_set_fb(overlay2, NULL);
+
+	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
+}
+
 static void setup_fb(int fd, int width, int height,
 		     double r, double g, double b,
 		     struct igt_fb *fb)
@@ -441,6 +480,10 @@ test_plane_scaling_combo(data_t *d, enum pipe pipe, igt_output_t *output, uint32
 		setup_fb(display->drm_fd, width1, height1, 1.0, 0.0, 0.0, &d->fb[1]);
 		setup_fb(display->drm_fd, width1, height1, 0.0, 1.0, 0.0, &d->fb[2]);
 	}
+	if (flags & TEST_UPSCALING_DOWNSCALING) {
+		setup_fb(display->drm_fd, width, height, 1.0, 0.0, 0.0, &d->fb[1]);
+		setup_fb(display->drm_fd, width1, height1, 0.0, 1.0, 0.0, &d->fb[2]);
+	}
 
 	igt_output_set_pipe(output, pipe);
 
@@ -462,6 +505,9 @@ test_plane_scaling_combo(data_t *d, enum pipe pipe, igt_output_t *output, uint32
 		if (flags & TEST_DOWNSCALING_DOWNSCALING)
 			__test_planes_downscaling_downscaling(d, pipe, output, plane1, plane2,
 							      &d->fb[1], &d->fb[2]);
+		if (flags & TEST_UPSCALING_DOWNSCALING)
+			__test_planes_upscaling_downscaling(d, pipe, output, plane1, plane2,
+							    &d->fb[1], &d->fb[2]);
 	}
 
 	igt_remove_fb(display->drm_fd, &d->fb[1]);
@@ -814,6 +860,14 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 					test_plane_scaling_combo(&data, pipe, output, TEST_DOWNSCALING_DOWNSCALING);
 		}
 
+		igt_describe("Tests upscaling and downscaling of overlay planes.");
+		igt_subtest_with_dynamic("planes-upscaling-downscaling") {
+			for_each_pipe_with_valid_output(&data.display, pipe, output)
+				igt_dynamic_f("pipe-%s-%s-planes-upscaling-downscaling",
+					       kmstest_pipe_name(pipe), igt_output_name(output))
+					test_plane_scaling_combo(&data, pipe, output, TEST_UPSCALING_DOWNSCALING);
+		}
+
 		igt_describe("Tests scaling with pixel formats.");
 		igt_subtest_with_dynamic("scaler-with-pixel-format") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-- 
2.25.1

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

* [igt-dev] [v4 8/9] tests/kms_plane_scaling: Add negative test to check num of scalers
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
                   ` (6 preceding siblings ...)
  2022-02-15 12:23 ` [igt-dev] [v4 7/9] tests/kms_plane_scaling: Upscaling and downscaling scenario Swati Sharma
@ 2022-02-15 12:23 ` Swati Sharma
  2022-02-15 12:23 ` [igt-dev] [v4 9/9] tests/kms_plane_scaling: Refactor clipping-clamping subtest Swati Sharma
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

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

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 181c58e1..d99007b4 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -514,6 +514,71 @@ test_plane_scaling_combo(data_t *d, enum pipe pipe, igt_output_t *output, uint32
         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]);
+
+	/* 1st plane upscaling */
+	igt_plane_set_size(d->plane1, width1, height1);
+	/* 2nd plane upscaling */
+	igt_plane_set_size(d->plane2, width1, height1);
+	/* 3rd 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 bool test_pipe_iteration(data_t *data, enum pipe pipe, int iteration)
 {
 	if (!is_i915_device(data->drm_fd) ||
@@ -868,6 +933,14 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 					test_plane_scaling_combo(&data, pipe, output, TEST_UPSCALING_DOWNSCALING);
 		}
 
+		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 pixel formats.");
 		igt_subtest_with_dynamic("scaler-with-pixel-format") {
 			for_each_pipe_with_single_output(&data.display, pipe, output)
-- 
2.25.1

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

* [igt-dev] [v4 9/9] tests/kms_plane_scaling: Refactor clipping-clamping subtest
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
                   ` (7 preceding siblings ...)
  2022-02-15 12:23 ` [igt-dev] [v4 8/9] tests/kms_plane_scaling: Add negative test to check num of scalers Swati Sharma
@ 2022-02-15 12:23 ` Swati Sharma
  2022-02-15 18:23 ` [igt-dev] ✓ Fi.CI.BAT: success for Addition of new plane scaling test cases (rev6) Patchwork
  2022-02-15 21:59 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  10 siblings, 0 replies; 20+ messages in thread
From: Swati Sharma @ 2022-02-15 12:23 UTC (permalink / raw)
  To: igt-dev

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

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

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index d99007b4..e86313c1 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -86,45 +86,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,
@@ -579,18 +550,6 @@ test_invalid_num_scalers(data_t *d, enum pipe pipe, igt_output_t *output)
 	igt_remove_fb(display->drm_fd, &d->fb[3]);
 }
 
-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, enum pipe pipe,
 					   igt_output_t *output)
 {
@@ -673,89 +632,83 @@ static void test_scaler_with_pixel_format_pipe(data_t *d, enum pipe pipe, igt_ou
 }
 
 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, 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;
+	int width, height;
+	drmModeModeInfo *mode;
 
-	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);
+	cleanup_crtc(d);
+
+	igt_output_set_pipe(output, pipe);
+
+	mode = igt_output_get_mode(output);
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
+	igt_create_color_fb(display->drm_fd, width, height,
+			    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);
+	igt_plane_set_size(plane, mode->hdisplay + 200, mode->vdisplay + 200);
+	igt_plane_set_rotation(plane, rot);
 
 	/*
 	 * Can't guarantee that the clipped coordinates are
 	 * suitably aligned for yuv. So allow the 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, 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,
+										     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)
@@ -959,7 +912,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		igt_subtest_with_dynamic("scaler-with-clipping-clamping") {
 			for_each_pipe_with_single_output(&data.display, pipe, 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, pipe, output);
 		}
 	}
 
-- 
2.25.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for Addition of new plane scaling test cases (rev6)
  2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
                   ` (8 preceding siblings ...)
  2022-02-15 12:23 ` [igt-dev] [v4 9/9] tests/kms_plane_scaling: Refactor clipping-clamping subtest Swati Sharma
@ 2022-02-15 18:23 ` Patchwork
  2022-02-15 21:59 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  10 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2022-02-15 18:23 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

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

== Series Details ==

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

== Summary ==

CI Bug Log - changes from CI_DRM_11229 -> IGTPW_6623
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (47 -> 46)
------------------------------

  Additional (2): fi-icl-u2 fi-pnv-d510 
  Missing    (3): fi-bsw-cyan shard-rkl shard-tglu 

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

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

### IGT changes ###

#### Suppressed ####

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

  * igt@i915_selftest@live@hangcheck:
    - {fi-ehl-2}:         [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/fi-ehl-2/igt@i915_selftest@live@hangcheck.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-ehl-2/igt@i915_selftest@live@hangcheck.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@semaphore:
    - fi-hsw-4770:        NOTRUN -> [SKIP][3] ([fdo#109271] / [fdo#109315]) +17 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-hsw-4770/igt@amdgpu/amd_basic@semaphore.html

  * igt@amdgpu/amd_cs_nop@fork-compute0:
    - fi-blb-e6850:       NOTRUN -> [SKIP][4] ([fdo#109271]) +17 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-blb-e6850/igt@amdgpu/amd_cs_nop@fork-compute0.html

  * igt@fbdev@write:
    - fi-icl-u2:          NOTRUN -> [DMESG-WARN][5] ([i915#5060])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-icl-u2/igt@fbdev@write.html

  * igt@gem_exec_suspend@basic-s3:
    - fi-skl-6600u:       NOTRUN -> [FAIL][6] ([i915#4547])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-skl-6600u/igt@gem_exec_suspend@basic-s3.html

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

  * igt@i915_selftest@live@execlists:
    - fi-bsw-kefka:       [PASS][8] -> [INCOMPLETE][9] ([i915#2940])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/fi-bsw-kefka/igt@i915_selftest@live@execlists.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-bsw-kefka/igt@i915_selftest@live@execlists.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cml-u2:          [PASS][10] -> [DMESG-WARN][11] ([i915#4269])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html

  * igt@runner@aborted:
    - fi-icl-u2:          NOTRUN -> [FAIL][12] ([i915#2426] / [i915#3690])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-icl-u2/igt@runner@aborted.html
    - fi-bsw-kefka:       NOTRUN -> [FAIL][13] ([fdo#109271] / [i915#1436] / [i915#2722] / [i915#3428] / [i915#4312])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-bsw-kefka/igt@runner@aborted.html
    - fi-skl-6600u:       NOTRUN -> [FAIL][14] ([i915#4312])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-skl-6600u/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@coherency:
    - {fi-tgl-dsi}:       [INCOMPLETE][15] -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/fi-tgl-dsi/igt@i915_selftest@live@coherency.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-tgl-dsi/igt@i915_selftest@live@coherency.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-4770:        [INCOMPLETE][17] ([i915#3303]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-hsw-4770/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@requests:
    - fi-blb-e6850:       [DMESG-FAIL][19] ([i915#4528] / [i915#5026]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/fi-blb-e6850/igt@i915_selftest@live@requests.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/fi-blb-e6850/igt@i915_selftest@live@requests.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
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2722]: https://gitlab.freedesktop.org/drm/intel/issues/2722
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
  [i915#3428]: https://gitlab.freedesktop.org/drm/intel/issues/3428
  [i915#3690]: https://gitlab.freedesktop.org/drm/intel/issues/3690
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4547]: https://gitlab.freedesktop.org/drm/intel/issues/4547
  [i915#4897]: https://gitlab.freedesktop.org/drm/intel/issues/4897
  [i915#5026]: https://gitlab.freedesktop.org/drm/intel/issues/5026
  [i915#5060]: https://gitlab.freedesktop.org/drm/intel/issues/5060


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6345 -> IGTPW_6623

  CI-20190529: 20190529
  CI_DRM_11229: 633bb0541185395f3777b64cfd54101cda5fec15 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6623: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/index.html
  IGT_6345: ee18c0497ec2c74007e299c3fdd26f1613b9f514 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git



== Testlist changes ==

+igt@kms_plane_scaling@invalid-num-scalers
+igt@kms_plane_scaling@planes-downscaling-downscaling
+igt@kms_plane_scaling@planes-upscaling-downscaling
+igt@kms_plane_scaling@planes-upscaling-upscaling
+igt@kms_plane_scaling@plane-downscaling
+igt@kms_plane_scaling@plane-upscaling
-igt@kms_plane_scaling@plane-scaling

== Logs ==

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

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

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

* Re: [igt-dev] [v4 3/9] tests/kms_plane_scaling: Upscaling each plane
  2022-02-15 12:23 ` [igt-dev] [v4 3/9] tests/kms_plane_scaling: Upscaling each plane Swati Sharma
@ 2022-02-15 20:43   ` Ville Syrjälä
  0 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjälä @ 2022-02-15 20:43 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

On Tue, Feb 15, 2022 at 05:53:38PM +0530, Swati Sharma wrote:
> Subtest for testing upscaling for each plane
> individually (checked 1 plane per "class" like
> we do in other tests)
> 
> v2: -set modifier as LINEAR (Ville)
>     -shared code for upscaling and downscaling tests (Ville)
>     -removed num_scaler() check and added try_commit() (Ville)
> 
> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> ---
>  tests/kms_plane_scaling.c | 71 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 71 insertions(+)
> 
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 1cf62841..39f2de3c 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -29,6 +29,11 @@
>  
>  IGT_TEST_DESCRIPTION("Test display plane scaling");
>  
> +/* Test flags. */
> +enum {
> +	TEST_UPSCALING = 1 << 0,
> +};

That doesn't seem like it's actually used as flags.
So looks to me like it can be a straight up enum.

> +
>  typedef struct {
>  	uint32_t devid;
>  	int drm_fd;
> @@ -230,6 +235,65 @@ static bool test_format(data_t *data,
>  	return true;
>  }
>  
> +static void
> +__test_plane_upscaling(data_t *d, igt_plane_t *plane,
> +		       enum pipe pipe, igt_output_t *output)
> +{
> +	igt_display_t *display = &d->display;
> +	int width, height, ret;
> +	drmModeModeInfo *mode;
> +
> +	cleanup_crtc(d);
> +
> +	igt_output_set_pipe(output, pipe);
> +	mode = igt_output_get_mode(output);
> +	width = height = 20;
> +
> +	igt_create_color_pattern_fb(display->drm_fd,
> +                                    width, height,
> +                                    DRM_FORMAT_XRGB8888,
> +                                    I915_TILING_NONE,
> +                                    1.0, 0.0, 0.0, &d->fb[0]);
> +
> +	igt_plane_set_fb(plane, &d->fb[0]);
> +	igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
> +	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +	igt_display_commit2(display, COMMIT_ATOMIC);
> +
> +	igt_plane_set_fb(plane, NULL);
> +	igt_remove_fb(display->drm_fd, &d->fb[0]);
> +
> +	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");

So we skip on -EINVAL and pass on anything else (error or success).
Is that going to tell us something useful?

> +}
> +
> +static void
> +test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t flags)
> +{
> +	igt_display_t *display = &d->display;
> +	uint64_t modifier = DRM_FORMAT_MOD_LINEAR;
> +	igt_plane_t *plane;
> +
> +	for_each_plane_on_pipe(display, pipe, plane) {
> +		struct igt_vec tested_formats;
> +
> +		if (plane->type == DRM_PLANE_TYPE_CURSOR)
> +			continue;
> +
> +		igt_vec_init(&tested_formats, sizeof(uint32_t));
> +
> +		for (int j = 0; j < plane->drm_plane->count_formats; j++) {
> +			uint32_t format = plane->drm_plane->formats[j];
> +			if (test_format(d, &tested_formats, format) &&
> +			    igt_plane_has_format_mod(plane, format, modifier) &&
> +			    can_scale(d, format))
> +				if (flags & TEST_UPSCALING)

I'd probably just have passed a function pointer rather than add that
enum. But maybe it's useful for the other tests...

> +					__test_plane_upscaling(d, plane, pipe, output);
> +		}
> +
> +		igt_vec_fini(&tested_formats);
> +	}
> +}
> +
>  static bool test_pipe_iteration(data_t *data, enum pipe pipe, int iteration)
>  {
>  	if (!is_i915_device(data->drm_fd) ||
> @@ -547,6 +611,13 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>  	igt_subtest_group {
>  		igt_output_t *output;
>  
> +		igt_describe("Tests plane upscaling.");
> +		igt_subtest_with_dynamic("plane-upscaling") {
> +			for_each_pipe_with_single_output(&data.display, pipe, output)
> +				igt_dynamic_f("pipe-%s-%s-upscaling", kmstest_pipe_name(pipe), igt_output_name(output))
> +					test_plane_scaling(&data, pipe, output, TEST_UPSCALING);
> +		}
> +
>  		igt_describe("Tests scaling with pixel formats.");
>  		igt_subtest_with_dynamic("scaler-with-pixel-format") {
>  			for_each_pipe_with_single_output(&data.display, pipe, output)
> -- 
> 2.25.1

-- 
Ville Syrjälä
Intel

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

* Re: [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling each plane
  2022-02-15 12:23 ` [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling " Swati Sharma
@ 2022-02-15 20:43   ` Ville Syrjälä
       [not found]   ` <a85c6701-43ad-4b25-6184-8798e8db2e2d@quicinc.com>
  1 sibling, 0 replies; 20+ messages in thread
From: Ville Syrjälä @ 2022-02-15 20:43 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

On Tue, Feb 15, 2022 at 05:53:39PM +0530, Swati Sharma wrote:
> Subtest for testing downscaling for each plane
> individually (checked 1 plane per "class" like
> we do in other tests).
> 
> v2: -set modifier as LINEAR (Ville)
>     -shared code for upscaling and downscaling tests (Ville)
>     -removed num_scaler() check and added try_commit() (Ville)
> 
> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> ---
>  tests/kms_plane_scaling.c | 55 ++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 54 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 39f2de3c..e960a6c5 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -32,6 +32,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
>  /* Test flags. */
>  enum {
>  	TEST_UPSCALING = 1 << 0,
> +	TEST_DOWNSCALING = 1 << 1,
>  };
>  
>  typedef struct {
> @@ -266,6 +267,48 @@ __test_plane_upscaling(data_t *d, igt_plane_t *plane,
>  	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>  }
>  
> +static void
> +__test_plane_downscaling(data_t *d, igt_plane_t *plane,
> +		         enum pipe pipe, igt_output_t *output)
> +{
> +	igt_display_t *display = &d->display;
> +	int width, height;
> +	drmModeModeInfo *mode;
> +	bool test_complete = false;
> +	int scaling = 50;
> +	int ret;
> +
> +	cleanup_crtc(d);
> +
> +	igt_output_set_pipe(output, pipe);
> +	mode = igt_output_get_mode(output);
> +	width = mode->hdisplay;
> +	height = mode->vdisplay;
> +
> +	igt_create_color_pattern_fb(display->drm_fd,
> +				    width, height,
> +				    DRM_FORMAT_XRGB8888,
> +				    I915_TILING_NONE,
> +				    1.0, 0.0, 0.0, &d->fb[0]);
> +
> +	igt_plane_set_fb(plane, &d->fb[0]);
> +
> +	while(!test_complete) {
> +		igt_plane_set_size(plane, (width * scaling) / 100, (height * scaling) / 100);
> +		ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +
> +		if (ret != -EINVAL)
> +			test_complete = true;
> +
> +		scaling += 5;

This looks like it could go on forever.

> +	}
> +
> +	igt_plane_set_fb(plane, NULL);
> +	igt_remove_fb(display->drm_fd, &d->fb[0]);
> +
> +	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
> +}
> +
>  static void
>  test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t flags)
>  {
> @@ -285,9 +328,12 @@ test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t fla
>  			uint32_t format = plane->drm_plane->formats[j];
>  			if (test_format(d, &tested_formats, format) &&
>  			    igt_plane_has_format_mod(plane, format, modifier) &&
> -			    can_scale(d, format))
> +			    can_scale(d, format)) {
>  				if (flags & TEST_UPSCALING)
>  					__test_plane_upscaling(d, plane, pipe, output);
> +				if (flags & TEST_DOWNSCALING)
> +					__test_plane_downscaling(d, plane, pipe, output);
> +				}
>  		}
>  
>  		igt_vec_fini(&tested_formats);
> @@ -618,6 +664,13 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>  					test_plane_scaling(&data, pipe, output, TEST_UPSCALING);
>  		}
>  
> +		igt_describe("Tests plane downscaling.");
> +		igt_subtest_with_dynamic("plane-downscaling") {
> +			for_each_pipe_with_single_output(&data.display, pipe, output)
> +				igt_dynamic_f("pipe-%s-%s-downscaling", kmstest_pipe_name(pipe), igt_output_name(output))
> +					test_plane_scaling(&data, pipe, output, TEST_DOWNSCALING);
> +		}
> +
>  		igt_describe("Tests scaling with pixel formats.");
>  		igt_subtest_with_dynamic("scaler-with-pixel-format") {
>  			for_each_pipe_with_single_output(&data.display, pipe, output)
> -- 
> 2.25.1

-- 
Ville Syrjälä
Intel

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

* Re: [igt-dev] [v4 5/9] tests/kms_plane_scaling: Upscaling on 2 planes
  2022-02-15 12:23 ` [igt-dev] [v4 5/9] tests/kms_plane_scaling: Upscaling on 2 planes Swati Sharma
@ 2022-02-15 20:43   ` Ville Syrjälä
  0 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjälä @ 2022-02-15 20:43 UTC (permalink / raw)
  To: Swati Sharma; +Cc: igt-dev

On Tue, Feb 15, 2022 at 05:53:40PM +0530, Swati Sharma wrote:
> i915 driver supports 2 scalers per pipe. Added test case
> to upscale 2 overlay 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)
> 
> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> ---
>  tests/kms_plane_scaling.c | 85 +++++++++++++++++++++++++++++++++++++++
>  1 file changed, 85 insertions(+)
> 
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index e960a6c5..11bf5af9 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -33,6 +33,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
>  enum {
>  	TEST_UPSCALING = 1 << 0,
>  	TEST_DOWNSCALING = 1 << 1,
> +	TEST_UPSCALING_UPSCALING = 1 << 2,
>  };
>  
>  typedef struct {
> @@ -340,6 +341,83 @@ test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t fla
>  	}
>  }
>  
> +static void
> +__test_planes_upscaling_upscaling(data_t *d, enum pipe pipe, igt_output_t *output,
> +				  igt_plane_t *overlay1, igt_plane_t *overlay2,
> +				  struct igt_fb *fb1, struct igt_fb *fb2)
> +{
> +	igt_display_t *display = &d->display;
> +	drmModeModeInfo *mode;
> +	int width, height;
> +	int ret;
> +
> +	mode = igt_output_get_mode(output);
> +	width = mode->hdisplay;
> +	height = mode->vdisplay;
> +
> +	igt_plane_set_fb(overlay1, fb1);
> +	igt_plane_set_fb(overlay2, fb2);
> +
> +	/* 1st overlay plane upscaling */
> +	igt_plane_set_size(overlay1, width, height);
> +	/* 2nd overlay plane upscaling */
> +	igt_plane_set_size(overlay2, width - 20, height - 20);
> +	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +
> +	igt_plane_set_fb(overlay1, NULL);
> +	igt_plane_set_fb(overlay2, NULL);
> +
> +	igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
> +}
> +
> +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_plane_scaling_combo(data_t *d, enum pipe pipe, igt_output_t *output, uint32_t flags)
> +{
> +	igt_display_t *display = &d->display;
> +	int width, height;
> +
> +	cleanup_crtc(d);
> +
> +	width = height = 20;
> +
> +	if (flags & TEST_UPSCALING_UPSCALING) {
> +		setup_fb(display->drm_fd, width, height, 1.0, 0.0, 0.0, &d->fb[1]);
> +		setup_fb(display->drm_fd, width, height, 0.0, 1.0, 0.0, &d->fb[2]);
> +	}
> +
> +	igt_output_set_pipe(output, pipe);
> +
> +	for (int k = 0; k < display->pipes[pipe].n_planes; k++) {
> +		igt_plane_t *plane1, *plane2;
> +
> +		plane1 = &display->pipes[pipe].planes[k];
> +		igt_require(plane1);
> +		plane2 = &display->pipes[pipe].planes[k+1];
> +		igt_require(plane2);
> +
> +		if (plane1->type == DRM_PLANE_TYPE_PRIMARY  || plane1->type == DRM_PLANE_TYPE_CURSOR ||
> +		    plane2->type == DRM_PLANE_TYPE_PRIMARY || plane2->type ==DRM_PLANE_TYPE_CURSOR)
> +				continue;

Why are we not interested in primary planes in this test?
I think you were testing them in the individual plane tests.

> +
> +		if (flags & TEST_UPSCALING_UPSCALING)
> +			__test_planes_upscaling_upscaling(d, pipe, output, plane1, plane2,
> +							  &d->fb[1], &d->fb[2]);
> +	}
> +
> +	igt_remove_fb(display->drm_fd, &d->fb[1]);
> +        igt_remove_fb(display->drm_fd, &d->fb[2]);

Some kind of whitespace gremlin was here.

> +}
> +
>  static bool test_pipe_iteration(data_t *data, enum pipe pipe, int iteration)
>  {
>  	if (!is_i915_device(data->drm_fd) ||
> @@ -671,6 +749,13 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>  					test_plane_scaling(&data, pipe, output, TEST_DOWNSCALING);
>  		}
>  
> +		igt_describe("Tests upscaling of 2 overlay planes.");
> +		igt_subtest_with_dynamic("planes-upscaling-upscaling") {
> +			for_each_pipe_with_single_output(&data.display, pipe, output)
> +				igt_dynamic_f("pipe-%s-%s-planes-upscaling-upscaling", kmstest_pipe_name(pipe), igt_output_name(output))
> +					test_plane_scaling_combo(&data, pipe, output, TEST_UPSCALING_UPSCALING);
> +		}
> +
>  		igt_describe("Tests scaling with pixel formats.");
>  		igt_subtest_with_dynamic("scaler-with-pixel-format") {
>  			for_each_pipe_with_single_output(&data.display, pipe, output)
> -- 
> 2.25.1

-- 
Ville Syrjälä
Intel

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

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

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

== Series Details ==

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

== Summary ==

CI Bug Log - changes from CI_DRM_11229_full -> IGTPW_6623_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_6623_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_6623_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_6623/index.html

Participating hosts (13 -> 8)
------------------------------

  Missing    (5): pig-kbl-iris pig-glk-j5005 pig-skl-6260u shard-rkl shard-dg1 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_eio@in-flight-suspend:
    - shard-iclb:         [PASS][1] -> [DMESG-WARN][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-iclb6/igt@gem_eio@in-flight-suspend.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb4/igt@gem_eio@in-flight-suspend.html

  * {igt@kms_plane_scaling@plane-upscaling@pipe-b-vga-1-upscaling} (NEW):
    - shard-snb:          NOTRUN -> [FAIL][3] +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-snb6/igt@kms_plane_scaling@plane-upscaling@pipe-b-vga-1-upscaling.html

  * {igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-dp-1-planes-downscaling-downscaling} (NEW):
    - shard-kbl:          NOTRUN -> [FAIL][4] +2 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl7/igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-dp-1-planes-downscaling-downscaling.html

  * {igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-edp-1-planes-downscaling-downscaling} (NEW):
    - shard-tglb:         NOTRUN -> [FAIL][5] +3 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb8/igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-edp-1-planes-downscaling-downscaling.html

  * {igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-hdmi-a-1-planes-downscaling-downscaling} (NEW):
    - shard-glk:          NOTRUN -> [FAIL][6] +5 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-glk3/igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-hdmi-a-1-planes-downscaling-downscaling.html

  * {igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-dp-1-planes-downscaling-downscaling} (NEW):
    - shard-apl:          NOTRUN -> [FAIL][7] +2 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-apl4/igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-dp-1-planes-downscaling-downscaling.html

  * {igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-edp-1-planes-downscaling-downscaling} (NEW):
    - shard-iclb:         NOTRUN -> [FAIL][8] +2 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb3/igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-edp-1-planes-downscaling-downscaling.html

  * {igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-hdmi-a-1-planes-downscaling-downscaling} (NEW):
    - {shard-tglu}:       NOTRUN -> [FAIL][9] +3 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglu-1/igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-hdmi-a-1-planes-downscaling-downscaling.html

  
New tests
---------

  New tests have been introduced between CI_DRM_11229_full and IGTPW_6623_full:

### New IGT tests (104) ###

  * 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] s

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-a-hdmi-a-1-invalid-num-scalers:
    - Statuses : 2 pass(s)
    - Exec time: [0.02, 0.13] 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] s

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

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-b-hdmi-a-2-invalid-num-scalers:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] 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.01, 0.02] s

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

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

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

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

  * igt@kms_plane_scaling@plane-downscaling:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-a-dp-1-downscaling:
    - Statuses : 2 pass(s)
    - Exec time: [0.88, 1.47] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-a-edp-1-downscaling:
    - Statuses : 2 pass(s)
    - Exec time: [3.64, 3.93] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-a-hdmi-a-1-downscaling:
    - Statuses : 1 pass(s)
    - Exec time: [2.25] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-a-vga-1-downscaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.36] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-b-dp-1-downscaling:
    - Statuses : 2 pass(s)
    - Exec time: [0.75, 1.23] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-b-edp-1-downscaling:
    - Statuses : 2 pass(s)
    - Exec time: [3.46, 3.73] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-b-hdmi-a-2-downscaling:
    - Statuses : 1 pass(s)
    - Exec time: [1.99] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-b-vga-1-downscaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.24] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-c-dp-1-downscaling:
    - Statuses : 2 pass(s)
    - Exec time: [0.65, 0.88] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-c-edp-1-downscaling:
    - Statuses : 2 pass(s)
    - Exec time: [3.72, 4.12] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-c-hdmi-a-1-downscaling:
    - Statuses : 1 pass(s)
    - Exec time: [1.78] s

  * igt@kms_plane_scaling@plane-downscaling@pipe-d-edp-1-downscaling:
    - Statuses : 1 pass(s)
    - Exec time: [4.20] s

  * igt@kms_plane_scaling@plane-upscaling:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-a-dp-1-upscaling:
    - Statuses : 2 pass(s)
    - Exec time: [0.42, 0.59] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-a-edp-1-upscaling:
    - Statuses : 2 pass(s)
    - Exec time: [1.56, 2.34] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-a-hdmi-a-1-upscaling:
    - Statuses : 1 pass(s)
    - Exec time: [1.09] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-a-vga-1-upscaling:
    - Statuses : 1 fail(s)
    - Exec time: [0.34] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-b-dp-1-upscaling:
    - Statuses : 2 pass(s)
    - Exec time: [0.53, 0.75] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-b-edp-1-upscaling:
    - Statuses : 2 pass(s)
    - Exec time: [2.68, 3.47] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-b-hdmi-a-2-upscaling:
    - Statuses : 1 pass(s)
    - Exec time: [1.35] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-b-vga-1-upscaling:
    - Statuses : 1 fail(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-c-dp-1-upscaling:
    - Statuses : 2 pass(s)
    - Exec time: [0.47, 0.57] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-c-edp-1-upscaling:
    - Statuses : 2 pass(s)
    - Exec time: [2.68, 3.45] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-c-hdmi-a-1-upscaling:
    - Statuses : 1 pass(s)
    - Exec time: [1.25] s

  * igt@kms_plane_scaling@plane-upscaling@pipe-d-edp-1-upscaling:
    - Statuses : 1 pass(s)
    - Exec time: [2.69] s

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

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-dp-1-planes-downscaling-downscaling:
    - Statuses : 2 fail(s)
    - Exec time: [0.01, 0.02] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-edp-1-planes-downscaling-downscaling:
    - Statuses : 2 fail(s)
    - Exec time: [0.01] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-hdmi-a-1-planes-downscaling-downscaling:
    - Statuses : 2 fail(s)
    - Exec time: [0.00, 0.02] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-hdmi-a-2-planes-downscaling-downscaling:
    - Statuses : 1 fail(s)
    - Exec time: [0.02] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-a-vga-1-planes-downscaling-downscaling:
    - Statuses : 1 fail(s)
    - Exec time: [0.01] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-dp-1-planes-downscaling-downscaling:
    - Statuses : 2 fail(s)
    - Exec time: [0.01] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-edp-1-planes-downscaling-downscaling:
    - Statuses : 2 fail(s)
    - Exec time: [0.00] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-hdmi-a-1-planes-downscaling-downscaling:
    - Statuses : 2 fail(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-hdmi-a-2-planes-downscaling-downscaling:
    - Statuses : 1 fail(s)
    - Exec time: [0.01] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-b-vga-1-planes-downscaling-downscaling:
    - Statuses : 1 fail(s)
    - Exec time: [0.01] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-c-dp-1-planes-downscaling-downscaling:
    - Statuses : 2 fail(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-c-edp-1-planes-downscaling-downscaling:
    - Statuses : 2 fail(s)
    - Exec time: [0.00] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-c-hdmi-a-1-planes-downscaling-downscaling:
    - Statuses : 2 fail(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-c-hdmi-a-2-planes-downscaling-downscaling:
    - Statuses : 1 fail(s)
    - Exec time: [0.01] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-d-edp-1-planes-downscaling-downscaling:
    - Statuses : 1 fail(s)
    - Exec time: [0.00] s

  * igt@kms_plane_scaling@planes-downscaling-downscaling@pipe-d-hdmi-a-1-planes-downscaling-downscaling:
    - Statuses : 1 fail(s)
    - Exec time: [0.00] s

  * igt@kms_plane_scaling@planes-upscaling-downscaling:
    - Statuses :
    - Exec time: [None] s

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

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

  * igt@kms_plane_scaling@planes-upscaling-upscaling@pipe-a-hdmi-a-1-planes-upscaling-upscaling:
    - Statuses : 1 pass(s)
    - Exec time: [0.29] s

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

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

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

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

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

  * igt@kms_plane_scaling@planes-upscaling-upscaling@pipe-c-hdmi-a-1-planes-upscaling-upscaling:
    - Statuses : 1 skip(s)
    - Exec time: [0.07] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-a-dp-1-scaler-with-clipping-clamping:
    - Statuses : 1 pass(s)
    - Exec time: [4.01] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-a-edp-1-scaler-with-clipping-clamping:
    - Statuses : 2 pass(s)
    - Exec time: [30.23, 35.12] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-a-hdmi-a-1-scaler-with-clipping-clamping:
    - Statuses : 1 pass(s)
    - Exec time: [15.45] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-a-vga-1-scaler-with-clipping-clamping:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-dp-1-scaler-with-clipping-clamping:
    - Statuses : 1 pass(s)
    - Exec time: [4.23] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-edp-1-scaler-with-clipping-clamping:
    - Statuses : 2 pass(s)
    - Exec time: [36.64, 39.07] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-hdmi-a-2-scaler-with-clipping-clamping:
    - Statuses : 1 pass(s)
    - Exec time: [15.07] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-b-vga-1-scaler-with-clipping-clamping:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-dp-1-scaler-with-clipping-clamping:
    - Statuses : 1 pass(s)
    - Exec time: [0.48] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-edp-1-scaler-with-clipping-clamping:
    - Statuses : 2 pass(s)
    - Exec time: [1.91, 2.32] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-hdmi-a-1-scaler-with-clipping-clamping:
    - Statuses : 1 pass(s)
    - Exec time: [1.22] s

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-d-edp-1-scaler-with-clipping-clamping:
    - Statuses : 1 pass(s)
    - Exec time: [1.94] s

  * igt@kms_plane_scaling@scaler-with-pixel-format@pipe-a-dp-1-scaler-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [2.48] s

  * igt@kms_plane_scaling@scaler-with-pixel-format@pipe-a-edp-1-scaler-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [8.66] s

  * igt@kms_plane_scaling@scaler-with-pixel-format@pipe-a-hdmi-a-1-scaler-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [4.16] s

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

  * igt@kms_plane_scaling@scaler-with-pixel-format@pipe-b-dp-1-scaler-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [2.68] s

  * igt@kms_plane_scaling@scaler-with-pixel-format@pipe-b-edp-1-scaler-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [9.78] s

  * igt@kms_plane_scaling@scaler-with-pixel-format@pipe-b-hdmi-a-2-scaler-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [4.80] s

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

  * igt@kms_plane_scaling@scaler-with-pixel-format@pipe-c-dp-1-scaler-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [1.87] s

  * igt@kms_plane_scaling@scaler-with-pixel-format@pipe-c-edp-1-scaler-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [9.81] s

  * igt@kms_plane_scaling@scaler-with-pixel-format@pipe-c-hdmi-a-1-scaler-with-pixel-format:
    - Statuses : 1 pass(s)
    - Exec time: [5.26] s

  * igt@kms_plane_scaling@scaler-with-rotation@pipe-a-dp-1-scaler-with-rotation:
    - Statuses : 1 pass(s)
    - Exec time: [2.39] s

  * igt@kms_plane_scaling@scaler-with-rotation@pipe-a-edp-1-scaler-with-rotation:
    - Statuses : 1 pass(s)
    - Exec time: [7.83] s

  * igt@kms_plane_scaling@scaler-with-rotation@pipe-a-hdmi-a-1-scaler-with-rotation:
    - Statuses : 1 pass(s)
    - Exec time: [4.21] s

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

  * igt@kms_plane_scaling@scaler-with-rotation@pipe-b-dp-1-scaler-with-rotation:
    - Statuses : 1 pass(s)
    - Exec time: [2.58] s

  * igt@kms_plane_scaling@scaler-with-rotation@pipe-b-edp-1-scaler-with-rotation:
    - Statuses : 1 pass(s)
    - Exec time: [8.35] s

  * igt@kms_plane_scaling@scaler-with-rotation@pipe-b-hdmi-a-2-scaler-with-rotation:
    - Statuses : 1 pass(s)
    - Exec time: [4.25] s

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

  * igt@kms_plane_scaling@scaler-with-rotation@pipe-c-dp-1-scaler-with-rotation:
    - Statuses : 1 pass(s)
    - Exec time: [1.78] s

  * igt@kms_plane_scaling@scaler-with-rotation@pipe-c-edp-1-scaler-with-rotation:
    - Statuses : 1 pass(s)
    - Exec time: [8.21] s

  * igt@kms_plane_scaling@scaler-with-rotation@pipe-c-hdmi-a-1-scaler-with-rotation:
    - Statuses : 1 pass(s)
    - Exec time: [4.38] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-contexts-10ms:
    - shard-tglb:         [PASS][10] -> [TIMEOUT][11] ([i915#3063])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-tglb2/igt@gem_eio@in-flight-contexts-10ms.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb6/igt@gem_eio@in-flight-contexts-10ms.html

  * igt@gem_eio@in-flight-contexts-immediate:
    - shard-iclb:         [PASS][12] -> [TIMEOUT][13] ([i915#3070])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-iclb5/igt@gem_eio@in-flight-contexts-immediate.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb3/igt@gem_eio@in-flight-contexts-immediate.html

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-tglb:         NOTRUN -> [DMESG-FAIL][14] ([i915#5076])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb3/igt@gem_exec_balancer@parallel-ordering.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-kbl:          NOTRUN -> [FAIL][15] ([i915#2846])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl7/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none-rrul@rcs0:
    - shard-kbl:          NOTRUN -> [FAIL][16] ([i915#2842])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl1/igt@gem_exec_fair@basic-none-rrul@rcs0.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-tglb:         [PASS][17] -> [FAIL][18] ([i915#2842])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-tglb6/igt@gem_exec_fair@basic-none-share@rcs0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb2/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-glk:          NOTRUN -> [FAIL][19] ([i915#2842]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-glk4/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@rcs0:
    - shard-kbl:          [PASS][20] -> [FAIL][21] ([i915#2842])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-kbl7/igt@gem_exec_fair@basic-pace@rcs0.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl3/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-iclb:         [PASS][22] -> [FAIL][23] ([i915#2842])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-iclb2/igt@gem_exec_fair@basic-pace@vcs0.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb4/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-glk:          [PASS][24] -> [FAIL][25] ([i915#2842]) +3 similar issues
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-glk3/igt@gem_exec_fair@basic-pace@vecs0.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-glk8/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_exec_parallel@engines@fds:
    - shard-iclb:         [PASS][26] -> [INCOMPLETE][27] ([i915#1895])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-iclb6/igt@gem_exec_parallel@engines@fds.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb4/igt@gem_exec_parallel@engines@fds.html

  * igt@gem_exec_params@no-blt:
    - shard-tglb:         NOTRUN -> [SKIP][28] ([fdo#109283])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb3/igt@gem_exec_params@no-blt.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-kbl:          NOTRUN -> [SKIP][29] ([fdo#109271] / [i915#4613]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl6/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - shard-glk:          NOTRUN -> [SKIP][30] ([fdo#109271] / [i915#4613])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-glk4/igt@gem_lmem_swapping@parallel-random-engines.html
    - shard-apl:          NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#4613])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-apl8/igt@gem_lmem_swapping@parallel-random-engines.html
    - shard-tglb:         NOTRUN -> [SKIP][32] ([i915#4613])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb3/igt@gem_lmem_swapping@parallel-random-engines.html
    - shard-iclb:         NOTRUN -> [SKIP][33] ([i915#4613])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb1/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_partial_pwrite_pread@writes-after-reads:
    - shard-glk:          [PASS][34] -> [DMESG-WARN][35] ([i915#118])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-glk1/igt@gem_partial_pwrite_pread@writes-after-reads.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-glk7/igt@gem_partial_pwrite_pread@writes-after-reads.html

  * igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted:
    - shard-tglb:         NOTRUN -> [SKIP][36] ([i915#4270])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb8/igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted.html

  * igt@gem_softpin@noreloc-s3:
    - shard-apl:          [PASS][37] -> [DMESG-WARN][38] ([i915#180])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11229/shard-apl6/igt@gem_softpin@noreloc-s3.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-apl3/igt@gem_softpin@noreloc-s3.html

  * igt@gem_userptr_blits@input-checking:
    - shard-tglb:         NOTRUN -> [DMESG-WARN][39] ([i915#4990])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb7/igt@gem_userptr_blits@input-checking.html
    - shard-apl:          NOTRUN -> [DMESG-WARN][40] ([i915#4990])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-apl1/igt@gem_userptr_blits@input-checking.html
    - shard-glk:          NOTRUN -> [DMESG-WARN][41] ([i915#4990])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-glk5/igt@gem_userptr_blits@input-checking.html
    - shard-iclb:         NOTRUN -> [DMESG-WARN][42] ([i915#4990])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb2/igt@gem_userptr_blits@input-checking.html
    - shard-kbl:          NOTRUN -> [DMESG-WARN][43] ([i915#4990])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl4/igt@gem_userptr_blits@input-checking.html
    - shard-snb:          NOTRUN -> [DMESG-WARN][44] ([i915#4990])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-snb4/igt@gem_userptr_blits@input-checking.html

  * igt@gen9_exec_parse@bb-chained:
    - shard-iclb:         NOTRUN -> [SKIP][45] ([i915#2856])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb1/igt@gen9_exec_parse@bb-chained.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-tglb:         NOTRUN -> [SKIP][46] ([i915#2527] / [i915#2856]) +1 similar issue
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb6/igt@gen9_exec_parse@shadow-peek.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-kbl:          NOTRUN -> [FAIL][47] ([i915#454])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl3/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-tglb:         NOTRUN -> [SKIP][48] ([i915#4281])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb3/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rpm@pc8-residency:
    - shard-tglb:         NOTRUN -> [SKIP][49] ([fdo#109506] / [i915#2411])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb3/igt@i915_pm_rpm@pc8-residency.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-90:
    - shard-snb:          NOTRUN -> [SKIP][50] ([fdo#109271]) +47 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-snb6/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html
    - shard-tglb:         NOTRUN -> [SKIP][51] ([fdo#111614]) +3 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb5/igt@kms_big_fb@x-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-apl:          NOTRUN -> [SKIP][52] ([fdo#109271] / [i915#3777]) +2 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-apl1/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
    - shard-glk:          NOTRUN -> [SKIP][53] ([fdo#109271] / [i915#3777]) +2 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-glk9/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-kbl:          NOTRUN -> [SKIP][54] ([fdo#109271] / [i915#3777]) +4 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl6/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-iclb:         NOTRUN -> [SKIP][55] ([fdo#110723])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb8/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][56] ([i915#3689] / [i915#3886]) +3 similar issues
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb2/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][57] ([fdo#109271] / [i915#3886]) +2 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-apl3/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html
    - shard-glk:          NOTRUN -> [SKIP][58] ([fdo#109271] / [i915#3886]) +3 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-glk5/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][59] ([fdo#109278] / [i915#3886]) +2 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-iclb3/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][60] ([i915#3689]) +3 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb2/igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-kbl:          NOTRUN -> [SKIP][61] ([fdo#109271] / [i915#3886]) +10 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl6/igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][62] ([fdo#111615] / [i915#3689]) +2 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-tglb1/igt@kms_ccs@pipe-c-crc-primary-rotation-180-yf_tiled_ccs.html

  * igt@kms_chamelium@hdmi-hpd-storm:
    - shard-kbl:          NOTRUN -> [SKIP][63] ([fdo#109271] / [fdo#111827]) +20 similar issues
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-kbl7/igt@kms_chamelium@hdmi-hpd-storm.html

  * igt@kms_chamelium@vga-hpd:
    - shard-apl:          NOTRUN -> [SKIP][64] ([fdo#109271] / [fdo#111827]) +3 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6623/shard-apl4/igt@kms_chamelium@vga-hpd.html

  * igt@kms_color_chamelium@pipe-b-ctm-0-

== Logs ==

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

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

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

* Re: [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling each plane
       [not found]   ` <a85c6701-43ad-4b25-6184-8798e8db2e2d@quicinc.com>
@ 2022-02-17 12:15     ` Sharma, Swati2
  2022-02-17 18:22       ` Jessica Zhang
  0 siblings, 1 reply; 20+ messages in thread
From: Sharma, Swati2 @ 2022-02-17 12:15 UTC (permalink / raw)
  To: Jessica Zhang, igt-dev; +Cc: Petri Latvala

Hi Jessica/Petri,

Sorry missed your mail.

Do you think we should drop upscaling and downscaling single plane tests 
from
my series
https://patchwork.freedesktop.org/series/98333/ ?
That should be covered by your tests?

What do you think?

On 16-Feb-22 6:15 AM, Jessica Zhang wrote:
> 
> 
> On 2/15/2022 4:23 AM, Swati Sharma wrote:
>> Subtest for testing downscaling for each plane
>> individually (checked 1 plane per "class" like
>> we do in other tests).
>>
>> v2: -set modifier as LINEAR (Ville)
>>      -shared code for upscaling and downscaling tests (Ville)
>>      -removed num_scaler() check and added try_commit() (Ville)
>>
>> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
> 
> Hi Swati,
> 
> FYI, Petri and I have been working on a similar patch: [1][2]
> 
> For the latest version we've modified `check_scaling_pipe_plane_rot` so 
> that it takes in a custom buffer height/width and created multiple 
> subtests for different scaling factors.
> 
> I see that you've added tests for both upscaling and downscaling that do 
> something similar. Maybe our changes to `check_scaling_pipe_plane_rot` 
> can be useful for your series to reduce redundant code in both the 
> upscale and downscale cases? Let me know your thoughts on this.
> 
> Thanks,
> 
> Jessica Zhang
> 
> [1] latest version: 
> https://patchwork.freedesktop.org/patch/470921/?series=99364&rev=2
> [2] earlier version: 
> https://patchwork.freedesktop.org/patch/470856/?series=97584&rev=5
> 
>> ---
>>   tests/kms_plane_scaling.c | 55 ++++++++++++++++++++++++++++++++++++++-
>>   1 file changed, 54 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
>> index 39f2de3c..e960a6c5 100644
>> --- a/tests/kms_plane_scaling.c
>> +++ b/tests/kms_plane_scaling.c
>> @@ -32,6 +32,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
>>   /* Test flags. */
>>   enum {
>>       TEST_UPSCALING = 1 << 0,
>> +    TEST_DOWNSCALING = 1 << 1,
>>   };
>>   typedef struct {
>> @@ -266,6 +267,48 @@ __test_plane_upscaling(data_t *d, igt_plane_t 
>> *plane,
>>       igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>>   }
>> +static void
>> +__test_plane_downscaling(data_t *d, igt_plane_t *plane,
>> +                 enum pipe pipe, igt_output_t *output)
>> +{
>> +    igt_display_t *display = &d->display;
>> +    int width, height;
>> +    drmModeModeInfo *mode;
>> +    bool test_complete = false;
>> +    int scaling = 50;
>> +    int ret;
>> +
>> +    cleanup_crtc(d);
>> +
>> +    igt_output_set_pipe(output, pipe);
>> +    mode = igt_output_get_mode(output);
>> +    width = mode->hdisplay;
>> +    height = mode->vdisplay;
>> +
>> +    igt_create_color_pattern_fb(display->drm_fd,
>> +                    width, height,
>> +                    DRM_FORMAT_XRGB8888,
>> +                    I915_TILING_NONE,
>> +                    1.0, 0.0, 0.0, &d->fb[0]);
>> +
>> +    igt_plane_set_fb(plane, &d->fb[0]);
>> +
>> +    while(!test_complete) {
>> +        igt_plane_set_size(plane, (width * scaling) / 100, (height * 
>> scaling) / 100);
>> +        ret = igt_display_try_commit_atomic(display, 
>> DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>> +
>> +        if (ret != -EINVAL)
>> +            test_complete = true;
>> +
>> +        scaling += 5;
>> +    }
>> +
>> +    igt_plane_set_fb(plane, NULL);
>> +    igt_remove_fb(display->drm_fd, &d->fb[0]);
>> +
>> +    igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>> +}
>> +
>>   static void
>>   test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, 
>> uint32_t flags)
>>   {
>> @@ -285,9 +328,12 @@ test_plane_scaling(data_t *d, enum pipe pipe, 
>> igt_output_t *output, uint32_t fla
>>               uint32_t format = plane->drm_plane->formats[j];
>>               if (test_format(d, &tested_formats, format) &&
>>                   igt_plane_has_format_mod(plane, format, modifier) &&
>> -                can_scale(d, format))
>> +                can_scale(d, format)) {
>>                   if (flags & TEST_UPSCALING)
>>                       __test_plane_upscaling(d, plane, pipe, output);
>> +                if (flags & TEST_DOWNSCALING)
>> +                    __test_plane_downscaling(d, plane, pipe, output);
>> +                }
>>           }
>>           igt_vec_fini(&tested_formats);
>> @@ -618,6 +664,13 @@ igt_main_args("", long_opts, help_str, 
>> opt_handler, &data)
>>                       test_plane_scaling(&data, pipe, output, 
>> TEST_UPSCALING);
>>           }
>> +        igt_describe("Tests plane downscaling.");
>> +        igt_subtest_with_dynamic("plane-downscaling") {
>> +            for_each_pipe_with_single_output(&data.display, pipe, 
>> output)
>> +                igt_dynamic_f("pipe-%s-%s-downscaling", 
>> kmstest_pipe_name(pipe), igt_output_name(output))
>> +                    test_plane_scaling(&data, pipe, output, 
>> TEST_DOWNSCALING);
>> +        }
>> +
>>           igt_describe("Tests scaling with pixel formats.");
>>           igt_subtest_with_dynamic("scaler-with-pixel-format") {
>>               for_each_pipe_with_single_output(&data.display, pipe, 
>> output)
>> -- 
>> 2.25.1
>>

-- 
~Swati Sharma

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

* Re: [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling each plane
  2022-02-17 12:15     ` Sharma, Swati2
@ 2022-02-17 18:22       ` Jessica Zhang
  2022-02-17 18:37         ` Sharma, Swati2
  0 siblings, 1 reply; 20+ messages in thread
From: Jessica Zhang @ 2022-02-17 18:22 UTC (permalink / raw)
  To: Sharma, Swati2, igt-dev; +Cc: Petri Latvala



On 2/17/2022 4:15 AM, Sharma, Swati2 wrote:
> Hi Jessica/Petri,
> 
> Sorry missed your mail.
> 
> Do you think we should drop upscaling and downscaling single plane tests 
> from
> my series
> https://patchwork.freedesktop.org/series/98333/ ?
> That should be covered by your tests?
> 
> What do you think?

Hi Swati,

Yep, sounds good! We have upscale tests for single plane in Petri's 
patch and we can add downscale tests too.

Thanks,

Jessica Zhang

> 
> On 16-Feb-22 6:15 AM, Jessica Zhang wrote:
>>
>>
>> On 2/15/2022 4:23 AM, Swati Sharma wrote:
>>> Subtest for testing downscaling for each plane
>>> individually (checked 1 plane per "class" like
>>> we do in other tests).
>>>
>>> v2: -set modifier as LINEAR (Ville)
>>>      -shared code for upscaling and downscaling tests (Ville)
>>>      -removed num_scaler() check and added try_commit() (Ville)
>>>
>>> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
>>
>> Hi Swati,
>>
>> FYI, Petri and I have been working on a similar patch: [1][2]
>>
>> For the latest version we've modified `check_scaling_pipe_plane_rot` 
>> so that it takes in a custom buffer height/width and created multiple 
>> subtests for different scaling factors.
>>
>> I see that you've added tests for both upscaling and downscaling that 
>> do something similar. Maybe our changes to 
>> `check_scaling_pipe_plane_rot` can be useful for your series to reduce 
>> redundant code in both the upscale and downscale cases? Let me know 
>> your thoughts on this.
>>
>> Thanks,
>>
>> Jessica Zhang
>>
>> [1] latest version: 
>> https://patchwork.freedesktop.org/patch/470921/?series=99364&rev=2
>> [2] earlier version: 
>> https://patchwork.freedesktop.org/patch/470856/?series=97584&rev=5
>>
>>> ---
>>>   tests/kms_plane_scaling.c | 55 ++++++++++++++++++++++++++++++++++++++-
>>>   1 file changed, 54 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
>>> index 39f2de3c..e960a6c5 100644
>>> --- a/tests/kms_plane_scaling.c
>>> +++ b/tests/kms_plane_scaling.c
>>> @@ -32,6 +32,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
>>>   /* Test flags. */
>>>   enum {
>>>       TEST_UPSCALING = 1 << 0,
>>> +    TEST_DOWNSCALING = 1 << 1,
>>>   };
>>>   typedef struct {
>>> @@ -266,6 +267,48 @@ __test_plane_upscaling(data_t *d, igt_plane_t 
>>> *plane,
>>>       igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>>>   }
>>> +static void
>>> +__test_plane_downscaling(data_t *d, igt_plane_t *plane,
>>> +                 enum pipe pipe, igt_output_t *output)
>>> +{
>>> +    igt_display_t *display = &d->display;
>>> +    int width, height;
>>> +    drmModeModeInfo *mode;
>>> +    bool test_complete = false;
>>> +    int scaling = 50;
>>> +    int ret;
>>> +
>>> +    cleanup_crtc(d);
>>> +
>>> +    igt_output_set_pipe(output, pipe);
>>> +    mode = igt_output_get_mode(output);
>>> +    width = mode->hdisplay;
>>> +    height = mode->vdisplay;
>>> +
>>> +    igt_create_color_pattern_fb(display->drm_fd,
>>> +                    width, height,
>>> +                    DRM_FORMAT_XRGB8888,
>>> +                    I915_TILING_NONE,
>>> +                    1.0, 0.0, 0.0, &d->fb[0]);
>>> +
>>> +    igt_plane_set_fb(plane, &d->fb[0]);
>>> +
>>> +    while(!test_complete) {
>>> +        igt_plane_set_size(plane, (width * scaling) / 100, (height * 
>>> scaling) / 100);
>>> +        ret = igt_display_try_commit_atomic(display, 
>>> DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>>> +
>>> +        if (ret != -EINVAL)
>>> +            test_complete = true;
>>> +
>>> +        scaling += 5;
>>> +    }
>>> +
>>> +    igt_plane_set_fb(plane, NULL);
>>> +    igt_remove_fb(display->drm_fd, &d->fb[0]);
>>> +
>>> +    igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>>> +}
>>> +
>>>   static void
>>>   test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t *output, 
>>> uint32_t flags)
>>>   {
>>> @@ -285,9 +328,12 @@ test_plane_scaling(data_t *d, enum pipe pipe, 
>>> igt_output_t *output, uint32_t fla
>>>               uint32_t format = plane->drm_plane->formats[j];
>>>               if (test_format(d, &tested_formats, format) &&
>>>                   igt_plane_has_format_mod(plane, format, modifier) &&
>>> -                can_scale(d, format))
>>> +                can_scale(d, format)) {
>>>                   if (flags & TEST_UPSCALING)
>>>                       __test_plane_upscaling(d, plane, pipe, output);
>>> +                if (flags & TEST_DOWNSCALING)
>>> +                    __test_plane_downscaling(d, plane, pipe, output);
>>> +                }
>>>           }
>>>           igt_vec_fini(&tested_formats);
>>> @@ -618,6 +664,13 @@ igt_main_args("", long_opts, help_str, 
>>> opt_handler, &data)
>>>                       test_plane_scaling(&data, pipe, output, 
>>> TEST_UPSCALING);
>>>           }
>>> +        igt_describe("Tests plane downscaling.");
>>> +        igt_subtest_with_dynamic("plane-downscaling") {
>>> +            for_each_pipe_with_single_output(&data.display, pipe, 
>>> output)
>>> +                igt_dynamic_f("pipe-%s-%s-downscaling", 
>>> kmstest_pipe_name(pipe), igt_output_name(output))
>>> +                    test_plane_scaling(&data, pipe, output, 
>>> TEST_DOWNSCALING);
>>> +        }
>>> +
>>>           igt_describe("Tests scaling with pixel formats.");
>>>           igt_subtest_with_dynamic("scaler-with-pixel-format") {
>>>               for_each_pipe_with_single_output(&data.display, pipe, 
>>> output)
>>> -- 
>>> 2.25.1
>>>
> 
> -- 
> ~Swati Sharma

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

* Re: [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling each plane
  2022-02-17 18:22       ` Jessica Zhang
@ 2022-02-17 18:37         ` Sharma, Swati2
  2022-02-22 19:36           ` Jessica Zhang
  0 siblings, 1 reply; 20+ messages in thread
From: Sharma, Swati2 @ 2022-02-17 18:37 UTC (permalink / raw)
  To: Jessica Zhang, igt-dev; +Cc: Petri Latvala

Okay. Rest of the patches can be merged?

On 17-Feb-22 11:52 PM, Jessica Zhang wrote:
> 
> 
> On 2/17/2022 4:15 AM, Sharma, Swati2 wrote:
>> Hi Jessica/Petri,
>>
>> Sorry missed your mail.
>>
>> Do you think we should drop upscaling and downscaling single plane 
>> tests from
>> my series
>> https://patchwork.freedesktop.org/series/98333/ ?
>> That should be covered by your tests?
>>
>> What do you think?
> 
> Hi Swati,
> 
> Yep, sounds good! We have upscale tests for single plane in Petri's 
> patch and we can add downscale tests too.
> 
> Thanks,
> 
> Jessica Zhang
> 
>>
>> On 16-Feb-22 6:15 AM, Jessica Zhang wrote:
>>>
>>>
>>> On 2/15/2022 4:23 AM, Swati Sharma wrote:
>>>> Subtest for testing downscaling for each plane
>>>> individually (checked 1 plane per "class" like
>>>> we do in other tests).
>>>>
>>>> v2: -set modifier as LINEAR (Ville)
>>>>      -shared code for upscaling and downscaling tests (Ville)
>>>>      -removed num_scaler() check and added try_commit() (Ville)
>>>>
>>>> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
>>>
>>> Hi Swati,
>>>
>>> FYI, Petri and I have been working on a similar patch: [1][2]
>>>
>>> For the latest version we've modified `check_scaling_pipe_plane_rot` 
>>> so that it takes in a custom buffer height/width and created multiple 
>>> subtests for different scaling factors.
>>>
>>> I see that you've added tests for both upscaling and downscaling that 
>>> do something similar. Maybe our changes to 
>>> `check_scaling_pipe_plane_rot` can be useful for your series to 
>>> reduce redundant code in both the upscale and downscale cases? Let me 
>>> know your thoughts on this.
>>>
>>> Thanks,
>>>
>>> Jessica Zhang
>>>
>>> [1] latest version: 
>>> https://patchwork.freedesktop.org/patch/470921/?series=99364&rev=2
>>> [2] earlier version: 
>>> https://patchwork.freedesktop.org/patch/470856/?series=97584&rev=5
>>>
>>>> ---
>>>>   tests/kms_plane_scaling.c | 55 
>>>> ++++++++++++++++++++++++++++++++++++++-
>>>>   1 file changed, 54 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
>>>> index 39f2de3c..e960a6c5 100644
>>>> --- a/tests/kms_plane_scaling.c
>>>> +++ b/tests/kms_plane_scaling.c
>>>> @@ -32,6 +32,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
>>>>   /* Test flags. */
>>>>   enum {
>>>>       TEST_UPSCALING = 1 << 0,
>>>> +    TEST_DOWNSCALING = 1 << 1,
>>>>   };
>>>>   typedef struct {
>>>> @@ -266,6 +267,48 @@ __test_plane_upscaling(data_t *d, igt_plane_t 
>>>> *plane,
>>>>       igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>>>>   }
>>>> +static void
>>>> +__test_plane_downscaling(data_t *d, igt_plane_t *plane,
>>>> +                 enum pipe pipe, igt_output_t *output)
>>>> +{
>>>> +    igt_display_t *display = &d->display;
>>>> +    int width, height;
>>>> +    drmModeModeInfo *mode;
>>>> +    bool test_complete = false;
>>>> +    int scaling = 50;
>>>> +    int ret;
>>>> +
>>>> +    cleanup_crtc(d);
>>>> +
>>>> +    igt_output_set_pipe(output, pipe);
>>>> +    mode = igt_output_get_mode(output);
>>>> +    width = mode->hdisplay;
>>>> +    height = mode->vdisplay;
>>>> +
>>>> +    igt_create_color_pattern_fb(display->drm_fd,
>>>> +                    width, height,
>>>> +                    DRM_FORMAT_XRGB8888,
>>>> +                    I915_TILING_NONE,
>>>> +                    1.0, 0.0, 0.0, &d->fb[0]);
>>>> +
>>>> +    igt_plane_set_fb(plane, &d->fb[0]);
>>>> +
>>>> +    while(!test_complete) {
>>>> +        igt_plane_set_size(plane, (width * scaling) / 100, (height 
>>>> * scaling) / 100);
>>>> +        ret = igt_display_try_commit_atomic(display, 
>>>> DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>>>> +
>>>> +        if (ret != -EINVAL)
>>>> +            test_complete = true;
>>>> +
>>>> +        scaling += 5;
>>>> +    }
>>>> +
>>>> +    igt_plane_set_fb(plane, NULL);
>>>> +    igt_remove_fb(display->drm_fd, &d->fb[0]);
>>>> +
>>>> +    igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>>>> +}
>>>> +
>>>>   static void
>>>>   test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t 
>>>> *output, uint32_t flags)
>>>>   {
>>>> @@ -285,9 +328,12 @@ test_plane_scaling(data_t *d, enum pipe pipe, 
>>>> igt_output_t *output, uint32_t fla
>>>>               uint32_t format = plane->drm_plane->formats[j];
>>>>               if (test_format(d, &tested_formats, format) &&
>>>>                   igt_plane_has_format_mod(plane, format, modifier) &&
>>>> -                can_scale(d, format))
>>>> +                can_scale(d, format)) {
>>>>                   if (flags & TEST_UPSCALING)
>>>>                       __test_plane_upscaling(d, plane, pipe, output);
>>>> +                if (flags & TEST_DOWNSCALING)
>>>> +                    __test_plane_downscaling(d, plane, pipe, output);
>>>> +                }
>>>>           }
>>>>           igt_vec_fini(&tested_formats);
>>>> @@ -618,6 +664,13 @@ igt_main_args("", long_opts, help_str, 
>>>> opt_handler, &data)
>>>>                       test_plane_scaling(&data, pipe, output, 
>>>> TEST_UPSCALING);
>>>>           }
>>>> +        igt_describe("Tests plane downscaling.");
>>>> +        igt_subtest_with_dynamic("plane-downscaling") {
>>>> +            for_each_pipe_with_single_output(&data.display, pipe, 
>>>> output)
>>>> +                igt_dynamic_f("pipe-%s-%s-downscaling", 
>>>> kmstest_pipe_name(pipe), igt_output_name(output))
>>>> +                    test_plane_scaling(&data, pipe, output, 
>>>> TEST_DOWNSCALING);
>>>> +        }
>>>> +
>>>>           igt_describe("Tests scaling with pixel formats.");
>>>>           igt_subtest_with_dynamic("scaler-with-pixel-format") {
>>>>               for_each_pipe_with_single_output(&data.display, pipe, 
>>>> output)
>>>> -- 
>>>> 2.25.1
>>>>
>>
>> -- 
>> ~Swati Sharma

-- 
~Swati Sharma

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

* Re: [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling each plane
  2022-02-17 18:37         ` Sharma, Swati2
@ 2022-02-22 19:36           ` Jessica Zhang
  2022-02-23  6:46             ` Sharma, Swati2
  0 siblings, 1 reply; 20+ messages in thread
From: Jessica Zhang @ 2022-02-22 19:36 UTC (permalink / raw)
  To: Sharma, Swati2, igt-dev; +Cc: Petri Latvala

Hi Swati,

Sorry for the late response -- had some access issues with my email 
server so didn't get your reply until now.

I've looked over the rest of your patches and most of them are good to 
be merged. The only patch I have a doubt about is "[v5,2/9] 
tests/kms_plane_scaling: Add output name in dynamic subtests" as it 
changes the output string of test_scaler_with_rotation_pipe.

This will conflict with our patch here [1] as we also change that output 
string to specify the size of the buffer being passed in.

Apart from that, the rest of the patches are good to merge.

Thanks,

Jessica Zhang

[1] https://patchwork.freedesktop.org/patch/475216/?series=99364&rev=5

On 2/17/2022 10:37 AM, Sharma, Swati2 wrote:
> Okay. Rest of the patches can be merged?
> 
> On 17-Feb-22 11:52 PM, Jessica Zhang wrote:
>>
>>
>> On 2/17/2022 4:15 AM, Sharma, Swati2 wrote:
>>> Hi Jessica/Petri,
>>>
>>> Sorry missed your mail.
>>>
>>> Do you think we should drop upscaling and downscaling single plane 
>>> tests from
>>> my series
>>> https://patchwork.freedesktop.org/series/98333/ ?
>>> That should be covered by your tests?
>>>
>>> What do you think?
>>
>> Hi Swati,
>>
>> Yep, sounds good! We have upscale tests for single plane in Petri's 
>> patch and we can add downscale tests too.
>>
>> Thanks,
>>
>> Jessica Zhang
>>
>>>
>>> On 16-Feb-22 6:15 AM, Jessica Zhang wrote:
>>>>
>>>>
>>>> On 2/15/2022 4:23 AM, Swati Sharma wrote:
>>>>> Subtest for testing downscaling for each plane
>>>>> individually (checked 1 plane per "class" like
>>>>> we do in other tests).
>>>>>
>>>>> v2: -set modifier as LINEAR (Ville)
>>>>>      -shared code for upscaling and downscaling tests (Ville)
>>>>>      -removed num_scaler() check and added try_commit() (Ville)
>>>>>
>>>>> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
>>>>
>>>> Hi Swati,
>>>>
>>>> FYI, Petri and I have been working on a similar patch: [1][2]
>>>>
>>>> For the latest version we've modified `check_scaling_pipe_plane_rot` 
>>>> so that it takes in a custom buffer height/width and created 
>>>> multiple subtests for different scaling factors.
>>>>
>>>> I see that you've added tests for both upscaling and downscaling 
>>>> that do something similar. Maybe our changes to 
>>>> `check_scaling_pipe_plane_rot` can be useful for your series to 
>>>> reduce redundant code in both the upscale and downscale cases? Let 
>>>> me know your thoughts on this.
>>>>
>>>> Thanks,
>>>>
>>>> Jessica Zhang
>>>>
>>>> [1] latest version: 
>>>> https://patchwork.freedesktop.org/patch/470921/?series=99364&rev=2
>>>> [2] earlier version: 
>>>> https://patchwork.freedesktop.org/patch/470856/?series=97584&rev=5
>>>>
>>>>> ---
>>>>>   tests/kms_plane_scaling.c | 55 
>>>>> ++++++++++++++++++++++++++++++++++++++-
>>>>>   1 file changed, 54 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
>>>>> index 39f2de3c..e960a6c5 100644
>>>>> --- a/tests/kms_plane_scaling.c
>>>>> +++ b/tests/kms_plane_scaling.c
>>>>> @@ -32,6 +32,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
>>>>>   /* Test flags. */
>>>>>   enum {
>>>>>       TEST_UPSCALING = 1 << 0,
>>>>> +    TEST_DOWNSCALING = 1 << 1,
>>>>>   };
>>>>>   typedef struct {
>>>>> @@ -266,6 +267,48 @@ __test_plane_upscaling(data_t *d, igt_plane_t 
>>>>> *plane,
>>>>>       igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>>>>>   }
>>>>> +static void
>>>>> +__test_plane_downscaling(data_t *d, igt_plane_t *plane,
>>>>> +                 enum pipe pipe, igt_output_t *output)
>>>>> +{
>>>>> +    igt_display_t *display = &d->display;
>>>>> +    int width, height;
>>>>> +    drmModeModeInfo *mode;
>>>>> +    bool test_complete = false;
>>>>> +    int scaling = 50;
>>>>> +    int ret;
>>>>> +
>>>>> +    cleanup_crtc(d);
>>>>> +
>>>>> +    igt_output_set_pipe(output, pipe);
>>>>> +    mode = igt_output_get_mode(output);
>>>>> +    width = mode->hdisplay;
>>>>> +    height = mode->vdisplay;
>>>>> +
>>>>> +    igt_create_color_pattern_fb(display->drm_fd,
>>>>> +                    width, height,
>>>>> +                    DRM_FORMAT_XRGB8888,
>>>>> +                    I915_TILING_NONE,
>>>>> +                    1.0, 0.0, 0.0, &d->fb[0]);
>>>>> +
>>>>> +    igt_plane_set_fb(plane, &d->fb[0]);
>>>>> +
>>>>> +    while(!test_complete) {
>>>>> +        igt_plane_set_size(plane, (width * scaling) / 100, (height 
>>>>> * scaling) / 100);
>>>>> +        ret = igt_display_try_commit_atomic(display, 
>>>>> DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>>>>> +
>>>>> +        if (ret != -EINVAL)
>>>>> +            test_complete = true;
>>>>> +
>>>>> +        scaling += 5;
>>>>> +    }
>>>>> +
>>>>> +    igt_plane_set_fb(plane, NULL);
>>>>> +    igt_remove_fb(display->drm_fd, &d->fb[0]);
>>>>> +
>>>>> +    igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>>>>> +}
>>>>> +
>>>>>   static void
>>>>>   test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t 
>>>>> *output, uint32_t flags)
>>>>>   {
>>>>> @@ -285,9 +328,12 @@ test_plane_scaling(data_t *d, enum pipe pipe, 
>>>>> igt_output_t *output, uint32_t fla
>>>>>               uint32_t format = plane->drm_plane->formats[j];
>>>>>               if (test_format(d, &tested_formats, format) &&
>>>>>                   igt_plane_has_format_mod(plane, format, modifier) &&
>>>>> -                can_scale(d, format))
>>>>> +                can_scale(d, format)) {
>>>>>                   if (flags & TEST_UPSCALING)
>>>>>                       __test_plane_upscaling(d, plane, pipe, output);
>>>>> +                if (flags & TEST_DOWNSCALING)
>>>>> +                    __test_plane_downscaling(d, plane, pipe, output);
>>>>> +                }
>>>>>           }
>>>>>           igt_vec_fini(&tested_formats);
>>>>> @@ -618,6 +664,13 @@ igt_main_args("", long_opts, help_str, 
>>>>> opt_handler, &data)
>>>>>                       test_plane_scaling(&data, pipe, output, 
>>>>> TEST_UPSCALING);
>>>>>           }
>>>>> +        igt_describe("Tests plane downscaling.");
>>>>> +        igt_subtest_with_dynamic("plane-downscaling") {
>>>>> +            for_each_pipe_with_single_output(&data.display, pipe, 
>>>>> output)
>>>>> +                igt_dynamic_f("pipe-%s-%s-downscaling", 
>>>>> kmstest_pipe_name(pipe), igt_output_name(output))
>>>>> +                    test_plane_scaling(&data, pipe, output, 
>>>>> TEST_DOWNSCALING);
>>>>> +        }
>>>>> +
>>>>>           igt_describe("Tests scaling with pixel formats.");
>>>>>           igt_subtest_with_dynamic("scaler-with-pixel-format") {
>>>>>               for_each_pipe_with_single_output(&data.display, pipe, 
>>>>> output)
>>>>> -- 
>>>>> 2.25.1
>>>>>
>>>
>>> -- 
>>> ~Swati Sharma
> 
> -- 
> ~Swati Sharma

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

* Re: [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling each plane
  2022-02-22 19:36           ` Jessica Zhang
@ 2022-02-23  6:46             ` Sharma, Swati2
  0 siblings, 0 replies; 20+ messages in thread
From: Sharma, Swati2 @ 2022-02-23  6:46 UTC (permalink / raw)
  To: Jessica Zhang, igt-dev; +Cc: Petri Latvala

Hi Jessica,

Since your patch is rb'ed. Lets get your patch merge first.
I will rebase on top of your patches and make modifications accordingly.

On 23-Feb-22 1:06 AM, Jessica Zhang wrote:
> Hi Swati,
> 
> Sorry for the late response -- had some access issues with my email 
> server so didn't get your reply until now.
> 
> I've looked over the rest of your patches and most of them are good to 
> be merged. The only patch I have a doubt about is "[v5,2/9] 
> tests/kms_plane_scaling: Add output name in dynamic subtests" as it 
> changes the output string of test_scaler_with_rotation_pipe.
> 
> This will conflict with our patch here [1] as we also change that output 
> string to specify the size of the buffer being passed in.
> 
> Apart from that, the rest of the patches are good to merge.
> 
> Thanks,
> 
> Jessica Zhang
> 
> [1] https://patchwork.freedesktop.org/patch/475216/?series=99364&rev=5
> 
> On 2/17/2022 10:37 AM, Sharma, Swati2 wrote:
>> Okay. Rest of the patches can be merged?
>>
>> On 17-Feb-22 11:52 PM, Jessica Zhang wrote:
>>>
>>>
>>> On 2/17/2022 4:15 AM, Sharma, Swati2 wrote:
>>>> Hi Jessica/Petri,
>>>>
>>>> Sorry missed your mail.
>>>>
>>>> Do you think we should drop upscaling and downscaling single plane 
>>>> tests from
>>>> my series
>>>> https://patchwork.freedesktop.org/series/98333/ ?
>>>> That should be covered by your tests?
>>>>
>>>> What do you think?
>>>
>>> Hi Swati,
>>>
>>> Yep, sounds good! We have upscale tests for single plane in Petri's 
>>> patch and we can add downscale tests too.
>>>
>>> Thanks,
>>>
>>> Jessica Zhang
>>>
>>>>
>>>> On 16-Feb-22 6:15 AM, Jessica Zhang wrote:
>>>>>
>>>>>
>>>>> On 2/15/2022 4:23 AM, Swati Sharma wrote:
>>>>>> Subtest for testing downscaling for each plane
>>>>>> individually (checked 1 plane per "class" like
>>>>>> we do in other tests).
>>>>>>
>>>>>> v2: -set modifier as LINEAR (Ville)
>>>>>>      -shared code for upscaling and downscaling tests (Ville)
>>>>>>      -removed num_scaler() check and added try_commit() (Ville)
>>>>>>
>>>>>> Signed-off-by: Swati Sharma <swati2.sharma@intel.com>
>>>>>
>>>>> Hi Swati,
>>>>>
>>>>> FYI, Petri and I have been working on a similar patch: [1][2]
>>>>>
>>>>> For the latest version we've modified 
>>>>> `check_scaling_pipe_plane_rot` so that it takes in a custom buffer 
>>>>> height/width and created multiple subtests for different scaling 
>>>>> factors.
>>>>>
>>>>> I see that you've added tests for both upscaling and downscaling 
>>>>> that do something similar. Maybe our changes to 
>>>>> `check_scaling_pipe_plane_rot` can be useful for your series to 
>>>>> reduce redundant code in both the upscale and downscale cases? Let 
>>>>> me know your thoughts on this.
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Jessica Zhang
>>>>>
>>>>> [1] latest version: 
>>>>> https://patchwork.freedesktop.org/patch/470921/?series=99364&rev=2
>>>>> [2] earlier version: 
>>>>> https://patchwork.freedesktop.org/patch/470856/?series=97584&rev=5
>>>>>
>>>>>> ---
>>>>>>   tests/kms_plane_scaling.c | 55 
>>>>>> ++++++++++++++++++++++++++++++++++++++-
>>>>>>   1 file changed, 54 insertions(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
>>>>>> index 39f2de3c..e960a6c5 100644
>>>>>> --- a/tests/kms_plane_scaling.c
>>>>>> +++ b/tests/kms_plane_scaling.c
>>>>>> @@ -32,6 +32,7 @@ IGT_TEST_DESCRIPTION("Test display plane scaling");
>>>>>>   /* Test flags. */
>>>>>>   enum {
>>>>>>       TEST_UPSCALING = 1 << 0,
>>>>>> +    TEST_DOWNSCALING = 1 << 1,
>>>>>>   };
>>>>>>   typedef struct {
>>>>>> @@ -266,6 +267,48 @@ __test_plane_upscaling(data_t *d, igt_plane_t 
>>>>>> *plane,
>>>>>>       igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>>>>>>   }
>>>>>> +static void
>>>>>> +__test_plane_downscaling(data_t *d, igt_plane_t *plane,
>>>>>> +                 enum pipe pipe, igt_output_t *output)
>>>>>> +{
>>>>>> +    igt_display_t *display = &d->display;
>>>>>> +    int width, height;
>>>>>> +    drmModeModeInfo *mode;
>>>>>> +    bool test_complete = false;
>>>>>> +    int scaling = 50;
>>>>>> +    int ret;
>>>>>> +
>>>>>> +    cleanup_crtc(d);
>>>>>> +
>>>>>> +    igt_output_set_pipe(output, pipe);
>>>>>> +    mode = igt_output_get_mode(output);
>>>>>> +    width = mode->hdisplay;
>>>>>> +    height = mode->vdisplay;
>>>>>> +
>>>>>> +    igt_create_color_pattern_fb(display->drm_fd,
>>>>>> +                    width, height,
>>>>>> +                    DRM_FORMAT_XRGB8888,
>>>>>> +                    I915_TILING_NONE,
>>>>>> +                    1.0, 0.0, 0.0, &d->fb[0]);
>>>>>> +
>>>>>> +    igt_plane_set_fb(plane, &d->fb[0]);
>>>>>> +
>>>>>> +    while(!test_complete) {
>>>>>> +        igt_plane_set_size(plane, (width * scaling) / 100, 
>>>>>> (height * scaling) / 100);
>>>>>> +        ret = igt_display_try_commit_atomic(display, 
>>>>>> DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
>>>>>> +
>>>>>> +        if (ret != -EINVAL)
>>>>>> +            test_complete = true;
>>>>>> +
>>>>>> +        scaling += 5;
>>>>>> +    }
>>>>>> +
>>>>>> +    igt_plane_set_fb(plane, NULL);
>>>>>> +    igt_remove_fb(display->drm_fd, &d->fb[0]);
>>>>>> +
>>>>>> +    igt_skip_on_f(ret == -EINVAL, "Scaling op not supported\n");
>>>>>> +}
>>>>>> +
>>>>>>   static void
>>>>>>   test_plane_scaling(data_t *d, enum pipe pipe, igt_output_t 
>>>>>> *output, uint32_t flags)
>>>>>>   {
>>>>>> @@ -285,9 +328,12 @@ test_plane_scaling(data_t *d, enum pipe pipe, 
>>>>>> igt_output_t *output, uint32_t fla
>>>>>>               uint32_t format = plane->drm_plane->formats[j];
>>>>>>               if (test_format(d, &tested_formats, format) &&
>>>>>>                   igt_plane_has_format_mod(plane, format, 
>>>>>> modifier) &&
>>>>>> -                can_scale(d, format))
>>>>>> +                can_scale(d, format)) {
>>>>>>                   if (flags & TEST_UPSCALING)
>>>>>>                       __test_plane_upscaling(d, plane, pipe, output);
>>>>>> +                if (flags & TEST_DOWNSCALING)
>>>>>> +                    __test_plane_downscaling(d, plane, pipe, 
>>>>>> output);
>>>>>> +                }
>>>>>>           }
>>>>>>           igt_vec_fini(&tested_formats);
>>>>>> @@ -618,6 +664,13 @@ igt_main_args("", long_opts, help_str, 
>>>>>> opt_handler, &data)
>>>>>>                       test_plane_scaling(&data, pipe, output, 
>>>>>> TEST_UPSCALING);
>>>>>>           }
>>>>>> +        igt_describe("Tests plane downscaling.");
>>>>>> +        igt_subtest_with_dynamic("plane-downscaling") {
>>>>>> +            for_each_pipe_with_single_output(&data.display, pipe, 
>>>>>> output)
>>>>>> +                igt_dynamic_f("pipe-%s-%s-downscaling", 
>>>>>> kmstest_pipe_name(pipe), igt_output_name(output))
>>>>>> +                    test_plane_scaling(&data, pipe, output, 
>>>>>> TEST_DOWNSCALING);
>>>>>> +        }
>>>>>> +
>>>>>>           igt_describe("Tests scaling with pixel formats.");
>>>>>>           igt_subtest_with_dynamic("scaler-with-pixel-format") {
>>>>>>               for_each_pipe_with_single_output(&data.display, 
>>>>>> pipe, output)
>>>>>> -- 
>>>>>> 2.25.1
>>>>>>
>>>>
>>>> -- 
>>>> ~Swati Sharma
>>
>> -- 
>> ~Swati Sharma

-- 
~Swati Sharma

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

end of thread, other threads:[~2022-02-23  6:46 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-15 12:23 [igt-dev] [v4 0/9] Addition of new plane scaling test cases Swati Sharma
2022-02-15 12:23 ` [igt-dev] [v4 1/9] tests/kms_plane_scaling: Removal of plane-scaling subtest Swati Sharma
2022-02-15 12:23 ` [igt-dev] [v4 2/9] tests/kms_plane_scaling: Add output name in dynamic subtests Swati Sharma
2022-02-15 12:23 ` [igt-dev] [v4 3/9] tests/kms_plane_scaling: Upscaling each plane Swati Sharma
2022-02-15 20:43   ` Ville Syrjälä
2022-02-15 12:23 ` [igt-dev] [v4 4/9] tests/kms_plane_scaling: Downscaling " Swati Sharma
2022-02-15 20:43   ` Ville Syrjälä
     [not found]   ` <a85c6701-43ad-4b25-6184-8798e8db2e2d@quicinc.com>
2022-02-17 12:15     ` Sharma, Swati2
2022-02-17 18:22       ` Jessica Zhang
2022-02-17 18:37         ` Sharma, Swati2
2022-02-22 19:36           ` Jessica Zhang
2022-02-23  6:46             ` Sharma, Swati2
2022-02-15 12:23 ` [igt-dev] [v4 5/9] tests/kms_plane_scaling: Upscaling on 2 planes Swati Sharma
2022-02-15 20:43   ` Ville Syrjälä
2022-02-15 12:23 ` [igt-dev] [v4 6/9] tests/kms_plane_scaling: Downscaling " Swati Sharma
2022-02-15 12:23 ` [igt-dev] [v4 7/9] tests/kms_plane_scaling: Upscaling and downscaling scenario Swati Sharma
2022-02-15 12:23 ` [igt-dev] [v4 8/9] tests/kms_plane_scaling: Add negative test to check num of scalers Swati Sharma
2022-02-15 12:23 ` [igt-dev] [v4 9/9] tests/kms_plane_scaling: Refactor clipping-clamping subtest Swati Sharma
2022-02-15 18:23 ` [igt-dev] ✓ Fi.CI.BAT: success for Addition of new plane scaling test cases (rev6) Patchwork
2022-02-15 21:59 ` [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.