Intel-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support
@ 2025-02-12 13:14 Vinod Govindapillai
  2025-02-12 13:14 ` [PATCH v7 1/7] drm/damage-helper: add const qualifier in drm_atomic_helper_damage_merged() Vinod Govindapillai
                   ` (10 more replies)
  0 siblings, 11 replies; 18+ messages in thread
From: Vinod Govindapillai @ 2025-02-12 13:14 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: dri-devel, vinod.govindapillai, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

Dirty rect support for FBC in xe3 onwards based on the comments after the
initial RFC series.

v2: Dirty rect related compute and storage moved to fbc state (Ville)

V3: Dont call fbc activate if FBC is already active

v4: Dirty rect compute and programming moved within DSB scope
    New changes are added as separate patches to make it easy for review
    But could be squashed if the reviews as ok.

v5: add HAS_FBC_DIRTY_RECT()
    FBC Damage area updates in 3 steps. 
    1. As part of plane_atomic_check() get, adjust coordinates and store
       the merged damage area in plane_state
    2. Atomic_commit, update merged damage are to fbc_state and prepare the
       damage area satifying all conditions
    3  update the FBC dirty rect registers as part of DSB commit.

v6: Use dmage_merged helper earlier to handle bigjoiner cases (Ville)
    Place the damage_merged handling code under HAS_FBC_DIRTY_RECT()
    Added a variable to check if the damage_merged received from
    the helper is valid. And if it is not valid, the FBC dirty rect
    is updated with full plane reqion.

v7: Reordering of the patches
    Updates to storage of damage to plane state as per comments from Ville
    Updates to dirty rect handling in FBC as per comments from Ville


Vinod Govindapillai (7):
  drm/damage-helper: add const qualifier in
    drm_atomic_helper_damage_merged()
  drm/i915/xe3: update and store the plane damage clips
  drm/i915/xe3: add register definitions for fbc dirty rect support
  drm/i915/xe3: introduce HAS_FBC_DIRTY_RECT() for FBC dirty rect
    support
  drm/i915/xe3: avoid calling fbc activate if fbc is active
  drm/i915/xe3: dirty rect support for FBC
  drm/i915/xe3: disable FBC if PSR2 selective fetch is enabled

 drivers/gpu/drm/drm_damage_helper.c           |   2 +-
 .../gpu/drm/i915/display/intel_atomic_plane.c |  34 ++++++
 drivers/gpu/drm/i915/display/intel_display.c  |   3 +
 .../drm/i915/display/intel_display_device.h   |   1 +
 .../drm/i915/display/intel_display_types.h    |   2 +
 drivers/gpu/drm/i915/display/intel_fbc.c      | 109 +++++++++++++++++-
 drivers/gpu/drm/i915/display/intel_fbc.h      |   5 +
 drivers/gpu/drm/i915/display/intel_fbc_regs.h |   9 ++
 .../drm/i915/display/skl_universal_plane.c    |  46 +++++++-
 include/drm/drm_damage_helper.h               |   2 +-
 10 files changed, 208 insertions(+), 5 deletions(-)

-- 
2.43.0


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

* [PATCH v7 1/7] drm/damage-helper: add const qualifier in drm_atomic_helper_damage_merged()
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
@ 2025-02-12 13:14 ` Vinod Govindapillai
  2025-02-12 13:14 ` [PATCH v7 2/7] drm/i915/xe3: update and store the plane damage clips Vinod Govindapillai
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 18+ messages in thread
From: Vinod Govindapillai @ 2025-02-12 13:14 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: dri-devel, vinod.govindapillai, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

Add a const qualifier for the "state" parameter as well as we could
use this helper to get the combined damage in cases of const
drm_plane_state as well. Needed mainly for xe driver big joiner cases
where we need to track the damage from immutable plane state.

Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 drivers/gpu/drm/drm_damage_helper.c | 2 +-
 include/drm/drm_damage_helper.h     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_damage_helper.c b/drivers/gpu/drm/drm_damage_helper.c
