All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require()
@ 2025-12-17 15:37 Ville Syrjala
  2025-12-17 15:37 ` [PATCH i-g-t 01/11] lib/kms: Extract igt_crtc_init() Ville Syrjala
                   ` (13 more replies)
  0 siblings, 14 replies; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

Coccinelle really doesn't like igt_display_require(). Sometimes
it takes approximately forever to do any changes to igt_kms.c
because of this. Splitting the function up seems to help a bit,
or at least then some modifications can be done in finite time.

While at it try to clean up the plane->index stuff a bit.

Ville Syrjälä (11):
  lib/kms: Extract igt_crtc_init()
  lib/kms: Nuke 'n_planes' from igt_crtc_init()
  lib/kms: Nuke 'last_plane' from igt_crtc_init()
  lib/kms: Get rid of the 'p' plane index variable
  lib/kms: Extract igt_crtc_plane_init()
  lib/kms: Nuke pipe->plane_primary
  lib/kms: Nuke pipe->plane_cursor
  lib/kms: Use '{old,new}_primary' variable names in plane swapping
  lib/kms: Pimp the priamry plane swapping
  lib/kms: Extract plane_type_index()
  lib/kms: Streamline plane index handling further

 lib/igt_kms.c | 269 ++++++++++++++++++++++++++------------------------
 lib/igt_kms.h |   2 -
 2 files changed, 141 insertions(+), 130 deletions(-)

-- 
2.51.2


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

* [PATCH i-g-t 01/11] lib/kms: Extract igt_crtc_init()
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-17 19:04   ` Jani Nikula
  2025-12-17 15:37 ` [PATCH i-g-t 02/11] lib/kms: Nuke 'n_planes' from igt_crtc_init() Ville Syrjala
                   ` (12 subsequent siblings)
  13 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

Coccinelle tends to hit some kind of pathological performance
problem with igt_display_require(). Carving it up seems to help
a bit, so extract the crtc init loop into a separate function.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 199 ++++++++++++++++++++++++++------------------------
 1 file changed, 102 insertions(+), 97 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index e3e9bf9bce07..4993d4db8a8a 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3052,6 +3052,106 @@ void igt_display_reset_outputs(igt_display_t *display)
 	drmModeFreeResources(resources);
 }
 
+static void igt_crtc_init(igt_display_t *display,
+			  drmModeRes *resources, int i)
+{
+	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
+	igt_plane_t *plane;
+	int p = 1, crtc_mask = 0;
+	int j, type;
+	uint8_t last_plane = 0, n_planes = 0;
+
+	pipe->display = display;
+	pipe->plane_cursor = -1;
+	pipe->plane_primary = -1;
+	pipe->planes = NULL;
+	pipe->num_primary_planes = 0;
+
+	igt_fill_pipe_props(display, pipe, IGT_NUM_CRTC_PROPS, igt_crtc_prop_names);
+
+	/* Get valid crtc index from crtcs for a pipe */
+	crtc_mask = __get_crtc_mask_for_pipe(resources, pipe);
+
+	/* count number of valid planes */
+	for (j = 0; j < display->n_planes; j++) {
+		drmModePlane *drm_plane = display->planes[j].drm_plane;
+		igt_assert(drm_plane);
+
+		if (drm_plane->possible_crtcs & crtc_mask)
+			n_planes++;
+	}
+
+	igt_assert_lt(0, n_planes);
+	pipe->planes = calloc(n_planes, sizeof(igt_plane_t));
+	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n", n_planes);
+	last_plane = n_planes - 1;
+
+	/* add the planes that can be used with that pipe */
+	for (j = 0; j < display->n_planes; j++) {
+		igt_plane_t *global_plane = &display->planes[j];
+		drmModePlane *drm_plane = global_plane->drm_plane;
+
+		if (!(drm_plane->possible_crtcs & crtc_mask))
+			continue;
+
+		type = global_plane->type;
+
+		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
+			plane = &pipe->planes[0];
+			plane->index = 0;
+			pipe->plane_primary = 0;
+			pipe->num_primary_planes++;
+		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
+			plane = &pipe->planes[last_plane];
+			plane->index = last_plane;
+			pipe->plane_cursor = last_plane;
+			display->has_cursor_plane = true;
+		} else {
+			/*
+			 * Increment num_primary_planes for any extra
+			 * primary plane found.
+			 */
+			if (type == DRM_PLANE_TYPE_PRIMARY)
+				pipe->num_primary_planes++;
+
+			plane = &pipe->planes[p];
+			plane->index = p++;
+		}
+
+		igt_assert_f(plane->index < n_planes, "n_planes < plane->index failed\n");
+		plane->type = type;
+		plane->pipe = pipe;
+		plane->drm_plane = drm_plane;
+		plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
+		plane->ref = global_plane;
+
+		/*
+		 * HACK: point the global plane to the first pipe that
+		 * it can go on.
+		 */
+		if (!global_plane->ref)
+			igt_plane_set_pipe(plane, pipe);
+
+		igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
+
+		igt_fill_plane_format_mod(display, plane);
+	}
+
+	/*
+	 * At the bare minimum, we should expect to have a primary
+	 * plane, and it must be in slot 0.
+	 */
+	igt_assert_eq(pipe->plane_primary, 0);
+
+	/* Check that we filled every slot exactly once */
+	if (display->has_cursor_plane)
+		igt_assert_eq(p, last_plane);
+	else
+		igt_assert_eq(p, n_planes);
+
+	pipe->n_planes = n_planes;
+}
+
 /**
  * igt_display_require:
  * @display: a pointer to an #igt_display_t structure
@@ -3155,103 +3255,8 @@ void igt_display_require(igt_display_t *display, int drm_fd)
 	display->colorops = calloc(MAX_NUM_COLOROPS, sizeof(igt_colorop_t));
 	display->n_colorops = 0;
 
-	for_each_pipe(display, i) {
-		igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
-		igt_plane_t *plane;
-		int p = 1, crtc_mask = 0;
-		int j, type;
-		uint8_t last_plane = 0, n_planes = 0;
-
-		pipe->display = display;
-		pipe->plane_cursor = -1;
-		pipe->plane_primary = -1;
-		pipe->planes = NULL;
-		pipe->num_primary_planes = 0;
-
-		igt_fill_pipe_props(display, pipe, IGT_NUM_CRTC_PROPS, igt_crtc_prop_names);
-
-		/* Get valid crtc index from crtcs for a pipe */
-		crtc_mask = __get_crtc_mask_for_pipe(resources, pipe);
-
-		/* count number of valid planes */
-		for (j = 0; j < display->n_planes; j++) {
-			drmModePlane *drm_plane = display->planes[j].drm_plane;
-			igt_assert(drm_plane);
-
-			if (drm_plane->possible_crtcs & crtc_mask)
-				n_planes++;
-		}
-
-		igt_assert_lt(0, n_planes);
-		pipe->planes = calloc(n_planes, sizeof(igt_plane_t));
-		igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n", n_planes);
-		last_plane = n_planes - 1;
-
-		/* add the planes that can be used with that pipe */
-		for (j = 0; j < display->n_planes; j++) {
-			igt_plane_t *global_plane = &display->planes[j];
-			drmModePlane *drm_plane = global_plane->drm_plane;
-
-			if (!(drm_plane->possible_crtcs & crtc_mask))
-				continue;
-
-			type = global_plane->type;
-
-			if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
-				plane = &pipe->planes[0];
-				plane->index = 0;
-				pipe->plane_primary = 0;
-				pipe->num_primary_planes++;
-			} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
-				plane = &pipe->planes[last_plane];
-				plane->index = last_plane;
-				pipe->plane_cursor = last_plane;
-				display->has_cursor_plane = true;
-			} else {
-				/*
-				 * Increment num_primary_planes for any extra
-				 * primary plane found.
-				 */
-				if (type == DRM_PLANE_TYPE_PRIMARY)
-					pipe->num_primary_planes++;
-
-				plane = &pipe->planes[p];
-				plane->index = p++;
-			}
-
-			igt_assert_f(plane->index < n_planes, "n_planes < plane->index failed\n");
-			plane->type = type;
-			plane->pipe = pipe;
-			plane->drm_plane = drm_plane;
-			plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
-			plane->ref = global_plane;
-
-			/*
-			 * HACK: point the global plane to the first pipe that
-			 * it can go on.
-			 */
-			if (!global_plane->ref)
-				igt_plane_set_pipe(plane, pipe);
-
-			igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
-
-			igt_fill_plane_format_mod(display, plane);
-		}
-
-		/*
-		 * At the bare minimum, we should expect to have a primary
-		 * plane, and it must be in slot 0.
-		 */
-		igt_assert_eq(pipe->plane_primary, 0);
-
-		/* Check that we filled every slot exactly once */
-		if (display->has_cursor_plane)
-			igt_assert_eq(p, last_plane);
-		else
-			igt_assert_eq(p, n_planes);
-
-		pipe->n_planes = n_planes;
-	}
+	for_each_pipe(display, i)
+		igt_crtc_init(display, resources, i);
 
 	drmModeFreeResources(resources);
 
-- 
2.51.2


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

* [PATCH i-g-t 02/11] lib/kms: Nuke 'n_planes' from igt_crtc_init()
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
  2025-12-17 15:37 ` [PATCH i-g-t 01/11] lib/kms: Extract igt_crtc_init() Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-17 19:11   ` Jani Nikula
  2025-12-17 15:37 ` [PATCH i-g-t 03/11] lib/kms: Nuke 'last_plane' " Ville Syrjala
                   ` (11 subsequent siblings)
  13 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

The 'n_planes' varaible is essentially just a duplicate of
'pipe->n_planes'. Get rid of the copy and just populate the
real thing early.

Having less variables around will help with carving up
igt_crtc_init() further.

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

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 4993d4db8a8a..082934e4e216 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3059,7 +3059,7 @@ static void igt_crtc_init(igt_display_t *display,
 	igt_plane_t *plane;
 	int p = 1, crtc_mask = 0;
 	int j, type;
-	uint8_t last_plane = 0, n_planes = 0;
+	uint8_t last_plane = 0;
 
 	pipe->display = display;
 	pipe->plane_cursor = -1;
@@ -3078,13 +3078,14 @@ static void igt_crtc_init(igt_display_t *display,
 		igt_assert(drm_plane);
 
 		if (drm_plane->possible_crtcs & crtc_mask)
-			n_planes++;
+			pipe->n_planes++;
 	}
 
-	igt_assert_lt(0, n_planes);
-	pipe->planes = calloc(n_planes, sizeof(igt_plane_t));
-	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n", n_planes);
-	last_plane = n_planes - 1;
+	igt_assert_lt(0, pipe->n_planes);
+	pipe->planes = calloc(pipe->n_planes, sizeof(igt_plane_t));
+	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n",
+		     pipe->n_planes);
+	last_plane = pipe->n_planes - 1;
 
 	/* add the planes that can be used with that pipe */
 	for (j = 0; j < display->n_planes; j++) {
@@ -3118,7 +3119,8 @@ static void igt_crtc_init(igt_display_t *display,
 			plane->index = p++;
 		}
 
-		igt_assert_f(plane->index < n_planes, "n_planes < plane->index failed\n");
+		igt_assert_f(plane->index < pipe->n_planes,
+			     "n_planes < plane->index failed\n");
 		plane->type = type;
 		plane->pipe = pipe;
 		plane->drm_plane = drm_plane;
@@ -3147,9 +3149,7 @@ static void igt_crtc_init(igt_display_t *display,
 	if (display->has_cursor_plane)
 		igt_assert_eq(p, last_plane);
 	else
-		igt_assert_eq(p, n_planes);
-
-	pipe->n_planes = n_planes;
+		igt_assert_eq(p, pipe->n_planes);
 }
 
 /**
-- 
2.51.2


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

* [PATCH i-g-t 03/11] lib/kms: Nuke 'last_plane' from igt_crtc_init()
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
  2025-12-17 15:37 ` [PATCH i-g-t 01/11] lib/kms: Extract igt_crtc_init() Ville Syrjala
  2025-12-17 15:37 ` [PATCH i-g-t 02/11] lib/kms: Nuke 'n_planes' from igt_crtc_init() Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-17 19:12   ` Jani Nikula
  2025-12-17 15:37 ` [PATCH i-g-t 04/11] lib/kms: Get rid of the 'p' plane index variable Ville Syrjala
                   ` (10 subsequent siblings)
  13 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

'last_plane' is just 'pipe->n_planes - 1'. Remvoe the redundant
variable.

Having less variables around will help with carving up
igt_crtc_init() further.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 082934e4e216..72c91fb5da76 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3059,7 +3059,6 @@ static void igt_crtc_init(igt_display_t *display,
 	igt_plane_t *plane;
 	int p = 1, crtc_mask = 0;
 	int j, type;
-	uint8_t last_plane = 0;
 
 	pipe->display = display;
 	pipe->plane_cursor = -1;
@@ -3085,7 +3084,6 @@ static void igt_crtc_init(igt_display_t *display,
 	pipe->planes = calloc(pipe->n_planes, sizeof(igt_plane_t));
 	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n",
 		     pipe->n_planes);
-	last_plane = pipe->n_planes - 1;
 
 	/* add the planes that can be used with that pipe */
 	for (j = 0; j < display->n_planes; j++) {
@@ -3103,9 +3101,9 @@ static void igt_crtc_init(igt_display_t *display,
 			pipe->plane_primary = 0;
 			pipe->num_primary_planes++;
 		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
-			plane = &pipe->planes[last_plane];
-			plane->index = last_plane;
-			pipe->plane_cursor = last_plane;
+			plane = &pipe->planes[pipe->n_planes - 1];
+			plane->index = pipe->n_planes - 1;
+			pipe->plane_cursor = pipe->n_planes - 1;
 			display->has_cursor_plane = true;
 		} else {
 			/*
@@ -3147,7 +3145,7 @@ static void igt_crtc_init(igt_display_t *display,
 
 	/* Check that we filled every slot exactly once */
 	if (display->has_cursor_plane)
-		igt_assert_eq(p, last_plane);
+		igt_assert_eq(p, pipe->n_planes - 1);
 	else
 		igt_assert_eq(p, pipe->n_planes);
 }
-- 
2.51.2


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

* [PATCH i-g-t 04/11] lib/kms: Get rid of the 'p' plane index variable
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (2 preceding siblings ...)
  2025-12-17 15:37 ` [PATCH i-g-t 03/11] lib/kms: Nuke 'last_plane' " Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-17 19:17   ` Jani Nikula
                     ` (2 more replies)
  2025-12-17 15:37 ` [PATCH i-g-t 05/11] lib/kms: Extract igt_crtc_plane_init() Ville Syrjala
                   ` (9 subsequent siblings)
  13 siblings, 3 replies; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

The 'p' thing used to track the next free plane slot is annoying.
Get rid of it by just initializing the plane indexes to -1 to
indicate a free slot at the start, and then do a straightforward
search for the next free slot. And for good measure make sure all
the -1's have disappeared at the end.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 45 ++++++++++++++++++++++++++-------------------
 1 file changed, 26 insertions(+), 19 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 72c91fb5da76..5679643e167a 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3057,7 +3057,7 @@ static void igt_crtc_init(igt_display_t *display,
 {
 	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
 	igt_plane_t *plane;
-	int p = 1, crtc_mask = 0;
+	int crtc_mask = 0;
 	int j, type;
 
 	pipe->display = display;
@@ -3082,13 +3082,16 @@ static void igt_crtc_init(igt_display_t *display,
 
 	igt_assert_lt(0, pipe->n_planes);
 	pipe->planes = calloc(pipe->n_planes, sizeof(igt_plane_t));
-	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n",
-		     pipe->n_planes);
+	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n", pipe->n_planes);
+
+	for (j = 0 ; j < pipe->n_planes; j++)
+		pipe->planes[j].index = -1;
 
 	/* add the planes that can be used with that pipe */
 	for (j = 0; j < display->n_planes; j++) {
 		igt_plane_t *global_plane = &display->planes[j];
 		drmModePlane *drm_plane = global_plane->drm_plane;
+		int index;
 
 		if (!(drm_plane->possible_crtcs & crtc_mask))
 			continue;
@@ -3096,29 +3099,36 @@ static void igt_crtc_init(igt_display_t *display,
 		type = global_plane->type;
 
 		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
-			plane = &pipe->planes[0];
-			plane->index = 0;
-			pipe->plane_primary = 0;
+			index = 0;
+
+			pipe->plane_primary = index;
 			pipe->num_primary_planes++;
 		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
-			plane = &pipe->planes[pipe->n_planes - 1];
-			plane->index = pipe->n_planes - 1;
-			pipe->plane_cursor = pipe->n_planes - 1;
+			index = pipe->n_planes - 1;
+
+			pipe->plane_cursor = index;
 			display->has_cursor_plane = true;
 		} else {
+			for (index = 1 ; index < pipe->n_planes; index++) {
+				if (pipe->planes[index].index < 0)
+					break;
+			}
+
 			/*
 			 * Increment num_primary_planes for any extra
 			 * primary plane found.
 			 */
 			if (type == DRM_PLANE_TYPE_PRIMARY)
 				pipe->num_primary_planes++;
-
-			plane = &pipe->planes[p];
-			plane->index = p++;
 		}
 
-		igt_assert_f(plane->index < pipe->n_planes,
-			     "n_planes < plane->index failed\n");
+		igt_assert_lt(index, pipe->n_planes);
+
+		plane = &pipe->planes[index];
+
+		igt_assert_lt(plane->index, 0);
+
+		plane->index = index;
 		plane->type = type;
 		plane->pipe = pipe;
 		plane->drm_plane = drm_plane;
@@ -3143,11 +3153,8 @@ static void igt_crtc_init(igt_display_t *display,
 	 */
 	igt_assert_eq(pipe->plane_primary, 0);
 
-	/* Check that we filled every slot exactly once */
-	if (display->has_cursor_plane)
-		igt_assert_eq(p, pipe->n_planes - 1);
-	else
-		igt_assert_eq(p, pipe->n_planes);
+	for (j = 0; j < pipe->n_planes; j++)
+		igt_assert_lt(0, pipe->planes[j].index);
 }
 
 /**
-- 
2.51.2


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

* [PATCH i-g-t 05/11] lib/kms: Extract igt_crtc_plane_init()
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (3 preceding siblings ...)
  2025-12-17 15:37 ` [PATCH i-g-t 04/11] lib/kms: Get rid of the 'p' plane index variable Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-17 19:18   ` Jani Nikula
  2025-12-18 15:48   ` [PATCH i-g-t v2 " Ville Syrjala
  2025-12-17 15:37 ` [PATCH i-g-t 06/11] lib/kms: Nuke pipe->plane_primary Ville Syrjala
                   ` (8 subsequent siblings)
  13 siblings, 2 replies; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

Coccinelle tends to hit some kind of pathological performance
problem with igt_display_require(). Carving it up seems to help
a bit, so extract the plane init loop into a separate function.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 113 +++++++++++++++++++++++++++-----------------------
 1 file changed, 61 insertions(+), 52 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 5679643e167a..233f326d487f 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3052,13 +3052,71 @@ void igt_display_reset_outputs(igt_display_t *display)
 	drmModeFreeResources(resources);
 }
 
+static void igt_crtc_plane_init(igt_display_t *display,
+				igt_crtc_t *pipe,
+				drmModeRes *resources,
+				igt_plane_t *global_plane)
+{
+	drmModePlane *drm_plane = global_plane->drm_plane;
+	int type = global_plane->type;
+	igt_plane_t *plane;
+	int index;
+
+	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
+		index = 0;
+
+		pipe->plane_primary = index;
+		pipe->num_primary_planes++;
+	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
+		index = pipe->n_planes - 1;
+
+		pipe->plane_cursor = index;
+		display->has_cursor_plane = true;
+	} else {
+		for (index = 1; index < pipe->n_planes; index++) {
+			if (pipe->planes[index].index < 0)
+				break;
+		}
+
+		/*
+		 * Increment num_primary_planes for any extra
+		 * primary plane found.
+		 */
+		if (type == DRM_PLANE_TYPE_PRIMARY)
+			pipe->num_primary_planes++;
+	}
+
+	igt_assert_lt(index, pipe->n_planes);
+
+	plane = &pipe->planes[index];
+
+	igt_assert_lt(plane->index, 0);
+
+	plane->index = index;
+	plane->type = type;
+	plane->pipe = pipe;
+	plane->drm_plane = drm_plane;
+	plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
+	plane->ref = global_plane;
+
+	/*
+	 * HACK: point the global plane to the first pipe that
+	 * it can go on.
+	 */
+	if (!global_plane->ref)
+		igt_plane_set_pipe(plane, pipe);
+
+	igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
+
+	igt_fill_plane_format_mod(display, plane);
+}
+
 static void igt_crtc_init(igt_display_t *display,
 			  drmModeRes *resources, int i)
 {
 	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
-	igt_plane_t *plane;
 	int crtc_mask = 0;
-	int j, type;
+	int j;
 
 	pipe->display = display;
 	pipe->plane_cursor = -1;
@@ -3091,60 +3149,11 @@ static void igt_crtc_init(igt_display_t *display,
 	for (j = 0; j < display->n_planes; j++) {
 		igt_plane_t *global_plane = &display->planes[j];
 		drmModePlane *drm_plane = global_plane->drm_plane;
-		int index;
 
 		if (!(drm_plane->possible_crtcs & crtc_mask))
 			continue;
 
-		type = global_plane->type;
-
-		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
-			index = 0;
-
-			pipe->plane_primary = index;
-			pipe->num_primary_planes++;
-		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
-			index = pipe->n_planes - 1;
-
-			pipe->plane_cursor = index;
-			display->has_cursor_plane = true;
-		} else {
-			for (index = 1 ; index < pipe->n_planes; index++) {
-				if (pipe->planes[index].index < 0)
-					break;
-			}
-
-			/*
-			 * Increment num_primary_planes for any extra
-			 * primary plane found.
-			 */
-			if (type == DRM_PLANE_TYPE_PRIMARY)
-				pipe->num_primary_planes++;
-		}
-
-		igt_assert_lt(index, pipe->n_planes);
-
-		plane = &pipe->planes[index];
-
-		igt_assert_lt(plane->index, 0);
-
-		plane->index = index;
-		plane->type = type;
-		plane->pipe = pipe;
-		plane->drm_plane = drm_plane;
-		plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
-		plane->ref = global_plane;
-
-		/*
-		 * HACK: point the global plane to the first pipe that
-		 * it can go on.
-		 */
-		if (!global_plane->ref)
-			igt_plane_set_pipe(plane, pipe);
-
-		igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
-
-		igt_fill_plane_format_mod(display, plane);
+		igt_crtc_plane_init(display, pipe, resources, global_plane);
 	}
 
 	/*
-- 
2.51.2


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

* [PATCH i-g-t 06/11] lib/kms: Nuke pipe->plane_primary
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (4 preceding siblings ...)
  2025-12-17 15:37 ` [PATCH i-g-t 05/11] lib/kms: Extract igt_crtc_plane_init() Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-18 11:37   ` Jani Nikula
  2025-12-17 15:37 ` [PATCH i-g-t 07/11] lib/kms: Nuke pipe->plane_cursor Ville Syrjala
                   ` (7 subsequent siblings)
  13 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

Get rid of of the redundant pipe->plane_primary. It'll
always be 0 after we've found the plane. And before we've
found the plane we can just check for 'pipe->planes[0].index < 0'.

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

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 233f326d487f..5bb8da1ec2c5 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3022,29 +3022,24 @@ void igt_display_reset_outputs(igt_display_t *display)
 		output = igt_get_single_output_for_pipe(display, i);
 
 		if (pipe->num_primary_planes > 1) {
-			igt_plane_t *primary =
-				&pipe->planes[pipe->plane_primary];
+			igt_plane_t *primary = &pipe->planes[0];
 			igt_plane_t *assigned_primary =
 				igt_get_assigned_primary(output, pipe);
 			int assigned_primary_index = assigned_primary->index;
 
 			/*
 			 * If the driver-assigned primary plane isn't at
-			 * the pipe->plane_primary index, swap it with
-			 * the plane that's currently at the
-			 * plane_primary index and update plane->index
-			 * accordingly.
+			 * index 0, swap it with the plane that's currently
+			 * at index 0 and update the indexes accordingly.
 			 *
-			 * This way, we can preserve pipe->plane_primary
-			 * as 0 so that tests that assume
-			 * pipe->plane_primary is always 0 won't break.
+			 * This way, the primary plane is always at index 0.
 			 */
-			if (assigned_primary_index != pipe->plane_primary) {
-				assigned_primary->index = pipe->plane_primary;
+			if (assigned_primary_index != 0) {
+				assigned_primary->index = 0;
 				primary->index = assigned_primary_index;
 
 				igt_swap(pipe->planes[assigned_primary_index],
-					 pipe->planes[pipe->plane_primary]);
+					 pipe->planes[0]);
 			}
 		}
 	}
