All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess
@ 2021-09-09 15:30 Ville Syrjala
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 01/11] lib/kms: Add igt_plane_has_rotation() Ville Syrjala
                   ` (13 more replies)
  0 siblings, 14 replies; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Full repost due to Ci getting confused by bogus patch numbering :/

Reposting of igt_plane_has_rotation() + a few other remaining
bits and bobs from the previous series. The main idea here is
to remove most of the hardcoded platform checks for supported
rotations. Sadly not quite 100% due to a few exceptional cases.

I left out the kms_big_fb fliptab[] nukage for the moment so that
the CI results will be less noisy.

v2: keep some gen9+ checks in kms_rotation_crc

Ville Syrjälä (11):
  lib/kms: Add igt_plane_has_rotation()
  tests/kms_rotation_crc: Use igt_plane_has_rotation()
  tests/kms_plane_scaling: Use igt_plane_has_rotation()
  tests/kms_big_fb: Use igt_plane_has_rotation()
  tests/kms_big_fb: Use igt_has_drm_cap()
  tests/kms_big_fb: Move batch creation into lower level functions
  tests/kms_big_fb: Move format/modifier checks lower
  tests/kms_big_fb: Nuke the stride/format overrides
  tests/kms_big_fb: Check whether the rotation is supposed in the async
    flip test
  tests/kms_plane: Abstract single vs. multiple crsc better
  tests/kms_plane: Use single colors during extended test

 lib/igt_kms.c             | 41 ++++++++++++++++++++++++
 lib/igt_kms.h             | 16 ++++++++++
 tests/kms_big_fb.c        | 67 +++++++++++----------------------------
 tests/kms_plane.c         | 61 +++++++++++++++++++----------------
 tests/kms_plane_scaling.c |  5 +--
 tests/kms_rotation_crc.c  | 32 +++++++------------
 6 files changed, 123 insertions(+), 99 deletions(-)

-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 01/11] lib/kms: Add igt_plane_has_rotation()
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-20  7:37   ` Karthik B S
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 02/11] tests/kms_rotation_crc: Use igt_plane_has_rotation() Ville Syrjala
                   ` (12 subsequent siblings)
  13 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Probe the supported rotations for each plane from the kernel
This should let us eliminate tons of hand rolled gen checks all over.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 41 +++++++++++++++++++++++++++++++++++++++++
 lib/igt_kms.h | 16 ++++++++++++++++
 2 files changed, 57 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index cc38f5a25334..6b0639f628b9 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -612,6 +612,41 @@ const char * const igt_connector_prop_names[IGT_NUM_CONNECTOR_PROPS] = {
 	[IGT_CONNECTOR_DITHERING_MODE] = "dithering mode",
 };
 
+const char * const igt_rotation_names[] = {
+	[0] = "rotate-0",
+	[1] = "rotate-90",
+	[2] = "rotate-180",
+	[3] = "rotate-270",
+	[4] = "reflect-x",
+	[5] = "reflect-y",
+};
+
+static unsigned int
+igt_plane_rotations(igt_display_t *display, igt_plane_t *plane,
+		    drmModePropertyPtr prop)
+{
+	unsigned int rotations = 0;
+
+	igt_assert_eq(prop->flags & DRM_MODE_PROP_LEGACY_TYPE,
+		      DRM_MODE_PROP_BITMASK);
+	igt_assert_eq(prop->count_values, prop->count_enums);
+
+	for (int i = 0; i < ARRAY_SIZE(igt_rotation_names); i++) {
+		for (int j = 0; j < prop->count_enums; j++) {
+			if (strcmp(igt_rotation_names[i], prop->enums[j].name))
+				continue;
+
+			/* various places assume the uabi uses specific bit values */
+			igt_assert_eq(prop->values[j], i);
+
+			rotations |= 1 << i;
+		}
+	}
+	igt_assert_neq(rotations, 0);
+
+	return rotations;
+}
+
 /*
  * Retrieve all the properies specified in props_name and store them into
  * plane->props.
@@ -640,9 +675,15 @@ igt_fill_plane_props(igt_display_t *display, igt_plane_t *plane,
 			break;
 		}
 
+		if (strcmp(prop->name, "rotation") == 0)
+			plane->rotations = igt_plane_rotations(display, plane, prop);
+
 		drmModeFreeProperty(prop);
 	}
 
+	if (!plane->rotations)
+		plane->rotations = IGT_ROTATION_0;
+
 	drmModeFreeObjectProperties(props);
 }
 
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index ed598f164a59..b6cbf937166f 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -358,6 +358,8 @@ typedef struct igt_plane {
 		uint64_t values[IGT_NUM_COLOR_RANGES];
 	} color_range;
 
+	igt_rotation_t rotations;
+
 	uint64_t changed;
 	uint32_t props[IGT_NUM_PLANE_PROPS];
 	uint64_t values[IGT_NUM_PLANE_PROPS];
@@ -491,6 +493,20 @@ void igt_fb_set_position(struct igt_fb *fb, igt_plane_t *plane,
 void igt_fb_set_size(struct igt_fb *fb, igt_plane_t *plane,
 	uint32_t w, uint32_t h);
 
+/**
+ * igt_plane_has_rotation:
+ * @plane: Plane pointer for which rotation is to be queried
+ * @rotation: Plane rotation value (0, 90, 180, 270)
+ *
+ * Check whether @plane potentially supports the given @rotation.
+ * Note that @rotation may still rejected later due to other
+ * constraints (eg. incompatible pixel format or modifier).
+ */
+static inline bool igt_plane_has_rotation(igt_plane_t *plane, igt_rotation_t rotation)
+{
+	return (plane->rotations & rotation) == rotation;
+}
+
 void igt_wait_for_vblank(int drm_fd, int crtc_offset);
 void igt_wait_for_vblank_count(int drm_fd, int crtc_offset, int count);
 
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 02/11] tests/kms_rotation_crc: Use igt_plane_has_rotation()
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 01/11] lib/kms: Add igt_plane_has_rotation() Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-20  7:42   ` Karthik B S
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 03/11] tests/kms_plane_scaling: " Ville Syrjala
                   ` (11 subsequent siblings)
  13 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Use igt_plane_has_rotation() instead of these annoying
hand rolled gen checks.

Also fix up the bogus CHV checks to match reality. Since
the test doesn't probe the final configuration with a
TEST_ONLY atomic commit we must still manually filter
out any case that would pass the basic rotation check but
fail later.

v2: Keep the gen9+ checks for the multiplane tests since they
    want a non-fullscreen primary plane

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_rotation_crc.c | 32 ++++++++++++--------------------
 1 file changed, 12 insertions(+), 20 deletions(-)

diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 2c66cd7c4e31..11401a6d00ad 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -493,9 +493,6 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 		for (c = 0; c < num_rectangle_types; c++)
 			data->crc_rect[data->output_crc_in_use][c].valid = false;
 
-		if (is_i915_device(data->gfx_fd) && IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
-			continue;
-
 		/* restricting the execution to 2 pipes to reduce execution time*/
 		if (pipe_count == 2 * connected_outputs && !data->extended)
 			break;
@@ -505,6 +502,11 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 
 		plane = igt_output_get_plane_type(output, plane_type);
 		igt_require(igt_plane_has_prop(plane, IGT_PLANE_ROTATION));
+		igt_require(igt_plane_has_rotation(plane, data->rotation));
+		/* CHV can't rotate and reflect simultaneously */
+		igt_require(!is_i915_device(data->gfx_fd) ||
+			    !IS_CHERRYVIEW(data->devid) ||
+			    data->rotation != (IGT_ROTATION_180 | IGT_REFLECT_X));
 
 		prepare_crtc(data, output, pipe, plane, true);
 
@@ -738,13 +740,14 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
 						     && intel_display_ver(data->devid) < 11)
 							continue;
 
-						if (igt_rotation_90_or_270(planeconfigs[i].rotation)
-						    && intel_display_ver(data->devid) >= 13)
+						if (!igt_plane_has_rotation(p[0].plane,
+									    planeconfigs[i].rotation))
 							continue;
 
-						if (igt_rotation_90_or_270(planeconfigs[j].rotation)
-						    && intel_display_ver(data->devid) >= 13)
+						if (!igt_plane_has_rotation(p[1].plane,
+									    planeconfigs[j].rotation))
 							continue;
+
 						/*
 						 * if using packed formats crc's will be
 						 * same and can store them so there's
@@ -892,6 +895,7 @@ static void test_plane_rotation_exhaust_fences(data_t *data,
 	int i;
 
 	igt_require(igt_plane_has_prop(plane, IGT_PLANE_ROTATION));
+	igt_require(igt_plane_has_rotation(plane, IGT_ROTATION_0 | IGT_ROTATION_90));
 	igt_require(gem_available_fences(display->drm_fd) > 0);
 
 	prepare_crtc(data, output, pipe, plane, false);
@@ -1048,10 +1052,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		igt_subtest_f("%s-rotation-%s",
 			      plane_test_str(subtest->plane),
 			      rot_test_str(subtest->rot)) {
-			if (is_i915_device(data.gfx_fd)) {
-				igt_require(!igt_rotation_90_or_270(subtest->rot) ||
-					    (gen >= 9 && gen < 13));
-			} else if (is_amdgpu_device(data.gfx_fd)) {
+			if (is_amdgpu_device(data.gfx_fd)) {
 				data.override_fmt = DRM_FORMAT_XRGB8888;
 				if (igt_rotation_90_or_270(subtest->rot))
 					data.override_tiling = AMD_FMT_MOD |
@@ -1067,7 +1068,6 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 
 	igt_describe("Rotation test with 90 degree for a plane of gen9+ with given position");
 	igt_subtest_f("sprite-rotation-90-pos-100-0") {
-		igt_require(gen >=9 && gen < 13);
 		data.rotation = IGT_ROTATION_90;
 		data.pos_x = 100,
 		data.pos_y = 0;
@@ -1082,7 +1082,6 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		  * so apart from this, any other gen11+ pixel format
 		  * can be used which doesn't support 90/270 degree
 		  * rotation */
-		igt_require(gen >=9 && gen < 13);
 		data.rotation = IGT_ROTATION_90;
 		data.override_fmt = gen < 11 ? DRM_FORMAT_RGB565 : DRM_FORMAT_Y212;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY, true);
@@ -1091,7 +1090,6 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 
 	igt_describe("Checking unsupported tiling for gen9+ with 90 degree of rotation");
 	igt_subtest_f("bad-tiling") {
-		igt_require(gen >=9 && gen < 13);
 		data.rotation = IGT_ROTATION_90;
 		data.override_tiling = I915_FORMAT_MOD_X_TILED;
 		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY, true);
@@ -1103,12 +1101,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		igt_subtest_f("primary-%s-reflect-x-%s",
 			      tiling_test_str(reflect_x->tiling),
 			      rot_test_str(reflect_x->rot)) {
-			igt_require(gen >= 10 ||
-				    (IS_CHERRYVIEW(data.devid) && reflect_x->rot == IGT_ROTATION_0
-				     && reflect_x->tiling == I915_FORMAT_MOD_X_TILED));
 			data.rotation = (IGT_REFLECT_X | reflect_x->rot);
-			igt_require(!(gen >= 13 &&
-				      igt_rotation_90_or_270(data.rotation)));
 			data.override_tiling = reflect_x->tiling;
 			test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY, false);
 		}
@@ -1164,7 +1157,6 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		enum pipe pipe;
 		igt_output_t *output;
 
-		igt_require(gen >= 9 && gen < 13);
 		igt_display_require_output(&data.display);
 
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 03/11] tests/kms_plane_scaling: Use igt_plane_has_rotation()
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 01/11] lib/kms: Add igt_plane_has_rotation() Ville Syrjala
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 02/11] tests/kms_rotation_crc: Use igt_plane_has_rotation() Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-20  7:45   ` Karthik B S
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 04/11] tests/kms_big_fb: " Ville Syrjala
                   ` (10 subsequent siblings)
  13 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Replace the hand rolled gen check with igt_plane_has_rotation().

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_plane_scaling.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 809463a71583..4c517a4326d7 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -165,10 +165,6 @@ static bool can_rotate(data_t *d, unsigned format, uint64_t tiling,
 	if (!is_i915_device(d->drm_fd))
 		return true;
 
-	if (intel_display_ver(d->devid) >= 13 &&
-		igt_rotation_90_or_270(rot))
-		return false;
-
 	switch (format) {
 	case DRM_FORMAT_RGB565:
 		if (intel_display_ver(d->devid) >= 11)
@@ -272,6 +268,7 @@ static void test_scaler_with_rotation_pipe(data_t *d, enum pipe pipe,
 
 				if (test_format(d, &tested_formats, format) &&
 				    igt_plane_has_format_mod(plane, format, tiling) &&
+				    igt_plane_has_rotation(plane, rot) &&
 				    can_rotate(d, format, tiling, rot) &&
 				    can_scale(d, format))
 					check_scaling_pipe_plane_rot(d, plane, format,
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 04/11] tests/kms_big_fb: Use igt_plane_has_rotation()
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (2 preceding siblings ...)
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 03/11] tests/kms_plane_scaling: " Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-20  7:46   ` Karthik B S
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 05/11] tests/kms_big_fb: Use igt_has_drm_cap() Ville Syrjala
                   ` (9 subsequent siblings)
  13 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Use igt_plane_has_rotation() instead of the manual
"if there's no rotation prop -> only 0 dgree is supported"
conclusion.

And let's also get rid of the atomic vs. 0/270 degree rotation
check. I think I added this to avoid the test failing since
we can't do the TEST_ONLY probe withoiut atomic. With the
unsupported rotations filtered out ahead of time we should
never get into that situation.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_big_fb.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
index b988a092771a..092cbc6846fe 100644
--- a/tests/kms_big_fb.c
+++ b/tests/kms_big_fb.c
@@ -323,14 +323,7 @@ static bool test_plane(data_t *data)
 	if (!igt_plane_has_format_mod(plane, data->format, data->modifier))
 		return false;
 
-	if (data->rotation != IGT_ROTATION_0 &&
-	    !igt_plane_has_prop(plane, IGT_PLANE_ROTATION))
-		return false;
-
-	/* FIXME need atomic on i965/g4x */
-	if (data->rotation != IGT_ROTATION_0 &&
-	    data->rotation != IGT_ROTATION_180 &&
-	    !data->display.is_atomic)
+	if (!igt_plane_has_rotation(plane, data->rotation))
 		return false;
 
 	if (igt_plane_has_prop(plane, IGT_PLANE_ROTATION))
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 05/11] tests/kms_big_fb: Use igt_has_drm_cap()
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (3 preceding siblings ...)
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 04/11] tests/kms_big_fb: " Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-20  7:48   ` Karthik B S
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 06/11] tests/kms_big_fb: Move batch creation into lower level functions Ville Syrjala
                   ` (8 subsequent siblings)
  13 siblings, 1 reply; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Replace the hand rolled cap check with igt_has_drm_cap().

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_big_fb.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
index 092cbc6846fe..308227c9113a 100644
--- a/tests/kms_big_fb.c
+++ b/tests/kms_big_fb.c
@@ -57,7 +57,6 @@ typedef struct {
 	double planeclearrgb[3];
 	uint32_t format_override;
 	uint32_t stride_override;
-	uint32_t async_flip_support;
 } data_t;
 
 static struct intel_buf *init_buf(data_t *data,
@@ -800,7 +799,6 @@ igt_main
 {
 	igt_fixture {
 		drmModeResPtr res;
-		struct drm_get_cap cap = { .capability = DRM_CAP_ASYNC_PAGE_FLIP };
 
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
 
@@ -851,9 +849,6 @@ igt_main
 
 		data.max_hw_stride_test = false;
 		data.async_flip_test = false;
-
-		igt_ioctl(data.drm_fd, DRM_IOCTL_GET_CAP, &cap);
-		data.async_flip_support = cap.value;
 	}
 
 	/*
@@ -983,7 +978,7 @@ igt_main
 							igt_require(data.format == DRM_FORMAT_C8 ||
 								igt_fb_supported_format(data.format));
 							igt_require(igt_display_has_format_mod(&data.display, data.format, data.modifier));
-							igt_require_f(data.async_flip_support, "Async Flip is not supported\n");
+							igt_require(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP));
 							data.max_hw_fb_width = min(data.hw_stride / (formats[j].bpp >> 3), data.max_fb_width);
 							test_scanout(&data);
 					}
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 06/11] tests/kms_big_fb: Move batch creation into lower level functions
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (4 preceding siblings ...)
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 05/11] tests/kms_big_fb: Use igt_has_drm_cap() Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 07/11] tests/kms_big_fb: Move format/modifier checks lower Ville Syrjala
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

At some point the back creation from moved form the fixture
into each subtest, on account of something going bad between
subtests (not really sure what that was). But when the hw stride
tests were added they stuffed the batch back into the fixture,
and indeed I get a segfault when running this stuff. So let's move
all the batch stuff to the lowe level functions that actually need
it.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_big_fb.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
index 308227c9113a..9e98ed3f9edc 100644
--- a/tests/kms_big_fb.c
+++ b/tests/kms_big_fb.c
@@ -410,6 +410,8 @@ static bool test_pipe(data_t *data)
 				   IGT_CRTC_GAMMA_LUT))
 		return false;
 
+	data->ibb = intel_bb_create(data->drm_fd, 4096);
+
 	mode = igt_output_get_mode(data->output);
 
 	data->width = mode->hdisplay;
@@ -470,6 +472,8 @@ static bool test_pipe(data_t *data)
 
 	igt_remove_fb(data->drm_fd, &data->small_fb);
 
+	intel_bb_destroy(data->ibb);
+
 	return ret;
 }
 
@@ -492,6 +496,8 @@ max_hw_stride_async_flip_test(data_t *data)
 	igt_require_f(igt_display_try_commit2(&data->display, COMMIT_ATOMIC) == 0,
 		      "rotation/flip not supported\n");
 
+	data->ibb = intel_bb_create(data->drm_fd, 4096);
+
 	setup_fb(data, &data->big_fb, data->big_fb_width, data->big_fb_height,
 		 data->format, data->modifier, data->hw_stride);
 	generate_pattern(data, &data->big_fb, 640, 480);
@@ -559,6 +565,9 @@ max_hw_stride_async_flip_test(data_t *data)
 	igt_remove_fb(data->drm_fd, &data->big_fb);
 	igt_remove_fb(data->drm_fd, &data->big_fb_flip[0]);
 	igt_remove_fb(data->drm_fd, &data->big_fb_flip[1]);
+
+	intel_bb_destroy(data->ibb);
+
 	return true;
 }
 
@@ -841,7 +850,6 @@ igt_main
 			data.render_copy = igt_get_render_copyfunc(data.devid);
 
 		data.bops = buf_ops_create(data.drm_fd);
-		data.ibb = intel_bb_create(data.drm_fd, 4096);
 
 		data.planeclearrgb[0] = 0.0;
 		data.planeclearrgb[1] = 0.0;
@@ -862,9 +870,7 @@ igt_main
 		igt_subtest_f("%s-addfb-size-overflow",
 			      modifiers[i].name) {
 			data.modifier = modifiers[i].modifier;
-			data.ibb = intel_bb_create(data.drm_fd, 4096);
 			test_size_overflow(&data);
-			intel_bb_destroy(data.ibb);
 		}
 	}
 
@@ -873,9 +879,7 @@ igt_main
 		igt_subtest_f("%s-addfb-size-offset-overflow",
 			      modifiers[i].name) {
 			data.modifier = modifiers[i].modifier;
-			data.ibb = intel_bb_create(data.drm_fd, 4096);
 			test_size_offset_overflow(&data);
-			intel_bb_destroy(data.ibb);
 		}
 	}
 
@@ -883,9 +887,7 @@ igt_main
 	for (int i = 0; i < ARRAY_SIZE(modifiers); i++) {
 		igt_subtest_f("%s-addfb", modifiers[i].name) {
 			data.modifier = modifiers[i].modifier;
-			data.ibb = intel_bb_create(data.drm_fd, 4096);
 			test_addfb(&data);
-			intel_bb_destroy(data.ibb);
 		}
 	}
 
@@ -905,9 +907,7 @@ igt_main
 					igt_require(data.format == DRM_FORMAT_C8 ||
 						    igt_fb_supported_format(data.format));
 					igt_require(igt_display_has_format_mod(&data.display, data.format, data.modifier));
-					data.ibb = intel_bb_create(data.drm_fd, 4096);
 					test_scanout(&data);
-					intel_bb_destroy(data.ibb);
 				}
 			}
 
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 07/11] tests/kms_big_fb: Move format/modifier checks lower
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (5 preceding siblings ...)
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 06/11] tests/kms_big_fb: Move batch creation into lower level functions Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 08/11] tests/kms_big_fb: Nuke the stride/format overrides Ville Syrjala
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

No reason to keep repeating the same format checks multiple
times. Just move them into test_scanout().

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_big_fb.c | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
index 9e98ed3f9edc..0022f2ad264b 100644
--- a/tests/kms_big_fb.c
+++ b/tests/kms_big_fb.c
@@ -575,6 +575,11 @@ static void test_scanout(data_t *data)
 {
 	igt_output_t *output;
 
+	igt_require(data->format == DRM_FORMAT_C8 ||
+		    igt_fb_supported_format(data->format));
+
+	igt_require(igt_display_has_format_mod(&data->display, data->format, data->modifier));
+
 	if (data->max_hw_stride_test) {
 		data->big_fb_width = data->max_hw_fb_width;
 		data->big_fb_height = 0;
@@ -903,12 +908,8 @@ igt_main
 				igt_describe("Sanity check if addfb ioctl works correctly for given "
 						"combination of modifier formats and rotation");
 				igt_subtest_f("%s-%dbpp-rotate-%d", modifiers[i].name,
-					      formats[j].bpp, rotations[k].angle) {
-					igt_require(data.format == DRM_FORMAT_C8 ||
-						    igt_fb_supported_format(data.format));
-					igt_require(igt_display_has_format_mod(&data.display, data.format, data.modifier));
+					      formats[j].bpp, rotations[k].angle)
 					test_scanout(&data);
-				}
 			}
 
 			igt_fixture
@@ -961,9 +962,6 @@ igt_main
 							data.max_hw_fb_width = min(data.hw_stride / (formats[j].bpp >> 3), data.max_fb_width);
 						}
 
-						igt_require(data.format == DRM_FORMAT_C8 ||
-							igt_fb_supported_format(data.format));
-						igt_require(igt_display_has_format_mod(&data.display, data.format, data.modifier));
 						test_scanout(&data);
 					}
 
@@ -975,9 +973,6 @@ igt_main
 					igt_describe("test async flip on maximum hardware supported stride length for given bpp and modifiers.");
 					igt_subtest_f("%s-max-hw-stride-%dbpp-rotate-%d%s-async-flip", modifiers[i].name,
 						formats[j].bpp, rotations[k].angle, fliptab[l].flipname) {
-							igt_require(data.format == DRM_FORMAT_C8 ||
-								igt_fb_supported_format(data.format));
-							igt_require(igt_display_has_format_mod(&data.display, data.format, data.modifier));
 							igt_require(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP));
 							data.max_hw_fb_width = min(data.hw_stride / (formats[j].bpp >> 3), data.max_fb_width);
 							test_scanout(&data);
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 08/11] tests/kms_big_fb: Nuke the stride/format overrides
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (6 preceding siblings ...)
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 07/11] tests/kms_big_fb: Move format/modifier checks lower Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 09/11] tests/kms_big_fb: Check whether the rotation is supposed in the async flip test Ville Syrjala
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

format_override/stride_override are never set. Nuke them.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_big_fb.c | 15 +--------------
 1 file changed, 1 insertion(+), 14 deletions(-)

diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
index 0022f2ad264b..6be3062bd335 100644
--- a/tests/kms_big_fb.c
+++ b/tests/kms_big_fb.c
@@ -55,8 +55,6 @@ typedef struct {
 	int hw_stride;
 	int max_hw_fb_width;
 	double planeclearrgb[3];
-	uint32_t format_override;
-	uint32_t stride_override;
 } data_t;
 
 static struct intel_buf *init_buf(data_t *data,
@@ -949,18 +947,7 @@ igt_main
 					igt_subtest_f("%s-max-hw-stride-%dbpp-rotate-%d%s", modifiers[i].name,
 						formats[j].bpp, rotations[k].angle, fliptab[l].flipname) {
 						igt_require(intel_display_ver(intel_get_drm_devid(data.drm_fd)) >= 5);
-						if (data.format_override != 0) {
-							igt_info("using format override fourcc %.4s\n", (char *)&data.format_override);
-							data.format = data.format_override;
-						}
-						if (data.stride_override != 0) {
-							igt_info("using FB width override %.d\n", data.stride_override);
-							data.hw_stride = data.stride_override;
-							data.max_hw_fb_width = data.stride_override;
-
-						} else {
-							data.max_hw_fb_width = min(data.hw_stride / (formats[j].bpp >> 3), data.max_fb_width);
-						}
+						data.max_hw_fb_width = min(data.hw_stride / (formats[j].bpp >> 3), data.max_fb_width);
 
 						test_scanout(&data);
 					}
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 09/11] tests/kms_big_fb: Check whether the rotation is supposed in the async flip test
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (7 preceding siblings ...)
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 08/11] tests/kms_big_fb: Nuke the stride/format overrides Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 10/11] tests/kms_plane: Abstract single vs. multiple crsc better Ville Syrjala
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Don't corrupt the plane state with some totally unsupported
rotation. Doing so causes subseuqenct subtests to just fail
on account of that bad rotation state leaking between the
subtests.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_big_fb.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
index 6be3062bd335..d38c24a70d2b 100644
--- a/tests/kms_big_fb.c
+++ b/tests/kms_big_fb.c
@@ -489,6 +489,7 @@ max_hw_stride_async_flip_test(data_t *data)
 
 	primary = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
 
+	igt_require(igt_plane_has_rotation(primary, data->rotation));
 	igt_plane_set_rotation(primary, data->rotation);
 
 	igt_require_f(igt_display_try_commit2(&data->display, COMMIT_ATOMIC) == 0,
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 10/11] tests/kms_plane: Abstract single vs. multiple crsc better
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (8 preceding siblings ...)
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 09/11] tests/kms_big_fb: Check whether the rotation is supposed in the async flip test Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 11/11] tests/kms_plane: Use single colors during extended test Ville Syrjala
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Add a single point where we decide whether to use single vs.
multiple colors, rather than just assuming planar==single colors
and packed==multiple colors.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_plane.c | 61 ++++++++++++++++++++++++++---------------------
 1 file changed, 34 insertions(+), 27 deletions(-)

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 77b13a33ed49..760df5d7d334 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -574,7 +574,7 @@ static void capture_crc(data_t *data, unsigned int vblank, igt_crc_t *crc)
 		      crc->frame, vblank);
 }
 
-static void capture_format_crcs_packed(data_t *data, enum pipe pipe,
+static void capture_format_crcs_single(data_t *data, enum pipe pipe,
 				       igt_plane_t *plane,
 				       uint32_t format, uint64_t modifier,
 				       int width, int height,
@@ -596,13 +596,13 @@ static void capture_format_crcs_packed(data_t *data, enum pipe pipe,
 	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &crc[0]);
 }
 
-static void capture_format_crcs_planar(data_t *data, enum pipe pipe,
-				       igt_plane_t *plane,
-				       uint32_t format, uint64_t modifier,
-				       int width, int height,
-				       enum igt_color_encoding encoding,
-				       enum igt_color_range range,
-				       igt_crc_t crc[], struct igt_fb *fb)
+static void capture_format_crcs_multiple(data_t *data, enum pipe pipe,
+					 igt_plane_t *plane,
+					 uint32_t format, uint64_t modifier,
+					 int width, int height,
+					 enum igt_color_encoding encoding,
+					 enum igt_color_range range,
+					 igt_crc_t crc[], struct igt_fb *fb)
 {
 	unsigned int vblank[ARRAY_SIZE(colors_extended)];
 	struct drm_event_vblank ev;
@@ -719,6 +719,11 @@ restart_round:
 	capture_crc(data, vblank[i - 1], &crc[i - 1]);
 }
 
+static bool use_multiple_colors(data_t *data, uint32_t format)
+{
+	return igt_format_is_yuv_semiplanar(format);
+}
+
 static bool test_format_plane_colors(data_t *data, enum pipe pipe,
 				     igt_plane_t *plane,
 				     uint32_t format, uint64_t modifier,
@@ -733,17 +738,17 @@ static bool test_format_plane_colors(data_t *data, enum pipe pipe,
 	int crc_mismatch_count = 0;
 	bool result = true;
 	int i, total_crcs = 1;
-	bool planar = igt_format_is_yuv_semiplanar(format);
 
-	if (planar) {
-		capture_format_crcs_planar(data, pipe, plane, format, modifier,
-					   width, height, encoding, range, crc,
-					   fb);
+	if (use_multiple_colors(data, format)) {
+		capture_format_crcs_multiple(data, pipe, plane, format, modifier,
+					     width, height, encoding, range, crc,
+					     fb);
 		total_crcs = data->num_colors;
-	} else
-		capture_format_crcs_packed(data, pipe, plane, format, modifier,
+	} else {
+		capture_format_crcs_single(data, pipe, plane, format, modifier,
 					   width, height, encoding, range, crc,
 					   fb);
+	}
 
 	for (i = 0; i < total_crcs; i++) {
 		if (!igt_check_crc_equal(&crc[i], &ref_crc[i])) {
@@ -833,9 +838,11 @@ static bool test_format_plane_yuv(data_t *data, enum pipe pipe,
 	return result;
 }
 
-enum crc_set { PACKED_CRC_SET,
-	       PLANAR_CRC_SET,
-	       MAX_CRC_SET };
+enum crc_set {
+	SINGLE_CRC_SET,
+	MULTIPLE_CRC_SET,
+	MAX_CRC_SET,
+};
 
 struct format_mod {
 	uint64_t modifier;
@@ -913,22 +920,22 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 		igt_remove_fb(data->drm_fd, &test_fb);
 	}
 
-	capture_format_crcs_packed(data, pipe, plane, ref.format, ref.modifier,
+	capture_format_crcs_single(data, pipe, plane, ref.format, ref.modifier,
 				   width, height, IGT_COLOR_YCBCR_BT709,
 				   IGT_COLOR_YCBCR_LIMITED_RANGE,
-				   ref_crc[PACKED_CRC_SET], &fb);
+				   ref_crc[SINGLE_CRC_SET], &fb);
 
-	capture_format_crcs_planar(data, pipe, plane, ref.format, ref.modifier,
-				   width, height, IGT_COLOR_YCBCR_BT709,
-				   IGT_COLOR_YCBCR_LIMITED_RANGE,
-				   ref_crc[PLANAR_CRC_SET], &fb);
+	capture_format_crcs_multiple(data, pipe, plane, ref.format, ref.modifier,
+				     width, height, IGT_COLOR_YCBCR_BT709,
+				     IGT_COLOR_YCBCR_LIMITED_RANGE,
+				     ref_crc[MULTIPLE_CRC_SET], &fb);
 
 	/*
 	 * Make sure we have some difference between the colors. This
 	 * at least avoids claiming success when everything is just
 	 * black all the time (eg. if the plane is never even on).
 	 */
-	igt_require(num_unique_crcs(ref_crc[PLANAR_CRC_SET], data->num_colors) > 1);
+	igt_require(num_unique_crcs(ref_crc[MULTIPLE_CRC_SET], data->num_colors) > 1);
 
 	for (int i = 0; i < plane->format_mod_count; i++) {
 		struct format_mod f = {
@@ -965,8 +972,8 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 				continue;
 		}
 
-		crcset = ref_crc[(igt_format_is_yuv_semiplanar(f.format)
-				 ? PLANAR_CRC_SET : PACKED_CRC_SET)];
+		crcset = ref_crc[use_multiple_colors(data, f.format) ?
+				 MULTIPLE_CRC_SET : SINGLE_CRC_SET];
 
 		if (igt_format_is_yuv(f.format))
 			result &= test_format_plane_yuv(data, pipe, plane,
-- 
2.31.1

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

* [igt-dev] [PATCH i-g-t v2 11/11] tests/kms_plane: Use single colors during extended test
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (9 preceding siblings ...)
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 10/11] tests/kms_plane: Abstract single vs. multiple crsc better Ville Syrjala
@ 2021-09-09 15:30 ` Ville Syrjala
  2021-09-09 16:32 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Clean up the supported rotations mess (rev3) Patchwork
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 20+ messages in thread
From: Ville Syrjala @ 2021-09-09 15:30 UTC (permalink / raw)
  To: igt-dev

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Sometimes it's nice to checks which colors are actually different.
So let's make the extended test always use single colors.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/kms_plane.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 760df5d7d334..f1a94b2c54c4 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -721,7 +721,7 @@ restart_round:
 
 static bool use_multiple_colors(data_t *data, uint32_t format)
 {
-	return igt_format_is_yuv_semiplanar(format);
+	return data->extended || igt_format_is_yuv_semiplanar(format);
 }
 
 static bool test_format_plane_colors(data_t *data, enum pipe pipe,
-- 
2.31.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for kms: Clean up the supported rotations mess (rev3)
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (10 preceding siblings ...)
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 11/11] tests/kms_plane: Use single colors during extended test Ville Syrjala
@ 2021-09-09 16:32 ` Patchwork
  2021-09-09 17:47 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  2021-11-10 18:03 ` [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Juha-Pekka Heikkila
  13 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2021-09-09 16:32 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: kms: Clean up the supported rotations mess (rev3)
URL   : https://patchwork.freedesktop.org/series/94293/
State : success

== Summary ==

CI Bug Log - changes from IGT_6203 -> IGTPW_6211
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@semaphore:
    - fi-bsw-nick:        NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/fi-bsw-nick/igt@amdgpu/amd_basic@semaphore.html

  * igt@i915_selftest@live@gt_timelines:
    - fi-rkl-guc:         [PASS][2] -> [INCOMPLETE][3] ([i915#4034])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/fi-rkl-guc/igt@i915_selftest@live@gt_timelines.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/fi-rkl-guc/igt@i915_selftest@live@gt_timelines.html

  * igt@i915_selftest@live@hangcheck:
    - fi-snb-2600:        [PASS][4] -> [INCOMPLETE][5] ([i915#3921])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/fi-snb-2600/igt@i915_selftest@live@hangcheck.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
    - fi-kbl-soraka:      [PASS][6] -> [DMESG-WARN][7] ([i915#1982])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/fi-kbl-soraka/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/fi-kbl-soraka/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html

  * igt@runner@aborted:
    - fi-rkl-guc:         NOTRUN -> [FAIL][8] ([i915#3928])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/fi-rkl-guc/igt@runner@aborted.html

  
#### Possible fixes ####

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

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2940]: https://gitlab.freedesktop.org/drm/intel/issues/2940
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#3928]: https://gitlab.freedesktop.org/drm/intel/issues/3928
  [i915#4034]: https://gitlab.freedesktop.org/drm/intel/issues/4034


Participating hosts (43 -> 39)
------------------------------

  Missing    (4): fi-ctg-p8600 fi-ilk-m540 fi-bsw-cyan fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6203 -> IGTPW_6211

  CI-20190529: 20190529
  CI_DRM_10565: 8c3cd60dcfa81a649b14f0705eb5e5c9336f1881 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6211: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/index.html
  IGT_6203: 64452a46b57ca4ef35eb65a547df8ed1b131e8f0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✗ Fi.CI.IGT: failure for kms: Clean up the supported rotations mess (rev3)
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (11 preceding siblings ...)
  2021-09-09 16:32 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Clean up the supported rotations mess (rev3) Patchwork
@ 2021-09-09 17:47 ` Patchwork
  2021-11-10 18:03 ` [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Juha-Pekka Heikkila
  13 siblings, 0 replies; 20+ messages in thread
From: Patchwork @ 2021-09-09 17:47 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

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

== Series Details ==

Series: kms: Clean up the supported rotations mess (rev3)
URL   : https://patchwork.freedesktop.org/series/94293/
State : failure

== Summary ==

CI Bug Log - changes from IGT_6203_full -> IGTPW_6211_full
====================================================

Summary
-------

  **FAILURE**

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

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180:
    - shard-tglb:         NOTRUN -> [SKIP][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb6/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html

  * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes:
    - shard-tglb:         [PASS][2] -> [INCOMPLETE][3]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-tglb3/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb7/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-b-planes.html

  
#### Warnings ####

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-270:
    - shard-iclb:         [SKIP][4] ([fdo#110723]) -> [SKIP][5] +15 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb5/igt@kms_big_fb@yf-tiled-8bpp-rotate-270.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb3/igt@kms_big_fb@yf-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-tglb:         [SKIP][6] ([fdo#111615]) -> [SKIP][7] +26 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-tglb7/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb5/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][8] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [FAIL][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb3/igt@kms_psr2_su@page_flip.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb2/igt@kms_psr2_su@page_flip.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_create@create-massive:
    - shard-tglb:         NOTRUN -> [DMESG-WARN][10] ([i915#3002])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb8/igt@gem_create@create-massive.html

  * igt@gem_ctx_param@set-priority-not-supported:
    - shard-tglb:         NOTRUN -> [SKIP][11] ([fdo#109314])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb2/igt@gem_ctx_param@set-priority-not-supported.html

  * igt@gem_ctx_persistence@legacy-engines-mixed-process:
    - shard-snb:          NOTRUN -> [SKIP][12] ([fdo#109271] / [i915#1099]) +4 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-snb6/igt@gem_ctx_persistence@legacy-engines-mixed-process.html

  * igt@gem_eio@kms:
    - shard-glk:          [PASS][13] -> [FAIL][14] ([i915#3115])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-glk1/igt@gem_eio@kms.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk1/igt@gem_eio@kms.html

  * igt@gem_eio@unwedge-stress:
    - shard-snb:          NOTRUN -> [FAIL][15] ([i915#3354])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-snb7/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-kbl:          [PASS][16] -> [FAIL][17] ([i915#2842])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-kbl6/igt@gem_exec_fair@basic-none-share@rcs0.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl1/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-apl:          [PASS][18] -> [FAIL][19] ([i915#2842])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-apl3/igt@gem_exec_fair@basic-none@vcs0.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl8/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-apl:          [PASS][20] -> [FAIL][21] ([i915#2842] / [i915#3468])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-apl3/igt@gem_exec_fair@basic-none@vecs0.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl8/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [PASS][22] -> [FAIL][23] ([i915#2842]) +2 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@bcs0:
    - shard-tglb:         NOTRUN -> [FAIL][24] ([i915#2842]) +4 similar issues
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb8/igt@gem_exec_fair@basic-pace@bcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
    - shard-iclb:         NOTRUN -> [FAIL][25] ([i915#2842]) +4 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb1/igt@gem_exec_fair@basic-pace@vcs1.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [PASS][26] -> [FAIL][27] ([i915#2842])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb2/igt@gem_exec_fair@basic-throttle@rcs0.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb7/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_mmap_gtt@cpuset-basic-small-copy-xy:
    - shard-iclb:         [PASS][28] -> [FAIL][29] ([i915#307])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb2/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb2/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-glk:          NOTRUN -> [WARN][30] ([i915#2658])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk8/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_userptr_blits@input-checking:
    - shard-apl:          NOTRUN -> [DMESG-WARN][31] ([i915#3002])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl7/igt@gem_userptr_blits@input-checking.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-tglb:         [PASS][32] -> [INCOMPLETE][33] ([i915#456])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-tglb5/igt@gem_workarounds@suspend-resume-fd.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb7/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen3_render_tiledy_blits:
    - shard-tglb:         NOTRUN -> [SKIP][34] ([fdo#109289])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb3/igt@gen3_render_tiledy_blits.html

  * igt@gen9_exec_parse@bb-large:
    - shard-tglb:         NOTRUN -> [SKIP][35] ([i915#2856]) +2 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb3/igt@gen9_exec_parse@bb-large.html

  * igt@i915_pm_backlight@bad-brightness:
    - shard-glk:          NOTRUN -> [SKIP][36] ([fdo#109271]) +49 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk3/igt@i915_pm_backlight@bad-brightness.html

  * igt@i915_pm_rpm@dpms-non-lpsp:
    - shard-tglb:         NOTRUN -> [SKIP][37] ([fdo#111644] / [i915#1397] / [i915#2411])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb5/igt@i915_pm_rpm@dpms-non-lpsp.html

  * igt@i915_query@query-topology-unsupported:
    - shard-tglb:         NOTRUN -> [SKIP][38] ([fdo#109302])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb6/igt@i915_query@query-topology-unsupported.html

  * igt@kms_big_fb@linear-8bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][39] ([fdo#111614])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb6/igt@kms_big_fb@linear-8bpp-rotate-90.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-apl:          NOTRUN -> [SKIP][40] ([fdo#109271] / [i915#3777])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl7/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0:
    - shard-apl:          NOTRUN -> [SKIP][41] ([fdo#109271]) +267 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl7/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0.html

  * igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_mc_ccs:
    - shard-glk:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3886]) +3 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk5/igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][43] ([fdo#109271] / [i915#3886]) +13 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl1/igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-a-random-ccs-data-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][44] ([i915#3689]) +8 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb5/igt@kms_ccs@pipe-a-random-ccs-data-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][45] ([i915#3689] / [i915#3886])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb5/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-tglb:         NOTRUN -> [SKIP][46] ([i915#3742])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb1/igt@kms_cdclk@mode-transition.html

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

  * igt@kms_color_chamelium@pipe-a-ctm-0-25:
    - shard-snb:          NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +19 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-snb5/igt@kms_color_chamelium@pipe-a-ctm-0-25.html

  * igt@kms_color_chamelium@pipe-a-gamma:
    - shard-iclb:         NOTRUN -> [SKIP][49] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb6/igt@kms_color_chamelium@pipe-a-gamma.html

  * igt@kms_color_chamelium@pipe-b-ctm-0-25:
    - shard-kbl:          NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl4/igt@kms_color_chamelium@pipe-b-ctm-0-25.html

  * igt@kms_color_chamelium@pipe-d-ctm-0-75:
    - shard-glk:          NOTRUN -> [SKIP][51] ([fdo#109271] / [fdo#111827]) +3 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk5/igt@kms_color_chamelium@pipe-d-ctm-0-75.html

  * igt@kms_color_chamelium@pipe-d-ctm-green-to-red:
    - shard-tglb:         NOTRUN -> [SKIP][52] ([fdo#109284] / [fdo#111827]) +4 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb3/igt@kms_color_chamelium@pipe-d-ctm-green-to-red.html

  * igt@kms_content_protection@atomic-dpms:
    - shard-apl:          NOTRUN -> [TIMEOUT][53] ([i915#1319]) +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl3/igt@kms_content_protection@atomic-dpms.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([i915#3116])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb7/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen:
    - shard-glk:          [PASS][55] -> [DMESG-WARN][56] ([i915#118] / [i915#95])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-glk6/igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk3/igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-32x32-rapid-movement:
    - shard-tglb:         NOTRUN -> [SKIP][57] ([i915#3319]) +1 similar issue
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-32x32-rapid-movement.html

  * igt@kms_cursor_crc@pipe-b-cursor-512x512-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][58] ([fdo#109279] / [i915#3359])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb7/igt@kms_cursor_crc@pipe-b-cursor-512x512-offscreen.html

  * igt@kms_cursor_crc@pipe-c-cursor-max-size-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][59] ([i915#3359]) +2 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb8/igt@kms_cursor_crc@pipe-c-cursor-max-size-offscreen.html

  * igt@kms_cursor_edge_walk@pipe-d-64x64-left-edge:
    - shard-kbl:          NOTRUN -> [SKIP][60] ([fdo#109271]) +18 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl3/igt@kms_cursor_edge_walk@pipe-d-64x64-left-edge.html
    - shard-iclb:         NOTRUN -> [SKIP][61] ([fdo#109278]) +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb3/igt@kms_cursor_edge_walk@pipe-d-64x64-left-edge.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic:
    - shard-tglb:         NOTRUN -> [SKIP][62] ([fdo#111825]) +20 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html

  * igt@kms_flip@2x-modeset-vs-vblank-race:
    - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109274])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb3/igt@kms_flip@2x-modeset-vs-vblank-race.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-edp1:
    - shard-tglb:         [PASS][64] -> [INCOMPLETE][65] ([i915#2411] / [i915#456])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-tglb8/igt@kms_flip@flip-vs-suspend-interruptible@a-edp1.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb7/igt@kms_flip@flip-vs-suspend-interruptible@a-edp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
    - shard-apl:          [PASS][66] -> [DMESG-WARN][67] ([i915#180]) +1 similar issue
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl3/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-blt:
    - shard-iclb:         NOTRUN -> [SKIP][68] ([fdo#109280])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb5/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt:
    - shard-glk:          [PASS][69] -> [FAIL][70] ([i915#1888] / [i915#2546])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-glk3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][71] -> [DMESG-WARN][72] ([i915#180]) +4 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl4/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-plflip-blt:
    - shard-snb:          NOTRUN -> [SKIP][73] ([fdo#109271]) +352 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-snb7/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-d:
    - shard-kbl:          NOTRUN -> [SKIP][74] ([fdo#109271] / [i915#533])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl3/igt@kms_pipe_crc_basic@read-crc-pipe-d.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d:
    - shard-apl:          NOTRUN -> [SKIP][75] ([fdo#109271] / [i915#533]) +1 similar issue
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl1/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-d.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-7efc:
    - shard-apl:          NOTRUN -> [FAIL][76] ([fdo#108145] / [i915#265]) +1 similar issue
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl8/igt@kms_plane_alpha_blend@pipe-b-alpha-7efc.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb:
    - shard-glk:          NOTRUN -> [FAIL][77] ([i915#265])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk1/igt@kms_plane_alpha_blend@pipe-b-alpha-transparent-fb.html

  * igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max:
    - shard-glk:          NOTRUN -> [FAIL][78] ([fdo#108145] / [i915#265])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk1/igt@kms_plane_alpha_blend@pipe-c-constant-alpha-max.html

  * igt@kms_plane_lowres@pipe-a-tiling-yf:
    - shard-tglb:         NOTRUN -> [SKIP][79] ([fdo#112054])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb6/igt@kms_plane_lowres@pipe-a-tiling-yf.html

  * igt@kms_plane_lowres@pipe-c-tiling-none:
    - shard-iclb:         NOTRUN -> [SKIP][80] ([i915#3536])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb8/igt@kms_plane_lowres@pipe-c-tiling-none.html
    - shard-tglb:         NOTRUN -> [SKIP][81] ([i915#3536])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb1/igt@kms_plane_lowres@pipe-c-tiling-none.html

  * igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping:
    - shard-apl:          NOTRUN -> [SKIP][82] ([fdo#109271] / [i915#2733])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl1/igt@kms_plane_scaling@scaler-with-clipping-clamping@pipe-c-scaler-with-clipping-clamping.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area-2:
    - shard-apl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658]) +3 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl2/igt@kms_psr2_sf@plane-move-sf-dmg-area-2.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2:
    - shard-glk:          NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#658])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-2.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3:
    - shard-tglb:         NOTRUN -> [SKIP][85] ([i915#2920])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3.html

  * igt@kms_psr@psr2_cursor_blt:
    - shard-iclb:         NOTRUN -> [SKIP][86] ([fdo#109441]) +1 similar issue
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb5/igt@kms_psr@psr2_cursor_blt.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-tglb:         NOTRUN -> [FAIL][87] ([i915#132] / [i915#3467])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb1/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][88] -> [SKIP][89] ([fdo#109441]) +1 similar issue
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb8/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-tglb:         NOTRUN -> [SKIP][90] ([fdo#111615])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_writeback@writeback-fb-id:
    - shard-apl:          NOTRUN -> [SKIP][91] ([fdo#109271] / [i915#2437])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl1/igt@kms_writeback@writeback-fb-id.html

  * igt@nouveau_crc@ctx-flip-threshold-reset-after-capture:
    - shard-iclb:         NOTRUN -> [SKIP][92] ([i915#2530])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb5/igt@nouveau_crc@ctx-flip-threshold-reset-after-capture.html
    - shard-tglb:         NOTRUN -> [SKIP][93] ([i915#2530]) +1 similar issue
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb7/igt@nouveau_crc@ctx-flip-threshold-reset-after-capture.html

  * igt@prime_nv_api@i915_self_import:
    - shard-tglb:         NOTRUN -> [SKIP][94] ([fdo#109291])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb3/igt@prime_nv_api@i915_self_import.html

  * igt@sysfs_clients@fair-1:
    - shard-apl:          NOTRUN -> [SKIP][95] ([fdo#109271] / [i915#2994]) +3 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl8/igt@sysfs_clients@fair-1.html

  
#### Possible fixes ####

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         [TIMEOUT][96] ([i915#2369] / [i915#3063] / [i915#3648]) -> [PASS][97]
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-tglb1/igt@gem_eio@unwedge-stress.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb3/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-none-rrul@rcs0:
    - shard-glk:          [FAIL][98] ([i915#2842]) -> [PASS][99] +1 similar issue
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-glk4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk5/igt@gem_exec_fair@basic-none-rrul@rcs0.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [SKIP][100] ([i915#2190]) -> [PASS][101]
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-tglb6/igt@gem_huc_copy@huc-copy.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb8/igt@gem_huc_copy@huc-copy.html

  * igt@gem_mmap_gtt@cpuset-big-copy-odd:
    - shard-iclb:         [FAIL][102] ([i915#307]) -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb7/igt@gem_mmap_gtt@cpuset-big-copy-odd.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb8/igt@gem_mmap_gtt@cpuset-big-copy-odd.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-apl:          [DMESG-WARN][104] ([i915#180]) -> [PASS][105] +2 similar issues
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-apl8/igt@i915_suspend@fence-restore-untiled.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-apl8/igt@i915_suspend@fence-restore-untiled.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-iclb:         [FAIL][106] ([i915#3601]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb5/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb5/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-tglb:         [INCOMPLETE][108] ([i915#2411] / [i915#456]) -> [PASS][109]
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-tglb7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-tglb:         [INCOMPLETE][110] ([i915#456]) -> [PASS][111]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-tglb7/igt@kms_fbcon_fbt@psr-suspend.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb1/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [SKIP][112] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][113]
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb1/igt@kms_psr2_su@frontbuffer.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb2/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_cursor_mmap_gtt:
    - shard-iclb:         [SKIP][114] ([fdo#109441]) -> [PASS][115]
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb7/igt@kms_psr@psr2_cursor_mmap_gtt.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_gtt.html

  * igt@kms_rotation_crc@cursor-rotation-180:
    - shard-glk:          [FAIL][116] ([i915#65]) -> [PASS][117]
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-glk9/igt@kms_rotation_crc@cursor-rotation-180.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-glk7/igt@kms_rotation_crc@cursor-rotation-180.html

  
#### Warnings ####

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-2:
    - shard-iclb:         [SKIP][118] ([i915#658]) -> [SKIP][119] ([i915#2920])
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb4/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-2.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-2.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3:
    - shard-iclb:         [SKIP][120] ([i915#2920]) -> [SKIP][121] ([i915#658])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-iclb3/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][122], [FAIL][123], [FAIL][124]) ([i915#1814] / [i915#3002] / [i915#3363] / [i915#602]) -> ([FAIL][125], [FAIL][126], [FAIL][127], [FAIL][128], [FAIL][129], [FAIL][130]) ([fdo#109271] / [i915#1436] / [i915#180] / [i915#1814] / [i915#3002] / [i915#3363] / [i915#602])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-kbl3/igt@runner@aborted.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-kbl4/igt@runner@aborted.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-kbl2/igt@runner@aborted.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl4/igt@runner@aborted.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl4/igt@runner@aborted.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl3/igt@runner@aborted.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl2/igt@runner@aborted.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl4/igt@runner@aborted.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-kbl4/igt@runner@aborted.html
    - shard-tglb:         [FAIL][131] ([i915#3002] / [i915#3728]) -> ([FAIL][132], [FAIL][133]) ([i915#3002])
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6203/shard-tglb1/igt@runner@aborted.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb1/igt@runner@aborted.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6211/shard-tglb8/igt@runner@aborted.html

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

  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t v2 01/11] lib/kms: Add igt_plane_has_rotation()
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 01/11] lib/kms: Add igt_plane_has_rotation() Ville Syrjala
@ 2021-09-20  7:37   ` Karthik B S
  0 siblings, 0 replies; 20+ messages in thread
From: Karthik B S @ 2021-09-20  7:37 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 9/9/2021 9:00 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Probe the supported rotations for each plane from the kernel
> This should let us eliminate tons of hand rolled gen checks all over.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Looks good to me.

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   lib/igt_kms.c | 41 +++++++++++++++++++++++++++++++++++++++++
>   lib/igt_kms.h | 16 ++++++++++++++++
>   2 files changed, 57 insertions(+)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index cc38f5a25334..6b0639f628b9 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -612,6 +612,41 @@ const char * const igt_connector_prop_names[IGT_NUM_CONNECTOR_PROPS] = {
>   	[IGT_CONNECTOR_DITHERING_MODE] = "dithering mode",
>   };
>   
> +const char * const igt_rotation_names[] = {
> +	[0] = "rotate-0",
> +	[1] = "rotate-90",
> +	[2] = "rotate-180",
> +	[3] = "rotate-270",
> +	[4] = "reflect-x",
> +	[5] = "reflect-y",
> +};
> +
> +static unsigned int
> +igt_plane_rotations(igt_display_t *display, igt_plane_t *plane,
> +		    drmModePropertyPtr prop)
> +{
> +	unsigned int rotations = 0;
> +
> +	igt_assert_eq(prop->flags & DRM_MODE_PROP_LEGACY_TYPE,
> +		      DRM_MODE_PROP_BITMASK);
> +	igt_assert_eq(prop->count_values, prop->count_enums);
> +
> +	for (int i = 0; i < ARRAY_SIZE(igt_rotation_names); i++) {
> +		for (int j = 0; j < prop->count_enums; j++) {
> +			if (strcmp(igt_rotation_names[i], prop->enums[j].name))
> +				continue;
> +
> +			/* various places assume the uabi uses specific bit values */
> +			igt_assert_eq(prop->values[j], i);
> +
> +			rotations |= 1 << i;
> +		}
> +	}
> +	igt_assert_neq(rotations, 0);
> +
> +	return rotations;
> +}
> +
>   /*
>    * Retrieve all the properies specified in props_name and store them into
>    * plane->props.
> @@ -640,9 +675,15 @@ igt_fill_plane_props(igt_display_t *display, igt_plane_t *plane,
>   			break;
>   		}
>   
> +		if (strcmp(prop->name, "rotation") == 0)
> +			plane->rotations = igt_plane_rotations(display, plane, prop);
> +
>   		drmModeFreeProperty(prop);
>   	}
>   
> +	if (!plane->rotations)
> +		plane->rotations = IGT_ROTATION_0;
> +
>   	drmModeFreeObjectProperties(props);
>   }
>   
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index ed598f164a59..b6cbf937166f 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -358,6 +358,8 @@ typedef struct igt_plane {
>   		uint64_t values[IGT_NUM_COLOR_RANGES];
>   	} color_range;
>   
> +	igt_rotation_t rotations;
> +
>   	uint64_t changed;
>   	uint32_t props[IGT_NUM_PLANE_PROPS];
>   	uint64_t values[IGT_NUM_PLANE_PROPS];
> @@ -491,6 +493,20 @@ void igt_fb_set_position(struct igt_fb *fb, igt_plane_t *plane,
>   void igt_fb_set_size(struct igt_fb *fb, igt_plane_t *plane,
>   	uint32_t w, uint32_t h);
>   
> +/**
> + * igt_plane_has_rotation:
> + * @plane: Plane pointer for which rotation is to be queried
> + * @rotation: Plane rotation value (0, 90, 180, 270)
> + *
> + * Check whether @plane potentially supports the given @rotation.
> + * Note that @rotation may still rejected later due to other
> + * constraints (eg. incompatible pixel format or modifier).
> + */
> +static inline bool igt_plane_has_rotation(igt_plane_t *plane, igt_rotation_t rotation)
> +{
> +	return (plane->rotations & rotation) == rotation;
> +}
> +
>   void igt_wait_for_vblank(int drm_fd, int crtc_offset);
>   void igt_wait_for_vblank_count(int drm_fd, int crtc_offset, int count);
>   


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

* Re: [igt-dev] [PATCH i-g-t v2 02/11] tests/kms_rotation_crc: Use igt_plane_has_rotation()
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 02/11] tests/kms_rotation_crc: Use igt_plane_has_rotation() Ville Syrjala
@ 2021-09-20  7:42   ` Karthik B S
  0 siblings, 0 replies; 20+ messages in thread
From: Karthik B S @ 2021-09-20  7:42 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 9/9/2021 9:00 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Use igt_plane_has_rotation() instead of these annoying
> hand rolled gen checks.
>
> Also fix up the bogus CHV checks to match reality. Since
> the test doesn't probe the final configuration with a
> TEST_ONLY atomic commit we must still manually filter
> out any case that would pass the basic rotation check but
> fail later.
>
> v2: Keep the gen9+ checks for the multiplane tests since they
>      want a non-fullscreen primary plane
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Looks good to me.

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   tests/kms_rotation_crc.c | 32 ++++++++++++--------------------
>   1 file changed, 12 insertions(+), 20 deletions(-)
>
> diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
> index 2c66cd7c4e31..11401a6d00ad 100644
> --- a/tests/kms_rotation_crc.c
> +++ b/tests/kms_rotation_crc.c
> @@ -493,9 +493,6 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
>   		for (c = 0; c < num_rectangle_types; c++)
>   			data->crc_rect[data->output_crc_in_use][c].valid = false;
>   
> -		if (is_i915_device(data->gfx_fd) && IS_CHERRYVIEW(data->devid) && pipe != PIPE_B)
> -			continue;
> -
>   		/* restricting the execution to 2 pipes to reduce execution time*/
>   		if (pipe_count == 2 * connected_outputs && !data->extended)
>   			break;
> @@ -505,6 +502,11 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
>   
>   		plane = igt_output_get_plane_type(output, plane_type);
>   		igt_require(igt_plane_has_prop(plane, IGT_PLANE_ROTATION));
> +		igt_require(igt_plane_has_rotation(plane, data->rotation));
> +		/* CHV can't rotate and reflect simultaneously */
> +		igt_require(!is_i915_device(data->gfx_fd) ||
> +			    !IS_CHERRYVIEW(data->devid) ||
> +			    data->rotation != (IGT_ROTATION_180 | IGT_REFLECT_X));
>   
>   		prepare_crtc(data, output, pipe, plane, true);
>   
> @@ -738,13 +740,14 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
>   						     && intel_display_ver(data->devid) < 11)
>   							continue;
>   
> -						if (igt_rotation_90_or_270(planeconfigs[i].rotation)
> -						    && intel_display_ver(data->devid) >= 13)
> +						if (!igt_plane_has_rotation(p[0].plane,
> +									    planeconfigs[i].rotation))
>   							continue;
>   
> -						if (igt_rotation_90_or_270(planeconfigs[j].rotation)
> -						    && intel_display_ver(data->devid) >= 13)
> +						if (!igt_plane_has_rotation(p[1].plane,
> +									    planeconfigs[j].rotation))
>   							continue;
> +
>   						/*
>   						 * if using packed formats crc's will be
>   						 * same and can store them so there's
> @@ -892,6 +895,7 @@ static void test_plane_rotation_exhaust_fences(data_t *data,
>   	int i;
>   
>   	igt_require(igt_plane_has_prop(plane, IGT_PLANE_ROTATION));
> +	igt_require(igt_plane_has_rotation(plane, IGT_ROTATION_0 | IGT_ROTATION_90));
>   	igt_require(gem_available_fences(display->drm_fd) > 0);
>   
>   	prepare_crtc(data, output, pipe, plane, false);
> @@ -1048,10 +1052,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   		igt_subtest_f("%s-rotation-%s",
>   			      plane_test_str(subtest->plane),
>   			      rot_test_str(subtest->rot)) {
> -			if (is_i915_device(data.gfx_fd)) {
> -				igt_require(!igt_rotation_90_or_270(subtest->rot) ||
> -					    (gen >= 9 && gen < 13));
> -			} else if (is_amdgpu_device(data.gfx_fd)) {
> +			if (is_amdgpu_device(data.gfx_fd)) {
>   				data.override_fmt = DRM_FORMAT_XRGB8888;
>   				if (igt_rotation_90_or_270(subtest->rot))
>   					data.override_tiling = AMD_FMT_MOD |
> @@ -1067,7 +1068,6 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   
>   	igt_describe("Rotation test with 90 degree for a plane of gen9+ with given position");
>   	igt_subtest_f("sprite-rotation-90-pos-100-0") {
> -		igt_require(gen >=9 && gen < 13);
>   		data.rotation = IGT_ROTATION_90;
>   		data.pos_x = 100,
>   		data.pos_y = 0;
> @@ -1082,7 +1082,6 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   		  * so apart from this, any other gen11+ pixel format
>   		  * can be used which doesn't support 90/270 degree
>   		  * rotation */
> -		igt_require(gen >=9 && gen < 13);
>   		data.rotation = IGT_ROTATION_90;
>   		data.override_fmt = gen < 11 ? DRM_FORMAT_RGB565 : DRM_FORMAT_Y212;
>   		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY, true);
> @@ -1091,7 +1090,6 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   
>   	igt_describe("Checking unsupported tiling for gen9+ with 90 degree of rotation");
>   	igt_subtest_f("bad-tiling") {
> -		igt_require(gen >=9 && gen < 13);
>   		data.rotation = IGT_ROTATION_90;
>   		data.override_tiling = I915_FORMAT_MOD_X_TILED;
>   		test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY, true);
> @@ -1103,12 +1101,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   		igt_subtest_f("primary-%s-reflect-x-%s",
>   			      tiling_test_str(reflect_x->tiling),
>   			      rot_test_str(reflect_x->rot)) {
> -			igt_require(gen >= 10 ||
> -				    (IS_CHERRYVIEW(data.devid) && reflect_x->rot == IGT_ROTATION_0
> -				     && reflect_x->tiling == I915_FORMAT_MOD_X_TILED));
>   			data.rotation = (IGT_REFLECT_X | reflect_x->rot);
> -			igt_require(!(gen >= 13 &&
> -				      igt_rotation_90_or_270(data.rotation)));
>   			data.override_tiling = reflect_x->tiling;
>   			test_plane_rotation(&data, DRM_PLANE_TYPE_PRIMARY, false);
>   		}
> @@ -1164,7 +1157,6 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
>   		enum pipe pipe;
>   		igt_output_t *output;
>   
> -		igt_require(gen >= 9 && gen < 13);
>   		igt_display_require_output(&data.display);
>   
>   		for_each_pipe_with_valid_output(&data.display, pipe, output) {


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

* Re: [igt-dev] [PATCH i-g-t v2 03/11] tests/kms_plane_scaling: Use igt_plane_has_rotation()
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 03/11] tests/kms_plane_scaling: " Ville Syrjala
@ 2021-09-20  7:45   ` Karthik B S
  0 siblings, 0 replies; 20+ messages in thread
From: Karthik B S @ 2021-09-20  7:45 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 9/9/2021 9:00 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Replace the hand rolled gen check with igt_plane_has_rotation().
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Looks good to me.

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   tests/kms_plane_scaling.c | 5 +----
>   1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
> index 809463a71583..4c517a4326d7 100644
> --- a/tests/kms_plane_scaling.c
> +++ b/tests/kms_plane_scaling.c
> @@ -165,10 +165,6 @@ static bool can_rotate(data_t *d, unsigned format, uint64_t tiling,
>   	if (!is_i915_device(d->drm_fd))
>   		return true;
>   
> -	if (intel_display_ver(d->devid) >= 13 &&
> -		igt_rotation_90_or_270(rot))
> -		return false;
> -
>   	switch (format) {
>   	case DRM_FORMAT_RGB565:
>   		if (intel_display_ver(d->devid) >= 11)
> @@ -272,6 +268,7 @@ static void test_scaler_with_rotation_pipe(data_t *d, enum pipe pipe,
>   
>   				if (test_format(d, &tested_formats, format) &&
>   				    igt_plane_has_format_mod(plane, format, tiling) &&
> +				    igt_plane_has_rotation(plane, rot) &&
>   				    can_rotate(d, format, tiling, rot) &&
>   				    can_scale(d, format))
>   					check_scaling_pipe_plane_rot(d, plane, format,


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

* Re: [igt-dev] [PATCH i-g-t v2 04/11] tests/kms_big_fb: Use igt_plane_has_rotation()
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 04/11] tests/kms_big_fb: " Ville Syrjala
@ 2021-09-20  7:46   ` Karthik B S
  0 siblings, 0 replies; 20+ messages in thread
From: Karthik B S @ 2021-09-20  7:46 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 9/9/2021 9:00 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Use igt_plane_has_rotation() instead of the manual
> "if there's no rotation prop -> only 0 dgree is supported"
> conclusion.
>
> And let's also get rid of the atomic vs. 0/270 degree rotation
> check. I think I added this to avoid the test failing since
> we can't do the TEST_ONLY probe withoiut atomic. With the
> unsupported rotations filtered out ahead of time we should
> never get into that situation.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Looks good to me.

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   tests/kms_big_fb.c | 9 +--------
>   1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
> index b988a092771a..092cbc6846fe 100644
> --- a/tests/kms_big_fb.c
> +++ b/tests/kms_big_fb.c
> @@ -323,14 +323,7 @@ static bool test_plane(data_t *data)
>   	if (!igt_plane_has_format_mod(plane, data->format, data->modifier))
>   		return false;
>   
> -	if (data->rotation != IGT_ROTATION_0 &&
> -	    !igt_plane_has_prop(plane, IGT_PLANE_ROTATION))
> -		return false;
> -
> -	/* FIXME need atomic on i965/g4x */
> -	if (data->rotation != IGT_ROTATION_0 &&
> -	    data->rotation != IGT_ROTATION_180 &&
> -	    !data->display.is_atomic)
> +	if (!igt_plane_has_rotation(plane, data->rotation))
>   		return false;
>   
>   	if (igt_plane_has_prop(plane, IGT_PLANE_ROTATION))


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

* Re: [igt-dev] [PATCH i-g-t v2 05/11] tests/kms_big_fb: Use igt_has_drm_cap()
  2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 05/11] tests/kms_big_fb: Use igt_has_drm_cap() Ville Syrjala
@ 2021-09-20  7:48   ` Karthik B S
  0 siblings, 0 replies; 20+ messages in thread
From: Karthik B S @ 2021-09-20  7:48 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 9/9/2021 9:00 PM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Replace the hand rolled cap check with igt_has_drm_cap().
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Looks good to me.

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   tests/kms_big_fb.c | 7 +------
>   1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/tests/kms_big_fb.c b/tests/kms_big_fb.c
> index 092cbc6846fe..308227c9113a 100644
> --- a/tests/kms_big_fb.c
> +++ b/tests/kms_big_fb.c
> @@ -57,7 +57,6 @@ typedef struct {
>   	double planeclearrgb[3];
>   	uint32_t format_override;
>   	uint32_t stride_override;
> -	uint32_t async_flip_support;
>   } data_t;
>   
>   static struct intel_buf *init_buf(data_t *data,
> @@ -800,7 +799,6 @@ igt_main
>   {
>   	igt_fixture {
>   		drmModeResPtr res;
> -		struct drm_get_cap cap = { .capability = DRM_CAP_ASYNC_PAGE_FLIP };
>   
>   		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
>   
> @@ -851,9 +849,6 @@ igt_main
>   
>   		data.max_hw_stride_test = false;
>   		data.async_flip_test = false;
> -
> -		igt_ioctl(data.drm_fd, DRM_IOCTL_GET_CAP, &cap);
> -		data.async_flip_support = cap.value;
>   	}
>   
>   	/*
> @@ -983,7 +978,7 @@ igt_main
>   							igt_require(data.format == DRM_FORMAT_C8 ||
>   								igt_fb_supported_format(data.format));
>   							igt_require(igt_display_has_format_mod(&data.display, data.format, data.modifier));
> -							igt_require_f(data.async_flip_support, "Async Flip is not supported\n");
> +							igt_require(igt_has_drm_cap(data.drm_fd, DRM_CAP_ASYNC_PAGE_FLIP));
>   							data.max_hw_fb_width = min(data.hw_stride / (formats[j].bpp >> 3), data.max_fb_width);
>   							test_scanout(&data);
>   					}


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

* Re: [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess
  2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
                   ` (12 preceding siblings ...)
  2021-09-09 17:47 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2021-11-10 18:03 ` Juha-Pekka Heikkila
  13 siblings, 0 replies; 20+ messages in thread
From: Juha-Pekka Heikkila @ 2021-11-10 18:03 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

Patches 6..11 look all ok.

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 9.9.2021 18.30, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Full repost due to Ci getting confused by bogus patch numbering :/
> 
> Reposting of igt_plane_has_rotation() + a few other remaining
> bits and bobs from the previous series. The main idea here is
> to remove most of the hardcoded platform checks for supported
> rotations. Sadly not quite 100% due to a few exceptional cases.
> 
> I left out the kms_big_fb fliptab[] nukage for the moment so that
> the CI results will be less noisy.
> 
> v2: keep some gen9+ checks in kms_rotation_crc
> 
> Ville Syrjälä (11):
>    lib/kms: Add igt_plane_has_rotation()
>    tests/kms_rotation_crc: Use igt_plane_has_rotation()
>    tests/kms_plane_scaling: Use igt_plane_has_rotation()
>    tests/kms_big_fb: Use igt_plane_has_rotation()
>    tests/kms_big_fb: Use igt_has_drm_cap()
>    tests/kms_big_fb: Move batch creation into lower level functions
>    tests/kms_big_fb: Move format/modifier checks lower
>    tests/kms_big_fb: Nuke the stride/format overrides
>    tests/kms_big_fb: Check whether the rotation is supposed in the async
>      flip test
>    tests/kms_plane: Abstract single vs. multiple crsc better
>    tests/kms_plane: Use single colors during extended test
> 
>   lib/igt_kms.c             | 41 ++++++++++++++++++++++++
>   lib/igt_kms.h             | 16 ++++++++++
>   tests/kms_big_fb.c        | 67 +++++++++++----------------------------
>   tests/kms_plane.c         | 61 +++++++++++++++++++----------------
>   tests/kms_plane_scaling.c |  5 +--
>   tests/kms_rotation_crc.c  | 32 +++++++------------
>   6 files changed, 123 insertions(+), 99 deletions(-)
> 

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

end of thread, other threads:[~2021-11-10 18:04 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-09 15:30 [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Ville Syrjala
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 01/11] lib/kms: Add igt_plane_has_rotation() Ville Syrjala
2021-09-20  7:37   ` Karthik B S
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 02/11] tests/kms_rotation_crc: Use igt_plane_has_rotation() Ville Syrjala
2021-09-20  7:42   ` Karthik B S
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 03/11] tests/kms_plane_scaling: " Ville Syrjala
2021-09-20  7:45   ` Karthik B S
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 04/11] tests/kms_big_fb: " Ville Syrjala
2021-09-20  7:46   ` Karthik B S
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 05/11] tests/kms_big_fb: Use igt_has_drm_cap() Ville Syrjala
2021-09-20  7:48   ` Karthik B S
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 06/11] tests/kms_big_fb: Move batch creation into lower level functions Ville Syrjala
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 07/11] tests/kms_big_fb: Move format/modifier checks lower Ville Syrjala
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 08/11] tests/kms_big_fb: Nuke the stride/format overrides Ville Syrjala
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 09/11] tests/kms_big_fb: Check whether the rotation is supposed in the async flip test Ville Syrjala
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 10/11] tests/kms_plane: Abstract single vs. multiple crsc better Ville Syrjala
2021-09-09 15:30 ` [igt-dev] [PATCH i-g-t v2 11/11] tests/kms_plane: Use single colors during extended test Ville Syrjala
2021-09-09 16:32 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Clean up the supported rotations mess (rev3) Patchwork
2021-09-09 17:47 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-11-10 18:03 ` [igt-dev] [PATCH i-g-t v2 00/11] kms: Clean up the supported rotations mess Juha-Pekka Heikkila

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.