index afb02aae707b..44a5a36806e3 100644
--- a/drivers/gpu/drm/drm_damage_helper.c
+++ b/drivers/gpu/drm/drm_damage_helper.c
@@ -308,7 +308,7 @@ EXPORT_SYMBOL(drm_atomic_helper_damage_iter_next);
  * True if there is valid plane damage otherwise false.
  */
 bool drm_atomic_helper_damage_merged(const struct drm_plane_state *old_state,
-				     struct drm_plane_state *state,
+				     const struct drm_plane_state *state,
 				     struct drm_rect *rect)
 {
 	struct drm_atomic_helper_damage_iter iter;
diff --git a/include/drm/drm_damage_helper.h b/include/drm/drm_damage_helper.h
index effda42cce31..a58cbcd11276 100644
--- a/include/drm/drm_damage_helper.h
+++ b/include/drm/drm_damage_helper.h
@@ -78,7 +78,7 @@ bool
 drm_atomic_helper_damage_iter_next(struct drm_atomic_helper_damage_iter *iter,
 				   struct drm_rect *rect);
 bool drm_atomic_helper_damage_merged(const struct drm_plane_state *old_state,
-				     struct drm_plane_state *state,
+				     const struct drm_plane_state *state,
 				     struct drm_rect *rect);
 
 #endif
-- 
2.43.0


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

* [PATCH v7 2/7] drm/i915/xe3: update and store the plane damage clips
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
  2025-02-12 13:14 ` [PATCH v7 1/7] drm/damage-helper: add const qualifier in drm_atomic_helper_damage_merged() Vinod Govindapillai
@ 2025-02-12 13:14 ` Vinod Govindapillai
  2025-02-12 18:35   ` Ville Syrjälä
  2025-02-12 13:14 ` [PATCH v7 3/7] drm/i915/xe3: add register definitions for fbc dirty rect support Vinod Govindapillai
                   ` (8 subsequent siblings)
  10 siblings, 1 reply; 18+ messages in thread
From: Vinod Govindapillai @ 2025-02-12 13:14 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: dri-devel, vinod.govindapillai, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

Userspace can pass damage area clips per plane to track
changes in a plane and some display components can utilze
these damage clips for efficiently handling use cases like
FBC, PSR etc. A merged damage area is generated and its
coordinates are updated relative to viewport and HW and
stored in the plane_state. This merged damage areas will be
used for FBC dirty rect support in xe3 in the follow-up
patch.

Big thanks to Ville Syrjala for his contribuitions in shaping
up of this series.

v1: - Move damage_merged helper to cover bigjoiner case and use
    the correct plane state for damage find helper (Ville)
    - Damage handling code under HAS_FBC_DIRTY_RECT() so the
    the related part will be executed only for xe3+
    - Changed dev_priv to i915 in one of the functions

v2: - damage reported is stored in the plane state after coords
      adjustmentments irrespective of fbc dirty rect support.
    - Damage to be empty in case of plane not visible (Ville)
    - Handle fb could be NULL and plane not visible cases (Ville)

Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 .../gpu/drm/i915/display/intel_atomic_plane.c | 31 +++++++++++++
 .../drm/i915/display/intel_display_types.h    |  2 +
 .../drm/i915/display/skl_universal_plane.c    | 46 ++++++++++++++++++-
 3 files changed, 78 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 8a49d87d9bd9..b4e94dd01173 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -36,6 +36,7 @@
 
 #include <drm/drm_atomic_helper.h>
 #include <drm/drm_blend.h>
+#include <drm/drm_damage_helper.h>
 #include <drm/drm_fourcc.h>
 #include <drm/drm_gem.h>
 #include <drm/drm_gem_atomic_helper.h>
@@ -117,6 +118,7 @@ intel_plane_duplicate_state(struct drm_plane *plane)
 	intel_state->ggtt_vma = NULL;
 	intel_state->dpt_vma = NULL;
 	intel_state->flags = 0;
+	intel_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
 
 	/* add reference to fb */
 	if (intel_state->hw.fb)
@@ -322,6 +324,27 @@ static void intel_plane_clear_hw_state(struct intel_plane_state *plane_state)
 	memset(&plane_state->hw, 0, sizeof(plane_state->hw));
 }
 
+static void
+intel_plane_copy_uapi_plane_damage(struct intel_plane_state *new_plane_state,
+				   const struct intel_plane_state *old_uapi_plane_state,
+				   const struct intel_plane_state *new_uapi_plane_state)
+{
+	struct intel_display *display = to_intel_display(new_plane_state);
+	struct drm_rect *damage = &new_plane_state->damage;
+
+	/* damage property tracking enabled from display version 12 onwards */
+	if (DISPLAY_VER(display) < 12) {
+		*damage = DRM_RECT_INIT(0, 0, 0, 0);
+		return;
+	}
+
+	if (!drm_atomic_helper_damage_merged(&old_uapi_plane_state->uapi,
+					     &new_uapi_plane_state->uapi,
+					     damage))
+		/* Incase helper fails, mark whole plane region as damage */
+		*damage = drm_plane_state_src(&new_uapi_plane_state->uapi);
+}
+
 void intel_plane_copy_uapi_to_hw_state(struct intel_plane_state *plane_state,
 				       const struct intel_plane_state *from_plane_state,
 				       struct intel_crtc *crtc)
@@ -691,6 +714,7 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
 	const struct intel_plane_state *old_plane_state =
 		intel_atomic_get_old_plane_state(state, plane);
 	const struct intel_plane_state *new_primary_crtc_plane_state;
+	const struct intel_plane_state *old_primary_crtc_plane_state;
 	struct intel_crtc *crtc = intel_crtc_for_pipe(display, plane->pipe);
 	const struct intel_crtc_state *old_crtc_state =
 		intel_atomic_get_old_crtc_state(state, crtc);
@@ -705,10 +729,17 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
 
 		new_primary_crtc_plane_state =
 			intel_atomic_get_new_plane_state(state, primary_crtc_plane);
+		old_primary_crtc_plane_state =
+			intel_atomic_get_old_plane_state(state, primary_crtc_plane);
 	} else {
 		new_primary_crtc_plane_state = new_plane_state;
+		old_primary_crtc_plane_state = old_plane_state;
 	}
 
+	intel_plane_copy_uapi_plane_damage(new_plane_state,
+					   old_primary_crtc_plane_state,
+					   new_primary_crtc_plane_state);
+
 	intel_plane_copy_uapi_to_hw_state(new_plane_state,
 					  new_primary_crtc_plane_state,
 					  crtc);
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 6a82c6ade549..844f92ea4f45 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -697,6 +697,8 @@ struct intel_plane_state {
 	u64 ccval;
 
 	const char *no_fbc_reason;
+
+	struct drm_rect damage;
 };
 
 struct intel_initial_plane_config {
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index eb85d3d6cdc3..3e3c22a26357 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -2260,6 +2260,44 @@ static void check_protection(struct intel_plane_state *plane_state)
 		!plane_state->decrypt;
 }
 
+static void
+make_damage_viewport_relative(struct intel_plane_state *plane_state)
+{
+	const struct drm_framebuffer *fb = plane_state->hw.fb;
+	const struct drm_rect *src = &plane_state->uapi.src;
+	unsigned int rotation = plane_state->hw.rotation;
+	struct drm_rect *damage = &plane_state->damage;
+
+	if (!drm_rect_visible(damage))
+		return;
+
+	if (!fb || !plane_state->uapi.visible) {
+		plane_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
+		return;
+	}
+
+	if (drm_rotation_90_or_270(rotation)) {
+		drm_rect_rotate(damage, fb->width, fb->height,
+				DRM_MODE_ROTATE_270);
+		drm_rect_translate(damage, -(src->y1 >> 16), -(src->x1 >> 16));
+	} else {
+		drm_rect_translate(damage, -(src->x1 >> 16), -(src->y1 >> 16));
+	}
+}
+
+static void clip_damage(struct intel_plane_state *plane_state)
+{
+	struct drm_rect *damage = &plane_state->damage;
+	struct drm_rect src;
+
+	if (!drm_rect_visible(damage))
+		return;
+
+	drm_rect_fp_to_int(&src, &plane_state->uapi.src);
+	drm_rect_translate(damage, src.x1, src.y1);
+	drm_rect_intersect(damage, &src);
+}
+
 static int skl_plane_check(struct intel_crtc_state *crtc_state,
 			   struct intel_plane_state *plane_state)
 {
@@ -2285,6 +2323,8 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
 	if (ret)
 		return ret;
 
+	make_damage_viewport_relative(plane_state);
+
 	ret = skl_check_plane_surface(plane_state);
 	if (ret)
 		return ret;
@@ -2300,6 +2340,8 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
 	if (ret)
 		return ret;
 
+	clip_damage(plane_state);
+
 	ret = skl_plane_check_nv12_rotation(plane_state);
 	if (ret)
 		return ret;
@@ -2307,8 +2349,10 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
 	check_protection(plane_state);
 
 	/* HW only has 8 bits pixel precision, disable plane if invisible */
-	if (!(plane_state->hw.alpha >> 8))
+	if (!(plane_state->hw.alpha >> 8)) {
 		plane_state->uapi.visible = false;
+		plane_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
+	}
 
 	plane_state->ctl = skl_plane_ctl(crtc_state, plane_state);
 
-- 
2.43.0


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

* [PATCH v7 3/7] drm/i915/xe3: add register definitions for fbc dirty rect support
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
  2025-02-12 13:14 ` [PATCH v7 1/7] drm/damage-helper: add const qualifier in drm_atomic_helper_damage_merged() Vinod Govindapillai
  2025-02-12 13:14 ` [PATCH v7 2/7] drm/i915/xe3: update and store the plane damage clips Vinod Govindapillai
@ 2025-02-12 13:14 ` Vinod Govindapillai
  2025-02-12 13:14 ` [PATCH v7 4/7] drm/i915/xe3: introduce HAS_FBC_DIRTY_RECT() for FBC " Vinod Govindapillai
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 18+ messages in thread
From: Vinod Govindapillai @ 2025-02-12 13:14 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: dri-devel, vinod.govindapillai, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

Register definitions for FBC dirty rect support

Bspec: 71675, 73424
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc_regs.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc_regs.h b/drivers/gpu/drm/i915/display/intel_fbc_regs.h
index ae0699c3c2fe..b1d0161a3196 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc_regs.h
+++ b/drivers/gpu/drm/i915/display/intel_fbc_regs.h
@@ -100,6 +100,15 @@
 #define   FBC_STRIDE_MASK	REG_GENMASK(14, 0)
 #define   FBC_STRIDE(x)		REG_FIELD_PREP(FBC_STRIDE_MASK, (x))
 
+#define XE3_FBC_DIRTY_RECT(fbc_id)	_MMIO_PIPE((fbc_id), 0x43230, 0x43270)
+#define   FBC_DIRTY_RECT_END_LINE_MASK		REG_GENMASK(31, 16)
+#define   FBC_DIRTY_RECT_END_LINE(val)		REG_FIELD_PREP(FBC_DIRTY_RECT_END_LINE_MASK, (val))
+#define   FBC_DIRTY_RECT_START_LINE_MASK	REG_GENMASK(15, 0)
+#define   FBC_DIRTY_RECT_START_LINE(val)	REG_FIELD_PREP(FBC_DIRTY_RECT_START_LINE_MASK, (val))
+
+#define XE3_FBC_DIRTY_CTL(fbc_id)	_MMIO_PIPE((fbc_id), 0x43234, 0x43274)
+#define   FBC_DIRTY_RECT_EN		REG_BIT(31)
+
 #define ILK_FBC_RT_BASE		_MMIO(0x2128)
 #define   ILK_FBC_RT_VALID	REG_BIT(0)
 #define   SNB_FBC_FRONT_BUFFER	REG_BIT(1)
-- 
2.43.0


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

* [PATCH v7 4/7] drm/i915/xe3: introduce HAS_FBC_DIRTY_RECT() for FBC dirty rect support
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
                   ` (2 preceding siblings ...)
  2025-02-12 13:14 ` [PATCH v7 3/7] drm/i915/xe3: add register definitions for fbc dirty rect support Vinod Govindapillai
@ 2025-02-12 13:14 ` Vinod Govindapillai
  2025-02-12 13:14 ` [PATCH v7 5/7] drm/i915/xe3: avoid calling fbc activate if fbc is active Vinod Govindapillai
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 18+ messages in thread
From: Vinod Govindapillai @ 2025-02-12 13:14 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: dri-devel, vinod.govindapillai, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

Introduce a macro to check if the platform supports FBC dirty
rect capability.

Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 drivers/gpu/drm/i915/display/intel_display_device.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display_device.h b/drivers/gpu/drm/i915/display/intel_display_device.h
index fc33791f02b9..717286981687 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.h
+++ b/drivers/gpu/drm/i915/display/intel_display_device.h
@@ -163,6 +163,7 @@ struct intel_display_platforms {
 #define HAS_DSC(__display)		(DISPLAY_RUNTIME_INFO(__display)->has_dsc)
 #define HAS_DSC_MST(__display)		(DISPLAY_VER(__display) >= 12 && HAS_DSC(__display))
 #define HAS_FBC(__display)		(DISPLAY_RUNTIME_INFO(__display)->fbc_mask != 0)
+#define HAS_FBC_DIRTY_RECT(__display)	(DISPLAY_VER(__display) >= 30)
 #define HAS_FPGA_DBG_UNCLAIMED(__display)	(DISPLAY_INFO(__display)->has_fpga_dbg)
 #define HAS_FW_BLC(__display)		(DISPLAY_VER(__display) >= 3)
 #define HAS_GMBUS_IRQ(__display)	(DISPLAY_VER(__display) >= 4)
-- 
2.43.0


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

* [PATCH v7 5/7] drm/i915/xe3: avoid calling fbc activate if fbc is active
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
                   ` (3 preceding siblings ...)
  2025-02-12 13:14 ` [PATCH v7 4/7] drm/i915/xe3: introduce HAS_FBC_DIRTY_RECT() for FBC " Vinod Govindapillai
@ 2025-02-12 13:14 ` Vinod Govindapillai
  2025-02-12 18:30   ` Ville Syrjälä
  2025-02-12 13:14 ` [PATCH v7 6/7] drm/i915/xe3: dirty rect support for FBC Vinod Govindapillai
                   ` (5 subsequent siblings)
  10 siblings, 1 reply; 18+ messages in thread
From: Vinod Govindapillai @ 2025-02-12 13:14 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: dri-devel, vinod.govindapillai, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

If FBC is already active, we don't need to call FBC activate
routine again. This is more relevant in case of dirty rect
support in FBC. Xe doesn't support legacy fences. Hence fence
programming also not required as part of this fbc_hw_activate.
Any FBC related register updates done after enabling the dirty
rect support in xe3 will trigger nuke by FBC HW. So avoid
calling fbc activate routine again if the FBC is already active.

The front buffer rendering sequence will call intel_fbc_flush()
and which will call intel_fbc_nuke() or intel_fbc_activate()
based on FBC status explicitly and won't get impacted by this
change.

v2: use HAS_FBC_DIRTY_RECT()
    move this functionality within intel_fbc_activate()

Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index df05904bac8a..951dc81b7b97 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -739,8 +739,19 @@ static void intel_fbc_nuke(struct intel_fbc *fbc)
 
 static void intel_fbc_activate(struct intel_fbc *fbc)
 {
+	struct intel_display *display = fbc->display;
+
 	lockdep_assert_held(&fbc->lock);
 
+	/*
+	 * When dirty rectangle is enabled, any updates to FBC registers will
+	 * trigger nuke. So avoid calling intel_fbc_activate if fbc is already
+	 * active and for XE3 cases. Xe doesn't support legacy fences. So
+	 * no need to update the fences as well.
+	 */
+	if (HAS_FBC_DIRTY_RECT(display) && fbc->active)
+		return;
+
 	intel_fbc_hw_activate(fbc);
 	intel_fbc_nuke(fbc);
 
-- 
2.43.0


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

* [PATCH v7 6/7] drm/i915/xe3: dirty rect support for FBC
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
                   ` (4 preceding siblings ...)
  2025-02-12 13:14 ` [PATCH v7 5/7] drm/i915/xe3: avoid calling fbc activate if fbc is active Vinod Govindapillai
@ 2025-02-12 13:14 ` Vinod Govindapillai
  2025-02-12 18:42   ` Ville Syrjälä
  2025-02-12 13:14 ` [PATCH v7 7/7] drm/i915/xe3: disable FBC if PSR2 selective fetch is enabled Vinod Govindapillai
                   ` (4 subsequent siblings)
  10 siblings, 1 reply; 18+ messages in thread
From: Vinod Govindapillai @ 2025-02-12 13:14 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: dri-devel, vinod.govindapillai, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

Dirty rectangle feature allows FBC to recompress a subsection
of a frame. When this feature is enabled, display will read
the scan lines between dirty rectangle start line and dirty
rectangle end line in subsequent frames.

Use the merged damage clip stored in the plane state to
configure the FBC dirty rect areas.

v2: - Move dirty rect handling to fbc state (Ville)

v3: - Use intel_fbc_dirty_rect_update_noarm (Ville)
    - Split plane damage collection and dirty rect preparation
    - Handle case where dirty rect fall outside the visible region

v4: - A state variable to check if we need to update dirty rect
    registers in case intel_fbc_can_flip_nuke() (Ville)

v5: - No need to use a separate valid flag, updates to the
      conditions for prepare damage rect (Ville)
    - Usage of locks in fbc dirty rect related functions (Ville)

Bspec: 68881, 71675, 73424
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 .../gpu/drm/i915/display/intel_atomic_plane.c |  3 +
 drivers/gpu/drm/i915/display/intel_display.c  |  3 +
 drivers/gpu/drm/i915/display/intel_fbc.c      | 89 +++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_fbc.h      |  5 ++
 4 files changed, 100 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index b4e94dd01173..6e749937f03c 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -805,6 +805,9 @@ void intel_plane_update_noarm(struct intel_dsb *dsb,
 
 	trace_intel_plane_update_noarm(plane_state, crtc);
 
+	if (plane->fbc)
+		intel_fbc_dirty_rect_update_noarm(dsb, plane);
+
 	if (plane->update_noarm)
 		plane->update_noarm(dsb, plane, crtc_state, plane_state);
 }
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 9f8a8c94cf4c..b054c94dce0f 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -7784,6 +7784,9 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
 
 	intel_atomic_prepare_plane_clear_colors(state);
 
+	for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i)
+		intel_fbc_prepare_dirty_rect(state, crtc);
+
 	for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i)
 		intel_atomic_dsb_finish(state, crtc);
 
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 951dc81b7b97..8c92953b53f5 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -88,6 +88,7 @@ struct intel_fbc_state {
 	u16 override_cfb_stride;
 	u16 interval;
 	s8 fence_id;
+	struct drm_rect dirty_rect;
 };
 
 struct intel_fbc {
@@ -527,6 +528,9 @@ static void ilk_fbc_deactivate(struct intel_fbc *fbc)
 	struct intel_display *display = fbc->display;
 	u32 dpfc_ctl;
 
+	if (HAS_FBC_DIRTY_RECT(display))
+		intel_de_write(display, XE3_FBC_DIRTY_CTL(fbc->id), 0);
+
 	/* Disable compression */
 	dpfc_ctl = intel_de_read(display, ILK_DPFC_CONTROL(fbc->id));
 	if (dpfc_ctl & DPFC_CTL_EN) {
@@ -670,6 +674,10 @@ static void ivb_fbc_activate(struct intel_fbc *fbc)
 	if (DISPLAY_VER(display) >= 20)
 		intel_de_write(display, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
 
+	if (HAS_FBC_DIRTY_RECT(display))
+		intel_de_write(display, XE3_FBC_DIRTY_CTL(fbc->id),
+			       FBC_DIRTY_RECT_EN);
+
 	intel_de_write(display, ILK_DPFC_CONTROL(fbc->id),
 		       DPFC_CTL_EN | dpfc_ctl);
 }
@@ -1214,6 +1222,87 @@ static bool tiling_is_valid(const struct intel_plane_state *plane_state)
 		return i8xx_fbc_tiling_valid(plane_state);
 }
 
+static void
+intel_fbc_dirty_rect_update(struct intel_dsb *dsb, struct intel_fbc *fbc)
+{
+	struct intel_display *display = fbc->display;
+	struct drm_rect *fbc_dirty_rect = &fbc->state.dirty_rect;
+
+	lockdep_assert_held(&fbc->lock);
+
+	intel_de_write_dsb(display, dsb, XE3_FBC_DIRTY_RECT(fbc->id),
+			   FBC_DIRTY_RECT_START_LINE(fbc_dirty_rect->y1) |
+			   FBC_DIRTY_RECT_END_LINE(fbc_dirty_rect->y2));
+}
+
+void
+intel_fbc_dirty_rect_update_noarm(struct intel_dsb *dsb,
+				  struct intel_plane *plane)
+{
+	struct intel_display *display = to_intel_display(plane);
+	struct intel_fbc *fbc = plane->fbc;
+
+	if (!HAS_FBC_DIRTY_RECT(display))
+		return;
+
+	if (fbc->state.plane != plane)
+		return;
+
+	mutex_lock(&fbc->lock);
+
+	intel_fbc_dirty_rect_update(dsb, fbc);
+
+	mutex_unlock(&fbc->lock);
+}
+
+static void
+__intel_fbc_prepare_dirty_rect(struct intel_plane *plane,
+			       struct intel_plane_state *plane_state)
+{
+	struct intel_fbc *fbc = plane->fbc;
+	struct drm_rect *fbc_dirty_rect = &fbc->state.dirty_rect;
+	int y_offset = plane_state->view.color_plane[0].y;
+	const struct drm_rect *damage = &plane_state->damage;
+
+	lockdep_assert_held(&fbc->lock);
+
+	/* In damage clip, x1/y1 are inclusive and x2/y2 are exclusive */
+	fbc_dirty_rect->y1 = drm_rect_visible(damage) ? damage->y1 : y_offset;
+	fbc_dirty_rect->y2 =
+		drm_rect_visible(damage) ? damage->y2 - 1 : y_offset;
+	fbc_dirty_rect->x1 = damage->x1;
+	fbc_dirty_rect->x2 = damage->x2 - 1;
+}
+
+void
+intel_fbc_prepare_dirty_rect(struct intel_atomic_state *state,
+			     struct intel_crtc *crtc)
+{
+	struct intel_display *display = to_intel_display(state);
+	struct intel_plane_state *plane_state;
+	struct intel_plane *plane;
+	int i;
+
+	if (!HAS_FBC_DIRTY_RECT(display))
+		return;
+
+	for_each_new_intel_plane_in_state(state, plane, plane_state, i) {
+		struct intel_fbc *fbc = plane->fbc;
+
+		if (!fbc || plane->pipe != crtc->pipe)
+			continue;
+
+		if (fbc->state.plane != plane)
+			continue;
+
+		mutex_lock(&fbc->lock);
+
+		__intel_fbc_prepare_dirty_rect(plane, plane_state);
+
+		mutex_unlock(&fbc->lock);
+	}
+}
+
 static void intel_fbc_update_state(struct intel_atomic_state *state,
 				   struct intel_crtc *crtc,
 				   struct intel_plane *plane)
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.h b/drivers/gpu/drm/i915/display/intel_fbc.h
index ceae55458e14..fe48d0276eec 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.h
+++ b/drivers/gpu/drm/i915/display/intel_fbc.h
@@ -14,6 +14,7 @@ struct intel_atomic_state;
 struct intel_crtc;
 struct intel_crtc_state;
 struct intel_display;
+struct intel_dsb;
 struct intel_fbc;
 struct intel_plane;
 struct intel_plane_state;
@@ -48,5 +49,9 @@ void intel_fbc_handle_fifo_underrun_irq(struct intel_display *display);
 void intel_fbc_reset_underrun(struct intel_display *display);
 void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc);
 void intel_fbc_debugfs_register(struct intel_display *display);
+void intel_fbc_prepare_dirty_rect(struct intel_atomic_state *state,
+				  struct intel_crtc *crtc);
+void intel_fbc_dirty_rect_update_noarm(struct intel_dsb *dsb,
+				       struct intel_plane *plane);
 
 #endif /* __INTEL_FBC_H__ */
-- 
2.43.0


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

* [PATCH v7 7/7] drm/i915/xe3: disable FBC if PSR2 selective fetch is enabled
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
                   ` (5 preceding siblings ...)
  2025-02-12 13:14 ` [PATCH v7 6/7] drm/i915/xe3: dirty rect support for FBC Vinod Govindapillai
@ 2025-02-12 13:14 ` Vinod Govindapillai
  2025-02-12 14:48 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/fbc: FBC Dirty rect feature support Patchwork
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 18+ messages in thread
From: Vinod Govindapillai @ 2025-02-12 13:14 UTC (permalink / raw)
  To: intel-gfx, intel-xe
  Cc: dri-devel, vinod.govindapillai, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

It is not recommended to have both FBC dirty rect and PSR2
selective fetch be enabled at the same time. If PSR2 selective
fetch or panel replay is on, mark FBC as not possible.

v2: fix the condition to disable FBC if PSR2 enabled (Jani)

v3: use HAS_FBC_DIRTY_RECT()

Bspec: 68881
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 8c92953b53f5..ac70955444ea 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -1438,9 +1438,14 @@ static int intel_fbc_check_plane(struct intel_atomic_state *state,
 	 * Display 12+ is not supporting FBC with PSR2.
 	 * Recommendation is to keep this combination disabled
 	 * Bspec: 50422 HSD: 14010260002
+	 *
+	 * In Xe3, PSR2 selective fetch and FBC dirty rect feature cannot
+	 * coexist. So if PSR2 selective fetch is supported then mark that
+	 * FBC is not supported.
+	 * TODO: Need a logic to decide between PSR2 and FBC Dirty rect
 	 */
-	if (IS_DISPLAY_VER(display, 12, 14) && crtc_state->has_sel_update &&
-	    !crtc_state->has_panel_replay) {
+	if ((IS_DISPLAY_VER(display, 12, 14) || HAS_FBC_DIRTY_RECT(display)) &&
+	    crtc_state->has_sel_update && !crtc_state->has_panel_replay) {
 		plane_state->no_fbc_reason = "PSR2 enabled";
 		return 0;
 	}
-- 
2.43.0


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

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/fbc: FBC Dirty rect feature support
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
                   ` (6 preceding siblings ...)
  2025-02-12 13:14 ` [PATCH v7 7/7] drm/i915/xe3: disable FBC if PSR2 selective fetch is enabled Vinod Govindapillai
@ 2025-02-12 14:48 ` Patchwork
  2025-02-12 14:48 ` ✗ Fi.CI.SPARSE: " Patchwork
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2025-02-12 14:48 UTC (permalink / raw)
  To: Govindapillai, Vinod; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/fbc: FBC Dirty rect feature support
URL   : https://patchwork.freedesktop.org/series/144725/
State : warning

== Summary ==

Error: dim checkpatch failed
3b7a996cf496 drm/damage-helper: add const qualifier in drm_atomic_helper_damage_merged()
120e635f7d8f drm/i915/xe3: update and store the plane damage clips
6b19a0c96f27 drm/i915/xe3: add register definitions for fbc dirty rect support
-:24: WARNING:LONG_LINE: line length of 101 exceeds 100 columns
#24: FILE: drivers/gpu/drm/i915/display/intel_fbc_regs.h:107:
+#define   FBC_DIRTY_RECT_START_LINE(val)	REG_FIELD_PREP(FBC_DIRTY_RECT_START_LINE_MASK, (val))

total: 0 errors, 1 warnings, 0 checks, 15 lines checked
58bf723c08c6 drm/i915/xe3: introduce HAS_FBC_DIRTY_RECT() for FBC dirty rect support
d8137d341234 drm/i915/xe3: avoid calling fbc activate if fbc is active
b056a7ceaa2b drm/i915/xe3: dirty rect support for FBC
fb8b2fcdfc08 drm/i915/xe3: disable FBC if PSR2 selective fetch is enabled



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

* ✗ Fi.CI.SPARSE: warning for drm/i915/fbc: FBC Dirty rect feature support
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
                   ` (7 preceding siblings ...)
  2025-02-12 14:48 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/fbc: FBC Dirty rect feature support Patchwork
@ 2025-02-12 14:48 ` Patchwork
  2025-02-12 15:09 ` ✓ i915.CI.BAT: success " Patchwork
  2025-02-12 22:37 ` ✗ i915.CI.Full: failure " Patchwork
  10 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2025-02-12 14:48 UTC (permalink / raw)
  To: Govindapillai, Vinod; +Cc: intel-gfx

== Series Details ==

Series: drm/i915/fbc: FBC Dirty rect feature support
URL   : https://patchwork.freedesktop.org/series/144725/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.



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

* ✓ i915.CI.BAT: success for drm/i915/fbc: FBC Dirty rect feature support
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
                   ` (8 preceding siblings ...)
  2025-02-12 14:48 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2025-02-12 15:09 ` Patchwork
  2025-02-12 22:37 ` ✗ i915.CI.Full: failure " Patchwork
  10 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2025-02-12 15:09 UTC (permalink / raw)
  To: Govindapillai, Vinod; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915/fbc: FBC Dirty rect feature support
URL   : https://patchwork.freedesktop.org/series/144725/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_16117 -> Patchwork_144725v1
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (44 -> 43)
------------------------------

  Missing    (1): fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_module_load@load:
    - bat-mtlp-9:         [PASS][1] -> [DMESG-WARN][2] ([i915#13494])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/bat-mtlp-9/igt@i915_module_load@load.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/bat-mtlp-9/igt@i915_module_load@load.html

  * igt@i915_selftest@live:
    - bat-twl-1:          [PASS][3] -> [ABORT][4] ([i915#12919] / [i915#13503])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/bat-twl-1/igt@i915_selftest@live.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/bat-twl-1/igt@i915_selftest@live.html

  * igt@i915_selftest@live@gt_lrc:
    - bat-twl-1:          [PASS][5] -> [ABORT][6] ([i915#12919])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/bat-twl-1/igt@i915_selftest@live@gt_lrc.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/bat-twl-1/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@gt_pm:
    - bat-jsl-3:          [PASS][7] -> [DMESG-FAIL][8] ([i915#13241]) +1 other test dmesg-fail
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/bat-jsl-3/igt@i915_selftest@live@gt_pm.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/bat-jsl-3/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@workarounds:
    - bat-mtlp-9:         [PASS][9] -> [DMESG-FAIL][10] ([i915#12061])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
    - bat-arls-6:         [PASS][11] -> [DMESG-FAIL][12] ([i915#12061]) +1 other test dmesg-fail
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/bat-arls-6/igt@i915_selftest@live@workarounds.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/bat-arls-6/igt@i915_selftest@live@workarounds.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@workarounds:
    - bat-arlh-3:         [DMESG-FAIL][13] ([i915#12061]) -> [PASS][14] +1 other test pass
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/bat-arlh-3/igt@i915_selftest@live@workarounds.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/bat-arlh-3/igt@i915_selftest@live@workarounds.html
    - bat-adlp-9:         [ABORT][15] ([i915#13399]) -> [PASS][16] +1 other test pass
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/bat-adlp-9/igt@i915_selftest@live@workarounds.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/bat-adlp-9/igt@i915_selftest@live@workarounds.html
    - bat-arls-5:         [DMESG-FAIL][17] ([i915#12061]) -> [PASS][18] +1 other test pass
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/bat-arls-5/igt@i915_selftest@live@workarounds.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/bat-arls-5/igt@i915_selftest@live@workarounds.html

  
  [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
  [i915#12919]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12919
  [i915#13241]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13241
  [i915#13399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13399
  [i915#13494]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13494
  [i915#13503]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13503


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

  * Linux: CI_DRM_16117 -> Patchwork_144725v1

  CI-20190529: 20190529
  CI_DRM_16117: 5bf5e8eecd1eaeb1f5c0c36b5047d6884b5b8668 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_8228: 8228
  Patchwork_144725v1: 5bf5e8eecd1eaeb1f5c0c36b5047d6884b5b8668 @ git://anongit.freedesktop.org/gfx-ci/linux

== Logs ==

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

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

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

* Re: [PATCH v7 5/7] drm/i915/xe3: avoid calling fbc activate if fbc is active
  2025-02-12 13:14 ` [PATCH v7 5/7] drm/i915/xe3: avoid calling fbc activate if fbc is active Vinod Govindapillai
@ 2025-02-12 18:30   ` Ville Syrjälä
  2025-02-12 20:21     ` Govindapillai, Vinod
  0 siblings, 1 reply; 18+ messages in thread
From: Ville Syrjälä @ 2025-02-12 18:30 UTC (permalink / raw)
  To: Vinod Govindapillai
  Cc: intel-gfx, intel-xe, dri-devel, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

On Wed, Feb 12, 2025 at 03:14:18PM +0200, Vinod Govindapillai wrote:
> If FBC is already active, we don't need to call FBC activate
> routine again. This is more relevant in case of dirty rect
> support in FBC. Xe doesn't support legacy fences. Hence fence
> programming also not required as part of this fbc_hw_activate.
> Any FBC related register updates done after enabling the dirty
> rect support in xe3 will trigger nuke by FBC HW. So avoid
> calling fbc activate routine again if the FBC is already active.
> 
> The front buffer rendering sequence will call intel_fbc_flush()
> and which will call intel_fbc_nuke() or intel_fbc_activate()
> based on FBC status explicitly and won't get impacted by this
> change.
> 
> v2: use HAS_FBC_DIRTY_RECT()
>     move this functionality within intel_fbc_activate()
> 
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index df05904bac8a..951dc81b7b97 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -739,8 +739,19 @@ static void intel_fbc_nuke(struct intel_fbc *fbc)
>  
>  static void intel_fbc_activate(struct intel_fbc *fbc)
>  {
> +	struct intel_display *display = fbc->display;
> +
>  	lockdep_assert_held(&fbc->lock);
>  
> +	/*
> +	 * When dirty rectangle is enabled, any updates to FBC registers will
> +	 * trigger nuke. So avoid calling intel_fbc_activate if fbc is already
> +	 * active and for XE3 cases. Xe doesn't support legacy fences. So
> +	 * no need to update the fences as well.

I have no idea what XE3 and Xe here mean. I would just state
that platforms which have dirty rect don't have fences.

> +	 */
> +	if (HAS_FBC_DIRTY_RECT(display) && fbc->active)
> +		return;

I don't quite like the assumptions being made here.

Since only the fence can change upon flip nuke we should
probably check for intel_fbc_has_fences() instead of
HAS_DIRTY_RECT() and thus just skip this on all platforms
that don't have fences. That also increases our testing
coverage for this short circuit path, which is a good thing.

Ideally I guess we should check if the fence is actually
changing or not, but we don't have the old state around
anymore so can't do it right now.

So I guess we could do something like:
/* only the fence can change for a flip nuke */
if (fbc->active && !has_fences())
	return;

/*
 * the explanation about the FBC register write
 * nuke vs. dirty rect stuff.
 */
drm_WARN_ON(fbc->active && HAS_DIRTY_RECT());

> +
>  	intel_fbc_hw_activate(fbc);
>  	intel_fbc_nuke(fbc);
>  
> -- 
> 2.43.0

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH v7 2/7] drm/i915/xe3: update and store the plane damage clips
  2025-02-12 13:14 ` [PATCH v7 2/7] drm/i915/xe3: update and store the plane damage clips Vinod Govindapillai
@ 2025-02-12 18:35   ` Ville Syrjälä
  2025-02-12 20:14     ` Govindapillai, Vinod
  0 siblings, 1 reply; 18+ messages in thread
From: Ville Syrjälä @ 2025-02-12 18:35 UTC (permalink / raw)
  To: Vinod Govindapillai
  Cc: intel-gfx, intel-xe, dri-devel, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

On Wed, Feb 12, 2025 at 03:14:15PM +0200, Vinod Govindapillai wrote:
> Userspace can pass damage area clips per plane to track
> changes in a plane and some display components can utilze
> these damage clips for efficiently handling use cases like
> FBC, PSR etc. A merged damage area is generated and its
> coordinates are updated relative to viewport and HW and
> stored in the plane_state. This merged damage areas will be
> used for FBC dirty rect support in xe3 in the follow-up
> patch.
> 
> Big thanks to Ville Syrjala for his contribuitions in shaping
> up of this series.
> 
> v1: - Move damage_merged helper to cover bigjoiner case and use
>     the correct plane state for damage find helper (Ville)
>     - Damage handling code under HAS_FBC_DIRTY_RECT() so the
>     the related part will be executed only for xe3+
>     - Changed dev_priv to i915 in one of the functions
> 
> v2: - damage reported is stored in the plane state after coords
>       adjustmentments irrespective of fbc dirty rect support.
>     - Damage to be empty in case of plane not visible (Ville)
>     - Handle fb could be NULL and plane not visible cases (Ville)
> 
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> ---
>  .../gpu/drm/i915/display/intel_atomic_plane.c | 31 +++++++++++++
>  .../drm/i915/display/intel_display_types.h    |  2 +
>  .../drm/i915/display/skl_universal_plane.c    | 46 ++++++++++++++++++-
>  3 files changed, 78 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> index 8a49d87d9bd9..b4e94dd01173 100644
> --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> @@ -36,6 +36,7 @@
>  
>  #include <drm/drm_atomic_helper.h>
>  #include <drm/drm_blend.h>
> +#include <drm/drm_damage_helper.h>
>  #include <drm/drm_fourcc.h>
>  #include <drm/drm_gem.h>
>  #include <drm/drm_gem_atomic_helper.h>
> @@ -117,6 +118,7 @@ intel_plane_duplicate_state(struct drm_plane *plane)
>  	intel_state->ggtt_vma = NULL;
>  	intel_state->dpt_vma = NULL;
>  	intel_state->flags = 0;
> +	intel_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
>  
>  	/* add reference to fb */
>  	if (intel_state->hw.fb)
> @@ -322,6 +324,27 @@ static void intel_plane_clear_hw_state(struct intel_plane_state *plane_state)
>  	memset(&plane_state->hw, 0, sizeof(plane_state->hw));
>  }
>  
> +static void
> +intel_plane_copy_uapi_plane_damage(struct intel_plane_state *new_plane_state,
> +				   const struct intel_plane_state *old_uapi_plane_state,
> +				   const struct intel_plane_state *new_uapi_plane_state)
> +{
> +	struct intel_display *display = to_intel_display(new_plane_state);
> +	struct drm_rect *damage = &new_plane_state->damage;
> +
> +	/* damage property tracking enabled from display version 12 onwards */
> +	if (DISPLAY_VER(display) < 12) {
> +		*damage = DRM_RECT_INIT(0, 0, 0, 0);
> +		return;
> +	}

I don't think that is needed. If we have no damage prop then the helper
will give us full damage.

> +
> +	if (!drm_atomic_helper_damage_merged(&old_uapi_plane_state->uapi,
> +					     &new_uapi_plane_state->uapi,
> +					     damage))
> +		/* Incase helper fails, mark whole plane region as damage */
> +		*damage = drm_plane_state_src(&new_uapi_plane_state->uapi);
> +}
> +
>  void intel_plane_copy_uapi_to_hw_state(struct intel_plane_state *plane_state,
>  				       const struct intel_plane_state *from_plane_state,
>  				       struct intel_crtc *crtc)
> @@ -691,6 +714,7 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
>  	const struct intel_plane_state *old_plane_state =
>  		intel_atomic_get_old_plane_state(state, plane);
>  	const struct intel_plane_state *new_primary_crtc_plane_state;
> +	const struct intel_plane_state *old_primary_crtc_plane_state;
>  	struct intel_crtc *crtc = intel_crtc_for_pipe(display, plane->pipe);
>  	const struct intel_crtc_state *old_crtc_state =
>  		intel_atomic_get_old_crtc_state(state, crtc);
> @@ -705,10 +729,17 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
>  
>  		new_primary_crtc_plane_state =
>  			intel_atomic_get_new_plane_state(state, primary_crtc_plane);
> +		old_primary_crtc_plane_state =
> +			intel_atomic_get_old_plane_state(state, primary_crtc_plane);
>  	} else {
>  		new_primary_crtc_plane_state = new_plane_state;
> +		old_primary_crtc_plane_state = old_plane_state;
>  	}
>  
> +	intel_plane_copy_uapi_plane_damage(new_plane_state,
> +					   old_primary_crtc_plane_state,
> +					   new_primary_crtc_plane_state);
> +
>  	intel_plane_copy_uapi_to_hw_state(new_plane_state,
>  					  new_primary_crtc_plane_state,
>  					  crtc);
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 6a82c6ade549..844f92ea4f45 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -697,6 +697,8 @@ struct intel_plane_state {
>  	u64 ccval;
>  
>  	const char *no_fbc_reason;
> +
> +	struct drm_rect damage;
>  };
>  
>  struct intel_initial_plane_config {
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index eb85d3d6cdc3..3e3c22a26357 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -2260,6 +2260,44 @@ static void check_protection(struct intel_plane_state *plane_state)
>  		!plane_state->decrypt;
>  }
>  
> +static void
> +make_damage_viewport_relative(struct intel_plane_state *plane_state)
> +{
> +	const struct drm_framebuffer *fb = plane_state->hw.fb;
> +	const struct drm_rect *src = &plane_state->uapi.src;
> +	unsigned int rotation = plane_state->hw.rotation;
> +	struct drm_rect *damage = &plane_state->damage;
> +
> +	if (!drm_rect_visible(damage))
> +		return;
> +
> +	if (!fb || !plane_state->uapi.visible) {
> +		plane_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
> +		return;
> +	}
> +
> +	if (drm_rotation_90_or_270(rotation)) {
> +		drm_rect_rotate(damage, fb->width, fb->height,
> +				DRM_MODE_ROTATE_270);
> +		drm_rect_translate(damage, -(src->y1 >> 16), -(src->x1 >> 16));
> +	} else {
> +		drm_rect_translate(damage, -(src->x1 >> 16), -(src->y1 >> 16));
> +	}
> +}
> +
> +static void clip_damage(struct intel_plane_state *plane_state)
> +{
> +	struct drm_rect *damage = &plane_state->damage;
> +	struct drm_rect src;
> +
> +	if (!drm_rect_visible(damage))
> +		return;
> +
> +	drm_rect_fp_to_int(&src, &plane_state->uapi.src);
> +	drm_rect_translate(damage, src.x1, src.y1);
> +	drm_rect_intersect(damage, &src);
> +}
> +
>  static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  			   struct intel_plane_state *plane_state)
>  {
> @@ -2285,6 +2323,8 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  	if (ret)
>  		return ret;
>  
> +	make_damage_viewport_relative(plane_state);
> +
>  	ret = skl_check_plane_surface(plane_state);
>  	if (ret)
>  		return ret;
> @@ -2300,6 +2340,8 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  	if (ret)
>  		return ret;
>  
> +	clip_damage(plane_state);
> +
>  	ret = skl_plane_check_nv12_rotation(plane_state);
>  	if (ret)
>  		return ret;
> @@ -2307,8 +2349,10 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  	check_protection(plane_state);
>  
>  	/* HW only has 8 bits pixel precision, disable plane if invisible */
> -	if (!(plane_state->hw.alpha >> 8))
> +	if (!(plane_state->hw.alpha >> 8)) {
>  		plane_state->uapi.visible = false;
> +		plane_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
> +	}
>  
>  	plane_state->ctl = skl_plane_ctl(crtc_state, plane_state);
>  
> -- 
> 2.43.0

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH v7 6/7] drm/i915/xe3: dirty rect support for FBC
  2025-02-12 13:14 ` [PATCH v7 6/7] drm/i915/xe3: dirty rect support for FBC Vinod Govindapillai
@ 2025-02-12 18:42   ` Ville Syrjälä
  0 siblings, 0 replies; 18+ messages in thread
From: Ville Syrjälä @ 2025-02-12 18:42 UTC (permalink / raw)
  To: Vinod Govindapillai
  Cc: intel-gfx, intel-xe, dri-devel, ville.syrjala,
	santhosh.reddy.guddati, jani.saarinen

On Wed, Feb 12, 2025 at 03:14:19PM +0200, Vinod Govindapillai wrote:
> Dirty rectangle feature allows FBC to recompress a subsection
> of a frame. When this feature is enabled, display will read
> the scan lines between dirty rectangle start line and dirty
> rectangle end line in subsequent frames.
> 
> Use the merged damage clip stored in the plane state to
> configure the FBC dirty rect areas.
> 
> v2: - Move dirty rect handling to fbc state (Ville)
> 
> v3: - Use intel_fbc_dirty_rect_update_noarm (Ville)
>     - Split plane damage collection and dirty rect preparation
>     - Handle case where dirty rect fall outside the visible region
> 
> v4: - A state variable to check if we need to update dirty rect
>     registers in case intel_fbc_can_flip_nuke() (Ville)
> 
> v5: - No need to use a separate valid flag, updates to the
>       conditions for prepare damage rect (Ville)
>     - Usage of locks in fbc dirty rect related functions (Ville)
> 
> Bspec: 68881, 71675, 73424
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> ---
>  .../gpu/drm/i915/display/intel_atomic_plane.c |  3 +
>  drivers/gpu/drm/i915/display/intel_display.c  |  3 +
>  drivers/gpu/drm/i915/display/intel_fbc.c      | 89 +++++++++++++++++++
>  drivers/gpu/drm/i915/display/intel_fbc.h      |  5 ++
>  4 files changed, 100 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> index b4e94dd01173..6e749937f03c 100644
> --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> @@ -805,6 +805,9 @@ void intel_plane_update_noarm(struct intel_dsb *dsb,
>  
>  	trace_intel_plane_update_noarm(plane_state, crtc);
>  
> +	if (plane->fbc)
> +		intel_fbc_dirty_rect_update_noarm(dsb, plane);
> +
>  	if (plane->update_noarm)
>  		plane->update_noarm(dsb, plane, crtc_state, plane_state);
>  }
> diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
> index 9f8a8c94cf4c..b054c94dce0f 100644
> --- a/drivers/gpu/drm/i915/display/intel_display.c
> +++ b/drivers/gpu/drm/i915/display/intel_display.c
> @@ -7784,6 +7784,9 @@ static void intel_atomic_commit_tail(struct intel_atomic_state *state)
>  
>  	intel_atomic_prepare_plane_clear_colors(state);
>  
> +	for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i)
> +		intel_fbc_prepare_dirty_rect(state, crtc);
> +
>  	for_each_new_intel_crtc_in_state(state, crtc, new_crtc_state, i)
>  		intel_atomic_dsb_finish(state, crtc);
>  
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 951dc81b7b97..8c92953b53f5 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -88,6 +88,7 @@ struct intel_fbc_state {
>  	u16 override_cfb_stride;
>  	u16 interval;
>  	s8 fence_id;
> +	struct drm_rect dirty_rect;
>  };
>  
>  struct intel_fbc {
> @@ -527,6 +528,9 @@ static void ilk_fbc_deactivate(struct intel_fbc *fbc)
>  	struct intel_display *display = fbc->display;
>  	u32 dpfc_ctl;
>  
> +	if (HAS_FBC_DIRTY_RECT(display))
> +		intel_de_write(display, XE3_FBC_DIRTY_CTL(fbc->id), 0);
> +
>  	/* Disable compression */
>  	dpfc_ctl = intel_de_read(display, ILK_DPFC_CONTROL(fbc->id));
>  	if (dpfc_ctl & DPFC_CTL_EN) {
> @@ -670,6 +674,10 @@ static void ivb_fbc_activate(struct intel_fbc *fbc)
>  	if (DISPLAY_VER(display) >= 20)
>  		intel_de_write(display, ILK_DPFC_CONTROL(fbc->id), dpfc_ctl);
>  
> +	if (HAS_FBC_DIRTY_RECT(display))
> +		intel_de_write(display, XE3_FBC_DIRTY_CTL(fbc->id),
> +			       FBC_DIRTY_RECT_EN);
> +
>  	intel_de_write(display, ILK_DPFC_CONTROL(fbc->id),
>  		       DPFC_CTL_EN | dpfc_ctl);
>  }
> @@ -1214,6 +1222,87 @@ static bool tiling_is_valid(const struct intel_plane_state *plane_state)
>  		return i8xx_fbc_tiling_valid(plane_state);
>  }
>  
> +static void
> +intel_fbc_dirty_rect_update(struct intel_dsb *dsb, struct intel_fbc *fbc)
> +{
> +	struct intel_display *display = fbc->display;
> +	struct drm_rect *fbc_dirty_rect = &fbc->state.dirty_rect;
> +
> +	lockdep_assert_held(&fbc->lock);
> +
> +	intel_de_write_dsb(display, dsb, XE3_FBC_DIRTY_RECT(fbc->id),
> +			   FBC_DIRTY_RECT_START_LINE(fbc_dirty_rect->y1) |
> +			   FBC_DIRTY_RECT_END_LINE(fbc_dirty_rect->y2));
> +}
> +
> +void
> +intel_fbc_dirty_rect_update_noarm(struct intel_dsb *dsb,
> +				  struct intel_plane *plane)
> +{
> +	struct intel_display *display = to_intel_display(plane);
> +	struct intel_fbc *fbc = plane->fbc;
> +
> +	if (!HAS_FBC_DIRTY_RECT(display))
> +		return;
> +
> +	if (fbc->state.plane != plane)
> +		return;

That needs to be inside the lock.

> +
> +	mutex_lock(&fbc->lock);
> +
> +	intel_fbc_dirty_rect_update(dsb, fbc);
> +
> +	mutex_unlock(&fbc->lock);
> +}
> +
> +static void
> +__intel_fbc_prepare_dirty_rect(struct intel_plane *plane,
> +			       struct intel_plane_state *plane_state)
> +{
> +	struct intel_fbc *fbc = plane->fbc;
> +	struct drm_rect *fbc_dirty_rect = &fbc->state.dirty_rect;
> +	int y_offset = plane_state->view.color_plane[0].y;
> +	const struct drm_rect *damage = &plane_state->damage;
> +
> +	lockdep_assert_held(&fbc->lock);
> +
> +	/* In damage clip, x1/y1 are inclusive and x2/y2 are exclusive */
> +	fbc_dirty_rect->y1 = drm_rect_visible(damage) ? damage->y1 : y_offset;
> +	fbc_dirty_rect->y2 =
> +		drm_rect_visible(damage) ? damage->y2 - 1 : y_offset;
> +	fbc_dirty_rect->x1 = damage->x1;
> +	fbc_dirty_rect->x2 = damage->x2 - 1;

This looks rather messy:

Something like this would be more legible:

if (visible(damage)) {
	dirty_rect = damage;
} else {
	/* dirty rect must cover at least one line */
	drm_rect_init(dirty_rect ...);
}

Also the -1 for for the end line should be done in 
intel_fbc_dirty_rect_update() and not here. drm_rects
are always supposed to have exclusive end coordinates.

> +}
> +
> +void
> +intel_fbc_prepare_dirty_rect(struct intel_atomic_state *state,
> +			     struct intel_crtc *crtc)
> +{
> +	struct intel_display *display = to_intel_display(state);
> +	struct intel_plane_state *plane_state;
> +	struct intel_plane *plane;
> +	int i;
> +
> +	if (!HAS_FBC_DIRTY_RECT(display))
> +		return;
> +
> +	for_each_new_intel_plane_in_state(state, plane, plane_state, i) {
> +		struct intel_fbc *fbc = plane->fbc;
> +
> +		if (!fbc || plane->pipe != crtc->pipe)
> +			continue;
> +
> +		if (fbc->state.plane != plane)
> +			continue;

Also belongs inside the lock.

> +
> +		mutex_lock(&fbc->lock);
> +
> +		__intel_fbc_prepare_dirty_rect(plane, plane_state);
> +
> +		mutex_unlock(&fbc->lock);
> +	}
> +}
> +
>  static void intel_fbc_update_state(struct intel_atomic_state *state,
>  				   struct intel_crtc *crtc,
>  				   struct intel_plane *plane)
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.h b/drivers/gpu/drm/i915/display/intel_fbc.h
> index ceae55458e14..fe48d0276eec 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.h
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.h
> @@ -14,6 +14,7 @@ struct intel_atomic_state;
>  struct intel_crtc;
>  struct intel_crtc_state;
>  struct intel_display;
> +struct intel_dsb;
>  struct intel_fbc;
>  struct intel_plane;
>  struct intel_plane_state;
> @@ -48,5 +49,9 @@ void intel_fbc_handle_fifo_underrun_irq(struct intel_display *display);
>  void intel_fbc_reset_underrun(struct intel_display *display);
>  void intel_fbc_crtc_debugfs_add(struct intel_crtc *crtc);
>  void intel_fbc_debugfs_register(struct intel_display *display);
> +void intel_fbc_prepare_dirty_rect(struct intel_atomic_state *state,
> +				  struct intel_crtc *crtc);
> +void intel_fbc_dirty_rect_update_noarm(struct intel_dsb *dsb,
> +				       struct intel_plane *plane);
>  
>  #endif /* __INTEL_FBC_H__ */
> -- 
> 2.43.0

-- 
Ville Syrjälä
Intel

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

* Re: [PATCH v7 2/7] drm/i915/xe3: update and store the plane damage clips
  2025-02-12 18:35   ` Ville Syrjälä
@ 2025-02-12 20:14     ` Govindapillai, Vinod
  2025-02-12 20:42       ` Ville Syrjälä
  0 siblings, 1 reply; 18+ messages in thread
From: Govindapillai, Vinod @ 2025-02-12 20:14 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com
  Cc: intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	Reddy Guddati, Santhosh, Saarinen, Jani,
	intel-gfx@lists.freedesktop.org, Syrjala, Ville

On Wed, 2025-02-12 at 20:35 +0200, Ville Syrjälä wrote:
> On Wed, Feb 12, 2025 at 03:14:15PM +0200, Vinod Govindapillai wrote:
> > Userspace can pass damage area clips per plane to track
> > changes in a plane and some display components can utilze
> > these damage clips for efficiently handling use cases like
> > FBC, PSR etc. A merged damage area is generated and its
> > coordinates are updated relative to viewport and HW and
> > stored in the plane_state. This merged damage areas will be
> > used for FBC dirty rect support in xe3 in the follow-up
> > patch.
> > 
> > Big thanks to Ville Syrjala for his contribuitions in shaping
> > up of this series.
> > 
> > v1: - Move damage_merged helper to cover bigjoiner case and use
> >     the correct plane state for damage find helper (Ville)
> >     - Damage handling code under HAS_FBC_DIRTY_RECT() so the
> >     the related part will be executed only for xe3+
> >     - Changed dev_priv to i915 in one of the functions
> > 
> > v2: - damage reported is stored in the plane state after coords
> >       adjustmentments irrespective of fbc dirty rect support.
> >     - Damage to be empty in case of plane not visible (Ville)
> >     - Handle fb could be NULL and plane not visible cases (Ville)
> > 
> > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> > ---
> >  .../gpu/drm/i915/display/intel_atomic_plane.c | 31 +++++++++++++
> >  .../drm/i915/display/intel_display_types.h    |  2 +
> >  .../drm/i915/display/skl_universal_plane.c    | 46 ++++++++++++++++++-
> >  3 files changed, 78 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> > b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> > index 8a49d87d9bd9..b4e94dd01173 100644
> > --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> > +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> > @@ -36,6 +36,7 @@
> >  
> >  #include <drm/drm_atomic_helper.h>
> >  #include <drm/drm_blend.h>
> > +#include <drm/drm_damage_helper.h>
> >  #include <drm/drm_fourcc.h>
> >  #include <drm/drm_gem.h>
> >  #include <drm/drm_gem_atomic_helper.h>
> > @@ -117,6 +118,7 @@ intel_plane_duplicate_state(struct drm_plane *plane)
> >  	intel_state->ggtt_vma = NULL;
> >  	intel_state->dpt_vma = NULL;
> >  	intel_state->flags = 0;
> > +	intel_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
> >  
> >  	/* add reference to fb */
> >  	if (intel_state->hw.fb)
> > @@ -322,6 +324,27 @@ static void intel_plane_clear_hw_state(struct intel_plane_state
> > *plane_state)
> >  	memset(&plane_state->hw, 0, sizeof(plane_state->hw));
> >  }
> >  
> > +static void
> > +intel_plane_copy_uapi_plane_damage(struct intel_plane_state *new_plane_state,
> > +				   const struct intel_plane_state *old_uapi_plane_state,
> > +				   const struct intel_plane_state *new_uapi_plane_state)
> > +{
> > +	struct intel_display *display = to_intel_display(new_plane_state);
> > +	struct drm_rect *damage = &new_plane_state->damage;
> > +
> > +	/* damage property tracking enabled from display version 12 onwards */
> > +	if (DISPLAY_VER(display) < 12) {
> > +		*damage = DRM_RECT_INIT(0, 0, 0, 0);
> > +		return;
> > +	}
> 
> I don't think that is needed. If we have no damage prop then the helper
> will give us full damage.

We do this drm_plane_enable_fb_damage_clips from from display version 12 onwards.

	if (DISPLAY_VER(display) >= 12)
		drm_plane_enable_fb_damage_clips(&plane->base);

There will be a dmesg warn if we call that damage helper without the enable_fb_damage_clips

"4> [44.199485] i915 0000:00:02.0: [drm] drm_plane_enable_fb_damage_clips() not called"

For example, 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_141527v6/bat-jsl-1/igt@i915_module_load@load.html#dmesg-warnings329

BR
Vinod

> 
> > +
> > +	if (!drm_atomic_helper_damage_merged(&old_uapi_plane_state->uapi,
> > +					     &new_uapi_plane_state->uapi,
> > +					     damage))
> > +		/* Incase helper fails, mark whole plane region as damage */
> > +		*damage = drm_plane_state_src(&new_uapi_plane_state->uapi);
> > +}
> > +
> >  void intel_plane_copy_uapi_to_hw_state(struct intel_plane_state *plane_state,
> >  				       const struct intel_plane_state *from_plane_state,
> >  				       struct intel_crtc *crtc)
> > @@ -691,6 +714,7 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
> >  	const struct intel_plane_state *old_plane_state =
> >  		intel_atomic_get_old_plane_state(state, plane);
> >  	const struct intel_plane_state *new_primary_crtc_plane_state;
> > +	const struct intel_plane_state *old_primary_crtc_plane_state;
> >  	struct intel_crtc *crtc = intel_crtc_for_pipe(display, plane->pipe);
> >  	const struct intel_crtc_state *old_crtc_state =
> >  		intel_atomic_get_old_crtc_state(state, crtc);
> > @@ -705,10 +729,17 @@ int intel_plane_atomic_check(struct intel_atomic_state *state,
> >  
> >  		new_primary_crtc_plane_state =
> >  			intel_atomic_get_new_plane_state(state, primary_crtc_plane);
> > +		old_primary_crtc_plane_state =
> > +			intel_atomic_get_old_plane_state(state, primary_crtc_plane);
> >  	} else {
> >  		new_primary_crtc_plane_state = new_plane_state;
> > +		old_primary_crtc_plane_state = old_plane_state;
> >  	}
> >  
> > +	intel_plane_copy_uapi_plane_damage(new_plane_state,
> > +					   old_primary_crtc_plane_state,
> > +					   new_primary_crtc_plane_state);
> > +
> >  	intel_plane_copy_uapi_to_hw_state(new_plane_state,
> >  					  new_primary_crtc_plane_state,
> >  					  crtc);
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index 6a82c6ade549..844f92ea4f45 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -697,6 +697,8 @@ struct intel_plane_state {
> >  	u64 ccval;
> >  
> >  	const char *no_fbc_reason;
> > +
> > +	struct drm_rect damage;
> >  };
> >  
> >  struct intel_initial_plane_config {
> > diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > index eb85d3d6cdc3..3e3c22a26357 100644
> > --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> > @@ -2260,6 +2260,44 @@ static void check_protection(struct intel_plane_state *plane_state)
> >  		!plane_state->decrypt;
> >  }
> >  
> > +static void
> > +make_damage_viewport_relative(struct intel_plane_state *plane_state)
> > +{
> > +	const struct drm_framebuffer *fb = plane_state->hw.fb;
> > +	const struct drm_rect *src = &plane_state->uapi.src;
> > +	unsigned int rotation = plane_state->hw.rotation;
> > +	struct drm_rect *damage = &plane_state->damage;
> > +
> > +	if (!drm_rect_visible(damage))
> > +		return;
> > +
> > +	if (!fb || !plane_state->uapi.visible) {
> > +		plane_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
> > +		return;
> > +	}
> > +
> > +	if (drm_rotation_90_or_270(rotation)) {
> > +		drm_rect_rotate(damage, fb->width, fb->height,
> > +				DRM_MODE_ROTATE_270);
> > +		drm_rect_translate(damage, -(src->y1 >> 16), -(src->x1 >> 16));
> > +	} else {
> > +		drm_rect_translate(damage, -(src->x1 >> 16), -(src->y1 >> 16));
> > +	}
> > +}
> > +
> > +static void clip_damage(struct intel_plane_state *plane_state)
> > +{
> > +	struct drm_rect *damage = &plane_state->damage;
> > +	struct drm_rect src;
> > +
> > +	if (!drm_rect_visible(damage))
> > +		return;
> > +
> > +	drm_rect_fp_to_int(&src, &plane_state->uapi.src);
> > +	drm_rect_translate(damage, src.x1, src.y1);
> > +	drm_rect_intersect(damage, &src);
> > +}
> > +
> >  static int skl_plane_check(struct intel_crtc_state *crtc_state,
> >  			   struct intel_plane_state *plane_state)
> >  {
> > @@ -2285,6 +2323,8 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
> >  	if (ret)
> >  		return ret;
> >  
> > +	make_damage_viewport_relative(plane_state);
> > +
> >  	ret = skl_check_plane_surface(plane_state);
> >  	if (ret)
> >  		return ret;
> > @@ -2300,6 +2340,8 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
> >  	if (ret)
> >  		return ret;
> >  
> > +	clip_damage(plane_state);
> > +
> >  	ret = skl_plane_check_nv12_rotation(plane_state);
> >  	if (ret)
> >  		return ret;
> > @@ -2307,8 +2349,10 @@ static int skl_plane_check(struct intel_crtc_state *crtc_state,
> >  	check_protection(plane_state);
> >  
> >  	/* HW only has 8 bits pixel precision, disable plane if invisible */
> > -	if (!(plane_state->hw.alpha >> 8))
> > +	if (!(plane_state->hw.alpha >> 8)) {
> >  		plane_state->uapi.visible = false;
> > +		plane_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
> > +	}
> >  
> >  	plane_state->ctl = skl_plane_ctl(crtc_state, plane_state);
> >  
> > -- 
> > 2.43.0
> 


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

* Re: [PATCH v7 5/7] drm/i915/xe3: avoid calling fbc activate if fbc is active
  2025-02-12 18:30   ` Ville Syrjälä
@ 2025-02-12 20:21     ` Govindapillai, Vinod
  0 siblings, 0 replies; 18+ messages in thread
From: Govindapillai, Vinod @ 2025-02-12 20:21 UTC (permalink / raw)
  To: ville.syrjala@linux.intel.com
  Cc: intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	Reddy Guddati, Santhosh, Saarinen, Jani,
	intel-gfx@lists.freedesktop.org, Syrjala, Ville

On Wed, 2025-02-12 at 20:30 +0200, Ville Syrjälä wrote:
> On Wed, Feb 12, 2025 at 03:14:18PM +0200, Vinod Govindapillai wrote:
> > If FBC is already active, we don't need to call FBC activate
> > routine again. This is more relevant in case of dirty rect
> > support in FBC. Xe doesn't support legacy fences. Hence fence
> > programming also not required as part of this fbc_hw_activate.
> > Any FBC related register updates done after enabling the dirty
> > rect support in xe3 will trigger nuke by FBC HW. So avoid
> > calling fbc activate routine again if the FBC is already active.
> > 
> > The front buffer rendering sequence will call intel_fbc_flush()
> > and which will call intel_fbc_nuke() or intel_fbc_activate()
> > based on FBC status explicitly and won't get impacted by this
> > change.
> > 
> > v2: use HAS_FBC_DIRTY_RECT()
> >     move this functionality within intel_fbc_activate()
> > 
> > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_fbc.c | 11 +++++++++++
> >  1 file changed, 11 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
> > index df05904bac8a..951dc81b7b97 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > @@ -739,8 +739,19 @@ static void intel_fbc_nuke(struct intel_fbc *fbc)
> >  
> >  static void intel_fbc_activate(struct intel_fbc *fbc)
> >  {
> > +	struct intel_display *display = fbc->display;
> > +
> >  	lockdep_assert_held(&fbc->lock);
> >  
> > +	/*
> > +	 * When dirty rectangle is enabled, any updates to FBC registers will
> > +	 * trigger nuke. So avoid calling intel_fbc_activate if fbc is already
> > +	 * active and for XE3 cases. Xe doesn't support legacy fences. So
> > +	 * no need to update the fences as well.
> 
> I have no idea what XE3 and Xe here mean. I would just state
> that platforms which have dirty rect don't have fences.
> 
> > +	 */
> > +	if (HAS_FBC_DIRTY_RECT(display) && fbc->active)
> > +		return;
> 
> I don't quite like the assumptions being made here.
> 
> Since only the fence can change upon flip nuke we should
> probably check for intel_fbc_has_fences() instead of
> HAS_DIRTY_RECT() and thus just skip this on all platforms
> that don't have fences. That also increases our testing
> coverage for this short circuit path, which is a good thing.
> 
> Ideally I guess we should check if the fence is actually
> changing or not, but we don't have the old state around
> anymore so can't do it right now.
> 
> So I guess we could do something like:
> /* only the fence can change for a flip nuke */
> if (fbc->active && !has_fences())
> 	return;

Okay. I wasn't sure if any older platforms had any such dependency on fences and stride!

BR
Vinod

> 
> /*
>  * the explanation about the FBC register write
>  * nuke vs. dirty rect stuff.
>  */
> drm_WARN_ON(fbc->active && HAS_DIRTY_RECT());
> 
> > +
> >  	intel_fbc_hw_activate(fbc);
> >  	intel_fbc_nuke(fbc);
> >  
> > -- 
> > 2.43.0
> 


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

* Re: [PATCH v7 2/7] drm/i915/xe3: update and store the plane damage clips
  2025-02-12 20:14     ` Govindapillai, Vinod
@ 2025-02-12 20:42       ` Ville Syrjälä
  0 siblings, 0 replies; 18+ messages in thread
From: Ville Syrjälä @ 2025-02-12 20:42 UTC (permalink / raw)
  To: Govindapillai, Vinod
  Cc: intel-xe@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	Reddy Guddati, Santhosh, Saarinen, Jani,
	intel-gfx@lists.freedesktop.org, Syrjala, Ville

On Wed, Feb 12, 2025 at 08:14:12PM +0000, Govindapillai, Vinod wrote:
> On Wed, 2025-02-12 at 20:35 +0200, Ville Syrjälä wrote:
> > On Wed, Feb 12, 2025 at 03:14:15PM +0200, Vinod Govindapillai wrote:
> > > Userspace can pass damage area clips per plane to track
> > > changes in a plane and some display components can utilze
> > > these damage clips for efficiently handling use cases like
> > > FBC, PSR etc. A merged damage area is generated and its
> > > coordinates are updated relative to viewport and HW and
> > > stored in the plane_state. This merged damage areas will be
> > > used for FBC dirty rect support in xe3 in the follow-up
> > > patch.
> > > 
> > > Big thanks to Ville Syrjala for his contribuitions in shaping
> > > up of this series.
> > > 
> > > v1: - Move damage_merged helper to cover bigjoiner case and use
> > >     the correct plane state for damage find helper (Ville)
> > >     - Damage handling code under HAS_FBC_DIRTY_RECT() so the
> > >     the related part will be executed only for xe3+
> > >     - Changed dev_priv to i915 in one of the functions
> > > 
> > > v2: - damage reported is stored in the plane state after coords
> > >       adjustmentments irrespective of fbc dirty rect support.
> > >     - Damage to be empty in case of plane not visible (Ville)
> > >     - Handle fb could be NULL and plane not visible cases (Ville)
> > > 
> > > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> > > ---
> > >  .../gpu/drm/i915/display/intel_atomic_plane.c | 31 +++++++++++++
> > >  .../drm/i915/display/intel_display_types.h    |  2 +
> > >  .../drm/i915/display/skl_universal_plane.c    | 46 ++++++++++++++++++-
> > >  3 files changed, 78 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> > > b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> > > index 8a49d87d9bd9..b4e94dd01173 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
> > > @@ -36,6 +36,7 @@
> > >  
> > >  #include <drm/drm_atomic_helper.h>
> > >  #include <drm/drm_blend.h>
> > > +#include <drm/drm_damage_helper.h>
> > >  #include <drm/drm_fourcc.h>
> > >  #include <drm/drm_gem.h>
> > >  #include <drm/drm_gem_atomic_helper.h>
> > > @@ -117,6 +118,7 @@ intel_plane_duplicate_state(struct drm_plane *plane)
> > >  	intel_state->ggtt_vma = NULL;
> > >  	intel_state->dpt_vma = NULL;
> > >  	intel_state->flags = 0;
> > > +	intel_state->damage = DRM_RECT_INIT(0, 0, 0, 0);
> > >  
> > >  	/* add reference to fb */
> > >  	if (intel_state->hw.fb)
> > > @@ -322,6 +324,27 @@ static void intel_plane_clear_hw_state(struct intel_plane_state
> > > *plane_state)
> > >  	memset(&plane_state->hw, 0, sizeof(plane_state->hw));
> > >  }
> > >  
> > > +static void
> > > +intel_plane_copy_uapi_plane_damage(struct intel_plane_state *new_plane_state,
> > > +				   const struct intel_plane_state *old_uapi_plane_state,
> > > +				   const struct intel_plane_state *new_uapi_plane_state)
> > > +{
> > > +	struct intel_display *display = to_intel_display(new_plane_state);
> > > +	struct drm_rect *damage = &new_plane_state->damage;
> > > +
> > > +	/* damage property tracking enabled from display version 12 onwards */
> > > +	if (DISPLAY_VER(display) < 12) {
> > > +		*damage = DRM_RECT_INIT(0, 0, 0, 0);
> > > +		return;
> > > +	}
> > 
> > I don't think that is needed. If we have no damage prop then the helper
> > will give us full damage.
> 
> We do this drm_plane_enable_fb_damage_clips from from display version 12 onwards.
> 
> 	if (DISPLAY_VER(display) >= 12)
> 		drm_plane_enable_fb_damage_clips(&plane->base);
> 
> There will be a dmesg warn if we call that damage helper without the enable_fb_damage_clips
> 
> "4> [44.199485] i915 0000:00:02.0: [drm] drm_plane_enable_fb_damage_clips() not called"

Sigh. This "helper" is even worse than I thought. I think we
should just roll our own. But I guess we can live with the platform
check for now. You should be able to drop the RECT_INIT though since
the rectagle will be empty already anyway.

-- 
Ville Syrjälä
Intel

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

* ✗ i915.CI.Full: failure for drm/i915/fbc: FBC Dirty rect feature support
  2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
                   ` (9 preceding siblings ...)
  2025-02-12 15:09 ` ✓ i915.CI.BAT: success " Patchwork
@ 2025-02-12 22:37 ` Patchwork
  10 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2025-02-12 22:37 UTC (permalink / raw)
  To: Govindapillai, Vinod; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915/fbc: FBC Dirty rect feature support
URL   : https://patchwork.freedesktop.org/series/144725/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_16117_full -> Patchwork_144725v1_full
====================================================

Summary
-------

  **FAILURE**

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

  Additional (1): pig-kbl-iris 
  Missing    (1): shard-snb-0 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_mmap_gtt@hang-user:
    - shard-snb:          [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-snb4/igt@gem_mmap_gtt@hang-user.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-snb5/igt@gem_mmap_gtt@hang-user.html

  * igt@kms_flip@flip-vs-blocking-wf-vblank:
    - shard-dg1:          NOTRUN -> [SKIP][3] +11 other tests skip
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_flip@flip-vs-blocking-wf-vblank.html

  * igt@kms_sequence@get-busy:
    - shard-dg1:          [PASS][4] -> [SKIP][5] +58 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-19/igt@kms_sequence@get-busy.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_sequence@get-busy.html

  
#### Warnings ####

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180:
    - shard-dg1:          [SKIP][6] ([i915#4538] / [i915#5286]) -> [SKIP][7] +3 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-90:
    - shard-dg1:          [SKIP][8] ([i915#3638]) -> [SKIP][9] +2 other tests skip
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_big_fb@y-tiled-64bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180:
    - shard-dg1:          [SKIP][10] ([i915#4538]) -> [SKIP][11] +3 other tests skip
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-19/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
    - shard-dg1:          [SKIP][12] ([i915#12313]) -> [SKIP][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-19/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs:
    - shard-dg1:          [SKIP][14] ([i915#6095]) -> [SKIP][15] +12 other tests skip
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-dg1:          [SKIP][16] ([i915#12805]) -> [SKIP][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs.html

  * igt@kms_cursor_crc@cursor-sliding-512x512:
    - shard-dg1:          [SKIP][18] ([i915#13049]) -> [SKIP][19] +3 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_cursor_crc@cursor-sliding-512x512.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_cursor_crc@cursor-sliding-512x512.html

  * igt@kms_display_modes@mst-extended-mode-negative:
    - shard-dg1:          [SKIP][20] ([i915#8588]) -> [SKIP][21]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_display_modes@mst-extended-mode-negative.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_display_modes@mst-extended-mode-negative.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-dg1:          [SKIP][22] ([i915#3555] / [i915#3840]) -> [SKIP][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_dsc@dsc-with-bpc.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_hdr@bpc-switch:
    - shard-dg1:          [SKIP][24] ([i915#3555] / [i915#8228]) -> [SKIP][25]
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_hdr@bpc-switch.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_hdr@bpc-switch.html

  * igt@kms_plane_multiple@tiling-yf:
    - shard-dg1:          [SKIP][26] ([i915#3555]) -> [SKIP][27] +4 other tests skip
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-14/igt@kms_plane_multiple@tiling-yf.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_plane_multiple@tiling-yf.html

  * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180:
    - shard-dg1:          [SKIP][28] ([i915#5289]) -> [SKIP][29] +2 other tests skip
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-19/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-180.html

  * igt@kms_vrr@negative-basic:
    - shard-dg1:          [SKIP][30] ([i915#3555] / [i915#9906]) -> [SKIP][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-19/igt@kms_vrr@negative-basic.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_vrr@negative-basic.html

  

### Piglit changes ###

#### Suppressed ####

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

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence:
    - pig-kbl-iris:       NOTRUN -> [{DMESG-WARN}][32] +3 other tests {dmesg-warn}
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/pig-kbl-iris/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@api_intel_bb@object-reloc-keep-cache:
    - shard-mtlp:         NOTRUN -> [SKIP][33] ([i915#8411])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@api_intel_bb@object-reloc-keep-cache.html

  * igt@debugfs_test@basic-hwmon:
    - shard-tglu-1:       NOTRUN -> [SKIP][34] ([i915#9318])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@debugfs_test@basic-hwmon.html

  * igt@drm_fdinfo@virtual-busy:
    - shard-dg2-9:        NOTRUN -> [SKIP][35] ([i915#8414])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@drm_fdinfo@virtual-busy.html

  * igt@fbdev@info:
    - shard-dg1:          [PASS][36] -> [SKIP][37] ([i915#1849] / [i915#2582])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@fbdev@info.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@fbdev@info.html

  * igt@fbdev@read:
    - shard-dg1:          [PASS][38] -> [SKIP][39] ([i915#2582])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-19/igt@fbdev@read.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@fbdev@read.html

  * igt@gem_bad_reloc@negative-reloc-lut:
    - shard-rkl:          NOTRUN -> [SKIP][40] ([i915#3281]) +9 other tests skip
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-3/igt@gem_bad_reloc@negative-reloc-lut.html

  * igt@gem_ccs@block-copy-compressed:
    - shard-rkl:          NOTRUN -> [SKIP][41] ([i915#3555] / [i915#9323])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@gem_ccs@block-copy-compressed.html

  * igt@gem_ccs@ctrl-surf-copy-new-ctx:
    - shard-mtlp:         NOTRUN -> [SKIP][42] ([i915#9323])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
    - shard-tglu:         NOTRUN -> [SKIP][43] ([i915#9323])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@gem_ccs@ctrl-surf-copy-new-ctx.html

  * igt@gem_create@create-ext-cpu-access-sanity-check:
    - shard-rkl:          NOTRUN -> [SKIP][44] ([i915#6335])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@gem_create@create-ext-cpu-access-sanity-check.html

  * igt@gem_create@create-ext-set-pat:
    - shard-dg2-9:        NOTRUN -> [SKIP][45] ([i915#8562])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_create@create-ext-set-pat.html

  * igt@gem_ctx_persistence@engines-hostile-preempt:
    - shard-snb:          NOTRUN -> [SKIP][46] ([i915#1099]) +1 other test skip
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-snb1/igt@gem_ctx_persistence@engines-hostile-preempt.html

  * igt@gem_ctx_persistence@saturated-hostile-nopreempt:
    - shard-dg2:          NOTRUN -> [SKIP][47] ([i915#5882]) +7 other tests skip
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@gem_ctx_persistence@saturated-hostile-nopreempt.html

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

  * igt@gem_eio@banned:
    - shard-mtlp:         [PASS][50] -> [ABORT][51] ([i915#13193]) +2 other tests abort
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-mtlp-1/igt@gem_eio@banned.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-7/igt@gem_eio@banned.html

  * igt@gem_eio@hibernate:
    - shard-dg2:          NOTRUN -> [ABORT][52] ([i915#7975])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-4/igt@gem_eio@hibernate.html

  * igt@gem_exec_balancer@bonded-dual:
    - shard-mtlp:         NOTRUN -> [SKIP][53] ([i915#4771])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@gem_exec_balancer@bonded-dual.html
    - shard-dg1:          NOTRUN -> [SKIP][54] ([i915#4771])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@gem_exec_balancer@bonded-dual.html

  * igt@gem_exec_balancer@bonded-sync:
    - shard-dg2:          NOTRUN -> [SKIP][55] ([i915#4771])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@gem_exec_balancer@bonded-sync.html

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

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-tglu:         NOTRUN -> [SKIP][57] ([i915#4525]) +1 other test skip
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_balancer@parallel-keep-submit-fence:
    - shard-rkl:          NOTRUN -> [SKIP][58] ([i915#4525]) +1 other test skip
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@gem_exec_balancer@parallel-keep-submit-fence.html

  * igt@gem_exec_balancer@sliced:
    - shard-dg2-9:        NOTRUN -> [SKIP][59] ([i915#4812])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_exec_balancer@sliced.html

  * igt@gem_exec_flush@basic-uc-prw-default:
    - shard-dg2:          NOTRUN -> [SKIP][60] ([i915#3539])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@gem_exec_flush@basic-uc-prw-default.html

  * igt@gem_exec_flush@basic-uc-ro-default:
    - shard-dg1:          NOTRUN -> [SKIP][61] ([i915#3539] / [i915#4852])
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@gem_exec_flush@basic-uc-ro-default.html

  * igt@gem_exec_flush@basic-wb-rw-default:
    - shard-dg2-9:        NOTRUN -> [SKIP][62] ([i915#3539] / [i915#4852]) +1 other test skip
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_exec_flush@basic-wb-rw-default.html

  * igt@gem_exec_reloc@basic-cpu-noreloc:
    - shard-dg2:          NOTRUN -> [SKIP][63] ([i915#3281]) +2 other tests skip
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@gem_exec_reloc@basic-cpu-noreloc.html

  * igt@gem_exec_reloc@basic-gtt-cpu-noreloc:
    - shard-mtlp:         NOTRUN -> [SKIP][64] ([i915#3281]) +4 other tests skip
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@gem_exec_reloc@basic-gtt-cpu-noreloc.html
    - shard-dg1:          NOTRUN -> [SKIP][65] ([i915#3281]) +1 other test skip
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@gem_exec_reloc@basic-gtt-cpu-noreloc.html

  * igt@gem_exec_reloc@basic-write-read-noreloc:
    - shard-dg2-9:        NOTRUN -> [SKIP][66] ([i915#3281]) +2 other tests skip
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_exec_reloc@basic-write-read-noreloc.html

  * igt@gem_exec_schedule@preempt-queue:
    - shard-dg2-9:        NOTRUN -> [SKIP][67] ([i915#4537] / [i915#4812])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_exec_schedule@preempt-queue.html

  * igt@gem_exec_schedule@preempt-queue-chain:
    - shard-mtlp:         NOTRUN -> [SKIP][68] ([i915#4537] / [i915#4812])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@gem_exec_schedule@preempt-queue-chain.html

  * igt@gem_exec_schedule@reorder-wide:
    - shard-dg2:          NOTRUN -> [SKIP][69] ([i915#4537] / [i915#4812]) +1 other test skip
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@gem_exec_schedule@reorder-wide.html

  * igt@gem_exec_suspend@basic-s4-devices:
    - shard-rkl:          NOTRUN -> [ABORT][70] ([i915#7975]) +1 other test abort
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@gem_exec_suspend@basic-s4-devices.html

  * igt@gem_fence_thrash@bo-write-verify-none:
    - shard-dg2:          NOTRUN -> [SKIP][71] ([i915#4860])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@gem_fence_thrash@bo-write-verify-none.html

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

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][73] ([i915#4613]) +1 other test skip
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html
    - shard-dg1:          NOTRUN -> [SKIP][74] ([i915#12193])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs@lmem0:
    - shard-dg1:          NOTRUN -> [SKIP][75] ([i915#4565])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@gem_lmem_swapping@heavy-verify-multi-ccs@lmem0.html

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

  * igt@gem_lmem_swapping@massive-random:
    - shard-glk:          NOTRUN -> [SKIP][77] ([i915#4613])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-glk9/igt@gem_lmem_swapping@massive-random.html

  * igt@gem_lmem_swapping@smem-oom@lmem0:
    - shard-dg2-9:        NOTRUN -> [TIMEOUT][78] ([i915#5493]) +1 other test timeout
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_lmem_swapping@smem-oom@lmem0.html

  * igt@gem_lmem_swapping@verify:
    - shard-rkl:          NOTRUN -> [SKIP][79] ([i915#4613]) +1 other test skip
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@gem_lmem_swapping@verify.html

  * igt@gem_madvise@dontneed-before-exec:
    - shard-mtlp:         NOTRUN -> [SKIP][80] ([i915#3282]) +1 other test skip
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@gem_madvise@dontneed-before-exec.html

  * igt@gem_media_vme:
    - shard-rkl:          NOTRUN -> [SKIP][81] ([i915#284])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@gem_media_vme.html

  * igt@gem_mmap_gtt@big-copy:
    - shard-dg2:          NOTRUN -> [SKIP][82] ([i915#4077]) +2 other tests skip
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@gem_mmap_gtt@big-copy.html

  * igt@gem_mmap_gtt@cpuset-big-copy:
    - shard-dg2-9:        NOTRUN -> [SKIP][83] ([i915#4077]) +2 other tests skip
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_mmap_gtt@cpuset-big-copy.html

  * igt@gem_mmap_gtt@fault-concurrent-x:
    - shard-dg1:          NOTRUN -> [SKIP][84] ([i915#4077]) +1 other test skip
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@gem_mmap_gtt@fault-concurrent-x.html

  * igt@gem_mmap_wc@coherency:
    - shard-mtlp:         NOTRUN -> [SKIP][85] ([i915#4083]) +5 other tests skip
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@gem_mmap_wc@coherency.html

  * igt@gem_mmap_wc@invalid-flags:
    - shard-dg2-9:        NOTRUN -> [SKIP][86] ([i915#4083]) +1 other test skip
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_mmap_wc@invalid-flags.html

  * igt@gem_mmap_wc@write-read-distinct:
    - shard-dg1:          NOTRUN -> [SKIP][87] ([i915#4083])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@gem_mmap_wc@write-read-distinct.html

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

  * igt@gem_pread@self:
    - shard-dg2-9:        NOTRUN -> [SKIP][89] ([i915#3282])
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_pread@self.html

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

  * igt@gem_pxp@create-valid-protected-context:
    - shard-dg2:          NOTRUN -> [SKIP][91] ([i915#4270]) +1 other test skip
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@gem_pxp@create-valid-protected-context.html

  * igt@gem_pxp@display-protected-crc:
    - shard-rkl:          [PASS][92] -> [TIMEOUT][93] ([i915#12917] / [i915#12964])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-rkl-8/igt@gem_pxp@display-protected-crc.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-3/igt@gem_pxp@display-protected-crc.html

  * igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted:
    - shard-rkl:          NOTRUN -> [TIMEOUT][94] ([i915#12964])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@gem_pxp@dmabuf-shared-protected-dst-is-context-refcounted.html

  * igt@gem_pxp@hw-rejects-pxp-context:
    - shard-tglu:         NOTRUN -> [SKIP][95] ([i915#13398])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-7/igt@gem_pxp@hw-rejects-pxp-context.html

  * igt@gem_pxp@protected-encrypted-src-copy-not-readible:
    - shard-rkl:          NOTRUN -> [TIMEOUT][96] ([i915#12917] / [i915#12964]) +2 other tests timeout
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-3/igt@gem_pxp@protected-encrypted-src-copy-not-readible.html

  * igt@gem_pxp@protected-raw-src-copy-not-readible:
    - shard-dg1:          NOTRUN -> [SKIP][97] ([i915#4270])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@gem_pxp@protected-raw-src-copy-not-readible.html

  * igt@gem_pxp@verify-pxp-stale-buf-execution:
    - shard-dg2-9:        NOTRUN -> [SKIP][98] ([i915#4270]) +1 other test skip
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_pxp@verify-pxp-stale-buf-execution.html

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

  * igt@gem_render_copy@y-tiled-ccs-to-yf-tiled-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][100] ([i915#8428]) +2 other tests skip
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@gem_render_copy@y-tiled-ccs-to-yf-tiled-ccs.html

  * igt@gem_render_copy@yf-tiled-to-vebox-x-tiled:
    - shard-dg2-9:        NOTRUN -> [SKIP][101] ([i915#5190] / [i915#8428]) +2 other tests skip
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_render_copy@yf-tiled-to-vebox-x-tiled.html

  * igt@gem_set_tiling_vs_blt@untiled-to-tiled:
    - shard-mtlp:         NOTRUN -> [SKIP][102] ([i915#4079])
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@gem_set_tiling_vs_blt@untiled-to-tiled.html

  * igt@gem_set_tiling_vs_gtt:
    - shard-dg2:          NOTRUN -> [SKIP][103] ([i915#4079])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@gem_set_tiling_vs_gtt.html

  * igt@gem_softpin@evict-snoop-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][104] ([i915#4885])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@gem_softpin@evict-snoop-interruptible.html

  * igt@gem_tiled_partial_pwrite_pread@reads:
    - shard-rkl:          NOTRUN -> [SKIP][105] ([i915#3282]) +1 other test skip
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@gem_tiled_partial_pwrite_pread@reads.html

  * igt@gem_tiling_max_stride:
    - shard-mtlp:         NOTRUN -> [SKIP][106] ([i915#4077]) +5 other tests skip
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@gem_tiling_max_stride.html

  * igt@gem_userptr_blits@access-control:
    - shard-mtlp:         NOTRUN -> [SKIP][107] ([i915#3297])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@gem_userptr_blits@access-control.html

  * igt@gem_userptr_blits@create-destroy-unsync:
    - shard-rkl:          NOTRUN -> [SKIP][108] ([i915#3297]) +1 other test skip
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@gem_userptr_blits@create-destroy-unsync.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-tglu-1:       NOTRUN -> [SKIP][109] ([i915#3297])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@gem_userptr_blits@dmabuf-unsync.html

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

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap:
    - shard-dg2-9:        NOTRUN -> [SKIP][111] ([i915#3297] / [i915#4880])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@gem_userptr_blits@map-fixed-invalidate-overlap.html

  * igt@gen7_exec_parse@bitmasks:
    - shard-dg1:          NOTRUN -> [SKIP][112]
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@gen7_exec_parse@bitmasks.html

  * igt@gen9_exec_parse@basic-rejected:
    - shard-tglu:         NOTRUN -> [SKIP][113] ([i915#2527] / [i915#2856]) +2 other tests skip
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-7/igt@gen9_exec_parse@basic-rejected.html

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

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

  * igt@gen9_exec_parse@bb-start-far:
    - shard-dg2:          NOTRUN -> [SKIP][116] ([i915#2856])
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@gen9_exec_parse@bb-start-far.html

  * igt@gen9_exec_parse@shadow-peek:
    - shard-tglu-1:       NOTRUN -> [SKIP][117] ([i915#2527] / [i915#2856])
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@gen9_exec_parse@shadow-peek.html

  * igt@gen9_exec_parse@unaligned-jump:
    - shard-mtlp:         NOTRUN -> [SKIP][118] ([i915#2856]) +1 other test skip
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@gen9_exec_parse@unaligned-jump.html

  * igt@i915_hangman@hangcheck-unterminated:
    - shard-rkl:          [PASS][119] -> [DMESG-WARN][120] ([i915#12964]) +6 other tests dmesg-warn
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-rkl-5/igt@i915_hangman@hangcheck-unterminated.html
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@i915_hangman@hangcheck-unterminated.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-snb:          [PASS][121] -> [ABORT][122] ([i915#9820])
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-snb2/igt@i915_module_load@reload-with-fault-injection.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-snb1/igt@i915_module_load@reload-with-fault-injection.html
    - shard-mtlp:         NOTRUN -> [ABORT][123] ([i915#10131] / [i915#13592])
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_module_load@resize-bar:
    - shard-dg1:          NOTRUN -> [SKIP][124] ([i915#7178])
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@i915_module_load@resize-bar.html

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

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-rkl:          NOTRUN -> [FAIL][126] ([i915#12942]) +1 other test fail
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@i915_pm_rc6_residency@rc6-accuracy.html

  * igt@i915_pm_rps@thresholds-idle-park:
    - shard-mtlp:         NOTRUN -> [SKIP][127] ([i915#11681])
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@i915_pm_rps@thresholds-idle-park.html

  * igt@i915_query@hwconfig_table:
    - shard-rkl:          NOTRUN -> [SKIP][128] ([i915#6245])
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@i915_query@hwconfig_table.html

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

  * igt@i915_selftest@live:
    - shard-rkl:          [PASS][130] -> [DMESG-FAIL][131] ([i915#13550]) +1 other test dmesg-fail
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-rkl-3/igt@i915_selftest@live.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-6/igt@i915_selftest@live.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-tglu-1:       NOTRUN -> [INCOMPLETE][132] ([i915#7443])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@i915_suspend@basic-s3-without-i915.html
    - shard-dg1:          [PASS][133] -> [DMESG-WARN][134] ([i915#4391] / [i915#4423])
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-19/igt@i915_suspend@basic-s3-without-i915.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-13/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
    - shard-mtlp:         NOTRUN -> [SKIP][135] ([i915#5190])
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@invalid-smem-bo-on-discrete:
    - shard-tglu:         NOTRUN -> [SKIP][136] ([i915#12454] / [i915#12712])
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-7/igt@kms_addfb_basic@invalid-smem-bo-on-discrete.html

  * igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs-cc:
    - shard-dg2:          NOTRUN -> [SKIP][137] ([i915#8709]) +7 other tests skip
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-5/igt@kms_async_flips@async-flip-with-page-flip-events-atomic@pipe-b-hdmi-a-3-4-rc-ccs-cc.html

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-1-y-rc-ccs-cc:
    - shard-tglu:         NOTRUN -> [SKIP][138] ([i915#8709]) +3 other tests skip
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-1-y-rc-ccs-cc.html

  * igt@kms_async_flips@invalid-async-flip-atomic:
    - shard-mtlp:         NOTRUN -> [SKIP][139] ([i915#12967])
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_async_flips@invalid-async-flip-atomic.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-rkl:          NOTRUN -> [SKIP][140] ([i915#9531])
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_atomic_transition@plane-all-modeset-transition:
    - shard-mtlp:         NOTRUN -> [SKIP][141] ([i915#1769] / [i915#3555])
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_atomic_transition@plane-all-modeset-transition.html

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

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

  * igt@kms_big_fb@4-tiled-32bpp-rotate-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][144] ([i915#5286]) +1 other test skip
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_big_fb@4-tiled-32bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-addfb-size-overflow:
    - shard-dg1:          NOTRUN -> [SKIP][145] ([i915#5286])
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@kms_big_fb@4-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-rkl:          NOTRUN -> [SKIP][146] ([i915#5286]) +4 other tests skip
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-3/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0.html

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

  * igt@kms_big_fb@linear-8bpp-rotate-270:
    - shard-rkl:          NOTRUN -> [SKIP][148] ([i915#3638]) +3 other tests skip
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_big_fb@linear-8bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-270:
    - shard-dg2-9:        NOTRUN -> [SKIP][149] +3 other tests skip
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-dg2-9:        NOTRUN -> [SKIP][150] ([i915#4538] / [i915#5190]) +1 other test skip
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-dg2:          NOTRUN -> [SKIP][151] ([i915#4538] / [i915#5190]) +2 other tests skip
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-mtlp:         NOTRUN -> [SKIP][152] +9 other tests skip
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

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

  * igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-1:
    - shard-tglu-1:       NOTRUN -> [SKIP][154] ([i915#6095]) +14 other tests skip
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_ccs@bad-rotation-90-4-tiled-dg2-rc-ccs-cc@pipe-b-hdmi-a-1.html

  * igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs:
    - shard-rkl:          NOTRUN -> [SKIP][155] ([i915#12313])
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_ccs@bad-rotation-90-4-tiled-lnl-ccs.html

  * igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-1:
    - shard-dg2:          NOTRUN -> [SKIP][156] ([i915#10307] / [i915#10434] / [i915#6095]) +5 other tests skip
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@kms_ccs@ccs-on-another-bo-4-tiled-mtl-rc-ccs@pipe-d-hdmi-a-1.html

  * igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-a-hdmi-a-3:
    - shard-dg2:          NOTRUN -> [SKIP][157] ([i915#10307] / [i915#6095]) +189 other tests skip
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-2/igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-a-hdmi-a-3.html

  * igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs:
    - shard-mtlp:         NOTRUN -> [SKIP][158] ([i915#12313])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_ccs@crc-primary-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@crc-primary-basic-yf-tiled-ccs@pipe-c-hdmi-a-1:
    - shard-tglu:         NOTRUN -> [SKIP][159] ([i915#6095]) +64 other tests skip
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_ccs@crc-primary-basic-yf-tiled-ccs@pipe-c-hdmi-a-1.html

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

  * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2:
    - shard-rkl:          NOTRUN -> [SKIP][161] ([i915#6095]) +63 other tests skip
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs@pipe-b-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs@pipe-c-hdmi-a-2:
    - shard-dg2-9:        NOTRUN -> [SKIP][162] ([i915#10307] / [i915#6095]) +24 other tests skip
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_ccs@crc-primary-rotation-180-y-tiled-gen12-rc-ccs@pipe-c-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-4-tiled-lnl-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][163] ([i915#12805])
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/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][164] ([i915#12796]) +1 other test incomplete
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-glk9/igt@kms_ccs@crc-primary-suspend-y-tiled-ccs@pipe-a-hdmi-a-2.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1:
    - shard-glk:          [PASS][165] -> [INCOMPLETE][166] ([i915#12796])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-glk2/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-glk6/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-a-hdmi-a-1.html

  * igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-dp-3:
    - shard-dg2:          NOTRUN -> [SKIP][167] ([i915#6095]) +23 other tests skip
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-11/igt@kms_ccs@crc-primary-suspend-yf-tiled-ccs@pipe-c-dp-3.html

  * igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs:
    - shard-dg2-9:        NOTRUN -> [SKIP][168] ([i915#12313])
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-lnl-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][169] ([i915#6095]) +49 other tests skip
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/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-lnl-ccs:
    - shard-dg2:          NOTRUN -> [SKIP][170] ([i915#12313])
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_ccs@random-ccs-data-4-tiled-lnl-ccs.html

  * igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [SKIP][171] +41 other tests skip
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-glk9/igt@kms_ccs@random-ccs-data-4-tiled-mtl-rc-ccs@pipe-c-hdmi-a-1.html

  * igt@kms_cdclk@mode-transition-all-outputs:
    - shard-rkl:          NOTRUN -> [SKIP][172] ([i915#3742])
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_cdclk@mode-transition-all-outputs.html

  * igt@kms_cdclk@plane-scaling:
    - shard-tglu-1:       NOTRUN -> [SKIP][173] ([i915#3742])
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_cdclk@plane-scaling.html

  * igt@kms_chamelium_audio@dp-audio-edid:
    - shard-dg2:          NOTRUN -> [SKIP][174] ([i915#11151] / [i915#7828]) +2 other tests skip
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-4/igt@kms_chamelium_audio@dp-audio-edid.html

  * igt@kms_chamelium_audio@hdmi-audio-edid:
    - shard-tglu-1:       NOTRUN -> [SKIP][175] ([i915#11151] / [i915#7828]) +2 other tests skip
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_chamelium_audio@hdmi-audio-edid.html

  * igt@kms_chamelium_color@ctm-green-to-red:
    - shard-dg2:          NOTRUN -> [SKIP][176] +5 other tests skip
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_chamelium_color@ctm-green-to-red.html

  * igt@kms_chamelium_edid@dp-edid-resolution-list:
    - shard-dg2-9:        NOTRUN -> [SKIP][177] ([i915#11151] / [i915#7828]) +3 other tests skip
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_chamelium_edid@dp-edid-resolution-list.html

  * igt@kms_chamelium_edid@dp-edid-stress-resolution-4k:
    - shard-dg1:          NOTRUN -> [SKIP][178] ([i915#11151] / [i915#7828]) +1 other test skip
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@kms_chamelium_edid@dp-edid-stress-resolution-4k.html

  * igt@kms_chamelium_edid@vga-edid-read:
    - shard-mtlp:         NOTRUN -> [SKIP][179] ([i915#11151] / [i915#7828]) +3 other tests skip
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_chamelium_edid@vga-edid-read.html

  * igt@kms_chamelium_frames@hdmi-crc-multiple:
    - shard-rkl:          NOTRUN -> [SKIP][180] ([i915#11151] / [i915#7828]) +5 other tests skip
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_chamelium_frames@hdmi-crc-multiple.html

  * igt@kms_chamelium_hpd@vga-hpd-after-suspend:
    - shard-tglu:         NOTRUN -> [SKIP][181] ([i915#11151] / [i915#7828]) +4 other tests skip
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-7/igt@kms_chamelium_hpd@vga-hpd-after-suspend.html

  * igt@kms_content_protection@atomic@pipe-a-dp-4:
    - shard-dg2:          NOTRUN -> [FAIL][182] ([i915#7173]) +1 other test fail
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-10/igt@kms_content_protection@atomic@pipe-a-dp-4.html

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

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-rkl:          NOTRUN -> [SKIP][184] ([i915#3116])
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-dg2-9:        NOTRUN -> [SKIP][185] ([i915#3299])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@lic-type-0:
    - shard-tglu-1:       NOTRUN -> [SKIP][186] ([i915#6944] / [i915#9424]) +1 other test skip
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_content_protection@lic-type-0.html

  * igt@kms_content_protection@mei-interface:
    - shard-rkl:          NOTRUN -> [SKIP][187] ([i915#9424])
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_content_protection@mei-interface.html

  * igt@kms_content_protection@srm:
    - shard-mtlp:         NOTRUN -> [SKIP][188] ([i915#6944])
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_content_protection@srm.html

  * igt@kms_content_protection@uevent:
    - shard-mtlp:         NOTRUN -> [SKIP][189] ([i915#6944] / [i915#9424])
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-dg2:          NOTRUN -> [SKIP][190] ([i915#13049]) +1 other test skip
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_crc@cursor-random-32x10:
    - shard-tglu:         NOTRUN -> [SKIP][191] ([i915#3555]) +4 other tests skip
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_cursor_crc@cursor-random-32x10.html

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

  * igt@kms_cursor_crc@cursor-random-512x512:
    - shard-rkl:          NOTRUN -> [SKIP][193] ([i915#13049])
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_cursor_crc@cursor-random-512x512.html

  * igt@kms_cursor_crc@cursor-rapid-movement-max-size:
    - shard-rkl:          NOTRUN -> [SKIP][194] ([i915#3555]) +7 other tests skip
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_cursor_crc@cursor-rapid-movement-max-size.html

  * igt@kms_cursor_crc@cursor-sliding-256x85:
    - shard-mtlp:         NOTRUN -> [SKIP][195] ([i915#8814])
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_cursor_crc@cursor-sliding-256x85.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
    - shard-mtlp:         NOTRUN -> [SKIP][196] ([i915#9809]) +1 other test skip
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic:
    - shard-dg2:          NOTRUN -> [SKIP][197] ([i915#13046] / [i915#5354])
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-atomic.html

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

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - shard-mtlp:         NOTRUN -> [SKIP][199] ([i915#4213])
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - shard-rkl:          NOTRUN -> [SKIP][200] ([i915#4103]) +1 other test skip
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-3/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size:
    - shard-rkl:          NOTRUN -> [SKIP][201] +18 other tests skip
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot:
    - shard-rkl:          NOTRUN -> [SKIP][202] ([i915#9067])
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html

  * igt@kms_display_modes@extended-mode-basic:
    - shard-dg2-9:        NOTRUN -> [SKIP][203] ([i915#3555]) +3 other tests skip
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - shard-tglu:         NOTRUN -> [SKIP][204] ([i915#1769] / [i915#3555] / [i915#3804])
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

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

  * igt@kms_dp_aux_dev:
    - shard-dg2:          [PASS][206] -> [SKIP][207] ([i915#1257])
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg2-10/igt@kms_dp_aux_dev.html
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-2/igt@kms_dp_aux_dev.html

  * igt@kms_dsc@dsc-basic:
    - shard-rkl:          NOTRUN -> [SKIP][208] ([i915#3555] / [i915#3840]) +1 other test skip
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_dsc@dsc-basic.html

  * igt@kms_dsc@dsc-fractional-bpp-with-bpc:
    - shard-mtlp:         NOTRUN -> [SKIP][209] ([i915#3840])
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html

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

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

  * igt@kms_feature_discovery@chamelium:
    - shard-dg2-9:        NOTRUN -> [SKIP][212] ([i915#4854])
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_feature_discovery@chamelium.html

  * igt@kms_feature_discovery@display-3x:
    - shard-rkl:          NOTRUN -> [SKIP][213] ([i915#1839]) +1 other test skip
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_feature_discovery@display-3x.html

  * igt@kms_feature_discovery@dp-mst:
    - shard-mtlp:         NOTRUN -> [SKIP][214] ([i915#9337])
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_feature_discovery@dp-mst.html

  * igt@kms_feature_discovery@psr1:
    - shard-dg2:          NOTRUN -> [SKIP][215] ([i915#658])
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_feature_discovery@psr1.html

  * igt@kms_feature_discovery@psr2:
    - shard-tglu-1:       NOTRUN -> [SKIP][216] ([i915#658])
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_feature_discovery@psr2.html

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

  * igt@kms_flip@2x-dpms-vs-vblank-race:
    - shard-mtlp:         NOTRUN -> [SKIP][218] ([i915#3637]) +3 other tests skip
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_flip@2x-dpms-vs-vblank-race.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
    - shard-dg2-9:        NOTRUN -> [SKIP][219] ([i915#9934]) +2 other tests skip
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_flip@2x-plain-flip:
    - shard-dg1:          NOTRUN -> [SKIP][220] ([i915#9934]) +1 other test skip
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_flip@2x-plain-flip.html

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

  * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible:
    - shard-dg2:          NOTRUN -> [SKIP][222] ([i915#9934]) +1 other test skip
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset-interruptible.html

  * igt@kms_flip@2x-wf_vblank-ts-check-interruptible:
    - shard-rkl:          NOTRUN -> [SKIP][223] ([i915#9934]) +6 other tests skip
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html

  * igt@kms_flip@modeset-vs-vblank-race-interruptible@b-hdmi-a1:
    - shard-rkl:          NOTRUN -> [DMESG-WARN][224] ([i915#12964]) +14 other tests dmesg-warn
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_flip@modeset-vs-vblank-race-interruptible@b-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling:
    - shard-tglu:         NOTRUN -> [SKIP][225] ([i915#2672] / [i915#3555])
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-valid-mode:
    - shard-tglu:         NOTRUN -> [SKIP][226] ([i915#2587] / [i915#2672]) +2 other tests skip
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-64bpp-4tile-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling:
    - shard-dg2-9:        NOTRUN -> [SKIP][227] ([i915#2672] / [i915#3555]) +1 other test skip
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode:
    - shard-dg2-9:        NOTRUN -> [SKIP][228] ([i915#2672]) +1 other test skip
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode:
    - shard-mtlp:         NOTRUN -> [SKIP][229] ([i915#2672] / [i915#8813]) +1 other test skip
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
    - shard-tglu:         NOTRUN -> [SKIP][230] ([i915#2587] / [i915#2672] / [i915#3555]) +1 other test skip
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode:
    - shard-dg1:          NOTRUN -> [SKIP][231] ([i915#2587] / [i915#2672]) +6 other tests skip
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-17/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode.html

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

  * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
    - shard-rkl:          NOTRUN -> [SKIP][233] ([i915#2672]) +3 other tests skip
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling:
    - shard-dg1:          NOTRUN -> [SKIP][234] ([i915#3555])
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_flip_scaled_crc@flip-64bpp-linear-to-32bpp-linear-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling:
    - shard-dg1:          [PASS][235] -> [SKIP][236] ([i915#3555]) +4 other tests skip
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-16bpp-xtile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
    - shard-mtlp:         NOTRUN -> [SKIP][237] ([i915#2672] / [i915#3555] / [i915#8813]) +3 other tests skip
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][238] ([i915#8708]) +9 other tests skip
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render:
    - shard-dg2:          [PASS][239] -> [FAIL][240] ([i915#6880])
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg2-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-pwrite:
    - shard-dg2-9:        NOTRUN -> [SKIP][241] ([i915#5354]) +11 other tests skip
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc:
    - shard-tglu-1:       NOTRUN -> [SKIP][242] +30 other tests skip
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-blt:
    - shard-dg1:          [PASS][243] -> [SKIP][244] ([i915#4342]) +8 other tests skip
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-blt.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt:
    - shard-dg2-9:        NOTRUN -> [SKIP][245] ([i915#8708]) +9 other tests skip
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move:
    - shard-rkl:          NOTRUN -> [SKIP][246] ([i915#3023]) +21 other tests skip
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-move.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc:
    - shard-dg1:          NOTRUN -> [SKIP][247] ([i915#8708]) +1 other test skip
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu:
    - shard-mtlp:         NOTRUN -> [SKIP][248] ([i915#1825]) +20 other tests skip
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen:
    - shard-dg2:          NOTRUN -> [SKIP][249] ([i915#5354]) +9 other tests skip
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt:
    - shard-rkl:          NOTRUN -> [SKIP][250] ([i915#1825]) +33 other tests skip
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite:
    - shard-dg1:          NOTRUN -> [SKIP][251] ([i915#4342]) +6 other tests skip
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render:
    - shard-dg2-9:        NOTRUN -> [SKIP][252] ([i915#3458]) +5 other tests skip
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_frontbuffer_tracking@fbcpsr-rgb565-draw-render.html

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

  * igt@kms_frontbuffer_tracking@pipe-fbc-rte:
    - shard-dg2-9:        NOTRUN -> [SKIP][254] ([i915#9766])
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu:
    - shard-tglu:         NOTRUN -> [SKIP][255] +57 other tests skip
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-mtlp:         NOTRUN -> [SKIP][256] ([i915#8708]) +6 other tests skip
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary:
    - shard-dg2:          NOTRUN -> [SKIP][257] ([i915#3458]) +3 other tests skip
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@kms_frontbuffer_tracking@psr-indfb-scaledprimary.html

  * igt@kms_getfb@getfb-reject-ccs:
    - shard-dg2-9:        NOTRUN -> [SKIP][258] ([i915#6118])
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_getfb@getfb-reject-ccs.html

  * igt@kms_hdr@invalid-metadata-sizes:
    - shard-dg2-9:        NOTRUN -> [SKIP][259] ([i915#3555] / [i915#8228])
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_hdr@invalid-metadata-sizes.html

  * igt@kms_hdr@static-swap:
    - shard-tglu:         NOTRUN -> [SKIP][260] ([i915#3555] / [i915#8228])
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_hdr@static-swap.html

  * igt@kms_hdr@static-toggle:
    - shard-dg2:          NOTRUN -> [SKIP][261] ([i915#3555] / [i915#8228]) +1 other test skip
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_hdr@static-toggle.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-rkl:          NOTRUN -> [SKIP][262] ([i915#3555] / [i915#8228]) +1 other test skip
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-3/igt@kms_hdr@static-toggle-dpms.html

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

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][264] ([i915#12388])
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-3/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_joiner@basic-force-ultra-joiner:
    - shard-dg2:          NOTRUN -> [SKIP][265] ([i915#10656]) +1 other test skip
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_joiner@basic-force-ultra-joiner.html

  * igt@kms_joiner@basic-ultra-joiner:
    - shard-rkl:          NOTRUN -> [SKIP][266] ([i915#12339])
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@kms_joiner@basic-ultra-joiner.html

  * igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner:
    - shard-tglu:         NOTRUN -> [SKIP][267] ([i915#13522])
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_joiner@switch-modeset-ultra-joiner-big-joiner.html

  * igt@kms_multipipe_modeset@basic-max-pipe-crc-check:
    - shard-rkl:          NOTRUN -> [SKIP][268] ([i915#4070] / [i915#4816])
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_multipipe_modeset@basic-max-pipe-crc-check.html

  * igt@kms_panel_fitting@atomic-fastset:
    - shard-dg2:          NOTRUN -> [SKIP][269] ([i915#6301])
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-4/igt@kms_panel_fitting@atomic-fastset.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1:
    - shard-glk:          [PASS][270] -> [INCOMPLETE][271] ([i915#12756])
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-glk9/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1.html
   [271]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-glk4/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-a-hdmi-a-1.html

  * igt@kms_plane@plane-position-covered:
    - shard-dg1:          [PASS][272] -> [SKIP][273] ([i915#8825])
   [272]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_plane@plane-position-covered.html
   [273]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_plane@plane-position-covered.html

  * igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant:
    - shard-dg1:          [PASS][274] -> [SKIP][275] ([i915#7294])
   [274]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-17/igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant.html
   [275]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant.html

  * igt@kms_plane_lowres@tiling-y:
    - shard-mtlp:         NOTRUN -> [SKIP][276] ([i915#3555] / [i915#8821])
   [276]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_plane_lowres@tiling-y.html

  * igt@kms_plane_multiple@tiling-y:
    - shard-dg2:          NOTRUN -> [SKIP][277] ([i915#8806])
   [277]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_plane_multiple@tiling-y.html

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

  * igt@kms_plane_scaling@intel-max-src-size:
    - shard-dg2:          NOTRUN -> [SKIP][279] ([i915#6953] / [i915#9423])
   [279]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_plane_scaling@intel-max-src-size.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c:
    - shard-tglu:         NOTRUN -> [SKIP][280] ([i915#12247]) +9 other tests skip
   [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers:
    - shard-dg1:          NOTRUN -> [SKIP][281] ([i915#8152]) +1 other test skip
   [281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers.html

  * igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers@pipe-c:
    - shard-dg1:          NOTRUN -> [SKIP][282] ([i915#12247]) +2 other tests skip
   [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_plane_scaling@plane-downscale-factor-0-75-with-modifiers@pipe-c.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-b:
    - shard-dg1:          [PASS][283] -> [SKIP][284] ([i915#12247]) +8 other tests skip
   [283]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-19/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-b.html
   [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-b.html

  * igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-d:
    - shard-dg1:          [PASS][285] -> [SKIP][286] ([i915#8152]) +1 other test skip
   [285]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-19/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-d.html
   [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_plane_scaling@plane-scaler-unity-scaling-with-pixel-format@pipe-d.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation:
    - shard-tglu-1:       NOTRUN -> [SKIP][287] ([i915#3555])
   [287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b:
    - shard-tglu-1:       NOTRUN -> [SKIP][288] ([i915#12247]) +3 other tests skip
   [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation@pipe-b.html

  * igt@kms_plane_scaling@plane-upscale-factor-0-25-with-pixel-format:
    - shard-dg1:          [PASS][289] -> [DMESG-WARN][290] ([i915#4423]) +3 other tests dmesg-warn
   [289]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-18/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-pixel-format.html
   [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-14/igt@kms_plane_scaling@plane-upscale-factor-0-25-with-pixel-format.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25:
    - shard-dg2:          NOTRUN -> [SKIP][291] ([i915#12247] / [i915#6953] / [i915#9423])
   [291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@kms_plane_scaling@planes-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-a:
    - shard-rkl:          NOTRUN -> [SKIP][292] ([i915#12247]) +6 other tests skip
   [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-a.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a:
    - shard-mtlp:         NOTRUN -> [SKIP][293] ([i915#12247]) +14 other tests skip
   [293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-a.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d:
    - shard-dg2:          NOTRUN -> [SKIP][294] ([i915#12247]) +3 other tests skip
   [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-d.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20:
    - shard-dg1:          [PASS][295] -> [SKIP][296] ([i915#12247] / [i915#8152]) +3 other tests skip
   [295]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-14/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20.html
   [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-20x20.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25:
    - shard-dg2-9:        NOTRUN -> [SKIP][297] ([i915#12247] / [i915#6953] / [i915#9423])
   [297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d:
    - shard-dg2-9:        NOTRUN -> [SKIP][298] ([i915#12247]) +3 other tests skip
   [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-d.html

  * igt@kms_pm_backlight@basic-brightness:
    - shard-rkl:          NOTRUN -> [SKIP][299] ([i915#5354])
   [299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_pm_dc@dc3co-vpb-simulation:
    - shard-tglu:         NOTRUN -> [SKIP][300] ([i915#9685])
   [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-4/igt@kms_pm_dc@dc3co-vpb-simulation.html
    - shard-mtlp:         NOTRUN -> [SKIP][301] ([i915#9292])
   [301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_pm_dc@dc3co-vpb-simulation.html

  * igt@kms_pm_dc@dc5-psr:
    - shard-rkl:          NOTRUN -> [SKIP][302] ([i915#9685]) +1 other test skip
   [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_pm_dc@dc5-psr.html

  * igt@kms_pm_dc@dc5-retention-flops:
    - shard-dg1:          NOTRUN -> [SKIP][303] ([i915#3828])
   [303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@kms_pm_dc@dc5-retention-flops.html

  * igt@kms_pm_dc@dc6-dpms:
    - shard-tglu-1:       NOTRUN -> [FAIL][304] ([i915#9295])
   [304]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_pm_dc@dc6-dpms.html

  * igt@kms_pm_lpsp@kms-lpsp:
    - shard-rkl:          NOTRUN -> [SKIP][305] ([i915#3828])
   [305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@kms_pm_lpsp@kms-lpsp.html

  * igt@kms_pm_rpm@dpms-lpsp:
    - shard-dg2:          [PASS][306] -> [SKIP][307] ([i915#9519])
   [306]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg2-8/igt@kms_pm_rpm@dpms-lpsp.html
   [307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-7/igt@kms_pm_rpm@dpms-lpsp.html

  * igt@kms_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-tglu-1:       NOTRUN -> [SKIP][308] ([i915#9519])
   [308]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@kms_pm_rpm@modeset-lpsp-stress:
    - shard-dg1:          NOTRUN -> [SKIP][309] ([i915#9519])
   [309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@kms_pm_rpm@modeset-lpsp-stress.html

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

  * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf:
    - shard-glk:          NOTRUN -> [SKIP][311] ([i915#11520])
   [311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-glk9/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area@pipe-b-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][312] ([i915#12316]) +4 other tests skip
   [312]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area@pipe-b-edp-1.html

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

  * igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area@pipe-a-edp-1:
    - shard-mtlp:         NOTRUN -> [SKIP][314] ([i915#9808]) +1 other test skip
   [314]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_psr2_sf@fbc-psr2-primary-plane-update-sf-dmg-area@pipe-a-edp-1.html

  * igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf:
    - shard-rkl:          NOTRUN -> [SKIP][315] ([i915#11520]) +8 other tests skip
   [315]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_psr2_sf@pr-overlay-plane-update-continuous-sf.html

  * igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area:
    - shard-tglu:         NOTRUN -> [SKIP][316] ([i915#11520]) +5 other tests skip
   [316]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-7/igt@kms_psr2_sf@pr-overlay-primary-update-sf-dmg-area.html

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

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

  * igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf:
    - shard-dg2:          NOTRUN -> [SKIP][319] ([i915#11520]) +1 other test skip
   [319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@kms_psr2_sf@psr2-cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr@fbc-psr-primary-page-flip:
    - shard-dg2-9:        NOTRUN -> [SKIP][320] ([i915#1072] / [i915#9732]) +8 other tests skip
   [320]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_psr@fbc-psr-primary-page-flip.html

  * igt@kms_psr@fbc-psr2-cursor-mmap-cpu:
    - shard-mtlp:         NOTRUN -> [SKIP][321] ([i915#9688]) +6 other tests skip
   [321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_psr@fbc-psr2-cursor-mmap-cpu.html

  * igt@kms_psr@pr-cursor-mmap-gtt:
    - shard-tglu-1:       NOTRUN -> [SKIP][322] ([i915#9732]) +7 other tests skip
   [322]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-1/igt@kms_psr@pr-cursor-mmap-gtt.html

  * igt@kms_psr@pr-primary-mmap-gtt:
    - shard-dg1:          NOTRUN -> [SKIP][323] ([i915#1072] / [i915#9732]) +1 other test skip
   [323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@kms_psr@pr-primary-mmap-gtt.html

  * igt@kms_psr@psr-cursor-mmap-cpu:
    - shard-dg2:          NOTRUN -> [SKIP][324] ([i915#1072] / [i915#9732]) +7 other tests skip
   [324]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_psr@psr-cursor-mmap-cpu.html

  * igt@kms_psr@psr-primary-render:
    - shard-tglu:         NOTRUN -> [SKIP][325] ([i915#9732]) +16 other tests skip
   [325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-7/igt@kms_psr@psr-primary-render.html

  * igt@kms_psr@psr2-suspend:
    - shard-rkl:          NOTRUN -> [SKIP][326] ([i915#1072] / [i915#9732]) +15 other tests skip
   [326]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-4/igt@kms_psr@psr2-suspend.html

  * igt@kms_rotation_crc@bad-pixel-format:
    - shard-snb:          NOTRUN -> [SKIP][327] +125 other tests skip
   [327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-snb1/igt@kms_rotation_crc@bad-pixel-format.html

  * igt@kms_rotation_crc@exhaust-fences:
    - shard-mtlp:         NOTRUN -> [SKIP][328] ([i915#4235])
   [328]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_rotation_crc@exhaust-fences.html

  * igt@kms_rotation_crc@primary-rotation-90:
    - shard-mtlp:         NOTRUN -> [SKIP][329] ([i915#12755]) +1 other test skip
   [329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_rotation_crc@primary-rotation-90.html

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

  * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
    - shard-dg2-9:        NOTRUN -> [SKIP][331] ([i915#12755])
   [331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html

  * igt@kms_setmode@invalid-clone-exclusive-crtc:
    - shard-dg2:          NOTRUN -> [SKIP][332] ([i915#3555]) +2 other tests skip
   [332]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_setmode@invalid-clone-exclusive-crtc.html

  * igt@kms_sysfs_edid_timing:
    - shard-dg2:          [PASS][333] -> [FAIL][334] ([IGT#160])
   [333]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg2-10/igt@kms_sysfs_edid_timing.html
   [334]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-2/igt@kms_sysfs_edid_timing.html

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

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - shard-mtlp:         NOTRUN -> [SKIP][336] ([i915#8623])
   [336]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_vrr@flip-basic:
    - shard-mtlp:         NOTRUN -> [SKIP][337] ([i915#3555] / [i915#8808])
   [337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@kms_vrr@flip-basic.html

  * igt@kms_vrr@lobf:
    - shard-dg2-9:        NOTRUN -> [SKIP][338] ([i915#11920])
   [338]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_vrr@lobf.html

  * igt@kms_vrr@max-min:
    - shard-dg2-9:        NOTRUN -> [SKIP][339] ([i915#9906])
   [339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@kms_vrr@max-min.html

  * igt@kms_vrr@negative-basic:
    - shard-rkl:          NOTRUN -> [SKIP][340] ([i915#3555] / [i915#9906])
   [340]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-1/igt@kms_vrr@negative-basic.html

  * igt@kms_vrr@seamless-rr-switch-virtual:
    - shard-mtlp:         NOTRUN -> [SKIP][341] ([i915#8808] / [i915#9906])
   [341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_vrr@seamless-rr-switch-virtual.html

  * igt@kms_writeback@writeback-check-output:
    - shard-rkl:          NOTRUN -> [SKIP][342] ([i915#2437])
   [342]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@kms_writeback@writeback-check-output.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-dg2:          NOTRUN -> [SKIP][343] ([i915#2437])
   [343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@perf@global-sseu-config-invalid:
    - shard-mtlp:         NOTRUN -> [SKIP][344] ([i915#7387])
   [344]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@perf@global-sseu-config-invalid.html

  * igt@perf_pmu@busy-double-start@vecs1:
    - shard-dg2:          NOTRUN -> [FAIL][345] ([i915#4349]) +4 other tests fail
   [345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@perf_pmu@busy-double-start@vecs1.html

  * igt@perf_pmu@rc6-all-gts:
    - shard-dg2:          NOTRUN -> [SKIP][346] ([i915#8516])
   [346]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@perf_pmu@rc6-all-gts.html

  * igt@perf_pmu@semaphore-busy@bcs0:
    - shard-mtlp:         NOTRUN -> [FAIL][347] ([i915#4349]) +5 other tests fail
   [347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@perf_pmu@semaphore-busy@bcs0.html

  * igt@prime_vgem@basic-gtt:
    - shard-dg2:          NOTRUN -> [SKIP][348] ([i915#3708] / [i915#4077])
   [348]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@prime_vgem@basic-gtt.html

  * igt@prime_vgem@basic-read:
    - shard-rkl:          NOTRUN -> [SKIP][349] ([i915#3291] / [i915#3708])
   [349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@prime_vgem@basic-read.html

  * igt@prime_vgem@fence-flip-hang:
    - shard-rkl:          NOTRUN -> [SKIP][350] ([i915#3708])
   [350]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-7/igt@prime_vgem@fence-flip-hang.html

  * igt@prime_vgem@fence-read-hang:
    - shard-mtlp:         NOTRUN -> [SKIP][351] ([i915#3708]) +1 other test skip
   [351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@prime_vgem@fence-read-hang.html

  * igt@prime_vgem@fence-write-hang:
    - shard-dg1:          NOTRUN -> [SKIP][352] ([i915#3708])
   [352]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-15/igt@prime_vgem@fence-write-hang.html

  * igt@sriov_basic@bind-unbind-vf:
    - shard-rkl:          NOTRUN -> [SKIP][353] ([i915#9917])
   [353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-3/igt@sriov_basic@bind-unbind-vf.html

  * igt@tools_test@sysfs_l3_parity:
    - shard-dg2-9:        NOTRUN -> [SKIP][354] ([i915#4818])
   [354]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-9/igt@tools_test@sysfs_l3_parity.html

  
#### Possible fixes ####

  * igt@fbdev@eof:
    - shard-dg1:          [SKIP][355] ([i915#2582]) -> [PASS][356]
   [355]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@fbdev@eof.html
   [356]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@fbdev@eof.html

  * igt@gem_create@create-ext-cpu-access-big:
    - shard-dg2:          [ABORT][357] ([i915#13427]) -> [PASS][358]
   [357]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg2-11/igt@gem_create@create-ext-cpu-access-big.html
   [358]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-8/igt@gem_create@create-ext-cpu-access-big.html

  * igt@gem_eio@in-flight-contexts-immediate:
    - shard-mtlp:         [ABORT][359] ([i915#13193]) -> [PASS][360] +2 other tests pass
   [359]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-mtlp-4/igt@gem_eio@in-flight-contexts-immediate.html
   [360]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-1/igt@gem_eio@in-flight-contexts-immediate.html

  * igt@gem_pxp@verify-pxp-stale-buf-execution:
    - shard-rkl:          [TIMEOUT][361] ([i915#12917] / [i915#12964]) -> [PASS][362] +1 other test pass
   [361]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-rkl-1/igt@gem_pxp@verify-pxp-stale-buf-execution.html
   [362]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-8/igt@gem_pxp@verify-pxp-stale-buf-execution.html

  * igt@i915_pm_rps@reset:
    - shard-snb:          [INCOMPLETE][363] -> [PASS][364]
   [363]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-snb6/igt@i915_pm_rps@reset.html
   [364]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-snb4/igt@i915_pm_rps@reset.html

  * igt@i915_selftest@live@workarounds:
    - shard-mtlp:         [DMESG-FAIL][365] ([i915#12061]) -> [PASS][366] +1 other test pass
   [365]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-mtlp-6/igt@i915_selftest@live@workarounds.html
   [366]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-3/igt@i915_selftest@live@workarounds.html

  * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1:
    - shard-tglu:         [FAIL][367] ([i915#11808]) -> [PASS][368] +1 other test pass
   [367]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-tglu-6/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html
   [368]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-10/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-mtlp:         [FAIL][369] ([i915#5138]) -> [PASS][370]
   [369]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-mtlp-7/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
   [370]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_busy@basic:
    - shard-dg1:          [SKIP][371] ([i915#4303]) -> [PASS][372]
   [371]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_busy@basic.html
   [372]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-13/igt@kms_busy@basic.html

  * igt@kms_cursor_crc@cursor-onscreen-128x42:
    - shard-rkl:          [FAIL][373] ([i915#13566]) -> [PASS][374] +1 other test pass
   [373]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-rkl-1/igt@kms_cursor_crc@cursor-onscreen-128x42.html
   [374]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-3/igt@kms_cursor_crc@cursor-onscreen-128x42.html

  * igt@kms_cursor_crc@cursor-onscreen-256x85:
    - shard-tglu:         [FAIL][375] ([i915#13566]) -> [PASS][376] +1 other test pass
   [375]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-tglu-2/igt@kms_cursor_crc@cursor-onscreen-256x85.html
   [376]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-7/igt@kms_cursor_crc@cursor-onscreen-256x85.html

  * igt@kms_cursor_crc@cursor-random-128x42:
    - shard-dg1:          [SKIP][377] -> [PASS][378] +59 other tests pass
   [377]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_cursor_crc@cursor-random-128x42.html
   [378]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-17/igt@kms_cursor_crc@cursor-random-128x42.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-dg1:          [SKIP][379] ([i915#1849]) -> [PASS][380]
   [379]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_fbcon_fbt@fbc-suspend.html
   [380]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@a-hdmi-a2:
    - shard-glk:          [FAIL][381] -> [PASS][382] +1 other test pass
   [381]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-glk2/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@a-hdmi-a2.html
   [382]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-glk9/igt@kms_flip@flip-vs-absolute-wf_vblank-interruptible@a-hdmi-a2.html

  * igt@kms_flip@flip-vs-absolute-wf_vblank@a-hdmi-a1:
    - shard-tglu:         [FAIL][383] ([i915#11989]) -> [PASS][384] +3 other tests pass
   [383]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-tglu-4/igt@kms_flip@flip-vs-absolute-wf_vblank@a-hdmi-a1.html
   [384]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-tglu-9/igt@kms_flip@flip-vs-absolute-wf_vblank@a-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-dg1:          [DMESG-WARN][385] ([i915#4423]) -> [PASS][386] +1 other test pass
   [385]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-12/igt@kms_flip@flip-vs-suspend-interruptible.html
   [386]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-12/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_flip@wf_vblank-ts-check-interruptible:
    - shard-dg2:          [FAIL][387] ([i915#11989]) -> [PASS][388] +1 other test pass
   [387]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg2-10/igt@kms_flip@wf_vblank-ts-check-interruptible.html
   [388]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-3/igt@kms_flip@wf_vblank-ts-check-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render:
    - shard-dg1:          [SKIP][389] ([i915#4342]) -> [PASS][390] +6 other tests pass
   [389]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render.html
   [390]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-13/igt@kms_frontbuffer_tracking@fbc-rgb565-draw-render.html

  * igt@kms_hdr@static-toggle-suspend:
    - shard-dg2:          [SKIP][391] ([i915#3555] / [i915#8228]) -> [PASS][392] +1 other test pass
   [391]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg2-5/igt@kms_hdr@static-toggle-suspend.html
   [392]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-11/igt@kms_hdr@static-toggle-suspend.html

  * igt@kms_invalid_mode@uint-max-clock:
    - shard-dg1:          [SKIP][393] ([i915#3555]) -> [PASS][394] +2 other tests pass
   [393]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_invalid_mode@uint-max-clock.html
   [394]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-19/igt@kms_invalid_mode@uint-max-clock.html

  * igt@kms_joiner@basic-force-big-joiner:
    - shard-dg2:          [SKIP][395] ([i915#12388]) -> [PASS][396]
   [395]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg2-7/igt@kms_joiner@basic-force-big-joiner.html
   [396]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg2-10/igt@kms_joiner@basic-force-big-joiner.html

  * igt@kms_plane@plane-panning-top-left:
    - shard-dg1:          [SKIP][397] ([i915#8825]) -> [PASS][398]
   [397]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_plane@plane-panning-top-left.html
   [398]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-17/igt@kms_plane@plane-panning-top-left.html

  * igt@kms_plane_alpha_blend@alpha-transparent-fb:
    - shard-dg1:          [SKIP][399] ([i915#7294]) -> [PASS][400] +1 other test pass
   [399]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_plane_alpha_blend@alpha-transparent-fb.html
   [400]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-17/igt@kms_plane_alpha_blend@alpha-transparent-fb.html

  * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers:
    - shard-dg1:          [SKIP][401] ([i915#3555] / [i915#8152]) -> [PASS][402]
   [401]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers.html
   [402]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-13/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-modifiers.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5:
    - shard-dg1:          [SKIP][403] ([i915#12247] / [i915#6953] / [i915#8152]) -> [PASS][404] +1 other test pass
   [403]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_plane_scaling@planes-downscale-factor-0-5.html
   [404]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-17/igt@kms_plane_scaling@planes-downscale-factor-0-5.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling:
    - shard-dg1:          [SKIP][405] ([i915#12247] / [i915#8152]) -> [PASS][406] +3 other tests pass
   [405]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling.html
   [406]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-17/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-c:
    - shard-dg1:          [SKIP][407] ([i915#12247]) -> [PASS][408] +17 other tests pass
   [407]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-c.html
   [408]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-17/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-c.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25:
    - shard-dg1:          [SKIP][409] ([i915#3555] / [i915#6953] / [i915#8152]) -> [PASS][410] +1 other test pass
   [409]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_plane_scaling@planes-upscale-factor-0-25.html
   [410]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@kms_plane_scaling@planes-upscale-factor-0-25.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25@pipe-d:
    - shard-dg1:          [SKIP][411] ([i915#8152]) -> [PASS][412] +3 other tests pass
   [411]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_plane_scaling@planes-upscale-factor-0-25@pipe-d.html
   [412]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-18/igt@kms_plane_scaling@planes-upscale-factor-0-25@pipe-d.html

  * igt@kms_pm_dc@dc5-dpms-negative:
    - shard-rkl:          [DMESG-WARN][413] ([i915#12964]) -> [PASS][414] +5 other tests pass
   [413]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-rkl-1/igt@kms_pm_dc@dc5-dpms-negative.html
   [414]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-rkl-8/igt@kms_pm_dc@dc5-dpms-negative.html

  * igt@kms_pm_rpm@modeset-non-lpsp:
    - shard-dg1:          [SKIP][415] ([i915#9519]) -> [PASS][416] +1 other test pass
   [415]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_16117/shard-dg1-15/igt@kms_pm_rpm@modeset-non-lpsp.html
   [416]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_144725v1/shard-dg1-17/igt@kms_pm_rpm@modeset-non-lpsp.html

  * igt@kms_pm_rpm@system-suspend-modeset:
    - shard-dg1:          [SKIP][417] ([i915#3547] / [i915#9519]) -> [PASS][418]
   [417]: https://int

== Logs ==

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

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

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

end of thread, other threads:[~2025-02-12 22:37 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-12 13:14 [PATCH v7 0/7] drm/i915/fbc: FBC Dirty rect feature support Vinod Govindapillai
2025-02-12 13:14 ` [PATCH v7 1/7] drm/damage-helper: add const qualifier in drm_atomic_helper_damage_merged() Vinod Govindapillai
2025-02-12 13:14 ` [PATCH v7 2/7] drm/i915/xe3: update and store the plane damage clips Vinod Govindapillai
2025-02-12 18:35   ` Ville Syrjälä
2025-02-12 20:14     ` Govindapillai, Vinod
2025-02-12 20:42       ` Ville Syrjälä
2025-02-12 13:14 ` [PATCH v7 3/7] drm/i915/xe3: add register definitions for fbc dirty rect support Vinod Govindapillai
2025-02-12 13:14 ` [PATCH v7 4/7] drm/i915/xe3: introduce HAS_FBC_DIRTY_RECT() for FBC " Vinod Govindapillai
2025-02-12 13:14 ` [PATCH v7 5/7] drm/i915/xe3: avoid calling fbc activate if fbc is active Vinod Govindapillai
2025-02-12 18:30   ` Ville Syrjälä
2025-02-12 20:21     ` Govindapillai, Vinod
2025-02-12 13:14 ` [PATCH v7 6/7] drm/i915/xe3: dirty rect support for FBC Vinod Govindapillai
2025-02-12 18:42   ` Ville Syrjälä
2025-02-12 13:14 ` [PATCH v7 7/7] drm/i915/xe3: disable FBC if PSR2 selective fetch is enabled Vinod Govindapillai
2025-02-12 14:48 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/fbc: FBC Dirty rect feature support Patchwork
2025-02-12 14:48 ` ✗ Fi.CI.SPARSE: " Patchwork
2025-02-12 15:09 ` ✓ i915.CI.BAT: success " Patchwork
2025-02-12 22:37 ` ✗ i915.CI.Full: failure " Patchwork

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