public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 0/3] tests/kms_pipe_crc_basic: add mst suspend-resume test
@ 2026-02-20 15:22 Kunal Joshi
  2026-02-20 15:22 ` [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for MST outputs Kunal Joshi
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Kunal Joshi @ 2026-02-20 15:22 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

This patch series introduces MST suspend-resume test to kms_pipe_crc_basic.

The MST test validates there is no corruption/blank out
across suspend/resume cycles for all possible subsets.

Kunal Joshi (3):
  tests/intel/kms_mst_helper: Add helper to check for MST outputs
  lib/igt_kms: Fix max_non_joiner_mode_found to handle connectors below
    pipe max
  tests/kms_pipe_crc_basic: Add MST suspend-resume test

 lib/igt_kms.c                |  15 +-
 tests/intel/kms_mst_helper.c |  19 +++
 tests/intel/kms_mst_helper.h |   1 +
 tests/kms_pipe_crc_basic.c   | 314 +++++++++++++++++++++++++++++++++++
 tests/meson.build            |   3 +
 5 files changed, 347 insertions(+), 5 deletions(-)

-- 
2.43.0


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

* [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for MST outputs
  2026-02-20 15:22 [PATCH 0/3] tests/kms_pipe_crc_basic: add mst suspend-resume test Kunal Joshi
@ 2026-02-20 15:22 ` Kunal Joshi
  2026-02-23 17:40   ` Thasleem, Mohammed
  2026-02-26  4:02   ` Kandpal, Suraj
  2026-02-20 15:22 ` [PATCH i-g-t 2/3] lib/igt_kms: Fix max_non_joiner_mode_found Kunal Joshi
                   ` (5 subsequent siblings)
  6 siblings, 2 replies; 17+ messages in thread
From: Kunal Joshi @ 2026-02-20 15:22 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

Add igt_display_has_mst_output() helper function to check
if a display has at least one DP MST output connected.
This is useful for tests that need to verify MST output
availability before running.

Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/intel/kms_mst_helper.c | 19 +++++++++++++++++++
 tests/intel/kms_mst_helper.h |  1 +
 2 files changed, 20 insertions(+)

diff --git a/tests/intel/kms_mst_helper.c b/tests/intel/kms_mst_helper.c
index aef74cd31..6b986a45c 100644
--- a/tests/intel/kms_mst_helper.c
+++ b/tests/intel/kms_mst_helper.c
@@ -46,3 +46,22 @@ int igt_find_all_mst_output_in_topology(int drm_fd, igt_display_t *display,
 	}
 	return 0;
 }
+
+/*
+ * @display: pointer to #igt_display_t structure
+ *
+ * Iterates over all connected outputs and checks if any of them
+ * is a DP MST output.
+ *
+ * Returns: true if at least one MST output is found, false otherwise
+ */
+bool igt_display_has_mst_output(igt_display_t *display)
+{
+    igt_output_t *output;
+
+    for_each_connected_output(display, output) {
+        if (igt_check_output_is_dp_mst(output))
+            return true;
+    }
+    return false;
+}
diff --git a/tests/intel/kms_mst_helper.h b/tests/intel/kms_mst_helper.h
index 7391494ab..0e8ece0a0 100644
--- a/tests/intel/kms_mst_helper.h
+++ b/tests/intel/kms_mst_helper.h
@@ -12,4 +12,5 @@ int igt_find_all_mst_output_in_topology(int drm_fd, igt_display_t *display,
 					igt_output_t *output,
 					igt_output_t *mst_outputs[],
 					int *num_mst_outputs);
+bool igt_display_has_mst_output(igt_display_t *display);
 #endif
-- 
2.43.0


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

* [PATCH i-g-t 2/3] lib/igt_kms: Fix max_non_joiner_mode_found
  2026-02-20 15:22 [PATCH 0/3] tests/kms_pipe_crc_basic: add mst suspend-resume test Kunal Joshi
  2026-02-20 15:22 ` [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for MST outputs Kunal Joshi
@ 2026-02-20 15:22 ` Kunal Joshi
  2026-02-24 10:30   ` Thasleem, Mohammed
  2026-02-26  4:26   ` Kandpal, Suraj
  2026-02-20 15:22 ` [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test Kunal Joshi
                   ` (4 subsequent siblings)
  6 siblings, 2 replies; 17+ messages in thread
From: Kunal Joshi @ 2026-02-20 15:22 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

The function previously required hdisplay == max_pipe_hdisplay (5120 on
pre-Gen30), which means it returned false for any connector whose maximum
resolution is below the pipe limit (e.g. a 4K MST output on a 5K-capable
platform).

Fix this by iterating all modes and tracking the best one (highest
hdisplay, then highest clock as a tiebreaker) that does not require a
big joiner, as determined by igt_bigjoiner_possible(). This correctly
handles connectors with any max resolution.

Fixes: 3830ca6a5068 ("lib/igt_kms: Add support to check joiner mode limit")
Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 lib/igt_kms.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 5c4879604..c6678b02b 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -6904,19 +6904,24 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
 bool max_non_joiner_mode_found(int drm_fd, drmModeConnector *connector,
 			   int max_dotclock, drmModeModeInfo *mode)
 {
-	int max_hdisplay = get_max_pipe_hdisplay(drm_fd);
+	bool found = false;
 
 	for (int i = 0; i < connector->count_modes; i++) {
 		drmModeModeInfo *current_mode = &connector->modes[i];
 
-		if (current_mode->hdisplay == max_hdisplay &&
-		    current_mode->clock < max_dotclock) {
+		if (igt_bigjoiner_possible(drm_fd, current_mode, max_dotclock))
+			continue;
+
+		if (!found ||
+		    current_mode->hdisplay > mode->hdisplay ||
+		    (current_mode->hdisplay == mode->hdisplay &&
+		     current_mode->clock > mode->clock)) {
 			*mode = *current_mode;
-			return true;
+			found = true;
 		}
 	}
 
-	return false;
+	return found;
 }
 
 /* TODO: Move these lib functions to the joiner-specific library file
-- 
2.43.0


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

* [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test
  2026-02-20 15:22 [PATCH 0/3] tests/kms_pipe_crc_basic: add mst suspend-resume test Kunal Joshi
  2026-02-20 15:22 ` [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for MST outputs Kunal Joshi
  2026-02-20 15:22 ` [PATCH i-g-t 2/3] lib/igt_kms: Fix max_non_joiner_mode_found Kunal Joshi
@ 2026-02-20 15:22 ` Kunal Joshi
  2026-02-24  8:35   ` Thasleem, Mohammed
  2026-03-03  6:18   ` Kandpal, Suraj
  2026-02-20 18:31 ` ✓ Xe.CI.BAT: success for tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4) Patchwork
                   ` (3 subsequent siblings)
  6 siblings, 2 replies; 17+ messages in thread
From: Kunal Joshi @ 2026-02-20 15:22 UTC (permalink / raw)
  To: igt-dev; +Cc: Kunal Joshi

Add a new subtest mst-suspend-read-crc that verifies MST outputs
preserve display content (via CRC comparison) across S3 suspend/resume.

The test enumerates all connected DP MST topologies, and for each root
connector exercises all non-empty subsets of the discovered MST outputs.
For each subset it:
 - Assigns pipes and selects non-joiner modes
 - Fits modes within bandwidth constraints
 - Creates green FBs, commits, and collects pre-suspend CRCs
 - Suspends to memory and resumes
 - Collects post-suspend CRCs and asserts they match

v2:
- Add error handling for igt_pipe_crc_new (Thasleem)
- Improve log format with index for clarity (Thasleem)
- Order declarations in decreasing line length (Thasleem)
- Add print message when no MST found (Thasleem)
- Add bounds check for idx in subset loop (Thasleem)
- Use igt_crtc_crc_new() instead of igt_pipe_crc_new() (Ville)

v3:
- framebuffers missing in commit (Bilal)

v4:
- Drop cleanup framework

Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/kms_pipe_crc_basic.c | 314 +++++++++++++++++++++++++++++++++++++
 tests/meson.build          |   3 +
 2 files changed, 317 insertions(+)

diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
index f7b6ec293..59a44e92e 100644
--- a/tests/kms_pipe_crc_basic.c
+++ b/tests/kms_pipe_crc_basic.c
@@ -32,7 +32,10 @@
 
 #include "igt.h"
 #include "igt_sysfs.h"
+#include "intel/kms_mst_helper.h"
+#include "intel/kms_joiner_helper.h"
 #include <errno.h>
+#include <limits.h>
 #include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
@@ -77,6 +80,11 @@
  *              CRTC does not cause issues.
  */
 
+/**
+ * SUBTEST: mst-suspend-read-crc
+ * Description: MST suspend test for pipe CRC reads.
+ */
+
 static bool extended;
 static enum pipe active_pipes[IGT_MAX_PIPES];
 static uint32_t last_pipe;
@@ -96,6 +104,306 @@ static struct {
 	{ .r = 0.0, .g = 1.0, .b = 1.0 },
 };
 
+#define MAX_MST_OUTPUT 3
+
+static void collect_single_crc(igt_crtc_t *crtc, igt_crc_t *crc)
+{
+	igt_pipe_crc_t *pipe_crc;
+
+	pipe_crc = igt_crtc_crc_new(crtc, IGT_PIPE_CRC_SOURCE_AUTO);
+	igt_assert(pipe_crc);
+	igt_pipe_crc_collect_crc(pipe_crc, crc);
+	igt_pipe_crc_free(pipe_crc);
+}
+
+static void collect_crc_for_active_outputs(igt_output_t **outputs,
+					   int num_outputs,
+					   igt_crc_t *crcs,
+					   bool post_suspend)
+{
+	int i;
+
+	for (i = 0; i < num_outputs; i++) {
+		igt_output_t *output = outputs[i];
+		igt_crtc_t *crtc = igt_output_get_driving_crtc(output);
+
+		if (post_suspend)
+			igt_require_f(crtc,
+				      "POST-SUSPEND: no driving CRTC for %s (topology changed?)\n",
+				      output->name);
+		else
+			igt_assert_f(crtc,
+				     "PRE-SUSPEND: no driving CRTC for %s (bad pipe assignment?)\n",
+				     output->name);
+
+		collect_single_crc(crtc, &crcs[i]);
+	}
+}
+
+static void wait_for_vblanks(igt_output_t **outputs, int num_outputs,
+			     bool post_suspend)
+{
+	int i;
+
+	for (i = 0; i < num_outputs; i++) {
+		igt_crtc_t *crtc = igt_output_get_driving_crtc(outputs[i]);
+
+		if (post_suspend)
+			igt_require_f(crtc,
+				      "POST-SUSPEND: no driving CRTC for %s during vblank wait (topology changed?)\n",
+				      outputs[i]->name);
+		else
+			igt_assert_f(crtc,
+				     "PRE-SUSPEND: no driving CRTC for %s during vblank wait (bad pipe assignment?)\n",
+				     outputs[i]->name);
+
+		igt_wait_for_vblank(crtc);
+	}
+}
+
+static void log_crc_for_outputs(igt_output_t **outputs, int num_outputs,
+				igt_crc_t *crcs, const char *stage)
+{
+	int i;
+
+	for (i = 0; i < num_outputs; i++) {
+		igt_output_t *o = outputs[i];
+		drmModeModeInfo *m = igt_output_get_mode(o);
+		char *s = igt_crc_to_string(&crcs[i]);
+		igt_crtc_t *crtc = igt_output_get_driving_crtc(o);
+
+		igt_info("[%d] %s: output %s -> crtc %s, CRC %s, mode %dx%d@%d\n",
+			 i, stage, o->name,
+			 igt_crtc_name(crtc),
+			 s,
+			 m ? m->hdisplay : -1,
+			 m ? m->vdisplay : -1,
+			 m ? m->vrefresh : 0);
+		free(s);
+	}
+}
+
+/*
+ * Select non-joiner modes for all outputs to ensure CRC collection works.
+ * Joiner configurations consume multiple pipes and are not yet validated here.
+ * Must be called before igt_fit_modes_in_bw() so that bandwidth fitting uses
+ * the correct (non-joiner) modes.
+ */
+static void select_non_joiner_modes(int drm_fd, igt_output_t **outputs,
+				    int num_outputs)
+{
+	int max_dotclock = igt_get_max_dotclock(drm_fd);
+	int i;
+
+	if (max_dotclock <= 0)
+		max_dotclock = INT_MAX;
+
+	for (i = 0; i < num_outputs; i++) {
+		igt_output_t *output = outputs[i];
+		drmModeModeInfo non_joiner_mode;
+
+		igt_require_f(max_non_joiner_mode_found(drm_fd,
+							output->config.connector,
+							max_dotclock,
+							&non_joiner_mode),
+			      "No non-joiner mode found for %s\n",
+			      output->name);
+		igt_output_override_mode(output, &non_joiner_mode);
+	}
+}
+
+static void create_fbs_for_outputs(int drm_fd, igt_output_t **outputs,
+				   int num_outputs, struct igt_fb *fbs)
+{
+	int i;
+
+	for (i = 0; i < num_outputs; i++) {
+		igt_output_t *output = outputs[i];
+		drmModeModeInfo *mode = igt_output_get_mode(output);
+		igt_plane_t *primary;
+
+		igt_require_f(mode, "No mode available for output %s\n", output->name);
+
+		primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+
+		igt_create_color_fb(drm_fd,
+				    mode->hdisplay, mode->vdisplay,
+				    DRM_FORMAT_XRGB8888,
+				    DRM_FORMAT_MOD_LINEAR,
+				    0.0, 1.0, 0.0,  /* Green color */
+				    &fbs[i]);
+		igt_plane_set_fb(primary, &fbs[i]);
+	}
+}
+
+static void run_mst_subset_and_verify(igt_display_t *display,
+				      igt_output_t **active_outputs,
+				      int num_active,
+				      int n_crtcs,
+				      uint32_t master_pipes_mask,
+				      uint32_t valid_pipes_mask)
+{
+	igt_crc_t pre_crcs[MAX_MST_OUTPUT];
+	igt_crc_t post_crcs[MAX_MST_OUTPUT];
+	struct igt_fb fbs[MAX_MST_OUTPUT];
+	uint32_t used_pipes_mask = 0;
+	enum igt_suspend_test stest = SUSPEND_TEST_NONE;
+	int drm_fd = display->drm_fd;
+	int a;
+
+	igt_require_f(num_active <= n_crtcs,
+		      "Not enough crtcs for MST subset\n");
+
+	igt_require(igt_assign_pipes_for_outputs(drm_fd,
+						 active_outputs,
+						 num_active,
+						 n_crtcs,
+						 &used_pipes_mask,
+						 master_pipes_mask,
+						 valid_pipes_mask));
+
+	select_non_joiner_modes(drm_fd, active_outputs, num_active);
+
+	igt_require_f(igt_fit_modes_in_bw(display),
+		      "Unable to fit modes in bw\n");
+
+	create_fbs_for_outputs(drm_fd, active_outputs, num_active, fbs);
+
+	igt_display_commit2(display, COMMIT_ATOMIC);
+
+	/* rtcwake cmd is not supported on MTK devices */
+	if (is_mtk_device(drm_fd))
+		stest = SUSPEND_TEST_DEVICES;
+
+	igt_info("MST subset: %d outputs, n_crtcs=%d\n",
+		 num_active, n_crtcs);
+
+	wait_for_vblanks(active_outputs, num_active, false);
+	wait_for_vblanks(active_outputs, num_active, false);
+
+	collect_crc_for_active_outputs(active_outputs,
+				       num_active,
+				       pre_crcs, false);
+
+	log_crc_for_outputs(active_outputs, num_active, pre_crcs, "PRE-SUSPEND");
+
+	igt_system_suspend_autoresume(SUSPEND_STATE_MEM, stest);
+
+	wait_for_vblanks(active_outputs, num_active, true);
+	wait_for_vblanks(active_outputs, num_active, true);
+
+	collect_crc_for_active_outputs(active_outputs,
+				       num_active,
+				       post_crcs, true);
+
+	log_crc_for_outputs(active_outputs, num_active, post_crcs, "POST-SUSPEND");
+
+	for (a = 0; a < num_active; a++)
+		igt_assert_crc_equal(&pre_crcs[a], &post_crcs[a]);
+
+	/* Detach FBs from planes and remove them to leave a clean state */
+	for (a = 0; a < num_active; a++) {
+		igt_plane_t *primary =
+			igt_output_get_plane_type(active_outputs[a],
+						 DRM_PLANE_TYPE_PRIMARY);
+		igt_plane_set_fb(primary, NULL);
+		igt_remove_fb(drm_fd, &fbs[a]);
+	}
+}
+
+static void mst_suspend_read_crc(igt_display_t *display)
+{
+	int n_crtcs = igt_display_n_crtcs(display);
+	igt_output_t *active_outputs[MAX_MST_OUTPUT];
+	/*
+	 * igt_find_all_mst_output_in_topology() internally caps
+	 * discovery at IGT_MAX_PIPES entries, so this is the
+	 * correct upper bound for the buffer.
+	 */
+	igt_output_t *mst_outputs[IGT_MAX_PIPES];
+	/* Fixed upper bound for tracking traversed root connectors. */
+	int traversed_roots[IGT_MAX_PIPES] = { 0 };
+	int drm_fd = display->drm_fd;
+	uint32_t valid_pipes_mask = 0;
+	int num_mst, i, num_active;
+	uint32_t master_pipes_mask;
+	igt_output_t *output;
+	igt_crtc_t *crtc;
+	int num_roots = 0;
+
+	for_each_crtc(display, crtc)
+		valid_pipes_mask |= BIT(crtc->pipe);
+
+	igt_set_all_master_pipes_for_platform(display, &master_pipes_mask);
+
+	for_each_connected_output(display, output) {
+		int root_id;
+		bool root_seen = false;
+
+		root_id = igt_get_dp_mst_connector_id(output);
+		if (root_id < 0) {
+			igt_info("Skipping non-mst output %s\n", output->name);
+			continue;
+		}
+
+		for (i = 0; i < num_roots; i++)
+			if (traversed_roots[i] == root_id)
+				root_seen = true;
+
+		if (root_seen)
+			continue;
+
+		num_mst = 0;
+		igt_require(igt_find_all_mst_output_in_topology(drm_fd, display,
+							output, mst_outputs,
+							&num_mst) == 0);
+		igt_assert_f(num_mst <= IGT_MAX_PIPES,
+			     "MST topology discovery overflow: num_mst=%d > IGT_MAX_PIPES=%d\n",
+			     num_mst, IGT_MAX_PIPES);
+		if (num_mst == 0) {
+			igt_info("No MST outputs found in topology for output %s\n",
+				 output->name);
+			igt_skip("No MST outputs found in topology\n");
+		}
+
+		if (num_roots < IGT_MAX_PIPES)
+			traversed_roots[num_roots++] = root_id;
+
+		if (num_mst > MAX_MST_OUTPUT)
+			num_mst = MAX_MST_OUTPUT;
+
+		igt_dynamic_f("mst-root-%d", root_id) {
+			int mask;
+
+			for (mask = 1; mask < (1 << num_mst); mask++) {
+				int bit, idx = 0;
+
+				/* build subset for this bitmask */
+				for (bit = 0; bit < num_mst; bit++) {
+					if (!(mask & (1 << bit)))
+						continue;
+
+					if (idx >= MAX_MST_OUTPUT)
+						break;
+
+					active_outputs[idx++] = mst_outputs[bit];
+				}
+
+				num_active = idx;
+				if (!num_active)
+					continue;
+
+				igt_display_reset(display);
+
+				run_mst_subset_and_verify(display, active_outputs,
+							  num_active, n_crtcs,
+							  master_pipes_mask,
+							  valid_pipes_mask);
+			}
+		}
+	}
+}
+
 static bool simulation_constraint(igt_crtc_t *crtc)
 {
 	if (igt_run_in_simulation() && !extended &&
@@ -525,6 +833,12 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		}
 	}
 
+	igt_describe("MST suspend test for pipe CRC reads.");
+	igt_subtest_with_dynamic("mst-suspend-read-crc") {
+		igt_require(igt_display_has_mst_output(&data.display));
+		mst_suspend_read_crc(&data.display);
+	}
+
 	igt_fixture() {
 		igt_display_fini(&data.display);
 		drm_close_driver(data.drm_fd);
diff --git a/tests/meson.build b/tests/meson.build
index 7f356de9b..06c0d8e98 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -399,6 +399,9 @@ extra_sources = {
            join_paths ('intel', 'kms_joiner_helper.c') ],
 	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
 	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
+	'kms_pipe_crc_basic': [
+		join_paths ('intel', 'kms_mst_helper.c'),
+		join_paths ('intel', 'kms_joiner_helper.c') ],
 	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],
 }
 
-- 
2.43.0


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

* ✓ Xe.CI.BAT: success for tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4)
  2026-02-20 15:22 [PATCH 0/3] tests/kms_pipe_crc_basic: add mst suspend-resume test Kunal Joshi
                   ` (2 preceding siblings ...)
  2026-02-20 15:22 ` [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test Kunal Joshi
@ 2026-02-20 18:31 ` Patchwork
  2026-02-20 19:02 ` ✓ i915.CI.BAT: " Patchwork
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-02-20 18:31 UTC (permalink / raw)
  To: Kunal Joshi; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4)
URL   : https://patchwork.freedesktop.org/series/158091/
State : success

== Summary ==

CI Bug Log - changes from XEIGT_8764_BAT -> XEIGTPW_14583_BAT
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