@@ -3062,10 +3057,9 @@ static void igt_crtc_plane_init(igt_display_t *display,
 	igt_plane_t *plane;
 	int index;
 
-	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
+	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->planes[0].index < 0) {
 		index = 0;
 
-		pipe->plane_primary = index;
 		pipe->num_primary_planes++;
 	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
 		index = pipe->n_planes - 1;
@@ -3120,7 +3114,6 @@ static void igt_crtc_init(igt_display_t *display,
 
 	pipe->display = display;
 	pipe->plane_cursor = -1;
-	pipe->plane_primary = -1;
 	pipe->planes = NULL;
 	pipe->num_primary_planes = 0;
 
@@ -3156,12 +3149,6 @@ static void igt_crtc_init(igt_display_t *display,
 		igt_crtc_plane_init(display, pipe, resources, global_plane);
 	}
 
-	/*
-	 * At the bare minimum, we should expect to have a primary
-	 * plane, and it must be in slot 0.
-	 */
-	igt_assert_eq(pipe->plane_primary, 0);
-
 	for (j = 0; j < pipe->n_planes; j++)
 		igt_assert_lt(0, pipe->planes[j].index);
 }
@@ -3582,7 +3569,7 @@ igt_plane_t *igt_pipe_get_plane_type(igt_crtc_t *pipe, int plane_type)
 		plane_idx = pipe->plane_cursor;
 		break;
 	case DRM_PLANE_TYPE_PRIMARY:
-		plane_idx = pipe->plane_primary;
+		plane_idx = 0;
 		break;
 	case DRM_PLANE_TYPE_OVERLAY:
 		for(i = 0; i < pipe->n_planes; i++)
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index b00884640e16..810eb7497834 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -490,7 +490,6 @@ struct igt_crtc {
 	int n_planes;
 	int num_primary_planes;
 	int plane_cursor;
-	int plane_primary;
 	igt_plane_t *planes;
 
 	uint64_t changed;
-- 
2.51.2


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

* [PATCH i-g-t 07/11] lib/kms: Nuke pipe->plane_cursor
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (5 preceding siblings ...)
  2025-12-17 15:37 ` [PATCH i-g-t 06/11] lib/kms: Nuke pipe->plane_primary Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-18 11:39   ` Jani Nikula
  2025-12-17 15:37 ` [PATCH i-g-t 08/11] lib/kms: Use '{old, new}_primary' variable names in plane swapping Ville Syrjala
                   ` (6 subsequent siblings)
  13 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

Get rid of of the redundant pipe->plane_cursor. It'll
always be 'pipe->n_planes-1' after we've found the plane.
And before we've found the plane we can just check for
'pipe->planes[pipe->n_planes-1].index < 0'.

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

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 5bb8da1ec2c5..7ae166253a3f 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3061,10 +3061,9 @@ static void igt_crtc_plane_init(igt_display_t *display,
 		index = 0;
 
 		pipe->num_primary_planes++;
-	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
+	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->planes[pipe->n_planes - 1].index < 0) {
 		index = pipe->n_planes - 1;
 
-		pipe->plane_cursor = index;
 		display->has_cursor_plane = true;
 	} else {
 		for (index = 1; index < pipe->n_planes; index++) {
@@ -3113,7 +3112,6 @@ static void igt_crtc_init(igt_display_t *display,
 	int j;
 
 	pipe->display = display;
-	pipe->plane_cursor = -1;
 	pipe->planes = NULL;
 	pipe->num_primary_planes = 0;
 
@@ -3566,7 +3564,7 @@ igt_plane_t *igt_pipe_get_plane_type(igt_crtc_t *pipe, int plane_type)
 
 	switch(plane_type) {
 	case DRM_PLANE_TYPE_CURSOR:
-		plane_idx = pipe->plane_cursor;
+		plane_idx = pipe->n_planes - 1;
 		break;
 	case DRM_PLANE_TYPE_PRIMARY:
 		plane_idx = 0;
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 810eb7497834..4a814f0e9962 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -489,7 +489,6 @@ struct igt_crtc {
 
 	int n_planes;
 	int num_primary_planes;
-	int plane_cursor;
 	igt_plane_t *planes;
 
 	uint64_t changed;
-- 
2.51.2


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

* [PATCH i-g-t 08/11] lib/kms: Use '{old, new}_primary' variable names in plane swapping
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (6 preceding siblings ...)
  2025-12-17 15:37 ` [PATCH i-g-t 07/11] lib/kms: Nuke pipe->plane_cursor Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-17 19:20   ` Jani Nikula
  2025-12-17 15:37 ` [PATCH i-g-t 09/11] lib/kms: Pimp the priamry " Ville Syrjala
                   ` (5 subsequent siblings)
  13 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

Make the primary plane swapping a bit less confusing by
renaming the variables to '{old,new}_primary'

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 7ae166253a3f..ef3215332e29 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3022,10 +3022,10 @@ void igt_display_reset_outputs(igt_display_t *display)
 		output = igt_get_single_output_for_pipe(display, i);
 
 		if (pipe->num_primary_planes > 1) {
-			igt_plane_t *primary = &pipe->planes[0];
-			igt_plane_t *assigned_primary =
+			igt_plane_t *old_primary = &pipe->planes[0];
+			igt_plane_t *new_primary =
 				igt_get_assigned_primary(output, pipe);
-			int assigned_primary_index = assigned_primary->index;
+			int new_primary_index = new_primary->index;
 
 			/*
 			 * If the driver-assigned primary plane isn't at
@@ -3034,11 +3034,11 @@ void igt_display_reset_outputs(igt_display_t *display)
 			 *
 			 * This way, the primary plane is always at index 0.
 			 */
-			if (assigned_primary_index != 0) {
-				assigned_primary->index = 0;
-				primary->index = assigned_primary_index;
+			if (new_primary_index != 0) {
+				new_primary->index = 0;
+				old_primary->index = new_primary_index;
 
-				igt_swap(pipe->planes[assigned_primary_index],
+				igt_swap(pipe->planes[new_primary_index],
 					 pipe->planes[0]);
 			}
 		}
-- 
2.51.2


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

* [PATCH i-g-t 09/11] lib/kms: Pimp the priamry plane swapping
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (7 preceding siblings ...)
  2025-12-17 15:37 ` [PATCH i-g-t 08/11] lib/kms: Use '{old, new}_primary' variable names in plane swapping Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-19 12:00   ` Jani Nikula
  2025-12-17 15:37 ` [PATCH i-g-t 10/11] lib/kms: Extract plane_type_index() Ville Syrjala
                   ` (4 subsequent siblings)
  13 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

Do the primary plane swap a bit more cleanly with a pair of
igt_swap()s. And while at it sprinkle some asserts around
to make sure we didn't screw anything up.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index ef3215332e29..69a430f01e21 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3025,7 +3025,6 @@ void igt_display_reset_outputs(igt_display_t *display)
 			igt_plane_t *old_primary = &pipe->planes[0];
 			igt_plane_t *new_primary =
 				igt_get_assigned_primary(output, pipe);
-			int new_primary_index = new_primary->index;
 
 			/*
 			 * If the driver-assigned primary plane isn't at
@@ -3034,12 +3033,21 @@ void igt_display_reset_outputs(igt_display_t *display)
 			 *
 			 * This way, the primary plane is always at index 0.
 			 */
-			if (new_primary_index != 0) {
-				new_primary->index = 0;
-				old_primary->index = new_primary_index;
+			if (new_primary->index != 0) {
+				igt_assert(old_primary != new_primary);
 
-				igt_swap(pipe->planes[new_primary_index],
-					 pipe->planes[0]);
+				igt_assert_eq(old_primary->index, 0);
+				igt_assert_neq(new_primary->index, 0);
+
+				igt_swap(*old_primary, *new_primary);
+				igt_swap(old_primary->index, new_primary->index);
+
+				igt_assert_neq(old_primary->index, 0);
+				igt_assert_eq(new_primary->index, 0);
+			} else {
+				igt_assert(old_primary == new_primary);
+
+				igt_assert_eq(old_primary->index, 0);
 			}
 		}
 	}
-- 
2.51.2


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

* [PATCH i-g-t 10/11] lib/kms: Extract plane_type_index()
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (8 preceding siblings ...)
  2025-12-17 15:37 ` [PATCH i-g-t 09/11] lib/kms: Pimp the priamry " Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-19 12:08   ` Jani Nikula
  2025-12-17 15:37 ` [PATCH i-g-t 11/11] lib/kms: Streamline plane index handling further Ville Syrjala
                   ` (3 subsequent siblings)
  13 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

Extract the duplicated plane_type->index stuff into a helper.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 69a430f01e21..4f30732bf1bb 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3055,6 +3055,18 @@ void igt_display_reset_outputs(igt_display_t *display)
 	drmModeFreeResources(resources);
 }
 
+static int plane_type_index(igt_crtc_t *crtc, int type)
+{
+	switch (type) {
+	case DRM_PLANE_TYPE_PRIMARY:
+		return 0;
+	case DRM_PLANE_TYPE_CURSOR:
+		return crtc->n_planes - 1;
+	default:
+		return -1;
+	}
+}
+
 static void igt_crtc_plane_init(igt_display_t *display,
 				igt_crtc_t *pipe,
 				drmModeRes *resources,
@@ -3063,15 +3075,11 @@ static void igt_crtc_plane_init(igt_display_t *display,
 	drmModePlane *drm_plane = global_plane->drm_plane;
 	int type = global_plane->type;
 	igt_plane_t *plane;
-	int index;
-
-	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->planes[0].index < 0) {
-		index = 0;
+	int index = plane_type_index(pipe, type);
 
+	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->planes[index].index < 0) {
 		pipe->num_primary_planes++;
-	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->planes[pipe->n_planes - 1].index < 0) {
-		index = pipe->n_planes - 1;
-
+	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->planes[index].index < 0) {
 		display->has_cursor_plane = true;
 	} else {
 		for (index = 1; index < pipe->n_planes; index++) {
@@ -3572,10 +3580,8 @@ igt_plane_t *igt_pipe_get_plane_type(igt_crtc_t *pipe, int plane_type)
 
 	switch(plane_type) {
 	case DRM_PLANE_TYPE_CURSOR:
-		plane_idx = pipe->n_planes - 1;
-		break;
 	case DRM_PLANE_TYPE_PRIMARY:
-		plane_idx = 0;
+		plane_idx = plane_type_index(pipe, plane_type);
 		break;
 	case DRM_PLANE_TYPE_OVERLAY:
 		for(i = 0; i < pipe->n_planes; i++)
-- 
2.51.2


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

* [PATCH i-g-t 11/11] lib/kms: Streamline plane index handling further
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (9 preceding siblings ...)
  2025-12-17 15:37 ` [PATCH i-g-t 10/11] lib/kms: Extract plane_type_index() Ville Syrjala
@ 2025-12-17 15:37 ` Ville Syrjala
  2025-12-19 12:10   ` Jani Nikula
  2025-12-17 20:36 ` ✗ Xe.CI.BAT: failure for lib/kms: Carve up igt_display_require() Patchwork
                   ` (2 subsequent siblings)
  13 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-17 15:37 UTC (permalink / raw)
  To: igt-dev

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

Eliminate some redundant plane type checks and just rely
on plane_type_index() knowing what it's doing.

We do need to keep one plane type check to determing
what to do with pipe->num_primary_plane and
pipe->has_cursor_plane. But it's a bit more obvious
what's happening there now that index stuff isn't mixed in.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 43 +++++++++++++++++++------------------------
 1 file changed, 19 insertions(+), 24 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 4f30732bf1bb..04a86f235471 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3075,24 +3075,26 @@ static void igt_crtc_plane_init(igt_display_t *display,
 	drmModePlane *drm_plane = global_plane->drm_plane;
 	int type = global_plane->type;
 	igt_plane_t *plane;
-	int index = plane_type_index(pipe, type);
+	int index;
 
-	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->planes[index].index < 0) {
+	switch (type) {
+	case DRM_PLANE_TYPE_PRIMARY:
 		pipe->num_primary_planes++;
-	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->planes[index].index < 0) {
+		break;
+	case DRM_PLANE_TYPE_CURSOR:
 		display->has_cursor_plane = true;
-	} else {
+		break;
+	default:
+		break;
+	}
+
+	index = plane_type_index(pipe, type);
+
+	if (index < 0 || pipe->planes[index].index >= 0) {
 		for (index = 1; index < pipe->n_planes; index++) {
 			if (pipe->planes[index].index < 0)
 				break;
 		}
-
-		/*
-		 * Increment num_primary_planes for any extra
-		 * primary plane found.
-		 */
-		if (type == DRM_PLANE_TYPE_PRIMARY)
-			pipe->num_primary_planes++;
 	}
 
 	igt_assert_lt(index, pipe->n_planes);
@@ -3576,20 +3578,13 @@ static igt_plane_t *igt_pipe_get_plane(igt_crtc_t *pipe, int plane_idx)
  */
 igt_plane_t *igt_pipe_get_plane_type(igt_crtc_t *pipe, int plane_type)
 {
-	int i, plane_idx = -1;
+	int plane_idx = plane_type_index(pipe, plane_type);
 
-	switch(plane_type) {
-	case DRM_PLANE_TYPE_CURSOR:
-	case DRM_PLANE_TYPE_PRIMARY:
-		plane_idx = plane_type_index(pipe, plane_type);
-		break;
-	case DRM_PLANE_TYPE_OVERLAY:
-		for(i = 0; i < pipe->n_planes; i++)
-			if (pipe->planes[i].type == DRM_PLANE_TYPE_OVERLAY)
-			    plane_idx = i;
-		break;
-	default:
-		break;
+	if (plane_idx < 0) {
+		for (plane_idx = 0; plane_idx < pipe->n_planes; plane_idx++) {
+			if (pipe->planes[plane_idx].type == plane_type)
+				break;
+		}
 	}
 
 	igt_require_f(plane_idx >= 0 && plane_idx < pipe->n_planes,
-- 
2.51.2


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

* Re: [PATCH i-g-t 01/11] lib/kms: Extract igt_crtc_init()
  2025-12-17 15:37 ` [PATCH i-g-t 01/11] lib/kms: Extract igt_crtc_init() Ville Syrjala
@ 2025-12-17 19:04   ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-17 19:04 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Coccinelle tends to hit some kind of pathological performance
> problem with igt_display_require(). Carving it up seems to help
> a bit, so extract the crtc init loop into a separate function.

It's too big for humans too, good cleanup.

'git show --color-moved-ws=allow-indentation-change --color-moved' FTW.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  lib/igt_kms.c | 199 ++++++++++++++++++++++++++------------------------
>  1 file changed, 102 insertions(+), 97 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index e3e9bf9bce07..4993d4db8a8a 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3052,6 +3052,106 @@ void igt_display_reset_outputs(igt_display_t *display)
>  	drmModeFreeResources(resources);
>  }
>  
> +static void igt_crtc_init(igt_display_t *display,
> +			  drmModeRes *resources, int i)
> +{
> +	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
> +	igt_plane_t *plane;
> +	int p = 1, crtc_mask = 0;
> +	int j, type;
> +	uint8_t last_plane = 0, n_planes = 0;
> +
> +	pipe->display = display;
> +	pipe->plane_cursor = -1;
> +	pipe->plane_primary = -1;
> +	pipe->planes = NULL;
> +	pipe->num_primary_planes = 0;
> +
> +	igt_fill_pipe_props(display, pipe, IGT_NUM_CRTC_PROPS, igt_crtc_prop_names);
> +
> +	/* Get valid crtc index from crtcs for a pipe */
> +	crtc_mask = __get_crtc_mask_for_pipe(resources, pipe);
> +
> +	/* count number of valid planes */
> +	for (j = 0; j < display->n_planes; j++) {
> +		drmModePlane *drm_plane = display->planes[j].drm_plane;
> +		igt_assert(drm_plane);
> +
> +		if (drm_plane->possible_crtcs & crtc_mask)
> +			n_planes++;
> +	}
> +
> +	igt_assert_lt(0, n_planes);
> +	pipe->planes = calloc(n_planes, sizeof(igt_plane_t));
> +	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n", n_planes);
> +	last_plane = n_planes - 1;
> +
> +	/* add the planes that can be used with that pipe */
> +	for (j = 0; j < display->n_planes; j++) {
> +		igt_plane_t *global_plane = &display->planes[j];
> +		drmModePlane *drm_plane = global_plane->drm_plane;
> +
> +		if (!(drm_plane->possible_crtcs & crtc_mask))
> +			continue;
> +
> +		type = global_plane->type;
> +
> +		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
> +			plane = &pipe->planes[0];
> +			plane->index = 0;
> +			pipe->plane_primary = 0;
> +			pipe->num_primary_planes++;
> +		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
> +			plane = &pipe->planes[last_plane];
> +			plane->index = last_plane;
> +			pipe->plane_cursor = last_plane;
> +			display->has_cursor_plane = true;
> +		} else {
> +			/*
> +			 * Increment num_primary_planes for any extra
> +			 * primary plane found.
> +			 */
> +			if (type == DRM_PLANE_TYPE_PRIMARY)
> +				pipe->num_primary_planes++;
> +
> +			plane = &pipe->planes[p];
> +			plane->index = p++;
> +		}
> +
> +		igt_assert_f(plane->index < n_planes, "n_planes < plane->index failed\n");
> +		plane->type = type;
> +		plane->pipe = pipe;
> +		plane->drm_plane = drm_plane;
> +		plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
> +		plane->ref = global_plane;
> +
> +		/*
> +		 * HACK: point the global plane to the first pipe that
> +		 * it can go on.
> +		 */
> +		if (!global_plane->ref)
> +			igt_plane_set_pipe(plane, pipe);
> +
> +		igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
> +
> +		igt_fill_plane_format_mod(display, plane);
> +	}
> +
> +	/*
> +	 * At the bare minimum, we should expect to have a primary
> +	 * plane, and it must be in slot 0.
> +	 */
> +	igt_assert_eq(pipe->plane_primary, 0);
> +
> +	/* Check that we filled every slot exactly once */
> +	if (display->has_cursor_plane)
> +		igt_assert_eq(p, last_plane);
> +	else
> +		igt_assert_eq(p, n_planes);
> +
> +	pipe->n_planes = n_planes;
> +}
> +
>  /**
>   * igt_display_require:
>   * @display: a pointer to an #igt_display_t structure
> @@ -3155,103 +3255,8 @@ void igt_display_require(igt_display_t *display, int drm_fd)
>  	display->colorops = calloc(MAX_NUM_COLOROPS, sizeof(igt_colorop_t));
>  	display->n_colorops = 0;
>  
> -	for_each_pipe(display, i) {
> -		igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
> -		igt_plane_t *plane;
> -		int p = 1, crtc_mask = 0;
> -		int j, type;
> -		uint8_t last_plane = 0, n_planes = 0;
> -
> -		pipe->display = display;
> -		pipe->plane_cursor = -1;
> -		pipe->plane_primary = -1;
> -		pipe->planes = NULL;
> -		pipe->num_primary_planes = 0;
> -
> -		igt_fill_pipe_props(display, pipe, IGT_NUM_CRTC_PROPS, igt_crtc_prop_names);
> -
> -		/* Get valid crtc index from crtcs for a pipe */
> -		crtc_mask = __get_crtc_mask_for_pipe(resources, pipe);
> -
> -		/* count number of valid planes */
> -		for (j = 0; j < display->n_planes; j++) {
> -			drmModePlane *drm_plane = display->planes[j].drm_plane;
> -			igt_assert(drm_plane);
> -
> -			if (drm_plane->possible_crtcs & crtc_mask)
> -				n_planes++;
> -		}
> -
> -		igt_assert_lt(0, n_planes);
> -		pipe->planes = calloc(n_planes, sizeof(igt_plane_t));
> -		igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n", n_planes);
> -		last_plane = n_planes - 1;
> -
> -		/* add the planes that can be used with that pipe */
> -		for (j = 0; j < display->n_planes; j++) {
> -			igt_plane_t *global_plane = &display->planes[j];
> -			drmModePlane *drm_plane = global_plane->drm_plane;
> -
> -			if (!(drm_plane->possible_crtcs & crtc_mask))
> -				continue;
> -
> -			type = global_plane->type;
> -
> -			if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
> -				plane = &pipe->planes[0];
> -				plane->index = 0;
> -				pipe->plane_primary = 0;
> -				pipe->num_primary_planes++;
> -			} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
> -				plane = &pipe->planes[last_plane];
> -				plane->index = last_plane;
> -				pipe->plane_cursor = last_plane;
> -				display->has_cursor_plane = true;
> -			} else {
> -				/*
> -				 * Increment num_primary_planes for any extra
> -				 * primary plane found.
> -				 */
> -				if (type == DRM_PLANE_TYPE_PRIMARY)
> -					pipe->num_primary_planes++;
> -
> -				plane = &pipe->planes[p];
> -				plane->index = p++;
> -			}
> -
> -			igt_assert_f(plane->index < n_planes, "n_planes < plane->index failed\n");
> -			plane->type = type;
> -			plane->pipe = pipe;
> -			plane->drm_plane = drm_plane;
> -			plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
> -			plane->ref = global_plane;
> -
> -			/*
> -			 * HACK: point the global plane to the first pipe that
> -			 * it can go on.
> -			 */
> -			if (!global_plane->ref)
> -				igt_plane_set_pipe(plane, pipe);
> -
> -			igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
> -
> -			igt_fill_plane_format_mod(display, plane);
> -		}
> -
> -		/*
> -		 * At the bare minimum, we should expect to have a primary
> -		 * plane, and it must be in slot 0.
> -		 */
> -		igt_assert_eq(pipe->plane_primary, 0);
> -
> -		/* Check that we filled every slot exactly once */
> -		if (display->has_cursor_plane)
> -			igt_assert_eq(p, last_plane);
> -		else
> -			igt_assert_eq(p, n_planes);
> -
> -		pipe->n_planes = n_planes;
> -	}
> +	for_each_pipe(display, i)
> +		igt_crtc_init(display, resources, i);
>  
>  	drmModeFreeResources(resources);

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 02/11] lib/kms: Nuke 'n_planes' from igt_crtc_init()
  2025-12-17 15:37 ` [PATCH i-g-t 02/11] lib/kms: Nuke 'n_planes' from igt_crtc_init() Ville Syrjala
@ 2025-12-17 19:11   ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-17 19:11 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The 'n_planes' varaible is essentially just a duplicate of

*variable

> 'pipe->n_planes'. Get rid of the copy and just populate the
> real thing early.
>
> Having less variables around will help with carving up

Nitpick, *fewer

> igt_crtc_init() further.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  lib/igt_kms.c | 20 ++++++++++----------
>  1 file changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 4993d4db8a8a..082934e4e216 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3059,7 +3059,7 @@ static void igt_crtc_init(igt_display_t *display,
>  	igt_plane_t *plane;
>  	int p = 1, crtc_mask = 0;
>  	int j, type;
> -	uint8_t last_plane = 0, n_planes = 0;
> +	uint8_t last_plane = 0;
>  
>  	pipe->display = display;
>  	pipe->plane_cursor = -1;
> @@ -3078,13 +3078,14 @@ static void igt_crtc_init(igt_display_t *display,
>  		igt_assert(drm_plane);
>  
>  		if (drm_plane->possible_crtcs & crtc_mask)
> -			n_planes++;
> +			pipe->n_planes++;
>  	}
>  
> -	igt_assert_lt(0, n_planes);
> -	pipe->planes = calloc(n_planes, sizeof(igt_plane_t));
> -	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n", n_planes);
> -	last_plane = n_planes - 1;
> +	igt_assert_lt(0, pipe->n_planes);
> +	pipe->planes = calloc(pipe->n_planes, sizeof(igt_plane_t));
> +	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n",
> +		     pipe->n_planes);
> +	last_plane = pipe->n_planes - 1;
>  
>  	/* add the planes that can be used with that pipe */
>  	for (j = 0; j < display->n_planes; j++) {
> @@ -3118,7 +3119,8 @@ static void igt_crtc_init(igt_display_t *display,
>  			plane->index = p++;
>  		}
>  
> -		igt_assert_f(plane->index < n_planes, "n_planes < plane->index failed\n");
> +		igt_assert_f(plane->index < pipe->n_planes,
> +			     "n_planes < plane->index failed\n");
>  		plane->type = type;
>  		plane->pipe = pipe;
>  		plane->drm_plane = drm_plane;
> @@ -3147,9 +3149,7 @@ static void igt_crtc_init(igt_display_t *display,
>  	if (display->has_cursor_plane)
>  		igt_assert_eq(p, last_plane);
>  	else
> -		igt_assert_eq(p, n_planes);
> -
> -	pipe->n_planes = n_planes;
> +		igt_assert_eq(p, pipe->n_planes);
>  }
>  
>  /**

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 03/11] lib/kms: Nuke 'last_plane' from igt_crtc_init()
  2025-12-17 15:37 ` [PATCH i-g-t 03/11] lib/kms: Nuke 'last_plane' " Ville Syrjala
@ 2025-12-17 19:12   ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-17 19:12 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> 'last_plane' is just 'pipe->n_planes - 1'. Remvoe the redundant

*Remove

> variable.
>
> Having less variables around will help with carving up

Nitpick, *fewer ;)

> igt_crtc_init() further.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  lib/igt_kms.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 082934e4e216..72c91fb5da76 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3059,7 +3059,6 @@ static void igt_crtc_init(igt_display_t *display,
>  	igt_plane_t *plane;
>  	int p = 1, crtc_mask = 0;
>  	int j, type;
> -	uint8_t last_plane = 0;
>  
>  	pipe->display = display;
>  	pipe->plane_cursor = -1;
> @@ -3085,7 +3084,6 @@ static void igt_crtc_init(igt_display_t *display,
>  	pipe->planes = calloc(pipe->n_planes, sizeof(igt_plane_t));
>  	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n",
>  		     pipe->n_planes);
> -	last_plane = pipe->n_planes - 1;
>  
>  	/* add the planes that can be used with that pipe */
>  	for (j = 0; j < display->n_planes; j++) {
> @@ -3103,9 +3101,9 @@ static void igt_crtc_init(igt_display_t *display,
>  			pipe->plane_primary = 0;
>  			pipe->num_primary_planes++;
>  		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
> -			plane = &pipe->planes[last_plane];
> -			plane->index = last_plane;
> -			pipe->plane_cursor = last_plane;
> +			plane = &pipe->planes[pipe->n_planes - 1];
> +			plane->index = pipe->n_planes - 1;
> +			pipe->plane_cursor = pipe->n_planes - 1;
>  			display->has_cursor_plane = true;
>  		} else {
>  			/*
> @@ -3147,7 +3145,7 @@ static void igt_crtc_init(igt_display_t *display,
>  
>  	/* Check that we filled every slot exactly once */
>  	if (display->has_cursor_plane)
> -		igt_assert_eq(p, last_plane);
> +		igt_assert_eq(p, pipe->n_planes - 1);
>  	else
>  		igt_assert_eq(p, pipe->n_planes);
>  }

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 04/11] lib/kms: Get rid of the 'p' plane index variable
  2025-12-17 15:37 ` [PATCH i-g-t 04/11] lib/kms: Get rid of the 'p' plane index variable Ville Syrjala
@ 2025-12-17 19:17   ` Jani Nikula
  2025-12-18 11:33   ` Jani Nikula
  2025-12-18 15:47   ` [PATCH i-g-t v2 " Ville Syrjala
  2 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-17 19:17 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The 'p' thing used to track the next free plane slot is annoying.
> Get rid of it by just initializing the plane indexes to -1 to
> indicate a free slot at the start, and then do a straightforward
> search for the next free slot. And for good measure make sure all
> the -1's have disappeared at the end.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  lib/igt_kms.c | 45 ++++++++++++++++++++++++++-------------------
>  1 file changed, 26 insertions(+), 19 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 72c91fb5da76..5679643e167a 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3057,7 +3057,7 @@ static void igt_crtc_init(igt_display_t *display,
>  {
>  	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
>  	igt_plane_t *plane;
> -	int p = 1, crtc_mask = 0;
> +	int crtc_mask = 0;
>  	int j, type;
>  
>  	pipe->display = display;
> @@ -3082,13 +3082,16 @@ static void igt_crtc_init(igt_display_t *display,
>  
>  	igt_assert_lt(0, pipe->n_planes);
>  	pipe->planes = calloc(pipe->n_planes, sizeof(igt_plane_t));
> -	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n",
> -		     pipe->n_planes);
> +	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n", pipe->n_planes);
> +
> +	for (j = 0 ; j < pipe->n_planes; j++)
> +		pipe->planes[j].index = -1;
>  
>  	/* add the planes that can be used with that pipe */
>  	for (j = 0; j < display->n_planes; j++) {
>  		igt_plane_t *global_plane = &display->planes[j];
>  		drmModePlane *drm_plane = global_plane->drm_plane;
> +		int index;
>  
>  		if (!(drm_plane->possible_crtcs & crtc_mask))
>  			continue;
> @@ -3096,29 +3099,36 @@ static void igt_crtc_init(igt_display_t *display,
>  		type = global_plane->type;
>  
>  		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
> -			plane = &pipe->planes[0];
> -			plane->index = 0;
> -			pipe->plane_primary = 0;
> +			index = 0;
> +
> +			pipe->plane_primary = index;
>  			pipe->num_primary_planes++;
>  		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
> -			plane = &pipe->planes[pipe->n_planes - 1];
> -			plane->index = pipe->n_planes - 1;
> -			pipe->plane_cursor = pipe->n_planes - 1;
> +			index = pipe->n_planes - 1;
> +
> +			pipe->plane_cursor = index;
>  			display->has_cursor_plane = true;
>  		} else {
> +			for (index = 1 ; index < pipe->n_planes; index++) {

I'll come back to the patch for more scrutiny later, but for starters,
there's a superfluous space before ; that gets removed in the next
movement patch.

> +				if (pipe->planes[index].index < 0)
> +					break;
> +			}
> +
>  			/*
>  			 * Increment num_primary_planes for any extra
>  			 * primary plane found.
>  			 */
>  			if (type == DRM_PLANE_TYPE_PRIMARY)
>  				pipe->num_primary_planes++;
> -
> -			plane = &pipe->planes[p];
> -			plane->index = p++;
>  		}
>  
> -		igt_assert_f(plane->index < pipe->n_planes,
> -			     "n_planes < plane->index failed\n");
> +		igt_assert_lt(index, pipe->n_planes);
> +
> +		plane = &pipe->planes[index];
> +
> +		igt_assert_lt(plane->index, 0);
> +
> +		plane->index = index;
>  		plane->type = type;
>  		plane->pipe = pipe;
>  		plane->drm_plane = drm_plane;
> @@ -3143,11 +3153,8 @@ static void igt_crtc_init(igt_display_t *display,
>  	 */
>  	igt_assert_eq(pipe->plane_primary, 0);
>  
> -	/* Check that we filled every slot exactly once */
> -	if (display->has_cursor_plane)
> -		igt_assert_eq(p, pipe->n_planes - 1);
> -	else
> -		igt_assert_eq(p, pipe->n_planes);
> +	for (j = 0; j < pipe->n_planes; j++)
> +		igt_assert_lt(0, pipe->planes[j].index);
>  }
>  
>  /**

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 05/11] lib/kms: Extract igt_crtc_plane_init()
  2025-12-17 15:37 ` [PATCH i-g-t 05/11] lib/kms: Extract igt_crtc_plane_init() Ville Syrjala
@ 2025-12-17 19:18   ` Jani Nikula
  2025-12-18 15:48   ` [PATCH i-g-t v2 " Ville Syrjala
  1 sibling, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-17 19:18 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Coccinelle tends to hit some kind of pathological performance
> problem with igt_display_require(). Carving it up seems to help
> a bit, so extract the plane init loop into a separate function.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Smaller functions better.

'git show --color-moved-ws=allow-indentation-change --color-moved'
highlights the superfluous space removal while it shouldn't have been
added in the first place.

Other than that,

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  lib/igt_kms.c | 113 +++++++++++++++++++++++++++-----------------------
>  1 file changed, 61 insertions(+), 52 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 5679643e167a..233f326d487f 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3052,13 +3052,71 @@ void igt_display_reset_outputs(igt_display_t *display)
>  	drmModeFreeResources(resources);
>  }
>  
> +static void igt_crtc_plane_init(igt_display_t *display,
> +				igt_crtc_t *pipe,
> +				drmModeRes *resources,
> +				igt_plane_t *global_plane)
> +{
> +	drmModePlane *drm_plane = global_plane->drm_plane;
> +	int type = global_plane->type;
> +	igt_plane_t *plane;
> +	int index;
> +
> +	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
> +		index = 0;
> +
> +		pipe->plane_primary = index;
> +		pipe->num_primary_planes++;
> +	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
> +		index = pipe->n_planes - 1;
> +
> +		pipe->plane_cursor = index;
> +		display->has_cursor_plane = true;
> +	} else {
> +		for (index = 1; index < pipe->n_planes; index++) {
> +			if (pipe->planes[index].index < 0)
> +				break;
> +		}
> +
> +		/*
> +		 * Increment num_primary_planes for any extra
> +		 * primary plane found.
> +		 */
> +		if (type == DRM_PLANE_TYPE_PRIMARY)
> +			pipe->num_primary_planes++;
> +	}
> +
> +	igt_assert_lt(index, pipe->n_planes);
> +
> +	plane = &pipe->planes[index];
> +
> +	igt_assert_lt(plane->index, 0);
> +
> +	plane->index = index;
> +	plane->type = type;
> +	plane->pipe = pipe;
> +	plane->drm_plane = drm_plane;
> +	plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
> +	plane->ref = global_plane;
> +
> +	/*
> +	 * HACK: point the global plane to the first pipe that
> +	 * it can go on.
> +	 */
> +	if (!global_plane->ref)
> +		igt_plane_set_pipe(plane, pipe);
> +
> +	igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
> +
> +	igt_fill_plane_format_mod(display, plane);
> +}
> +
>  static void igt_crtc_init(igt_display_t *display,
>  			  drmModeRes *resources, int i)
>  {
>  	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
> -	igt_plane_t *plane;
>  	int crtc_mask = 0;
> -	int j, type;
> +	int j;
>  
>  	pipe->display = display;
>  	pipe->plane_cursor = -1;
> @@ -3091,60 +3149,11 @@ static void igt_crtc_init(igt_display_t *display,
>  	for (j = 0; j < display->n_planes; j++) {
>  		igt_plane_t *global_plane = &display->planes[j];
>  		drmModePlane *drm_plane = global_plane->drm_plane;
> -		int index;
>  
>  		if (!(drm_plane->possible_crtcs & crtc_mask))
>  			continue;
>  
> -		type = global_plane->type;
> -
> -		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
> -			index = 0;
> -
> -			pipe->plane_primary = index;
> -			pipe->num_primary_planes++;
> -		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
> -			index = pipe->n_planes - 1;
> -
> -			pipe->plane_cursor = index;
> -			display->has_cursor_plane = true;
> -		} else {
> -			for (index = 1 ; index < pipe->n_planes; index++) {
> -				if (pipe->planes[index].index < 0)
> -					break;
> -			}
> -
> -			/*
> -			 * Increment num_primary_planes for any extra
> -			 * primary plane found.
> -			 */
> -			if (type == DRM_PLANE_TYPE_PRIMARY)
> -				pipe->num_primary_planes++;
> -		}
> -
> -		igt_assert_lt(index, pipe->n_planes);
> -
> -		plane = &pipe->planes[index];
> -
> -		igt_assert_lt(plane->index, 0);
> -
> -		plane->index = index;
> -		plane->type = type;
> -		plane->pipe = pipe;
> -		plane->drm_plane = drm_plane;
> -		plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
> -		plane->ref = global_plane;
> -
> -		/*
> -		 * HACK: point the global plane to the first pipe that
> -		 * it can go on.
> -		 */
> -		if (!global_plane->ref)
> -			igt_plane_set_pipe(plane, pipe);
> -
> -		igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
> -
> -		igt_fill_plane_format_mod(display, plane);
> +		igt_crtc_plane_init(display, pipe, resources, global_plane);
>  	}
>  
>  	/*

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 08/11] lib/kms: Use '{old, new}_primary' variable names in plane swapping
  2025-12-17 15:37 ` [PATCH i-g-t 08/11] lib/kms: Use '{old, new}_primary' variable names in plane swapping Ville Syrjala
@ 2025-12-17 19:20   ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-17 19:20 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Make the primary plane swapping a bit less confusing by
> renaming the variables to '{old,new}_primary'
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  lib/igt_kms.c | 14 +++++++-------
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 7ae166253a3f..ef3215332e29 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3022,10 +3022,10 @@ void igt_display_reset_outputs(igt_display_t *display)
>  		output = igt_get_single_output_for_pipe(display, i);
>  
>  		if (pipe->num_primary_planes > 1) {
> -			igt_plane_t *primary = &pipe->planes[0];
> -			igt_plane_t *assigned_primary =
> +			igt_plane_t *old_primary = &pipe->planes[0];
> +			igt_plane_t *new_primary =
>  				igt_get_assigned_primary(output, pipe);
> -			int assigned_primary_index = assigned_primary->index;
> +			int new_primary_index = new_primary->index;
>  
>  			/*
>  			 * If the driver-assigned primary plane isn't at
> @@ -3034,11 +3034,11 @@ void igt_display_reset_outputs(igt_display_t *display)
>  			 *
>  			 * This way, the primary plane is always at index 0.
>  			 */
> -			if (assigned_primary_index != 0) {
> -				assigned_primary->index = 0;
> -				primary->index = assigned_primary_index;
> +			if (new_primary_index != 0) {
> +				new_primary->index = 0;
> +				old_primary->index = new_primary_index;
>  
> -				igt_swap(pipe->planes[assigned_primary_index],
> +				igt_swap(pipe->planes[new_primary_index],
>  					 pipe->planes[0]);
>  			}
>  		}

-- 
Jani Nikula, Intel

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

* ✗ Xe.CI.BAT: failure for lib/kms: Carve up igt_display_require()
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (10 preceding siblings ...)
  2025-12-17 15:37 ` [PATCH i-g-t 11/11] lib/kms: Streamline plane index handling further Ville Syrjala
@ 2025-12-17 20:36 ` Patchwork
  2025-12-17 21:00 ` ✗ i915.CI.BAT: " Patchwork
  2025-12-18 20:21 ` ✗ Xe.CI.Full: " Patchwork
  13 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-12-17 20:36 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: lib/kms: Carve up igt_display_require()
URL   : https://patchwork.freedesktop.org/series/159165/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_8670_BAT -> XEIGTPW_14230_BAT
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_14230_BAT absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_14230_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (12 -> 12)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_addfb_basic@addfb25-yf-tiled-legacy:
    - bat-dg2-oem2:       [PASS][1] -> [FAIL][2] +29 other tests fail
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html

  * igt@kms_addfb_basic@bo-too-small:
    - bat-bmg-2:          [PASS][3] -> [FAIL][4] +11 other tests fail
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-bmg-2/igt@kms_addfb_basic@bo-too-small.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-bmg-2/igt@kms_addfb_basic@bo-too-small.html

  * igt@kms_addfb_basic@size-max:
    - bat-lnl-2:          [PASS][5] -> [FAIL][6] +10 other tests fail
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-lnl-2/igt@kms_addfb_basic@size-max.html
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-lnl-2/igt@kms_addfb_basic@size-max.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size:
    - bat-lnl-1:          [PASS][7] -> [FAIL][8] +31 other tests fail
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-lnl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-lnl-1/igt@kms_cursor_legacy@basic-flip-after-cursor-varying-size.html

  * igt@kms_psr@psr-cursor-plane-move:
    - bat-adlp-7:         [PASS][9] -> [FAIL][10] +33 other tests fail
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-adlp-7/igt@kms_psr@psr-cursor-plane-move.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-adlp-7/igt@kms_psr@psr-cursor-plane-move.html

  
#### Warnings ####

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - bat-lnl-1:          [SKIP][11] ([Intel XE#1466]) -> [FAIL][12]
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-lnl-1/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-lnl-1/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-bmg-2:          [SKIP][13] ([Intel XE#2233]) -> [FAIL][14]
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-bmg-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-bmg-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-lnl-2:          [SKIP][15] ([Intel XE#1466] / [Intel XE#2235]) -> [FAIL][16]
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-lnl-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-lnl-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-dg2-oem2:       [SKIP][17] ([Intel XE#623]) -> [FAIL][18]
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-dg2-oem2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
    - bat-bmg-2:          [SKIP][19] ([Intel XE#2489] / [Intel XE#3419]) -> [FAIL][20] +13 other tests fail
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-bmg-2/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-bmg-2/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html

  * igt@kms_dsc@dsc-basic:
    - bat-lnl-1:          [SKIP][21] ([Intel XE#2244]) -> [FAIL][22]
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-lnl-1/igt@kms_dsc@dsc-basic.html
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-lnl-1/igt@kms_dsc@dsc-basic.html
    - bat-adlp-7:         [SKIP][23] ([Intel XE#455]) -> [FAIL][24]
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-adlp-7/igt@kms_dsc@dsc-basic.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-adlp-7/igt@kms_dsc@dsc-basic.html
    - bat-dg2-oem2:       [SKIP][25] ([Intel XE#455]) -> [FAIL][26]
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html

  * igt@kms_flip@basic-flip-vs-dpms:
    - bat-lnl-2:          [SKIP][27] ([Intel XE#2235] / [Intel XE#2482]) -> [FAIL][28] +3 other tests fail
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-lnl-2/igt@kms_flip@basic-flip-vs-dpms.html
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-lnl-2/igt@kms_flip@basic-flip-vs-dpms.html

  * igt@kms_flip@basic-flip-vs-modeset:
    - bat-bmg-2:          [SKIP][29] ([Intel XE#2482]) -> [FAIL][30] +3 other tests fail
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-bmg-2/igt@kms_flip@basic-flip-vs-modeset.html
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-bmg-2/igt@kms_flip@basic-flip-vs-modeset.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-bmg-2:          [SKIP][31] ([Intel XE#2434] / [Intel XE#2548]) -> [FAIL][32]
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-bmg-2/igt@kms_frontbuffer_tracking@basic.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-bmg-2/igt@kms_frontbuffer_tracking@basic.html
    - bat-lnl-2:          [SKIP][33] ([Intel XE#2235] / [Intel XE#2548]) -> [FAIL][34]
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-lnl-2/igt@kms_frontbuffer_tracking@basic.html
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-lnl-2/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24:
    - bat-lnl-2:          [SKIP][35] ([Intel XE#2235]) -> [FAIL][36] +13 other tests fail
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-lnl-2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24.html
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-lnl-2/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24.html

  * igt@kms_psr@psr-cursor-plane-move:
    - bat-lnl-2:          [SKIP][37] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) -> [FAIL][38] +2 other tests fail
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-lnl-2/igt@kms_psr@psr-cursor-plane-move.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-lnl-2/igt@kms_psr@psr-cursor-plane-move.html
    - bat-dg2-oem2:       [SKIP][39] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) -> [FAIL][40] +2 other tests fail
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-dg2-oem2/igt@kms_psr@psr-cursor-plane-move.html
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-dg2-oem2/igt@kms_psr@psr-cursor-plane-move.html

  * igt@kms_psr@psr-sprite-plane-onoff:
    - bat-bmg-2:          [SKIP][41] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) -> [FAIL][42] +2 other tests fail
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-bmg-2/igt@kms_psr@psr-sprite-plane-onoff.html
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-bmg-2/igt@kms_psr@psr-sprite-plane-onoff.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@xe_module_load@load:
    - bat-bmg-1:          [PASS][43] -> [ABORT][44] ([Intel XE#6887])
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-bmg-1/igt@xe_module_load@load.html
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-bmg-1/igt@xe_module_load@load.html

  * igt@xe_waitfence@reltime:
    - bat-dg2-oem2:       [PASS][45] -> [FAIL][46] ([Intel XE#6520])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/bat-dg2-oem2/igt@xe_waitfence@reltime.html
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/bat-dg2-oem2/igt@xe_waitfence@reltime.html

  
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1466
  [Intel XE#2233]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2233
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2235]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2235
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2434]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2434
  [Intel XE#2482]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2482
  [Intel XE#2489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2489
  [Intel XE#2548]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2548
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#3419]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3419
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
  [Intel XE#623]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/623
  [Intel XE#6520]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6520
  [Intel XE#6887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6887
  [Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929


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

  * IGT: IGT_8670 -> IGTPW_14230

  IGTPW_14230: 14230
  IGT_8670: 8670
  xe-4259-605176fe40c828b491a1532367df157529895b87: 605176fe40c828b491a1532367df157529895b87

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/index.html

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

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

* ✗ i915.CI.BAT: failure for lib/kms: Carve up igt_display_require()
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (11 preceding siblings ...)
  2025-12-17 20:36 ` ✗ Xe.CI.BAT: failure for lib/kms: Carve up igt_display_require() Patchwork
@ 2025-12-17 21:00 ` Patchwork
  2025-12-18 20:21 ` ✗ Xe.CI.Full: " Patchwork
  13 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-12-17 21:00 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: lib/kms: Carve up igt_display_require()
URL   : https://patchwork.freedesktop.org/series/159165/
State : failure

== Summary ==

CI Bug Log - changes from IGT_8670 -> IGTPW_14230
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_14230 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_14230, please notify your bug team (I915-ci-infra@lists.freedesktop.org) 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_14230/index.html

Participating hosts (42 -> 41)
------------------------------

  Additional (1): fi-elk-e7500 
  Missing    (2): bat-dg2-13 fi-snb-2520m 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@i915_pm_rpm@module-reload:
    - bat-dg2-14:         [PASS][1] -> [FAIL][2] +32 other tests fail
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-14/igt@i915_pm_rpm@module-reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-14/igt@i915_pm_rpm@module-reload.html
    - fi-bsw-nick:        [PASS][3] -> [FAIL][4] +17 other tests fail
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-bsw-nick/igt@i915_pm_rpm@module-reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-bsw-nick/igt@i915_pm_rpm@module-reload.html
    - bat-kbl-2:          [PASS][5] -> [FAIL][6] +18 other tests fail
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-kbl-2/igt@i915_pm_rpm@module-reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-kbl-2/igt@i915_pm_rpm@module-reload.html
    - bat-adlp-6:         [PASS][7] -> [FAIL][8] +44 other tests fail
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-6/igt@i915_pm_rpm@module-reload.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-6/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live:
    - fi-hsw-4770:        [PASS][9] -> [DMESG-WARN][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-hsw-4770/igt@i915_selftest@live.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-hsw-4770/igt@i915_selftest@live.html
    - fi-ivb-3770:        [PASS][11] -> [DMESG-WARN][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-ivb-3770/igt@i915_selftest@live.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-ivb-3770/igt@i915_selftest@live.html
    - fi-elk-e7500:       NOTRUN -> [DMESG-WARN][13]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-elk-e7500/igt@i915_selftest@live.html
    - bat-jsl-1:          [PASS][14] -> [DMESG-WARN][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-jsl-1/igt@i915_selftest@live.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-jsl-1/igt@i915_selftest@live.html
    - fi-glk-j4005:       [PASS][16] -> [DMESG-WARN][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-glk-j4005/igt@i915_selftest@live.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-glk-j4005/igt@i915_selftest@live.html
    - bat-arls-5:         [PASS][18] -> [DMESG-WARN][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-5/igt@i915_selftest@live.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-5/igt@i915_selftest@live.html
    - fi-ilk-650:         [PASS][20] -> [DMESG-WARN][21]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-ilk-650/igt@i915_selftest@live.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-ilk-650/igt@i915_selftest@live.html
    - bat-arls-6:         [PASS][22] -> [DMESG-WARN][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-6/igt@i915_selftest@live.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-6/igt@i915_selftest@live.html

  * igt@kms_addfb_basic@addfb25-bad-modifier:
    - fi-glk-j4005:       [PASS][24] -> [FAIL][25] +38 other tests fail
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-glk-j4005/igt@kms_addfb_basic@addfb25-bad-modifier.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-glk-j4005/igt@kms_addfb_basic@addfb25-bad-modifier.html
    - bat-adlp-9:         [PASS][26] -> [FAIL][27] +38 other tests fail
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-9/igt@kms_addfb_basic@addfb25-bad-modifier.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-9/igt@kms_addfb_basic@addfb25-bad-modifier.html

  * igt@kms_addfb_basic@addfb25-modifier-no-flag:
    - bat-dg1-6:          [PASS][28] -> [FAIL][29] +14 other tests fail
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@kms_addfb_basic@addfb25-modifier-no-flag.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@kms_addfb_basic@addfb25-modifier-no-flag.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - fi-ilk-650:         [PASS][30] -> [FAIL][31] +35 other tests fail
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-ilk-650/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-ilk-650/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html
    - fi-tgl-1115g4:      [PASS][32] -> [FAIL][33] +38 other tests fail
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-tgl-1115g4/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-tgl-1115g4/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_addfb_basic@addfb25-y-tiled-legacy:
    - fi-hsw-4770:        [PASS][34] -> [FAIL][35] +38 other tests fail
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-hsw-4770/igt@kms_addfb_basic@addfb25-y-tiled-legacy.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-hsw-4770/igt@kms_addfb_basic@addfb25-y-tiled-legacy.html
    - bat-mtlp-8:         [PASS][36] -> [FAIL][37] +37 other tests fail
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-8/igt@kms_addfb_basic@addfb25-y-tiled-legacy.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-8/igt@kms_addfb_basic@addfb25-y-tiled-legacy.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - fi-kbl-x1275:       [PASS][38] -> [FAIL][39] +18 other tests fail
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-x1275/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-x1275/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-adlp-11:        [PASS][40] -> [FAIL][41] +17 other tests fail
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-11/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-11/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@addfb25-yf-tiled-legacy:
    - bat-arlh-3:         [PASS][42] -> [FAIL][43] +37 other tests fail
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-3/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-3/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
    - fi-pnv-d510:        [PASS][44] -> [FAIL][45] +31 other tests fail
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-pnv-d510/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-pnv-d510/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
    - bat-dg1-7:          [PASS][46] -> [FAIL][47] +33 other tests fail
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-7/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-7/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
    - bat-arls-5:         [PASS][48] -> [FAIL][49] +33 other tests fail
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-5/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-5/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
    - bat-arlh-2:         [PASS][50] -> [FAIL][51] +12 other tests fail
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-2/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-2/igt@kms_addfb_basic@addfb25-yf-tiled-legacy.html

  * igt@kms_addfb_basic@bo-too-small-due-to-tiling:
    - fi-bsw-n3050:       [PASS][52] -> [FAIL][53] +37 other tests fail
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-bsw-n3050/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-bsw-n3050/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
    - fi-rkl-11600:       [PASS][54] -> [FAIL][55] +18 other tests fail
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-rkl-11600/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-rkl-11600/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html

  * igt@kms_addfb_basic@small-bo:
    - bat-arls-6:         [PASS][56] -> [FAIL][57] +33 other tests fail
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-6/igt@kms_addfb_basic@small-bo.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-6/igt@kms_addfb_basic@small-bo.html

  * igt@kms_addfb_basic@too-high:
    - bat-rpls-4:         [PASS][58] -> [FAIL][59] +38 other tests fail
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-rpls-4/igt@kms_addfb_basic@too-high.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-rpls-4/igt@kms_addfb_basic@too-high.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-atomic:
    - bat-mtlp-9:         [PASS][60] -> [FAIL][61] +37 other tests fail
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-9/igt@kms_cursor_legacy@basic-flip-after-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-legacy:
    - fi-ivb-3770:        [PASS][62] -> [FAIL][63] +35 other tests fail
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-ivb-3770/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-ivb-3770/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
    - fi-elk-e7500:       NOTRUN -> [FAIL][64] +46 other tests fail
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-elk-e7500/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
    - bat-dg2-8:          [PASS][65] -> [FAIL][66] +33 other tests fail
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-8/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-8/igt@kms_cursor_legacy@basic-flip-before-cursor-legacy.html

  * igt@kms_flip@basic-flip-vs-dpms:
    - fi-cfl-guc:         [PASS][67] -> [FAIL][68] +38 other tests fail
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-cfl-guc/igt@kms_flip@basic-flip-vs-dpms.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-cfl-guc/igt@kms_flip@basic-flip-vs-dpms.html
    - bat-dg2-9:          [PASS][69] -> [FAIL][70] +33 other tests fail
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-9/igt@kms_flip@basic-flip-vs-dpms.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-9/igt@kms_flip@basic-flip-vs-dpms.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - fi-cfl-8700k:       [PASS][71] -> [FAIL][72] +38 other tests fail
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-cfl-8700k/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-cfl-8700k/igt@kms_flip@basic-flip-vs-wf_vblank.html

  * igt@kms_force_connector_basic@force-connector-state:
    - bat-adls-6:         [PASS][73] -> [FAIL][74] +38 other tests fail
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adls-6/igt@kms_force_connector_basic@force-connector-state.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adls-6/igt@kms_force_connector_basic@force-connector-state.html
    - bat-jsl-1:          [PASS][75] -> [FAIL][76] +43 other tests fail
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-jsl-1/igt@kms_force_connector_basic@force-connector-state.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-jsl-1/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_pipe_crc_basic@hang-read-crc:
    - bat-rplp-1:         [PASS][77] -> [FAIL][78] +38 other tests fail
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-rplp-1/igt@kms_pipe_crc_basic@hang-read-crc.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-rplp-1/igt@kms_pipe_crc_basic@hang-read-crc.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
    - bat-twl-2:          [PASS][79] -> [FAIL][80] +43 other tests fail
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-twl-2/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-twl-2/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
    - bat-dg2-11:         [PASS][81] -> [FAIL][82] +32 other tests fail
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html

  * igt@kms_pm_rpm@basic-pci-d3-state:
    - bat-twl-1:          [PASS][83] -> [FAIL][84] +43 other tests fail
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-twl-1/igt@kms_pm_rpm@basic-pci-d3-state.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-twl-1/igt@kms_pm_rpm@basic-pci-d3-state.html
    - fi-kbl-8809g:       [PASS][85] -> [FAIL][86] +18 other tests fail
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-8809g/igt@kms_pm_rpm@basic-pci-d3-state.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-8809g/igt@kms_pm_rpm@basic-pci-d3-state.html
    - bat-jsl-5:          [PASS][87] -> [FAIL][88] +38 other tests fail
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-jsl-5/igt@kms_pm_rpm@basic-pci-d3-state.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-jsl-5/igt@kms_pm_rpm@basic-pci-d3-state.html
    - bat-apl-1:          [PASS][89] -> [FAIL][90] +36 other tests fail
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-apl-1/igt@kms_pm_rpm@basic-pci-d3-state.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-apl-1/igt@kms_pm_rpm@basic-pci-d3-state.html

  * igt@kms_psr@psr-cursor-plane-move:
    - fi-skl-6600u:       [PASS][91] -> [FAIL][92] +42 other tests fail
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-skl-6600u/igt@kms_psr@psr-cursor-plane-move.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-skl-6600u/igt@kms_psr@psr-cursor-plane-move.html

  
#### Warnings ####

  * igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling:
    - bat-dg1-6:          [SKIP][93] ([i915#12311] / [i915#4212]) -> [FAIL][94] +3 other tests fail
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy:
    - bat-dg2-11:         [SKIP][95] ([i915#4212]) -> [FAIL][96] +3 other tests fail
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-11/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-11/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
    - bat-dg2-14:         [SKIP][97] ([i915#4212]) -> [FAIL][98] +3 other tests fail
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-14/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-14/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
    - bat-mtlp-9:         [SKIP][99] ([i915#4212]) -> [FAIL][100] +3 other tests fail
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-9/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-9/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
    - bat-arls-6:         [SKIP][101] ([i915#10200]) -> [FAIL][102] +3 other tests fail
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-6/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-6/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
    - bat-mtlp-8:         [SKIP][103] ([i915#4212]) -> [FAIL][104] +3 other tests fail
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-8/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-8/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
    - bat-dg2-8:          [SKIP][105] ([i915#4212]) -> [FAIL][106] +3 other tests fail
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-8/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-8/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - bat-dg2-9:          [SKIP][107] ([i915#5190]) -> [FAIL][108]
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-9/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-9/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-dg2-11:         [SKIP][109] ([i915#5190]) -> [FAIL][110]
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-11/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-11/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-dg2-14:         [SKIP][111] ([i915#5190]) -> [FAIL][112]
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-14/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-14/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-mtlp-9:         [SKIP][113] ([i915#5190]) -> [FAIL][114]
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-9/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-9/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - fi-hsw-4770:        [SKIP][115] ([i915#5190]) -> [FAIL][116]
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-hsw-4770/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-hsw-4770/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-mtlp-8:         [SKIP][117] ([i915#5190]) -> [FAIL][118]
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-dg2-8:          [SKIP][119] ([i915#5190]) -> [FAIL][120]
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-arls-6:         [SKIP][121] ([i915#10200] / [i915#12203]) -> [FAIL][122]
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-6/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-6/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-arlh-3:         [SKIP][123] ([i915#11666] / [i915#12203]) -> [FAIL][124]
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-3/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-3/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-arls-5:         [SKIP][125] ([i915#10200] / [i915#12203]) -> [FAIL][126]
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-5/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-5/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
    - bat-arlh-2:         [SKIP][127] ([i915#10200] / [i915#11346] / [i915#11666] / [i915#12203]) -> [FAIL][128]
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-arls-6:         [SKIP][129] ([i915#10200]) -> [SKIP][130] +4 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-6/igt@kms_addfb_basic@basic-y-tiled-legacy.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-6/igt@kms_addfb_basic@basic-y-tiled-legacy.html
    - bat-arlh-3:         [SKIP][131] ([i915#11666]) -> [SKIP][132] +4 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-3/igt@kms_addfb_basic@basic-y-tiled-legacy.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-3/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@bo-too-small-due-to-tiling:
    - bat-arlh-2:         [SKIP][133] ([i915#10200] / [i915#11346] / [i915#11666]) -> [FAIL][134] +3 other tests fail
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-2/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-2/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
    - bat-arlh-3:         [SKIP][135] ([i915#11666]) -> [FAIL][136] +3 other tests fail
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-3/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-3/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
    - bat-dg1-7:          [SKIP][137] ([i915#4212]) -> [FAIL][138] +3 other tests fail
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-7/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-7/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
    - bat-arls-5:         [SKIP][139] ([i915#10200]) -> [FAIL][140] +3 other tests fail
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-5/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-5/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
    - bat-dg2-9:          [SKIP][141] ([i915#4212]) -> [FAIL][142] +3 other tests fail
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-9/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-9/igt@kms_addfb_basic@bo-too-small-due-to-tiling.html

  * igt@kms_addfb_basic@clobberred-modifier:
    - bat-arls-5:         [SKIP][143] ([i915#10200]) -> [SKIP][144] +4 other tests skip
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-5/igt@kms_addfb_basic@clobberred-modifier.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-5/igt@kms_addfb_basic@clobberred-modifier.html

  * igt@kms_addfb_basic@too-high:
    - fi-kbl-7567u:       [DMESG-WARN][145] ([i915#13735]) -> [FAIL][146] +16 other tests fail
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-7567u/igt@kms_addfb_basic@too-high.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-7567u/igt@kms_addfb_basic@too-high.html

  * igt@kms_busy@basic:
    - bat-dg1-6:          [SKIP][147] ([i915#11190] / [i915#12311] / [i915#4303]) -> [FAIL][148]
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@kms_busy@basic.html
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@kms_busy@basic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - bat-twl-2:          [SKIP][149] ([i915#11030] / [i915#11731]) -> [FAIL][150] +1 other test fail
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-twl-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-twl-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
    - bat-dg2-11:         [SKIP][151] ([i915#4103] / [i915#4213]) -> [FAIL][152] +1 other test fail
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-11/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-11/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
    - bat-arls-6:         [SKIP][153] ([i915#10202]) -> [FAIL][154] +1 other test fail
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
    - fi-tgl-1115g4:      [SKIP][155] ([i915#4103]) -> [FAIL][156] +1 other test fail
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - bat-dg2-14:         [SKIP][157] ([i915#4103] / [i915#4213]) -> [FAIL][158] +1 other test fail
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-14/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-14/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-mtlp-9:         [SKIP][159] ([i915#4213]) -> [FAIL][160] +1 other test fail
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-mtlp-8:         [SKIP][161] ([i915#4213]) -> [FAIL][162] +1 other test fail
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-dg2-8:          [SKIP][163] ([i915#4103] / [i915#4213]) -> [FAIL][164] +1 other test fail
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-8/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-adls-6:         [SKIP][165] ([i915#4103]) -> [FAIL][166] +1 other test fail
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-jsl-1:          [SKIP][167] ([i915#4103]) -> [FAIL][168] +1 other test fail
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-jsl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-jsl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-arlh-3:         [SKIP][169] ([i915#11731]) -> [FAIL][170] +1 other test fail
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-dg1-7:          [SKIP][171] ([i915#4103] / [i915#4213]) -> [FAIL][172] +1 other test fail
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-adlp-9:         [SKIP][173] ([i915#4103]) -> [FAIL][174] +1 other test fail
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-rpls-4:         [SKIP][175] ([i915#4103]) -> [FAIL][176] +1 other test fail
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-rpls-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-rpls-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-twl-1:          [SKIP][177] ([i915#11030] / [i915#11731]) -> [FAIL][178] +1 other test fail
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-twl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-twl-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-jsl-5:          [SKIP][179] ([i915#4103]) -> [FAIL][180] +1 other test fail
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-jsl-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-jsl-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-arls-5:         [SKIP][181] ([i915#10202]) -> [FAIL][182] +1 other test fail
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-rplp-1:         [SKIP][183] ([i915#4103] / [i915#4213]) -> [FAIL][184] +1 other test fail
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-rplp-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-rplp-1/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-dg2-9:          [SKIP][185] ([i915#4103] / [i915#4213]) -> [FAIL][186] +1 other test fail
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-9/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
    - bat-adlp-6:         [SKIP][187] ([i915#4103]) -> [FAIL][188] +1 other test fail
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size:
    - bat-dg1-6:          [SKIP][189] ([i915#11190] / [i915#12311]) -> [FAIL][190] +15 other tests fail
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html

  * igt@kms_dsc@dsc-basic:
    - bat-rpls-4:         [SKIP][191] ([i915#3555] / [i915#3840] / [i915#9886]) -> [FAIL][192]
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-rpls-4/igt@kms_dsc@dsc-basic.html
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-rpls-4/igt@kms_dsc@dsc-basic.html
    - fi-kbl-7567u:       [SKIP][193] -> [FAIL][194] +7 other tests fail
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-7567u/igt@kms_dsc@dsc-basic.html
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-7567u/igt@kms_dsc@dsc-basic.html
    - bat-twl-1:          [SKIP][195] ([i915#9886]) -> [FAIL][196]
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-twl-1/igt@kms_dsc@dsc-basic.html
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-twl-1/igt@kms_dsc@dsc-basic.html
    - fi-kbl-8809g:       [SKIP][197] ([i915#11190]) -> [FAIL][198] +16 other tests fail
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-8809g/igt@kms_dsc@dsc-basic.html
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-8809g/igt@kms_dsc@dsc-basic.html
    - bat-jsl-5:          [SKIP][199] ([i915#3555] / [i915#9886]) -> [FAIL][200]
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-jsl-5/igt@kms_dsc@dsc-basic.html
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-jsl-5/igt@kms_dsc@dsc-basic.html
    - bat-apl-1:          [SKIP][201] -> [FAIL][202] +8 other tests fail
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-apl-1/igt@kms_dsc@dsc-basic.html
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-apl-1/igt@kms_dsc@dsc-basic.html
    - bat-arls-5:         [SKIP][203] ([i915#9886]) -> [FAIL][204]
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-5/igt@kms_dsc@dsc-basic.html
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-5/igt@kms_dsc@dsc-basic.html
    - bat-rplp-1:         [SKIP][205] ([i915#3555] / [i915#3840]) -> [FAIL][206]
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-rplp-1/igt@kms_dsc@dsc-basic.html
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-rplp-1/igt@kms_dsc@dsc-basic.html
    - fi-tgl-1115g4:      [SKIP][207] ([i915#3555] / [i915#3840]) -> [FAIL][208]
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-tgl-1115g4/igt@kms_dsc@dsc-basic.html
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-tgl-1115g4/igt@kms_dsc@dsc-basic.html
    - fi-skl-6600u:       [SKIP][209] -> [FAIL][210] +3 other tests fail
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-skl-6600u/igt@kms_dsc@dsc-basic.html
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-skl-6600u/igt@kms_dsc@dsc-basic.html
    - bat-twl-2:          [SKIP][211] ([i915#9886]) -> [FAIL][212]
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-twl-2/igt@kms_dsc@dsc-basic.html
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-twl-2/igt@kms_dsc@dsc-basic.html
    - bat-dg2-11:         [SKIP][213] ([i915#3555] / [i915#3840]) -> [FAIL][214]
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-11/igt@kms_dsc@dsc-basic.html
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-11/igt@kms_dsc@dsc-basic.html
    - bat-dg2-14:         [SKIP][215] ([i915#3555] / [i915#3840]) -> [FAIL][216]
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-14/igt@kms_dsc@dsc-basic.html
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-14/igt@kms_dsc@dsc-basic.html
    - bat-mtlp-9:         [SKIP][217] ([i915#3555] / [i915#3840] / [i915#9159]) -> [FAIL][218]
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-9/igt@kms_dsc@dsc-basic.html
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-9/igt@kms_dsc@dsc-basic.html
    - bat-arls-6:         [SKIP][219] ([i915#9886]) -> [FAIL][220]
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-6/igt@kms_dsc@dsc-basic.html
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-6/igt@kms_dsc@dsc-basic.html
    - bat-mtlp-8:         [SKIP][221] ([i915#3555] / [i915#3840] / [i915#9159]) -> [FAIL][222]
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-8/igt@kms_dsc@dsc-basic.html
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-8/igt@kms_dsc@dsc-basic.html
    - bat-adls-6:         [SKIP][223] ([i915#3555] / [i915#3840]) -> [FAIL][224]
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adls-6/igt@kms_dsc@dsc-basic.html
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adls-6/igt@kms_dsc@dsc-basic.html
    - bat-jsl-1:          [SKIP][225] ([i915#3555] / [i915#9886]) -> [FAIL][226]
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-jsl-1/igt@kms_dsc@dsc-basic.html
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-jsl-1/igt@kms_dsc@dsc-basic.html
    - bat-arlh-3:         [SKIP][227] ([i915#9886]) -> [FAIL][228]
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-3/igt@kms_dsc@dsc-basic.html
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-3/igt@kms_dsc@dsc-basic.html
    - bat-dg1-7:          [SKIP][229] ([i915#3555] / [i915#3840]) -> [FAIL][230]
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-7/igt@kms_dsc@dsc-basic.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-7/igt@kms_dsc@dsc-basic.html
    - bat-adlp-9:         [SKIP][231] ([i915#3555] / [i915#3840]) -> [FAIL][232]
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-9/igt@kms_dsc@dsc-basic.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-9/igt@kms_dsc@dsc-basic.html

  * igt@kms_flip@basic-flip-vs-dpms:
    - bat-adlp-11:        [SKIP][233] ([i915#3637]) -> [FAIL][234] +3 other tests fail
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-11/igt@kms_flip@basic-flip-vs-dpms.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-11/igt@kms_flip@basic-flip-vs-dpms.html
    - bat-dg1-6:          [SKIP][235] ([i915#12311] / [i915#3637]) -> [FAIL][236] +2 other tests fail
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@kms_flip@basic-flip-vs-dpms.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@kms_flip@basic-flip-vs-dpms.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - fi-bsw-nick:        [SKIP][237] -> [FAIL][238] +11 other tests fail
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-bsw-nick/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-bsw-nick/igt@kms_flip@basic-flip-vs-wf_vblank.html
    - fi-rkl-11600:       [SKIP][239] ([i915#3637]) -> [FAIL][240] +3 other tests fail
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-rkl-11600/igt@kms_flip@basic-flip-vs-wf_vblank.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-rkl-11600/igt@kms_flip@basic-flip-vs-wf_vblank.html

  * igt@kms_flip@basic-plain-flip:
    - bat-dg1-6:          [SKIP][241] ([i915#12311]) -> [FAIL][242]
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@kms_flip@basic-plain-flip.html
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@kms_flip@basic-plain-flip.html

  * igt@kms_force_connector_basic@force-connector-state:
    - fi-kbl-7567u:       [DMESG-WARN][243] ([i915#13735] / [i915#13890] / [i915#180]) -> [DMESG-FAIL][244]
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-7567u/igt@kms_force_connector_basic@force-connector-state.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-7567u/igt@kms_force_connector_basic@force-connector-state.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-kbl-x1275:       [SKIP][245] -> [FAIL][246] +10 other tests fail
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-x1275/igt@kms_frontbuffer_tracking@basic.html
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-x1275/igt@kms_frontbuffer_tracking@basic.html
    - bat-adlp-11:        [SKIP][247] ([i915#4342] / [i915#5354]) -> [FAIL][248]
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-11/igt@kms_frontbuffer_tracking@basic.html
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-11/igt@kms_frontbuffer_tracking@basic.html
    - fi-kbl-8809g:       [SKIP][249] -> [FAIL][250] +10 other tests fail
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-8809g/igt@kms_frontbuffer_tracking@basic.html
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-8809g/igt@kms_frontbuffer_tracking@basic.html
    - bat-dg1-6:          [SKIP][251] ([i915#12311] / [i915#4342]) -> [FAIL][252]
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@kms_frontbuffer_tracking@basic.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@kms_frontbuffer_tracking@basic.html
    - fi-rkl-11600:       [SKIP][253] ([i915#1849] / [i915#5354]) -> [FAIL][254]
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-rkl-11600/igt@kms_frontbuffer_tracking@basic.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-rkl-11600/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12:
    - fi-hsw-4770:        [SKIP][255] -> [FAIL][256] +2 other tests fail
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-hsw-4770/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-hsw-4770/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24:
    - fi-rkl-11600:       [SKIP][257] ([i915#11190]) -> [FAIL][258] +16 other tests fail
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-rkl-11600/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-rkl-11600/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-xr24.html

  * igt@kms_pipe_crc_basic@nonblocking-crc:
    - bat-arlh-2:         [SKIP][259] ([i915#11190] / [i915#11346]) -> [FAIL][260] +16 other tests fail
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-2/igt@kms_pipe_crc_basic@nonblocking-crc.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-2/igt@kms_pipe_crc_basic@nonblocking-crc.html

  * igt@kms_pipe_crc_basic@read-crc:
    - fi-kbl-x1275:       [SKIP][261] ([i915#11190]) -> [FAIL][262] +16 other tests fail
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-x1275/igt@kms_pipe_crc_basic@read-crc.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-x1275/igt@kms_pipe_crc_basic@read-crc.html
    - bat-adlp-11:        [SKIP][263] ([i915#11190]) -> [FAIL][264] +16 other tests fail
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence:
    - fi-bsw-nick:        [SKIP][265] ([i915#11190]) -> [FAIL][266] +16 other tests fail
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-bsw-nick/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-bsw-nick/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html
    - bat-kbl-2:          [SKIP][267] ([i915#11190]) -> [FAIL][268] +16 other tests fail
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-kbl-2/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-kbl-2/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html

  * igt@kms_pm_backlight@basic-brightness:
    - bat-kbl-2:          [SKIP][269] -> [FAIL][270] +10 other tests fail
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-kbl-2/igt@kms_pm_backlight@basic-brightness.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-kbl-2/igt@kms_pm_backlight@basic-brightness.html
    - bat-dg2-11:         [SKIP][271] ([i915#5354]) -> [FAIL][272]
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-11/igt@kms_pm_backlight@basic-brightness.html
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-11/igt@kms_pm_backlight@basic-brightness.html
    - bat-dg2-14:         [SKIP][273] ([i915#5354]) -> [FAIL][274]
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-14/igt@kms_pm_backlight@basic-brightness.html
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-14/igt@kms_pm_backlight@basic-brightness.html
    - bat-dg2-8:          [SKIP][275] ([i915#5354]) -> [FAIL][276]
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-8/igt@kms_pm_backlight@basic-brightness.html
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-8/igt@kms_pm_backlight@basic-brightness.html
    - bat-arls-6:         [SKIP][277] ([i915#9812]) -> [FAIL][278]
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-6/igt@kms_pm_backlight@basic-brightness.html
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-6/igt@kms_pm_backlight@basic-brightness.html
    - bat-adlp-9:         [SKIP][279] ([i915#9812]) -> [FAIL][280]
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-9/igt@kms_pm_backlight@basic-brightness.html
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-9/igt@kms_pm_backlight@basic-brightness.html
    - bat-adls-6:         [SKIP][281] ([i915#5354]) -> [FAIL][282]
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adls-6/igt@kms_pm_backlight@basic-brightness.html
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adls-6/igt@kms_pm_backlight@basic-brightness.html
    - bat-arls-5:         [SKIP][283] ([i915#9812]) -> [FAIL][284]
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-5/igt@kms_pm_backlight@basic-brightness.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-5/igt@kms_pm_backlight@basic-brightness.html
    - fi-rkl-11600:       [SKIP][285] ([i915#5354]) -> [FAIL][286]
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-rkl-11600/igt@kms_pm_backlight@basic-brightness.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-rkl-11600/igt@kms_pm_backlight@basic-brightness.html
    - bat-dg1-7:          [SKIP][287] ([i915#5354]) -> [FAIL][288]
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-7/igt@kms_pm_backlight@basic-brightness.html
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-7/igt@kms_pm_backlight@basic-brightness.html
    - bat-rpls-4:         [SKIP][289] ([i915#5354]) -> [FAIL][290]
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-rpls-4/igt@kms_pm_backlight@basic-brightness.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-rpls-4/igt@kms_pm_backlight@basic-brightness.html
    - bat-jsl-5:          [SKIP][291] ([i915#15205]) -> [FAIL][292]
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-jsl-5/igt@kms_pm_backlight@basic-brightness.html
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-jsl-5/igt@kms_pm_backlight@basic-brightness.html
    - fi-tgl-1115g4:      [SKIP][293] ([i915#9812]) -> [FAIL][294]
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-tgl-1115g4/igt@kms_pm_backlight@basic-brightness.html
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-tgl-1115g4/igt@kms_pm_backlight@basic-brightness.html
    - bat-dg2-9:          [SKIP][295] ([i915#5354]) -> [FAIL][296]
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-9/igt@kms_pm_backlight@basic-brightness.html
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-9/igt@kms_pm_backlight@basic-brightness.html
    - bat-adlp-11:        [SKIP][297] ([i915#9812]) -> [FAIL][298]
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-11/igt@kms_pm_backlight@basic-brightness.html
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-11/igt@kms_pm_backlight@basic-brightness.html
    - bat-dg1-6:          [SKIP][299] ([i915#12311] / [i915#5354]) -> [FAIL][300]
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@kms_pm_backlight@basic-brightness.html
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_rpm@basic-pci-d3-state:
    - fi-kbl-7567u:       [DMESG-WARN][301] ([i915#13735] / [i915#13890] / [i915#180]) -> [FAIL][302] +20 other tests fail
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
    - fi-ilk-650:         [SKIP][303] -> [FAIL][304] +10 other tests fail
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-ilk-650/igt@kms_pm_rpm@basic-pci-d3-state.html
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-ilk-650/igt@kms_pm_rpm@basic-pci-d3-state.html

  * igt@kms_pm_rpm@basic-rte:
    - fi-ivb-3770:        [SKIP][305] -> [FAIL][306] +10 other tests fail
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-ivb-3770/igt@kms_pm_rpm@basic-rte.html
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-ivb-3770/igt@kms_pm_rpm@basic-rte.html

  * igt@kms_psr@psr-cursor-plane-move:
    - fi-cfl-guc:         [SKIP][307] -> [FAIL][308] +7 other tests fail
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-cfl-guc/igt@kms_psr@psr-cursor-plane-move.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-cfl-guc/igt@kms_psr@psr-cursor-plane-move.html

  * igt@kms_psr@psr-primary-mmap-gtt:
    - fi-bsw-n3050:       [SKIP][309] -> [FAIL][310] +8 other tests fail
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-bsw-n3050/igt@kms_psr@psr-primary-mmap-gtt.html
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-bsw-n3050/igt@kms_psr@psr-primary-mmap-gtt.html
    - bat-mtlp-9:         [SKIP][311] ([i915#4077] / [i915#9688]) -> [FAIL][312]
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-9/igt@kms_psr@psr-primary-mmap-gtt.html
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-9/igt@kms_psr@psr-primary-mmap-gtt.html
    - bat-arls-6:         [SKIP][313] ([i915#9732]) -> [FAIL][314] +3 other tests fail
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-6/igt@kms_psr@psr-primary-mmap-gtt.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-6/igt@kms_psr@psr-primary-mmap-gtt.html
    - fi-pnv-d510:        [SKIP][315] -> [FAIL][316] +14 other tests fail
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-pnv-d510/igt@kms_psr@psr-primary-mmap-gtt.html
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-pnv-d510/igt@kms_psr@psr-primary-mmap-gtt.html
    - bat-mtlp-8:         [SKIP][317] ([i915#4077] / [i915#9688]) -> [FAIL][318]
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-mtlp-8/igt@kms_psr@psr-primary-mmap-gtt.html
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-mtlp-8/igt@kms_psr@psr-primary-mmap-gtt.html
    - bat-adls-6:         [SKIP][319] ([i915#1072] / [i915#9732]) -> [FAIL][320] +3 other tests fail
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adls-6/igt@kms_psr@psr-primary-mmap-gtt.html
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adls-6/igt@kms_psr@psr-primary-mmap-gtt.html
    - bat-arlh-3:         [SKIP][321] ([i915#12637] / [i915#9688]) -> [FAIL][322]
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-3/igt@kms_psr@psr-primary-mmap-gtt.html
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-3/igt@kms_psr@psr-primary-mmap-gtt.html

  * igt@kms_psr@psr-primary-page-flip:
    - bat-dg1-7:          [SKIP][323] ([i915#1072] / [i915#9732]) -> [FAIL][324] +3 other tests fail
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-7/igt@kms_psr@psr-primary-page-flip.html
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-7/igt@kms_psr@psr-primary-page-flip.html
    - fi-glk-j4005:       [SKIP][325] -> [FAIL][326] +7 other tests fail
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-glk-j4005/igt@kms_psr@psr-primary-page-flip.html
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-glk-j4005/igt@kms_psr@psr-primary-page-flip.html
    - bat-adlp-9:         [SKIP][327] ([i915#1072] / [i915#9732]) -> [FAIL][328] +3 other tests fail
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-9/igt@kms_psr@psr-primary-page-flip.html
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-9/igt@kms_psr@psr-primary-page-flip.html
    - bat-rpls-4:         [SKIP][329] ([i915#1072] / [i915#9732]) -> [FAIL][330] +3 other tests fail
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-rpls-4/igt@kms_psr@psr-primary-page-flip.html
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-rpls-4/igt@kms_psr@psr-primary-page-flip.html
    - bat-jsl-5:          [SKIP][331] ([i915#1072]) -> [FAIL][332] +3 other tests fail
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-jsl-5/igt@kms_psr@psr-primary-page-flip.html
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-jsl-5/igt@kms_psr@psr-primary-page-flip.html
    - bat-arls-5:         [SKIP][333] ([i915#9732]) -> [FAIL][334] +3 other tests fail
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arls-5/igt@kms_psr@psr-primary-page-flip.html
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arls-5/igt@kms_psr@psr-primary-page-flip.html
    - bat-rplp-1:         [SKIP][335] ([i915#1072] / [i915#9732]) -> [FAIL][336] +3 other tests fail
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-rplp-1/igt@kms_psr@psr-primary-page-flip.html
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-rplp-1/igt@kms_psr@psr-primary-page-flip.html
    - bat-arlh-2:         [SKIP][337] ([i915#11346]) -> [FAIL][338] +10 other tests fail
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-2/igt@kms_psr@psr-primary-page-flip.html
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-2/igt@kms_psr@psr-primary-page-flip.html
    - fi-rkl-11600:       [SKIP][339] ([i915#1072] / [i915#9732]) -> [FAIL][340] +3 other tests fail
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-rkl-11600/igt@kms_psr@psr-primary-page-flip.html
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-rkl-11600/igt@kms_psr@psr-primary-page-flip.html
    - bat-dg2-9:          [SKIP][341] ([i915#1072] / [i915#9732]) -> [FAIL][342] +3 other tests fail
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-9/igt@kms_psr@psr-primary-page-flip.html
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-9/igt@kms_psr@psr-primary-page-flip.html
    - bat-adlp-11:        [SKIP][343] ([i915#1072] / [i915#9732]) -> [FAIL][344] +3 other tests fail
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-11/igt@kms_psr@psr-primary-page-flip.html
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-11/igt@kms_psr@psr-primary-page-flip.html
    - bat-dg1-6:          [SKIP][345] ([i915#1072] / [i915#12311] / [i915#9732]) -> [FAIL][346] +3 other tests fail
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@kms_psr@psr-primary-page-flip.html
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@kms_psr@psr-primary-page-flip.html
    - fi-tgl-1115g4:      [SKIP][347] ([i915#9732]) -> [FAIL][348] +3 other tests fail
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-tgl-1115g4/igt@kms_psr@psr-primary-page-flip.html
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-tgl-1115g4/igt@kms_psr@psr-primary-page-flip.html

  * igt@kms_psr@psr-sprite-plane-onoff:
    - bat-dg2-11:         [SKIP][349] ([i915#1072] / [i915#9732]) -> [FAIL][350] +3 other tests fail
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-11/igt@kms_psr@psr-sprite-plane-onoff.html
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-11/igt@kms_psr@psr-sprite-plane-onoff.html
    - fi-cfl-8700k:       [SKIP][351] -> [FAIL][352] +7 other tests fail
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-cfl-8700k/igt@kms_psr@psr-sprite-plane-onoff.html
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-cfl-8700k/igt@kms_psr@psr-sprite-plane-onoff.html
    - bat-dg2-14:         [SKIP][353] ([i915#1072] / [i915#9732]) -> [FAIL][354] +3 other tests fail
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-14/igt@kms_psr@psr-sprite-plane-onoff.html
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-14/igt@kms_psr@psr-sprite-plane-onoff.html
    - fi-hsw-4770:        [SKIP][355] ([i915#1072]) -> [FAIL][356] +3 other tests fail
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-hsw-4770/igt@kms_psr@psr-sprite-plane-onoff.html
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-hsw-4770/igt@kms_psr@psr-sprite-plane-onoff.html
    - bat-dg2-8:          [SKIP][357] ([i915#1072] / [i915#9732]) -> [FAIL][358] +3 other tests fail
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-8/igt@kms_psr@psr-sprite-plane-onoff.html
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-8/igt@kms_psr@psr-sprite-plane-onoff.html

  * igt@prime_vgem@basic-fence-flip:
    - bat-dg2-11:         [SKIP][359] ([i915#3708]) -> [FAIL][360]
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-11/igt@prime_vgem@basic-fence-flip.html
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-11/igt@prime_vgem@basic-fence-flip.html
    - bat-dg2-14:         [SKIP][361] ([i915#3708]) -> [FAIL][362]
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-14/igt@prime_vgem@basic-fence-flip.html
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-14/igt@prime_vgem@basic-fence-flip.html
    - bat-dg2-8:          [SKIP][363] ([i915#3708]) -> [FAIL][364]
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-8/igt@prime_vgem@basic-fence-flip.html
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-8/igt@prime_vgem@basic-fence-flip.html
    - fi-rkl-11600:       [SKIP][365] ([i915#3708]) -> [FAIL][366]
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-rkl-11600/igt@prime_vgem@basic-fence-flip.html
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-rkl-11600/igt@prime_vgem@basic-fence-flip.html
    - bat-dg1-7:          [SKIP][367] ([i915#3708]) -> [FAIL][368]
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-7/igt@prime_vgem@basic-fence-flip.html
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-7/igt@prime_vgem@basic-fence-flip.html
    - bat-dg2-9:          [SKIP][369] ([i915#3708]) -> [FAIL][370]
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-9/igt@prime_vgem@basic-fence-flip.html
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-9/igt@prime_vgem@basic-fence-flip.html
    - bat-adlp-11:        [SKIP][371] ([i915#3708]) -> [FAIL][372]
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-adlp-11/igt@prime_vgem@basic-fence-flip.html
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-adlp-11/igt@prime_vgem@basic-fence-flip.html
    - bat-dg1-6:          [SKIP][373] ([i915#3708]) -> [FAIL][374]
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg1-6/igt@prime_vgem@basic-fence-flip.html
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg1-6/igt@prime_vgem@basic-fence-flip.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_lmem_swapping@basic:
    - fi-elk-e7500:       NOTRUN -> [SKIP][375] +13 other tests skip
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-elk-e7500/igt@gem_lmem_swapping@basic.html

  * igt@i915_selftest@live@gt_mocs:
    - bat-twl-2:          [PASS][376] -> [ABORT][377] ([i915#14365]) +1 other test abort
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-twl-2/igt@i915_selftest@live@gt_mocs.html
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-twl-2/igt@i915_selftest@live@gt_mocs.html

  * igt@i915_selftest@live@workarounds:
    - bat-dg2-9:          [PASS][378] -> [DMESG-FAIL][379] ([i915#12061]) +1 other test dmesg-fail
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-dg2-9/igt@i915_selftest@live@workarounds.html
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-dg2-9/igt@i915_selftest@live@workarounds.html

  
#### Possible fixes ####

  * igt@i915_selftest@live:
    - bat-twl-1:          [DMESG-FAIL][380] -> [PASS][381] +1 other test pass
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-twl-1/igt@i915_selftest@live.html
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-twl-1/igt@i915_selftest@live.html

  * igt@kms_addfb_basic@invalid-set-prop-any:
    - fi-kbl-7567u:       [DMESG-WARN][382] ([i915#13735]) -> [PASS][383] +22 other tests pass
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-kbl-7567u/igt@kms_addfb_basic@invalid-set-prop-any.html
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-kbl-7567u/igt@kms_addfb_basic@invalid-set-prop-any.html

  * igt@kms_hdmi_inject@inject-audio:
    - fi-tgl-1115g4:      [FAIL][384] -> [PASS][385]
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/fi-tgl-1115g4/igt@kms_hdmi_inject@inject-audio.html
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/fi-tgl-1115g4/igt@kms_hdmi_inject@inject-audio.html

  
#### Warnings ####

  * igt@i915_selftest@live:
    - bat-atsm-1:         [DMESG-FAIL][386] ([i915#12061] / [i915#13929]) -> [DMESG-FAIL][387] ([i915#12061] / [i915#14204])
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-atsm-1/igt@i915_selftest@live.html
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-atsm-1/igt@i915_selftest@live.html

  * igt@i915_selftest@live@mman:
    - bat-atsm-1:         [DMESG-FAIL][388] ([i915#13929]) -> [DMESG-FAIL][389] ([i915#14204])
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-atsm-1/igt@i915_selftest@live@mman.html
   [389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-atsm-1/igt@i915_selftest@live@mman.html

  * igt@kms_addfb_basic@basic-x-tiled-legacy:
    - bat-arlh-2:         [SKIP][390] ([i915#10200] / [i915#11346] / [i915#11666]) -> [SKIP][391] ([i915#11346]) +4 other tests skip
   [390]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8670/bat-arlh-2/igt@kms_addfb_basic@basic-x-tiled-legacy.html
   [391]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14230/bat-arlh-2/igt@kms_addfb_basic@basic-x-tiled-legacy.html

  
  [i915#10200]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10200
  [i915#10202]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10202
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#11030]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11030
  [i915#11190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11190
  [i915#11346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11346
  [i915#11666]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11666
  [i915#11731]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11731
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12203]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12203
  [i915#12311]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12311
  [i915#12637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12637
  [i915#13735]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13735
  [i915#13890]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13890
  [i915#13929]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13929
  [i915#14204]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14204
  [i915#14365]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14365
  [i915#15205]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15205
  [i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180
  [i915#1849]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1849
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4213
  [i915#4303]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4303
  [i915#4342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4342
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#9159]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9159
  [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
  [i915#9886]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9886


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

  * CI: CI-20190529 -> None
  * IGT: IGT_8670 -> IGTPW_14230

  CI-20190529: 20190529
  CI_DRM_17698: 605176fe40c828b491a1532367df157529895b87 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_14230: 14230
  IGT_8670: 8670

== Logs ==

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

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

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

* Re: [PATCH i-g-t 04/11] lib/kms: Get rid of the 'p' plane index variable
  2025-12-17 15:37 ` [PATCH i-g-t 04/11] lib/kms: Get rid of the 'p' plane index variable Ville Syrjala
  2025-12-17 19:17   ` Jani Nikula
@ 2025-12-18 11:33   ` Jani Nikula
  2025-12-18 15:47   ` [PATCH i-g-t v2 " Ville Syrjala
  2 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-18 11:33 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The 'p' thing used to track the next free plane slot is annoying.
> Get rid of it by just initializing the plane indexes to -1 to
> indicate a free slot at the start, and then do a straightforward
> search for the next free slot. And for good measure make sure all
> the -1's have disappeared at the end.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  lib/igt_kms.c | 45 ++++++++++++++++++++++++++-------------------
>  1 file changed, 26 insertions(+), 19 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 72c91fb5da76..5679643e167a 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3057,7 +3057,7 @@ static void igt_crtc_init(igt_display_t *display,
>  {
>  	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
>  	igt_plane_t *plane;
> -	int p = 1, crtc_mask = 0;
> +	int crtc_mask = 0;
>  	int j, type;
>  
>  	pipe->display = display;
> @@ -3082,13 +3082,16 @@ static void igt_crtc_init(igt_display_t *display,
>  
>  	igt_assert_lt(0, pipe->n_planes);
>  	pipe->planes = calloc(pipe->n_planes, sizeof(igt_plane_t));
> -	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n",
> -		     pipe->n_planes);
> +	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n", pipe->n_planes);
> +
> +	for (j = 0 ; j < pipe->n_planes; j++)

There's a superfluous space here too.

> +		pipe->planes[j].index = -1;
>  
>  	/* add the planes that can be used with that pipe */
>  	for (j = 0; j < display->n_planes; j++) {
>  		igt_plane_t *global_plane = &display->planes[j];
>  		drmModePlane *drm_plane = global_plane->drm_plane;
> +		int index;
>  
>  		if (!(drm_plane->possible_crtcs & crtc_mask))
>  			continue;
> @@ -3096,29 +3099,36 @@ static void igt_crtc_init(igt_display_t *display,
>  		type = global_plane->type;
>  
>  		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
> -			plane = &pipe->planes[0];
> -			plane->index = 0;
> -			pipe->plane_primary = 0;
> +			index = 0;
> +
> +			pipe->plane_primary = index;
>  			pipe->num_primary_planes++;
>  		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
> -			plane = &pipe->planes[pipe->n_planes - 1];
> -			plane->index = pipe->n_planes - 1;
> -			pipe->plane_cursor = pipe->n_planes - 1;
> +			index = pipe->n_planes - 1;
> +
> +			pipe->plane_cursor = index;
>  			display->has_cursor_plane = true;
>  		} else {
> +			for (index = 1 ; index < pipe->n_planes; index++) {
> +				if (pipe->planes[index].index < 0)
> +					break;
> +			}
> +
>  			/*
>  			 * Increment num_primary_planes for any extra
>  			 * primary plane found.
>  			 */
>  			if (type == DRM_PLANE_TYPE_PRIMARY)
>  				pipe->num_primary_planes++;
> -
> -			plane = &pipe->planes[p];
> -			plane->index = p++;
>  		}
>  
> -		igt_assert_f(plane->index < pipe->n_planes,
> -			     "n_planes < plane->index failed\n");
> +		igt_assert_lt(index, pipe->n_planes);
> +
> +		plane = &pipe->planes[index];
> +
> +		igt_assert_lt(plane->index, 0);
> +
> +		plane->index = index;
>  		plane->type = type;
>  		plane->pipe = pipe;
>  		plane->drm_plane = drm_plane;
> @@ -3143,11 +3153,8 @@ static void igt_crtc_init(igt_display_t *display,
>  	 */
>  	igt_assert_eq(pipe->plane_primary, 0);
>  
> -	/* Check that we filled every slot exactly once */
> -	if (display->has_cursor_plane)
> -		igt_assert_eq(p, pipe->n_planes - 1);
> -	else
> -		igt_assert_eq(p, pipe->n_planes);
> +	for (j = 0; j < pipe->n_planes; j++)
> +		igt_assert_lt(0, pipe->planes[j].index);

This assert fails for the primary plane, no?

I think this should be igt_assert_lte(0, pipe->planes[j].index); as 0 is
allowed.

Other than that, LGTM.

BR,
Jani.


>  }
>  
>  /**

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 06/11] lib/kms: Nuke pipe->plane_primary
  2025-12-17 15:37 ` [PATCH i-g-t 06/11] lib/kms: Nuke pipe->plane_primary Ville Syrjala
@ 2025-12-18 11:37   ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-18 11:37 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Get rid of of the redundant pipe->plane_primary. It'll
> always be 0 after we've found the plane. And before we've
> found the plane we can just check for 'pipe->planes[0].index < 0'.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  lib/igt_kms.c | 31 +++++++++----------------------
>  lib/igt_kms.h |  1 -
>  2 files changed, 9 insertions(+), 23 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 233f326d487f..5bb8da1ec2c5 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3022,29 +3022,24 @@ void igt_display_reset_outputs(igt_display_t *display)
>  		output = igt_get_single_output_for_pipe(display, i);
>  
>  		if (pipe->num_primary_planes > 1) {
> -			igt_plane_t *primary =
> -				&pipe->planes[pipe->plane_primary];
> +			igt_plane_t *primary = &pipe->planes[0];
>  			igt_plane_t *assigned_primary =
>  				igt_get_assigned_primary(output, pipe);
>  			int assigned_primary_index = assigned_primary->index;
>  
>  			/*
>  			 * If the driver-assigned primary plane isn't at
> -			 * the pipe->plane_primary index, swap it with
> -			 * the plane that's currently at the
> -			 * plane_primary index and update plane->index
> -			 * accordingly.
> +			 * index 0, swap it with the plane that's currently
> +			 * at index 0 and update the indexes accordingly.
>  			 *
> -			 * This way, we can preserve pipe->plane_primary
> -			 * as 0 so that tests that assume
> -			 * pipe->plane_primary is always 0 won't break.
> +			 * This way, the primary plane is always at index 0.
>  			 */
> -			if (assigned_primary_index != pipe->plane_primary) {
> -				assigned_primary->index = pipe->plane_primary;
> +			if (assigned_primary_index != 0) {
> +				assigned_primary->index = 0;
>  				primary->index = assigned_primary_index;
>  
>  				igt_swap(pipe->planes[assigned_primary_index],
> -					 pipe->planes[pipe->plane_primary]);
> +					 pipe->planes[0]);
>  			}
>  		}
>  	}
> @@ -3062,10 +3057,9 @@ static void igt_crtc_plane_init(igt_display_t *display,
>  	igt_plane_t *plane;
>  	int index;
>  
> -	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
> +	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->planes[0].index < 0) {
>  		index = 0;
>  
> -		pipe->plane_primary = index;
>  		pipe->num_primary_planes++;
>  	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
>  		index = pipe->n_planes - 1;
> @@ -3120,7 +3114,6 @@ static void igt_crtc_init(igt_display_t *display,
>  
>  	pipe->display = display;
>  	pipe->plane_cursor = -1;
> -	pipe->plane_primary = -1;
>  	pipe->planes = NULL;
>  	pipe->num_primary_planes = 0;
>  
> @@ -3156,12 +3149,6 @@ static void igt_crtc_init(igt_display_t *display,
>  		igt_crtc_plane_init(display, pipe, resources, global_plane);
>  	}
>  
> -	/*
> -	 * At the bare minimum, we should expect to have a primary
> -	 * plane, and it must be in slot 0.
> -	 */
> -	igt_assert_eq(pipe->plane_primary, 0);
> -
>  	for (j = 0; j < pipe->n_planes; j++)
>  		igt_assert_lt(0, pipe->planes[j].index);
>  }
> @@ -3582,7 +3569,7 @@ igt_plane_t *igt_pipe_get_plane_type(igt_crtc_t *pipe, int plane_type)
>  		plane_idx = pipe->plane_cursor;
>  		break;
>  	case DRM_PLANE_TYPE_PRIMARY:
> -		plane_idx = pipe->plane_primary;
> +		plane_idx = 0;
>  		break;
>  	case DRM_PLANE_TYPE_OVERLAY:
>  		for(i = 0; i < pipe->n_planes; i++)
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index b00884640e16..810eb7497834 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -490,7 +490,6 @@ struct igt_crtc {
>  	int n_planes;
>  	int num_primary_planes;
>  	int plane_cursor;
> -	int plane_primary;
>  	igt_plane_t *planes;
>  
>  	uint64_t changed;

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 07/11] lib/kms: Nuke pipe->plane_cursor
  2025-12-17 15:37 ` [PATCH i-g-t 07/11] lib/kms: Nuke pipe->plane_cursor Ville Syrjala
@ 2025-12-18 11:39   ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-18 11:39 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Get rid of of the redundant pipe->plane_cursor. It'll
> always be 'pipe->n_planes-1' after we've found the plane.
> And before we've found the plane we can just check for
> 'pipe->planes[pipe->n_planes-1].index < 0'.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  lib/igt_kms.c | 6 ++----
>  lib/igt_kms.h | 1 -
>  2 files changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 5bb8da1ec2c5..7ae166253a3f 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3061,10 +3061,9 @@ static void igt_crtc_plane_init(igt_display_t *display,
>  		index = 0;
>  
>  		pipe->num_primary_planes++;
> -	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
> +	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->planes[pipe->n_planes - 1].index < 0) {
>  		index = pipe->n_planes - 1;
>  
> -		pipe->plane_cursor = index;
>  		display->has_cursor_plane = true;
>  	} else {
>  		for (index = 1; index < pipe->n_planes; index++) {
> @@ -3113,7 +3112,6 @@ static void igt_crtc_init(igt_display_t *display,
>  	int j;
>  
>  	pipe->display = display;
> -	pipe->plane_cursor = -1;
>  	pipe->planes = NULL;
>  	pipe->num_primary_planes = 0;
>  
> @@ -3566,7 +3564,7 @@ igt_plane_t *igt_pipe_get_plane_type(igt_crtc_t *pipe, int plane_type)
>  
>  	switch(plane_type) {
>  	case DRM_PLANE_TYPE_CURSOR:
> -		plane_idx = pipe->plane_cursor;
> +		plane_idx = pipe->n_planes - 1;
>  		break;
>  	case DRM_PLANE_TYPE_PRIMARY:
>  		plane_idx = 0;
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 810eb7497834..4a814f0e9962 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -489,7 +489,6 @@ struct igt_crtc {
>  
>  	int n_planes;
>  	int num_primary_planes;
> -	int plane_cursor;
>  	igt_plane_t *planes;
>  
>  	uint64_t changed;

-- 
Jani Nikula, Intel

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

* [PATCH i-g-t v2 04/11] lib/kms: Get rid of the 'p' plane index variable
  2025-12-17 15:37 ` [PATCH i-g-t 04/11] lib/kms: Get rid of the 'p' plane index variable Ville Syrjala
  2025-12-17 19:17   ` Jani Nikula
  2025-12-18 11:33   ` Jani Nikula
@ 2025-12-18 15:47   ` Ville Syrjala
  2025-12-19 10:55     ` Jani Nikula
  2 siblings, 1 reply; 30+ messages in thread
From: Ville Syrjala @ 2025-12-18 15:47 UTC (permalink / raw)
  To: igt-dev; +Cc: Jani Nikula

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

The 'p' thing used to track the next free plane slot is annoying.
Get rid of it by just initializing the plane indexes to -1 to
indicate a free slot at the start, and then do a straightforward
search for the next free slot. And for good measure make sure all
the -1's have disappeared at the end.

v2: Remove spurious whitespace (Jani)
    Fix the post init plane->index assert (Jani/CI)

Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 42 +++++++++++++++++++++++++-----------------
 1 file changed, 25 insertions(+), 17 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 72c91fb5da76..803a1e926b10 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3057,7 +3057,7 @@ static void igt_crtc_init(igt_display_t *display,
 {
 	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
 	igt_plane_t *plane;
-	int p = 1, crtc_mask = 0;
+	int crtc_mask = 0;
 	int j, type;
 
 	pipe->display = display;
@@ -3085,10 +3085,14 @@ static void igt_crtc_init(igt_display_t *display,
 	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n",
 		     pipe->n_planes);
 
+	for (j = 0; j < pipe->n_planes; j++)
+		pipe->planes[j].index = -1;
+
 	/* add the planes that can be used with that pipe */
 	for (j = 0; j < display->n_planes; j++) {
 		igt_plane_t *global_plane = &display->planes[j];
 		drmModePlane *drm_plane = global_plane->drm_plane;
+		int index;
 
 		if (!(drm_plane->possible_crtcs & crtc_mask))
 			continue;
@@ -3096,29 +3100,36 @@ static void igt_crtc_init(igt_display_t *display,
 		type = global_plane->type;
 
 		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
-			plane = &pipe->planes[0];
-			plane->index = 0;
-			pipe->plane_primary = 0;
+			index = 0;
+
+			pipe->plane_primary = index;
 			pipe->num_primary_planes++;
 		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
-			plane = &pipe->planes[pipe->n_planes - 1];
-			plane->index = pipe->n_planes - 1;
-			pipe->plane_cursor = pipe->n_planes - 1;
+			index = pipe->n_planes - 1;
+
+			pipe->plane_cursor = index;
 			display->has_cursor_plane = true;
 		} else {
+			for (index = 1; index < pipe->n_planes; index++) {
+				if (pipe->planes[index].index < 0)
+					break;
+			}
+
 			/*
 			 * Increment num_primary_planes for any extra
 			 * primary plane found.
 			 */
 			if (type == DRM_PLANE_TYPE_PRIMARY)
 				pipe->num_primary_planes++;
-
-			plane = &pipe->planes[p];
-			plane->index = p++;
 		}
 
-		igt_assert_f(plane->index < pipe->n_planes,
-			     "n_planes < plane->index failed\n");
+		igt_assert_lt(index, pipe->n_planes);
+
+		plane = &pipe->planes[index];
+
+		igt_assert_lt(plane->index, 0);
+
+		plane->index = index;
 		plane->type = type;
 		plane->pipe = pipe;
 		plane->drm_plane = drm_plane;
@@ -3143,11 +3154,8 @@ static void igt_crtc_init(igt_display_t *display,
 	 */
 	igt_assert_eq(pipe->plane_primary, 0);
 
-	/* Check that we filled every slot exactly once */
-	if (display->has_cursor_plane)
-		igt_assert_eq(p, pipe->n_planes - 1);
-	else
-		igt_assert_eq(p, pipe->n_planes);
+	for (j = 0; j < pipe->n_planes; j++)
+		igt_assert_lte(0, pipe->planes[j].index);
 }
 
 /**
-- 
2.51.2


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

* [PATCH i-g-t v2 05/11] lib/kms: Extract igt_crtc_plane_init()
  2025-12-17 15:37 ` [PATCH i-g-t 05/11] lib/kms: Extract igt_crtc_plane_init() Ville Syrjala
  2025-12-17 19:18   ` Jani Nikula
@ 2025-12-18 15:48   ` Ville Syrjala
  1 sibling, 0 replies; 30+ messages in thread
From: Ville Syrjala @ 2025-12-18 15:48 UTC (permalink / raw)
  To: igt-dev; +Cc: Jani Nikula

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

Coccinelle tends to hit some kind of pathological performance
problem with igt_display_require(). Carving it up seems to help
a bit, so extract the plane init loop into a separate function.

v2: Rebase due to spurious whitespace removal

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_kms.c | 113 +++++++++++++++++++++++++++-----------------------
 1 file changed, 61 insertions(+), 52 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 803a1e926b10..6e9eb53a0c13 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -3052,13 +3052,71 @@ void igt_display_reset_outputs(igt_display_t *display)
 	drmModeFreeResources(resources);
 }
 
+static void igt_crtc_plane_init(igt_display_t *display,
+				igt_crtc_t *pipe,
+				drmModeRes *resources,
+				igt_plane_t *global_plane)
+{
+	drmModePlane *drm_plane = global_plane->drm_plane;
+	int type = global_plane->type;
+	igt_plane_t *plane;
+	int index;
+
+	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
+		index = 0;
+
+		pipe->plane_primary = index;
+		pipe->num_primary_planes++;
+	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
+		index = pipe->n_planes - 1;
+
+		pipe->plane_cursor = index;
+		display->has_cursor_plane = true;
+	} else {
+		for (index = 1; index < pipe->n_planes; index++) {
+			if (pipe->planes[index].index < 0)
+				break;
+		}
+
+		/*
+		 * Increment num_primary_planes for any extra
+		 * primary plane found.
+		 */
+		if (type == DRM_PLANE_TYPE_PRIMARY)
+			pipe->num_primary_planes++;
+	}
+
+	igt_assert_lt(index, pipe->n_planes);
+
+	plane = &pipe->planes[index];
+
+	igt_assert_lt(plane->index, 0);
+
+	plane->index = index;
+	plane->type = type;
+	plane->pipe = pipe;
+	plane->drm_plane = drm_plane;
+	plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
+	plane->ref = global_plane;
+
+	/*
+	 * HACK: point the global plane to the first pipe that
+	 * it can go on.
+	 */
+	if (!global_plane->ref)
+		igt_plane_set_pipe(plane, pipe);
+
+	igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
+
+	igt_fill_plane_format_mod(display, plane);
+}
+
 static void igt_crtc_init(igt_display_t *display,
 			  drmModeRes *resources, int i)
 {
 	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
-	igt_plane_t *plane;
 	int crtc_mask = 0;
-	int j, type;
+	int j;
 
 	pipe->display = display;
 	pipe->plane_cursor = -1;
@@ -3092,60 +3150,11 @@ static void igt_crtc_init(igt_display_t *display,
 	for (j = 0; j < display->n_planes; j++) {
 		igt_plane_t *global_plane = &display->planes[j];
 		drmModePlane *drm_plane = global_plane->drm_plane;
-		int index;
 
 		if (!(drm_plane->possible_crtcs & crtc_mask))
 			continue;
 
-		type = global_plane->type;
-
-		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
-			index = 0;
-
-			pipe->plane_primary = index;
-			pipe->num_primary_planes++;
-		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
-			index = pipe->n_planes - 1;
-
-			pipe->plane_cursor = index;
-			display->has_cursor_plane = true;
-		} else {
-			for (index = 1; index < pipe->n_planes; index++) {
-				if (pipe->planes[index].index < 0)
-					break;
-			}
-
-			/*
-			 * Increment num_primary_planes for any extra
-			 * primary plane found.
-			 */
-			if (type == DRM_PLANE_TYPE_PRIMARY)
-				pipe->num_primary_planes++;
-		}
-
-		igt_assert_lt(index, pipe->n_planes);
-
-		plane = &pipe->planes[index];
-
-		igt_assert_lt(plane->index, 0);
-
-		plane->index = index;
-		plane->type = type;
-		plane->pipe = pipe;
-		plane->drm_plane = drm_plane;
-		plane->values[IGT_PLANE_IN_FENCE_FD] = ~0ULL;
-		plane->ref = global_plane;
-
-		/*
-		 * HACK: point the global plane to the first pipe that
-		 * it can go on.
-		 */
-		if (!global_plane->ref)
-			igt_plane_set_pipe(plane, pipe);
-
-		igt_fill_plane_props(display, plane, IGT_NUM_PLANE_PROPS, igt_plane_prop_names);
-
-		igt_fill_plane_format_mod(display, plane);
+		igt_crtc_plane_init(display, pipe, resources, global_plane);
 	}
 
 	/*
-- 
2.51.2


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

* ✗ Xe.CI.Full: failure for lib/kms: Carve up igt_display_require()
  2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
                   ` (12 preceding siblings ...)
  2025-12-17 21:00 ` ✗ i915.CI.BAT: " Patchwork
@ 2025-12-18 20:21 ` Patchwork
  13 siblings, 0 replies; 30+ messages in thread
From: Patchwork @ 2025-12-18 20:21 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: lib/kms: Carve up igt_display_require()
URL   : https://patchwork.freedesktop.org/series/159165/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_8670_FULL -> XEIGTPW_14230_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_14230_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_14230_FULL, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (2 -> 2)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_flip@2x-nonexisting-fb:
    - shard-bmg:          [PASS][1] -> [FAIL][2] +281 other tests fail
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_flip@2x-nonexisting-fb.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@kms_flip@2x-nonexisting-fb.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-blt:
    - shard-lnl:          NOTRUN -> [FAIL][3] +131 other tests fail
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcdrrs-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_getfb@getfb2-handle-not-fb:
    - shard-lnl:          [PASS][4] -> [FAIL][5] +612 other tests fail
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_getfb@getfb2-handle-not-fb.html
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_getfb@getfb2-handle-not-fb.html

  * igt@xe_fault_injection@inject-fault-probe-function-xe_tile_init_early:
    - shard-lnl:          [PASS][6] -> [DMESG-WARN][7]
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@xe_fault_injection@inject-fault-probe-function-xe_tile_init_early.html
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@xe_fault_injection@inject-fault-probe-function-xe_tile_init_early.html

  * igt@xe_pat@display-vs-wb-transient:
    - shard-bmg:          NOTRUN -> [FAIL][8] +162 other tests fail
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@xe_pat@display-vs-wb-transient.html

  * igt@xe_pm@s2idle-basic:
    - shard-lnl:          [PASS][9] -> [ABORT][10]
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@xe_pm@s2idle-basic.html
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@xe_pm@s2idle-basic.html

  
#### Warnings ####

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - shard-lnl:          [SKIP][11] ([Intel XE#1466]) -> [FAIL][12]
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic:
    - shard-lnl:          [FAIL][13] ([Intel XE#6054]) -> [FAIL][14]
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_async_flips@async-flip-with-page-flip-events-linear-atomic.html

  * igt@kms_async_flips@test-cursor-atomic:
    - shard-lnl:          [SKIP][15] ([Intel XE#664]) -> [FAIL][16] +1 other test fail
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_async_flips@test-cursor-atomic.html
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@kms_async_flips@test-cursor-atomic.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-lnl:          [SKIP][17] ([Intel XE#3279]) -> [FAIL][18] +1 other test fail
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-7/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-bmg:          [SKIP][19] ([Intel XE#2370]) -> [FAIL][20] +1 other test fail
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-90:
    - shard-bmg:          [SKIP][21] ([Intel XE#2327]) -> [FAIL][22] +13 other tests fail
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_big_fb@4-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-lnl:          [SKIP][23] ([Intel XE#3658]) -> [FAIL][24] +3 other tests fail
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-lnl:          [SKIP][25] ([Intel XE#1407]) -> [FAIL][26] +25 other tests fail
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_big_fb@linear-32bpp-rotate-90.html
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_big_fb@linear-32bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-addfb:
    - shard-bmg:          [SKIP][27] ([Intel XE#2328]) -> [FAIL][28] +1 other test fail
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_big_fb@y-tiled-addfb.html
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_big_fb@y-tiled-addfb.html

  * igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
    - shard-lnl:          [SKIP][29] ([Intel XE#1477]) -> [FAIL][30] +1 other test fail
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@y-tiled-addfb-size-overflow:
    - shard-lnl:          [SKIP][31] ([Intel XE#1428]) -> [FAIL][32] +1 other test fail
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
    - shard-bmg:          [SKIP][33] ([Intel XE#610]) -> [FAIL][34]
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_big_fb@y-tiled-addfb-size-overflow.html
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_big_fb@y-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180:
    - shard-bmg:          [SKIP][35] ([Intel XE#1124]) -> [FAIL][36] +33 other tests fail
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-1/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180.html
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-9/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-180.html

  * igt@kms_big_fb@yf-tiled-addfb:
    - shard-lnl:          [SKIP][37] ([Intel XE#1467]) -> [FAIL][38] +1 other test fail
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@kms_big_fb@yf-tiled-addfb.html
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_big_fb@yf-tiled-addfb.html

  * igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow:
    - shard-bmg:          [SKIP][39] ([Intel XE#607]) -> [FAIL][40]
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_big_fb@yf-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-lnl:          [SKIP][41] ([Intel XE#1124]) -> [FAIL][42] +56 other tests fail
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
    - shard-lnl:          [SKIP][43] ([Intel XE#2191]) -> [FAIL][44] +5 other tests fail
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p:
    - shard-lnl:          [SKIP][45] ([Intel XE#1512]) -> [FAIL][46] +7 other tests fail
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p:
    - shard-bmg:          [SKIP][47] ([Intel XE#2314] / [Intel XE#2894]) -> [FAIL][48] +3 other tests fail
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@kms_bw@connected-linear-tiling-4-displays-3840x2160p.html

  * igt@kms_bw@linear-tiling-1-displays-2560x1440p:
    - shard-bmg:          [SKIP][49] ([Intel XE#367]) -> [FAIL][50] +8 other tests fail
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-7/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-2-displays-2160x1440p:
    - shard-lnl:          [SKIP][51] ([Intel XE#367]) -> [FAIL][52] +7 other tests fail
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-8/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_bw@linear-tiling-2-displays-2160x1440p.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc:
    - shard-lnl:          [SKIP][53] ([Intel XE#2887]) -> [FAIL][54] +83 other tests fail
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-7/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc.html
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
    - shard-bmg:          [INCOMPLETE][55] ([Intel XE#3862]) -> [FAIL][56]
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-8/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
    - shard-lnl:          [SKIP][57] ([Intel XE#2669] / [Intel XE#3433]) -> [FAIL][58]
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs:
    - shard-lnl:          [SKIP][59] ([Intel XE#3432]) -> [FAIL][60] +8 other tests fail
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc:
    - shard-bmg:          [SKIP][61] ([Intel XE#3432]) -> [FAIL][62] +4 other tests fail
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
    - shard-lnl:          [SKIP][63] ([Intel XE#2669]) -> [FAIL][64] +4 other tests fail
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
    - shard-bmg:          [SKIP][65] ([Intel XE#2887]) -> [FAIL][66] +43 other tests fail
   [65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs:
    - shard-bmg:          [SKIP][67] ([Intel XE#2652] / [Intel XE#787]) -> [FAIL][68] +3 other tests fail
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-lnl:          [SKIP][69] ([Intel XE#4417]) -> [FAIL][70]
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_cdclk@mode-transition.html
   [70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_cdclk@mode-transition.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-bmg:          [SKIP][71] ([Intel XE#2724]) -> [FAIL][72] +1 other test fail
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-1/igt@kms_cdclk@mode-transition-all-outputs.html
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@kms_cdclk@mode-transition-all-outputs.html
    - shard-lnl:          [SKIP][73] ([Intel XE#4418]) -> [FAIL][74]
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_cdclk@mode-transition-all-outputs.html
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_chamelium_color@ctm-blue-to-red:
    - shard-lnl:          [SKIP][75] ([Intel XE#306]) -> [FAIL][76] +7 other tests fail
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_chamelium_color@ctm-blue-to-red.html
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_chamelium_color@ctm-blue-to-red.html

  * igt@kms_chamelium_color@ctm-negative:
    - shard-bmg:          [SKIP][77] ([Intel XE#2325]) -> [FAIL][78] +1 other test fail
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_chamelium_color@ctm-negative.html
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@kms_chamelium_color@ctm-negative.html

  * igt@kms_chamelium_edid@hdmi-edid-change-during-suspend:
    - shard-lnl:          [SKIP][79] ([Intel XE#373]) -> [FAIL][80] +50 other tests fail
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_chamelium_edid@hdmi-edid-change-during-suspend.html
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_chamelium_edid@hdmi-edid-change-during-suspend.html

  * igt@kms_chamelium_hpd@dp-hpd-storm:
    - shard-bmg:          [SKIP][81] ([Intel XE#2252]) -> [FAIL][82] +35 other tests fail
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_chamelium_hpd@dp-hpd-storm.html
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_chamelium_hpd@dp-hpd-storm.html

  * igt@kms_chamelium_sharpness_filter@filter-basic:
    - shard-bmg:          [SKIP][83] ([Intel XE#6507]) -> [FAIL][84]
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-7/igt@kms_chamelium_sharpness_filter@filter-basic.html
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-2/igt@kms_chamelium_sharpness_filter@filter-basic.html
    - shard-lnl:          [SKIP][85] ([Intel XE#6507]) -> [FAIL][86]
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_chamelium_sharpness_filter@filter-basic.html
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_chamelium_sharpness_filter@filter-basic.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-bmg:          [SKIP][87] ([Intel XE#2390]) -> [FAIL][88] +2 other tests fail
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_content_protection@dp-mst-lic-type-1.html
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_content_protection@dp-mst-suspend-resume:
    - shard-bmg:          [SKIP][89] ([Intel XE#6743]) -> [FAIL][90]
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_content_protection@dp-mst-suspend-resume.html
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@kms_content_protection@dp-mst-suspend-resume.html
    - shard-lnl:          [SKIP][91] ([Intel XE#6692]) -> [FAIL][92]
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-8/igt@kms_content_protection@dp-mst-suspend-resume.html
   [92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_content_protection@dp-mst-suspend-resume.html

  * igt@kms_content_protection@dp-mst-type-1:
    - shard-lnl:          [SKIP][93] ([Intel XE#307]) -> [FAIL][94] +3 other tests fail
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_content_protection@dp-mst-type-1.html
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_content_protection@dp-mst-type-1.html

  * igt@kms_content_protection@legacy:
    - shard-bmg:          [FAIL][95] ([Intel XE#1178]) -> [FAIL][96] +2 other tests fail
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_content_protection@legacy.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@mei-interface:
    - shard-lnl:          [SKIP][97] ([Intel XE#1468]) -> [FAIL][98]
   [97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_content_protection@mei-interface.html
   [98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@suspend-resume:
    - shard-lnl:          [SKIP][99] ([Intel XE#6705]) -> [FAIL][100]
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@kms_content_protection@suspend-resume.html
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_content_protection@suspend-resume.html

  * igt@kms_content_protection@uevent:
    - shard-lnl:          [SKIP][101] ([Intel XE#3278]) -> [FAIL][102] +6 other tests fail
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@kms_content_protection@uevent.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_content_protection@uevent.html
    - shard-bmg:          [FAIL][103] ([Intel XE#6707]) -> [FAIL][104]
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_content_protection@uevent.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-offscreen-128x42:
    - shard-bmg:          [SKIP][105] ([Intel XE#2320]) -> [FAIL][106] +14 other tests fail
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@kms_cursor_crc@cursor-offscreen-128x42.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-9/igt@kms_cursor_crc@cursor-offscreen-128x42.html

  * igt@kms_cursor_crc@cursor-random-512x170:
    - shard-lnl:          [SKIP][107] ([Intel XE#2321]) -> [FAIL][108] +8 other tests fail
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_cursor_crc@cursor-random-512x170.html
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_cursor_crc@cursor-random-512x170.html
    - shard-bmg:          [SKIP][109] ([Intel XE#2321]) -> [FAIL][110] +4 other tests fail
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_cursor_crc@cursor-random-512x170.html
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_cursor_crc@cursor-random-512x170.html

  * igt@kms_cursor_crc@cursor-sliding-64x21:
    - shard-lnl:          [SKIP][111] ([Intel XE#1424]) -> [FAIL][112] +25 other tests fail
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_cursor_crc@cursor-sliding-64x21.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_cursor_crc@cursor-sliding-64x21.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
    - shard-lnl:          [SKIP][113] ([Intel XE#309]) -> [FAIL][114] +25 other tests fail
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-bmg:          [SKIP][115] ([Intel XE#2286]) -> [FAIL][116] +1 other test fail
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle:
    - shard-lnl:          [SKIP][117] ([Intel XE#323]) -> [FAIL][118]
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_cursor_legacy@short-busy-flip-before-cursor-toggle.html

  * igt@kms_dirtyfb@fbc-dirtyfb-ioctl:
    - shard-bmg:          [SKIP][119] ([Intel XE#4210]) -> [FAIL][120]
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_dirtyfb@fbc-dirtyfb-ioctl.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@kms_dirtyfb@fbc-dirtyfb-ioctl.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-lnl:          [SKIP][121] ([Intel XE#4302]) -> [FAIL][122]
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_display_modes@extended-mode-basic.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dp_link_training@uhbr-mst:
    - shard-lnl:          [SKIP][123] ([Intel XE#4354]) -> [FAIL][124] +3 other tests fail
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_dp_link_training@uhbr-mst.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_dp_link_training@uhbr-mst.html
    - shard-bmg:          [SKIP][125] ([Intel XE#4354]) -> [FAIL][126]
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-8/igt@kms_dp_link_training@uhbr-mst.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_dp_link_training@uhbr-mst.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-lnl:          [SKIP][127] ([Intel XE#4294]) -> [FAIL][128]
   [127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-8/igt@kms_dp_linktrain_fallback@dp-fallback.html
   [128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-lnl:          [SKIP][129] ([Intel XE#2244]) -> [FAIL][130] +6 other tests fail
   [129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_dsc@dsc-with-bpc-formats.html
   [130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-bmg:          [SKIP][131] ([Intel XE#2244]) -> [FAIL][132] +4 other tests fail
   [131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
   [132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-2/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fb_coherency@memset-crc:
    - shard-lnl:          [CRASH][133] ([Intel XE#6706]) -> [FAIL][134]
   [133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_fb_coherency@memset-crc.html
   [134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_fb_coherency@memset-crc.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests:
    - shard-bmg:          [SKIP][135] ([Intel XE#4422]) -> [FAIL][136] +2 other tests fail
   [135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html
   [136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-7/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-dirtyfb-tests.html

  * igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area:
    - shard-lnl:          [SKIP][137] ([Intel XE#4422]) -> [FAIL][138] +2 other tests fail
   [137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html
   [138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_fbc_dirty_rect@fbc-dirty-rectangle-out-visible-area.html

  * igt@kms_feature_discovery@chamelium:
    - shard-bmg:          [SKIP][139] ([Intel XE#2372]) -> [FAIL][140]
   [139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_feature_discovery@chamelium.html
   [140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-1x:
    - shard-bmg:          [SKIP][141] ([Intel XE#6557] / [Intel XE#6703]) -> [FAIL][142] +3 other tests fail
   [141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@kms_feature_discovery@display-1x.html
   [142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_feature_discovery@display-1x.html

  * igt@kms_feature_discovery@display-2x:
    - shard-lnl:          [SKIP][143] ([Intel XE#702]) -> [FAIL][144]
   [143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_feature_discovery@display-2x.html
   [144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_feature_discovery@display-2x.html

  * igt@kms_feature_discovery@display-3x:
    - shard-lnl:          [SKIP][145] ([Intel XE#703]) -> [FAIL][146]
   [145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-8/igt@kms_feature_discovery@display-3x.html
   [146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@kms_feature_discovery@display-3x.html

  * igt@kms_feature_discovery@display-4x:
    - shard-lnl:          [SKIP][147] ([Intel XE#1138]) -> [FAIL][148]
   [147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_feature_discovery@display-4x.html
   [148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_feature_discovery@display-4x.html
    - shard-bmg:          [SKIP][149] ([Intel XE#1138]) -> [FAIL][150]
   [149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_feature_discovery@display-4x.html
   [150]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_feature_discovery@display-4x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-lnl:          [SKIP][151] ([Intel XE#1137]) -> [FAIL][152]
   [151]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-7/igt@kms_feature_discovery@dp-mst.html
   [152]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_feature_discovery@dp-mst.html
    - shard-bmg:          [SKIP][153] ([Intel XE#2375]) -> [FAIL][154]
   [153]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@kms_feature_discovery@dp-mst.html
   [154]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset:
    - shard-bmg:          [SKIP][155] ([Intel XE#2316]) -> [FAIL][156] +3 other tests fail
   [155]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html
   [156]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html

  * igt@kms_flip@2x-flip-vs-rmfb-interruptible:
    - shard-lnl:          [SKIP][157] ([Intel XE#1421]) -> [FAIL][158] +34 other tests fail
   [157]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html
   [158]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-lnl:          [FAIL][159] ([Intel XE#301] / [Intel XE#3149]) -> [FAIL][160] +1 other test fail
   [159]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [160]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@wf_vblank-ts-check:
    - shard-bmg:          [SKIP][161] ([Intel XE#6703]) -> [FAIL][162] +299 other tests fail
   [161]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@kms_flip@wf_vblank-ts-check.html
   [162]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@kms_flip@wf_vblank-ts-check.html

  * igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling:
    - shard-lnl:          [FAIL][163] ([Intel XE#4683]) -> [FAIL][164] +1 other test fail
   [163]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-7/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling.html
   [164]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling:
    - shard-bmg:          [SKIP][165] ([Intel XE#2380]) -> [FAIL][166]
   [165]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html
   [166]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling:
    - shard-lnl:          [SKIP][167] ([Intel XE#1397] / [Intel XE#1745]) -> [FAIL][168] +7 other tests fail
   [167]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling.html
   [168]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-lnl:          [SKIP][169] ([Intel XE#1401] / [Intel XE#1745]) -> [FAIL][170] +23 other tests fail
   [169]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html
   [170]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling:
    - shard-bmg:          [SKIP][171] ([Intel XE#2293] / [Intel XE#2380]) -> [FAIL][172] +14 other tests fail
   [171]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html
   [172]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-blt:
    - shard-bmg:          [SKIP][173] ([Intel XE#4141]) -> [FAIL][174] +38 other tests fail
   [173]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-blt.html
   [174]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-2/igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt:
    - shard-lnl:          [SKIP][175] ([Intel XE#6312]) -> [FAIL][176] +10 other tests fail
   [175]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-7/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt.html
   [176]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-pgflip-blt:
    - shard-bmg:          [SKIP][177] ([Intel XE#2312]) -> [FAIL][178] +24 other tests fail
   [177]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-pgflip-blt.html
   [178]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-indfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render:
    - shard-bmg:          [SKIP][179] ([Intel XE#2311]) -> [FAIL][180] +88 other tests fail
   [179]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render.html
   [180]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt:
    - shard-lnl:          [SKIP][181] ([Intel XE#651]) -> [FAIL][182] +67 other tests fail
   [181]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-8/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt.html
   [182]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@kms_frontbuffer_tracking@fbcdrrs-rgb101010-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y:
    - shard-lnl:          [SKIP][183] ([Intel XE#1469]) -> [FAIL][184] +2 other tests fail
   [183]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
   [184]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
    - shard-bmg:          [SKIP][185] ([Intel XE#2352]) -> [FAIL][186] +1 other test fail
   [185]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html
   [186]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y.html

  * igt@kms_frontbuffer_tracking@plane-fbc-rte:
    - shard-bmg:          [SKIP][187] ([Intel XE#2350]) -> [FAIL][188]
   [187]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-7/igt@kms_frontbuffer_tracking@plane-fbc-rte.html
   [188]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_frontbuffer_tracking@plane-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt:
    - shard-bmg:          [SKIP][189] ([Intel XE#2313]) -> [FAIL][190] +83 other tests fail
   [189]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html
   [190]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render:
    - shard-lnl:          [SKIP][191] ([Intel XE#656]) -> [FAIL][192] +212 other tests fail
   [191]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html
   [192]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-render.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-lnl:          [SKIP][193] ([Intel XE#3374] / [Intel XE#3544]) -> [FAIL][194]
   [193]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@kms_hdr@brightness-with-hdr.html
   [194]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@invalid-hdr:
    - shard-bmg:          [ABORT][195] ([Intel XE#6740]) -> [FAIL][196]
   [195]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-1/igt@kms_hdr@invalid-hdr.html
   [196]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_hdr@invalid-hdr.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-lnl:          [SKIP][197] ([Intel XE#1503]) -> [FAIL][198] +4 other tests fail
   [197]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_hdr@invalid-metadata-sizes.html
   [198]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_invalid_mode@clock-too-high:
    - shard-lnl:          [SKIP][199] ([Intel XE#1450] / [Intel XE#2568]) -> [FAIL][200]
   [199]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_invalid_mode@clock-too-high.html
   [200]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_invalid_mode@clock-too-high.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-lnl:          [SKIP][201] ([Intel XE#6901]) -> [FAIL][202] +1 other test fail
   [201]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@kms_joiner@basic-big-joiner.html
   [202]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_joiner@basic-big-joiner.html
    - shard-bmg:          [SKIP][203] ([Intel XE#6901]) -> [FAIL][204]
   [203]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_joiner@basic-big-joiner.html
   [204]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-max-non-joiner:
    - shard-lnl:          [SKIP][205] ([Intel XE#4298]) -> [FAIL][206]
   [205]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_joiner@basic-max-non-joiner.html
   [206]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@kms_joiner@basic-max-non-joiner.html
    - shard-bmg:          [SKIP][207] ([Intel XE#4298]) -> [FAIL][208]
   [207]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-7/igt@kms_joiner@basic-max-non-joiner.html
   [208]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_joiner@basic-max-non-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-lnl:          [SKIP][209] ([Intel XE#6900]) -> [FAIL][210] +3 other tests fail
   [209]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-7/igt@kms_joiner@basic-ultra-joiner.html
   [210]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-bmg:          [SKIP][211] -> [FAIL][212] +1 other test fail
   [211]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
   [212]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
    - shard-lnl:          [SKIP][213] ([Intel XE#2925]) -> [FAIL][214]
   [213]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-7/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
   [214]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_pipe_stress@stress-xrgb8888-yftiled:
    - shard-lnl:          [SKIP][215] -> [FAIL][216]
   [215]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html
   [216]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_pipe_stress@stress-xrgb8888-yftiled.html

  * igt@kms_plane@pixel-format-source-clamping:
    - shard-lnl:          [FAIL][217] ([Intel XE#5195]) -> [FAIL][218]
   [217]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_plane@pixel-format-source-clamping.html
   [218]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_plane@pixel-format-source-clamping.html

  * igt@kms_plane_lowres@tiling-x:
    - shard-lnl:          [SKIP][219] ([Intel XE#599]) -> [FAIL][220] +3 other tests fail
   [219]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_plane_lowres@tiling-x.html
   [220]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@kms_plane_lowres@tiling-x.html

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-lnl:          [SKIP][221] ([Intel XE#4596]) -> [FAIL][222] +4 other tests fail
   [221]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_plane_multiple@2x-tiling-none.html
   [222]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_plane_multiple@2x-tiling-none.html

  * igt@kms_plane_multiple@2x-tiling-yf:
    - shard-bmg:          [SKIP][223] ([Intel XE#5021]) -> [FAIL][224]
   [223]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-8/igt@kms_plane_multiple@2x-tiling-yf.html
   [224]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_plane_multiple@2x-tiling-yf.html

  * igt@kms_plane_multiple@tiling-x:
    - shard-lnl:          [FAIL][225] ([Intel XE#4658]) -> [FAIL][226]
   [225]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_plane_multiple@tiling-x.html
   [226]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_plane_multiple@tiling-x.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-lnl:          [SKIP][227] ([Intel XE#5020]) -> [FAIL][228] +1 other test fail
   [227]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@kms_plane_multiple@tiling-yf.html
   [228]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_plane_multiple@tiling-yf.html
    - shard-bmg:          [SKIP][229] ([Intel XE#5020]) -> [FAIL][230]
   [229]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_plane_multiple@tiling-yf.html
   [230]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-lnl:          [SKIP][231] ([Intel XE#3307]) -> [FAIL][232]
   [231]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_plane_scaling@intel-max-src-size.html
   [232]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75:
    - shard-lnl:          [SKIP][233] ([Intel XE#6886]) -> [FAIL][234] +12 other tests fail
   [233]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
   [234]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
    - shard-bmg:          [SKIP][235] ([Intel XE#6886]) -> [FAIL][236] +2 other tests fail
   [235]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html
   [236]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-75.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-bmg:          [SKIP][237] ([Intel XE#870]) -> [FAIL][238] +1 other test fail
   [237]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-8/igt@kms_pm_backlight@fade-with-dpms.html
   [238]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-lnl:          [SKIP][239] ([Intel XE#736]) -> [FAIL][240]
   [239]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_pm_dc@dc3co-vpb-simulation.html
   [240]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_pm_dc@dc3co-vpb-simulation.html
    - shard-bmg:          [SKIP][241] ([Intel XE#2391]) -> [FAIL][242]
   [241]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_pm_dc@dc3co-vpb-simulation.html
   [242]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-7/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_dc@dc5-dpms-negative:
    - shard-lnl:          [SKIP][243] ([Intel XE#1131]) -> [FAIL][244]
   [243]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@kms_pm_dc@dc5-dpms-negative.html
   [244]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_pm_dc@dc5-dpms-negative.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-bmg:          [SKIP][245] ([Intel XE#2392]) -> [FAIL][246]
   [245]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_pm_dc@dc5-psr.html
   [246]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_dc@dc5-retention-flops:
    - shard-lnl:          [SKIP][247] ([Intel XE#3309]) -> [FAIL][248]
   [247]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_pm_dc@dc5-retention-flops.html
   [248]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@kms_pm_dc@dc5-retention-flops.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-lnl:          [FAIL][249] ([Intel XE#718]) -> [FAIL][250] +1 other test fail
   [249]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-7/igt@kms_pm_dc@dc6-psr.html
   [250]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_dc@deep-pkgc:
    - shard-lnl:          [FAIL][251] ([Intel XE#2029]) -> [FAIL][252]
   [251]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-8/igt@kms_pm_dc@deep-pkgc.html
   [252]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_pm_dc@deep-pkgc.html
    - shard-bmg:          [SKIP][253] ([Intel XE#2505]) -> [FAIL][254]
   [253]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_pm_dc@deep-pkgc.html
   [254]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-2/igt@kms_pm_dc@deep-pkgc.html

  * igt@kms_pm_rpm@dpms-mode-unset-lpsp:
    - shard-bmg:          [SKIP][255] ([Intel XE#1439] / [Intel XE#836]) -> [FAIL][256]
   [255]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-8/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
   [256]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_pm_rpm@i2c:
    - shard-bmg:          [SKIP][257] ([Intel XE#6693]) -> [FAIL][258] +3 other tests fail
   [257]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@kms_pm_rpm@i2c.html
   [258]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_pm_rpm@i2c.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-bmg:          [SKIP][259] ([Intel XE#1439] / [Intel XE#3141] / [Intel XE#836]) -> [FAIL][260] +2 other tests fail
   [259]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-1/igt@kms_pm_rpm@modeset-lpsp-stress.html
   [260]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@kms_pm_rpm@modeset-lpsp-stress.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-lnl:          [SKIP][261] ([Intel XE#1439] / [Intel XE#3141]) -> [FAIL][262] +3 other tests fail
   [261]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [262]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@package-g7:
    - shard-lnl:          [SKIP][263] ([Intel XE#6813]) -> [FAIL][264]
   [263]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_pm_rpm@package-g7.html
   [264]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_pm_rpm@package-g7.html

  * igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf:
    - shard-bmg:          [SKIP][265] ([Intel XE#1406] / [Intel XE#1489]) -> [FAIL][266] +24 other tests fail
   [265]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-1/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html
   [266]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-2/igt@kms_psr2_sf@fbc-pr-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
    - shard-lnl:          [SKIP][267] ([Intel XE#1406] / [Intel XE#2893] / [Intel XE#4608]) -> [FAIL][268] +10 other tests fail
   [267]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html
   [268]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
    - shard-lnl:          [SKIP][269] ([Intel XE#1406] / [Intel XE#2893]) -> [FAIL][270] +20 other tests fail
   [269]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html
   [270]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf:
    - shard-bmg:          [SKIP][271] ([Intel XE#1406] / [Intel XE#6703]) -> [FAIL][272] +24 other tests fail
   [271]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html
   [272]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr@pr-sprite-render:
    - shard-lnl:          [SKIP][273] ([Intel XE#1406]) -> [FAIL][274] +34 other tests fail
   [273]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-1/igt@kms_psr@pr-sprite-render.html
   [274]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_psr@pr-sprite-render.html

  * igt@kms_psr@psr2-no-drrs:
    - shard-bmg:          [SKIP][275] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) -> [FAIL][276] +36 other tests fail
   [275]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_psr@psr2-no-drrs.html
   [276]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-9/igt@kms_psr@psr2-no-drrs.html

  * igt@kms_rotation_crc@primary-rotation-90:
    - shard-lnl:          [SKIP][277] ([Intel XE#3414] / [Intel XE#3904]) -> [FAIL][278] +11 other tests fail
   [277]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@kms_rotation_crc@primary-rotation-90.html
   [278]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@kms_rotation_crc@primary-rotation-90.html

  * igt@kms_rotation_crc@primary-x-tiled-reflect-x-180:
    - shard-lnl:          [FAIL][279] ([Intel XE#4689]) -> [FAIL][280] +1 other test fail
   [279]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_rotation_crc@primary-x-tiled-reflect-x-180.html
   [280]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_rotation_crc@primary-x-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-lnl:          [SKIP][281] ([Intel XE#1127]) -> [FAIL][282] +3 other tests fail
   [281]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-4/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
   [282]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-bmg:          [SKIP][283] ([Intel XE#2330]) -> [FAIL][284] +1 other test fail
   [283]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
   [284]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@sprite-rotation-90:
    - shard-bmg:          [SKIP][285] ([Intel XE#3414] / [Intel XE#3904]) -> [FAIL][286] +4 other tests fail
   [285]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_rotation_crc@sprite-rotation-90.html
   [286]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_rotation_crc@sprite-rotation-90.html

  * igt@kms_sharpness_filter@filter-formats:
    - shard-bmg:          [SKIP][287] ([Intel XE#6503]) -> [FAIL][288] +5 other tests fail
   [287]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_sharpness_filter@filter-formats.html
   [288]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@kms_sharpness_filter@filter-formats.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-lnl:          [SKIP][289] ([Intel XE#362]) -> [FAIL][290] +1 other test fail
   [289]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-5/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [290]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vrr@cmrr:
    - shard-lnl:          [FAIL][291] ([Intel XE#4459]) -> [FAIL][292]
   [291]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-7/igt@kms_vrr@cmrr.html
   [292]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@kms_vrr@cmrr.html

  * igt@kms_vrr@lobf:
    - shard-bmg:          [SKIP][293] ([Intel XE#2168]) -> [FAIL][294] +1 other test fail
   [293]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_vrr@lobf.html
   [294]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@kms_vrr@lobf.html
    - shard-lnl:          [FAIL][295] ([Intel XE#6390]) -> [FAIL][296]
   [295]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@kms_vrr@lobf.html
   [296]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@kms_vrr@lobf.html

  * igt@kms_vrr@negative-basic:
    - shard-lnl:          [SKIP][297] ([Intel XE#1499]) -> [FAIL][298] +2 other tests fail
   [297]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-8/igt@kms_vrr@negative-basic.html
   [298]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_vrr@negative-basic.html

  * igt@kms_vrr@seamless-rr-switch-drrs:
    - shard-bmg:          [SKIP][299] ([Intel XE#1499]) -> [FAIL][300] +1 other test fail
   [299]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_vrr@seamless-rr-switch-drrs.html
   [300]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_vrr@seamless-rr-switch-drrs.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@unaligned-read:
    - shard-bmg:          [PASS][301] -> [SKIP][302] ([Intel XE#2134]) +1 other test skip
   [301]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@fbdev@unaligned-read.html
   [302]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@fbdev@unaligned-read.html

  * igt@intel_hwmon@hwmon-read:
    - shard-lnl:          NOTRUN -> [SKIP][303] ([Intel XE#1125])
   [303]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@intel_hwmon@hwmon-read.html

  * igt@kms_chamelium_edid@dp-edid-change-during-hibernate:
    - shard-bmg:          NOTRUN -> [SKIP][304] ([Intel XE#6703]) +102 other tests skip
   [304]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_chamelium_edid@dp-edid-change-during-hibernate.html

  * igt@kms_pm_rpm@universal-planes-dpms:
    - shard-bmg:          [PASS][305] -> [SKIP][306] ([Intel XE#6693]) +2 other tests skip
   [305]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_pm_rpm@universal-planes-dpms.html
   [306]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_pm_rpm@universal-planes-dpms.html

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-bmg:          NOTRUN -> [SKIP][307] ([Intel XE#1406] / [Intel XE#6703]) +6 other tests skip
   [307]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-bmg:          NOTRUN -> [SKIP][308] ([Intel XE#1406] / [Intel XE#2387])
   [308]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-bmg:          NOTRUN -> [SKIP][309] ([Intel XE#1406] / [Intel XE#2414])
   [309]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-lnl:          NOTRUN -> [SKIP][310] ([Intel XE#1435])
   [310]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-lnl:          NOTRUN -> [SKIP][311] ([Intel XE#1091] / [Intel XE#2849])
   [311]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@xe_compute@ccs-mode-basic:
    - shard-lnl:          NOTRUN -> [SKIP][312] ([Intel XE#1447])
   [312]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@xe_compute@ccs-mode-basic.html

  * igt@xe_configfs@survivability-mode:
    - shard-lnl:          NOTRUN -> [SKIP][313] ([Intel XE#6010])
   [313]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@xe_configfs@survivability-mode.html

  * igt@xe_eudebug@basic-connect:
    - shard-bmg:          NOTRUN -> [SKIP][314] ([Intel XE#4837]) +2 other tests skip
   [314]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@xe_eudebug@basic-connect.html

  * igt@xe_eudebug@basic-vm-access-faultable:
    - shard-lnl:          NOTRUN -> [SKIP][315] ([Intel XE#4837]) +3 other tests skip
   [315]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@xe_eudebug@basic-vm-access-faultable.html

  * igt@xe_eudebug_online@interrupt-all:
    - shard-lnl:          NOTRUN -> [SKIP][316] ([Intel XE#4837] / [Intel XE#6665]) +1 other test skip
   [316]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-8/igt@xe_eudebug_online@interrupt-all.html

  * igt@xe_eudebug_online@writes-caching-sram-bb-vram-target-vram:
    - shard-bmg:          NOTRUN -> [SKIP][317] ([Intel XE#4837] / [Intel XE#6665]) +4 other tests skip
   [317]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@xe_eudebug_online@writes-caching-sram-bb-vram-target-vram.html

  * igt@xe_evict@evict-beng-cm-threads-small:
    - shard-lnl:          NOTRUN -> [SKIP][318] ([Intel XE#688]) +4 other tests skip
   [318]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@xe_evict@evict-beng-cm-threads-small.html

  * igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][319] ([Intel XE#2322]) +3 other tests skip
   [319]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-userptr-invalidate.html

  * igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate:
    - shard-lnl:          NOTRUN -> [SKIP][320] ([Intel XE#1392]) +3 other tests skip
   [320]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@xe_exec_basic@multigpu-no-exec-userptr-invalidate.html

  * igt@xe_exec_basic@once-bindexecqueue-userptr-invalidate-race:
    - shard-bmg:          [PASS][321] -> [SKIP][322] ([Intel XE#6703]) +362 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@xe_exec_basic@once-bindexecqueue-userptr-invalidate-race.html
   [322]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_exec_basic@once-bindexecqueue-userptr-invalidate-race.html

  * igt@xe_exec_compute_mode@twice-basic:
    - shard-bmg:          [PASS][323] -> [SKIP][324] ([Intel XE#6557] / [Intel XE#6703]) +2 other tests skip
   [323]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@xe_exec_compute_mode@twice-basic.html
   [324]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_exec_compute_mode@twice-basic.html

  * igt@xe_exec_multi_queue@many-execs-preempt-mode-dyn-priority:
    - shard-lnl:          NOTRUN -> [SKIP][325] ([Intel XE#6874]) +13 other tests skip
   [325]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@xe_exec_multi_queue@many-execs-preempt-mode-dyn-priority.html

  * igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr-invalidate:
    - shard-bmg:          NOTRUN -> [SKIP][326] ([Intel XE#6874]) +18 other tests skip
   [326]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-9/igt@xe_exec_multi_queue@many-execs-preempt-mode-fault-userptr-invalidate.html

  * igt@xe_exec_system_allocator@many-64k-mmap-free-huge-nomemset:
    - shard-bmg:          NOTRUN -> [SKIP][327] ([Intel XE#5007])
   [327]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@xe_exec_system_allocator@many-64k-mmap-free-huge-nomemset.html

  * igt@xe_exec_system_allocator@many-mmap-new-huge-nomemset:
    - shard-bmg:          NOTRUN -> [SKIP][328] ([Intel XE#4943]) +10 other tests skip
   [328]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-7/igt@xe_exec_system_allocator@many-mmap-new-huge-nomemset.html

  * igt@xe_exec_system_allocator@process-many-large-execqueues-mmap-huge-nomemset:
    - shard-lnl:          NOTRUN -> [SKIP][329] ([Intel XE#4943]) +6 other tests skip
   [329]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-5/igt@xe_exec_system_allocator@process-many-large-execqueues-mmap-huge-nomemset.html

  * igt@xe_exec_system_allocator@threads-many-mmap-remap:
    - shard-bmg:          NOTRUN -> [SKIP][330] ([Intel XE#6557] / [Intel XE#6703])
   [330]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_exec_system_allocator@threads-many-mmap-remap.html

  * igt@xe_oa@oa-tlb-invalidate:
    - shard-lnl:          NOTRUN -> [SKIP][331] ([Intel XE#2248])
   [331]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@xe_oa@oa-tlb-invalidate.html

  * igt@xe_pm@s4-d3cold-basic-exec:
    - shard-lnl:          NOTRUN -> [SKIP][332] ([Intel XE#2284] / [Intel XE#366])
   [332]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@xe_pm@s4-d3cold-basic-exec.html

  * igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_compute0:
    - shard-lnl:          [PASS][333] -> [FAIL][334] ([Intel XE#6251])
   [333]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-3/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_compute0.html
   [334]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@xe_pmu@engine-activity-accuracy-90@engine-drm_xe_engine_class_compute0.html

  * igt@xe_pmu@fn-engine-activity-sched-if-idle:
    - shard-lnl:          NOTRUN -> [SKIP][335] ([Intel XE#4650])
   [335]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-1/igt@xe_pmu@fn-engine-activity-sched-if-idle.html

  * igt@xe_pxp@pxp-stale-bo-exec-post-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][336] ([Intel XE#4733]) +1 other test skip
   [336]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@xe_pxp@pxp-stale-bo-exec-post-suspend.html

  * igt@xe_query@multigpu-query-invalid-query:
    - shard-bmg:          NOTRUN -> [SKIP][337] ([Intel XE#944]) +2 other tests skip
   [337]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@xe_query@multigpu-query-invalid-query.html

  * igt@xe_query@multigpu-query-uc-fw-version-guc:
    - shard-lnl:          NOTRUN -> [SKIP][338] ([Intel XE#944])
   [338]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@xe_query@multigpu-query-uc-fw-version-guc.html

  * igt@xe_sriov_auto_provisioning@exclusive-ranges:
    - shard-lnl:          NOTRUN -> [SKIP][339] ([Intel XE#4130])
   [339]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-7/igt@xe_sriov_auto_provisioning@exclusive-ranges.html

  * igt@xe_sriov_flr@flr-vfs-parallel:
    - shard-bmg:          NOTRUN -> [FAIL][340] ([Intel XE#5937]) +2 other tests fail
   [340]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@xe_sriov_flr@flr-vfs-parallel.html
    - shard-lnl:          NOTRUN -> [SKIP][341] ([Intel XE#4273])
   [341]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@xe_sriov_flr@flr-vfs-parallel.html

  * igt@xe_sriov_vram@vf-access-beyond:
    - shard-lnl:          NOTRUN -> [SKIP][342] ([Intel XE#6376])
   [342]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-3/igt@xe_sriov_vram@vf-access-beyond.html

  
#### Possible fixes ####

  * igt@fbdev@unaligned-write:
    - shard-bmg:          [SKIP][343] ([Intel XE#2134]) -> [PASS][344]
   [343]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@fbdev@unaligned-write.html
   [344]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@fbdev@unaligned-write.html

  * igt@intel_hwmon@hwmon-read:
    - shard-bmg:          [SKIP][345] ([Intel XE#5177] / [Intel XE#6703]) -> [PASS][346]
   [345]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@intel_hwmon@hwmon-read.html
   [346]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-9/igt@intel_hwmon@hwmon-read.html

  * igt@kms_setmode@basic@pipe-b-edp-1:
    - shard-lnl:          [FAIL][347] ([Intel XE#6361]) -> [PASS][348] +2 other tests pass
   [347]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@kms_setmode@basic@pipe-b-edp-1.html
   [348]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-4/igt@kms_setmode@basic@pipe-b-edp-1.html

  * igt@xe_exec_fault_mode@twice-bindexecqueue-rebind-imm:
    - shard-bmg:          [SKIP][349] ([Intel XE#6557] / [Intel XE#6703]) -> [PASS][350] +2 other tests pass
   [349]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_exec_fault_mode@twice-bindexecqueue-rebind-imm.html
   [350]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@xe_exec_fault_mode@twice-bindexecqueue-rebind-imm.html

  * igt@xe_module_load@reload:
    - shard-bmg:          [FAIL][351] -> [PASS][352]
   [351]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_module_load@reload.html
   [352]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-9/igt@xe_module_load@reload.html

  * igt@xe_pmu@engine-activity-accuracy-50@engine-drm_xe_engine_class_video_decode0:
    - shard-lnl:          [FAIL][353] ([Intel XE#6251]) -> [PASS][354] +1 other test pass
   [353]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-lnl-2/igt@xe_pmu@engine-activity-accuracy-50@engine-drm_xe_engine_class_video_decode0.html
   [354]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-lnl-2/igt@xe_pmu@engine-activity-accuracy-50@engine-drm_xe_engine_class_video_decode0.html

  * igt@xe_sriov_flr@flr-vf1-clear:
    - shard-bmg:          [FAIL][355] ([Intel XE#6569]) -> [PASS][356]
   [355]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@xe_sriov_flr@flr-vf1-clear.html
   [356]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-7/igt@xe_sriov_flr@flr-vf1-clear.html

  * igt@xe_sriov_vram@vf-access-provisioned:
    - shard-bmg:          [SKIP][357] ([Intel XE#6703]) -> [PASS][358] +573 other tests pass
   [357]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_sriov_vram@vf-access-provisioned.html
   [358]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@xe_sriov_vram@vf-access-provisioned.html

  
#### Warnings ####

  * igt@kms_big_fb@4-tiled-16bpp-rotate-90:
    - shard-bmg:          [SKIP][359] ([Intel XE#2327]) -> [SKIP][360] ([Intel XE#6703]) +2 other tests skip
   [359]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
   [360]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
    - shard-bmg:          [SKIP][361] ([Intel XE#1124]) -> [SKIP][362] ([Intel XE#6703]) +5 other tests skip
   [361]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-8/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
   [362]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html

  * igt@kms_big_fb@yf-tiled-addfb-size-overflow:
    - shard-bmg:          [SKIP][363] ([Intel XE#610]) -> [SKIP][364] ([Intel XE#6703])
   [363]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-1/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html
   [364]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html

  * igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p:
    - shard-bmg:          [SKIP][365] ([Intel XE#2314] / [Intel XE#2894]) -> [SKIP][366] ([Intel XE#6703]) +1 other test skip
   [365]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html
   [366]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_bw@connected-linear-tiling-3-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-2-displays-2560x1440p:
    - shard-bmg:          [SKIP][367] ([Intel XE#367]) -> [SKIP][368] ([Intel XE#6703])
   [367]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_bw@linear-tiling-2-displays-2560x1440p.html
   [368]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_bw@linear-tiling-2-displays-2560x1440p.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc:
    - shard-bmg:          [SKIP][369] ([Intel XE#2887]) -> [SKIP][370] ([Intel XE#6703]) +10 other tests skip
   [369]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html
   [370]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-rc-ccs-cc.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
    - shard-bmg:          [SKIP][371] ([Intel XE#3432]) -> [SKIP][372] ([Intel XE#6703])
   [371]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
   [372]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html

  * igt@kms_chamelium_color@ctm-green-to-red:
    - shard-bmg:          [SKIP][373] ([Intel XE#2325]) -> [SKIP][374] ([Intel XE#6703])
   [373]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_chamelium_color@ctm-green-to-red.html
   [374]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_chamelium_color@ctm-green-to-red.html

  * igt@kms_chamelium_hpd@hdmi-hpd-after-suspend:
    - shard-bmg:          [SKIP][375] ([Intel XE#2252]) -> [SKIP][376] ([Intel XE#6703]) +5 other tests skip
   [375]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-7/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html
   [376]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html

  * igt@kms_content_protection@dp-mst-lic-type-0:
    - shard-bmg:          [SKIP][377] ([Intel XE#2390]) -> [SKIP][378] ([Intel XE#6703])
   [377]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-7/igt@kms_content_protection@dp-mst-lic-type-0.html
   [378]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_content_protection@dp-mst-lic-type-0.html

  * igt@kms_content_protection@lic-type-1:
    - shard-bmg:          [SKIP][379] ([Intel XE#2341]) -> [SKIP][380] ([Intel XE#6703])
   [379]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@kms_content_protection@lic-type-1.html
   [380]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_content_protection@lic-type-1.html

  * igt@kms_cursor_crc@cursor-onscreen-32x10:
    - shard-bmg:          [SKIP][381] ([Intel XE#2320]) -> [SKIP][382] ([Intel XE#6703]) +2 other tests skip
   [381]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_cursor_crc@cursor-onscreen-32x10.html
   [382]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_cursor_crc@cursor-onscreen-32x10.html

  * igt@kms_cursor_crc@cursor-sliding-512x170:
    - shard-bmg:          [SKIP][383] ([Intel XE#2321]) -> [SKIP][384] ([Intel XE#6703]) +2 other tests skip
   [383]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_cursor_crc@cursor-sliding-512x170.html
   [384]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_cursor_crc@cursor-sliding-512x170.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-bmg:          [SKIP][385] ([Intel XE#2244]) -> [SKIP][386] ([Intel XE#6703])
   [385]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-7/igt@kms_dsc@dsc-with-output-formats.html
   [386]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_fbcon_fbt@fbc:
    - shard-bmg:          [SKIP][387] ([Intel XE#6703]) -> [SKIP][388] ([Intel XE#4156])
   [387]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@kms_fbcon_fbt@fbc.html
   [388]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@kms_fbcon_fbt@fbc.html

  * igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible:
    - shard-bmg:          [SKIP][389] ([Intel XE#2316]) -> [SKIP][390] ([Intel XE#6703]) +1 other test skip
   [389]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html
   [390]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_flip@2x-flip-vs-dpms-on-nop-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-bmg:          [SKIP][391] ([Intel XE#2293] / [Intel XE#2380]) -> [SKIP][392] ([Intel XE#6703]) +1 other test skip
   [391]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
   [392]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt:
    - shard-bmg:          [SKIP][393] ([Intel XE#4141]) -> [SKIP][394] ([Intel XE#6703]) +3 other tests skip
   [393]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html
   [394]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt:
    - shard-bmg:          [SKIP][395] ([Intel XE#2311]) -> [SKIP][396] ([Intel XE#6703]) +16 other tests skip
   [395]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt.html
   [396]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcdrrs-2p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-rte:
    - shard-bmg:          [SKIP][397] ([Intel XE#2312]) -> [SKIP][398] ([Intel XE#6703]) +3 other tests skip
   [397]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-rte.html
   [398]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-rte.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-bmg:          [SKIP][399] ([Intel XE#2313]) -> [SKIP][400] ([Intel XE#6703]) +15 other tests skip
   [399]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc.html
   [400]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][401] ([Intel XE#3544]) -> [SKIP][402] ([Intel XE#6703])
   [401]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_hdr@brightness-with-hdr.html
   [402]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-bmg:          [SKIP][403] ([Intel XE#2486]) -> [SKIP][404] ([Intel XE#6703])
   [403]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_panel_fitting@atomic-fastset.html
   [404]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5:
    - shard-bmg:          [SKIP][405] ([Intel XE#6886]) -> [SKIP][406] ([Intel XE#6703])
   [405]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_plane_scaling@planes-downscale-factor-0-5.html
   [406]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_plane_scaling@planes-downscale-factor-0-5.html

  * igt@kms_pm_dc@dc5-retention-flops:
    - shard-bmg:          [SKIP][407] ([Intel XE#3309]) -> [SKIP][408] ([Intel XE#6703])
   [407]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_pm_dc@dc5-retention-flops.html
   [408]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_pm_dc@dc5-retention-flops.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-bmg:          [SKIP][409] ([Intel XE#2499]) -> [SKIP][410] ([Intel XE#6703])
   [409]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_pm_lpsp@kms-lpsp.html
   [410]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf:
    - shard-bmg:          [SKIP][411] ([Intel XE#1406] / [Intel XE#1489]) -> [SKIP][412] ([Intel XE#1406] / [Intel XE#6703]) +1 other test skip
   [411]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-1/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html
   [412]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_psr2_sf@pr-cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr@fbc-psr2-cursor-plane-move:
    - shard-bmg:          [SKIP][413] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) -> [SKIP][414] ([Intel XE#1406] / [Intel XE#6703]) +3 other tests skip
   [413]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@kms_psr@fbc-psr2-cursor-plane-move.html
   [414]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_psr@fbc-psr2-cursor-plane-move.html

  * igt@kms_psr@psr2-primary-render:
    - shard-bmg:          [SKIP][415] ([Intel XE#1406] / [Intel XE#2234]) -> [SKIP][416] ([Intel XE#1406] / [Intel XE#6703])
   [415]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_psr@psr2-primary-render.html
   [416]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_psr@psr2-primary-render.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-bmg:          [SKIP][417] ([Intel XE#2330]) -> [SKIP][418] ([Intel XE#6703])
   [417]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
   [418]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-bmg:          [SKIP][419] ([Intel XE#3414] / [Intel XE#3904]) -> [SKIP][420] ([Intel XE#6703]) +2 other tests skip
   [419]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-8/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html
   [420]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-bmg:          [SKIP][421] ([Intel XE#6703]) -> [SKIP][422] ([Intel XE#1435])
   [421]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@kms_setmode@basic-clone-single-crtc.html
   [422]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-2/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_sharpness_filter@filter-basic:
    - shard-bmg:          [SKIP][423] ([Intel XE#6503]) -> [SKIP][424] ([Intel XE#6703]) +1 other test skip
   [423]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@kms_sharpness_filter@filter-basic.html
   [424]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_sharpness_filter@filter-basic.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-bmg:          [SKIP][425] ([Intel XE#2426]) -> [SKIP][426] ([Intel XE#6703])
   [425]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
   [426]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_tv_load_detect@load-detect:
    - shard-bmg:          [SKIP][427] ([Intel XE#2450]) -> [SKIP][428] ([Intel XE#6557] / [Intel XE#6703])
   [427]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_tv_load_detect@load-detect.html
   [428]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_tv_load_detect@load-detect.html

  * igt@kms_vrr@flip-suspend:
    - shard-bmg:          [SKIP][429] ([Intel XE#1499]) -> [SKIP][430] ([Intel XE#6703]) +1 other test skip
   [429]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@kms_vrr@flip-suspend.html
   [430]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@kms_vrr@flip-suspend.html

  * igt@xe_compute@ccs-mode-compute-kernel:
    - shard-bmg:          [SKIP][431] ([Intel XE#6599]) -> [SKIP][432] ([Intel XE#6703])
   [431]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-10/igt@xe_compute@ccs-mode-compute-kernel.html
   [432]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_compute@ccs-mode-compute-kernel.html

  * igt@xe_eudebug@attach-debug-metadata:
    - shard-bmg:          [SKIP][433] ([Intel XE#4837]) -> [SKIP][434] ([Intel XE#6703]) +4 other tests skip
   [433]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-1/igt@xe_eudebug@attach-debug-metadata.html
   [434]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_eudebug@attach-debug-metadata.html

  * igt@xe_eudebug@vma-ufence:
    - shard-bmg:          [SKIP][435] ([Intel XE#6703]) -> [SKIP][436] ([Intel XE#4837]) +11 other tests skip
   [435]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_eudebug@vma-ufence.html
   [436]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@xe_eudebug@vma-ufence.html

  * igt@xe_eudebug_online@breakpoint-many-sessions-single-tile:
    - shard-bmg:          [SKIP][437] ([Intel XE#4837] / [Intel XE#6665]) -> [SKIP][438] ([Intel XE#6703]) +3 other tests skip
   [437]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@xe_eudebug_online@breakpoint-many-sessions-single-tile.html
   [438]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_eudebug_online@breakpoint-many-sessions-single-tile.html

  * igt@xe_eudebug_online@stopped-thread:
    - shard-bmg:          [SKIP][439] ([Intel XE#6703]) -> [SKIP][440] ([Intel XE#4837] / [Intel XE#6665]) +4 other tests skip
   [439]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_eudebug_online@stopped-thread.html
   [440]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@xe_eudebug_online@stopped-thread.html

  * igt@xe_evict@evict-beng-mixed-many-threads-small:
    - shard-bmg:          [SKIP][441] ([Intel XE#6703]) -> [INCOMPLETE][442] ([Intel XE#6321])
   [441]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_evict@evict-beng-mixed-many-threads-small.html
   [442]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@xe_evict@evict-beng-mixed-many-threads-small.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr:
    - shard-bmg:          [SKIP][443] ([Intel XE#6703]) -> [SKIP][444] ([Intel XE#2322]) +9 other tests skip
   [443]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html
   [444]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-8/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-bindexecqueue-userptr.html

  * igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind:
    - shard-bmg:          [SKIP][445] ([Intel XE#2322]) -> [SKIP][446] ([Intel XE#6703]) +5 other tests skip
   [445]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-7/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind.html
   [446]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_exec_basic@multigpu-many-execqueues-many-vm-null-rebind.html

  * igt@xe_exec_multi_queue@many-queues-preempt-mode-close-fd:
    - shard-bmg:          [SKIP][447] ([Intel XE#6874]) -> [SKIP][448] ([Intel XE#6703]) +18 other tests skip
   [447]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@xe_exec_multi_queue@many-queues-preempt-mode-close-fd.html
   [448]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_exec_multi_queue@many-queues-preempt-mode-close-fd.html

  * igt@xe_exec_multi_queue@two-queues-priority:
    - shard-bmg:          [SKIP][449] ([Intel XE#6703]) -> [SKIP][450] ([Intel XE#6874]) +33 other tests skip
   [449]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_exec_multi_queue@two-queues-priority.html
   [450]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-7/igt@xe_exec_multi_queue@two-queues-priority.html

  * igt@xe_exec_system_allocator@many-64k-mmap-new-huge-nomemset:
    - shard-bmg:          [SKIP][451] ([Intel XE#5007]) -> [SKIP][452] ([Intel XE#6703])
   [451]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-9/igt@xe_exec_system_allocator@many-64k-mmap-new-huge-nomemset.html
   [452]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_exec_system_allocator@many-64k-mmap-new-huge-nomemset.html

  * igt@xe_exec_system_allocator@process-many-large-mmap-free-huge-nomemset:
    - shard-bmg:          [SKIP][453] ([Intel XE#6703]) -> [SKIP][454] ([Intel XE#4943]) +19 other tests skip
   [453]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_exec_system_allocator@process-many-large-mmap-free-huge-nomemset.html
   [454]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@xe_exec_system_allocator@process-many-large-mmap-free-huge-nomemset.html

  * igt@xe_exec_system_allocator@threads-many-mmap-new-huge-nomemset:
    - shard-bmg:          [SKIP][455] ([Intel XE#4943]) -> [SKIP][456] ([Intel XE#6703]) +17 other tests skip
   [455]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@xe_exec_system_allocator@threads-many-mmap-new-huge-nomemset.html
   [456]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_exec_system_allocator@threads-many-mmap-new-huge-nomemset.html

  * igt@xe_mmap@small-bar:
    - shard-bmg:          [SKIP][457] ([Intel XE#6703]) -> [SKIP][458] ([Intel XE#586])
   [457]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_mmap@small-bar.html
   [458]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@xe_mmap@small-bar.html

  * igt@xe_oa@oa-tlb-invalidate:
    - shard-bmg:          [SKIP][459] ([Intel XE#6703]) -> [SKIP][460] ([Intel XE#2248])
   [459]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_oa@oa-tlb-invalidate.html
   [460]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-7/igt@xe_oa@oa-tlb-invalidate.html

  * igt@xe_pat@pat-index-xelp:
    - shard-bmg:          [SKIP][461] ([Intel XE#2245]) -> [SKIP][462] ([Intel XE#6703])
   [461]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-3/igt@xe_pat@pat-index-xelp.html
   [462]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_pat@pat-index-xelp.html

  * igt@xe_pm@d3cold-mmap-vram:
    - shard-bmg:          [SKIP][463] ([Intel XE#6703]) -> [SKIP][464] ([Intel XE#2284])
   [463]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_pm@d3cold-mmap-vram.html
   [464]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-1/igt@xe_pm@d3cold-mmap-vram.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-suspend:
    - shard-bmg:          [SKIP][465] ([Intel XE#6703]) -> [SKIP][466] ([Intel XE#4733])
   [465]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_pxp@pxp-stale-bo-bind-post-suspend.html
   [466]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-3/igt@xe_pxp@pxp-stale-bo-bind-post-suspend.html

  * igt@xe_pxp@pxp-stale-bo-exec-post-rpm:
    - shard-bmg:          [SKIP][467] ([Intel XE#4733]) -> [SKIP][468] ([Intel XE#6703]) +2 other tests skip
   [467]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-4/igt@xe_pxp@pxp-stale-bo-exec-post-rpm.html
   [468]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_pxp@pxp-stale-bo-exec-post-rpm.html

  * igt@xe_query@multigpu-query-hwconfig:
    - shard-bmg:          [SKIP][469] ([Intel XE#6703]) -> [SKIP][470] ([Intel XE#944]) +2 other tests skip
   [469]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_query@multigpu-query-hwconfig.html
   [470]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-10/igt@xe_query@multigpu-query-hwconfig.html

  * igt@xe_query@multigpu-query-invalid-cs-cycles:
    - shard-bmg:          [SKIP][471] ([Intel XE#944]) -> [SKIP][472] ([Intel XE#6703]) +2 other tests skip
   [471]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-2/igt@xe_query@multigpu-query-invalid-cs-cycles.html
   [472]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-5/igt@xe_query@multigpu-query-invalid-cs-cycles.html

  * igt@xe_sriov_flr@flr-each-isolation:
    - shard-bmg:          [SKIP][473] ([Intel XE#6557] / [Intel XE#6703]) -> [FAIL][474] ([Intel XE#5937])
   [473]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8670/shard-bmg-5/igt@xe_sriov_flr@flr-each-isolation.html
   [474]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/shard-bmg-4/igt@xe_sriov_flr@flr-each-isolation.html

  
  [Intel XE#1091]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1091
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1125]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1125
  [Intel XE#1127]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1127
  [Intel XE#1131]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1131
  [Intel XE#1137]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1137
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
  [Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
  [Intel XE#1397]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1397
  [Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
  [Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
  [Intel XE#1407]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1407
  [Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
  [Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
  [Intel XE#1428]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1428
  [Intel XE#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [Intel XE#1439]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1439
  [Intel XE#1447]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1447
  [Intel XE#1450]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1450
  [Intel XE#1466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1466
  [Intel XE#1467]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1467
  [Intel XE#1468]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1468
  [Intel XE#1469]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1469
  [Intel XE#1477]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1477
  [Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
  [Intel XE#1499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1499
  [Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
  [Intel XE#1512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1512
  [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
  [Intel XE#2029]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2029
  [Intel XE#2134]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2134
  [Intel XE#2168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2168
  [Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
  [Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#2245]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2245
  [Intel XE#2248]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2248
  [Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2284]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2284
  [Intel XE#2286]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2286
  [Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
  [Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
  [Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
  [Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
  [Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
  [Intel XE#2321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2321
  [Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
  [Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
  [Intel XE#2327]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2327
  [Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
  [Intel XE#2330]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2330
  [Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2350]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2350
  [Intel XE#2352]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2352
  [Intel XE#2370]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2370
  [Intel XE#2372]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2372
  [Intel XE#2375]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2375
  [Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2390
  [Intel XE#2391]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2391
  [Intel XE#2392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2392
  [Intel XE#2414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2414
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2450]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2450
  [Intel XE#2486]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2486
  [Intel XE#2499]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2499
  [Intel XE#2505]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2505
  [Intel XE#2568]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2568
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
  [Intel XE#2724]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2724
  [Intel XE#2849]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2849
  [Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
  [Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
  [Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
  [Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
  [Intel XE#2925]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2925
  [Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
  [Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
  [Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
  [Intel XE#3141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3141
  [Intel XE#3149]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3149
  [Intel XE#323]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/323
  [Intel XE#3278]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3278
  [Intel XE#3279]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3279
  [Intel XE#3307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3307
  [Intel XE#3309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3309
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3414]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3414
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3433]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3433
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
  [Intel XE#3658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3658
  [Intel XE#366]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/366
  [Intel XE#367]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/367
  [Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
  [Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
  [Intel XE#3904]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3904
  [Intel XE#4130]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4130
  [Intel XE#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [Intel XE#4156]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4156
  [Intel XE#4210]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4210
  [Intel XE#4273]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4273
  [Intel XE#4294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4294
  [Intel XE#4298]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4298
  [Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
  [Intel XE#4354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4354
  [Intel XE#4417]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4417
  [Intel XE#4418]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4418
  [Intel XE#4422]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4422
  [Intel XE#4459]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4459
  [Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
  [Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
  [Intel XE#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
  [Intel XE#4658]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4658
  [Intel XE#4683]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4683
  [Intel XE#4689]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4689
  [Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
  [Intel XE#5007]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5007
  [Intel XE#5020]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5020
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5177]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5177
  [Intel XE#5195]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5195
  [Intel XE#586]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/586
  [Intel XE#5937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5937
  [Intel XE#599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/599
  [Intel XE#6010]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6010
  [Intel XE#6054]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6054
  [Intel XE#607]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/607
  [Intel XE#610]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/610
  [Intel XE#6251]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6251
  [Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
  [Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
  [Intel XE#6361]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6361
  [Intel XE#6376]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6376
  [Intel XE#6390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6390
  [Intel XE#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#6507]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6507
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#6557]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6557
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#6569]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6569
  [Intel XE#6599]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6599
  [Intel XE#664]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/664
  [Intel XE#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665
  [Intel XE#6692]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6692
  [Intel XE#6693]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6693
  [Intel XE#6703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6703
  [Intel XE#6705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6705
  [Intel XE#6706]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6706
  [Intel XE#6707]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6707
  [Intel XE#6740]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6740
  [Intel XE#6743]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6743
  [Intel XE#6813]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6813
  [Intel XE#6874]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6874
  [Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
  [Intel XE#6886]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6886
  [Intel XE#6900]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6900
  [Intel XE#6901]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6901
  [Intel XE#702]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/702
  [Intel XE#703]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/703
  [Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
  [Intel XE#736]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/736
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [Intel XE#836]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/836
  [Intel XE#870]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/870
  [Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944


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

  * IGT: IGT_8670 -> IGTPW_14230

  IGTPW_14230: 14230
  IGT_8670: 8670
  xe-4259-605176fe40c828b491a1532367df157529895b87: 605176fe40c828b491a1532367df157529895b87

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14230/index.html

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

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

* Re: [PATCH i-g-t v2 04/11] lib/kms: Get rid of the 'p' plane index variable
  2025-12-18 15:47   ` [PATCH i-g-t v2 " Ville Syrjala
@ 2025-12-19 10:55     ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-19 10:55 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Thu, 18 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The 'p' thing used to track the next free plane slot is annoying.
> Get rid of it by just initializing the plane indexes to -1 to
> indicate a free slot at the start, and then do a straightforward
> search for the next free slot. And for good measure make sure all
> the -1's have disappeared at the end.
>
> v2: Remove spurious whitespace (Jani)
>     Fix the post init plane->index assert (Jani/CI)
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  lib/igt_kms.c | 42 +++++++++++++++++++++++++-----------------
>  1 file changed, 25 insertions(+), 17 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 72c91fb5da76..803a1e926b10 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3057,7 +3057,7 @@ static void igt_crtc_init(igt_display_t *display,
>  {
>  	igt_crtc_t *pipe = igt_crtc_for_pipe(display, i);
>  	igt_plane_t *plane;
> -	int p = 1, crtc_mask = 0;
> +	int crtc_mask = 0;
>  	int j, type;
>  
>  	pipe->display = display;
> @@ -3085,10 +3085,14 @@ static void igt_crtc_init(igt_display_t *display,
>  	igt_assert_f(pipe->planes, "Failed to allocate memory for %d planes\n",
>  		     pipe->n_planes);
>  
> +	for (j = 0; j < pipe->n_planes; j++)
> +		pipe->planes[j].index = -1;
> +
>  	/* add the planes that can be used with that pipe */
>  	for (j = 0; j < display->n_planes; j++) {
>  		igt_plane_t *global_plane = &display->planes[j];
>  		drmModePlane *drm_plane = global_plane->drm_plane;
> +		int index;
>  
>  		if (!(drm_plane->possible_crtcs & crtc_mask))
>  			continue;
> @@ -3096,29 +3100,36 @@ static void igt_crtc_init(igt_display_t *display,
>  		type = global_plane->type;
>  
>  		if (type == DRM_PLANE_TYPE_PRIMARY && pipe->plane_primary == -1) {
> -			plane = &pipe->planes[0];
> -			plane->index = 0;
> -			pipe->plane_primary = 0;
> +			index = 0;
> +
> +			pipe->plane_primary = index;
>  			pipe->num_primary_planes++;
>  		} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->plane_cursor == -1) {
> -			plane = &pipe->planes[pipe->n_planes - 1];
> -			plane->index = pipe->n_planes - 1;
> -			pipe->plane_cursor = pipe->n_planes - 1;
> +			index = pipe->n_planes - 1;
> +
> +			pipe->plane_cursor = index;
>  			display->has_cursor_plane = true;
>  		} else {
> +			for (index = 1; index < pipe->n_planes; index++) {
> +				if (pipe->planes[index].index < 0)
> +					break;
> +			}
> +
>  			/*
>  			 * Increment num_primary_planes for any extra
>  			 * primary plane found.
>  			 */
>  			if (type == DRM_PLANE_TYPE_PRIMARY)
>  				pipe->num_primary_planes++;
> -
> -			plane = &pipe->planes[p];
> -			plane->index = p++;
>  		}
>  
> -		igt_assert_f(plane->index < pipe->n_planes,
> -			     "n_planes < plane->index failed\n");
> +		igt_assert_lt(index, pipe->n_planes);
> +
> +		plane = &pipe->planes[index];
> +
> +		igt_assert_lt(plane->index, 0);
> +
> +		plane->index = index;
>  		plane->type = type;
>  		plane->pipe = pipe;
>  		plane->drm_plane = drm_plane;
> @@ -3143,11 +3154,8 @@ static void igt_crtc_init(igt_display_t *display,
>  	 */
>  	igt_assert_eq(pipe->plane_primary, 0);
>  
> -	/* Check that we filled every slot exactly once */
> -	if (display->has_cursor_plane)
> -		igt_assert_eq(p, pipe->n_planes - 1);
> -	else
> -		igt_assert_eq(p, pipe->n_planes);
> +	for (j = 0; j < pipe->n_planes; j++)
> +		igt_assert_lte(0, pipe->planes[j].index);
>  }
>  
>  /**

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 09/11] lib/kms: Pimp the priamry plane swapping
  2025-12-17 15:37 ` [PATCH i-g-t 09/11] lib/kms: Pimp the priamry " Ville Syrjala
@ 2025-12-19 12:00   ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-19 12:00 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Do the primary plane swap a bit more cleanly with a pair of
> igt_swap()s. And while at it sprinkle some asserts around
> to make sure we didn't screw anything up.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Subject, *primary

> ---
>  lib/igt_kms.c | 20 ++++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index ef3215332e29..69a430f01e21 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3025,7 +3025,6 @@ void igt_display_reset_outputs(igt_display_t *display)
>  			igt_plane_t *old_primary = &pipe->planes[0];
>  			igt_plane_t *new_primary =
>  				igt_get_assigned_primary(output, pipe);
> -			int new_primary_index = new_primary->index;
>  
>  			/*
>  			 * If the driver-assigned primary plane isn't at
> @@ -3034,12 +3033,21 @@ void igt_display_reset_outputs(igt_display_t *display)
>  			 *
>  			 * This way, the primary plane is always at index 0.
>  			 */
> -			if (new_primary_index != 0) {
> -				new_primary->index = 0;
> -				old_primary->index = new_primary_index;
> +			if (new_primary->index != 0) {
> +				igt_assert(old_primary != new_primary);
>  
> -				igt_swap(pipe->planes[new_primary_index],
> -					 pipe->planes[0]);
> +				igt_assert_eq(old_primary->index, 0);
> +				igt_assert_neq(new_primary->index, 0);

Nitpick, this is redundant as we're in new_primary->index != 0 branch,
but then again it's symmetric with the post-swap checks. *shrug*.

Anyway I'm glad the asserts are there, because the swaps on *&foo are a
bit hard for the reader.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> +
> +				igt_swap(*old_primary, *new_primary);
> +				igt_swap(old_primary->index, new_primary->index);
> +
> +				igt_assert_neq(old_primary->index, 0);
> +				igt_assert_eq(new_primary->index, 0);
> +			} else {
> +				igt_assert(old_primary == new_primary);
> +
> +				igt_assert_eq(old_primary->index, 0);
>  			}
>  		}
>  	}

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 10/11] lib/kms: Extract plane_type_index()
  2025-12-17 15:37 ` [PATCH i-g-t 10/11] lib/kms: Extract plane_type_index() Ville Syrjala
@ 2025-12-19 12:08   ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-19 12:08 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Extract the duplicated plane_type->index stuff into a helper.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  lib/igt_kms.c | 26 ++++++++++++++++----------
>  1 file changed, 16 insertions(+), 10 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 69a430f01e21..4f30732bf1bb 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3055,6 +3055,18 @@ void igt_display_reset_outputs(igt_display_t *display)
>  	drmModeFreeResources(resources);
>  }
>  
> +static int plane_type_index(igt_crtc_t *crtc, int type)
> +{
> +	switch (type) {
> +	case DRM_PLANE_TYPE_PRIMARY:
> +		return 0;
> +	case DRM_PLANE_TYPE_CURSOR:
> +		return crtc->n_planes - 1;
> +	default:
> +		return -1;
> +	}
> +}
> +
>  static void igt_crtc_plane_init(igt_display_t *display,
>  				igt_crtc_t *pipe,
>  				drmModeRes *resources,
> @@ -3063,15 +3075,11 @@ static void igt_crtc_plane_init(igt_display_t *display,
>  	drmModePlane *drm_plane = global_plane->drm_plane;
>  	int type = global_plane->type;
>  	igt_plane_t *plane;
> -	int index;
> -
> -	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->planes[0].index < 0) {
> -		index = 0;
> +	int index = plane_type_index(pipe, type);
>  
> +	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->planes[index].index < 0) {
>  		pipe->num_primary_planes++;
> -	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->planes[pipe->n_planes - 1].index < 0) {
> -		index = pipe->n_planes - 1;
> -
> +	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->planes[index].index < 0) {
>  		display->has_cursor_plane = true;
>  	} else {
>  		for (index = 1; index < pipe->n_planes; index++) {
> @@ -3572,10 +3580,8 @@ igt_plane_t *igt_pipe_get_plane_type(igt_crtc_t *pipe, int plane_type)
>  
>  	switch(plane_type) {
>  	case DRM_PLANE_TYPE_CURSOR:
> -		plane_idx = pipe->n_planes - 1;
> -		break;
>  	case DRM_PLANE_TYPE_PRIMARY:
> -		plane_idx = 0;
> +		plane_idx = plane_type_index(pipe, plane_type);
>  		break;
>  	case DRM_PLANE_TYPE_OVERLAY:
>  		for(i = 0; i < pipe->n_planes; i++)

-- 
Jani Nikula, Intel

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

* Re: [PATCH i-g-t 11/11] lib/kms: Streamline plane index handling further
  2025-12-17 15:37 ` [PATCH i-g-t 11/11] lib/kms: Streamline plane index handling further Ville Syrjala
@ 2025-12-19 12:10   ` Jani Nikula
  0 siblings, 0 replies; 30+ messages in thread
From: Jani Nikula @ 2025-12-19 12:10 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On Wed, 17 Dec 2025, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Eliminate some redundant plane type checks and just rely
> on plane_type_index() knowing what it's doing.
>
> We do need to keep one plane type check to determing
> what to do with pipe->num_primary_plane and
> pipe->has_cursor_plane. But it's a bit more obvious
> what's happening there now that index stuff isn't mixed in.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  lib/igt_kms.c | 43 +++++++++++++++++++------------------------
>  1 file changed, 19 insertions(+), 24 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 4f30732bf1bb..04a86f235471 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -3075,24 +3075,26 @@ static void igt_crtc_plane_init(igt_display_t *display,
>  	drmModePlane *drm_plane = global_plane->drm_plane;
>  	int type = global_plane->type;
>  	igt_plane_t *plane;
> -	int index = plane_type_index(pipe, type);
> +	int index;
>  
> -	if (type == DRM_PLANE_TYPE_PRIMARY && pipe->planes[index].index < 0) {
> +	switch (type) {
> +	case DRM_PLANE_TYPE_PRIMARY:
>  		pipe->num_primary_planes++;
> -	} else if (type == DRM_PLANE_TYPE_CURSOR && pipe->planes[index].index < 0) {
> +		break;
> +	case DRM_PLANE_TYPE_CURSOR:
>  		display->has_cursor_plane = true;
> -	} else {
> +		break;
> +	default:
> +		break;
> +	}

Plain old if would be much shorter...

	if (type == DRM_PLANE_TYPE_PRIMARY)
		pipe->num_primary_planes++;
	else if (type == DRM_PLANE_TYPE_CURSOR)
		display->has_cursor_plane = true;

But *shrug*.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>


> +
> +	index = plane_type_index(pipe, type);
> +
> +	if (index < 0 || pipe->planes[index].index >= 0) {
>  		for (index = 1; index < pipe->n_planes; index++) {
>  			if (pipe->planes[index].index < 0)
>  				break;
>  		}
> -
> -		/*
> -		 * Increment num_primary_planes for any extra
> -		 * primary plane found.
> -		 */
> -		if (type == DRM_PLANE_TYPE_PRIMARY)
> -			pipe->num_primary_planes++;
>  	}
>  
>  	igt_assert_lt(index, pipe->n_planes);
> @@ -3576,20 +3578,13 @@ static igt_plane_t *igt_pipe_get_plane(igt_crtc_t *pipe, int plane_idx)
>   */
>  igt_plane_t *igt_pipe_get_plane_type(igt_crtc_t *pipe, int plane_type)
>  {
> -	int i, plane_idx = -1;
> +	int plane_idx = plane_type_index(pipe, plane_type);
>  
> -	switch(plane_type) {
> -	case DRM_PLANE_TYPE_CURSOR:
> -	case DRM_PLANE_TYPE_PRIMARY:
> -		plane_idx = plane_type_index(pipe, plane_type);
> -		break;
> -	case DRM_PLANE_TYPE_OVERLAY:
> -		for(i = 0; i < pipe->n_planes; i++)
> -			if (pipe->planes[i].type == DRM_PLANE_TYPE_OVERLAY)
> -			    plane_idx = i;
> -		break;
> -	default:
> -		break;
> +	if (plane_idx < 0) {
> +		for (plane_idx = 0; plane_idx < pipe->n_planes; plane_idx++) {
> +			if (pipe->planes[plane_idx].type == plane_type)
> +				break;
> +		}
>  	}
>  
>  	igt_require_f(plane_idx >= 0 && plane_idx < pipe->n_planes,

-- 
Jani Nikula, Intel

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

end of thread, other threads:[~2025-12-19 12:11 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-17 15:37 [PATCH i-g-t 00/11] lib/kms: Carve up igt_display_require() Ville Syrjala
2025-12-17 15:37 ` [PATCH i-g-t 01/11] lib/kms: Extract igt_crtc_init() Ville Syrjala
2025-12-17 19:04   ` Jani Nikula
2025-12-17 15:37 ` [PATCH i-g-t 02/11] lib/kms: Nuke 'n_planes' from igt_crtc_init() Ville Syrjala
2025-12-17 19:11   ` Jani Nikula
2025-12-17 15:37 ` [PATCH i-g-t 03/11] lib/kms: Nuke 'last_plane' " Ville Syrjala
2025-12-17 19:12   ` Jani Nikula
2025-12-17 15:37 ` [PATCH i-g-t 04/11] lib/kms: Get rid of the 'p' plane index variable Ville Syrjala
2025-12-17 19:17   ` Jani Nikula
2025-12-18 11:33   ` Jani Nikula
2025-12-18 15:47   ` [PATCH i-g-t v2 " Ville Syrjala
2025-12-19 10:55     ` Jani Nikula
2025-12-17 15:37 ` [PATCH i-g-t 05/11] lib/kms: Extract igt_crtc_plane_init() Ville Syrjala
2025-12-17 19:18   ` Jani Nikula
2025-12-18 15:48   ` [PATCH i-g-t v2 " Ville Syrjala
2025-12-17 15:37 ` [PATCH i-g-t 06/11] lib/kms: Nuke pipe->plane_primary Ville Syrjala
2025-12-18 11:37   ` Jani Nikula
2025-12-17 15:37 ` [PATCH i-g-t 07/11] lib/kms: Nuke pipe->plane_cursor Ville Syrjala
2025-12-18 11:39   ` Jani Nikula
2025-12-17 15:37 ` [PATCH i-g-t 08/11] lib/kms: Use '{old, new}_primary' variable names in plane swapping Ville Syrjala
2025-12-17 19:20   ` Jani Nikula
2025-12-17 15:37 ` [PATCH i-g-t 09/11] lib/kms: Pimp the priamry " Ville Syrjala
2025-12-19 12:00   ` Jani Nikula
2025-12-17 15:37 ` [PATCH i-g-t 10/11] lib/kms: Extract plane_type_index() Ville Syrjala
2025-12-19 12:08   ` Jani Nikula
2025-12-17 15:37 ` [PATCH i-g-t 11/11] lib/kms: Streamline plane index handling further Ville Syrjala
2025-12-19 12:10   ` Jani Nikula
2025-12-17 20:36 ` ✗ Xe.CI.BAT: failure for lib/kms: Carve up igt_display_require() Patchwork
2025-12-17 21:00 ` ✗ i915.CI.BAT: " Patchwork
2025-12-18 20:21 ` ✗ Xe.CI.Full: " Patchwork

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