Participating hosts (14 -> 14)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Warnings ####

  * igt@kms_dsc@dsc-basic:
    - bat-adlp-7:         [SKIP][1] ([Intel XE#455]) -> [SKIP][2] ([Intel XE#2244] / [Intel XE#455])
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/bat-adlp-7/igt@kms_dsc@dsc-basic.html
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/bat-adlp-7/igt@kms_dsc@dsc-basic.html
    - bat-dg2-oem2:       [SKIP][3] ([Intel XE#455]) -> [SKIP][4] ([Intel XE#2244] / [Intel XE#455])
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/bat-dg2-oem2/igt@kms_dsc@dsc-basic.html

  
  [Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
  [Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455


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

  * IGT: IGT_8764 -> IGTPW_14583
  * Linux: xe-4577-157c1f59af33fb9acf6e0e055e7317b634711120 -> xe-4582-5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13

  IGTPW_14583: 14583
  IGT_8764: 8764
  xe-4577-157c1f59af33fb9acf6e0e055e7317b634711120: 157c1f59af33fb9acf6e0e055e7317b634711120
  xe-4582-5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13: 5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13

== Logs ==

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

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

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

* ✓ i915.CI.BAT: success for tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4)
  2026-02-20 15:22 [PATCH 0/3] tests/kms_pipe_crc_basic: add mst suspend-resume test Kunal Joshi
                   ` (3 preceding siblings ...)
  2026-02-20 18:31 ` ✓ Xe.CI.BAT: success for tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4) Patchwork
@ 2026-02-20 19:02 ` Patchwork
  2026-02-21  4:26 ` ✗ i915.CI.Full: failure " Patchwork
  2026-02-21  8:38 ` ✗ Xe.CI.FULL: " Patchwork
  6 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-02-20 19:02 UTC (permalink / raw)
  To: Kunal Joshi; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4)
URL   : https://patchwork.freedesktop.org/series/158091/
State : success

== Summary ==

CI Bug Log - changes from IGT_8764 -> IGTPW_14583
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (42 -> 40)
------------------------------

  Additional (1): fi-glk-j4005 
  Missing    (3): bat-dg2-13 fi-snb-2520m bat-adls-6 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_huc_copy@huc-copy:
    - fi-glk-j4005:       NOTRUN -> [SKIP][1] ([i915#2190])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/fi-glk-j4005/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - fi-glk-j4005:       NOTRUN -> [SKIP][2] ([i915#4613]) +3 other tests skip
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/fi-glk-j4005/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@i915_selftest@live:
    - bat-mtlp-8:         [PASS][3] -> [DMESG-FAIL][4] ([i915#12061]) +1 other test dmesg-fail
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8764/bat-mtlp-8/igt@i915_selftest@live.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/bat-mtlp-8/igt@i915_selftest@live.html

  * igt@kms_psr@psr-primary-page-flip:
    - fi-glk-j4005:       NOTRUN -> [SKIP][5] +12 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/fi-glk-j4005/igt@kms_psr@psr-primary-page-flip.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@workarounds:
    - bat-dg2-9:          [DMESG-FAIL][6] ([i915#12061]) -> [PASS][7] +1 other test pass
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8764/bat-dg2-9/igt@i915_selftest@live@workarounds.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/bat-dg2-9/igt@i915_selftest@live@workarounds.html

  
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613


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

  * CI: CI-20190529 -> None
  * IGT: IGT_8764 -> IGTPW_14583
  * Linux: CI_DRM_18008 -> CI_DRM_18013

  CI-20190529: 20190529
  CI_DRM_18008: 157c1f59af33fb9acf6e0e055e7317b634711120 @ git://anongit.freedesktop.org/gfx-ci/linux
  CI_DRM_18013: 5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_14583: 14583
  IGT_8764: 8764

== Logs ==

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

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

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

* ✗ i915.CI.Full: failure for tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4)
  2026-02-20 15:22 [PATCH 0/3] tests/kms_pipe_crc_basic: add mst suspend-resume test Kunal Joshi
                   ` (4 preceding siblings ...)
  2026-02-20 19:02 ` ✓ i915.CI.BAT: " Patchwork
@ 2026-02-21  4:26 ` Patchwork
  2026-02-21  8:38 ` ✗ Xe.CI.FULL: " Patchwork
  6 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-02-21  4:26 UTC (permalink / raw)
  To: Kunal Joshi; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4)
URL   : https://patchwork.freedesktop.org/series/158091/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_18013_full -> IGTPW_14583_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_14583_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_14583_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.

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

Participating hosts (9 -> 9)
------------------------------

  No changes in participating hosts

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_pipe_crc_basic@mst-suspend-read-crc (NEW):
    - shard-mtlp:         NOTRUN -> [SKIP][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-3/igt@kms_pipe_crc_basic@mst-suspend-read-crc.html
    - shard-dg2:          NOTRUN -> [SKIP][2]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@kms_pipe_crc_basic@mst-suspend-read-crc.html
    - shard-rkl:          NOTRUN -> [SKIP][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_pipe_crc_basic@mst-suspend-read-crc.html
    - shard-tglu-1:       NOTRUN -> [SKIP][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_pipe_crc_basic@mst-suspend-read-crc.html
    - shard-dg1:          NOTRUN -> [SKIP][5]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-17/igt@kms_pipe_crc_basic@mst-suspend-read-crc.html

  
New tests
---------

  New tests have been introduced between CI_DRM_18013_full and IGTPW_14583_full:

### New IGT tests (16) ###

  * igt@i915_fb_tiling@basic-x-tiling:
    - Statuses : 3 pass(s) 3 skip(s)
    - Exec time: [0.0] s

  * igt@kms_cursor_edge_walk@256x256-top-edge@pipe-a-dp-3:
    - Statuses : 1 pass(s)
    - Exec time: [3.46] s

  * igt@kms_cursor_edge_walk@256x256-top-edge@pipe-a-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [3.32] s

  * igt@kms_cursor_edge_walk@256x256-top-edge@pipe-d-hdmi-a-3:
    - Statuses : 1 pass(s)
    - Exec time: [3.22] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.06] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-a-hdmi-a-1:
    - Statuses : 4 pass(s)
    - Exec time: [0.16, 0.57] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-a-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.41] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-b-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.12] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-b-hdmi-a-1:
    - Statuses : 4 pass(s)
    - Exec time: [0.16, 0.41] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.38] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-c-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.15] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-c-hdmi-a-1:
    - Statuses : 3 pass(s)
    - Exec time: [0.16, 0.42] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-c-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.39] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-d-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.12] s

  * igt@kms_joiner@basic-max-non-joiner@pipe-d-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.17, 0.29] s

  * igt@kms_pipe_crc_basic@mst-suspend-read-crc:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@object-reloc-keep-cache:
    - shard-rkl:          NOTRUN -> [SKIP][6] ([i915#8411]) +1 other test skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@api_intel_bb@object-reloc-keep-cache.html

  * igt@drm_buddy@drm_buddy:
    - shard-tglu-1:       NOTRUN -> [SKIP][7] ([i915#15678])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@drm_buddy@drm_buddy.html

  * igt@gem_ccs@ctrl-surf-copy:
    - shard-tglu:         NOTRUN -> [SKIP][8] ([i915#3555] / [i915#9323]) +1 other test skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-5/igt@gem_ccs@ctrl-surf-copy.html
    - shard-rkl:          NOTRUN -> [SKIP][9] ([i915#3555] / [i915#9323])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@gem_ccs@ctrl-surf-copy.html

  * igt@gem_ccs@suspend-resume:
    - shard-dg2:          [PASS][10] -> [INCOMPLETE][11] ([i915#13356]) +1 other test incomplete
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-11/igt@gem_ccs@suspend-resume.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@gem_ccs@suspend-resume.html

  * igt@gem_close_race@multigpu-basic-threads:
    - shard-dg2:          NOTRUN -> [SKIP][12] ([i915#7697])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-7/igt@gem_close_race@multigpu-basic-threads.html
    - shard-tglu:         NOTRUN -> [SKIP][13] ([i915#7697])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-9/igt@gem_close_race@multigpu-basic-threads.html

  * igt@gem_create@create-ext-set-pat:
    - shard-rkl:          NOTRUN -> [SKIP][14] ([i915#8562])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@gem_create@create-ext-set-pat.html
    - shard-tglu:         NOTRUN -> [SKIP][15] ([i915#8562])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-7/igt@gem_create@create-ext-set-pat.html

  * igt@gem_ctx_persistence@file:
    - shard-snb:          NOTRUN -> [SKIP][16] ([i915#1099]) +2 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-snb1/igt@gem_ctx_persistence@file.html

  * igt@gem_ctx_sseu@engines:
    - shard-rkl:          NOTRUN -> [SKIP][17] ([i915#280]) +1 other test skip
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@gem_ctx_sseu@engines.html
    - shard-dg1:          NOTRUN -> [SKIP][18] ([i915#280])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-13/igt@gem_ctx_sseu@engines.html
    - shard-tglu:         NOTRUN -> [SKIP][19] ([i915#280])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@gem_ctx_sseu@engines.html
    - shard-mtlp:         NOTRUN -> [SKIP][20] ([i915#280])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-7/igt@gem_ctx_sseu@engines.html
    - shard-dg2:          NOTRUN -> [SKIP][21] ([i915#280])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@gem_ctx_sseu@engines.html

  * igt@gem_ctx_sseu@invalid-args:
    - shard-tglu-1:       NOTRUN -> [SKIP][22] ([i915#280])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@gem_ctx_sseu@invalid-args.html

  * igt@gem_exec_balancer@parallel-bb-first:
    - shard-rkl:          NOTRUN -> [SKIP][23] ([i915#4525]) +2 other tests skip
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@gem_exec_balancer@parallel-bb-first.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-tglu-1:       NOTRUN -> [SKIP][24] ([i915#4525])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_balancer@sliced:
    - shard-dg1:          NOTRUN -> [SKIP][25] ([i915#4812])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-16/igt@gem_exec_balancer@sliced.html

  * igt@gem_exec_capture@capture:
    - shard-mtlp:         NOTRUN -> [FAIL][26] ([i915#11965]) +1 other test fail
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@gem_exec_capture@capture.html

  * igt@gem_exec_capture@capture-invisible:
    - shard-dg2:          NOTRUN -> [SKIP][27] ([i915#6334]) +2 other tests skip
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-8/igt@gem_exec_capture@capture-invisible.html

  * igt@gem_exec_capture@capture-invisible@smem0:
    - shard-glk:          NOTRUN -> [SKIP][28] ([i915#6334]) +1 other test skip
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk1/igt@gem_exec_capture@capture-invisible@smem0.html

  * igt@gem_exec_capture@capture@vecs0-lmem0:
    - shard-dg1:          NOTRUN -> [FAIL][29] ([i915#11965]) +2 other tests fail
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@gem_exec_capture@capture@vecs0-lmem0.html

  * igt@gem_exec_flush@basic-uc-ro-default:
    - shard-dg2:          NOTRUN -> [SKIP][30] ([i915#3539] / [i915#4852])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-7/igt@gem_exec_flush@basic-uc-ro-default.html
    - shard-dg1:          NOTRUN -> [SKIP][31] ([i915#3539] / [i915#4852])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-17/igt@gem_exec_flush@basic-uc-ro-default.html

  * igt@gem_exec_reloc@basic-cpu-wc-noreloc:
    - shard-mtlp:         NOTRUN -> [SKIP][32] ([i915#3281]) +1 other test skip
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-2/igt@gem_exec_reloc@basic-cpu-wc-noreloc.html
    - shard-dg2:          NOTRUN -> [SKIP][33] ([i915#3281]) +1 other test skip
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-5/igt@gem_exec_reloc@basic-cpu-wc-noreloc.html

  * igt@gem_exec_reloc@basic-range-active:
    - shard-rkl:          NOTRUN -> [SKIP][34] ([i915#14544] / [i915#3281])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@gem_exec_reloc@basic-range-active.html

  * igt@gem_exec_reloc@basic-wc-gtt-noreloc:
    - shard-dg1:          NOTRUN -> [SKIP][35] ([i915#3281]) +3 other tests skip
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-16/igt@gem_exec_reloc@basic-wc-gtt-noreloc.html

  * igt@gem_exec_reloc@basic-write-read-noreloc:
    - shard-rkl:          NOTRUN -> [SKIP][36] ([i915#3281]) +7 other tests skip
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@gem_exec_reloc@basic-write-read-noreloc.html

  * igt@gem_exec_suspend@basic-s0@lmem0:
    - shard-dg2:          NOTRUN -> [INCOMPLETE][37] ([i915#13356]) +1 other test incomplete
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@gem_exec_suspend@basic-s0@lmem0.html

  * igt@gem_exec_suspend@basic-s3:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][38] ([i915#13356]) +1 other test incomplete
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_fence_thrash@bo-write-verify-y:
    - shard-mtlp:         NOTRUN -> [SKIP][39] ([i915#4860])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-4/igt@gem_fence_thrash@bo-write-verify-y.html

  * igt@gem_fenced_exec_thrash@no-spare-fences-busy:
    - shard-dg2:          NOTRUN -> [SKIP][40] ([i915#4860])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@gem_fenced_exec_thrash@no-spare-fences-busy.html

  * igt@gem_huc_copy@huc-copy:
    - shard-rkl:          NOTRUN -> [SKIP][41] ([i915#2190])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@gem_huc_copy@huc-copy.html
    - shard-glk:          NOTRUN -> [SKIP][42] ([i915#2190])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk9/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_evict@dontneed-evict-race:
    - shard-rkl:          NOTRUN -> [SKIP][43] ([i915#4613] / [i915#7582])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@gem_lmem_evict@dontneed-evict-race.html

  * igt@gem_lmem_swapping@heavy-random:
    - shard-glk:          NOTRUN -> [SKIP][44] ([i915#4613]) +2 other tests skip
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk6/igt@gem_lmem_swapping@heavy-random.html

  * igt@gem_lmem_swapping@massive:
    - shard-tglu-1:       NOTRUN -> [SKIP][45] ([i915#4613])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@gem_lmem_swapping@massive.html

  * igt@gem_lmem_swapping@parallel-random:
    - shard-rkl:          NOTRUN -> [SKIP][46] ([i915#14544] / [i915#4613])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@gem_lmem_swapping@parallel-random.html
    - shard-mtlp:         NOTRUN -> [SKIP][47] ([i915#4613])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-2/igt@gem_lmem_swapping@parallel-random.html

  * igt@gem_lmem_swapping@parallel-random-verify-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][48] ([i915#4613]) +4 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-7/igt@gem_lmem_swapping@parallel-random-verify-ccs.html

  * igt@gem_lmem_swapping@verify-random:
    - shard-rkl:          NOTRUN -> [SKIP][49] ([i915#4613]) +2 other tests skip
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@gem_lmem_swapping@verify-random.html

  * igt@gem_madvise@dontneed-before-pwrite:
    - shard-dg1:          NOTRUN -> [SKIP][50] ([i915#3282]) +1 other test skip
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-18/igt@gem_madvise@dontneed-before-pwrite.html

  * igt@gem_mmap@bad-offset:
    - shard-dg1:          NOTRUN -> [SKIP][51] ([i915#4083]) +3 other tests skip
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@gem_mmap@bad-offset.html

  * igt@gem_mmap_gtt@basic-read:
    - shard-dg2:          NOTRUN -> [SKIP][52] ([i915#4077]) +2 other tests skip
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@gem_mmap_gtt@basic-read.html

  * igt@gem_mmap_gtt@big-bo-tiledy:
    - shard-mtlp:         NOTRUN -> [SKIP][53] ([i915#4077]) +2 other tests skip
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@gem_mmap_gtt@big-bo-tiledy.html

  * igt@gem_mmap_gtt@cpuset-basic-small-copy-xy:
    - shard-dg1:          NOTRUN -> [SKIP][54] ([i915#4077]) +4 other tests skip
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-16/igt@gem_mmap_gtt@cpuset-basic-small-copy-xy.html

  * igt@gem_mmap_wc@write-gtt-read-wc:
    - shard-mtlp:         NOTRUN -> [SKIP][55] ([i915#4083]) +2 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-2/igt@gem_mmap_wc@write-gtt-read-wc.html

  * igt@gem_mmap_wc@write-wc-read-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][56] ([i915#4083]) +2 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-7/igt@gem_mmap_wc@write-wc-read-gtt.html

  * igt@gem_partial_pwrite_pread@reads-display:
    - shard-dg2:          NOTRUN -> [SKIP][57] ([i915#3282])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-8/igt@gem_partial_pwrite_pread@reads-display.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-uncached:
    - shard-rkl:          NOTRUN -> [SKIP][58] ([i915#3282]) +7 other tests skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads-uncached.html

  * igt@gem_pread@exhaustion:
    - shard-tglu-1:       NOTRUN -> [WARN][59] ([i915#2658])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@gem_pread@exhaustion.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-tglu:         NOTRUN -> [WARN][60] ([i915#2658])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-9/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pxp@hw-rejects-pxp-buffer:
    - shard-rkl:          NOTRUN -> [SKIP][61] ([i915#13717] / [i915#14544])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@gem_pxp@hw-rejects-pxp-buffer.html

  * igt@gem_pxp@reject-modify-context-protection-off-1:
    - shard-dg2:          NOTRUN -> [SKIP][62] ([i915#4270])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@gem_pxp@reject-modify-context-protection-off-1.html

  * igt@gem_render_copy@yf-tiled-ccs-to-x-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][63] ([i915#8428]) +1 other test skip
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-4/igt@gem_render_copy@yf-tiled-ccs-to-x-tiled.html
    - shard-dg2:          NOTRUN -> [SKIP][64] ([i915#5190] / [i915#8428]) +1 other test skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@gem_render_copy@yf-tiled-ccs-to-x-tiled.html

  * igt@gem_softpin@noreloc-s3:
    - shard-rkl:          [PASS][65] -> [INCOMPLETE][66] ([i915#13809])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@gem_softpin@noreloc-s3.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@gem_softpin@noreloc-s3.html

  * igt@gem_tiled_pread_pwrite:
    - shard-mtlp:         NOTRUN -> [SKIP][67] ([i915#4079])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-8/igt@gem_tiled_pread_pwrite.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-tglu:         NOTRUN -> [SKIP][68] ([i915#3297]) +2 other tests skip
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-9/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-mtlp:         NOTRUN -> [SKIP][69] ([i915#3297])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-3/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
    - shard-dg2:          NOTRUN -> [SKIP][70] ([i915#3297] / [i915#4880])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
    - shard-dg1:          NOTRUN -> [SKIP][71] ([i915#3297] / [i915#4880])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-17/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@gem_userptr_blits@relocations:
    - shard-dg2:          NOTRUN -> [SKIP][72] ([i915#3281] / [i915#3297])
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-5/igt@gem_userptr_blits@relocations.html

  * igt@gem_vm_create@invalid-create:
    - shard-snb:          NOTRUN -> [SKIP][73] +203 other tests skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-snb1/igt@gem_vm_create@invalid-create.html

  * igt@gen9_exec_parse@batch-zero-length:
    - shard-tglu:         NOTRUN -> [SKIP][74] ([i915#2527] / [i915#2856]) +2 other tests skip
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-5/igt@gen9_exec_parse@batch-zero-length.html

  * igt@gen9_exec_parse@bb-oversize:
    - shard-rkl:          NOTRUN -> [SKIP][75] ([i915#2527]) +1 other test skip
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@gen9_exec_parse@bb-oversize.html

  * igt@gen9_exec_parse@bb-secure:
    - shard-tglu-1:       NOTRUN -> [SKIP][76] ([i915#2527] / [i915#2856]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@gen9_exec_parse@bb-secure.html

  * igt@gen9_exec_parse@unaligned-access:
    - shard-dg2:          NOTRUN -> [SKIP][77] ([i915#2856]) +1 other test skip
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@gen9_exec_parse@unaligned-access.html

  * igt@i915_drm_fdinfo@virtual-busy-all:
    - shard-mtlp:         NOTRUN -> [SKIP][78] ([i915#14118])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-7/igt@i915_drm_fdinfo@virtual-busy-all.html
    - shard-dg1:          NOTRUN -> [SKIP][79] ([i915#14118])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-13/igt@i915_drm_fdinfo@virtual-busy-all.html

  * igt@i915_drm_fdinfo@virtual-busy-idle-all:
    - shard-dg2:          NOTRUN -> [SKIP][80] ([i915#14118]) +1 other test skip
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@i915_drm_fdinfo@virtual-busy-idle-all.html

  * igt@i915_module_load@fault-injection:
    - shard-dg1:          NOTRUN -> [ABORT][81] ([i915#11815] / [i915#15481]) +1 other test abort
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-12/igt@i915_module_load@fault-injection.html

  * igt@i915_module_load@fault-injection@i915_driver_mmio_probe:
    - shard-dg1:          NOTRUN -> [INCOMPLETE][82] ([i915#15481])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-12/igt@i915_module_load@fault-injection@i915_driver_mmio_probe.html

  * igt@i915_module_load@fault-injection@intel_connector_register:
    - shard-rkl:          NOTRUN -> [ABORT][83] ([i915#15342]) +1 other test abort
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@i915_module_load@fault-injection@intel_connector_register.html
    - shard-glk:          NOTRUN -> [ABORT][84] ([i915#15342]) +1 other test abort
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk9/igt@i915_module_load@fault-injection@intel_connector_register.html

  * igt@i915_module_load@fault-injection@intel_gt_init-enodev:
    - shard-rkl:          NOTRUN -> [SKIP][85] ([i915#15479]) +4 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@i915_module_load@fault-injection@intel_gt_init-enodev.html

  * igt@i915_module_load@reload-no-display:
    - shard-snb:          NOTRUN -> [DMESG-WARN][86] ([i915#14545])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-snb5/igt@i915_module_load@reload-no-display.html
    - shard-tglu:         [PASS][87] -> [DMESG-WARN][88] ([i915#13029] / [i915#14545])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-8/igt@i915_module_load@reload-no-display.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-10/igt@i915_module_load@reload-no-display.html

  * igt@i915_pm_freq_api@freq-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][89] ([i915#8399])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-7/igt@i915_pm_freq_api@freq-suspend.html

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-dg2:          [PASS][90] -> [FAIL][91] ([i915#12964]) +1 other test fail
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-7/igt@i915_pm_rc6_residency@rc6-accuracy.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-7/igt@i915_pm_rc6_residency@rc6-accuracy.html

  * igt@i915_pm_rpm@system-suspend-execbuf:
    - shard-rkl:          [PASS][92] -> [INCOMPLETE][93] ([i915#13356])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@i915_pm_rpm@system-suspend-execbuf.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@i915_pm_rpm@system-suspend-execbuf.html

  * igt@i915_pm_rps@min-max-config-idle:
    - shard-dg1:          NOTRUN -> [SKIP][94] ([i915#11681] / [i915#6621])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-16/igt@i915_pm_rps@min-max-config-idle.html

  * igt@i915_pm_rps@thresholds-idle-park:
    - shard-dg2:          NOTRUN -> [SKIP][95] ([i915#11681])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@i915_pm_rps@thresholds-idle-park.html
    - shard-dg1:          NOTRUN -> [SKIP][96] ([i915#11681])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-16/igt@i915_pm_rps@thresholds-idle-park.html
    - shard-mtlp:         NOTRUN -> [SKIP][97] ([i915#11681])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@i915_pm_rps@thresholds-idle-park.html

  * igt@i915_query@query-topology-coherent-slice-mask:
    - shard-dg2:          NOTRUN -> [SKIP][98] ([i915#6188])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@i915_query@query-topology-coherent-slice-mask.html

  * igt@i915_query@test-query-geometry-subslices:
    - shard-rkl:          NOTRUN -> [SKIP][99] ([i915#5723])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@i915_query@test-query-geometry-subslices.html
    - shard-tglu-1:       NOTRUN -> [SKIP][100] ([i915#5723])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@i915_query@test-query-geometry-subslices.html

  * igt@i915_selftest@live@workarounds:
    - shard-dg2:          [PASS][101] -> [DMESG-FAIL][102] ([i915#12061]) +1 other test dmesg-fail
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-7/igt@i915_selftest@live@workarounds.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-8/igt@i915_selftest@live@workarounds.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - shard-dg2:          NOTRUN -> [DMESG-WARN][103] ([i915#14545])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@i915_suspend@fence-restore-untiled:
    - shard-rkl:          [PASS][104] -> [INCOMPLETE][105] ([i915#4817])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@i915_suspend@fence-restore-untiled.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@i915_suspend@fence-restore-untiled.html

  * igt@i915_suspend@sysfs-reader:
    - shard-glk:          NOTRUN -> [INCOMPLETE][106] ([i915#4817]) +1 other test incomplete
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk2/igt@i915_suspend@sysfs-reader.html

  * igt@intel_hwmon@hwmon-write:
    - shard-rkl:          NOTRUN -> [SKIP][107] ([i915#7707])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@intel_hwmon@hwmon-write.html

  * igt@kms_addfb_basic@addfb25-x-tiled-legacy:
    - shard-mtlp:         NOTRUN -> [SKIP][108] ([i915#4212])
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@kms_addfb_basic@addfb25-x-tiled-legacy.html

  * igt@kms_async_flips@async-flip-suspend-resume:
    - shard-glk:          NOTRUN -> [INCOMPLETE][109] ([i915#12761]) +1 other test incomplete
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk1/igt@kms_async_flips@async-flip-suspend-resume.html

  * igt@kms_async_flips@test-cursor:
    - shard-mtlp:         NOTRUN -> [SKIP][110] ([i915#10333])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@kms_async_flips@test-cursor.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
    - shard-glk:          NOTRUN -> [SKIP][111] ([i915#1769]) +1 other test skip
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk6/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
    - shard-rkl:          NOTRUN -> [SKIP][112] ([i915#1769] / [i915#3555])
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html
    - shard-dg1:          NOTRUN -> [SKIP][113] ([i915#1769] / [i915#3555])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-17/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels:
    - shard-tglu:         NOTRUN -> [SKIP][114] ([i915#1769] / [i915#3555])
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-3/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-270:
    - shard-dg2:          NOTRUN -> [SKIP][115] +6 other tests skip
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-dg1:          NOTRUN -> [SKIP][116] ([i915#4538] / [i915#5286]) +1 other test skip
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-12/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
    - shard-tglu:         NOTRUN -> [SKIP][117] ([i915#5286]) +4 other tests skip
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-7/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][118] ([i915#5286]) +3 other tests skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-tglu-1:       NOTRUN -> [SKIP][119] ([i915#5286]) +4 other tests skip
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-mtlp:         [PASS][120] -> [FAIL][121] ([i915#5138])
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-5/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@linear-16bpp-rotate-90:
    - shard-rkl:          NOTRUN -> [SKIP][122] ([i915#3638]) +1 other test skip
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_big_fb@linear-16bpp-rotate-90.html

  * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-tglu-1:       NOTRUN -> [SKIP][123] ([i915#3828])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-rkl:          NOTRUN -> [SKIP][124] ([i915#3828])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-tglu:         NOTRUN -> [SKIP][125] ([i915#3828]) +1 other test skip
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-9/igt@kms_big_fb@linear-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-270:
    - shard-mtlp:         NOTRUN -> [SKIP][126] +8 other tests skip
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-7/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html
    - shard-dg1:          NOTRUN -> [SKIP][127] ([i915#3638]) +1 other test skip
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_big_fb@x-tiled-8bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-addfb-size-offset-overflow:
    - shard-dg2:          NOTRUN -> [SKIP][128] ([i915#5190]) +1 other test skip
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_big_fb@y-tiled-addfb-size-offset-overflow.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-90:
    - shard-dg2:          NOTRUN -> [SKIP][129] ([i915#4538] / [i915#5190]) +5 other tests skip
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@kms_big_fb@yf-tiled-32bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-addfb-size-overflow:
    - shard-mtlp:         NOTRUN -> [SKIP][130] ([i915#6187])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-4/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-dg1:          NOTRUN -> [SKIP][131] ([i915#4538]) +2 other tests skip
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-16/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4:
    - shard-dg1:          NOTRUN -> [SKIP][132] ([i915#6095]) +224 other tests skip
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-17/igt@kms_ccs@bad-aux-stride-4-tiled-mtl-mc-ccs@pipe-a-hdmi-a-4.html

  * igt@kms_ccs@bad-pixel-format-y-tiled-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][133] ([i915#10307] / [i915#10434] / [i915#6095]) +1 other test skip
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@kms_ccs@bad-pixel-format-y-tiled-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][134] ([i915#6095]) +69 other tests skip
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][135] ([i915#6095]) +59 other tests skip
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][136] ([i915#12313]) +1 other test skip
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html
    - shard-dg1:          NOTRUN -> [SKIP][137] ([i915#12313]) +1 other test skip
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-16/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][138] ([i915#10307] / [i915#6095]) +117 other tests skip
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_ccs@crc-primary-basic-4-tiled-mtl-rc-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][139] ([i915#12313] / [i915#14544])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][140] ([i915#6095]) +49 other tests skip
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@kms_ccs@crc-primary-rotation-180-4-tiled-dg2-mc-ccs@pipe-a-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][141] ([i915#12313])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html
    - shard-mtlp:         NOTRUN -> [SKIP][142] ([i915#12313])
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][143] ([i915#12805])
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-2:
    - shard-glk:          NOTRUN -> [INCOMPLETE][144] ([i915#15582]) +1 other test incomplete
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk6/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][145] ([i915#14098] / [i915#6095]) +38 other tests skip
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-rc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs:
    - shard-tglu:         NOTRUN -> [SKIP][146] ([i915#12313]) +1 other test skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-10/igt@kms_ccs@random-ccs-data-4-tiled-bmg-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][147] ([i915#14544] / [i915#6095]) +9 other tests skip
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][148] ([i915#14098] / [i915#14544] / [i915#6095]) +5 other tests skip
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][149] ([i915#6095]) +24 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-2/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-edp-1.html

  * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][150] ([i915#6095]) +51 other tests skip
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_cdclk@mode-transition:
    - shard-tglu:         NOTRUN -> [SKIP][151] ([i915#3742])
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium_edid@dp-edid-change-during-suspend:
    - shard-mtlp:         NOTRUN -> [SKIP][152] ([i915#11151] / [i915#7828]) +2 other tests skip
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html

  * igt@kms_chamelium_edid@hdmi-edid-change-during-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][153] ([i915#11151] / [i915#7828]) +5 other tests skip
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@kms_chamelium_edid@hdmi-edid-change-during-suspend.html

  * igt@kms_chamelium_edid@hdmi-edid-read:
    - shard-tglu-1:       NOTRUN -> [SKIP][154] ([i915#11151] / [i915#7828]) +6 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_chamelium_edid@hdmi-edid-read.html

  * igt@kms_chamelium_frames@hdmi-crc-single:
    - shard-tglu:         NOTRUN -> [SKIP][155] ([i915#11151] / [i915#7828]) +8 other tests skip
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-3/igt@kms_chamelium_frames@hdmi-crc-single.html

  * igt@kms_chamelium_frames@vga-frame-dump:
    - shard-rkl:          NOTRUN -> [SKIP][156] ([i915#11151] / [i915#14544] / [i915#7828])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_chamelium_frames@vga-frame-dump.html

  * igt@kms_chamelium_hpd@dp-hpd-for-each-pipe:
    - shard-dg2:          NOTRUN -> [SKIP][157] ([i915#11151] / [i915#7828]) +4 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-8/igt@kms_chamelium_hpd@dp-hpd-for-each-pipe.html

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - shard-dg1:          NOTRUN -> [SKIP][158] ([i915#11151] / [i915#7828]) +3 other tests skip
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_chamelium_hpd@vga-hpd-fast.html

  * igt@kms_content_protection@atomic:
    - shard-dg1:          NOTRUN -> [SKIP][159] ([i915#6944] / [i915#7116] / [i915#9424])
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-13/igt@kms_content_protection@atomic.html
    - shard-mtlp:         NOTRUN -> [SKIP][160] ([i915#6944] / [i915#9424])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-4/igt@kms_content_protection@atomic.html
    - shard-dg2:          NOTRUN -> [SKIP][161] ([i915#6944] / [i915#7118] / [i915#9424])
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@kms_content_protection@atomic.html

  * igt@kms_content_protection@dp-mst-lic-type-0-hdcp14:
    - shard-mtlp:         NOTRUN -> [SKIP][162] ([i915#15330])
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-1/igt@kms_content_protection@dp-mst-lic-type-0-hdcp14.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][163] ([i915#15330] / [i915#3116] / [i915#3299])
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_content_protection@dp-mst-type-0-hdcp14:
    - shard-rkl:          NOTRUN -> [SKIP][164] ([i915#15330])
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_content_protection@dp-mst-type-0-hdcp14.html

  * igt@kms_content_protection@dp-mst-type-1-suspend-resume:
    - shard-tglu:         NOTRUN -> [SKIP][165] ([i915#15330])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-5/igt@kms_content_protection@dp-mst-type-1-suspend-resume.html

  * igt@kms_content_protection@legacy:
    - shard-tglu:         NOTRUN -> [SKIP][166] ([i915#6944] / [i915#7116] / [i915#7118] / [i915#9424]) +2 other tests skip
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@kms_content_protection@legacy.html
    - shard-rkl:          NOTRUN -> [SKIP][167] ([i915#6944] / [i915#7118] / [i915#9424]) +1 other test skip
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@legacy-hdcp14:
    - shard-rkl:          NOTRUN -> [SKIP][168] ([i915#6944])
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_content_protection@legacy-hdcp14.html
    - shard-tglu-1:       NOTRUN -> [SKIP][169] ([i915#6944])
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_content_protection@legacy-hdcp14.html

  * igt@kms_content_protection@legacy@pipe-a-dp-3:
    - shard-dg2:          NOTRUN -> [FAIL][170] ([i915#7173])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_content_protection@legacy@pipe-a-dp-3.html

  * igt@kms_content_protection@mei-interface:
    - shard-tglu-1:       NOTRUN -> [SKIP][171] ([i915#6944] / [i915#9424])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@srm:
    - shard-dg2:          NOTRUN -> [SKIP][172] ([i915#6944] / [i915#7118])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@cursor-onscreen-128x42@pipe-a-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [FAIL][173] ([i915#13566]) +1 other test fail
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-128x42@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [FAIL][174] ([i915#13566])
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_cursor_crc@cursor-onscreen-256x85@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-mtlp:         NOTRUN -> [SKIP][175] ([i915#13049])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-1/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_crc@cursor-onscreen-max-size:
    - shard-tglu-1:       NOTRUN -> [SKIP][176] ([i915#3555]) +3 other tests skip
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-max-size.html

  * igt@kms_cursor_crc@cursor-random-128x128:
    - shard-dg1:          [PASS][177] -> [DMESG-WARN][178] ([i915#4423])
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-14/igt@kms_cursor_crc@cursor-random-128x128.html
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-18/igt@kms_cursor_crc@cursor-random-128x128.html

  * igt@kms_cursor_crc@cursor-random-64x21:
    - shard-mtlp:         NOTRUN -> [SKIP][179] ([i915#8814])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-5/igt@kms_cursor_crc@cursor-random-64x21.html

  * igt@kms_cursor_crc@cursor-rapid-movement-512x170:
    - shard-tglu-1:       NOTRUN -> [SKIP][180] ([i915#13049])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html

  * igt@kms_cursor_crc@cursor-sliding-128x42:
    - shard-tglu:         [PASS][181] -> [FAIL][182] ([i915#13566]) +3 other tests fail
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-4/igt@kms_cursor_crc@cursor-sliding-128x42.html
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-10/igt@kms_cursor_crc@cursor-sliding-128x42.html

  * igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1:
    - shard-rkl:          [PASS][183] -> [FAIL][184] ([i915#13566]) +1 other test fail
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-128x42@pipe-a-hdmi-a-1.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][185] ([i915#13049])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_cursor_crc@cursor-sliding-512x512.html
    - shard-tglu:         NOTRUN -> [SKIP][186] ([i915#13049])
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_crc@cursor-suspend:
    - shard-rkl:          [PASS][187] -> [INCOMPLETE][188] ([i915#12358] / [i915#14152])
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_cursor_crc@cursor-suspend.html
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@kms_cursor_crc@cursor-suspend.html

  * igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [INCOMPLETE][189] ([i915#12358] / [i915#14152])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@kms_cursor_crc@cursor-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_cursor_edge_walk@128x128-right-edge:
    - shard-dg1:          NOTRUN -> [DMESG-WARN][190] ([i915#4423])
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-17/igt@kms_cursor_edge_walk@128x128-right-edge.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
    - shard-rkl:          NOTRUN -> [SKIP][191] +23 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][192] ([i915#13046] / [i915#5354]) +2 other tests skip
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size:
    - shard-mtlp:         NOTRUN -> [SKIP][193] ([i915#9809]) +2 other tests skip
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-7/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-tglu:         NOTRUN -> [SKIP][194] +71 other tests skip
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-2/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-tglu:         NOTRUN -> [SKIP][195] ([i915#4103]) +2 other tests skip
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-3/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-mtlp:         NOTRUN -> [SKIP][196] ([i915#4213])
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
    - shard-dg2:          NOTRUN -> [SKIP][197] ([i915#4103] / [i915#4213])
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
    - shard-rkl:          NOTRUN -> [SKIP][198] ([i915#4103])
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html
    - shard-dg1:          NOTRUN -> [SKIP][199] ([i915#4103] / [i915#4213])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-13/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_dirtyfb@drrs-dirtyfb-ioctl:
    - shard-rkl:          NOTRUN -> [SKIP][200] ([i915#9723])
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-tglu:         NOTRUN -> [SKIP][201] ([i915#13691])
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1:
    - shard-rkl:          NOTRUN -> [SKIP][202] ([i915#3804])
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-1.html

  * igt@kms_dither@fb-8bpc-vs-panel-8bpc:
    - shard-dg2:          NOTRUN -> [SKIP][203] ([i915#3555]) +1 other test skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html

  * igt@kms_dp_aux_dev:
    - shard-rkl:          NOTRUN -> [SKIP][204] ([i915#1257] / [i915#14544])
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_dp_aux_dev.html

  * igt@kms_dp_link_training@non-uhbr-sst:
    - shard-tglu-1:       NOTRUN -> [SKIP][205] ([i915#13749])
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_dp_link_training@non-uhbr-sst.html

  * igt@kms_dp_linktrain_fallback@dp-fallback:
    - shard-rkl:          NOTRUN -> [SKIP][206] ([i915#13707])
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@kms_dp_linktrain_fallback@dp-fallback.html
    - shard-dg1:          NOTRUN -> [SKIP][207] ([i915#13707])
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_dp_linktrain_fallback@dp-fallback.html

  * igt@kms_dsc@dsc-fractional-bpp:
    - shard-tglu:         NOTRUN -> [SKIP][208] ([i915#3840])
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_dsc@dsc-fractional-bpp.html

  * igt@kms_dsc@dsc-with-bpc-formats:
    - shard-tglu-1:       NOTRUN -> [SKIP][209] ([i915#3555] / [i915#3840])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_dsc@dsc-with-bpc-formats.html

  * igt@kms_dsc@dsc-with-output-formats:
    - shard-rkl:          NOTRUN -> [SKIP][210] ([i915#3555] / [i915#3840])
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@kms_dsc@dsc-with-output-formats.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-dg2:          NOTRUN -> [SKIP][211] ([i915#3840] / [i915#9053])
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][212] ([i915#3469])
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_feature_discovery@display-3x:
    - shard-dg1:          NOTRUN -> [SKIP][213] ([i915#1839])
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-18/igt@kms_feature_discovery@display-3x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-dg2:          NOTRUN -> [SKIP][214] ([i915#9337])
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@kms_feature_discovery@dp-mst.html
    - shard-rkl:          NOTRUN -> [SKIP][215] ([i915#9337])
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_feature_discovery@dp-mst.html
    - shard-dg1:          NOTRUN -> [SKIP][216] ([i915#9337])
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-18/igt@kms_feature_discovery@dp-mst.html
    - shard-tglu:         NOTRUN -> [SKIP][217] ([i915#9337])
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-4/igt@kms_feature_discovery@dp-mst.html
    - shard-mtlp:         NOTRUN -> [SKIP][218] ([i915#9337])
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-8/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr2:
    - shard-tglu:         NOTRUN -> [SKIP][219] ([i915#658])
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-7/igt@kms_feature_discovery@psr2.html
    - shard-rkl:          NOTRUN -> [SKIP][220] ([i915#658])
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_feature_discovery@psr2.html

  * igt@kms_flip@2x-absolute-wf_vblank:
    - shard-dg2:          NOTRUN -> [SKIP][221] ([i915#9934]) +3 other tests skip
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-7/igt@kms_flip@2x-absolute-wf_vblank.html
    - shard-dg1:          NOTRUN -> [SKIP][222] ([i915#9934]) +4 other tests skip
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-17/igt@kms_flip@2x-absolute-wf_vblank.html

  * igt@kms_flip@2x-blocking-wf_vblank:
    - shard-tglu-1:       NOTRUN -> [SKIP][223] ([i915#3637] / [i915#9934]) +2 other tests skip
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_flip@2x-blocking-wf_vblank.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][224] ([i915#14544] / [i915#9934]) +1 other test skip
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html
    - shard-mtlp:         NOTRUN -> [SKIP][225] ([i915#3637] / [i915#9934]) +2 other tests skip
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-3/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible.html

  * igt@kms_flip@2x-nonexisting-fb:
    - shard-tglu:         NOTRUN -> [SKIP][226] ([i915#3637] / [i915#9934]) +7 other tests skip
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-2/igt@kms_flip@2x-nonexisting-fb.html

  * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset:
    - shard-rkl:          NOTRUN -> [SKIP][227] ([i915#9934]) +6 other tests skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html

  * igt@kms_flip@flip-vs-fences-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][228] ([i915#8381]) +1 other test skip
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@kms_flip@flip-vs-fences-interruptible.html
    - shard-dg1:          NOTRUN -> [SKIP][229] ([i915#8381])
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-17/igt@kms_flip@flip-vs-fences-interruptible.html
    - shard-mtlp:         NOTRUN -> [SKIP][230] ([i915#8381])
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@kms_flip@flip-vs-fences-interruptible.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-glk:          NOTRUN -> [INCOMPLETE][231] ([i915#12745] / [i915#4839]) +1 other test incomplete
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk9/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@flip-vs-suspend@a-hdmi-a1:
    - shard-glk:          NOTRUN -> [INCOMPLETE][232] ([i915#12745]) +1 other test incomplete
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk6/igt@kms_flip@flip-vs-suspend@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling:
    - shard-dg1:          NOTRUN -> [SKIP][233] ([i915#15643])
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-12/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html
    - shard-rkl:          NOTRUN -> [SKIP][234] ([i915#15643])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][235] ([i915#15643])
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html
    - shard-dg2:          NOTRUN -> [SKIP][236] ([i915#15643] / [i915#5190])
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][237] ([i915#15643]) +3 other tests skip
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-tglu:         NOTRUN -> [SKIP][238] ([i915#15643]) +3 other tests skip
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw:
    - shard-dg2:          NOTRUN -> [SKIP][239] ([i915#5354]) +14 other tests skip
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@kms_frontbuffer_tracking@fbc-2p-pri-indfb-multidraw.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt:
    - shard-dg1:          NOTRUN -> [SKIP][240] +22 other tests skip
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc:
    - shard-dg1:          NOTRUN -> [SKIP][241] ([i915#8708]) +4 other tests skip
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][242] ([i915#8708]) +5 other tests skip
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-tglu-1:       NOTRUN -> [SKIP][243] ([i915#5439])
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-gtt:
    - shard-tglu-1:       NOTRUN -> [SKIP][244] ([i915#15102]) +14 other tests skip
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][245] ([i915#14544] / [i915#15102]) +1 other test skip
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc.html
    - shard-dg1:          NOTRUN -> [SKIP][246] ([i915#15104]) +1 other test skip
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-16/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][247] ([i915#15104])
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-5/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-gtt.html
    - shard-dg2:          NOTRUN -> [SKIP][248] ([i915#15104]) +1 other test skip
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscreen-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-dg1:          NOTRUN -> [SKIP][249] ([i915#15102] / [i915#3458]) +7 other tests skip
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt:
    - shard-glk10:        NOTRUN -> [SKIP][250] +191 other tests skip
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk10/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt:
    - shard-tglu-1:       NOTRUN -> [SKIP][251] +31 other tests skip
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-onoff:
    - shard-mtlp:         NOTRUN -> [SKIP][252] ([i915#1825]) +8 other tests skip
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][253] ([i915#8708]) +3 other tests skip
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc:
    - shard-rkl:          NOTRUN -> [SKIP][254] ([i915#15102] / [i915#3023]) +15 other tests skip
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary:
    - shard-rkl:          NOTRUN -> [SKIP][255] ([i915#14544] / [i915#15102] / [i915#3023]) +2 other tests skip
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-shrfb-scaledprimary.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt:
    - shard-tglu:         NOTRUN -> [SKIP][256] ([i915#15102]) +27 other tests skip
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt.html
    - shard-dg2:          NOTRUN -> [SKIP][257] ([i915#15102])
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt.html
    - shard-dg1:          NOTRUN -> [SKIP][258] ([i915#15102])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite:
    - shard-rkl:          NOTRUN -> [SKIP][259] ([i915#15102]) +6 other tests skip
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-shrfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt:
    - shard-dg2:          NOTRUN -> [SKIP][260] ([i915#15102] / [i915#3458]) +6 other tests skip
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-pwrite:
    - shard-rkl:          NOTRUN -> [SKIP][261] ([i915#14544] / [i915#1825]) +1 other test skip
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt:
    - shard-rkl:          NOTRUN -> [SKIP][262] ([i915#1825]) +31 other tests skip
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-dg2:          NOTRUN -> [SKIP][263] ([i915#12713])
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-5/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_hdr@static-swap:
    - shard-tglu:         NOTRUN -> [SKIP][264] ([i915#3555] / [i915#8228]) +1 other test skip
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-2/igt@kms_hdr@static-swap.html

  * igt@kms_hdr@static-toggle:
    - shard-rkl:          NOTRUN -> [SKIP][265] ([i915#3555] / [i915#8228])
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_hdr@static-toggle.html
    - shard-tglu-1:       NOTRUN -> [SKIP][266] ([i915#3555] / [i915#8228])
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_hdr@static-toggle.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-dg2:          [PASS][267] -> [SKIP][268] ([i915#3555] / [i915#8228])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-11/igt@kms_hdr@static-toggle-dpms.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_hdr@static-toggle-dpms.html
    - shard-rkl:          [PASS][269] -> [SKIP][270] ([i915#3555] / [i915#8228]) +1 other test skip
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_hdr@static-toggle-dpms.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_invalid_mode@clock-too-high:
    - shard-mtlp:         NOTRUN -> [SKIP][271] ([i915#3555] / [i915#6403] / [i915#8826])
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-8/igt@kms_invalid_mode@clock-too-high.html

  * igt@kms_invalid_mode@clock-too-high@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][272] ([i915#9457]) +2 other tests skip
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-8/igt@kms_invalid_mode@clock-too-high@pipe-a-edp-1.html

  * igt@kms_invalid_mode@clock-too-high@pipe-d-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][273] ([i915#8826] / [i915#9457])
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-8/igt@kms_invalid_mode@clock-too-high@pipe-d-edp-1.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][274] ([i915#15460])
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-3/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-tglu-1:       NOTRUN -> [SKIP][275] ([i915#15459])
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_joiner@invalid-modeset-ultra-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][276] ([i915#15458])
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-4/igt@kms_joiner@invalid-modeset-ultra-joiner.html

  * igt@kms_panel_fitting@legacy:
    - shard-dg2:          NOTRUN -> [SKIP][277] ([i915#6301])
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@kms_panel_fitting@legacy.html
    - shard-tglu-1:       NOTRUN -> [SKIP][278] ([i915#6301])
   [278]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_panel_fitting@legacy.html

  * igt@kms_pipe_stress@stress-xrgb8888-4tiled:
    - shard-rkl:          NOTRUN -> [SKIP][279] ([i915#14712])
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@kms_pipe_stress@stress-xrgb8888-4tiled.html

  * igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier:
    - shard-mtlp:         NOTRUN -> [SKIP][280] ([i915#15709]) +1 other test skip
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-4/igt@kms_plane@pixel-format-4-tiled-bmg-ccs-modifier.html

  * igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier:
    - shard-tglu-1:       NOTRUN -> [SKIP][281] ([i915#15709]) +1 other test skip
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_plane@pixel-format-4-tiled-dg2-rc-ccs-cc-modifier.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier:
    - shard-rkl:          NOTRUN -> [SKIP][282] ([i915#15709])
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-cc-modifier.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier:
    - shard-tglu:         NOTRUN -> [SKIP][283] ([i915#15709]) +3 other tests skip
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_plane@pixel-format-4-tiled-mtl-rc-ccs-modifier.html

  * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-a-plane-7:
    - shard-tglu:         NOTRUN -> [SKIP][284] ([i915#15608]) +1 other test skip
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-10/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-a-plane-7.html

  * igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5:
    - shard-mtlp:         NOTRUN -> [SKIP][285] ([i915#15608]) +1 other test skip
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-5/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5.html
    - shard-dg2:          NOTRUN -> [SKIP][286] ([i915#15608]) +1 other test skip
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_plane@pixel-format-x-tiled-modifier@pipe-b-plane-5.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier:
    - shard-rkl:          NOTRUN -> [SKIP][287] ([i915#14544] / [i915#15709])
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_plane@pixel-format-y-tiled-gen12-mc-ccs-modifier.html

  * igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-7:
    - shard-tglu-1:       NOTRUN -> [SKIP][288] ([i915#15608]) +1 other test skip
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-7.html
    - shard-dg1:          NOTRUN -> [SKIP][289] ([i915#15608]) +1 other test skip
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-17/igt@kms_plane@pixel-format-y-tiled-gen12-rc-ccs-modifier@pipe-b-plane-7.html

  * igt@kms_plane@pixel-format-y-tiled-modifier-source-clamping:
    - shard-dg2:          NOTRUN -> [SKIP][290] ([i915#15709]) +3 other tests skip
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@kms_plane@pixel-format-y-tiled-modifier-source-clamping.html

  * igt@kms_plane@pixel-format-y-tiled-modifier@pipe-b-plane-5:
    - shard-rkl:          NOTRUN -> [SKIP][291] ([i915#15608]) +5 other tests skip
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_plane@pixel-format-y-tiled-modifier@pipe-b-plane-5.html

  * igt@kms_plane_lowres@tiling-4:
    - shard-tglu:         NOTRUN -> [SKIP][292] ([i915#3555]) +8 other tests skip
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_plane_lowres@tiling-4.html

  * igt@kms_plane_multiple@2x-tiling-none:
    - shard-rkl:          NOTRUN -> [SKIP][293] ([i915#13958]) +1 other test skip
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_plane_multiple@2x-tiling-none.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-tglu:         NOTRUN -> [SKIP][294] ([i915#13958])
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_plane_multiple@2x-tiling-y.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-mtlp:         NOTRUN -> [SKIP][295] ([i915#14259])
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-5/igt@kms_plane_multiple@tiling-y.html
    - shard-dg2:          NOTRUN -> [SKIP][296] ([i915#14259])
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_plane_multiple@tiling-y.html

  * igt@kms_plane_scaling@2x-scaler-multi-pipe:
    - shard-dg2:          NOTRUN -> [SKIP][297] ([i915#13046] / [i915#5354] / [i915#9423])
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-8/igt@kms_plane_scaling@2x-scaler-multi-pipe.html

  * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation:
    - shard-glk:          NOTRUN -> [SKIP][298] +229 other tests skip
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk1/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation.html

  * igt@kms_pm_backlight@bad-brightness:
    - shard-tglu:         NOTRUN -> [SKIP][299] ([i915#9812])
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_pm_backlight@bad-brightness.html

  * igt@kms_pm_backlight@brightness-with-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][300] ([i915#12343])
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@kms_pm_backlight@brightness-with-dpms.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-rkl:          NOTRUN -> [SKIP][301] ([i915#9685])
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@kms_pm_dc@dc5-psr.html
    - shard-dg1:          NOTRUN -> [SKIP][302] ([i915#9685])
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_pm_dc@dc5-psr.html
    - shard-tglu:         NOTRUN -> [SKIP][303] ([i915#9685])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_pm_dc@dc5-psr.html
    - shard-dg2:          NOTRUN -> [SKIP][304] ([i915#9685])
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-5/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-tglu-1:       NOTRUN -> [SKIP][305] ([i915#9685])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_lpsp@screens-disabled:
    - shard-tglu-1:       NOTRUN -> [SKIP][306] ([i915#8430])
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_pm_lpsp@screens-disabled.html

  * igt@kms_pm_rpm@dpms-mode-unset-lpsp:
    - shard-dg2:          [PASS][307] -> [SKIP][308] ([i915#15073])
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-4/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-7/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp:
    - shard-dg2:          NOTRUN -> [SKIP][309] ([i915#15073])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_pm_rpm@modeset-lpsp.html
    - shard-dg1:          NOTRUN -> [SKIP][310] ([i915#15073]) +1 other test skip
   [310]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-12/igt@kms_pm_rpm@modeset-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-mtlp:         NOTRUN -> [SKIP][311] ([i915#15073])
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-4/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-tglu-1:       NOTRUN -> [SKIP][312] ([i915#15073]) +1 other test skip
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - shard-dg1:          [PASS][313] -> [SKIP][314] ([i915#15073]) +1 other test skip
   [313]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-13/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html
    - shard-tglu:         NOTRUN -> [SKIP][315] ([i915#15073])
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@kms_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@kms_pm_rpm@pc8-residency:
    - shard-rkl:          NOTRUN -> [SKIP][316] ([i915#14544]) +1 other test skip
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_pm_rpm@pc8-residency.html

  * igt@kms_pm_rpm@system-suspend-idle:
    - shard-dg2:          [PASS][317] -> [INCOMPLETE][318] ([i915#14419])
   [317]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-11/igt@kms_pm_rpm@system-suspend-idle.html
   [318]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-3/igt@kms_pm_rpm@system-suspend-idle.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-glk:          NOTRUN -> [INCOMPLETE][319] ([i915#10553])
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk9/igt@kms_pm_rpm@system-suspend-modeset.html

  * igt@kms_prime@d3hot:
    - shard-tglu:         NOTRUN -> [SKIP][320] ([i915#6524])
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-5/igt@kms_prime@d3hot.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf:
    - shard-tglu:         NOTRUN -> [SKIP][321] ([i915#11520]) +10 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-5/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area:
    - shard-glk:          NOTRUN -> [SKIP][322] ([i915#11520]) +10 other tests skip
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk6/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area:
    - shard-snb:          NOTRUN -> [SKIP][323] ([i915#11520]) +3 other tests skip
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-snb5/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html
    - shard-dg1:          NOTRUN -> [SKIP][324] ([i915#11520]) +2 other tests skip
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][325] ([i915#9808])
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-1/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-a-edp-1.html

  * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][326] ([i915#12316]) +2 other tests skip
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-1/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area@pipe-b-edp-1.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          NOTRUN -> [SKIP][327] ([i915#11520]) +6 other tests skip
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_psr2_sf@pr-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb:
    - shard-rkl:          NOTRUN -> [SKIP][328] ([i915#11520] / [i915#14544]) +1 other test skip
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf:
    - shard-glk10:        NOTRUN -> [SKIP][329] ([i915#11520]) +7 other tests skip
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk10/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf:
    - shard-tglu-1:       NOTRUN -> [SKIP][330] ([i915#11520]) +4 other tests skip
   [330]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_psr2_sf@psr2-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
    - shard-dg2:          NOTRUN -> [SKIP][331] ([i915#11520]) +4 other tests skip
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-rkl:          NOTRUN -> [SKIP][332] ([i915#9683])
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-tglu:         NOTRUN -> [SKIP][333] ([i915#9683])
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-7/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr@fbc-pr-cursor-render:
    - shard-mtlp:         NOTRUN -> [SKIP][334] ([i915#9688]) +8 other tests skip
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-3/igt@kms_psr@fbc-pr-cursor-render.html

  * igt@kms_psr@fbc-pr-primary-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][335] ([i915#1072] / [i915#9732]) +10 other tests skip
   [335]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_psr@fbc-pr-primary-mmap-gtt.html

  * igt@kms_psr@fbc-psr2-sprite-render:
    - shard-rkl:          NOTRUN -> [SKIP][336] ([i915#1072] / [i915#9732]) +16 other tests skip
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_psr@fbc-psr2-sprite-render.html
    - shard-dg1:          NOTRUN -> [SKIP][337] ([i915#1072] / [i915#9732]) +10 other tests skip
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-12/igt@kms_psr@fbc-psr2-sprite-render.html

  * igt@kms_psr@pr-cursor-plane-onoff:
    - shard-rkl:          NOTRUN -> [SKIP][338] ([i915#1072] / [i915#14544] / [i915#9732]) +6 other tests skip
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_psr@pr-cursor-plane-onoff.html

  * igt@kms_psr@pr-dpms:
    - shard-tglu:         NOTRUN -> [SKIP][339] ([i915#9732]) +26 other tests skip
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@kms_psr@pr-dpms.html

  * igt@kms_psr@psr-primary-mmap-gtt@edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][340] ([i915#4077] / [i915#9688]) +1 other test skip
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-7/igt@kms_psr@psr-primary-mmap-gtt@edp-1.html

  * igt@kms_psr@psr2-sprite-mmap-gtt:
    - shard-tglu-1:       NOTRUN -> [SKIP][341] ([i915#9732]) +14 other tests skip
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_psr@psr2-sprite-mmap-gtt.html

  * igt@kms_rotation_crc@exhaust-fences:
    - shard-dg2:          NOTRUN -> [SKIP][342] ([i915#4235])
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-8/igt@kms_rotation_crc@exhaust-fences.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-bottom:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][343] ([i915#15500])
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk10/igt@kms_rotation_crc@multiplane-rotation-cropping-bottom.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-glk:          NOTRUN -> [INCOMPLETE][344] ([i915#15492])
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk9/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-tglu:         NOTRUN -> [SKIP][345] ([i915#5289]) +1 other test skip
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-8/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

  * igt@kms_rotation_crc@primary-rotation-270:
    - shard-mtlp:         NOTRUN -> [SKIP][346] ([i915#12755])
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-4/igt@kms_rotation_crc@primary-rotation-270.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0:
    - shard-rkl:          NOTRUN -> [SKIP][347] ([i915#5289])
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html
    - shard-mtlp:         NOTRUN -> [SKIP][348] ([i915#5289])
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-5/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90:
    - shard-dg1:          NOTRUN -> [SKIP][349] ([i915#5289]) +1 other test skip
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-90.html

  * igt@kms_setmode@basic:
    - shard-dg1:          [PASS][350] -> [FAIL][351] ([i915#15106])
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-16/igt@kms_setmode@basic.html
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-12/igt@kms_setmode@basic.html
    - shard-tglu:         [PASS][352] -> [FAIL][353] ([i915#15106]) +2 other tests fail
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-3/igt@kms_setmode@basic.html
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-4/igt@kms_setmode@basic.html

  * igt@kms_setmode@basic@pipe-a-hdmi-a-3:
    - shard-dg1:          NOTRUN -> [FAIL][354] ([i915#15106]) +1 other test fail
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-12/igt@kms_setmode@basic@pipe-a-hdmi-a-3.html

  * igt@kms_setmode@basic@pipe-b-edp-1:
    - shard-mtlp:         [PASS][355] -> [FAIL][356] ([i915#15106])
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@kms_setmode@basic@pipe-b-edp-1.html
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-1/igt@kms_setmode@basic@pipe-b-edp-1.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-tglu-1:       NOTRUN -> [SKIP][357] ([i915#8623])
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2:
    - shard-glk10:        NOTRUN -> [INCOMPLETE][358] ([i915#12276]) +1 other test incomplete
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-glk10/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2.html

  * igt@kms_vrr@flip-basic-fastset:
    - shard-tglu:         NOTRUN -> [SKIP][359] ([i915#9906])
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-10/igt@kms_vrr@flip-basic-fastset.html
    - shard-mtlp:         NOTRUN -> [SKIP][360] ([i915#8808] / [i915#9906])
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-5/igt@kms_vrr@flip-basic-fastset.html
    - shard-dg2:          NOTRUN -> [SKIP][361] ([i915#9906])
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@kms_vrr@flip-basic-fastset.html
    - shard-rkl:          NOTRUN -> [SKIP][362] ([i915#9906])
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_vrr@flip-basic-fastset.html

  * igt@kms_vrr@flip-suspend:
    - shard-mtlp:         NOTRUN -> [SKIP][363] ([i915#3555] / [i915#8808])
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-4/igt@kms_vrr@flip-suspend.html
    - shard-dg2:          NOTRUN -> [SKIP][364] ([i915#15243] / [i915#3555])
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@kms_vrr@flip-suspend.html
    - shard-rkl:          NOTRUN -> [SKIP][365] ([i915#15243] / [i915#3555])
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_vrr@flip-suspend.html
    - shard-dg1:          NOTRUN -> [SKIP][366] ([i915#3555])
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-16/igt@kms_vrr@flip-suspend.html

  * igt@kms_vrr@seamless-rr-switch-drrs:
    - shard-tglu-1:       NOTRUN -> [SKIP][367] ([i915#9906])
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-1/igt@kms_vrr@seamless-rr-switch-drrs.html

  * igt@perf@global-sseu-config:
    - shard-dg2:          NOTRUN -> [SKIP][368] ([i915#7387])
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-1/igt@perf@global-sseu-config.html

  * igt@perf_pmu@busy-idle@vcs1:
    - shard-mtlp:         [PASS][369] -> [FAIL][370] ([i915#4349]) +8 other tests fail
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-7/igt@perf_pmu@busy-idle@vcs1.html
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-6/igt@perf_pmu@busy-idle@vcs1.html

  * igt@perf_pmu@module-unload:
    - shard-dg2:          NOTRUN -> [FAIL][371] ([i915#14433])
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@perf_pmu@module-unload.html

  * igt@prime_mmap@test_aperture_limit:
    - shard-dg2:          NOTRUN -> [SKIP][372] ([i915#14121]) +1 other test skip
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-6/igt@prime_mmap@test_aperture_limit.html

  * igt@prime_vgem@basic-fence-read:
    - shard-rkl:          NOTRUN -> [SKIP][373] ([i915#3291] / [i915#3708])
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@prime_vgem@basic-fence-read.html
    - shard-dg1:          NOTRUN -> [SKIP][374] ([i915#3708])
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-13/igt@prime_vgem@basic-fence-read.html

  * igt@sriov_basic@enable-vfs-autoprobe-off:
    - shard-rkl:          NOTRUN -> [SKIP][375] ([i915#14544] / [i915#9917])
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@sriov_basic@enable-vfs-autoprobe-off.html
    - shard-dg1:          NOTRUN -> [SKIP][376] ([i915#9917])
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-18/igt@sriov_basic@enable-vfs-autoprobe-off.html

  * igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all:
    - shard-rkl:          NOTRUN -> [SKIP][377] ([i915#9917])
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@sriov_basic@enable-vfs-bind-unbind-each-numvfs-all.html

  
#### Possible fixes ####

  * igt@gem_exec_big@single:
    - shard-tglu:         [ABORT][378] ([i915#11713]) -> [PASS][379]
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-4/igt@gem_exec_big@single.html
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@gem_exec_big@single.html

  * igt@i915_pm_freq_api@freq-suspend@gt0:
    - shard-dg2:          [INCOMPLETE][380] ([i915#13356] / [i915#13820]) -> [PASS][381] +1 other test pass
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-5/igt@i915_pm_freq_api@freq-suspend@gt0.html
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-8/igt@i915_pm_freq_api@freq-suspend@gt0.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-tglu:         [WARN][382] ([i915#13790] / [i915#2681]) -> [PASS][383] +1 other test pass
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-10/igt@i915_pm_rc6_residency@rc6-fence.html
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-6/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@i915_pm_rps@reset:
    - shard-mtlp:         [ABORT][384] -> [PASS][385]
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-2/igt@i915_pm_rps@reset.html
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-8/igt@i915_pm_rps@reset.html

  * igt@i915_selftest@live:
    - shard-mtlp:         [DMESG-FAIL][386] ([i915#12061] / [i915#15560]) -> [PASS][387]
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@i915_selftest@live.html
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-2/igt@i915_selftest@live.html

  * igt@i915_selftest@live@workarounds:
    - shard-mtlp:         [DMESG-FAIL][388] ([i915#12061]) -> [PASS][389]
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@i915_selftest@live@workarounds.html
   [389]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-2/igt@i915_selftest@live@workarounds.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-dg2:          [DMESG-WARN][390] ([i915#14545]) -> [PASS][391]
   [390]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-6/igt@i915_suspend@basic-s3-without-i915.html
   [391]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@i915_suspend@basic-s3-without-i915.html
    - shard-rkl:          [ABORT][392] ([i915#15131]) -> [PASS][393]
   [392]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@i915_suspend@basic-s3-without-i915.html
   [393]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@i915_suspend@basic-s3-without-i915.html

  * igt@i915_suspend@debugfs-reader:
    - shard-rkl:          [INCOMPLETE][394] ([i915#4817]) -> [PASS][395]
   [394]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@i915_suspend@debugfs-reader.html
   [395]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@i915_suspend@debugfs-reader.html

  * igt@i915_suspend@sysfs-reader:
    - shard-rkl:          [ABORT][396] ([i915#15140]) -> [PASS][397]
   [396]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@i915_suspend@sysfs-reader.html
   [397]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@i915_suspend@sysfs-reader.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-rkl:          [FAIL][398] -> [PASS][399]
   [398]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_async_flips@alternate-sync-async-flip.html
   [399]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_color@deep-color:
    - shard-dg2:          [SKIP][400] ([i915#12655] / [i915#3555]) -> [PASS][401]
   [400]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-7/igt@kms_color@deep-color.html
   [401]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_color@deep-color.html

  * igt@kms_force_connector_basic@prune-stale-modes:
    - shard-mtlp:         [SKIP][402] ([i915#15672]) -> [PASS][403]
   [402]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-1/igt@kms_force_connector_basic@prune-stale-modes.html
   [403]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-8/igt@kms_force_connector_basic@prune-stale-modes.html

  * igt@kms_hdr@bpc-switch:
    - shard-rkl:          [SKIP][404] ([i915#3555] / [i915#8228]) -> [PASS][405]
   [404]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_hdr@bpc-switch.html
   [405]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_hdr@bpc-switch.html

  * igt@kms_joiner@basic-max-non-joiner:
    - shard-tglu:         [SKIP][406] ([i915#13688]) -> [PASS][407]
   [406]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-tglu-4/igt@kms_joiner@basic-max-non-joiner.html
   [407]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-tglu-3/igt@kms_joiner@basic-max-non-joiner.html
    - shard-mtlp:         [SKIP][408] ([i915#13688]) -> [PASS][409]
   [408]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-5/igt@kms_joiner@basic-max-non-joiner.html
   [409]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-7/igt@kms_joiner@basic-max-non-joiner.html
    - shard-dg1:          [SKIP][410] ([i915#13688]) -> [PASS][411]
   [410]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-17/igt@kms_joiner@basic-max-non-joiner.html
   [411]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-14/igt@kms_joiner@basic-max-non-joiner.html
    - shard-snb:          [SKIP][412] -> [PASS][413]
   [412]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-snb1/igt@kms_joiner@basic-max-non-joiner.html
   [413]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-snb5/igt@kms_joiner@basic-max-non-joiner.html

  * igt@kms_pm_rpm@modeset-non-lpsp-stress:
    - shard-rkl:          [SKIP][414] ([i915#15073]) -> [PASS][415] +1 other test pass
   [414]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_pm_rpm@modeset-non-lpsp-stress.html
   [415]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_pm_rpm@modeset-non-lpsp-stress.html

  * igt@kms_vrr@negative-basic:
    - shard-mtlp:         [FAIL][416] ([i915#15420]) -> [PASS][417] +1 other test pass
   [416]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-4/igt@kms_vrr@negative-basic.html
   [417]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-1/igt@kms_vrr@negative-basic.html

  * igt@perf_pmu@most-busy-check-all@bcs0:
    - shard-mtlp:         [FAIL][418] ([i915#15520]) -> [PASS][419] +1 other test pass
   [418]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-8/igt@perf_pmu@most-busy-check-all@bcs0.html
   [419]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-5/igt@perf_pmu@most-busy-check-all@bcs0.html

  
#### Warnings ####

  * igt@api_intel_bb@crc32:
    - shard-rkl:          [SKIP][420] ([i915#6230]) -> [SKIP][421] ([i915#14544] / [i915#6230])
   [420]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@api_intel_bb@crc32.html
   [421]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@api_intel_bb@crc32.html

  * igt@device_reset@cold-reset-bound:
    - shard-rkl:          [SKIP][422] ([i915#11078] / [i915#14544]) -> [SKIP][423] ([i915#11078])
   [422]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@device_reset@cold-reset-bound.html
   [423]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@device_reset@cold-reset-bound.html

  * igt@gem_basic@multigpu-create-close:
    - shard-rkl:          [SKIP][424] ([i915#7697]) -> [SKIP][425] ([i915#14544] / [i915#7697])
   [424]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@gem_basic@multigpu-create-close.html
   [425]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@gem_basic@multigpu-create-close.html

  * igt@gem_ccs@block-copy-compressed:
    - shard-rkl:          [SKIP][426] ([i915#14544] / [i915#3555] / [i915#9323]) -> [SKIP][427] ([i915#3555] / [i915#9323])
   [426]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_ccs@block-copy-compressed.html
   [427]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@gem_ccs@block-copy-compressed.html

  * igt@gem_ccs@block-multicopy-compressed:
    - shard-rkl:          [SKIP][428] ([i915#9323]) -> [SKIP][429] ([i915#14544] / [i915#9323])
   [428]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@gem_ccs@block-multicopy-compressed.html
   [429]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@gem_ccs@block-multicopy-compressed.html

  * igt@gem_ccs@suspend-resume:
    - shard-rkl:          [SKIP][430] ([i915#14544] / [i915#9323]) -> [SKIP][431] ([i915#9323])
   [430]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_ccs@suspend-resume.html
   [431]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@gem_ccs@suspend-resume.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-rkl:          [SKIP][432] ([i915#14544] / [i915#4525]) -> [SKIP][433] ([i915#4525])
   [432]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_exec_balancer@parallel-contexts.html
   [433]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_capture@capture-recoverable:
    - shard-rkl:          [SKIP][434] ([i915#14544] / [i915#6344]) -> [SKIP][435] ([i915#6344])
   [434]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_exec_capture@capture-recoverable.html
   [435]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@gem_exec_capture@capture-recoverable.html

  * igt@gem_exec_reloc@basic-scanout:
    - shard-rkl:          [SKIP][436] ([i915#14544] / [i915#3281]) -> [SKIP][437] ([i915#3281]) +4 other tests skip
   [436]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_exec_reloc@basic-scanout.html
   [437]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@gem_exec_reloc@basic-scanout.html

  * igt@gem_exec_reloc@basic-write-read:
    - shard-rkl:          [SKIP][438] ([i915#3281]) -> [SKIP][439] ([i915#14544] / [i915#3281]) +6 other tests skip
   [438]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@gem_exec_reloc@basic-write-read.html
   [439]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@gem_exec_reloc@basic-write-read.html

  * igt@gem_exec_schedule@semaphore-power:
    - shard-rkl:          [SKIP][440] ([i915#7276]) -> [SKIP][441] ([i915#14544] / [i915#7276])
   [440]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@gem_exec_schedule@semaphore-power.html
   [441]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@gem_exec_schedule@semaphore-power.html

  * igt@gem_lmem_swapping@smem-oom:
    - shard-rkl:          [SKIP][442] ([i915#14544] / [i915#4613]) -> [SKIP][443] ([i915#4613])
   [442]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_lmem_swapping@smem-oom.html
   [443]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@gem_lmem_swapping@smem-oom.html

  * igt@gem_mmap_offset@clear-via-pagefault:
    - shard-mtlp:         [DMESG-WARN][444] ([i915#15478]) -> [ABORT][445] ([i915#14809]) +1 other test abort
   [444]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-mtlp-7/igt@gem_mmap_offset@clear-via-pagefault.html
   [445]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-mtlp-3/igt@gem_mmap_offset@clear-via-pagefault.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-display:
    - shard-rkl:          [SKIP][446] ([i915#3282]) -> [SKIP][447] ([i915#14544] / [i915#3282]) +5 other tests skip
   [446]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-2/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
   [447]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@gem_partial_pwrite_pread@writes-after-reads-display.html

  * igt@gem_pwrite@basic-self:
    - shard-rkl:          [SKIP][448] ([i915#14544] / [i915#3282]) -> [SKIP][449] ([i915#3282])
   [448]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_pwrite@basic-self.html
   [449]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@gem_pwrite@basic-self.html

  * igt@gem_userptr_blits@unsync-overlap:
    - shard-rkl:          [SKIP][450] ([i915#14544] / [i915#3297]) -> [SKIP][451] ([i915#3297])
   [450]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gem_userptr_blits@unsync-overlap.html
   [451]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@gem_userptr_blits@unsync-overlap.html

  * igt@gen9_exec_parse@bb-start-out:
    - shard-rkl:          [SKIP][452] ([i915#2527]) -> [SKIP][453] ([i915#14544] / [i915#2527]) +1 other test skip
   [452]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@gen9_exec_parse@bb-start-out.html
   [453]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@gen9_exec_parse@bb-start-out.html

  * igt@gen9_exec_parse@valid-registers:
    - shard-rkl:          [SKIP][454] ([i915#14544] / [i915#2527]) -> [SKIP][455] ([i915#2527]) +2 other tests skip
   [454]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@gen9_exec_parse@valid-registers.html
   [455]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@gen9_exec_parse@valid-registers.html

  * igt@i915_pm_freq_api@freq-suspend:
    - shard-rkl:          [SKIP][456] ([i915#14544] / [i915#8399]) -> [SKIP][457] ([i915#8399])
   [456]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@i915_pm_freq_api@freq-suspend.html
   [457]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@i915_pm_freq_api@freq-suspend.html

  * igt@i915_suspend@forcewake:
    - shard-rkl:          [INCOMPLETE][458] ([i915#4817]) -> [ABORT][459] ([i915#15140])
   [458]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@i915_suspend@forcewake.html
   [459]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-1/igt@i915_suspend@forcewake.html

  * igt@kms_big_fb@4-tiled-32bpp-rotate-0:
    - shard-rkl:          [SKIP][460] ([i915#5286]) -> [SKIP][461] ([i915#14544] / [i915#5286]) +2 other tests skip
   [460]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html
   [461]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-rkl:          [SKIP][462] ([i915#14544] / [i915#5286]) -> [SKIP][463] ([i915#5286])
   [462]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html
   [463]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-rkl:          [SKIP][464] ([i915#3638]) -> [SKIP][465] ([i915#14544] / [i915#3638])
   [464]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html
   [465]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-16bpp-rotate-270:
    - shard-rkl:          [SKIP][466] ([i915#14544]) -> [SKIP][467] +9 other tests skip
   [466]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html
   [467]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_big_fb@yf-tiled-16bpp-rotate-270.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          [SKIP][468] ([i915#6095]) -> [SKIP][469] ([i915#14544] / [i915#6095]) +7 other tests skip
   [468]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html
   [469]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs:
    - shard-rkl:          [SKIP][470] ([i915#14098] / [i915#14544] / [i915#6095]) -> [SKIP][471] ([i915#14098] / [i915#6095]) +12 other tests skip
   [470]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs.html
   [471]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_ccs@ccs-on-another-bo-y-tiled-gen12-mc-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2:
    - shard-rkl:          [SKIP][472] ([i915#14544] / [i915#6095]) -> [SKIP][473] ([i915#6095]) +11 other tests skip
   [472]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2.html
   [473]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-mtl-rc-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs:
    - shard-rkl:          [SKIP][474] ([i915#14098] / [i915#6095]) -> [SKIP][475] ([i915#14098] / [i915#14544] / [i915#6095]) +11 other tests skip
   [474]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-2/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs.html
   [475]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_ccs@crc-sprite-planes-basic-yf-tiled-ccs.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-rkl:          [SKIP][476] ([i915#3742]) -> [SKIP][477] ([i915#14544] / [i915#3742])
   [476]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@kms_cdclk@mode-transition-all-outputs.html
   [477]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k:
    - shard-dg1:          [SKIP][478] ([i915#11151] / [i915#4423] / [i915#7828]) -> [SKIP][479] ([i915#11151] / [i915#7828])
   [478]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-17/igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k.html
   [479]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-18/igt@kms_chamelium_edid@dp-edid-stress-resolution-non-4k.html

  * igt@kms_chamelium_frames@hdmi-crc-multiple:
    - shard-rkl:          [SKIP][480] ([i915#11151] / [i915#7828]) -> [SKIP][481] ([i915#11151] / [i915#14544] / [i915#7828]) +2 other tests skip
   [480]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@kms_chamelium_frames@hdmi-crc-multiple.html
   [481]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_chamelium_frames@hdmi-crc-multiple.html

  * igt@kms_chamelium_hpd@vga-hpd-after-suspend:
    - shard-rkl:          [SKIP][482] ([i915#11151] / [i915#14544] / [i915#7828]) -> [SKIP][483] ([i915#11151] / [i915#7828]) +5 other tests skip
   [482]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_chamelium_hpd@vga-hpd-after-suspend.html
   [483]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_chamelium_hpd@vga-hpd-after-suspend.html

  * igt@kms_content_protection@atomic-hdcp14:
    - shard-dg2:          [FAIL][484] ([i915#7173]) -> [SKIP][485] ([i915#6944])
   [484]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-10/igt@kms_content_protection@atomic-hdcp14.html
   [485]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-7/igt@kms_content_protection@atomic-hdcp14.html

  * igt@kms_content_protection@legacy:
    - shard-dg2:          [SKIP][486] ([i915#6944] / [i915#7118] / [i915#9424]) -> [FAIL][487] ([i915#7173])
   [486]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-7/igt@kms_content_protection@legacy.html
   [487]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-11/igt@kms_content_protection@legacy.html

  * igt@kms_content_protection@lic-type-0-hdcp14:
    - shard-rkl:          [SKIP][488] ([i915#6944]) -> [SKIP][489] ([i915#14544] / [i915#6944])
   [488]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-7/igt@kms_content_protection@lic-type-0-hdcp14.html
   [489]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_content_protection@lic-type-0-hdcp14.html

  * igt@kms_content_protection@uevent:
    - shard-rkl:          [SKIP][490] ([i915#14544] / [i915#6944] / [i915#7118] / [i915#9424]) -> [SKIP][491] ([i915#6944] / [i915#7118] / [i915#9424])
   [490]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_content_protection@uevent.html
   [491]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-1/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-onscreen-512x512:
    - shard-rkl:          [SKIP][492] ([i915#13049]) -> [SKIP][493] ([i915#13049] / [i915#14544])
   [492]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_cursor_crc@cursor-onscreen-512x512.html
   [493]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_cursor_crc@cursor-onscreen-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x10:
    - shard-rkl:          [SKIP][494] ([i915#3555]) -> [SKIP][495] ([i915#14544] / [i915#3555]) +1 other test skip
   [494]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html
   [495]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-32x10.html

  * igt@kms_cursor_crc@cursor-rapid-movement-32x32:
    - shard-rkl:          [SKIP][496] ([i915#14544] / [i915#3555]) -> [SKIP][497] ([i915#3555]) +3 other tests skip
   [496]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html
   [497]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size:
    - shard-rkl:          [SKIP][498] ([i915#14544] / [i915#4103]) -> [SKIP][499] ([i915#4103])
   [498]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html
   [499]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-varying-size.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-rkl:          [SKIP][500] ([i915#13691] / [i915#14544]) -> [SKIP][501] ([i915#13691])
   [500]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_display_modes@extended-mode-basic.html
   [501]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dp_link_training@non-uhbr-mst:
    - shard-rkl:          [SKIP][502] ([i915#13749] / [i915#14544]) -> [SKIP][503] ([i915#13749])
   [502]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_dp_link_training@non-uhbr-mst.html
   [503]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_dp_link_training@non-uhbr-mst.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc:
    - shard-rkl:          [SKIP][504] ([i915#3840]) -> [SKIP][505] ([i915#14544] / [i915#3840])
   [504]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html
   [505]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-rkl:          [SKIP][506] ([i915#14544] / [i915#3555] / [i915#3840]) -> [SKIP][507] ([i915#3555] / [i915#3840])
   [506]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_dsc@dsc-with-bpc.html
   [507]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_dsc@dsc-with-output-formats-with-bpc:
    - shard-rkl:          [SKIP][508] ([i915#3840] / [i915#9053]) -> [SKIP][509] ([i915#14544] / [i915#3840] / [i915#9053])
   [508]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_dsc@dsc-with-output-formats-with-bpc.html
   [509]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_dsc@dsc-with-output-formats-with-bpc.html

  * igt@kms_fbcon_fbt@psr:
    - shard-rkl:          [SKIP][510] ([i915#14544] / [i915#3955]) -> [SKIP][511] ([i915#3955])
   [510]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_fbcon_fbt@psr.html
   [511]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@kms_fbcon_fbt@psr.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - shard-rkl:          [SKIP][512] ([i915#3955]) -> [SKIP][513] ([i915#14544] / [i915#3955])
   [512]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_fbcon_fbt@psr-suspend.html
   [513]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@2x-busy-flip:
    - shard-rkl:          [SKIP][514] ([i915#14544] / [i915#9934]) -> [SKIP][515] ([i915#9934]) +3 other tests skip
   [514]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_flip@2x-busy-flip.html
   [515]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_flip@2x-busy-flip.html

  * igt@kms_flip@2x-plain-flip:
    - shard-rkl:          [SKIP][516] ([i915#9934]) -> [SKIP][517] ([i915#14544] / [i915#9934]) +4 other tests skip
   [516]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@kms_flip@2x-plain-flip.html
   [517]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_flip@2x-plain-flip.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling:
    - shard-rkl:          [SKIP][518] ([i915#14544] / [i915#15643]) -> [SKIP][519] ([i915#15643]) +1 other test skip
   [518]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html
   [519]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling:
    - shard-rkl:          [SKIP][520] ([i915#15643]) -> [SKIP][521] ([i915#14544] / [i915#15643]) +1 other test skip
   [520]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html
   [521]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
    - shard-dg2:          [SKIP][522] ([i915#15102] / [i915#3458]) -> [SKIP][523] ([i915#10433] / [i915#15102] / [i915#3458]) +3 other tests skip
   [522]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [523]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt:
    - shard-rkl:          [SKIP][524] -> [SKIP][525] ([i915#14544]) +10 other tests skip
   [524]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt.html
   [525]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-pwrite:
    - shard-rkl:          [SKIP][526] ([i915#14544] / [i915#1825]) -> [SKIP][527] ([i915#1825]) +17 other tests skip
   [526]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-pwrite.html
   [527]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-rkl:          [SKIP][528] ([i915#14544] / [i915#5439]) -> [SKIP][529] ([i915#5439])
   [528]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
   [529]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-blt:
    - shard-dg1:          [SKIP][530] ([i915#15102]) -> [SKIP][531] ([i915#15102] / [i915#4423])
   [530]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg1-14/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-blt.html
   [531]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg1-18/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-wc:
    - shard-rkl:          [SKIP][532] ([i915#15102]) -> [SKIP][533] ([i915#14544] / [i915#15102]) +1 other test skip
   [532]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-wc.html
   [533]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-offscreen-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move:
    - shard-dg2:          [SKIP][534] ([i915#10433] / [i915#15102] / [i915#3458]) -> [SKIP][535] ([i915#15102] / [i915#3458]) +3 other tests skip
   [534]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html
   [535]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-dg2-7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-rkl:          [SKIP][536] ([i915#1825]) -> [SKIP][537] ([i915#14544] / [i915#1825]) +16 other tests skip
   [536]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt.html
   [537]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-modesetfrombusy:
    - shard-rkl:          [SKIP][538] ([i915#14544] / [i915#15102] / [i915#3023]) -> [SKIP][539] ([i915#15102] / [i915#3023]) +10 other tests skip
   [538]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-modesetfrombusy.html
   [539]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_frontbuffer_tracking@psr-modesetfrombusy.html

  * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render:
    - shard-rkl:          [SKIP][540] ([i915#15102] / [i915#3023]) -> [SKIP][541] ([i915#14544] / [i915#15102] / [i915#3023]) +8 other tests skip
   [540]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render.html
   [541]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-render.html

  * igt@kms_joiner@basic-big-joiner:
    - shard-rkl:          [SKIP][542] ([i915#15460]) -> [SKIP][543] ([i915#14544] / [i915#15460]) +1 other test skip
   [542]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-2/igt@kms_joiner@basic-big-joiner.html
   [543]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_joiner@basic-big-joiner.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-rkl:          [SKIP][544] ([i915#14544] / [i915#15458]) -> [SKIP][545] ([i915#15458])
   [544]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_joiner@basic-force-ultra-joiner.html
   [545]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier:
    - shard-rkl:          [SKIP][546] ([i915#15709]) -> [SKIP][547] ([i915#14544] / [i915#15709])
   [546]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-1/igt@kms_plane@pixel-format-y-tiled-ccs-modifier.html
   [547]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_plane@pixel-format-y-tiled-ccs-modifier.html

  * igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping:
    - shard-rkl:          [SKIP][548] ([i915#14544] / [i915#15709]) -> [SKIP][549] ([i915#15709])
   [548]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html
   [549]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_plane@pixel-format-y-tiled-ccs-modifier-source-clamping.html

  * igt@kms_pm_backlight@bad-brightness:
    - shard-rkl:          [SKIP][550] ([i915#14544] / [i915#5354]) -> [SKIP][551] ([i915#5354])
   [550]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_pm_backlight@bad-brightness.html
   [551]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@kms_pm_backlight@bad-brightness.html

  * igt@kms_pm_backlight@fade-with-dpms:
    - shard-rkl:          [SKIP][552] ([i915#5354]) -> [SKIP][553] ([i915#14544] / [i915#5354])
   [552]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-3/igt@kms_pm_backlight@fade-with-dpms.html
   [553]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_pm_backlight@fade-with-dpms.html

  * igt@kms_pm_dc@dc6-psr:
    - shard-rkl:          [SKIP][554] ([i915#14544] / [i915#9685]) -> [SKIP][555] ([i915#9685]) +1 other test skip
   [554]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_pm_dc@dc6-psr.html
   [555]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_pm_dc@dc6-psr.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-rkl:          [SKIP][556] ([i915#14544] / [i915#9340]) -> [SKIP][557] ([i915#9340])
   [556]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_pm_lpsp@kms-lpsp.html
   [557]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_prime@basic-modeset-hybrid:
    - shard-rkl:          [SKIP][558] ([i915#6524]) -> [SKIP][559] ([i915#14544] / [i915#6524])
   [558]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_prime@basic-modeset-hybrid.html
   [559]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_prime@basic-modeset-hybrid.html

  * igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area:
    - shard-rkl:          [SKIP][560] ([i915#11520] / [i915#14544]) -> [SKIP][561] ([i915#11520]) +2 other tests skip
   [560]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html
   [561]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-4/igt@kms_psr2_sf@pr-primary-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area:
    - shard-rkl:          [SKIP][562] ([i915#11520]) -> [SKIP][563] ([i915#11520] / [i915#14544]) +2 other tests skip
   [562]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html
   [563]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_psr2_sf@psr2-overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr@pr-sprite-render:
    - shard-rkl:          [SKIP][564] ([i915#1072] / [i915#14544] / [i915#9732]) -> [SKIP][565] ([i915#1072] / [i915#9732]) +8 other tests skip
   [564]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_psr@pr-sprite-render.html
   [565]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-8/igt@kms_psr@pr-sprite-render.html

  * igt@kms_psr@psr-sprite-plane-move:
    - shard-rkl:          [SKIP][566] ([i915#1072] / [i915#9732]) -> [SKIP][567] ([i915#1072] / [i915#14544] / [i915#9732]) +5 other tests skip
   [566]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-8/igt@kms_psr@psr-sprite-plane-move.html
   [567]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_psr@psr-sprite-plane-move.html

  * igt@kms_vrr@flip-dpms:
    - shard-rkl:          [SKIP][568] ([i915#14544] / [i915#15243] / [i915#3555]) -> [SKIP][569] ([i915#15243] / [i915#3555])
   [568]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_vrr@flip-dpms.html
   [569]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-2/igt@kms_vrr@flip-dpms.html

  * igt@kms_vrr@seamless-rr-switch-drrs:
    - shard-rkl:          [SKIP][570] ([i915#14544] / [i915#9906]) -> [SKIP][571] ([i915#9906])
   [570]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@kms_vrr@seamless-rr-switch-drrs.html
   [571]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-7/igt@kms_vrr@seamless-rr-switch-drrs.html

  * igt@kms_vrr@seamless-rr-switch-vrr:
    - shard-rkl:          [SKIP][572] ([i915#9906]) -> [SKIP][573] ([i915#14544] / [i915#9906])
   [572]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-5/igt@kms_vrr@seamless-rr-switch-vrr.html
   [573]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-6/igt@kms_vrr@seamless-rr-switch-vrr.html

  * igt@perf_pmu@rc6-all-gts:
    - shard-rkl:          [SKIP][574] ([i915#14544] / [i915#8516]) -> [SKIP][575] ([i915#8516])
   [574]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@perf_pmu@rc6-all-gts.html
   [575]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-5/igt@perf_pmu@rc6-all-gts.html

  * igt@prime_vgem@fence-read-hang:
    - shard-rkl:          [SKIP][576] ([i915#14544] / [i915#3708]) -> [SKIP][577] ([i915#3708])
   [576]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_18013/shard-rkl-6/igt@prime_vgem@fence-read-hang.html
   [577]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_14583/shard-rkl-3/igt@prime_vgem@fence-read-hang.html

  
  [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307
  [i915#10333]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10333
  [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433
  [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434
  [i915#10553]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10553
  [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
  [i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099
  [i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078
  [i915#11151]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11151
  [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520
  [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681
  [i915#11713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11713
  [i915#11815]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11815
  [i915#11965]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11965
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276
  [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313
  [i915#12316]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316
  [i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343
  [i915#12358]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12358
  [i915#1257]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1257
  [i915#12655]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12655
  [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713
  [i915#12745]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12745
  [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755
  [i915#12761]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12761
  [i915#12805]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12805
  [i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964
  [i915#13029]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13029
  [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046
  [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049
  [i915#13356]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13356
  [i915#13566]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13566
  [i915#13688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13688
  [i915#13691]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13691
  [i915#13707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13707
  [i915#13717]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13717
  [i915#13749]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13749
  [i915#13790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13790
  [i915#13809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13809
  [i915#13820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13820
  [i915#13958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13958
  [i915#14098]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14098
  [i915#14118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14118
  [i915#14121]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14121
  [i915#14152]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14152
  [i915#14259]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14259
  [i915#14419]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14419
  [i915#14433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14433
  [i915#14544]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14544
  [i915#14545]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14545
  [i915#14712]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14712
  [i915#14809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14809
  [i915#15073]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15073
  [i915#15102]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15102
  [i915#15104]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15104
  [i915#15106]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15106
  [i915#15131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15131
  [i915#15140]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15140
  [i915#15243]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15243
  [i915#15330]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15330
  [i915#15342]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15342
  [i915#15420]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15420
  [i915#15458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15458
  [i915#15459]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15459
  [i915#15460]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15460
  [i915#15478]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15478
  [i915#15479]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15479
  [i915#15481]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15481
  [i915#15492]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15492
  [i915#15500]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15500
  [i915#15520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15520
  [i915#15560]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15560
  [i915#15582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15582
  [i915#15608]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15608
  [i915#15643]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15643
  [i915#15672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15672
  [i915#15678]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15678
  [i915#15709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/15709
  [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839
  [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190
  [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527
  [i915#2658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2658
  [i915#2681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2681
  [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280
  [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856
  [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023
  [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299
  [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3469
  [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638
  [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708
  [i915#3742]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3742
  [i915#3804]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3804
  [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828
  [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
  [i915#3955]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3955
  [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083
  [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#4235]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4235
  [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270
  [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349
  [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423
  [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
  [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812
  [i915#4817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4817
  [i915#4839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4839
  [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852
  [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860
  [i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880
  [i915#5138]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5138
  [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190
  [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286
  [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289
  [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
  [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439
  [i915#5723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5723
  [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095
  [i915#6187]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6187
  [i915#6188]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6188
  [i915#6230]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6230
  [i915#6301]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6301
  [i915#6334]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6334
  [i915#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344
  [i915#6403]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6403
  [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658
  [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621
  [i915#6944]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944
  [i915#7116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118
  [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173
  [i915#7276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7276
  [i915#7387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7387
  [i915#7582]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7582
  [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697
  [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
  [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828
  [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228
  [i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381
  [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399
  [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411
  [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428
  [i915#8430]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8430
  [i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516
  [i915#8562]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8562
  [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623
  [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708
  [i915#8808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8808
  [i915#8814]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8814
  [i915#8826]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8826
  [i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053
  [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323
  [i915#9337]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9337
  [i915#9340]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9340
  [i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423
  [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424
  [i915#9457]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9457
  [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683
  [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685
  [i915#9688]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9688
  [i915#9723]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9723
  [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
  [i915#9808]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9808
  [i915#9809]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9809
  [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812
  [i915#9906]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9906
  [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917
  [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934


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

  * CI: CI-20190529 -> None
  * IGT: IGT_8764 -> IGTPW_14583
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_18013: 5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_14583: 14583
  IGT_8764: 8764
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* ✗ Xe.CI.FULL: failure for tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4)
  2026-02-20 15:22 [PATCH 0/3] tests/kms_pipe_crc_basic: add mst suspend-resume test Kunal Joshi
                   ` (5 preceding siblings ...)
  2026-02-21  4:26 ` ✗ i915.CI.Full: failure " Patchwork
@ 2026-02-21  8:38 ` Patchwork
  6 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2026-02-21  8:38 UTC (permalink / raw)
  To: Kunal Joshi; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4)
URL   : https://patchwork.freedesktop.org/series/158091/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_8764_FULL -> XEIGTPW_14583_FULL
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_14583_FULL absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_14583_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_14583_FULL:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_pipe_crc_basic@mst-suspend-read-crc (NEW):
    - shard-lnl:          NOTRUN -> [SKIP][1]
   [1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-6/igt@kms_pipe_crc_basic@mst-suspend-read-crc.html
    - shard-bmg:          NOTRUN -> [SKIP][2]
   [2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-1/igt@kms_pipe_crc_basic@mst-suspend-read-crc.html

  * igt@xe_wedged@basic-wedged-read:
    - shard-bmg:          [PASS][3] -> [ABORT][4]
   [3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-5/igt@xe_wedged@basic-wedged-read.html
   [4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-2/igt@xe_wedged@basic-wedged-read.html

  
New tests
---------

  New tests have been introduced between XEIGT_8764_FULL and XEIGTPW_14583_FULL:

### New IGT tests (1) ###

  * igt@kms_pipe_crc_basic@mst-suspend-read-crc:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_big_fb@4-tiled-64bpp-rotate-90:
    - shard-bmg:          NOTRUN -> [SKIP][5] ([Intel XE#2327]) +3 other tests skip
   [5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html
    - shard-lnl:          NOTRUN -> [SKIP][6] ([Intel XE#1407])
   [6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-5/igt@kms_big_fb@4-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip:
    - shard-bmg:          NOTRUN -> [SKIP][7] ([Intel XE#7059])
   [7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-1/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - shard-bmg:          NOTRUN -> [SKIP][8] ([Intel XE#1124]) +4 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-lnl:          NOTRUN -> [SKIP][9] ([Intel XE#1124]) +3 other tests skip
   [9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-5/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
    - shard-lnl:          NOTRUN -> [SKIP][10] ([Intel XE#2191])
   [10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-1/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html

  * igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p:
    - shard-bmg:          NOTRUN -> [SKIP][11] ([Intel XE#2314] / [Intel XE#2894])
   [11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-6/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html

  * igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p:
    - shard-lnl:          NOTRUN -> [SKIP][12] ([Intel XE#1512])
   [12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-1/igt@kms_bw@connected-linear-tiling-4-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-1-displays-3840x2160p:
    - shard-bmg:          [PASS][13] -> [SKIP][14] ([Intel XE#367])
   [13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-5/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html
   [14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-7/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html

  * igt@kms_bw@linear-tiling-3-displays-2560x1440p:
    - shard-bmg:          NOTRUN -> [SKIP][15] ([Intel XE#367])
   [15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-6/igt@kms_bw@linear-tiling-3-displays-2560x1440p.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs:
    - shard-lnl:          NOTRUN -> [SKIP][16] ([Intel XE#2887]) +3 other tests skip
   [16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-4/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2:
    - shard-bmg:          NOTRUN -> [SKIP][17] ([Intel XE#2652]) +3 other tests skip
   [17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs@pipe-c-dp-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][18] ([Intel XE#3432])
   [18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-rc-ccs.html

  * igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs:
    - shard-bmg:          NOTRUN -> [SKIP][19] ([Intel XE#2887]) +11 other tests skip
   [19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-1/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-ccs.html

  * igt@kms_chamelium_audio@dp-audio-edid:
    - shard-lnl:          NOTRUN -> [SKIP][20] ([Intel XE#373]) +2 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-7/igt@kms_chamelium_audio@dp-audio-edid.html

  * igt@kms_chamelium_color@ctm-blue-to-red:
    - shard-bmg:          NOTRUN -> [SKIP][21] ([Intel XE#2325]) +2 other tests skip
   [21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-2/igt@kms_chamelium_color@ctm-blue-to-red.html

  * igt@kms_chamelium_frames@hdmi-cmp-planar-formats:
    - shard-bmg:          NOTRUN -> [SKIP][22] ([Intel XE#2252]) +6 other tests skip
   [22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@kms_chamelium_frames@hdmi-cmp-planar-formats.html

  * igt@kms_content_protection@atomic-hdcp14:
    - shard-bmg:          NOTRUN -> [FAIL][23] ([Intel XE#3304]) +3 other tests fail
   [23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-2/igt@kms_content_protection@atomic-hdcp14.html

  * igt@kms_content_protection@lic-type-1:
    - shard-bmg:          NOTRUN -> [SKIP][24] ([Intel XE#2341]) +1 other test skip
   [24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-6/igt@kms_content_protection@lic-type-1.html

  * igt@kms_cursor_crc@cursor-offscreen-128x42:
    - shard-bmg:          NOTRUN -> [SKIP][25] ([Intel XE#2320]) +3 other tests skip
   [25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-8/igt@kms_cursor_crc@cursor-offscreen-128x42.html

  * igt@kms_cursor_crc@cursor-rapid-movement-256x85:
    - shard-lnl:          NOTRUN -> [SKIP][26] ([Intel XE#1424]) +1 other test skip
   [26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-7/igt@kms_cursor_crc@cursor-rapid-movement-256x85.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-bmg:          NOTRUN -> [SKIP][27] ([Intel XE#2321]) +1 other test skip
   [27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-8/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size:
    - shard-bmg:          [PASS][28] -> [DMESG-WARN][29] ([Intel XE#5354])
   [28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-4/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html
   [29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html

  * igt@kms_dsc@dsc-fractional-bpp:
    - shard-bmg:          NOTRUN -> [SKIP][30] ([Intel XE#2244])
   [30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@kms_dsc@dsc-fractional-bpp.html

  * igt@kms_fbcon_fbt@psr:
    - shard-bmg:          NOTRUN -> [SKIP][31] ([Intel XE#776])
   [31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-2/igt@kms_fbcon_fbt@psr.html

  * igt@kms_feature_discovery@display-4x:
    - shard-bmg:          NOTRUN -> [SKIP][32] ([Intel XE#1138])
   [32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-3/igt@kms_feature_discovery@display-4x.html

  * igt@kms_flip@2x-dpms-vs-vblank-race:
    - shard-lnl:          NOTRUN -> [SKIP][33] ([Intel XE#1421]) +1 other test skip
   [33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-8/igt@kms_flip@2x-dpms-vs-vblank-race.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:
    - shard-lnl:          [PASS][34] -> [FAIL][35] ([Intel XE#301]) +2 other tests fail
   [34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-1/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html
   [35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-6/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling:
    - shard-lnl:          NOTRUN -> [SKIP][36] ([Intel XE#1397] / [Intel XE#1745])
   [36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-5/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling@pipe-a-default-mode:
    - shard-lnl:          NOTRUN -> [SKIP][37] ([Intel XE#1397])
   [37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-5/igt@kms_flip_scaled_crc@flip-32bpp-xtile-to-64bpp-xtile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
    - shard-bmg:          NOTRUN -> [SKIP][38] ([Intel XE#7178]) +3 other tests skip
   [38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling:
    - shard-lnl:          NOTRUN -> [SKIP][39] ([Intel XE#7178]) +1 other test skip
   [39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-8/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x:
    - shard-bmg:          NOTRUN -> [SKIP][40] ([Intel XE#7179])
   [40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@kms_flip_scaled_crc@flip-nv12-linear-to-nv12-linear-reflect-x.html

  * igt@kms_frontbuffer_tracking@drrs-modesetfrombusy:
    - shard-lnl:          NOTRUN -> [SKIP][41] ([Intel XE#651]) +3 other tests skip
   [41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-5/igt@kms_frontbuffer_tracking@drrs-modesetfrombusy.html

  * igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-render:
    - shard-bmg:          NOTRUN -> [SKIP][42] ([Intel XE#2311]) +16 other tests skip
   [42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@kms_frontbuffer_tracking@drrs-rgb101010-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscreen-pri-shrfb-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][43] ([Intel XE#4141]) +6 other tests skip
   [43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-3/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:          NOTRUN -> [SKIP][44] ([Intel XE#6312])
   [44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-1/igt@kms_frontbuffer_tracking@fbcdrrs-1p-offscreen-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-blt:
    - shard-bmg:          NOTRUN -> [SKIP][45] ([Intel XE#7061])
   [45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-mmap-wc:
    - shard-lnl:          NOTRUN -> [SKIP][46] ([Intel XE#7061])
   [46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-6/igt@kms_frontbuffer_tracking@fbcdrrs-argb161616f-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt:
    - shard-bmg:          NOTRUN -> [SKIP][47] ([Intel XE#2313]) +24 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
    - shard-lnl:          NOTRUN -> [SKIP][48] ([Intel XE#656]) +8 other tests skip
   [48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_joiner@invalid-modeset-force-ultra-joiner:
    - shard-lnl:          NOTRUN -> [SKIP][49] ([Intel XE#6900])
   [49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-3/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html

  * igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier:
    - shard-bmg:          NOTRUN -> [SKIP][50] ([Intel XE#7283]) +1 other test skip
   [50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-6/igt@kms_plane@pixel-format-4-tiled-mtl-mc-ccs-modifier.html

  * igt@kms_plane_lowres@tiling-yf:
    - shard-lnl:          NOTRUN -> [SKIP][51] ([Intel XE#599])
   [51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-1/igt@kms_plane_lowres@tiling-yf.html

  * igt@kms_plane_multiple@2x-tiling-y:
    - shard-lnl:          NOTRUN -> [SKIP][52] ([Intel XE#4596])
   [52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-5/igt@kms_plane_multiple@2x-tiling-y.html
    - shard-bmg:          NOTRUN -> [SKIP][53] ([Intel XE#5021])
   [53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@kms_plane_multiple@2x-tiling-y.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-b:
    - shard-bmg:          NOTRUN -> [ABORT][54] ([Intel XE#5545]) +1 other test abort
   [54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-2/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-b.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25:
    - shard-lnl:          NOTRUN -> [SKIP][55] ([Intel XE#2763] / [Intel XE#6886]) +3 other tests skip
   [55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-1/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5:
    - shard-bmg:          NOTRUN -> [SKIP][56] ([Intel XE#2763] / [Intel XE#6886]) +4 other tests skip
   [56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-6/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5.html

  * igt@kms_pm_backlight@fade-with-suspend:
    - shard-bmg:          NOTRUN -> [SKIP][57] ([Intel XE#870])
   [57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-6/igt@kms_pm_backlight@fade-with-suspend.html

  * igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area:
    - shard-lnl:          NOTRUN -> [SKIP][58] ([Intel XE#1406] / [Intel XE#2893])
   [58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-3/igt@kms_psr2_sf@fbc-pr-plane-move-sf-dmg-area.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf:
    - shard-lnl:          NOTRUN -> [SKIP][59] ([Intel XE#1406] / [Intel XE#2893] / [Intel XE#4608])
   [59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf@pipe-a-edp-1:
    - shard-lnl:          NOTRUN -> [SKIP][60] ([Intel XE#1406] / [Intel XE#4608]) +1 other test skip
   [60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-6/igt@kms_psr2_sf@fbc-psr2-cursor-plane-move-continuous-sf@pipe-a-edp-1.html

  * igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
    - shard-bmg:          NOTRUN -> [SKIP][61] ([Intel XE#1406] / [Intel XE#1489]) +3 other tests skip
   [61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-7/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_su@page_flip-p010:
    - shard-lnl:          NOTRUN -> [SKIP][62] ([Intel XE#1128] / [Intel XE#1406])
   [62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-4/igt@kms_psr2_su@page_flip-p010.html
    - shard-bmg:          NOTRUN -> [SKIP][63] ([Intel XE#1406] / [Intel XE#2387])
   [63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-7/igt@kms_psr2_su@page_flip-p010.html

  * igt@kms_psr@pr-sprite-render:
    - shard-bmg:          NOTRUN -> [SKIP][64] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850]) +5 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-8/igt@kms_psr@pr-sprite-render.html

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

  * igt@kms_sharpness_filter@filter-tap:
    - shard-bmg:          NOTRUN -> [SKIP][66] ([Intel XE#6503])
   [66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-1/igt@kms_sharpness_filter@filter-tap.html

  * igt@kms_tiled_display@basic-test-pattern:
    - shard-bmg:          NOTRUN -> [SKIP][67] ([Intel XE#2426])
   [67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-8/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vrr@seamless-rr-switch-virtual:
    - shard-bmg:          NOTRUN -> [SKIP][68] ([Intel XE#1499])
   [68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@kms_vrr@seamless-rr-switch-virtual.html

  * igt@xe_eudebug@attach-debug-metadata:
    - shard-lnl:          NOTRUN -> [SKIP][69] ([Intel XE#4837])
   [69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-3/igt@xe_eudebug@attach-debug-metadata.html

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

  * igt@xe_eudebug_online@set-breakpoint:
    - shard-lnl:          NOTRUN -> [SKIP][71] ([Intel XE#4837] / [Intel XE#6665]) +1 other test skip
   [71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-7/igt@xe_eudebug_online@set-breakpoint.html

  * igt@xe_eudebug_online@set-breakpoint-sigint-debugger:
    - shard-bmg:          NOTRUN -> [SKIP][72] ([Intel XE#4837] / [Intel XE#6665]) +1 other test skip
   [72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@xe_eudebug_online@set-breakpoint-sigint-debugger.html

  * igt@xe_evict@evict-cm-threads-small-multi-queue:
    - shard-bmg:          NOTRUN -> [SKIP][73] ([Intel XE#7140])
   [73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-1/igt@xe_evict@evict-cm-threads-small-multi-queue.html

  * igt@xe_evict@evict-mixed-many-threads-small:
    - shard-bmg:          NOTRUN -> [INCOMPLETE][74] ([Intel XE#6321])
   [74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-8/igt@xe_evict@evict-mixed-many-threads-small.html

  * igt@xe_evict@evict-small-cm:
    - shard-lnl:          NOTRUN -> [SKIP][75] ([Intel XE#6540] / [Intel XE#688]) +1 other test skip
   [75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-6/igt@xe_evict@evict-small-cm.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue:
    - shard-lnl:          NOTRUN -> [SKIP][76] ([Intel XE#1392]) +1 other test skip
   [76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-4/igt@xe_exec_basic@multigpu-once-bindexecqueue.html

  * igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind:
    - shard-bmg:          NOTRUN -> [SKIP][77] ([Intel XE#2322]) +6 other tests skip
   [77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-7/igt@xe_exec_basic@multigpu-once-bindexecqueue-userptr-rebind.html

  * igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm:
    - shard-bmg:          NOTRUN -> [SKIP][78] ([Intel XE#7136]) +9 other tests skip
   [78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm.html
    - shard-lnl:          NOTRUN -> [SKIP][79] ([Intel XE#7136])
   [79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-6/igt@xe_exec_fault_mode@once-multi-queue-userptr-invalidate-imm.html

  * igt@xe_exec_multi_queue@max-queues-preempt-mode-dyn-priority-smem:
    - shard-lnl:          NOTRUN -> [SKIP][80] ([Intel XE#6874]) +7 other tests skip
   [80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-5/igt@xe_exec_multi_queue@max-queues-preempt-mode-dyn-priority-smem.html

  * igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-dyn-priority-smem:
    - shard-bmg:          NOTRUN -> [SKIP][81] ([Intel XE#6874]) +15 other tests skip
   [81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-1/igt@xe_exec_multi_queue@two-queues-preempt-mode-fault-dyn-priority-smem.html

  * igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-single-vma:
    - shard-lnl:          NOTRUN -> [SKIP][82] ([Intel XE#6196])
   [82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-6/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-comp-single-vma.html

  * igt@xe_exec_threads@threads-multi-queue-cm-basic:
    - shard-lnl:          NOTRUN -> [SKIP][83] ([Intel XE#7138]) +3 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-3/igt@xe_exec_threads@threads-multi-queue-cm-basic.html

  * igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr:
    - shard-bmg:          NOTRUN -> [SKIP][84] ([Intel XE#7138]) +7 other tests skip
   [84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-8/igt@xe_exec_threads@threads-multi-queue-mixed-fd-userptr.html

  * igt@xe_mmap@pci-membarrier-parallel:
    - shard-lnl:          NOTRUN -> [SKIP][85] ([Intel XE#5100])
   [85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-2/igt@xe_mmap@pci-membarrier-parallel.html

  * igt@xe_mmap@small-bar:
    - shard-bmg:          NOTRUN -> [SKIP][86] ([Intel XE#586])
   [86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@xe_mmap@small-bar.html

  * igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch:
    - shard-lnl:          NOTRUN -> [SKIP][87] ([Intel XE#6964])
   [87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-5/igt@xe_multigpu_svm@mgpu-concurrent-access-prefetch.html

  * igt@xe_multigpu_svm@mgpu-latency-prefetch:
    - shard-bmg:          NOTRUN -> [SKIP][88] ([Intel XE#6964]) +1 other test skip
   [88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@xe_multigpu_svm@mgpu-latency-prefetch.html

  * igt@xe_pm@d3hot-i2c:
    - shard-bmg:          NOTRUN -> [SKIP][89] ([Intel XE#5742])
   [89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-7/igt@xe_pm@d3hot-i2c.html

  * igt@xe_pm@vram-d3cold-threshold:
    - shard-lnl:          NOTRUN -> [SKIP][90] ([Intel XE#579])
   [90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-6/igt@xe_pm@vram-d3cold-threshold.html

  * igt@xe_pxp@pxp-stale-bo-bind-post-rpm:
    - shard-bmg:          NOTRUN -> [SKIP][91] ([Intel XE#4733])
   [91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-3/igt@xe_pxp@pxp-stale-bo-bind-post-rpm.html

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

  * igt@xe_query@multigpu-query-pxp-status:
    - shard-lnl:          NOTRUN -> [SKIP][93] ([Intel XE#944]) +1 other test skip
   [93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-1/igt@xe_query@multigpu-query-pxp-status.html

  * igt@xe_sriov_flr@flr-each-isolation:
    - shard-lnl:          NOTRUN -> [SKIP][94] ([Intel XE#3342])
   [94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-7/igt@xe_sriov_flr@flr-each-isolation.html

  
#### Possible fixes ####

  * igt@kms_bw@linear-tiling-1-displays-2560x1440p:
    - shard-bmg:          [SKIP][95] ([Intel XE#367]) -> [PASS][96] +1 other test pass
   [95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html
   [96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-5/igt@kms_bw@linear-tiling-1-displays-2560x1440p.html

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

  * igt@xe_exec_basic@many-execqueues-rebind:
    - shard-bmg:          [ABORT][99] -> [PASS][100] +1 other test pass
   [99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-2/igt@xe_exec_basic@many-execqueues-rebind.html
   [100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@xe_exec_basic@many-execqueues-rebind.html

  * igt@xe_exec_system_allocator@process-many-stride-new-madvise:
    - shard-bmg:          [INCOMPLETE][101] ([Intel XE#2594]) -> [PASS][102] +1 other test pass
   [101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-9/igt@xe_exec_system_allocator@process-many-stride-new-madvise.html
   [102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@xe_exec_system_allocator@process-many-stride-new-madvise.html

  * igt@xe_pm_residency@aspm_link_residency:
    - shard-bmg:          [SKIP][103] ([Intel XE#7258]) -> [PASS][104]
   [103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-6/igt@xe_pm_residency@aspm_link_residency.html
   [104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-2/igt@xe_pm_residency@aspm_link_residency.html

  * igt@xe_sriov_auto_provisioning@exclusive-ranges@numvfs-random:
    - shard-bmg:          [FAIL][105] ([Intel XE#5937]) -> [PASS][106] +1 other test pass
   [105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-8/igt@xe_sriov_auto_provisioning@exclusive-ranges@numvfs-random.html
   [106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-1/igt@xe_sriov_auto_provisioning@exclusive-ranges@numvfs-random.html

  
#### Warnings ####

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-d-hdmi-a-3:
    - shard-bmg:          [SKIP][107] ([Intel XE#2652] / [Intel XE#787]) -> [SKIP][108] ([Intel XE#2652]) +49 other tests skip
   [107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-d-hdmi-a-3.html
   [108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs@pipe-d-hdmi-a-3.html

  * igt@kms_color_pipeline@plane-lut3d-green-only@pipe-a-dp-2:
    - shard-bmg:          [SKIP][109] ([Intel XE#6969]) -> [SKIP][110] ([Intel XE#6969] / [Intel XE#7289]) +2 other tests skip
   [109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-a-dp-2.html
   [110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-8/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-a-dp-2.html

  * igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-edp-1:
    - shard-lnl:          [SKIP][111] ([Intel XE#6969]) -> [SKIP][112] ([Intel XE#6969] / [Intel XE#7289]) +1 other test skip
   [111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-6/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-edp-1.html
   [112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-1/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-b-edp-1.html

  * igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-edp-1:
    - shard-lnl:          [SKIP][113] ([Intel XE#6969] / [Intel XE#7006]) -> [SKIP][114] ([Intel XE#6969] / [Intel XE#7006] / [Intel XE#7289]) +1 other test skip
   [113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-6/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-edp-1.html
   [114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-1/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-c-edp-1.html

  * igt@kms_color_pipeline@plane-lut3d-green-only@pipe-d-dp-2:
    - shard-bmg:          [SKIP][115] ([Intel XE#6969] / [Intel XE#7006]) -> [SKIP][116] ([Intel XE#6969] / [Intel XE#7006] / [Intel XE#7289]) +1 other test skip
   [115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-3/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-d-dp-2.html
   [116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-8/igt@kms_color_pipeline@plane-lut3d-green-only@pipe-d-dp-2.html

  * igt@kms_hdr@brightness-with-hdr:
    - shard-bmg:          [SKIP][117] ([Intel XE#3374] / [Intel XE#3544]) -> [SKIP][118] ([Intel XE#3544])
   [117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-8/igt@kms_hdr@brightness-with-hdr.html
   [118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-9/igt@kms_hdr@brightness-with-hdr.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-lnl:          [SKIP][119] ([Intel XE#7173]) -> [SKIP][120] ([Intel XE#7173] / [Intel XE#7294])
   [119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-6/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html
   [120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-8/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c:
    - shard-lnl:          [SKIP][121] ([Intel XE#6886]) -> [SKIP][122] ([Intel XE#2763] / [Intel XE#6886]) +49 other tests skip
   [121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-lnl-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html
   [122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-lnl-5/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-pixel-format@pipe-c.html

  * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b:
    - shard-bmg:          [SKIP][123] ([Intel XE#6886]) -> [SKIP][124] ([Intel XE#2763] / [Intel XE#6886]) +24 other tests skip
   [123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-2/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html
   [124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-8/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-5@pipe-b.html

  * igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
    - shard-bmg:          [ABORT][125] ([Intel XE#5466] / [Intel XE#6652]) -> [ABORT][126] ([Intel XE#5466])
   [125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8764/shard-bmg-9/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
   [126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_14583/shard-bmg-4/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html

  
  [Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
  [Intel XE#1128]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1128
  [Intel XE#1138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1138
  [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#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#1435]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1435
  [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#1512]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1512
  [Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
  [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#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
  [Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
  [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#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#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
  [Intel XE#2387]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2387
  [Intel XE#2426]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2426
  [Intel XE#2594]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2594
  [Intel XE#2652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2652
  [Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
  [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#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
  [Intel XE#3304]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3304
  [Intel XE#3342]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3342
  [Intel XE#3374]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3374
  [Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
  [Intel XE#3544]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3544
  [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#4141]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4141
  [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#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
  [Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
  [Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
  [Intel XE#5100]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5100
  [Intel XE#5354]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5354
  [Intel XE#5466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5466
  [Intel XE#5545]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5545
  [Intel XE#5742]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5742
  [Intel XE#579]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/579
  [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#6196]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6196
  [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#6503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6503
  [Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
  [Intel XE#6540]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6540
  [Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
  [Intel XE#6652]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6652
  [Intel XE#6665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6665
  [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#6964]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6964
  [Intel XE#6969]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6969
  [Intel XE#7006]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7006
  [Intel XE#7059]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7059
  [Intel XE#7061]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7061
  [Intel XE#7136]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7136
  [Intel XE#7138]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7138
  [Intel XE#7140]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7140
  [Intel XE#7173]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7173
  [Intel XE#7178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7178
  [Intel XE#7179]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7179
  [Intel XE#7258]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7258
  [Intel XE#7283]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7283
  [Intel XE#7289]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7289
  [Intel XE#7294]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/7294
  [Intel XE#776]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/776
  [Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
  [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_8764 -> IGTPW_14583
  * Linux: xe-4577-157c1f59af33fb9acf6e0e055e7317b634711120 -> xe-4582-5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13

  IGTPW_14583: 14583
  IGT_8764: 8764
  xe-4577-157c1f59af33fb9acf6e0e055e7317b634711120: 157c1f59af33fb9acf6e0e055e7317b634711120
  xe-4582-5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13: 5e550d0427ca648b0bc6fc8fba4e01f47cdb9e13

== Logs ==

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

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

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

* Re: [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for MST outputs
  2026-02-20 15:22 ` [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for MST outputs Kunal Joshi
@ 2026-02-23 17:40   ` Thasleem, Mohammed
  2026-02-26  4:02   ` Kandpal, Suraj
  1 sibling, 0 replies; 17+ messages in thread
From: Thasleem, Mohammed @ 2026-02-23 17:40 UTC (permalink / raw)
  To: Kunal Joshi, igt-dev

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


On 20-02-2026 08:52 pm, Kunal Joshi wrote:
> Add igt_display_has_mst_output() helper function to check
> if a display has at least one DP MST output connected.
> This is useful for tests that need to verify MST output
> availability before running.
>
> Signed-off-by: Kunal Joshi<kunal1.joshi@intel.com>
> ---
>   tests/intel/kms_mst_helper.c | 19 +++++++++++++++++++
>   tests/intel/kms_mst_helper.h |  1 +
>   2 files changed, 20 insertions(+)
>
> diff --git a/tests/intel/kms_mst_helper.c b/tests/intel/kms_mst_helper.c
> index aef74cd31..6b986a45c 100644
> --- a/tests/intel/kms_mst_helper.c
> +++ b/tests/intel/kms_mst_helper.c
> @@ -46,3 +46,22 @@ int igt_find_all_mst_output_in_topology(int drm_fd, igt_display_t *display,
>   	}
>   	return 0;
>   }
> +
/**
  * igt_display_has_mst_output:
-->with above two lines addition, LGTM:

Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>

> +/*
> + * @display: pointer to #igt_display_t structure
> + *
> + * Iterates over all connected outputs and checks if any of them
> + * is a DP MST output.
> + *
> + * Returns: true if at least one MST output is found, false otherwise
> + */
> +bool igt_display_has_mst_output(igt_display_t *display)
> +{
> +    igt_output_t *output;
> +
> +    for_each_connected_output(display, output) {
> +        if (igt_check_output_is_dp_mst(output))
> +            return true;
> +    }
> +    return false;
> +}
> diff --git a/tests/intel/kms_mst_helper.h b/tests/intel/kms_mst_helper.h
> index 7391494ab..0e8ece0a0 100644
> --- a/tests/intel/kms_mst_helper.h
> +++ b/tests/intel/kms_mst_helper.h
> @@ -12,4 +12,5 @@ int igt_find_all_mst_output_in_topology(int drm_fd, igt_display_t *display,
>   					igt_output_t *output,
>   					igt_output_t *mst_outputs[],
>   					int *num_mst_outputs);
> +bool igt_display_has_mst_output(igt_display_t *display);
>   #endif

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

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

* Re: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test
  2026-02-20 15:22 ` [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test Kunal Joshi
@ 2026-02-24  8:35   ` Thasleem, Mohammed
  2026-02-24 10:27     ` Thasleem, Mohammed
  2026-03-03  6:18   ` Kandpal, Suraj
  1 sibling, 1 reply; 17+ messages in thread
From: Thasleem, Mohammed @ 2026-02-24  8:35 UTC (permalink / raw)
  To: Kunal Joshi, igt-dev


On 20-02-2026 08:52 pm, Kunal Joshi wrote:
> Add a new subtest mst-suspend-read-crc that verifies MST outputs
> preserve display content (via CRC comparison) across S3 suspend/resume.
>
> The test enumerates all connected DP MST topologies, and for each root
> connector exercises all non-empty subsets of the discovered MST outputs.
> For each subset it:
>   - Assigns pipes and selects non-joiner modes
>   - Fits modes within bandwidth constraints
>   - Creates green FBs, commits, and collects pre-suspend CRCs
>   - Suspends to memory and resumes
>   - Collects post-suspend CRCs and asserts they match
>
> v2:
> - Add error handling for igt_pipe_crc_new (Thasleem)
> - Improve log format with index for clarity (Thasleem)
> - Order declarations in decreasing line length (Thasleem)
> - Add print message when no MST found (Thasleem)
> - Add bounds check for idx in subset loop (Thasleem)
> - Use igt_crtc_crc_new() instead of igt_pipe_crc_new() (Ville)
>
> v3:
> - framebuffers missing in commit (Bilal)
>
> v4:
> - Drop cleanup framework
>
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
>   tests/kms_pipe_crc_basic.c | 314 +++++++++++++++++++++++++++++++++++++
>   tests/meson.build          |   3 +
>   2 files changed, 317 insertions(+)
>
> diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
> index f7b6ec293..59a44e92e 100644
> --- a/tests/kms_pipe_crc_basic.c
> +++ b/tests/kms_pipe_crc_basic.c
> @@ -32,7 +32,10 @@
>   
>   #include "igt.h"
>   #include "igt_sysfs.h"
> +#include "intel/kms_mst_helper.h"
> +#include "intel/kms_joiner_helper.h"
>   #include <errno.h>
> +#include <limits.h>
>   #include <stdbool.h>
>   #include <stdio.h>
>   #include <string.h>
> @@ -77,6 +80,11 @@
>    *              CRTC does not cause issues.
>    */
>   
> +/**
> + * SUBTEST: mst-suspend-read-crc
> + * Description: MST suspend test for pipe CRC reads.
> + */
> +
>   static bool extended;
>   static enum pipe active_pipes[IGT_MAX_PIPES];
>   static uint32_t last_pipe;
> @@ -96,6 +104,306 @@ static struct {
>   	{ .r = 0.0, .g = 1.0, .b = 1.0 },
>   };
>   
> +#define MAX_MST_OUTPUT 3
> +
> +static void collect_single_crc(igt_crtc_t *crtc, igt_crc_t *crc)
> +{
> +	igt_pipe_crc_t *pipe_crc;
> +
> +	pipe_crc = igt_crtc_crc_new(crtc, IGT_PIPE_CRC_SOURCE_AUTO);
> +	igt_assert(pipe_crc);
> +	igt_pipe_crc_collect_crc(pipe_crc, crc);
> +	igt_pipe_crc_free(pipe_crc);
> +}
> +
> +static void collect_crc_for_active_outputs(igt_output_t **outputs,
> +					   int num_outputs,
> +					   igt_crc_t *crcs,
> +					   bool post_suspend)
> +{
> +	int i;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_output_t *output = outputs[i];
> +		igt_crtc_t *crtc = igt_output_get_driving_crtc(output);
> +
> +		if (post_suspend)
> +			igt_require_f(crtc,
> +				      "POST-SUSPEND: no driving CRTC for %s (topology changed?)\n",
> +				      output->name);
> +		else
> +			igt_assert_f(crtc,
> +				     "PRE-SUSPEND: no driving CRTC for %s (bad pipe assignment?)\n",
> +				     output->name);
> +
> +		collect_single_crc(crtc, &crcs[i]);
> +	}
> +}
> +
> +static void wait_for_vblanks(igt_output_t **outputs, int num_outputs,
> +			     bool post_suspend)
> +{
> +	int i;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_crtc_t *crtc = igt_output_get_driving_crtc(outputs[i]);
> +
> +		if (post_suspend)
> +			igt_require_f(crtc,
> +				      "POST-SUSPEND: no driving CRTC for %s during vblank wait (topology changed?)\n",
> +				      outputs[i]->name);
> +		else
> +			igt_assert_f(crtc,
> +				     "PRE-SUSPEND: no driving CRTC for %s during vblank wait (bad pipe assignment?)\n",
> +				     outputs[i]->name);
> +
> +		igt_wait_for_vblank(crtc);
> +	}
> +}
> +
> +static void log_crc_for_outputs(igt_output_t **outputs, int num_outputs,
> +				igt_crc_t *crcs, const char *stage)
> +{
> +	int i;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_output_t *o = outputs[i];
> +		drmModeModeInfo *m = igt_output_get_mode(o);
> +		char *s = igt_crc_to_string(&crcs[i]);
> +		igt_crtc_t *crtc = igt_output_get_driving_crtc(o);
> +
> +		igt_info("[%d] %s: output %s -> crtc %s, CRC %s, mode %dx%d@%d\n",
> +			 i, stage, o->name,
> +			 igt_crtc_name(crtc),
> +			 s,
> +			 m ? m->hdisplay : -1,
> +			 m ? m->vdisplay : -1,
> +			 m ? m->vrefresh : 0);
--> I think we can guard this using igt_debug() instead of igt_info().
> +		free(s);
> +	}
> +}
> +
> +/*
> + * Select non-joiner modes for all outputs to ensure CRC collection works.
> + * Joiner configurations consume multiple pipes and are not yet validated here.
> + * Must be called before igt_fit_modes_in_bw() so that bandwidth fitting uses
> + * the correct (non-joiner) modes.
> + */
> +static void select_non_joiner_modes(int drm_fd, igt_output_t **outputs,
> +				    int num_outputs)
> +{
> +	int max_dotclock = igt_get_max_dotclock(drm_fd);
> +	int i;
> +
> +	if (max_dotclock <= 0)
> +		max_dotclock = INT_MAX;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_output_t *output = outputs[i];
> +		drmModeModeInfo non_joiner_mode;
> +
> +		igt_require_f(max_non_joiner_mode_found(drm_fd,
> +							output->config.connector,
> +							max_dotclock,
> +							&non_joiner_mode),
> +			      "No non-joiner mode found for %s\n",
> +			      output->name);
> +		igt_output_override_mode(output, &non_joiner_mode);
> +	}
> +}
> +
> +static void create_fbs_for_outputs(int drm_fd, igt_output_t **outputs,
> +				   int num_outputs, struct igt_fb *fbs)
> +{
> +	int i;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_output_t *output = outputs[i];
> +		drmModeModeInfo *mode = igt_output_get_mode(output);
> +		igt_plane_t *primary;
> +
> +		igt_require_f(mode, "No mode available for output %s\n", output->name);
> +
> +		primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> +
> +		igt_create_color_fb(drm_fd,
> +				    mode->hdisplay, mode->vdisplay,
> +				    DRM_FORMAT_XRGB8888,
> +				    DRM_FORMAT_MOD_LINEAR,
> +				    0.0, 1.0, 0.0,  /* Green color */
> +				    &fbs[i]);
> +		igt_plane_set_fb(primary, &fbs[i]);
> +	}
> +}
> +
> +static void run_mst_subset_and_verify(igt_display_t *display,
> +				      igt_output_t **active_outputs,
> +				      int num_active,
> +				      int n_crtcs,
> +				      uint32_t master_pipes_mask,
> +				      uint32_t valid_pipes_mask)
> +{
> +	igt_crc_t pre_crcs[MAX_MST_OUTPUT];
> +	igt_crc_t post_crcs[MAX_MST_OUTPUT];
> +	struct igt_fb fbs[MAX_MST_OUTPUT];
> +	uint32_t used_pipes_mask = 0;
> +	enum igt_suspend_test stest = SUSPEND_TEST_NONE;
> +	int drm_fd = display->drm_fd;
> +	int a;
> +
> +	igt_require_f(num_active <= n_crtcs,
> +		      "Not enough crtcs for MST subset\n");
> +
> +	igt_require(igt_assign_pipes_for_outputs(drm_fd,
> +						 active_outputs,
> +						 num_active,
> +						 n_crtcs,
> +						 &used_pipes_mask,
> +						 master_pipes_mask,
> +						 valid_pipes_mask));
> +
> +	select_non_joiner_modes(drm_fd, active_outputs, num_active);
> +
> +	igt_require_f(igt_fit_modes_in_bw(display),
> +		      "Unable to fit modes in bw\n");
> +
> +	create_fbs_for_outputs(drm_fd, active_outputs, num_active, fbs);
> +
> +	igt_display_commit2(display, COMMIT_ATOMIC);
> +
> +	/* rtcwake cmd is not supported on MTK devices */
> +	if (is_mtk_device(drm_fd))
> +		stest = SUSPEND_TEST_DEVICES;
> +
> +	igt_info("MST subset: %d outputs, n_crtcs=%d\n",
> +		 num_active, n_crtcs);
> +
> +	wait_for_vblanks(active_outputs, num_active, false);
> +	wait_for_vblanks(active_outputs, num_active, false);
> +
> +	collect_crc_for_active_outputs(active_outputs,
> +				       num_active,
> +				       pre_crcs, false);
> +
> +	log_crc_for_outputs(active_outputs, num_active, pre_crcs, "PRE-SUSPEND");
> +
> +	igt_system_suspend_autoresume(SUSPEND_STATE_MEM, stest);
> +
> +	wait_for_vblanks(active_outputs, num_active, true);
> +	wait_for_vblanks(active_outputs, num_active, true);
> +
> +	collect_crc_for_active_outputs(active_outputs,
> +				       num_active,
> +				       post_crcs, true);
> +
> +	log_crc_for_outputs(active_outputs, num_active, post_crcs, "POST-SUSPEND");
> +
     Variable naming -->'a' could be more descriptive, might be --> 
output_idx? or any suitable..
> +	for (a = 0; a < num_active; a++)
> +		igt_assert_crc_equal(&pre_crcs[a], &post_crcs[a]);
> +
> +	/* Detach FBs from planes and remove them to leave a clean state */
> +	for (a = 0; a < num_active; a++) {
> +		igt_plane_t *primary =
> +			igt_output_get_plane_type(active_outputs[a],
> +						 DRM_PLANE_TYPE_PRIMARY);
> +		igt_plane_set_fb(primary, NULL);
> +		igt_remove_fb(drm_fd, &fbs[a]);
> +	}
> +}
> +
> +static void mst_suspend_read_crc(igt_display_t *display)
> +{
> +	int n_crtcs = igt_display_n_crtcs(display);
> +	igt_output_t *active_outputs[MAX_MST_OUTPUT];
> +	/*
> +	 * igt_find_all_mst_output_in_topology() internally caps
> +	 * discovery at IGT_MAX_PIPES entries, so this is the
> +	 * correct upper bound for the buffer.
> +	 */
> +	igt_output_t *mst_outputs[IGT_MAX_PIPES];
> +	/* Fixed upper bound for tracking traversed root connectors. */
> +	int traversed_roots[IGT_MAX_PIPES] = { 0 };
> +	int drm_fd = display->drm_fd;
> +	uint32_t valid_pipes_mask = 0;
> +	int num_mst, i, num_active;
> +	uint32_t master_pipes_mask;
> +	igt_output_t *output;
> +	igt_crtc_t *crtc;
> +	int num_roots = 0;
> +
> +	for_each_crtc(display, crtc)
> +		valid_pipes_mask |= BIT(crtc->pipe);
> +
> +	igt_set_all_master_pipes_for_platform(display, &master_pipes_mask);
> +
> +	for_each_connected_output(display, output) {
> +		int root_id;
> +		bool root_seen = false;
> +
> +		root_id = igt_get_dp_mst_connector_id(output);
> +		if (root_id < 0) {
> +			igt_info("Skipping non-mst output %s\n", output->name);
> +			continue;
> +		}
> +
> +		for (i = 0; i < num_roots; i++)
> +			if (traversed_roots[i] == root_id)
> +				root_seen = true;
> +
> +		if (root_seen)
> +			continue;
> +
> +		num_mst = 0;
> +		igt_require(igt_find_all_mst_output_in_topology(drm_fd, display,
> +							output, mst_outputs,
> +							&num_mst) == 0);
> +		igt_assert_f(num_mst <= IGT_MAX_PIPES,
> +			     "MST topology discovery overflow: num_mst=%d > IGT_MAX_PIPES=%d\n",
> +			     num_mst, IGT_MAX_PIPES);
> +		if (num_mst == 0) {
> +			igt_info("No MST outputs found in topology for output %s\n",
> +				 output->name);
> +			igt_skip("No MST outputs found in topology\n");
> +		}
> +
> +		if (num_roots < IGT_MAX_PIPES)
> +			traversed_roots[num_roots++] = root_id;
> +
> +		if (num_mst > MAX_MST_OUTPUT)
> +			num_mst = MAX_MST_OUTPUT;
> +
> +		igt_dynamic_f("mst-root-%d", root_id) {
> +			int mask;
> +
> +			for (mask = 1; mask < (1 << num_mst); mask++) {
> +				int bit, idx = 0;
> +
> +				/* build subset for this bitmask */
> +				for (bit = 0; bit < num_mst; bit++) {
> +					if (!(mask & (1 << bit)))
> +						continue;
> +
> +					if (idx >= MAX_MST_OUTPUT)
> +						break;
> +
> +					active_outputs[idx++] = mst_outputs[bit];
> +				}
> +
> +				num_active = idx;
> +				if (!num_active)
> +					continue;
> +
> +				igt_display_reset(display);
> +
> +				run_mst_subset_and_verify(display, active_outputs,
> +							  num_active, n_crtcs,
> +							  master_pipes_mask,
> +							  valid_pipes_mask);
> +			}
> +		}
> +	}
> +}
> +
>   static bool simulation_constraint(igt_crtc_t *crtc)
>   {
>   	if (igt_run_in_simulation() && !extended &&
> @@ -525,6 +833,12 @@ int igt_main_args("e", NULL, help_str, opt_handler, NULL)
>   		}
>   	}
>   
> +	igt_describe("MST suspend test for pipe CRC reads.");
> +	igt_subtest_with_dynamic("mst-suspend-read-crc") {
> +		igt_require(igt_display_has_mst_output(&data.display));
> +		mst_suspend_read_crc(&data.display);
> +	}
> +
>   	igt_fixture() {
>   		igt_display_fini(&data.display);
>   		drm_close_driver(data.drm_fd);
> diff --git a/tests/meson.build b/tests/meson.build
> index 7f356de9b..06c0d8e98 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -399,6 +399,9 @@ extra_sources = {
>              join_paths ('intel', 'kms_joiner_helper.c') ],
>   	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
>   	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
> +	'kms_pipe_crc_basic': [
> +		join_paths ('intel', 'kms_mst_helper.c'),
> +		join_paths ('intel', 'kms_joiner_helper.c') ],
>   	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],
>   }
>   

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

* Re: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test
  2026-02-24  8:35   ` Thasleem, Mohammed
@ 2026-02-24 10:27     ` Thasleem, Mohammed
  0 siblings, 0 replies; 17+ messages in thread
From: Thasleem, Mohammed @ 2026-02-24 10:27 UTC (permalink / raw)
  To: Kunal Joshi, igt-dev

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

Minor nits can be adressed while merging.
LGTM.

Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>


On 24-02-2026 02:05 pm, Thasleem, Mohammed wrote:
>
> On 20-02-2026 08:52 pm, Kunal Joshi wrote:
>> Add a new subtest mst-suspend-read-crc that verifies MST outputs
>> preserve display content (via CRC comparison) across S3 suspend/resume.
>>
>> The test enumerates all connected DP MST topologies, and for each root
>> connector exercises all non-empty subsets of the discovered MST outputs.
>> For each subset it:
>>   - Assigns pipes and selects non-joiner modes
>>   - Fits modes within bandwidth constraints
>>   - Creates green FBs, commits, and collects pre-suspend CRCs
>>   - Suspends to memory and resumes
>>   - Collects post-suspend CRCs and asserts they match
>>
>> v2:
>> - Add error handling for igt_pipe_crc_new (Thasleem)
>> - Improve log format with index for clarity (Thasleem)
>> - Order declarations in decreasing line length (Thasleem)
>> - Add print message when no MST found (Thasleem)
>> - Add bounds check for idx in subset loop (Thasleem)
>> - Use igt_crtc_crc_new() instead of igt_pipe_crc_new() (Ville)
>>
>> v3:
>> - framebuffers missing in commit (Bilal)
>>
>> v4:
>> - Drop cleanup framework
>>
>> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
>> ---
>>   tests/kms_pipe_crc_basic.c | 314 +++++++++++++++++++++++++++++++++++++
>>   tests/meson.build          |   3 +
>>   2 files changed, 317 insertions(+)
>>
>> diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
>> index f7b6ec293..59a44e92e 100644
>> --- a/tests/kms_pipe_crc_basic.c
>> +++ b/tests/kms_pipe_crc_basic.c
>> @@ -32,7 +32,10 @@
>>     #include "igt.h"
>>   #include "igt_sysfs.h"
>> +#include "intel/kms_mst_helper.h"
>> +#include "intel/kms_joiner_helper.h"
>>   #include <errno.h>
>> +#include <limits.h>
>>   #include <stdbool.h>
>>   #include <stdio.h>
>>   #include <string.h>
>> @@ -77,6 +80,11 @@
>>    *              CRTC does not cause issues.
>>    */
>>   +/**
>> + * SUBTEST: mst-suspend-read-crc
>> + * Description: MST suspend test for pipe CRC reads.
>> + */
>> +
>>   static bool extended;
>>   static enum pipe active_pipes[IGT_MAX_PIPES];
>>   static uint32_t last_pipe;
>> @@ -96,6 +104,306 @@ static struct {
>>       { .r = 0.0, .g = 1.0, .b = 1.0 },
>>   };
>>   +#define MAX_MST_OUTPUT 3
>> +
>> +static void collect_single_crc(igt_crtc_t *crtc, igt_crc_t *crc)
>> +{
>> +    igt_pipe_crc_t *pipe_crc;
>> +
>> +    pipe_crc = igt_crtc_crc_new(crtc, IGT_PIPE_CRC_SOURCE_AUTO);
>> +    igt_assert(pipe_crc);
>> +    igt_pipe_crc_collect_crc(pipe_crc, crc);
>> +    igt_pipe_crc_free(pipe_crc);
>> +}
>> +
>> +static void collect_crc_for_active_outputs(igt_output_t **outputs,
>> +                       int num_outputs,
>> +                       igt_crc_t *crcs,
>> +                       bool post_suspend)
>> +{
>> +    int i;
>> +
>> +    for (i = 0; i < num_outputs; i++) {
>> +        igt_output_t *output = outputs[i];
>> +        igt_crtc_t *crtc = igt_output_get_driving_crtc(output);
>> +
>> +        if (post_suspend)
>> +            igt_require_f(crtc,
>> +                      "POST-SUSPEND: no driving CRTC for %s 
>> (topology changed?)\n",
>> +                      output->name);
>> +        else
>> +            igt_assert_f(crtc,
>> +                     "PRE-SUSPEND: no driving CRTC for %s (bad pipe 
>> assignment?)\n",
>> +                     output->name);
>> +
>> +        collect_single_crc(crtc, &crcs[i]);
>> +    }
>> +}
>> +
>> +static void wait_for_vblanks(igt_output_t **outputs, int num_outputs,
>> +                 bool post_suspend)
>> +{
>> +    int i;
>> +
>> +    for (i = 0; i < num_outputs; i++) {
>> +        igt_crtc_t *crtc = igt_output_get_driving_crtc(outputs[i]);
>> +
>> +        if (post_suspend)
>> +            igt_require_f(crtc,
>> +                      "POST-SUSPEND: no driving CRTC for %s during 
>> vblank wait (topology changed?)\n",
>> +                      outputs[i]->name);
>> +        else
>> +            igt_assert_f(crtc,
>> +                     "PRE-SUSPEND: no driving CRTC for %s during 
>> vblank wait (bad pipe assignment?)\n",
>> +                     outputs[i]->name);
>> +
>> +        igt_wait_for_vblank(crtc);
>> +    }
>> +}
>> +
>> +static void log_crc_for_outputs(igt_output_t **outputs, int 
>> num_outputs,
>> +                igt_crc_t *crcs, const char *stage)
>> +{
>> +    int i;
>> +
>> +    for (i = 0; i < num_outputs; i++) {
>> +        igt_output_t *o = outputs[i];
>> +        drmModeModeInfo *m = igt_output_get_mode(o);
>> +        char *s = igt_crc_to_string(&crcs[i]);
>> +        igt_crtc_t *crtc = igt_output_get_driving_crtc(o);
>> +
>> +        igt_info("[%d] %s: output %s -> crtc %s, CRC %s, mode 
>> %dx%d@%d\n",
>> +             i, stage, o->name,
>> +             igt_crtc_name(crtc),
>> +             s,
>> +             m ? m->hdisplay : -1,
>> +             m ? m->vdisplay : -1,
>> +             m ? m->vrefresh : 0);
> --> I think we can guard this using igt_debug() instead of igt_info().
>> +        free(s);
>> +    }
>> +}
>> +
>> +/*
>> + * Select non-joiner modes for all outputs to ensure CRC collection 
>> works.
>> + * Joiner configurations consume multiple pipes and are not yet 
>> validated here.
>> + * Must be called before igt_fit_modes_in_bw() so that bandwidth 
>> fitting uses
>> + * the correct (non-joiner) modes.
>> + */
>> +static void select_non_joiner_modes(int drm_fd, igt_output_t **outputs,
>> +                    int num_outputs)
>> +{
>> +    int max_dotclock = igt_get_max_dotclock(drm_fd);
>> +    int i;
>> +
>> +    if (max_dotclock <= 0)
>> +        max_dotclock = INT_MAX;
>> +
>> +    for (i = 0; i < num_outputs; i++) {
>> +        igt_output_t *output = outputs[i];
>> +        drmModeModeInfo non_joiner_mode;
>> +
>> +        igt_require_f(max_non_joiner_mode_found(drm_fd,
>> +                            output->config.connector,
>> +                            max_dotclock,
>> +                            &non_joiner_mode),
>> +                  "No non-joiner mode found for %s\n",
>> +                  output->name);
>> +        igt_output_override_mode(output, &non_joiner_mode);
>> +    }
>> +}
>> +
>> +static void create_fbs_for_outputs(int drm_fd, igt_output_t **outputs,
>> +                   int num_outputs, struct igt_fb *fbs)
>> +{
>> +    int i;
>> +
>> +    for (i = 0; i < num_outputs; i++) {
>> +        igt_output_t *output = outputs[i];
>> +        drmModeModeInfo *mode = igt_output_get_mode(output);
>> +        igt_plane_t *primary;
>> +
>> +        igt_require_f(mode, "No mode available for output %s\n", 
>> output->name);
>> +
>> +        primary = igt_output_get_plane_type(output, 
>> DRM_PLANE_TYPE_PRIMARY);
>> +
>> +        igt_create_color_fb(drm_fd,
>> +                    mode->hdisplay, mode->vdisplay,
>> +                    DRM_FORMAT_XRGB8888,
>> +                    DRM_FORMAT_MOD_LINEAR,
>> +                    0.0, 1.0, 0.0,  /* Green color */
>> +                    &fbs[i]);
>> +        igt_plane_set_fb(primary, &fbs[i]);
>> +    }
>> +}
>> +
>> +static void run_mst_subset_and_verify(igt_display_t *display,
>> +                      igt_output_t **active_outputs,
>> +                      int num_active,
>> +                      int n_crtcs,
>> +                      uint32_t master_pipes_mask,
>> +                      uint32_t valid_pipes_mask)
>> +{
>> +    igt_crc_t pre_crcs[MAX_MST_OUTPUT];
>> +    igt_crc_t post_crcs[MAX_MST_OUTPUT];
>> +    struct igt_fb fbs[MAX_MST_OUTPUT];
>> +    uint32_t used_pipes_mask = 0;
>> +    enum igt_suspend_test stest = SUSPEND_TEST_NONE;
>> +    int drm_fd = display->drm_fd;
>> +    int a;
>> +
>> +    igt_require_f(num_active <= n_crtcs,
>> +              "Not enough crtcs for MST subset\n");
>> +
>> +    igt_require(igt_assign_pipes_for_outputs(drm_fd,
>> +                         active_outputs,
>> +                         num_active,
>> +                         n_crtcs,
>> +                         &used_pipes_mask,
>> +                         master_pipes_mask,
>> +                         valid_pipes_mask));
>> +
>> +    select_non_joiner_modes(drm_fd, active_outputs, num_active);
>> +
>> +    igt_require_f(igt_fit_modes_in_bw(display),
>> +              "Unable to fit modes in bw\n");
>> +
>> +    create_fbs_for_outputs(drm_fd, active_outputs, num_active, fbs);
>> +
>> +    igt_display_commit2(display, COMMIT_ATOMIC);
>> +
>> +    /* rtcwake cmd is not supported on MTK devices */
>> +    if (is_mtk_device(drm_fd))
>> +        stest = SUSPEND_TEST_DEVICES;
>> +
>> +    igt_info("MST subset: %d outputs, n_crtcs=%d\n",
>> +         num_active, n_crtcs);
>> +
>> +    wait_for_vblanks(active_outputs, num_active, false);
>> +    wait_for_vblanks(active_outputs, num_active, false);
>> +
>> +    collect_crc_for_active_outputs(active_outputs,
>> +                       num_active,
>> +                       pre_crcs, false);
>> +
>> +    log_crc_for_outputs(active_outputs, num_active, pre_crcs, 
>> "PRE-SUSPEND");
>> +
>> +    igt_system_suspend_autoresume(SUSPEND_STATE_MEM, stest);
>> +
>> +    wait_for_vblanks(active_outputs, num_active, true);
>> +    wait_for_vblanks(active_outputs, num_active, true);
>> +
>> +    collect_crc_for_active_outputs(active_outputs,
>> +                       num_active,
>> +                       post_crcs, true);
>> +
>> +    log_crc_for_outputs(active_outputs, num_active, post_crcs, 
>> "POST-SUSPEND");
>> +
>     Variable naming -->'a' could be more descriptive, might be --> 
> output_idx? or any suitable..
>> +    for (a = 0; a < num_active; a++)
>> +        igt_assert_crc_equal(&pre_crcs[a], &post_crcs[a]);
>> +
>> +    /* Detach FBs from planes and remove them to leave a clean state */
>> +    for (a = 0; a < num_active; a++) {
>> +        igt_plane_t *primary =
>> +            igt_output_get_plane_type(active_outputs[a],
>> +                         DRM_PLANE_TYPE_PRIMARY);
>> +        igt_plane_set_fb(primary, NULL);
>> +        igt_remove_fb(drm_fd, &fbs[a]);
>> +    }
>> +}
>> +
>> +static void mst_suspend_read_crc(igt_display_t *display)
>> +{
>> +    int n_crtcs = igt_display_n_crtcs(display);
>> +    igt_output_t *active_outputs[MAX_MST_OUTPUT];
>> +    /*
>> +     * igt_find_all_mst_output_in_topology() internally caps
>> +     * discovery at IGT_MAX_PIPES entries, so this is the
>> +     * correct upper bound for the buffer.
>> +     */
>> +    igt_output_t *mst_outputs[IGT_MAX_PIPES];
>> +    /* Fixed upper bound for tracking traversed root connectors. */
>> +    int traversed_roots[IGT_MAX_PIPES] = { 0 };
>> +    int drm_fd = display->drm_fd;
>> +    uint32_t valid_pipes_mask = 0;
>> +    int num_mst, i, num_active;
>> +    uint32_t master_pipes_mask;
>> +    igt_output_t *output;
>> +    igt_crtc_t *crtc;
>> +    int num_roots = 0;
>> +
>> +    for_each_crtc(display, crtc)
>> +        valid_pipes_mask |= BIT(crtc->pipe);
>> +
>> +    igt_set_all_master_pipes_for_platform(display, &master_pipes_mask);
>> +
>> +    for_each_connected_output(display, output) {
>> +        int root_id;
>> +        bool root_seen = false;
>> +
>> +        root_id = igt_get_dp_mst_connector_id(output);
>> +        if (root_id < 0) {
>> +            igt_info("Skipping non-mst output %s\n", output->name);
>> +            continue;
>> +        }
>> +
>> +        for (i = 0; i < num_roots; i++)
>> +            if (traversed_roots[i] == root_id)
>> +                root_seen = true;
>> +
>> +        if (root_seen)
>> +            continue;
>> +
>> +        num_mst = 0;
>> +        igt_require(igt_find_all_mst_output_in_topology(drm_fd, 
>> display,
>> +                            output, mst_outputs,
>> +                            &num_mst) == 0);
>> +        igt_assert_f(num_mst <= IGT_MAX_PIPES,
>> +                 "MST topology discovery overflow: num_mst=%d > 
>> IGT_MAX_PIPES=%d\n",
>> +                 num_mst, IGT_MAX_PIPES);
>> +        if (num_mst == 0) {
>> +            igt_info("No MST outputs found in topology for output 
>> %s\n",
>> +                 output->name);
>> +            igt_skip("No MST outputs found in topology\n");
>> +        }
>> +
>> +        if (num_roots < IGT_MAX_PIPES)
>> +            traversed_roots[num_roots++] = root_id;
>> +
>> +        if (num_mst > MAX_MST_OUTPUT)
>> +            num_mst = MAX_MST_OUTPUT;
>> +
>> +        igt_dynamic_f("mst-root-%d", root_id) {
>> +            int mask;
>> +
>> +            for (mask = 1; mask < (1 << num_mst); mask++) {
>> +                int bit, idx = 0;
>> +
>> +                /* build subset for this bitmask */
>> +                for (bit = 0; bit < num_mst; bit++) {
>> +                    if (!(mask & (1 << bit)))
>> +                        continue;
>> +
>> +                    if (idx >= MAX_MST_OUTPUT)
>> +                        break;
>> +
>> +                    active_outputs[idx++] = mst_outputs[bit];
>> +                }
>> +
>> +                num_active = idx;
>> +                if (!num_active)
>> +                    continue;
>> +
>> +                igt_display_reset(display);
>> +
>> +                run_mst_subset_and_verify(display, active_outputs,
>> +                              num_active, n_crtcs,
>> +                              master_pipes_mask,
>> +                              valid_pipes_mask);
>> +            }
>> +        }
>> +    }
>> +}
>> +
>>   static bool simulation_constraint(igt_crtc_t *crtc)
>>   {
>>       if (igt_run_in_simulation() && !extended &&
>> @@ -525,6 +833,12 @@ int igt_main_args("e", NULL, help_str, 
>> opt_handler, NULL)
>>           }
>>       }
>>   +    igt_describe("MST suspend test for pipe CRC reads.");
>> +    igt_subtest_with_dynamic("mst-suspend-read-crc") {
>> + igt_require(igt_display_has_mst_output(&data.display));
>> +        mst_suspend_read_crc(&data.display);
>> +    }
>> +
>>       igt_fixture() {
>>           igt_display_fini(&data.display);
>>           drm_close_driver(data.drm_fd);
>> diff --git a/tests/meson.build b/tests/meson.build
>> index 7f356de9b..06c0d8e98 100644
>> --- a/tests/meson.build
>> +++ b/tests/meson.build
>> @@ -399,6 +399,9 @@ extra_sources = {
>>              join_paths ('intel', 'kms_joiner_helper.c') ],
>>       'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
>>       'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
>> +    'kms_pipe_crc_basic': [
>> +        join_paths ('intel', 'kms_mst_helper.c'),
>> +        join_paths ('intel', 'kms_joiner_helper.c') ],
>>       'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],
>>   }

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

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

* Re: [PATCH i-g-t 2/3] lib/igt_kms: Fix max_non_joiner_mode_found
  2026-02-20 15:22 ` [PATCH i-g-t 2/3] lib/igt_kms: Fix max_non_joiner_mode_found Kunal Joshi
@ 2026-02-24 10:30   ` Thasleem, Mohammed
  2026-02-26  4:26   ` Kandpal, Suraj
  1 sibling, 0 replies; 17+ messages in thread
From: Thasleem, Mohammed @ 2026-02-24 10:30 UTC (permalink / raw)
  To: Kunal Joshi, igt-dev

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


On 20-02-2026 08:52 pm, Kunal Joshi wrote:
> The function previously required hdisplay == max_pipe_hdisplay (5120 on
> pre-Gen30), which means it returned false for any connector whose maximum
> resolution is below the pipe limit (e.g. a 4K MST output on a 5K-capable
> platform).
>
> Fix this by iterating all modes and tracking the best one (highest
> hdisplay, then highest clock as a tiebreaker) that does not require a
> big joiner, as determined by igt_bigjoiner_possible(). This correctly
> handles connectors with any max resolution.
>
> Fixes: 3830ca6a5068 ("lib/igt_kms: Add support to check joiner mode limit")
> Signed-off-by: Kunal Joshi<kunal1.joshi@intel.com>

  LGTM:

Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>


> ---
>   lib/igt_kms.c | 15 ++++++++++-----
>   1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 5c4879604..c6678b02b 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -6904,19 +6904,24 @@ bool bigjoiner_mode_found(int drm_fd, drmModeConnector *connector,
>   bool max_non_joiner_mode_found(int drm_fd, drmModeConnector *connector,
>   			   int max_dotclock, drmModeModeInfo *mode)
>   {
> -	int max_hdisplay = get_max_pipe_hdisplay(drm_fd);
> +	bool found = false;
>   
>   	for (int i = 0; i < connector->count_modes; i++) {
>   		drmModeModeInfo *current_mode = &connector->modes[i];
>   
> -		if (current_mode->hdisplay == max_hdisplay &&
> -		    current_mode->clock < max_dotclock) {
> +		if (igt_bigjoiner_possible(drm_fd, current_mode, max_dotclock))
> +			continue;
> +
> +		if (!found ||
> +		    current_mode->hdisplay > mode->hdisplay ||
> +		    (current_mode->hdisplay == mode->hdisplay &&
> +		     current_mode->clock > mode->clock)) {
>   			*mode = *current_mode;
> -			return true;
> +			found = true;
>   		}
>   	}
>   
> -	return false;
> +	return found;
>   }
>   
>   /* TODO: Move these lib functions to the joiner-specific library file

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

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

* RE: [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for MST outputs
  2026-02-20 15:22 ` [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for MST outputs Kunal Joshi
  2026-02-23 17:40   ` Thasleem, Mohammed
@ 2026-02-26  4:02   ` Kandpal, Suraj
  1 sibling, 0 replies; 17+ messages in thread
From: Kandpal, Suraj @ 2026-02-26  4:02 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org
  Cc: Joshi, Kunal1, Kamil Konieczny

> Subject: [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for
> MST outputs
> 
> Add igt_display_has_mst_output() helper function to check if a display has at
> least one DP MST output connected.
> This is useful for tests that need to verify MST output availability before
> running.
> 
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
>  tests/intel/kms_mst_helper.c | 19 +++++++++++++++++++
> tests/intel/kms_mst_helper.h |  1 +
>  2 files changed, 20 insertions(+)
> 
> diff --git a/tests/intel/kms_mst_helper.c b/tests/intel/kms_mst_helper.c index
> aef74cd31..6b986a45c 100644
> --- a/tests/intel/kms_mst_helper.c
> +++ b/tests/intel/kms_mst_helper.c
> @@ -46,3 +46,22 @@ int igt_find_all_mst_output_in_topology(int drm_fd,
> igt_display_t *display,
>  	}
>  	return 0;
>  }
> +
> +/*
> + * @display: pointer to #igt_display_t structure
> + *
> + * Iterates over all connected outputs and checks if any of them
> + * is a DP MST output.
> + *
> + * Returns: true if at least one MST output is found, false otherwise

I was browsing through different helper files here saw that we do not really have a consistent way of
How these are documented.
I would like someone to take up the task to either just remove or add the correct documentation for
each not static function.
If we choose documenting these functions I would like it to follow the kernel way of documenting stuff.
SO 
Function name : one/two line of what it does
Arguments: description

Returns : what it returns and when

Also here I think lets not add any documentation at all (the function name and code seem self explanatory)
, It can be added later if someone starts working the above and we decide to make documentation across helpers uniform.

Mentioned changes
Regards,
Suraj Kandpal

> +*/ bool igt_display_has_mst_output(igt_display_t *display) {
> +    igt_output_t *output;
> +
> +    for_each_connected_output(display, output) {
> +        if (igt_check_output_is_dp_mst(output))
> +            return true;
> +    }
> +    return false;
> +}
> diff --git a/tests/intel/kms_mst_helper.h b/tests/intel/kms_mst_helper.h index
> 7391494ab..0e8ece0a0 100644
> --- a/tests/intel/kms_mst_helper.h
> +++ b/tests/intel/kms_mst_helper.h
> @@ -12,4 +12,5 @@ int igt_find_all_mst_output_in_topology(int drm_fd,
> igt_display_t *display,
>  					igt_output_t *output,
>  					igt_output_t *mst_outputs[],
>  					int *num_mst_outputs);
> +bool igt_display_has_mst_output(igt_display_t *display);
>  #endif
> --
> 2.43.0


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

* RE: [PATCH i-g-t 2/3] lib/igt_kms: Fix max_non_joiner_mode_found
  2026-02-20 15:22 ` [PATCH i-g-t 2/3] lib/igt_kms: Fix max_non_joiner_mode_found Kunal Joshi
  2026-02-24 10:30   ` Thasleem, Mohammed
@ 2026-02-26  4:26   ` Kandpal, Suraj
  1 sibling, 0 replies; 17+ messages in thread
From: Kandpal, Suraj @ 2026-02-26  4:26 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Joshi, Kunal1

> Subject: [PATCH i-g-t 2/3] lib/igt_kms: Fix max_non_joiner_mode_found
> 
> The function previously required hdisplay == max_pipe_hdisplay (5120 on pre-
> Gen30), which means it returned false for any connector whose maximum

Nit: Pre-Gen30 do you mean PTL if so lets use official names like pre-xe3lpd.
Also you can mention previously the function instead of giving the highest possible mode
The connector could support, it started the check with looking if the mode was equal to max_display.
There may be corner cases where connector never supported the highest mode our source support.
In that case this function would have returned false. 

Otherwise LGTM,
Reviewed-by: Suraj Kandpal <suraj.kandpal@intel.com>

> resolution is below the pipe limit (e.g. a 4K MST output on a 5K-capable
> platform).
> 
> Fix this by iterating all modes and tracking the best one (highest hdisplay, then
> highest clock as a tiebreaker) that does not require a big joiner, as determined
> by igt_bigjoiner_possible(). This correctly handles connectors with any max
> resolution.
> 
> Fixes: 3830ca6a5068 ("lib/igt_kms: Add support to check joiner mode limit")
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
>  lib/igt_kms.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 5c4879604..c6678b02b 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -6904,19 +6904,24 @@ bool bigjoiner_mode_found(int drm_fd,
> drmModeConnector *connector,  bool max_non_joiner_mode_found(int
> drm_fd, drmModeConnector *connector,
>  			   int max_dotclock, drmModeModeInfo *mode)  {
> -	int max_hdisplay = get_max_pipe_hdisplay(drm_fd);
> +	bool found = false;
> 
>  	for (int i = 0; i < connector->count_modes; i++) {
>  		drmModeModeInfo *current_mode = &connector->modes[i];
> 
> -		if (current_mode->hdisplay == max_hdisplay &&
> -		    current_mode->clock < max_dotclock) {
> +		if (igt_bigjoiner_possible(drm_fd, current_mode,
> max_dotclock))
> +			continue;
> +
> +		if (!found ||
> +		    current_mode->hdisplay > mode->hdisplay ||
> +		    (current_mode->hdisplay == mode->hdisplay &&
> +		     current_mode->clock > mode->clock)) {
>  			*mode = *current_mode;
> -			return true;
> +			found = true;
>  		}
>  	}
> 
> -	return false;
> +	return found;
>  }
> 
>  /* TODO: Move these lib functions to the joiner-specific library file
> --
> 2.43.0


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

* RE: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test
  2026-02-20 15:22 ` [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test Kunal Joshi
  2026-02-24  8:35   ` Thasleem, Mohammed
@ 2026-03-03  6:18   ` Kandpal, Suraj
  2026-03-10  4:49     ` Kandpal, Suraj
  1 sibling, 1 reply; 17+ messages in thread
From: Kandpal, Suraj @ 2026-03-03  6:18 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Joshi, Kunal1

> Subject: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-
> resume test
> 
> Add a new subtest mst-suspend-read-crc that verifies MST outputs preserve
> display content (via CRC comparison) across S3 suspend/resume.
> 
> The test enumerates all connected DP MST topologies, and for each root
> connector exercises all non-empty subsets of the discovered MST outputs.
> For each subset it:
>  - Assigns pipes and selects non-joiner modes
>  - Fits modes within bandwidth constraints
>  - Creates green FBs, commits, and collects pre-suspend CRCs
>  - Suspends to memory and resumes
>  - Collects post-suspend CRCs and asserts they match
> 
> v2:
> - Add error handling for igt_pipe_crc_new (Thasleem)
> - Improve log format with index for clarity (Thasleem)
> - Order declarations in decreasing line length (Thasleem)
> - Add print message when no MST found (Thasleem)
> - Add bounds check for idx in subset loop (Thasleem)
> - Use igt_crtc_crc_new() instead of igt_pipe_crc_new() (Ville)
> 
> v3:
> - framebuffers missing in commit (Bilal)
> 
> v4:
> - Drop cleanup framework
> 
> Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> ---
>  tests/kms_pipe_crc_basic.c | 314
> +++++++++++++++++++++++++++++++++++++
>  tests/meson.build          |   3 +
>  2 files changed, 317 insertions(+)
> 
> diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c index
> f7b6ec293..59a44e92e 100644
> --- a/tests/kms_pipe_crc_basic.c
> +++ b/tests/kms_pipe_crc_basic.c
> @@ -32,7 +32,10 @@
> 
>  #include "igt.h"
>  #include "igt_sysfs.h"
> +#include "intel/kms_mst_helper.h"
> +#include "intel/kms_joiner_helper.h"

Usually you would want this declared under the below standard libraries

>  #include <errno.h>
> +#include <limits.h>
>  #include <stdbool.h>
>  #include <stdio.h>
>  #include <string.h>
> @@ -77,6 +80,11 @@
>   *              CRTC does not cause issues.
>   */
> 
> +/**
> + * SUBTEST: mst-suspend-read-crc
> + * Description: MST suspend test for pipe CRC reads.
> + */
> +
>  static bool extended;
>  static enum pipe active_pipes[IGT_MAX_PIPES];  static uint32_t last_pipe;
> @@ -96,6 +104,306 @@ static struct {
>  	{ .r = 0.0, .g = 1.0, .b = 1.0 },
>  };
> 
> +#define MAX_MST_OUTPUT 3
> +
> +static void collect_single_crc(igt_crtc_t *crtc, igt_crc_t *crc) {
> +	igt_pipe_crc_t *pipe_crc;
> +
> +	pipe_crc = igt_crtc_crc_new(crtc, IGT_PIPE_CRC_SOURCE_AUTO);
> +	igt_assert(pipe_crc);
> +	igt_pipe_crc_collect_crc(pipe_crc, crc);
> +	igt_pipe_crc_free(pipe_crc);
> +}
> +
> +static void collect_crc_for_active_outputs(igt_output_t **outputs,
> +					   int num_outputs,
> +					   igt_crc_t *crcs,
> +					   bool post_suspend)
> +{
> +	int i;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_output_t *output = outputs[i];
> +		igt_crtc_t *crtc = igt_output_get_driving_crtc(output);
> +
> +		if (post_suspend)
> +			igt_require_f(crtc,
> +				      "POST-SUSPEND: no driving CRTC for %s
> (topology changed?)\n",
> +				      output->name);
> +		else
> +			igt_assert_f(crtc,
> +				     "PRE-SUSPEND: no driving CRTC for %s
> (bad pipe assignment?)\n",
> +				     output->name);
> +
> +		collect_single_crc(crtc, &crcs[i]);
> +	}
> +}
> +
> +static void wait_for_vblanks(igt_output_t **outputs, int num_outputs,
> +			     bool post_suspend)
> +{
> +	int i;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_crtc_t *crtc = igt_output_get_driving_crtc(outputs[i]);
> +
> +		if (post_suspend)
> +			igt_require_f(crtc,
> +				      "POST-SUSPEND: no driving CRTC for %s
> during vblank wait (topology changed?)\n",
> +				      outputs[i]->name);
> +		else
> +			igt_assert_f(crtc,
> +				     "PRE-SUSPEND: no driving CRTC for %s
> during vblank wait (bad pipe assignment?)\n",
> +				     outputs[i]->name);
> +
> +		igt_wait_for_vblank(crtc);
> +	}
> +}
> +
> +static void log_crc_for_outputs(igt_output_t **outputs, int num_outputs,
> +				igt_crc_t *crcs, const char *stage) {
> +	int i;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_output_t *o = outputs[i];
> +		drmModeModeInfo *m = igt_output_get_mode(o);
> +		char *s = igt_crc_to_string(&crcs[i]);
> +		igt_crtc_t *crtc = igt_output_get_driving_crtc(o);
> +
> +		igt_info("[%d] %s: output %s -> crtc %s, CRC %s, mode
> %dx%d@%d\n",
> +			 i, stage, o->name,
> +			 igt_crtc_name(crtc),
> +			 s,
> +			 m ? m->hdisplay : -1,
> +			 m ? m->vdisplay : -1,
> +			 m ? m->vrefresh : 0);
> +		free(s);
> +	}
> +}
> +
> +/*
> + * Select non-joiner modes for all outputs to ensure CRC collection works.
> + * Joiner configurations consume multiple pipes and are not yet validated
> here.
> + * Must be called before igt_fit_modes_in_bw() so that bandwidth
> +fitting uses
> + * the correct (non-joiner) modes.
> + */

Lets remove documentation here this is a static function
More over the code should be self explanatory.

> +static void select_non_joiner_modes(int drm_fd, igt_output_t **outputs,
> +				    int num_outputs)
> +{
> +	int max_dotclock = igt_get_max_dotclock(drm_fd);
> +	int i;
> +
> +	if (max_dotclock <= 0)
> +		max_dotclock = INT_MAX;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_output_t *output = outputs[i];
> +		drmModeModeInfo non_joiner_mode;
> +
> +		igt_require_f(max_non_joiner_mode_found(drm_fd,
> +							output-
> >config.connector,
> +							max_dotclock,
> +							&non_joiner_mode),
> +			      "No non-joiner mode found for %s\n",
> +			      output->name);
> +		igt_output_override_mode(output, &non_joiner_mode);
> +	}
> +}
> +
> +static void create_fbs_for_outputs(int drm_fd, igt_output_t **outputs,
> +				   int num_outputs, struct igt_fb *fbs) {
> +	int i;
> +
> +	for (i = 0; i < num_outputs; i++) {
> +		igt_output_t *output = outputs[i];
> +		drmModeModeInfo *mode = igt_output_get_mode(output);
> +		igt_plane_t *primary;
> +
> +		igt_require_f(mode, "No mode available for output %s\n",
> +output->name);
> +
> +		primary = igt_output_get_plane_type(output,
> DRM_PLANE_TYPE_PRIMARY);
> +
> +		igt_create_color_fb(drm_fd,
> +				    mode->hdisplay, mode->vdisplay,
> +				    DRM_FORMAT_XRGB8888,
> +				    DRM_FORMAT_MOD_LINEAR,
> +				    0.0, 1.0, 0.0,  /* Green color */
> +				    &fbs[i]);
> +		igt_plane_set_fb(primary, &fbs[i]);
> +	}
> +}
> +
> +static void run_mst_subset_and_verify(igt_display_t *display,
> +				      igt_output_t **active_outputs,
> +				      int num_active,
> +				      int n_crtcs,
> +				      uint32_t master_pipes_mask,
> +				      uint32_t valid_pipes_mask)
> +{
> +	igt_crc_t pre_crcs[MAX_MST_OUTPUT];
> +	igt_crc_t post_crcs[MAX_MST_OUTPUT];
> +	struct igt_fb fbs[MAX_MST_OUTPUT];
> +	uint32_t used_pipes_mask = 0;
> +	enum igt_suspend_test stest = SUSPEND_TEST_NONE;
> +	int drm_fd = display->drm_fd;
> +	int a;
> +
> +	igt_require_f(num_active <= n_crtcs,
> +		      "Not enough crtcs for MST subset\n");
> +
> +	igt_require(igt_assign_pipes_for_outputs(drm_fd,
> +						 active_outputs,
> +						 num_active,
> +						 n_crtcs,
> +						 &used_pipes_mask,
> +						 master_pipes_mask,
> +						 valid_pipes_mask));
> +
> +	select_non_joiner_modes(drm_fd, active_outputs, num_active);
> +
> +	igt_require_f(igt_fit_modes_in_bw(display),
> +		      "Unable to fit modes in bw\n");
> +
> +	create_fbs_for_outputs(drm_fd, active_outputs, num_active, fbs);
> +
> +	igt_display_commit2(display, COMMIT_ATOMIC);
> +
> +	/* rtcwake cmd is not supported on MTK devices */
> +	if (is_mtk_device(drm_fd))
> +		stest = SUSPEND_TEST_DEVICES;
> +
> +	igt_info("MST subset: %d outputs, n_crtcs=%d\n",
> +		 num_active, n_crtcs);
> +
> +	wait_for_vblanks(active_outputs, num_active, false);
> +	wait_for_vblanks(active_outputs, num_active, false);
> +
> +	collect_crc_for_active_outputs(active_outputs,
> +				       num_active,
> +				       pre_crcs, false);
> +
> +	log_crc_for_outputs(active_outputs, num_active, pre_crcs,
> +"PRE-SUSPEND");
> +
> +	igt_system_suspend_autoresume(SUSPEND_STATE_MEM, stest);
> +
> +	wait_for_vblanks(active_outputs, num_active, true);
> +	wait_for_vblanks(active_outputs, num_active, true);
> +
> +	collect_crc_for_active_outputs(active_outputs,
> +				       num_active,
> +				       post_crcs, true);
> +
> +	log_crc_for_outputs(active_outputs, num_active, post_crcs,
> +"POST-SUSPEND");
> +
> +	for (a = 0; a < num_active; a++)
> +		igt_assert_crc_equal(&pre_crcs[a], &post_crcs[a]);
> +
> +	/* Detach FBs from planes and remove them to leave a clean state */
> +	for (a = 0; a < num_active; a++) {
> +		igt_plane_t *primary =
> +			igt_output_get_plane_type(active_outputs[a],
> +
> DRM_PLANE_TYPE_PRIMARY);
> +		igt_plane_set_fb(primary, NULL);
> +		igt_remove_fb(drm_fd, &fbs[a]);
> +	}
> +}
> +
> +static void mst_suspend_read_crc(igt_display_t *display) {
> +	int n_crtcs = igt_display_n_crtcs(display);
> +	igt_output_t *active_outputs[MAX_MST_OUTPUT];
> +	/*
> +	 * igt_find_all_mst_output_in_topology() internally caps
> +	 * discovery at IGT_MAX_PIPES entries, so this is the
> +	 * correct upper bound for the buffer.
> +	 */

Never seen a comment over a variable declaration. Makes me wonder if this comment
Belongs elsewhere ?
Also can we group all structs together then int then ... while declaring seems more cleaner that way

This is just what I see at the first pass of this patch I  am still going through the logic would appreciate it
If you could hold off on another revision till I get the time to verify the logic

Regards,
Suraj Kandpal

> +	igt_output_t *mst_outputs[IGT_MAX_PIPES];
> +	/* Fixed upper bound for tracking traversed root connectors. */
> +	int traversed_roots[IGT_MAX_PIPES] = { 0 };
> +	int drm_fd = display->drm_fd;
> +	uint32_t valid_pipes_mask = 0;
> +	int num_mst, i, num_active;
> +	uint32_t master_pipes_mask;
> +	igt_output_t *output;
> +	igt_crtc_t *crtc;
> +	int num_roots = 0;
> +
> +	for_each_crtc(display, crtc)
> +		valid_pipes_mask |= BIT(crtc->pipe);
> +
> +	igt_set_all_master_pipes_for_platform(display,
> &master_pipes_mask);
> +
> +	for_each_connected_output(display, output) {
> +		int root_id;
> +		bool root_seen = false;
> +
> +		root_id = igt_get_dp_mst_connector_id(output);
> +		if (root_id < 0) {
> +			igt_info("Skipping non-mst output %s\n", output-
> >name);
> +			continue;
> +		}
> +
> +		for (i = 0; i < num_roots; i++)
> +			if (traversed_roots[i] == root_id)
> +				root_seen = true;
> +
> +		if (root_seen)
> +			continue;
> +
> +		num_mst = 0;
> +		igt_require(igt_find_all_mst_output_in_topology(drm_fd,
> display,
> +							output, mst_outputs,
> +							&num_mst) == 0);
> +		igt_assert_f(num_mst <= IGT_MAX_PIPES,
> +			     "MST topology discovery overflow: num_mst=%d >
> IGT_MAX_PIPES=%d\n",
> +			     num_mst, IGT_MAX_PIPES);
> +		if (num_mst == 0) {
> +			igt_info("No MST outputs found in topology for output
> %s\n",
> +				 output->name);
> +			igt_skip("No MST outputs found in topology\n");
> +		}
> +
> +		if (num_roots < IGT_MAX_PIPES)
> +			traversed_roots[num_roots++] = root_id;
> +
> +		if (num_mst > MAX_MST_OUTPUT)
> +			num_mst = MAX_MST_OUTPUT;
> +
> +		igt_dynamic_f("mst-root-%d", root_id) {
> +			int mask;
> +
> +			for (mask = 1; mask < (1 << num_mst); mask++) {
> +				int bit, idx = 0;
> +
> +				/* build subset for this bitmask */
> +				for (bit = 0; bit < num_mst; bit++) {
> +					if (!(mask & (1 << bit)))
> +						continue;
> +
> +					if (idx >= MAX_MST_OUTPUT)
> +						break;
> +
> +					active_outputs[idx++] =
> mst_outputs[bit];
> +				}
> +
> +				num_active = idx;
> +				if (!num_active)
> +					continue;
> +
> +				igt_display_reset(display);
> +
> +				run_mst_subset_and_verify(display,
> active_outputs,
> +							  num_active,
> n_crtcs,
> +							  master_pipes_mask,
> +							  valid_pipes_mask);
> +			}
> +		}
> +	}
> +}
> +
>  static bool simulation_constraint(igt_crtc_t *crtc)  {
>  	if (igt_run_in_simulation() && !extended && @@ -525,6 +833,12 @@
> int igt_main_args("e", NULL, help_str, opt_handler, NULL)
>  		}
>  	}
> 
> +	igt_describe("MST suspend test for pipe CRC reads.");
> +	igt_subtest_with_dynamic("mst-suspend-read-crc") {
> +		igt_require(igt_display_has_mst_output(&data.display));
> +		mst_suspend_read_crc(&data.display);
> +	}
> +
>  	igt_fixture() {
>  		igt_display_fini(&data.display);
>  		drm_close_driver(data.drm_fd);
> diff --git a/tests/meson.build b/tests/meson.build index
> 7f356de9b..06c0d8e98 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -399,6 +399,9 @@ extra_sources = {
>             join_paths ('intel', 'kms_joiner_helper.c') ],
>  	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
>  	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
> +	'kms_pipe_crc_basic': [
> +		join_paths ('intel', 'kms_mst_helper.c'),
> +		join_paths ('intel', 'kms_joiner_helper.c') ],
>  	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],  }
> 
> --
> 2.43.0


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

* RE: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test
  2026-03-03  6:18   ` Kandpal, Suraj
@ 2026-03-10  4:49     ` Kandpal, Suraj
  2026-03-10  4:53       ` Kandpal, Suraj
  0 siblings, 1 reply; 17+ messages in thread
From: Kandpal, Suraj @ 2026-03-10  4:49 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Joshi, Kunal1

> Subject: RE: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-
> resume test
> 
> > Subject: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-
> > resume test
> >
> > Add a new subtest mst-suspend-read-crc that verifies MST outputs
> > preserve display content (via CRC comparison) across S3 suspend/resume.
> >
> > The test enumerates all connected DP MST topologies, and for each root
> > connector exercises all non-empty subsets of the discovered MST outputs.
> > For each subset it:
> >  - Assigns pipes and selects non-joiner modes
> >  - Fits modes within bandwidth constraints
> >  - Creates green FBs, commits, and collects pre-suspend CRCs
> >  - Suspends to memory and resumes
> >  - Collects post-suspend CRCs and asserts they match
> >
> > v2:
> > - Add error handling for igt_pipe_crc_new (Thasleem)
> > - Improve log format with index for clarity (Thasleem)
> > - Order declarations in decreasing line length (Thasleem)
> > - Add print message when no MST found (Thasleem)
> > - Add bounds check for idx in subset loop (Thasleem)
> > - Use igt_crtc_crc_new() instead of igt_pipe_crc_new() (Ville)
> >
> > v3:
> > - framebuffers missing in commit (Bilal)
> >
> > v4:
> > - Drop cleanup framework
> >
> > Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> > ---
> >  tests/kms_pipe_crc_basic.c | 314
> > +++++++++++++++++++++++++++++++++++++
> >  tests/meson.build          |   3 +
> >  2 files changed, 317 insertions(+)
> >
> > diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
> > index f7b6ec293..59a44e92e 100644
> > --- a/tests/kms_pipe_crc_basic.c
> > +++ b/tests/kms_pipe_crc_basic.c
> > @@ -32,7 +32,10 @@
> >
> >  #include "igt.h"
> >  #include "igt_sysfs.h"
> > +#include "intel/kms_mst_helper.h"
> > +#include "intel/kms_joiner_helper.h"
> 
> Usually you would want this declared under the below standard libraries
> 
> >  #include <errno.h>
> > +#include <limits.h>
> >  #include <stdbool.h>
> >  #include <stdio.h>
> >  #include <string.h>
> > @@ -77,6 +80,11 @@
> >   *              CRTC does not cause issues.
> >   */
> >
> > +/**
> > + * SUBTEST: mst-suspend-read-crc
> > + * Description: MST suspend test for pipe CRC reads.
> > + */
> > +
> >  static bool extended;
> >  static enum pipe active_pipes[IGT_MAX_PIPES];  static uint32_t
> > last_pipe; @@ -96,6 +104,306 @@ static struct {
> >  	{ .r = 0.0, .g = 1.0, .b = 1.0 },
> >  };
> >
> > +#define MAX_MST_OUTPUT 3
> > +
> > +static void collect_single_crc(igt_crtc_t *crtc, igt_crc_t *crc) {
> > +	igt_pipe_crc_t *pipe_crc;
> > +
> > +	pipe_crc = igt_crtc_crc_new(crtc, IGT_PIPE_CRC_SOURCE_AUTO);
> > +	igt_assert(pipe_crc);
> > +	igt_pipe_crc_collect_crc(pipe_crc, crc);
> > +	igt_pipe_crc_free(pipe_crc);
> > +}
> > +
> > +static void collect_crc_for_active_outputs(igt_output_t **outputs,
> > +					   int num_outputs,
> > +					   igt_crc_t *crcs,
> > +					   bool post_suspend)
> > +{
> > +	int i;
> > +
> > +	for (i = 0; i < num_outputs; i++) {
> > +		igt_output_t *output = outputs[i];
> > +		igt_crtc_t *crtc = igt_output_get_driving_crtc(output);
> > +
> > +		if (post_suspend)
> > +			igt_require_f(crtc,
> > +				      "POST-SUSPEND: no driving CRTC for %s
> > (topology changed?)\n",
> > +				      output->name);
> > +		else
> > +			igt_assert_f(crtc,
> > +				     "PRE-SUSPEND: no driving CRTC for %s
> > (bad pipe assignment?)\n",
> > +				     output->name);
> > +
> > +		collect_single_crc(crtc, &crcs[i]);
> > +	}
> > +}
> > +
> > +static void wait_for_vblanks(igt_output_t **outputs, int num_outputs,
> > +			     bool post_suspend)
> > +{
> > +	int i;
> > +
> > +	for (i = 0; i < num_outputs; i++) {
> > +		igt_crtc_t *crtc = igt_output_get_driving_crtc(outputs[i]);
> > +
> > +		if (post_suspend)
> > +			igt_require_f(crtc,
> > +				      "POST-SUSPEND: no driving CRTC for %s
> > during vblank wait (topology changed?)\n",
> > +				      outputs[i]->name);
> > +		else
> > +			igt_assert_f(crtc,
> > +				     "PRE-SUSPEND: no driving CRTC for %s
> > during vblank wait (bad pipe assignment?)\n",
> > +				     outputs[i]->name);
> > +
> > +		igt_wait_for_vblank(crtc);
> > +	}
> > +}
> > +
> > +static void log_crc_for_outputs(igt_output_t **outputs, int num_outputs,
> > +				igt_crc_t *crcs, const char *stage) {
> > +	int i;
> > +
> > +	for (i = 0; i < num_outputs; i++) {
> > +		igt_output_t *o = outputs[i];
> > +		drmModeModeInfo *m = igt_output_get_mode(o);
> > +		char *s = igt_crc_to_string(&crcs[i]);
> > +		igt_crtc_t *crtc = igt_output_get_driving_crtc(o);
> > +
> > +		igt_info("[%d] %s: output %s -> crtc %s, CRC %s, mode
> > %dx%d@%d\n",
> > +			 i, stage, o->name,
> > +			 igt_crtc_name(crtc),
> > +			 s,
> > +			 m ? m->hdisplay : -1,
> > +			 m ? m->vdisplay : -1,
> > +			 m ? m->vrefresh : 0);
> > +		free(s);
> > +	}
> > +}
> > +
> > +/*
> > + * Select non-joiner modes for all outputs to ensure CRC collection works.
> > + * Joiner configurations consume multiple pipes and are not yet
> > +validated
> > here.
> > + * Must be called before igt_fit_modes_in_bw() so that bandwidth
> > +fitting uses
> > + * the correct (non-joiner) modes.
> > + */
> 
> Lets remove documentation here this is a static function More over the code
> should be self explanatory.
> 
> > +static void select_non_joiner_modes(int drm_fd, igt_output_t **outputs,
> > +				    int num_outputs)
> > +{
> > +	int max_dotclock = igt_get_max_dotclock(drm_fd);
> > +	int i;
> > +
> > +	if (max_dotclock <= 0)
> > +		max_dotclock = INT_MAX;
> > +
> > +	for (i = 0; i < num_outputs; i++) {
> > +		igt_output_t *output = outputs[i];
> > +		drmModeModeInfo non_joiner_mode;
> > +
> > +		igt_require_f(max_non_joiner_mode_found(drm_fd,
> > +							output-
> > >config.connector,
> > +							max_dotclock,
> > +							&non_joiner_mode),
> > +			      "No non-joiner mode found for %s\n",
> > +			      output->name);
> > +		igt_output_override_mode(output, &non_joiner_mode);
> > +	}
> > +}
> > +
> > +static void create_fbs_for_outputs(int drm_fd, igt_output_t **outputs,
> > +				   int num_outputs, struct igt_fb *fbs) {
> > +	int i;
> > +
> > +	for (i = 0; i < num_outputs; i++) {
> > +		igt_output_t *output = outputs[i];
> > +		drmModeModeInfo *mode = igt_output_get_mode(output);
> > +		igt_plane_t *primary;
> > +
> > +		igt_require_f(mode, "No mode available for output %s\n",
> > +output->name);
> > +
> > +		primary = igt_output_get_plane_type(output,
> > DRM_PLANE_TYPE_PRIMARY);
> > +
> > +		igt_create_color_fb(drm_fd,
> > +				    mode->hdisplay, mode->vdisplay,
> > +				    DRM_FORMAT_XRGB8888,
> > +				    DRM_FORMAT_MOD_LINEAR,
> > +				    0.0, 1.0, 0.0,  /* Green color */

No need to add comment mentioning green color

> > +				    &fbs[i]);
> > +		igt_plane_set_fb(primary, &fbs[i]);
> > +	}
> > +}
> > +
> > +static void run_mst_subset_and_verify(igt_display_t *display,
> > +				      igt_output_t **active_outputs,
> > +				      int num_active,
> > +				      int n_crtcs,
> > +				      uint32_t master_pipes_mask,
> > +				      uint32_t valid_pipes_mask)
> > +{
> > +	igt_crc_t pre_crcs[MAX_MST_OUTPUT];
> > +	igt_crc_t post_crcs[MAX_MST_OUTPUT];
> > +	struct igt_fb fbs[MAX_MST_OUTPUT];
> > +	uint32_t used_pipes_mask = 0;
> > +	enum igt_suspend_test stest = SUSPEND_TEST_NONE;
> > +	int drm_fd = display->drm_fd;
> > +	int a;
> > +
> > +	igt_require_f(num_active <= n_crtcs,
> > +		      "Not enough crtcs for MST subset\n");
> > +
> > +	igt_require(igt_assign_pipes_for_outputs(drm_fd,
> > +						 active_outputs,
> > +						 num_active,
> > +						 n_crtcs,
> > +						 &used_pipes_mask,
> > +						 master_pipes_mask,
> > +						 valid_pipes_mask));
> > +
> > +	select_non_joiner_modes(drm_fd, active_outputs, num_active);
> > +
> > +	igt_require_f(igt_fit_modes_in_bw(display),
> > +		      "Unable to fit modes in bw\n");
> > +
> > +	create_fbs_for_outputs(drm_fd, active_outputs, num_active, fbs);
> > +
> > +	igt_display_commit2(display, COMMIT_ATOMIC);
> > +
> > +	/* rtcwake cmd is not supported on MTK devices */
> > +	if (is_mtk_device(drm_fd))
> > +		stest = SUSPEND_TEST_DEVICES;
> > +
> > +	igt_info("MST subset: %d outputs, n_crtcs=%d\n",
> > +		 num_active, n_crtcs);
> > +
> > +	wait_for_vblanks(active_outputs, num_active, false);
> > +	wait_for_vblanks(active_outputs, num_active, false);

Why the need of two vblanks when each wait for vblank here iterates over
All MST connectors and waits for each one to send a vblank.

> > +
> > +	collect_crc_for_active_outputs(active_outputs,
> > +				       num_active,
> > +				       pre_crcs, false);
> > +
> > +	log_crc_for_outputs(active_outputs, num_active, pre_crcs,
> > +"PRE-SUSPEND");
> > +
> > +	igt_system_suspend_autoresume(SUSPEND_STATE_MEM, stest);
> > +
> > +	wait_for_vblanks(active_outputs, num_active, true);
> > +	wait_for_vblanks(active_outputs, num_active, true);

Same here .

> > +
> > +	collect_crc_for_active_outputs(active_outputs,
> > +				       num_active,
> > +				       post_crcs, true);
> > +
> > +	log_crc_for_outputs(active_outputs, num_active, post_crcs,
> > +"POST-SUSPEND");
> > +
> > +	for (a = 0; a < num_active; a++)
> > +		igt_assert_crc_equal(&pre_crcs[a], &post_crcs[a]);
> > +
> > +	/* Detach FBs from planes and remove them to leave a clean state */
> > +	for (a = 0; a < num_active; a++) {
> > +		igt_plane_t *primary =
> > +			igt_output_get_plane_type(active_outputs[a],
> > +
> > DRM_PLANE_TYPE_PRIMARY);
> > +		igt_plane_set_fb(primary, NULL);
> > +		igt_remove_fb(drm_fd, &fbs[a]);
> > +	}
> > +}
> > +
> > +static void mst_suspend_read_crc(igt_display_t *display) {
> > +	int n_crtcs = igt_display_n_crtcs(display);
> > +	igt_output_t *active_outputs[MAX_MST_OUTPUT];
> > +	/*
> > +	 * igt_find_all_mst_output_in_topology() internally caps
> > +	 * discovery at IGT_MAX_PIPES entries, so this is the
> > +	 * correct upper bound for the buffer.
> > +	 */
> 
> Never seen a comment over a variable declaration. Makes me wonder if this
> comment Belongs elsewhere ?
> Also can we group all structs together then int then ... while declaring seems
> more cleaner that way
> 
> This is just what I see at the first pass of this patch I  am still going through the
> logic would appreciate it If you could hold off on another revision till I get the
> time to verify the logic
> 
> Regards,
> Suraj Kandpal
> 
> > +	igt_output_t *mst_outputs[IGT_MAX_PIPES];
> > +	/* Fixed upper bound for tracking traversed root connectors. */
> > +	int traversed_roots[IGT_MAX_PIPES] = { 0 };
> > +	int drm_fd = display->drm_fd;
> > +	uint32_t valid_pipes_mask = 0;
> > +	int num_mst, i, num_active;
> > +	uint32_t master_pipes_mask;
> > +	igt_output_t *output;
> > +	igt_crtc_t *crtc;
> > +	int num_roots = 0;
> > +
> > +	for_each_crtc(display, crtc)
> > +		valid_pipes_mask |= BIT(crtc->pipe);
> > +
> > +	igt_set_all_master_pipes_for_platform(display,
> > &master_pipes_mask);
> > +
> > +	for_each_connected_output(display, output) {
> > +		int root_id;
> > +		bool root_seen = false;
> > +
> > +		root_id = igt_get_dp_mst_connector_id(output);
> > +		if (root_id < 0) {
> > +			igt_info("Skipping non-mst output %s\n", output-
> > >name);
> > +			continue;
> > +		}
> > +
> > +		for (i = 0; i < num_roots; i++)
> > +			if (traversed_roots[i] == root_id)
> > +				root_seen = true;
> > +
> > +		if (root_seen)
> > +			continue;
> > +
> > +		num_mst = 0;
> > +		igt_require(igt_find_all_mst_output_in_topology(drm_fd,
> > display,
> > +							output, mst_outputs,
> > +							&num_mst) == 0);
> > +		igt_assert_f(num_mst <= IGT_MAX_PIPES,
> > +			     "MST topology discovery overflow: num_mst=%d >
> > IGT_MAX_PIPES=%d\n",
> > +			     num_mst, IGT_MAX_PIPES);
> > +		if (num_mst == 0) {
> > +			igt_info("No MST outputs found in topology for output
> > %s\n",
> > +				 output->name);
> > +			igt_skip("No MST outputs found in topology\n");
> > +		}
> > +
> > +		if (num_roots < IGT_MAX_PIPES)
> > +			traversed_roots[num_roots++] = root_id;
> > +
> > +		if (num_mst > MAX_MST_OUTPUT)
> > +			num_mst = MAX_MST_OUTPUT;
> > +
> > +		igt_dynamic_f("mst-root-%d", root_id) {
> > +			int mask;
> > +
> > +			for (mask = 1; mask < (1 << num_mst); mask++) {
> > +				int bit, idx = 0;
> > +
> > +				/* build subset for this bitmask */
> > +				for (bit = 0; bit < num_mst; bit++) {
> > +					if (!(mask & (1 << bit)))
> > +						continue;
> > +
> > +					if (idx >= MAX_MST_OUTPUT)
> > +						break;
> > +
> > +					active_outputs[idx++] =
> > mst_outputs[bit];
> > +				}
> > +
> > +				num_active = idx;
> > +				if (!num_active)
> > +					continue;
> > +
> > +				igt_display_reset(display);
> > +
> > +				run_mst_subset_and_verify(display,
> > active_outputs,
> > +							  num_active,
> > n_crtcs,
> > +							  master_pipes_mask,
> > +							  valid_pipes_mask);
> > +			}
> > +		}
> > +	}
> > +}
> > +
> >  static bool simulation_constraint(igt_crtc_t *crtc)  {
> >  	if (igt_run_in_simulation() && !extended && @@ -525,6 +833,12 @@
> int
> > igt_main_args("e", NULL, help_str, opt_handler, NULL)
> >  		}
> >  	}
> >
> > +	igt_describe("MST suspend test for pipe CRC reads.");
> > +	igt_subtest_with_dynamic("mst-suspend-read-crc") {
> > +		igt_require(igt_display_has_mst_output(&data.display));
> > +		mst_suspend_read_crc(&data.display);
> > +	}
> > +
> >  	igt_fixture() {
> >  		igt_display_fini(&data.display);
> >  		drm_close_driver(data.drm_fd);
> > diff --git a/tests/meson.build b/tests/meson.build index
> > 7f356de9b..06c0d8e98 100644
> > --- a/tests/meson.build
> > +++ b/tests/meson.build
> > @@ -399,6 +399,9 @@ extra_sources = {
> >             join_paths ('intel', 'kms_joiner_helper.c') ],
> >  	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
> >  	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
> > +	'kms_pipe_crc_basic': [
> > +		join_paths ('intel', 'kms_mst_helper.c'),
> > +		join_paths ('intel', 'kms_joiner_helper.c') ],
> >  	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],  }
> >
> > --
> > 2.43.0


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

* RE: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test
  2026-03-10  4:49     ` Kandpal, Suraj
@ 2026-03-10  4:53       ` Kandpal, Suraj
  0 siblings, 0 replies; 17+ messages in thread
From: Kandpal, Suraj @ 2026-03-10  4:53 UTC (permalink / raw)
  To: Joshi, Kunal1, igt-dev@lists.freedesktop.org; +Cc: Joshi, Kunal1



> -----Original Message-----
> From: Kandpal, Suraj
> Sent: Tuesday, March 10, 2026 10:19 AM
> To: 'Kunal Joshi' <kunal1.joshi@intel.com>; 'igt-dev@lists.freedesktop.org'
> <igt-dev@lists.freedesktop.org>
> Cc: Joshi, Kunal1 <kunal1.joshi@intel.com>
> Subject: RE: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-
> resume test
> 
> > Subject: RE: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST
> > suspend- resume test
> >
> > > Subject: [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST
> > > suspend- resume test
> > >
> > > Add a new subtest mst-suspend-read-crc that verifies MST outputs
> > > preserve display content (via CRC comparison) across S3 suspend/resume.
> > >
> > > The test enumerates all connected DP MST topologies, and for each
> > > root connector exercises all non-empty subsets of the discovered MST
> outputs.
> > > For each subset it:
> > >  - Assigns pipes and selects non-joiner modes
> > >  - Fits modes within bandwidth constraints
> > >  - Creates green FBs, commits, and collects pre-suspend CRCs
> > >  - Suspends to memory and resumes
> > >  - Collects post-suspend CRCs and asserts they match
> > >
> > > v2:
> > > - Add error handling for igt_pipe_crc_new (Thasleem)
> > > - Improve log format with index for clarity (Thasleem)
> > > - Order declarations in decreasing line length (Thasleem)
> > > - Add print message when no MST found (Thasleem)
> > > - Add bounds check for idx in subset loop (Thasleem)
> > > - Use igt_crtc_crc_new() instead of igt_pipe_crc_new() (Ville)
> > >
> > > v3:
> > > - framebuffers missing in commit (Bilal)
> > >
> > > v4:
> > > - Drop cleanup framework
> > >
> > > Signed-off-by: Kunal Joshi <kunal1.joshi@intel.com>
> > > ---
> > >  tests/kms_pipe_crc_basic.c | 314
> > > +++++++++++++++++++++++++++++++++++++
> > >  tests/meson.build          |   3 +
> > >  2 files changed, 317 insertions(+)
> > >
> > > diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
> > > index f7b6ec293..59a44e92e 100644
> > > --- a/tests/kms_pipe_crc_basic.c
> > > +++ b/tests/kms_pipe_crc_basic.c
> > > @@ -32,7 +32,10 @@
> > >
> > >  #include "igt.h"
> > >  #include "igt_sysfs.h"
> > > +#include "intel/kms_mst_helper.h"
> > > +#include "intel/kms_joiner_helper.h"
> >
> > Usually you would want this declared under the below standard
> > libraries
> >
> > >  #include <errno.h>
> > > +#include <limits.h>
> > >  #include <stdbool.h>
> > >  #include <stdio.h>
> > >  #include <string.h>
> > > @@ -77,6 +80,11 @@
> > >   *              CRTC does not cause issues.
> > >   */
> > >
> > > +/**
> > > + * SUBTEST: mst-suspend-read-crc
> > > + * Description: MST suspend test for pipe CRC reads.
> > > + */
> > > +
> > >  static bool extended;
> > >  static enum pipe active_pipes[IGT_MAX_PIPES];  static uint32_t
> > > last_pipe; @@ -96,6 +104,306 @@ static struct {
> > >  	{ .r = 0.0, .g = 1.0, .b = 1.0 },
> > >  };
> > >
> > > +#define MAX_MST_OUTPUT 3
> > > +
> > > +static void collect_single_crc(igt_crtc_t *crtc, igt_crc_t *crc) {
> > > +	igt_pipe_crc_t *pipe_crc;
> > > +
> > > +	pipe_crc = igt_crtc_crc_new(crtc, IGT_PIPE_CRC_SOURCE_AUTO);
> > > +	igt_assert(pipe_crc);
> > > +	igt_pipe_crc_collect_crc(pipe_crc, crc);
> > > +	igt_pipe_crc_free(pipe_crc);
> > > +}
> > > +
> > > +static void collect_crc_for_active_outputs(igt_output_t **outputs,
> > > +					   int num_outputs,
> > > +					   igt_crc_t *crcs,
> > > +					   bool post_suspend)
> > > +{
> > > +	int i;
> > > +
> > > +	for (i = 0; i < num_outputs; i++) {
> > > +		igt_output_t *output = outputs[i];
> > > +		igt_crtc_t *crtc = igt_output_get_driving_crtc(output);
> > > +
> > > +		if (post_suspend)
> > > +			igt_require_f(crtc,
> > > +				      "POST-SUSPEND: no driving CRTC for %s
> > > (topology changed?)\n",
> > > +				      output->name);
> > > +		else
> > > +			igt_assert_f(crtc,
> > > +				     "PRE-SUSPEND: no driving CRTC for %s
> > > (bad pipe assignment?)\n",
> > > +				     output->name);
> > > +
> > > +		collect_single_crc(crtc, &crcs[i]);
> > > +	}
> > > +}
> > > +
> > > +static void wait_for_vblanks(igt_output_t **outputs, int num_outputs,
> > > +			     bool post_suspend)
> > > +{
> > > +	int i;
> > > +
> > > +	for (i = 0; i < num_outputs; i++) {
> > > +		igt_crtc_t *crtc = igt_output_get_driving_crtc(outputs[i]);
> > > +
> > > +		if (post_suspend)
> > > +			igt_require_f(crtc,
> > > +				      "POST-SUSPEND: no driving CRTC for %s
> > > during vblank wait (topology changed?)\n",
> > > +				      outputs[i]->name);
> > > +		else
> > > +			igt_assert_f(crtc,
> > > +				     "PRE-SUSPEND: no driving CRTC for %s
> > > during vblank wait (bad pipe assignment?)\n",
> > > +				     outputs[i]->name);
> > > +
> > > +		igt_wait_for_vblank(crtc);
> > > +	}
> > > +}
> > > +
> > > +static void log_crc_for_outputs(igt_output_t **outputs, int num_outputs,
> > > +				igt_crc_t *crcs, const char *stage) {
> > > +	int i;
> > > +
> > > +	for (i = 0; i < num_outputs; i++) {
> > > +		igt_output_t *o = outputs[i];
> > > +		drmModeModeInfo *m = igt_output_get_mode(o);
> > > +		char *s = igt_crc_to_string(&crcs[i]);
> > > +		igt_crtc_t *crtc = igt_output_get_driving_crtc(o);
> > > +
> > > +		igt_info("[%d] %s: output %s -> crtc %s, CRC %s, mode
> > > %dx%d@%d\n",
> > > +			 i, stage, o->name,
> > > +			 igt_crtc_name(crtc),
> > > +			 s,
> > > +			 m ? m->hdisplay : -1,
> > > +			 m ? m->vdisplay : -1,
> > > +			 m ? m->vrefresh : 0);
> > > +		free(s);
> > > +	}
> > > +}
> > > +
> > > +/*
> > > + * Select non-joiner modes for all outputs to ensure CRC collection works.
> > > + * Joiner configurations consume multiple pipes and are not yet
> > > +validated
> > > here.
> > > + * Must be called before igt_fit_modes_in_bw() so that bandwidth
> > > +fitting uses
> > > + * the correct (non-joiner) modes.
> > > + */
> >
> > Lets remove documentation here this is a static function More over the
> > code should be self explanatory.
> >
> > > +static void select_non_joiner_modes(int drm_fd, igt_output_t **outputs,
> > > +				    int num_outputs)
> > > +{
> > > +	int max_dotclock = igt_get_max_dotclock(drm_fd);
> > > +	int i;
> > > +
> > > +	if (max_dotclock <= 0)
> > > +		max_dotclock = INT_MAX;
> > > +
> > > +	for (i = 0; i < num_outputs; i++) {
> > > +		igt_output_t *output = outputs[i];
> > > +		drmModeModeInfo non_joiner_mode;
> > > +
> > > +		igt_require_f(max_non_joiner_mode_found(drm_fd,
> > > +							output-
> > > >config.connector,
> > > +							max_dotclock,
> > > +							&non_joiner_mode),
> > > +			      "No non-joiner mode found for %s\n",
> > > +			      output->name);
> > > +		igt_output_override_mode(output, &non_joiner_mode);
> > > +	}
> > > +}
> > > +
> > > +static void create_fbs_for_outputs(int drm_fd, igt_output_t **outputs,
> > > +				   int num_outputs, struct igt_fb *fbs) {
> > > +	int i;
> > > +
> > > +	for (i = 0; i < num_outputs; i++) {
> > > +		igt_output_t *output = outputs[i];
> > > +		drmModeModeInfo *mode = igt_output_get_mode(output);
> > > +		igt_plane_t *primary;
> > > +
> > > +		igt_require_f(mode, "No mode available for output %s\n",
> > > +output->name);
> > > +
> > > +		primary = igt_output_get_plane_type(output,
> > > DRM_PLANE_TYPE_PRIMARY);
> > > +
> > > +		igt_create_color_fb(drm_fd,
> > > +				    mode->hdisplay, mode->vdisplay,
> > > +				    DRM_FORMAT_XRGB8888,
> > > +				    DRM_FORMAT_MOD_LINEAR,
> > > +				    0.0, 1.0, 0.0,  /* Green color */
> 
> No need to add comment mentioning green color
> 
> > > +				    &fbs[i]);
> > > +		igt_plane_set_fb(primary, &fbs[i]);
> > > +	}
> > > +}
> > > +
> > > +static void run_mst_subset_and_verify(igt_display_t *display,
> > > +				      igt_output_t **active_outputs,
> > > +				      int num_active,
> > > +				      int n_crtcs,
> > > +				      uint32_t master_pipes_mask,
> > > +				      uint32_t valid_pipes_mask) {
> > > +	igt_crc_t pre_crcs[MAX_MST_OUTPUT];
> > > +	igt_crc_t post_crcs[MAX_MST_OUTPUT];
> > > +	struct igt_fb fbs[MAX_MST_OUTPUT];
> > > +	uint32_t used_pipes_mask = 0;
> > > +	enum igt_suspend_test stest = SUSPEND_TEST_NONE;
> > > +	int drm_fd = display->drm_fd;
> > > +	int a;
> > > +
> > > +	igt_require_f(num_active <= n_crtcs,
> > > +		      "Not enough crtcs for MST subset\n");
> > > +
> > > +	igt_require(igt_assign_pipes_for_outputs(drm_fd,
> > > +						 active_outputs,
> > > +						 num_active,
> > > +						 n_crtcs,
> > > +						 &used_pipes_mask,
> > > +						 master_pipes_mask,
> > > +						 valid_pipes_mask));
> > > +
> > > +	select_non_joiner_modes(drm_fd, active_outputs, num_active);
> > > +
> > > +	igt_require_f(igt_fit_modes_in_bw(display),
> > > +		      "Unable to fit modes in bw\n");
> > > +
> > > +	create_fbs_for_outputs(drm_fd, active_outputs, num_active, fbs);
> > > +
> > > +	igt_display_commit2(display, COMMIT_ATOMIC);
> > > +
> > > +	/* rtcwake cmd is not supported on MTK devices */
> > > +	if (is_mtk_device(drm_fd))
> > > +		stest = SUSPEND_TEST_DEVICES;
> > > +
> > > +	igt_info("MST subset: %d outputs, n_crtcs=%d\n",
> > > +		 num_active, n_crtcs);
> > > +
> > > +	wait_for_vblanks(active_outputs, num_active, false);
> > > +	wait_for_vblanks(active_outputs, num_active, false);
> 
> Why the need of two vblanks when each wait for vblank here iterates over All
> MST connectors and waits for each one to send a vblank.
> 
> > > +
> > > +	collect_crc_for_active_outputs(active_outputs,
> > > +				       num_active,
> > > +				       pre_crcs, false);
> > > +
> > > +	log_crc_for_outputs(active_outputs, num_active, pre_crcs,
> > > +"PRE-SUSPEND");
> > > +
> > > +	igt_system_suspend_autoresume(SUSPEND_STATE_MEM, stest);
> > > +
> > > +	wait_for_vblanks(active_outputs, num_active, true);
> > > +	wait_for_vblanks(active_outputs, num_active, true);
> 
> Same here .
> 
> > > +
> > > +	collect_crc_for_active_outputs(active_outputs,
> > > +				       num_active,
> > > +				       post_crcs, true);
> > > +
> > > +	log_crc_for_outputs(active_outputs, num_active, post_crcs,
> > > +"POST-SUSPEND");
> > > +
> > > +	for (a = 0; a < num_active; a++)
> > > +		igt_assert_crc_equal(&pre_crcs[a], &post_crcs[a]);
> > > +
> > > +	/* Detach FBs from planes and remove them to leave a clean state */
> > > +	for (a = 0; a < num_active; a++) {
> > > +		igt_plane_t *primary =
> > > +			igt_output_get_plane_type(active_outputs[a],
> > > +
> > > DRM_PLANE_TYPE_PRIMARY);
> > > +		igt_plane_set_fb(primary, NULL);
> > > +		igt_remove_fb(drm_fd, &fbs[a]);
> > > +	}
> > > +}
> > > +
> > > +static void mst_suspend_read_crc(igt_display_t *display) {
> > > +	int n_crtcs = igt_display_n_crtcs(display);
> > > +	igt_output_t *active_outputs[MAX_MST_OUTPUT];
> > > +	/*
> > > +	 * igt_find_all_mst_output_in_topology() internally caps
> > > +	 * discovery at IGT_MAX_PIPES entries, so this is the
> > > +	 * correct upper bound for the buffer.
> > > +	 */
> >
> > Never seen a comment over a variable declaration. Makes me wonder if
> > this comment Belongs elsewhere ?
> > Also can we group all structs together then int then ... while
> > declaring seems more cleaner that way
> >
> > This is just what I see at the first pass of this patch I  am still
> > going through the logic would appreciate it If you could hold off on
> > another revision till I get the time to verify the logic
> >
> > Regards,
> > Suraj Kandpal
> >
> > > +	igt_output_t *mst_outputs[IGT_MAX_PIPES];
> > > +	/* Fixed upper bound for tracking traversed root connectors. */
> > > +	int traversed_roots[IGT_MAX_PIPES] = { 0 };
> > > +	int drm_fd = display->drm_fd;
> > > +	uint32_t valid_pipes_mask = 0;
> > > +	int num_mst, i, num_active;
> > > +	uint32_t master_pipes_mask;
> > > +	igt_output_t *output;
> > > +	igt_crtc_t *crtc;
> > > +	int num_roots = 0;
> > > +
> > > +	for_each_crtc(display, crtc)
> > > +		valid_pipes_mask |= BIT(crtc->pipe);
> > > +
> > > +	igt_set_all_master_pipes_for_platform(display,
> > > &master_pipes_mask);
> > > +
> > > +	for_each_connected_output(display, output) {
> > > +		int root_id;
> > > +		bool root_seen = false;
> > > +
> > > +		root_id = igt_get_dp_mst_connector_id(output);
> > > +		if (root_id < 0) {
> > > +			igt_info("Skipping non-mst output %s\n", output-
> > > >name);
> > > +			continue;
> > > +		}
> > > +
> > > +		for (i = 0; i < num_roots; i++)
> > > +			if (traversed_roots[i] == root_id)
> > > +				root_seen = true;
> > > +
> > > +		if (root_seen)
> > > +			continue;
> > > +
> > > +		num_mst = 0;
> > > +		igt_require(igt_find_all_mst_output_in_topology(drm_fd,
> > > display,
> > > +							output, mst_outputs,
> > > +							&num_mst) == 0);
> > > +		igt_assert_f(num_mst <= IGT_MAX_PIPES,
> > > +			     "MST topology discovery overflow: num_mst=%d >
> > > IGT_MAX_PIPES=%d\n",
> > > +			     num_mst, IGT_MAX_PIPES);
> > > +		if (num_mst == 0) {
> > > +			igt_info("No MST outputs found in topology for output
> > > %s\n",
> > > +				 output->name);
> > > +			igt_skip("No MST outputs found in topology\n");
> > > +		}
> > > +
> > > +		if (num_roots < IGT_MAX_PIPES)
> > > +			traversed_roots[num_roots++] = root_id;
> > > +
> > > +		if (num_mst > MAX_MST_OUTPUT)
> > > +			num_mst = MAX_MST_OUTPUT;
> > > +
> > > +		igt_dynamic_f("mst-root-%d", root_id) {
> > > +			int mask;
> > > +
> > > +			for (mask = 1; mask < (1 << num_mst); mask++) {
> > > +				int bit, idx = 0;
> > > +
> > > +				/* build subset for this bitmask */
> > > +				for (bit = 0; bit < num_mst; bit++) {
> > > +					if (!(mask & (1 << bit)))
> > > +						continue;
> > > +
> > > +					if (idx >= MAX_MST_OUTPUT)
> > > +						break;
> > > +
> > > +					active_outputs[idx++] =
> > > mst_outputs[bit];
> > > +				}
> > > +
> > > +				num_active = idx;
> > > +				if (!num_active)
> > > +					continue;
> > > +
> > > +				igt_display_reset(display);
> > > +
> > > +				run_mst_subset_and_verify(display,
> > > active_outputs,
> > > +							  num_active,
> > > n_crtcs,
> > > +							  master_pipes_mask,
> > > +							  valid_pipes_mask);
> > > +			}
> > > +		}

Should we not be doing a igt_display_reset before jump to the next output so that we come back to our base configuration first.
Also I was thinking would it be much simpler to have a loop filling all the root id first and then another dynamic _f test running over all collected info
Instead of having that nested with for each connected output

Regards,
Suraj Kandpal

> > > +	}
> > > +}
> > > +
> > >  static bool simulation_constraint(igt_crtc_t *crtc)  {
> > >  	if (igt_run_in_simulation() && !extended && @@ -525,6 +833,12 @@
> > int
> > > igt_main_args("e", NULL, help_str, opt_handler, NULL)
> > >  		}
> > >  	}
> > >
> > > +	igt_describe("MST suspend test for pipe CRC reads.");
> > > +	igt_subtest_with_dynamic("mst-suspend-read-crc") {
> > > +		igt_require(igt_display_has_mst_output(&data.display));
> > > +		mst_suspend_read_crc(&data.display);
> > > +	}
> > > +
> > >  	igt_fixture() {
> > >  		igt_display_fini(&data.display);
> > >  		drm_close_driver(data.drm_fd);
> > > diff --git a/tests/meson.build b/tests/meson.build index
> > > 7f356de9b..06c0d8e98 100644
> > > --- a/tests/meson.build
> > > +++ b/tests/meson.build
> > > @@ -399,6 +399,9 @@ extra_sources = {
> > >             join_paths ('intel', 'kms_joiner_helper.c') ],
> > >  	'kms_dsc': [ join_paths ('intel', 'kms_dsc_helper.c') ],
> > >  	'kms_joiner': [ join_paths ('intel', 'kms_joiner_helper.c') ],
> > > +	'kms_pipe_crc_basic': [
> > > +		join_paths ('intel', 'kms_mst_helper.c'),
> > > +		join_paths ('intel', 'kms_joiner_helper.c') ],
> > >  	'kms_psr2_sf':  [ join_paths ('intel', 'kms_dsc_helper.c') ],  }
> > >
> > > --
> > > 2.43.0


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

end of thread, other threads:[~2026-03-10  4:53 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-20 15:22 [PATCH 0/3] tests/kms_pipe_crc_basic: add mst suspend-resume test Kunal Joshi
2026-02-20 15:22 ` [PATCH i-g-t 1/3] tests/intel/kms_mst_helper: Add helper to check for MST outputs Kunal Joshi
2026-02-23 17:40   ` Thasleem, Mohammed
2026-02-26  4:02   ` Kandpal, Suraj
2026-02-20 15:22 ` [PATCH i-g-t 2/3] lib/igt_kms: Fix max_non_joiner_mode_found Kunal Joshi
2026-02-24 10:30   ` Thasleem, Mohammed
2026-02-26  4:26   ` Kandpal, Suraj
2026-02-20 15:22 ` [PATCH i-g-t 3/3] tests/kms_pipe_crc_basic: Add MST suspend-resume test Kunal Joshi
2026-02-24  8:35   ` Thasleem, Mohammed
2026-02-24 10:27     ` Thasleem, Mohammed
2026-03-03  6:18   ` Kandpal, Suraj
2026-03-10  4:49     ` Kandpal, Suraj
2026-03-10  4:53       ` Kandpal, Suraj
2026-02-20 18:31 ` ✓ Xe.CI.BAT: success for tests/kms_pipe_crc_basic: add mst suspend-resume test (rev4) Patchwork
2026-02-20 19:02 ` ✓ i915.CI.BAT: " Patchwork
2026-02-21  4:26 ` ✗ i915.CI.Full: failure " Patchwork
2026-02-21  8:38 ` ✗ Xe.CI.FULL: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox