All of lore.kernel.org
 help / color / mirror / Atom feed
* [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers
@ 2021-10-14 22:09 Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers Imre Deak
                   ` (18 more replies)
  0 siblings, 19 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila, Ville Syrjälä, Jani Nikula

This is v3 of [1] addressing review comments and adding r-b lines.

[1] https://patchwork.freedesktop.org/series/95579/

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>

Imre Deak (11):
  drm/i915: Add a table with a descriptor for all i915 modifiers
  drm/i915: Move intel_get_format_info() to intel_fb.c
  drm/i915: Add tiling attribute to the modifier descriptor
  drm/i915: Simplify the modifier check for interlaced scanout support
  drm/i915: Unexport is_semiplanar_uv_plane()
  drm/i915: Move intel_format_info_is_yuv_semiplanar() to intel_fb.c
  drm/i915: Add a platform independent way to get the RC CCS CC plane
  drm/i915: Handle CCS CC planes separately from CCS AUX planes
  drm/i915: Add a platform independent way to check for CCS AUX planes
  drm/i915: Move is_ccs_modifier() to intel_fb.c
  drm/i915: Add functions to check for RC CCS CC and MC CCS modifiers

 drivers/gpu/drm/i915/display/i9xx_plane.c     |  30 +-
 .../gpu/drm/i915/display/intel_atomic_plane.c |   1 +
 drivers/gpu/drm/i915/display/intel_cursor.c   |  19 +-
 drivers/gpu/drm/i915/display/intel_display.c  | 150 +----
 drivers/gpu/drm/i915/display/intel_display.h  |   3 -
 .../drm/i915/display/intel_display_types.h    |  17 -
 drivers/gpu/drm/i915/display/intel_fb.c       | 535 ++++++++++++++++--
 drivers/gpu/drm/i915/display/intel_fb.h       |  30 +-
 drivers/gpu/drm/i915/display/intel_sprite.c   |  35 +-
 drivers/gpu/drm/i915/display/skl_scaler.c     |   1 +
 .../drm/i915/display/skl_universal_plane.c    | 206 ++-----
 drivers/gpu/drm/i915/intel_pm.c               |   1 +
 12 files changed, 621 insertions(+), 407 deletions(-)

-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-15 18:04   ` Juha-Pekka Heikkila
  2021-10-20  9:40   ` Ville Syrjälä
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 02/11] drm/i915: Move intel_get_format_info() to intel_fb.c Imre Deak
                   ` (17 subsequent siblings)
  18 siblings, 2 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Ville Syrjälä, Juha-Pekka Heikkila, Jani Nikula

Add a table describing all the framebuffer modifiers used by i915 at one
place. This has the benefit of deduplicating the listing of supported
modifiers for each platform and checking the support of these modifiers
on a given plane. This also simplifies in a similar way getting some
attribute for a modifier, for instance checking if the modifier is a
CCS modifier type.

While at it drop the cursor plane filtering from skl_plane_has_rc_ccs(),
as the cursor plane is registered with DRM core elsewhere.

v1: Unchanged.
v2:
- Keep the plane caps calculation in the plane code and pass an enum
  with these caps to intel_fb_get_modifiers(). (Ville)
- Get the modifiers calling intel_fb_get_modifiers() in i9xx_plane.c as
  well.
v3:
- s/.id/.modifier/ (Ville)
- Keep modifier_desc vs. plane_cap filter conditions consistent. (Ville)
- Drop redundant cursor plane check from skl_plane_has_rc_ccs(). (Ville)
- Use from, until display version fields in modifier_desc instead of a mask. (Jani)
- Unexport struct intel_modifier_desc, separate its decl and init. (Jani)
- Remove enum pipe, plane_id forward decls from intel_fb.h, which are
  not needed after v2.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> (v2)
---
 drivers/gpu/drm/i915/display/i9xx_plane.c     |  30 +--
 drivers/gpu/drm/i915/display/intel_cursor.c   |  19 +-
 .../drm/i915/display/intel_display_types.h    |   1 -
 drivers/gpu/drm/i915/display/intel_fb.c       | 159 ++++++++++++++++
 drivers/gpu/drm/i915/display/intel_fb.h       |  13 ++
 drivers/gpu/drm/i915/display/intel_sprite.c   |  35 +---
 drivers/gpu/drm/i915/display/skl_scaler.c     |   1 +
 .../drm/i915/display/skl_universal_plane.c    | 178 +++++-------------
 8 files changed, 252 insertions(+), 184 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
index b1439ba78f67b..a939accff7ee2 100644
--- a/drivers/gpu/drm/i915/display/i9xx_plane.c
+++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
@@ -60,22 +60,11 @@ static const u32 vlv_primary_formats[] = {
 	DRM_FORMAT_XBGR16161616F,
 };
 
-static const u64 i9xx_format_modifiers[] = {
-	I915_FORMAT_MOD_X_TILED,
-	DRM_FORMAT_MOD_LINEAR,
-	DRM_FORMAT_MOD_INVALID
-};
-
 static bool i8xx_plane_format_mod_supported(struct drm_plane *_plane,
 					    u32 format, u64 modifier)
 {
-	switch (modifier) {
-	case DRM_FORMAT_MOD_LINEAR:
-	case I915_FORMAT_MOD_X_TILED:
-		break;
-	default:
+	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
 		return false;
-	}
 
 	switch (format) {
 	case DRM_FORMAT_C8:
@@ -92,13 +81,8 @@ static bool i8xx_plane_format_mod_supported(struct drm_plane *_plane,
 static bool i965_plane_format_mod_supported(struct drm_plane *_plane,
 					    u32 format, u64 modifier)
 {
-	switch (modifier) {
-	case DRM_FORMAT_MOD_LINEAR:
-	case I915_FORMAT_MOD_X_TILED:
-		break;
-	default:
+	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
 		return false;
-	}
 
 	switch (format) {
 	case DRM_FORMAT_C8:
@@ -768,6 +752,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
 	struct intel_plane *plane;
 	const struct drm_plane_funcs *plane_funcs;
 	unsigned int supported_rotations;
+	const u64 *modifiers;
 	const u32 *formats;
 	int num_formats;
 	int ret, zpos;
@@ -875,21 +860,26 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
 		plane->disable_flip_done = ilk_primary_disable_flip_done;
 	}
 
+	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_TILING);
+
 	if (DISPLAY_VER(dev_priv) >= 5 || IS_G4X(dev_priv))
 		ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
 					       0, plane_funcs,
 					       formats, num_formats,
-					       i9xx_format_modifiers,
+					       modifiers,
 					       DRM_PLANE_TYPE_PRIMARY,
 					       "primary %c", pipe_name(pipe));
 	else
 		ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
 					       0, plane_funcs,
 					       formats, num_formats,
-					       i9xx_format_modifiers,
+					       modifiers,
 					       DRM_PLANE_TYPE_PRIMARY,
 					       "plane %c",
 					       plane_name(plane->i9xx_plane));
+
+	kfree(modifiers);
+
 	if (ret)
 		goto fail;
 
diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
index 11842f2126130..6b08d8bca5cd4 100644
--- a/drivers/gpu/drm/i915/display/intel_cursor.c
+++ b/drivers/gpu/drm/i915/display/intel_cursor.c
@@ -28,11 +28,6 @@ static const u32 intel_cursor_formats[] = {
 	DRM_FORMAT_ARGB8888,
 };
 
-static const u64 cursor_format_modifiers[] = {
-	DRM_FORMAT_MOD_LINEAR,
-	DRM_FORMAT_MOD_INVALID
-};
-
 static u32 intel_cursor_base(const struct intel_plane_state *plane_state)
 {
 	struct drm_i915_private *dev_priv =
@@ -605,8 +600,10 @@ static bool i9xx_cursor_get_hw_state(struct intel_plane *plane,
 static bool intel_cursor_format_mod_supported(struct drm_plane *_plane,
 					      u32 format, u64 modifier)
 {
-	return modifier == DRM_FORMAT_MOD_LINEAR &&
-		format == DRM_FORMAT_ARGB8888;
+	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
+		return false;
+
+	return format == DRM_FORMAT_ARGB8888;
 }
 
 static int
@@ -754,6 +751,7 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
 {
 	struct intel_plane *cursor;
 	int ret, zpos;
+	u64 *modifiers;
 
 	cursor = intel_plane_alloc();
 	if (IS_ERR(cursor))
@@ -784,13 +782,18 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
 	if (IS_I845G(dev_priv) || IS_I865G(dev_priv) || HAS_CUR_FBC(dev_priv))
 		cursor->cursor.size = ~0;
 
+	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_NO_CAPS);
+
 	ret = drm_universal_plane_init(&dev_priv->drm, &cursor->base,
 				       0, &intel_cursor_plane_funcs,
 				       intel_cursor_formats,
 				       ARRAY_SIZE(intel_cursor_formats),
-				       cursor_format_modifiers,
+				       modifiers,
 				       DRM_PLANE_TYPE_CURSOR,
 				       "cursor %c", pipe_name(pipe));
+
+	kfree(modifiers);
+
 	if (ret)
 		goto fail;
 
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 39e11eaec1a3f..50b4264f61d62 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1336,7 +1336,6 @@ struct intel_plane {
 	enum plane_id id;
 	enum pipe pipe;
 	bool has_fbc;
-	bool has_ccs;
 	bool need_async_flip_disable_wa;
 	u32 frontbuffer_bit;
 
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index fa1f375e696bf..015d0655e65e3 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -13,6 +13,165 @@
 
 #define check_array_bounds(i915, a, i) drm_WARN_ON(&(i915)->drm, (i) >= ARRAY_SIZE(a))
 
+struct intel_modifier_desc {
+	u64 modifier;
+	struct {
+		u8 from;
+		u8 until;
+	} display_ver;
+#define DISPLAY_VER_ALL		{ 0, -1 }
+
+	u8 is_linear:1;
+
+	struct {
+#define INTEL_CCS_RC		BIT(0)
+#define INTEL_CCS_RC_CC		BIT(1)
+#define INTEL_CCS_MC		BIT(2)
+
+#define INTEL_CCS_ANY		(INTEL_CCS_RC | INTEL_CCS_RC_CC | INTEL_CCS_MC)
+		u8 type:3;
+	} ccs;
+};
+
+static const struct intel_modifier_desc intel_modifiers[] = {
+	{
+		.modifier = DRM_FORMAT_MOD_LINEAR,
+		.display_ver = DISPLAY_VER_ALL,
+
+		.is_linear = true,
+	},
+	{
+		.modifier = I915_FORMAT_MOD_X_TILED,
+		.display_ver = DISPLAY_VER_ALL,
+	},
+	{
+		.modifier = I915_FORMAT_MOD_Y_TILED,
+		.display_ver = { 9, 13 },
+	},
+	{
+		.modifier = I915_FORMAT_MOD_Yf_TILED,
+		.display_ver = { 9, 11 },
+	},
+	{
+		.modifier = I915_FORMAT_MOD_Y_TILED_CCS,
+		.display_ver = { 9, 11 },
+
+		.ccs.type = INTEL_CCS_RC,
+	},
+	{
+		.modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
+		.display_ver = { 9, 11 },
+
+		.ccs.type = INTEL_CCS_RC,
+	},
+	{
+		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
+		.display_ver = { 12, 13 },
+
+		.ccs.type = INTEL_CCS_RC,
+	},
+	{
+		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
+		.display_ver = { 12, 13 },
+
+		.ccs.type = INTEL_CCS_RC_CC,
+	},
+	{
+		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
+		.display_ver = { 12, 13 },
+
+		.ccs.type = INTEL_CCS_MC,
+	},
+};
+
+static bool is_ccs_type_modifier(const struct intel_modifier_desc *md, u8 ccs_type)
+{
+	return md->ccs.type & ccs_type;
+}
+
+static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
+				       u8 display_ver)
+{
+	return display_ver >= md->display_ver.from &&
+	       display_ver <= md->display_ver.until;
+}
+
+static bool plane_has_modifier(struct drm_i915_private *i915,
+			       enum intel_plane_caps plane_caps,
+			       const struct intel_modifier_desc *md)
+{
+	if (!check_modifier_display_ver(md, DISPLAY_VER(i915)))
+		return false;
+
+	if (!md->is_linear &&
+	    !(plane_caps & PLANE_HAS_TILING))
+		return false;
+
+	if (is_ccs_type_modifier(md, INTEL_CCS_RC | INTEL_CCS_RC_CC) &&
+	    !(plane_caps & PLANE_HAS_CCS_RC))
+		return false;
+
+	if (is_ccs_type_modifier(md, INTEL_CCS_MC) &&
+	    !(plane_caps & PLANE_HAS_CCS_MC))
+		return false;
+
+	return true;
+}
+
+/**
+ * intel_fb_plane_get_modifiers: Get the modifiers for the given platform and plane capabilities
+ * @i915: i915 device instance
+ * @plane_caps: capabilities for the plane the modifiers are queried for
+ *
+ * Returns:
+ * Returns the list of modifiers allowed by the @i915 platform and @plane_caps.
+ * The caller must free the returned buffer.
+ */
+u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
+				  enum intel_plane_caps plane_caps)
+{
+	u64 *list, *p;
+	int count = 1;		/* +1 for invalid modifier terminator */
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
+		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
+			count++;
+	}
+
+	list = kmalloc_array(count, sizeof(*list), GFP_KERNEL);
+	if (drm_WARN_ON(&i915->drm, !list))
+		return NULL;
+
+	p = list;
+	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
+		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
+			*p++ = intel_modifiers[i].modifier;
+	}
+	*p++ = DRM_FORMAT_MOD_INVALID;
+
+	return list;
+}
+
+/**
+ * intel_fb_plane_supports_modifier: Determine if a modifier is supported by the given plane
+ * @plane: Plane to check the modifier support for
+ * @modifier: The modifier to check the support for
+ *
+ * Returns:
+ * %true if the @modifier is supported on @plane.
+ */
+bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier)
+{
+	int i;
+
+	for (i = 0; i < plane->base.modifier_count; i++)
+		if (plane->base.modifiers[i] == modifier)
+			return true;
+
+	return false;
+}
+
 bool is_ccs_plane(const struct drm_framebuffer *fb, int plane)
 {
 	if (!is_ccs_modifier(fb->modifier))
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index 1cbdd84502bdd..0f77e81e69d29 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -6,6 +6,7 @@
 #ifndef __INTEL_FB_H__
 #define __INTEL_FB_H__
 
+#include <linux/bits.h>
 #include <linux/types.h>
 
 struct drm_device;
@@ -16,13 +17,25 @@ struct drm_i915_private;
 struct drm_mode_fb_cmd2;
 struct intel_fb_view;
 struct intel_framebuffer;
+struct intel_plane;
 struct intel_plane_state;
 
+enum intel_plane_caps {
+	PLANE_HAS_NO_CAPS = 0,
+	PLANE_HAS_TILING = BIT(0),
+	PLANE_HAS_CCS_RC = BIT(1),
+	PLANE_HAS_CCS_MC = BIT(2),
+};
+
 bool is_ccs_plane(const struct drm_framebuffer *fb, int plane);
 bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane);
 bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane);
 bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane);
 
+u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
+				  enum intel_plane_caps plane_caps);
+bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
+
 bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane);
 
 int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane);
diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
index 08116f41da26a..2f4f47ab9da03 100644
--- a/drivers/gpu/drm/i915/display/intel_sprite.c
+++ b/drivers/gpu/drm/i915/display/intel_sprite.c
@@ -45,6 +45,7 @@
 #include "intel_atomic_plane.h"
 #include "intel_de.h"
 #include "intel_display_types.h"
+#include "intel_fb.h"
 #include "intel_frontbuffer.h"
 #include "intel_sprite.h"
 #include "i9xx_plane.h"
@@ -1575,12 +1576,6 @@ static const u32 g4x_plane_formats[] = {
 	DRM_FORMAT_VYUY,
 };
 
-static const u64 i9xx_plane_format_modifiers[] = {
-	I915_FORMAT_MOD_X_TILED,
-	DRM_FORMAT_MOD_LINEAR,
-	DRM_FORMAT_MOD_INVALID
-};
-
 static const u32 snb_plane_formats[] = {
 	DRM_FORMAT_XRGB8888,
 	DRM_FORMAT_XBGR8888,
@@ -1629,13 +1624,8 @@ static const u32 chv_pipe_b_sprite_formats[] = {
 static bool g4x_sprite_format_mod_supported(struct drm_plane *_plane,
 					    u32 format, u64 modifier)
 {
-	switch (modifier) {
-	case DRM_FORMAT_MOD_LINEAR:
-	case I915_FORMAT_MOD_X_TILED:
-		break;
-	default:
+	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
 		return false;
-	}
 
 	switch (format) {
 	case DRM_FORMAT_XRGB8888:
@@ -1655,13 +1645,8 @@ static bool g4x_sprite_format_mod_supported(struct drm_plane *_plane,
 static bool snb_sprite_format_mod_supported(struct drm_plane *_plane,
 					    u32 format, u64 modifier)
 {
-	switch (modifier) {
-	case DRM_FORMAT_MOD_LINEAR:
-	case I915_FORMAT_MOD_X_TILED:
-		break;
-	default:
+	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
 		return false;
-	}
 
 	switch (format) {
 	case DRM_FORMAT_XRGB8888:
@@ -1686,13 +1671,8 @@ static bool snb_sprite_format_mod_supported(struct drm_plane *_plane,
 static bool vlv_sprite_format_mod_supported(struct drm_plane *_plane,
 					    u32 format, u64 modifier)
 {
-	switch (modifier) {
-	case DRM_FORMAT_MOD_LINEAR:
-	case I915_FORMAT_MOD_X_TILED:
-		break;
-	default:
+	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
 		return false;
-	}
 
 	switch (format) {
 	case DRM_FORMAT_C8:
@@ -1776,7 +1756,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
 			formats = vlv_plane_formats;
 			num_formats = ARRAY_SIZE(vlv_plane_formats);
 		}
-		modifiers = i9xx_plane_format_modifiers;
 
 		plane_funcs = &vlv_sprite_funcs;
 	} else if (DISPLAY_VER(dev_priv) >= 7) {
@@ -1795,7 +1774,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
 
 		formats = snb_plane_formats;
 		num_formats = ARRAY_SIZE(snb_plane_formats);
-		modifiers = i9xx_plane_format_modifiers;
 
 		plane_funcs = &snb_sprite_funcs;
 	} else {
@@ -1806,7 +1784,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
 		plane->max_stride = g4x_sprite_max_stride;
 		plane->min_cdclk = g4x_sprite_min_cdclk;
 
-		modifiers = i9xx_plane_format_modifiers;
 		if (IS_SANDYBRIDGE(dev_priv)) {
 			formats = snb_plane_formats;
 			num_formats = ARRAY_SIZE(snb_plane_formats);
@@ -1833,11 +1810,15 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
 	plane->id = PLANE_SPRITE0 + sprite;
 	plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, plane->id);
 
+	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_TILING);
+
 	ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
 				       0, plane_funcs,
 				       formats, num_formats, modifiers,
 				       DRM_PLANE_TYPE_OVERLAY,
 				       "sprite %c", sprite_name(pipe, sprite));
+	kfree(modifiers);
+
 	if (ret)
 		goto fail;
 
diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
index 37eabeff8197f..c2e94118566b6 100644
--- a/drivers/gpu/drm/i915/display/skl_scaler.c
+++ b/drivers/gpu/drm/i915/display/skl_scaler.c
@@ -4,6 +4,7 @@
  */
 #include "intel_de.h"
 #include "intel_display_types.h"
+#include "intel_fb.h"
 #include "skl_scaler.h"
 #include "skl_universal_plane.h"
 
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index a0e53a3b267aa..264b9a422a224 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -163,50 +163,6 @@ static const u32 icl_hdr_plane_formats[] = {
 	DRM_FORMAT_XVYU16161616,
 };
 
-static const u64 skl_plane_format_modifiers_noccs[] = {
-	I915_FORMAT_MOD_Yf_TILED,
-	I915_FORMAT_MOD_Y_TILED,
-	I915_FORMAT_MOD_X_TILED,
-	DRM_FORMAT_MOD_LINEAR,
-	DRM_FORMAT_MOD_INVALID
-};
-
-static const u64 skl_plane_format_modifiers_ccs[] = {
-	I915_FORMAT_MOD_Yf_TILED_CCS,
-	I915_FORMAT_MOD_Y_TILED_CCS,
-	I915_FORMAT_MOD_Yf_TILED,
-	I915_FORMAT_MOD_Y_TILED,
-	I915_FORMAT_MOD_X_TILED,
-	DRM_FORMAT_MOD_LINEAR,
-	DRM_FORMAT_MOD_INVALID
-};
-
-static const u64 gen12_plane_format_modifiers_mc_ccs[] = {
-	I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
-	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
-	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
-	I915_FORMAT_MOD_Y_TILED,
-	I915_FORMAT_MOD_X_TILED,
-	DRM_FORMAT_MOD_LINEAR,
-	DRM_FORMAT_MOD_INVALID
-};
-
-static const u64 gen12_plane_format_modifiers_rc_ccs[] = {
-	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
-	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
-	I915_FORMAT_MOD_Y_TILED,
-	I915_FORMAT_MOD_X_TILED,
-	DRM_FORMAT_MOD_LINEAR,
-	DRM_FORMAT_MOD_INVALID
-};
-
-static const u64 adlp_step_a_plane_format_modifiers[] = {
-	I915_FORMAT_MOD_Y_TILED,
-	I915_FORMAT_MOD_X_TILED,
-	DRM_FORMAT_MOD_LINEAR,
-	DRM_FORMAT_MOD_INVALID
-};
-
 int skl_format_to_fourcc(int format, bool rgb_order, bool alpha)
 {
 	switch (format) {
@@ -1870,42 +1826,13 @@ static const u32 *icl_get_plane_formats(struct drm_i915_private *dev_priv,
 	}
 }
 
-static bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
-			      enum pipe pipe, enum plane_id plane_id)
-{
-	if (plane_id == PLANE_CURSOR)
-		return false;
-
-	if (DISPLAY_VER(dev_priv) >= 11)
-		return true;
-
-	if (IS_GEMINILAKE(dev_priv))
-		return pipe != PIPE_C;
-
-	return pipe != PIPE_C &&
-		(plane_id == PLANE_PRIMARY ||
-		 plane_id == PLANE_SPRITE0);
-}
-
 static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
 					   u32 format, u64 modifier)
 {
 	struct intel_plane *plane = to_intel_plane(_plane);
 
-	switch (modifier) {
-	case DRM_FORMAT_MOD_LINEAR:
-	case I915_FORMAT_MOD_X_TILED:
-	case I915_FORMAT_MOD_Y_TILED:
-	case I915_FORMAT_MOD_Yf_TILED:
-		break;
-	case I915_FORMAT_MOD_Y_TILED_CCS:
-	case I915_FORMAT_MOD_Yf_TILED_CCS:
-		if (!plane->has_ccs)
-			return false;
-		break;
-	default:
+	if (!intel_fb_plane_supports_modifier(plane, modifier))
 		return false;
-	}
 
 	switch (format) {
 	case DRM_FORMAT_XRGB8888:
@@ -1953,45 +1880,13 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
 	}
 }
 
-static bool gen12_plane_supports_mc_ccs(struct drm_i915_private *dev_priv,
-					enum plane_id plane_id)
-{
-	/* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */
-	if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv) ||
-	    IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_D0))
-		return false;
-
-	/* Wa_22011186057 */
-	if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
-		return false;
-
-	return plane_id < PLANE_SPRITE4;
-}
-
 static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
 					     u32 format, u64 modifier)
 {
-	struct drm_i915_private *dev_priv = to_i915(_plane->dev);
 	struct intel_plane *plane = to_intel_plane(_plane);
 
-	switch (modifier) {
-	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
-		if (!gen12_plane_supports_mc_ccs(dev_priv, plane->id))
-			return false;
-		fallthrough;
-	case DRM_FORMAT_MOD_LINEAR:
-	case I915_FORMAT_MOD_X_TILED:
-	case I915_FORMAT_MOD_Y_TILED:
-		break;
-	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
-	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
-		/* Wa_22011186057 */
-		if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
-			return false;
-		break;
-	default:
+	if (!intel_fb_plane_supports_modifier(plane, modifier))
 		return false;
-	}
 
 	switch (format) {
 	case DRM_FORMAT_XRGB8888:
@@ -2039,18 +1934,6 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
 	}
 }
 
-static const u64 *gen12_get_plane_modifiers(struct drm_i915_private *dev_priv,
-					    enum plane_id plane_id)
-{
-	/* Wa_22011186057 */
-	if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
-		return adlp_step_a_plane_format_modifiers;
-	else if (gen12_plane_supports_mc_ccs(dev_priv, plane_id))
-		return gen12_plane_format_modifiers_mc_ccs;
-	else
-		return gen12_plane_format_modifiers_rc_ccs;
-}
-
 static const struct drm_plane_funcs skl_plane_funcs = {
 	.update_plane = drm_atomic_helper_update_plane,
 	.disable_plane = drm_atomic_helper_disable_plane,
@@ -2091,6 +1974,39 @@ skl_plane_disable_flip_done(struct intel_plane *plane)
 	spin_unlock_irq(&i915->irq_lock);
 }
 
+static bool skl_plane_has_rc_ccs(struct drm_i915_private *i915,
+				 enum pipe pipe, enum plane_id plane_id)
+{
+	/* Wa_22011186057 */
+	if (IS_ADLP_DISPLAY_STEP(i915, STEP_A0, STEP_B0))
+		return false;
+
+	if (DISPLAY_VER(i915) >= 11)
+		return true;
+
+	if (IS_GEMINILAKE(i915))
+		return pipe != PIPE_C;
+
+	return pipe != PIPE_C &&
+		(plane_id == PLANE_PRIMARY ||
+		 plane_id == PLANE_SPRITE0);
+}
+
+static bool gen12_plane_has_mc_ccs(struct drm_i915_private *i915,
+				   enum plane_id plane_id)
+{
+	/* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */
+	if (IS_DG1(i915) || IS_ROCKETLAKE(i915) ||
+	    IS_TGL_DISPLAY_STEP(i915, STEP_A0, STEP_D0))
+		return false;
+
+	/* Wa_22011186057 */
+	if (IS_ADLP_DISPLAY_STEP(i915, STEP_A0, STEP_B0))
+		return false;
+
+	return plane_id < PLANE_SPRITE4;
+}
+
 struct intel_plane *
 skl_universal_plane_create(struct drm_i915_private *dev_priv,
 			   enum pipe pipe, enum plane_id plane_id)
@@ -2098,6 +2014,7 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
 	const struct drm_plane_funcs *plane_funcs;
 	struct intel_plane *plane;
 	enum drm_plane_type plane_type;
+	enum intel_plane_caps plane_caps;
 	unsigned int supported_rotations;
 	unsigned int supported_csc;
 	const u64 *modifiers;
@@ -2159,29 +2076,34 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
 		formats = skl_get_plane_formats(dev_priv, pipe,
 						plane_id, &num_formats);
 
-	plane->has_ccs = skl_plane_has_ccs(dev_priv, pipe, plane_id);
-	if (DISPLAY_VER(dev_priv) >= 12) {
-		modifiers = gen12_get_plane_modifiers(dev_priv, plane_id);
+	if (DISPLAY_VER(dev_priv) >= 12)
 		plane_funcs = &gen12_plane_funcs;
-	} else {
-		if (plane->has_ccs)
-			modifiers = skl_plane_format_modifiers_ccs;
-		else
-			modifiers = skl_plane_format_modifiers_noccs;
+	else
 		plane_funcs = &skl_plane_funcs;
-	}
 
 	if (plane_id == PLANE_PRIMARY)
 		plane_type = DRM_PLANE_TYPE_PRIMARY;
 	else
 		plane_type = DRM_PLANE_TYPE_OVERLAY;
 
+	plane_caps = PLANE_HAS_TILING;
+	if (skl_plane_has_rc_ccs(dev_priv, pipe, plane_id))
+		plane_caps |= PLANE_HAS_CCS_RC;
+
+	if (gen12_plane_has_mc_ccs(dev_priv, plane_id))
+		plane_caps |= PLANE_HAS_CCS_MC;
+
+	modifiers = intel_fb_plane_get_modifiers(dev_priv, plane_caps);
+
 	ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
 				       0, plane_funcs,
 				       formats, num_formats, modifiers,
 				       plane_type,
 				       "plane %d%c", plane_id + 1,
 				       pipe_name(pipe));
+
+	kfree(modifiers);
+
 	if (ret)
 		goto fail;
 
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 02/11] drm/i915: Move intel_get_format_info() to intel_fb.c
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 03/11] drm/i915: Add tiling attribute to the modifier descriptor Imre Deak
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila, Ville Syrjälä

Move the function retrieving the format override information for a given
format/modifier to intel_fb.c. We can store a pointer to the format list
in each modifier's descriptor instead of the corresponding switch/case
logic, avoiding the listing of the modifiers twice.

v1: Unchanged.
v2: Handle invalid modifiers in intel_fb_get_format_info() passed from
    userspace. (CI/igt_kms_addfb_basic/addfb25-bad-modifier)
v3: Move lookup_modifier() to the next patch, where it's first used.

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 132 +---------------
 drivers/gpu/drm/i915/display/intel_fb.c      | 153 +++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_fb.h      |   3 +
 3 files changed, 157 insertions(+), 131 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index ff598b6cd9530..0f42beef2551e 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -897,136 +897,6 @@ void intel_add_fb_offsets(int *x, int *y,
 	*y += state->view.color_plane[color_plane].y;
 }
 
-/*
- * From the Sky Lake PRM:
- * "The Color Control Surface (CCS) contains the compression status of
- *  the cache-line pairs. The compression state of the cache-line pair
- *  is specified by 2 bits in the CCS. Each CCS cache-line represents
- *  an area on the main surface of 16 x16 sets of 128 byte Y-tiled
- *  cache-line-pairs. CCS is always Y tiled."
- *
- * Since cache line pairs refers to horizontally adjacent cache lines,
- * each cache line in the CCS corresponds to an area of 32x16 cache
- * lines on the main surface. Since each pixel is 4 bytes, this gives
- * us a ratio of one byte in the CCS for each 8x16 pixels in the
- * main surface.
- */
-static const struct drm_format_info skl_ccs_formats[] = {
-	{ .format = DRM_FORMAT_XRGB8888, .depth = 24, .num_planes = 2,
-	  .cpp = { 4, 1, }, .hsub = 8, .vsub = 16, },
-	{ .format = DRM_FORMAT_XBGR8888, .depth = 24, .num_planes = 2,
-	  .cpp = { 4, 1, }, .hsub = 8, .vsub = 16, },
-	{ .format = DRM_FORMAT_ARGB8888, .depth = 32, .num_planes = 2,
-	  .cpp = { 4, 1, }, .hsub = 8, .vsub = 16, .has_alpha = true, },
-	{ .format = DRM_FORMAT_ABGR8888, .depth = 32, .num_planes = 2,
-	  .cpp = { 4, 1, }, .hsub = 8, .vsub = 16, .has_alpha = true, },
-};
-
-/*
- * Gen-12 compression uses 4 bits of CCS data for each cache line pair in the
- * main surface. And each 64B CCS cache line represents an area of 4x1 Y-tiles
- * in the main surface. With 4 byte pixels and each Y-tile having dimensions of
- * 32x32 pixels, the ratio turns out to 1B in the CCS for every 2x32 pixels in
- * the main surface.
- */
-static const struct drm_format_info gen12_ccs_formats[] = {
-	{ .format = DRM_FORMAT_XRGB8888, .depth = 24, .num_planes = 2,
-	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
-	  .hsub = 1, .vsub = 1, },
-	{ .format = DRM_FORMAT_XBGR8888, .depth = 24, .num_planes = 2,
-	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
-	  .hsub = 1, .vsub = 1, },
-	{ .format = DRM_FORMAT_ARGB8888, .depth = 32, .num_planes = 2,
-	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
-	  .hsub = 1, .vsub = 1, .has_alpha = true },
-	{ .format = DRM_FORMAT_ABGR8888, .depth = 32, .num_planes = 2,
-	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
-	  .hsub = 1, .vsub = 1, .has_alpha = true },
-	{ .format = DRM_FORMAT_YUYV, .num_planes = 2,
-	  .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
-	  .hsub = 2, .vsub = 1, .is_yuv = true },
-	{ .format = DRM_FORMAT_YVYU, .num_planes = 2,
-	  .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
-	  .hsub = 2, .vsub = 1, .is_yuv = true },
-	{ .format = DRM_FORMAT_UYVY, .num_planes = 2,
-	  .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
-	  .hsub = 2, .vsub = 1, .is_yuv = true },
-	{ .format = DRM_FORMAT_VYUY, .num_planes = 2,
-	  .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
-	  .hsub = 2, .vsub = 1, .is_yuv = true },
-	{ .format = DRM_FORMAT_XYUV8888, .num_planes = 2,
-	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
-	  .hsub = 1, .vsub = 1, .is_yuv = true },
-	{ .format = DRM_FORMAT_NV12, .num_planes = 4,
-	  .char_per_block = { 1, 2, 1, 1 }, .block_w = { 1, 1, 4, 4 }, .block_h = { 1, 1, 1, 1 },
-	  .hsub = 2, .vsub = 2, .is_yuv = true },
-	{ .format = DRM_FORMAT_P010, .num_planes = 4,
-	  .char_per_block = { 2, 4, 1, 1 }, .block_w = { 1, 1, 2, 2 }, .block_h = { 1, 1, 1, 1 },
-	  .hsub = 2, .vsub = 2, .is_yuv = true },
-	{ .format = DRM_FORMAT_P012, .num_planes = 4,
-	  .char_per_block = { 2, 4, 1, 1 }, .block_w = { 1, 1, 2, 2 }, .block_h = { 1, 1, 1, 1 },
-	  .hsub = 2, .vsub = 2, .is_yuv = true },
-	{ .format = DRM_FORMAT_P016, .num_planes = 4,
-	  .char_per_block = { 2, 4, 1, 1 }, .block_w = { 1, 1, 2, 2 }, .block_h = { 1, 1, 1, 1 },
-	  .hsub = 2, .vsub = 2, .is_yuv = true },
-};
-
-/*
- * Same as gen12_ccs_formats[] above, but with additional surface used
- * to pass Clear Color information in plane 2 with 64 bits of data.
- */
-static const struct drm_format_info gen12_ccs_cc_formats[] = {
-	{ .format = DRM_FORMAT_XRGB8888, .depth = 24, .num_planes = 3,
-	  .char_per_block = { 4, 1, 0 }, .block_w = { 1, 2, 2 }, .block_h = { 1, 1, 1 },
-	  .hsub = 1, .vsub = 1, },
-	{ .format = DRM_FORMAT_XBGR8888, .depth = 24, .num_planes = 3,
-	  .char_per_block = { 4, 1, 0 }, .block_w = { 1, 2, 2 }, .block_h = { 1, 1, 1 },
-	  .hsub = 1, .vsub = 1, },
-	{ .format = DRM_FORMAT_ARGB8888, .depth = 32, .num_planes = 3,
-	  .char_per_block = { 4, 1, 0 }, .block_w = { 1, 2, 2 }, .block_h = { 1, 1, 1 },
-	  .hsub = 1, .vsub = 1, .has_alpha = true },
-	{ .format = DRM_FORMAT_ABGR8888, .depth = 32, .num_planes = 3,
-	  .char_per_block = { 4, 1, 0 }, .block_w = { 1, 2, 2 }, .block_h = { 1, 1, 1 },
-	  .hsub = 1, .vsub = 1, .has_alpha = true },
-};
-
-static const struct drm_format_info *
-lookup_format_info(const struct drm_format_info formats[],
-		   int num_formats, u32 format)
-{
-	int i;
-
-	for (i = 0; i < num_formats; i++) {
-		if (formats[i].format == format)
-			return &formats[i];
-	}
-
-	return NULL;
-}
-
-static const struct drm_format_info *
-intel_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
-{
-	switch (cmd->modifier[0]) {
-	case I915_FORMAT_MOD_Y_TILED_CCS:
-	case I915_FORMAT_MOD_Yf_TILED_CCS:
-		return lookup_format_info(skl_ccs_formats,
-					  ARRAY_SIZE(skl_ccs_formats),
-					  cmd->pixel_format);
-	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
-	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
-		return lookup_format_info(gen12_ccs_formats,
-					  ARRAY_SIZE(gen12_ccs_formats),
-					  cmd->pixel_format);
-	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
-		return lookup_format_info(gen12_ccs_cc_formats,
-					  ARRAY_SIZE(gen12_ccs_cc_formats),
-					  cmd->pixel_format);
-	default:
-		return NULL;
-	}
-}
-
 u32 intel_plane_fb_max_stride(struct drm_i915_private *dev_priv,
 			      u32 pixel_format, u64 modifier)
 {
@@ -10573,7 +10443,7 @@ intel_mode_valid_max_plane_size(struct drm_i915_private *dev_priv,
 
 static const struct drm_mode_config_funcs intel_mode_funcs = {
 	.fb_create = intel_user_framebuffer_create,
-	.get_format_info = intel_get_format_info,
+	.get_format_info = intel_fb_get_format_info,
 	.output_poll_changed = intel_fbdev_output_poll_changed,
 	.mode_valid = intel_mode_valid,
 	.atomic_check = intel_atomic_check,
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 015d0655e65e3..772a68a9f65b0 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -13,6 +13,99 @@
 
 #define check_array_bounds(i915, a, i) drm_WARN_ON(&(i915)->drm, (i) >= ARRAY_SIZE(a))
 
+/*
+ * From the Sky Lake PRM:
+ * "The Color Control Surface (CCS) contains the compression status of
+ *  the cache-line pairs. The compression state of the cache-line pair
+ *  is specified by 2 bits in the CCS. Each CCS cache-line represents
+ *  an area on the main surface of 16 x16 sets of 128 byte Y-tiled
+ *  cache-line-pairs. CCS is always Y tiled."
+ *
+ * Since cache line pairs refers to horizontally adjacent cache lines,
+ * each cache line in the CCS corresponds to an area of 32x16 cache
+ * lines on the main surface. Since each pixel is 4 bytes, this gives
+ * us a ratio of one byte in the CCS for each 8x16 pixels in the
+ * main surface.
+ */
+static const struct drm_format_info skl_ccs_formats[] = {
+	{ .format = DRM_FORMAT_XRGB8888, .depth = 24, .num_planes = 2,
+	  .cpp = { 4, 1, }, .hsub = 8, .vsub = 16, },
+	{ .format = DRM_FORMAT_XBGR8888, .depth = 24, .num_planes = 2,
+	  .cpp = { 4, 1, }, .hsub = 8, .vsub = 16, },
+	{ .format = DRM_FORMAT_ARGB8888, .depth = 32, .num_planes = 2,
+	  .cpp = { 4, 1, }, .hsub = 8, .vsub = 16, .has_alpha = true, },
+	{ .format = DRM_FORMAT_ABGR8888, .depth = 32, .num_planes = 2,
+	  .cpp = { 4, 1, }, .hsub = 8, .vsub = 16, .has_alpha = true, },
+};
+
+/*
+ * Gen-12 compression uses 4 bits of CCS data for each cache line pair in the
+ * main surface. And each 64B CCS cache line represents an area of 4x1 Y-tiles
+ * in the main surface. With 4 byte pixels and each Y-tile having dimensions of
+ * 32x32 pixels, the ratio turns out to 1B in the CCS for every 2x32 pixels in
+ * the main surface.
+ */
+static const struct drm_format_info gen12_ccs_formats[] = {
+	{ .format = DRM_FORMAT_XRGB8888, .depth = 24, .num_planes = 2,
+	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+	  .hsub = 1, .vsub = 1, },
+	{ .format = DRM_FORMAT_XBGR8888, .depth = 24, .num_planes = 2,
+	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+	  .hsub = 1, .vsub = 1, },
+	{ .format = DRM_FORMAT_ARGB8888, .depth = 32, .num_planes = 2,
+	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+	  .hsub = 1, .vsub = 1, .has_alpha = true },
+	{ .format = DRM_FORMAT_ABGR8888, .depth = 32, .num_planes = 2,
+	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+	  .hsub = 1, .vsub = 1, .has_alpha = true },
+	{ .format = DRM_FORMAT_YUYV, .num_planes = 2,
+	  .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+	  .hsub = 2, .vsub = 1, .is_yuv = true },
+	{ .format = DRM_FORMAT_YVYU, .num_planes = 2,
+	  .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+	  .hsub = 2, .vsub = 1, .is_yuv = true },
+	{ .format = DRM_FORMAT_UYVY, .num_planes = 2,
+	  .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+	  .hsub = 2, .vsub = 1, .is_yuv = true },
+	{ .format = DRM_FORMAT_VYUY, .num_planes = 2,
+	  .char_per_block = { 2, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+	  .hsub = 2, .vsub = 1, .is_yuv = true },
+	{ .format = DRM_FORMAT_XYUV8888, .num_planes = 2,
+	  .char_per_block = { 4, 1 }, .block_w = { 1, 2 }, .block_h = { 1, 1 },
+	  .hsub = 1, .vsub = 1, .is_yuv = true },
+	{ .format = DRM_FORMAT_NV12, .num_planes = 4,
+	  .char_per_block = { 1, 2, 1, 1 }, .block_w = { 1, 1, 4, 4 }, .block_h = { 1, 1, 1, 1 },
+	  .hsub = 2, .vsub = 2, .is_yuv = true },
+	{ .format = DRM_FORMAT_P010, .num_planes = 4,
+	  .char_per_block = { 2, 4, 1, 1 }, .block_w = { 1, 1, 2, 2 }, .block_h = { 1, 1, 1, 1 },
+	  .hsub = 2, .vsub = 2, .is_yuv = true },
+	{ .format = DRM_FORMAT_P012, .num_planes = 4,
+	  .char_per_block = { 2, 4, 1, 1 }, .block_w = { 1, 1, 2, 2 }, .block_h = { 1, 1, 1, 1 },
+	  .hsub = 2, .vsub = 2, .is_yuv = true },
+	{ .format = DRM_FORMAT_P016, .num_planes = 4,
+	  .char_per_block = { 2, 4, 1, 1 }, .block_w = { 1, 1, 2, 2 }, .block_h = { 1, 1, 1, 1 },
+	  .hsub = 2, .vsub = 2, .is_yuv = true },
+};
+
+/*
+ * Same as gen12_ccs_formats[] above, but with additional surface used
+ * to pass Clear Color information in plane 2 with 64 bits of data.
+ */
+static const struct drm_format_info gen12_ccs_cc_formats[] = {
+	{ .format = DRM_FORMAT_XRGB8888, .depth = 24, .num_planes = 3,
+	  .char_per_block = { 4, 1, 0 }, .block_w = { 1, 2, 2 }, .block_h = { 1, 1, 1 },
+	  .hsub = 1, .vsub = 1, },
+	{ .format = DRM_FORMAT_XBGR8888, .depth = 24, .num_planes = 3,
+	  .char_per_block = { 4, 1, 0 }, .block_w = { 1, 2, 2 }, .block_h = { 1, 1, 1 },
+	  .hsub = 1, .vsub = 1, },
+	{ .format = DRM_FORMAT_ARGB8888, .depth = 32, .num_planes = 3,
+	  .char_per_block = { 4, 1, 0 }, .block_w = { 1, 2, 2 }, .block_h = { 1, 1, 1 },
+	  .hsub = 1, .vsub = 1, .has_alpha = true },
+	{ .format = DRM_FORMAT_ABGR8888, .depth = 32, .num_planes = 3,
+	  .char_per_block = { 4, 1, 0 }, .block_w = { 1, 2, 2 }, .block_h = { 1, 1, 1 },
+	  .hsub = 1, .vsub = 1, .has_alpha = true },
+};
+
 struct intel_modifier_desc {
 	u64 modifier;
 	struct {
@@ -21,6 +114,12 @@ struct intel_modifier_desc {
 	} display_ver;
 #define DISPLAY_VER_ALL		{ 0, -1 }
 
+	const struct drm_format_info *formats;
+	int format_count;
+#define FORMAT_OVERRIDE(format_list) \
+	.formats = format_list, \
+	.format_count = ARRAY_SIZE(format_list)
+
 	u8 is_linear:1;
 
 	struct {
@@ -57,33 +156,87 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.display_ver = { 9, 11 },
 
 		.ccs.type = INTEL_CCS_RC,
+
+		FORMAT_OVERRIDE(skl_ccs_formats),
 	},
 	{
 		.modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
 		.display_ver = { 9, 11 },
 
 		.ccs.type = INTEL_CCS_RC,
+
+		FORMAT_OVERRIDE(skl_ccs_formats),
 	},
 	{
 		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
 		.display_ver = { 12, 13 },
 
 		.ccs.type = INTEL_CCS_RC,
+
+		FORMAT_OVERRIDE(gen12_ccs_formats),
 	},
 	{
 		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
 		.display_ver = { 12, 13 },
 
 		.ccs.type = INTEL_CCS_RC_CC,
+
+		FORMAT_OVERRIDE(gen12_ccs_cc_formats),
 	},
 	{
 		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
 		.display_ver = { 12, 13 },
 
 		.ccs.type = INTEL_CCS_MC,
+
+		FORMAT_OVERRIDE(gen12_ccs_formats),
 	},
 };
 
+static const struct intel_modifier_desc *lookup_modifier_or_null(u64 modifier)
+{
+	int i;
+
+	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++)
+		if (intel_modifiers[i].modifier == modifier)
+			return &intel_modifiers[i];
+
+	return NULL;
+}
+
+static const struct drm_format_info *
+lookup_format_info(const struct drm_format_info formats[],
+		   int num_formats, u32 format)
+{
+	int i;
+
+	for (i = 0; i < num_formats; i++) {
+		if (formats[i].format == format)
+			return &formats[i];
+	}
+
+	return NULL;
+}
+
+/**
+ * intel_fb_get_format_info: Get a modifier specific format information
+ * @cmd: FB add command structure
+ *
+ * Returns:
+ * Returns the format information for @cmd->pixel_format specific to @cmd->modifier[0],
+ * or %NULL if the modifier doesn't override the format.
+ */
+const struct drm_format_info *
+intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd)
+{
+	const struct intel_modifier_desc *md = lookup_modifier_or_null(cmd->modifier[0]);
+
+	if (!md || !md->formats)
+		return NULL;
+
+	return lookup_format_info(md->formats, md->format_count, cmd->pixel_format);
+}
+
 static bool is_ccs_type_modifier(const struct intel_modifier_desc *md, u8 ccs_type)
 {
 	return md->ccs.type & ccs_type;
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index 0f77e81e69d29..97b31c3a29825 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -36,6 +36,9 @@ u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
 				  enum intel_plane_caps plane_caps);
 bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
 
+const struct drm_format_info *
+intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
+
 bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane);
 
 int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane);
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 03/11] drm/i915: Add tiling attribute to the modifier descriptor
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 02/11] drm/i915: Move intel_get_format_info() to intel_fb.c Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 04/11] drm/i915: Simplify the modifier check for interlaced scanout support Imre Deak
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila, Ville Syrjälä

Add a tiling atttribute to the modifier descriptor, which let's us
get the tiling without listing the modifiers twice.

v1-v2: Unchanged.
v3:
- Initialize .tiling to I915_TILING_NONE explicitly (Ville)
- Move from previous patch lookup_modifier() to here, where it's first
  used.

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 drivers/gpu/drm/i915/display/intel_fb.c | 33 ++++++++++++++++---------
 1 file changed, 21 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 772a68a9f65b0..06697379a9917 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -120,6 +120,7 @@ struct intel_modifier_desc {
 	.formats = format_list, \
 	.format_count = ARRAY_SIZE(format_list)
 
+	u8 tiling;
 	u8 is_linear:1;
 
 	struct {
@@ -136,24 +137,29 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 	{
 		.modifier = DRM_FORMAT_MOD_LINEAR,
 		.display_ver = DISPLAY_VER_ALL,
+		.tiling = I915_TILING_NONE,
 
 		.is_linear = true,
 	},
 	{
 		.modifier = I915_FORMAT_MOD_X_TILED,
 		.display_ver = DISPLAY_VER_ALL,
+		.tiling = I915_TILING_X,
 	},
 	{
 		.modifier = I915_FORMAT_MOD_Y_TILED,
 		.display_ver = { 9, 13 },
+		.tiling = I915_TILING_Y,
 	},
 	{
 		.modifier = I915_FORMAT_MOD_Yf_TILED,
 		.display_ver = { 9, 11 },
+		.tiling = I915_TILING_NONE,
 	},
 	{
 		.modifier = I915_FORMAT_MOD_Y_TILED_CCS,
 		.display_ver = { 9, 11 },
+		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC,
 
@@ -162,6 +168,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 	{
 		.modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
 		.display_ver = { 9, 11 },
+		.tiling = I915_TILING_NONE,
 
 		.ccs.type = INTEL_CCS_RC,
 
@@ -170,6 +177,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 	{
 		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
 		.display_ver = { 12, 13 },
+		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC,
 
@@ -178,6 +186,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 	{
 		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
 		.display_ver = { 12, 13 },
+		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC_CC,
 
@@ -186,6 +195,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 	{
 		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
 		.display_ver = { 12, 13 },
+		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_MC,
 
@@ -204,6 +214,16 @@ static const struct intel_modifier_desc *lookup_modifier_or_null(u64 modifier)
 	return NULL;
 }
 
+static const struct intel_modifier_desc *lookup_modifier(u64 modifier)
+{
+	const struct intel_modifier_desc *md = lookup_modifier_or_null(modifier);
+
+	if (WARN_ON(!md))
+		return &intel_modifiers[0];
+
+	return md;
+}
+
 static const struct drm_format_info *
 lookup_format_info(const struct drm_format_info formats[],
 		   int num_formats, u32 format)
@@ -535,18 +555,7 @@ intel_fb_align_height(const struct drm_framebuffer *fb,
 
 static unsigned int intel_fb_modifier_to_tiling(u64 fb_modifier)
 {
-	switch (fb_modifier) {
-	case I915_FORMAT_MOD_X_TILED:
-		return I915_TILING_X;
-	case I915_FORMAT_MOD_Y_TILED:
-	case I915_FORMAT_MOD_Y_TILED_CCS:
-	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
-	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
-	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
-		return I915_TILING_Y;
-	default:
-		return I915_TILING_NONE;
-	}
+	return lookup_modifier(fb_modifier)->tiling;
 }
 
 unsigned int intel_cursor_alignment(const struct drm_i915_private *i915)
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 04/11] drm/i915: Simplify the modifier check for interlaced scanout support
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (2 preceding siblings ...)
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 03/11] drm/i915: Add tiling attribute to the modifier descriptor Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 05/11] drm/i915: Unexport is_semiplanar_uv_plane() Imre Deak
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila

Checking the modifiers that support interlacing makes the condition
simpler and avoids us having to add new modifiers to the list (presuming
all/most of the new modifiers won't support interlacing).

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 drivers/gpu/drm/i915/display/skl_universal_plane.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 264b9a422a224..e1f754270eb02 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1240,13 +1240,8 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state,
 	/* Y-tiling is not supported in IF-ID Interlace mode */
 	if (crtc_state->hw.enable &&
 	    crtc_state->hw.adjusted_mode.flags & DRM_MODE_FLAG_INTERLACE &&
-	    (fb->modifier == I915_FORMAT_MOD_Y_TILED ||
-	     fb->modifier == I915_FORMAT_MOD_Yf_TILED ||
-	     fb->modifier == I915_FORMAT_MOD_Y_TILED_CCS ||
-	     fb->modifier == I915_FORMAT_MOD_Yf_TILED_CCS ||
-	     fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS ||
-	     fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS ||
-	     fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC)) {
+	    fb->modifier != DRM_FORMAT_MOD_LINEAR &&
+	    fb->modifier != I915_FORMAT_MOD_X_TILED) {
 		drm_dbg_kms(&dev_priv->drm,
 			    "Y/Yf tiling not supported in IF-ID mode\n");
 		return -EINVAL;
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 05/11] drm/i915: Unexport is_semiplanar_uv_plane()
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (3 preceding siblings ...)
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 04/11] drm/i915: Simplify the modifier check for interlaced scanout support Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 06/11] drm/i915: Move intel_format_info_is_yuv_semiplanar() to intel_fb.c Imre Deak
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila

This function is only used by intel_fb.c, so unexport it.

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 drivers/gpu/drm/i915/display/intel_fb.c | 2 +-
 drivers/gpu/drm/i915/display/intel_fb.h | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 06697379a9917..6f618ca01ba01 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -364,7 +364,7 @@ bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane)
 	       plane == 2;
 }
 
-bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane)
+static bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane)
 {
 	return intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier) &&
 		color_plane == 1;
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index 97b31c3a29825..c331df575490d 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -30,7 +30,6 @@ enum intel_plane_caps {
 bool is_ccs_plane(const struct drm_framebuffer *fb, int plane);
 bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane);
 bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane);
-bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane);
 
 u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
 				  enum intel_plane_caps plane_caps);
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 06/11] drm/i915: Move intel_format_info_is_yuv_semiplanar() to intel_fb.c
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (4 preceding siblings ...)
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 05/11] drm/i915: Unexport is_semiplanar_uv_plane() Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 07/11] drm/i915: Add a platform independent way to get the RC CCS CC plane Imre Deak
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila

Move intel_format_info_is_yuv_semiplanar() to intel_fb.c . The number of
planes for YUV semiplanar formats using CCS modifiers will change on
future platforms. We can use the modifier descriptors to simplify
getting the plane numbers for all modifiers, prepare for that here.

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 .../gpu/drm/i915/display/intel_atomic_plane.c |  1 +
 drivers/gpu/drm/i915/display/intel_display.c  |  8 -----
 drivers/gpu/drm/i915/display/intel_display.h  |  3 --
 drivers/gpu/drm/i915/display/intel_fb.c       | 30 +++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_fb.h       |  4 +++
 drivers/gpu/drm/i915/intel_pm.c               |  1 +
 6 files changed, 36 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 0be8c00e3db9a..f61a48e1a562b 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -39,6 +39,7 @@
 #include "intel_atomic_plane.h"
 #include "intel_cdclk.h"
 #include "intel_display_types.h"
+#include "intel_fb.h"
 #include "intel_fb_pin.h"
 #include "intel_pm.h"
 #include "intel_sprite.h"
diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index 0f42beef2551e..ef8a9f235ee0a 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -823,14 +823,6 @@ void intel_disable_transcoder(const struct intel_crtc_state *old_crtc_state)
 		intel_wait_for_pipe_off(old_crtc_state);
 }
 
-bool
-intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
-				    u64 modifier)
-{
-	return info->is_yuv &&
-	       info->num_planes == (is_ccs_modifier(modifier) ? 4 : 2);
-}
-
 unsigned int intel_rotation_info_size(const struct intel_rotation_info *rot_info)
 {
 	unsigned int size = 0;
diff --git a/drivers/gpu/drm/i915/display/intel_display.h b/drivers/gpu/drm/i915/display/intel_display.h
index 0c76bf57f86b5..4267465b5ff97 100644
--- a/drivers/gpu/drm/i915/display/intel_display.h
+++ b/drivers/gpu/drm/i915/display/intel_display.h
@@ -610,9 +610,6 @@ int bdw_get_pipemisc_bpp(struct intel_crtc *crtc);
 unsigned int intel_plane_fence_y_offset(const struct intel_plane_state *plane_state);
 
 bool intel_plane_uses_fence(const struct intel_plane_state *plane_state);
-bool
-intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
-				    u64 modifier);
 
 struct intel_encoder *
 intel_get_crtc_new_encoder(const struct intel_atomic_state *state,
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 6f618ca01ba01..60ec38cc1e0fb 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -345,6 +345,36 @@ bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier)
 	return false;
 }
 
+static bool format_is_yuv_semiplanar(const struct intel_modifier_desc *md,
+				     const struct drm_format_info *info)
+{
+	int yuv_planes;
+
+	if (!info->is_yuv)
+		return false;
+
+	if (is_ccs_type_modifier(md, INTEL_CCS_ANY))
+		yuv_planes = 4;
+	else
+		yuv_planes = 2;
+
+	return info->num_planes == yuv_planes;
+}
+
+/**
+ * intel_format_info_is_yuv_semiplanar: Check if the given format is YUV semiplanar
+ * @info: format to check
+ * @modifier: modifier used with the format
+ *
+ * Returns:
+ * %true if @info / @modifier is YUV semiplanar.
+ */
+bool intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
+					 u64 modifier)
+{
+	return format_is_yuv_semiplanar(lookup_modifier(modifier), info);
+}
+
 bool is_ccs_plane(const struct drm_framebuffer *fb, int plane)
 {
 	if (!is_ccs_modifier(fb->modifier))
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index c331df575490d..a2cdf48f13395 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -38,6 +38,10 @@ bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
 const struct drm_format_info *
 intel_fb_get_format_info(const struct drm_mode_fb_cmd2 *cmd);
 
+bool
+intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
+				    u64 modifier);
+
 bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane);
 
 int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane);
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index ecbb3d1416321..6ae48acbe2992 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -37,6 +37,7 @@
 #include "display/intel_bw.h"
 #include "display/intel_de.h"
 #include "display/intel_display_types.h"
+#include "display/intel_fb.h"
 #include "display/intel_fbc.h"
 #include "display/intel_sprite.h"
 #include "display/skl_universal_plane.h"
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 07/11] drm/i915: Add a platform independent way to get the RC CCS CC plane
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (5 preceding siblings ...)
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 06/11] drm/i915: Move intel_format_info_is_yuv_semiplanar() to intel_fb.c Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 08/11] drm/i915: Handle CCS CC planes separately from CCS AUX planes Imre Deak
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila

On future platforms the index of the color-clear plane will change from
the one used by the GEN12 RC CCS CC modifier, so add a way to retrieve
the index independently of the platform/modifier.

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 drivers/gpu/drm/i915/display/intel_display.c | 10 +++++---
 drivers/gpu/drm/i915/display/intel_fb.c      | 25 ++++++++++++++++++--
 drivers/gpu/drm/i915/display/intel_fb.h      |  2 ++
 3 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
index ef8a9f235ee0a..dc7778beb938f 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -9607,10 +9607,14 @@ static void intel_atomic_prepare_plane_clear_colors(struct intel_atomic_state *s
 
 	for_each_new_intel_plane_in_state(state, plane, plane_state, i) {
 		struct drm_framebuffer *fb = plane_state->hw.fb;
+		int cc_plane;
 		int ret;
 
-		if (!fb ||
-		    fb->modifier != I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC)
+		if (!fb)
+			continue;
+
+		cc_plane = intel_fb_rc_ccs_cc_plane(fb);
+		if (cc_plane < 0)
 			continue;
 
 		/*
@@ -9627,7 +9631,7 @@ static void intel_atomic_prepare_plane_clear_colors(struct intel_atomic_state *s
 		 * GPU write on it.
 		 */
 		ret = i915_gem_object_read_from_page(intel_fb_obj(fb),
-						     fb->offsets[2] + 16,
+						     fb->offsets[cc_plane] + 16,
 						     &plane_state->ccval,
 						     sizeof(plane_state->ccval));
 		/* The above could only fail if the FB obj has an unexpected backing store type. */
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 60ec38cc1e0fb..5273fa5b81622 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -130,6 +130,7 @@ struct intel_modifier_desc {
 
 #define INTEL_CCS_ANY		(INTEL_CCS_RC | INTEL_CCS_RC_CC | INTEL_CCS_MC)
 		u8 type:3;
+		u8 cc_planes:3;
 	} ccs;
 };
 
@@ -189,6 +190,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC_CC,
+		.ccs.cc_planes = BIT(2),
 
 		FORMAT_OVERRIDE(gen12_ccs_cc_formats),
 	},
@@ -388,10 +390,29 @@ bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane)
 	return is_gen12_ccs_modifier(fb->modifier) && is_ccs_plane(fb, plane);
 }
 
+/**
+ * intel_fb_rc_ccs_cc_plane: Get the CCS CC color plane index for a framebuffer
+ * @fb: Framebuffer
+ *
+ * Returns:
+ * Returns the index of the color clear plane for @fb, or -1 if @fb is not a
+ * framebuffer using a render compression/color clear modifier.
+ */
+int intel_fb_rc_ccs_cc_plane(const struct drm_framebuffer *fb)
+{
+	const struct intel_modifier_desc *md = lookup_modifier(fb->modifier);
+
+	if (!md->ccs.cc_planes)
+		return -1;
+
+	drm_WARN_ON_ONCE(fb->dev, hweight8(md->ccs.cc_planes) > 1);
+
+	return ilog2((int)md->ccs.cc_planes);
+}
+
 bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane)
 {
-	return fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC &&
-	       plane == 2;
+	return intel_fb_rc_ccs_cc_plane(fb) == plane;
 }
 
 static bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane)
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index a2cdf48f13395..74e0fc03319b9 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -31,6 +31,8 @@ bool is_ccs_plane(const struct drm_framebuffer *fb, int plane);
 bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane);
 bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane);
 
+int intel_fb_rc_ccs_cc_plane(const struct drm_framebuffer *fb);
+
 u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
 				  enum intel_plane_caps plane_caps);
 bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 08/11] drm/i915: Handle CCS CC planes separately from CCS AUX planes
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (6 preceding siblings ...)
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 07/11] drm/i915: Add a platform independent way to get the RC CCS CC plane Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for " Imre Deak
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila

CCS CC planes are quite different from CCS AUX planes, even though we
regard the CC planes as a linear buffer having a 64 byte stride.  Thus
it's clearer to check for either CCS plane types explicitly when we need
to handle them; add the required CCS CC planes check here, while the
next patch will change all is_ccs_plane()/is_gen12_ccs_plane() checks to
consider only the CCS AUX planes.

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 drivers/gpu/drm/i915/display/intel_fb.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 5273fa5b81622..6e8d600dff6be 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -424,7 +424,8 @@ static bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_p
 bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane)
 {
 	return fb->modifier == DRM_FORMAT_MOD_LINEAR ||
-	       is_gen12_ccs_plane(fb, color_plane);
+	       is_gen12_ccs_plane(fb, color_plane) ||
+	       is_gen12_ccs_cc_plane(fb, color_plane);
 }
 
 int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane)
@@ -517,7 +518,8 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane)
 	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
 	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
 	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
-		if (is_ccs_plane(fb, color_plane))
+		if (is_ccs_plane(fb, color_plane) ||
+		    is_gen12_ccs_cc_plane(fb, color_plane))
 			return 64;
 		fallthrough;
 	case I915_FORMAT_MOD_Y_TILED:
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for CCS AUX planes
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (7 preceding siblings ...)
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 08/11] drm/i915: Handle CCS CC planes separately from CCS AUX planes Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-19  8:02   ` Jani Nikula
  2021-10-19  9:46   ` [Intel-gfx] [PATCH v4 " Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 10/11] drm/i915: Move is_ccs_modifier() to intel_fb.c Imre Deak
                   ` (9 subsequent siblings)
  18 siblings, 2 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila, Ville Syrjälä

Future platforms change the location of CCS AUX planes in CCS
framebuffers, so add intel_fb_is_ccs_aux_plane() to query for these
planes independently of the platform. This function can be used
everywhere instead of is_ccs_plane() (or is_ccs_plane() && !cc_plane()),
since all the callers are only interested in CCS AUX planes (and not CCS
color-clear planes).

Add the corresponding intel_fb_is_gen12_ccs_aux_plane(), which can be
used everywhere instead of is_gen12_ccs_plane(), based on the above
explanation.

This change also unexports the is_gen12_ccs_modifier(),
is_gen12_ccs_plane(), is_gen12_ccs_cc_plane() functions as they are only
used in intel_fb.c

v1-v2: Unchanged
v3: (Ville)
- Use ccs_aux instead of the ccs_ctrl term everywhere.
- Use color_plane instead of plane term for FB plane indicies.

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 .../drm/i915/display/intel_display_types.h    |  7 --
 drivers/gpu/drm/i915/display/intel_fb.c       | 82 ++++++++++++++-----
 drivers/gpu/drm/i915/display/intel_fb.h       |  5 +-
 .../drm/i915/display/skl_universal_plane.c    |  3 +-
 4 files changed, 64 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 50b4264f61d62..e3353c2311e52 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -2049,11 +2049,4 @@ static inline bool is_ccs_modifier(u64 modifier)
 	       modifier == I915_FORMAT_MOD_Yf_TILED_CCS;
 }
 
-static inline bool is_gen12_ccs_modifier(u64 modifier)
-{
-	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS ||
-	       modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC ||
-	       modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS;
-}
-
 #endif /*  __INTEL_DISPLAY_TYPES_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 6e8d600dff6be..60724eed2d864 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -131,6 +131,8 @@ struct intel_modifier_desc {
 #define INTEL_CCS_ANY		(INTEL_CCS_RC | INTEL_CCS_RC_CC | INTEL_CCS_MC)
 		u8 type:3;
 		u8 cc_planes:3;
+		u8 packed_aux_planes:4;
+		u8 planar_aux_planes:4;
 	} ccs;
 };
 
@@ -163,6 +165,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC,
+		.ccs.packed_aux_planes = BIT(1),
 
 		FORMAT_OVERRIDE(skl_ccs_formats),
 	},
@@ -172,6 +175,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_NONE,
 
 		.ccs.type = INTEL_CCS_RC,
+		.ccs.packed_aux_planes = BIT(1),
 
 		FORMAT_OVERRIDE(skl_ccs_formats),
 	},
@@ -181,6 +185,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC,
+		.ccs.packed_aux_planes = BIT(1),
 
 		FORMAT_OVERRIDE(gen12_ccs_formats),
 	},
@@ -190,6 +195,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC_CC,
+		.ccs.packed_aux_planes = BIT(1),
 		.ccs.cc_planes = BIT(2),
 
 		FORMAT_OVERRIDE(gen12_ccs_cc_formats),
@@ -200,6 +206,8 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_MC,
+		.ccs.packed_aux_planes = BIT(1),
+		.ccs.planar_aux_planes = BIT(2) | BIT(3),
 
 		FORMAT_OVERRIDE(gen12_ccs_formats),
 	},
@@ -271,6 +279,13 @@ static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
 	       display_ver <= md->display_ver.until;
 }
 
+static bool check_modifier_display_ver_range(const struct intel_modifier_desc *md,
+					     u8 display_ver_from, u8 display_ver_until)
+{
+	return check_modifier_display_ver(md, display_ver_from) &&
+	       check_modifier_display_ver(md, display_ver_until);
+}
+
 static bool plane_has_modifier(struct drm_i915_private *i915,
 			       enum intel_plane_caps plane_caps,
 			       const struct intel_modifier_desc *md)
@@ -377,17 +392,44 @@ bool intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
 	return format_is_yuv_semiplanar(lookup_modifier(modifier), info);
 }
 
-bool is_ccs_plane(const struct drm_framebuffer *fb, int plane)
+static u8 ccs_aux_plane_mask(const struct intel_modifier_desc *md,
+			     const struct drm_format_info *format)
 {
-	if (!is_ccs_modifier(fb->modifier))
-		return false;
+	if (format_is_yuv_semiplanar(md, format))
+		return md->ccs.planar_aux_planes;
+	else
+		return md->ccs.packed_aux_planes;
+}
+
+/**
+ * intel_fb_is_ccs_aux_plane: Check if a framebuffer color plane is a CCS AUX plane
+ * @fb: Framebuffer
+ * @color_plane: color plane index to check
+ *
+ * Returns:
+ * Returns %true if @fb's color plane at index @color_plane is a CCS AUX plane.
+ */
+bool intel_fb_is_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane)
+{
+	const struct intel_modifier_desc *md = lookup_modifier(fb->modifier);
 
-	return plane >= fb->format->num_planes / 2;
+	return ccs_aux_plane_mask(md, fb->format) & BIT(color_plane);
 }
 
-bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane)
+/**
+ * intel_fb_is_gen12_ccs_aux_plane: Check if a framebuffer color plane is a GEN12 CCS AUX plane
+ * @fb: Framebuffer
+ * @color_plane: color plane index to check
+ *
+ * Returns:
+ * Returns %true if @fb's color plane at index @color_plane is a GEN12 CCS AUX plane.
+ */
+static bool intel_fb_is_gen12_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane)
 {
-	return is_gen12_ccs_modifier(fb->modifier) && is_ccs_plane(fb, plane);
+	const struct intel_modifier_desc *md = lookup_modifier(fb->modifier);
+
+	return check_modifier_display_ver_range(md, 12, 13) &&
+	       ccs_aux_plane_mask(md, fb->format) & BIT(color_plane);
 }
 
 /**
@@ -410,9 +452,9 @@ int intel_fb_rc_ccs_cc_plane(const struct drm_framebuffer *fb)
 	return ilog2((int)md->ccs.cc_planes);
 }
 
-bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane)
+static bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int color_plane)
 {
-	return intel_fb_rc_ccs_cc_plane(fb) == plane;
+	return intel_fb_rc_ccs_cc_plane(fb) == color_plane;
 }
 
 static bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane)
@@ -424,7 +466,7 @@ static bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_p
 bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane)
 {
 	return fb->modifier == DRM_FORMAT_MOD_LINEAR ||
-	       is_gen12_ccs_plane(fb, color_plane) ||
+	       intel_fb_is_gen12_ccs_aux_plane(fb, color_plane) ||
 	       is_gen12_ccs_cc_plane(fb, color_plane);
 }
 
@@ -512,13 +554,13 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane)
 		else
 			return 512;
 	case I915_FORMAT_MOD_Y_TILED_CCS:
-		if (is_ccs_plane(fb, color_plane))
+		if (intel_fb_is_ccs_aux_plane(fb, color_plane))
 			return 128;
 		fallthrough;
 	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
 	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
 	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
-		if (is_ccs_plane(fb, color_plane) ||
+		if (intel_fb_is_ccs_aux_plane(fb, color_plane) ||
 		    is_gen12_ccs_cc_plane(fb, color_plane))
 			return 64;
 		fallthrough;
@@ -528,7 +570,7 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane)
 		else
 			return 512;
 	case I915_FORMAT_MOD_Yf_TILED_CCS:
-		if (is_ccs_plane(fb, color_plane))
+		if (intel_fb_is_ccs_aux_plane(fb, color_plane))
 			return 128;
 		fallthrough;
 	case I915_FORMAT_MOD_Yf_TILED:
@@ -584,7 +626,7 @@ static void intel_tile_block_dims(const struct drm_framebuffer *fb, int color_pl
 {
 	intel_tile_dims(fb, color_plane, tile_width, tile_height);
 
-	if (is_gen12_ccs_plane(fb, color_plane))
+	if (intel_fb_is_gen12_ccs_aux_plane(fb, color_plane))
 		*tile_height = 1;
 }
 
@@ -645,7 +687,7 @@ unsigned int intel_surf_alignment(const struct drm_framebuffer *fb,
 		return 512 * 4096;
 
 	/* AUX_DIST needs only 4K alignment */
-	if (is_ccs_plane(fb, color_plane))
+	if (intel_fb_is_ccs_aux_plane(fb, color_plane))
 		return 4096;
 
 	if (is_semiplanar_uv_plane(fb, color_plane)) {
@@ -704,7 +746,7 @@ void intel_fb_plane_get_subsampling(int *hsub, int *vsub,
 	 * TODO: Deduct the subsampling from the char block for all CCS
 	 * formats and planes.
 	 */
-	if (!is_gen12_ccs_plane(fb, color_plane)) {
+	if (!intel_fb_is_gen12_ccs_aux_plane(fb, color_plane)) {
 		*hsub = fb->format->hsub;
 		*vsub = fb->format->vsub;
 
@@ -732,7 +774,7 @@ void intel_fb_plane_get_subsampling(int *hsub, int *vsub,
 static void intel_fb_plane_dims(const struct intel_framebuffer *fb, int color_plane, int *w, int *h)
 {
 	struct drm_i915_private *i915 = to_i915(fb->base.dev);
-	int main_plane = is_ccs_plane(&fb->base, color_plane) ?
+	int main_plane = intel_fb_is_ccs_aux_plane(&fb->base, color_plane) ?
 			 skl_ccs_to_main_plane(&fb->base, color_plane) : 0;
 	unsigned int main_width = fb->base.width;
 	unsigned int main_height = fb->base.height;
@@ -745,7 +787,7 @@ static void intel_fb_plane_dims(const struct intel_framebuffer *fb, int color_pl
 	 * stride in the allocated FB object may not be power-of-two
 	 * sized, in which case it is auto-padded to the POT size.
 	 */
-	if (IS_ALDERLAKE_P(i915) && is_ccs_plane(&fb->base, color_plane))
+	if (IS_ALDERLAKE_P(i915) && intel_fb_is_ccs_aux_plane(&fb->base, color_plane))
 		main_width = gen12_aligned_scanout_stride(fb, 0) /
 			     fb->base.format->cpp[0];
 
@@ -984,7 +1026,7 @@ static int intel_fb_check_ccs_xy(const struct drm_framebuffer *fb, int ccs_plane
 	int ccs_x, ccs_y;
 	int main_x, main_y;
 
-	if (!is_ccs_plane(fb, ccs_plane) || is_gen12_ccs_cc_plane(fb, ccs_plane))
+	if (!intel_fb_is_ccs_aux_plane(fb, ccs_plane))
 		return 0;
 
 	/*
@@ -1188,7 +1230,7 @@ plane_view_dst_stride_tiles(const struct intel_framebuffer *fb, int color_plane,
 			    unsigned int pitch_tiles)
 {
 	if (intel_fb_needs_pot_stride_remap(fb)) {
-		unsigned int min_stride = is_ccs_plane(&fb->base, color_plane) ? 2 : 8;
+		unsigned int min_stride = intel_fb_is_ccs_aux_plane(&fb->base, color_plane) ? 2 : 8;
 		/*
 		 * ADL_P, the only platform needing a POT stride has a minimum
 		 * of 8 main surface and 2 CCS AUX stride tiles.
@@ -1804,7 +1846,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
 			goto err;
 		}
 
-		if (is_gen12_ccs_plane(fb, i) && !is_gen12_ccs_cc_plane(fb, i)) {
+		if (intel_fb_is_gen12_ccs_aux_plane(fb, i)) {
 			int ccs_aux_stride = gen12_ccs_aux_stride(intel_fb, i);
 
 			if (fb->pitches[i] != ccs_aux_stride) {
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index 74e0fc03319b9..c80822b3cb827 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -27,10 +27,7 @@ enum intel_plane_caps {
 	PLANE_HAS_CCS_MC = BIT(2),
 };
 
-bool is_ccs_plane(const struct drm_framebuffer *fb, int plane);
-bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane);
-bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane);
-
+bool intel_fb_is_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane);
 int intel_fb_rc_ccs_cc_plane(const struct drm_framebuffer *fb);
 
 u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index e1f754270eb02..47f31e40da2d8 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1607,8 +1607,7 @@ static int skl_check_ccs_aux_surface(struct intel_plane_state *plane_state)
 		int hsub, vsub;
 		int x, y;
 
-		if (!is_ccs_plane(fb, ccs_plane) ||
-		    is_gen12_ccs_cc_plane(fb, ccs_plane))
+		if (!intel_fb_is_ccs_aux_plane(fb, ccs_plane))
 			continue;
 
 		intel_fb_plane_get_subsampling(&main_hsub, &main_vsub, fb,
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 10/11] drm/i915: Move is_ccs_modifier() to intel_fb.c
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (8 preceding siblings ...)
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for " Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 11/11] drm/i915: Add functions to check for RC CCS CC and MC CCS modifiers Imre Deak
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila

Move the function to intel_fb.c and rename it adding the intel_fb_
prefix following the naming of exported functions.

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 .../drm/i915/display/intel_display_types.h    |  9 ------
 drivers/gpu/drm/i915/display/intel_fb.c       | 29 ++++++++++++++-----
 drivers/gpu/drm/i915/display/intel_fb.h       |  2 ++
 .../drm/i915/display/skl_universal_plane.c    | 12 ++++----
 4 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index e3353c2311e52..d5382f7006f48 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -2040,13 +2040,4 @@ to_intel_frontbuffer(struct drm_framebuffer *fb)
 	return fb ? to_intel_framebuffer(fb)->frontbuffer : NULL;
 }
 
-static inline bool is_ccs_modifier(u64 modifier)
-{
-	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS ||
-	       modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC ||
-	       modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS ||
-	       modifier == I915_FORMAT_MOD_Y_TILED_CCS ||
-	       modifier == I915_FORMAT_MOD_Yf_TILED_CCS;
-}
-
 #endif /*  __INTEL_DISPLAY_TYPES_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 60724eed2d864..e847568ebe5be 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -272,6 +272,19 @@ static bool is_ccs_type_modifier(const struct intel_modifier_desc *md, u8 ccs_ty
 	return md->ccs.type & ccs_type;
 }
 
+/**
+ * intel_fb_is_ccs_modifier: Check if a modifier is a CCS modifier type
+ * @modifier: Modifier to check
+ *
+ * Returns:
+ * Returns %true if @modifier is a render, render with color clear or
+ * media compression modifier.
+ */
+bool intel_fb_is_ccs_modifier(u64 modifier)
+{
+	return is_ccs_type_modifier(lookup_modifier(modifier), INTEL_CCS_ANY);
+}
+
 static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
 				       u8 display_ver)
 {
@@ -472,7 +485,7 @@ bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane)
 
 int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane)
 {
-	drm_WARN_ON(fb->dev, !is_ccs_modifier(fb->modifier) ||
+	drm_WARN_ON(fb->dev, !intel_fb_is_ccs_modifier(fb->modifier) ||
 		    (main_plane && main_plane >= fb->format->num_planes / 2));
 
 	return fb->format->num_planes / 2 + main_plane;
@@ -480,7 +493,7 @@ int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane)
 
 int skl_ccs_to_main_plane(const struct drm_framebuffer *fb, int ccs_plane)
 {
-	drm_WARN_ON(fb->dev, !is_ccs_modifier(fb->modifier) ||
+	drm_WARN_ON(fb->dev, !intel_fb_is_ccs_modifier(fb->modifier) ||
 		    ccs_plane < fb->format->num_planes / 2);
 
 	if (is_gen12_ccs_cc_plane(fb, ccs_plane))
@@ -525,7 +538,7 @@ int skl_main_to_aux_plane(const struct drm_framebuffer *fb, int main_plane)
 {
 	struct drm_i915_private *i915 = to_i915(fb->dev);
 
-	if (is_ccs_modifier(fb->modifier))
+	if (intel_fb_is_ccs_modifier(fb->modifier))
 		return main_to_ccs_plane(fb, main_plane);
 	else if (DISPLAY_VER(i915) < 11 &&
 		 intel_format_info_is_yuv_semiplanar(fb->format, fb->modifier))
@@ -1089,7 +1102,7 @@ static bool intel_plane_can_remap(const struct intel_plane_state *plane_state)
 	 * The new CCS hash mode isn't compatible with remapping as
 	 * the virtual address of the pages affects the compressed data.
 	 */
-	if (is_ccs_modifier(fb->modifier))
+	if (intel_fb_is_ccs_modifier(fb->modifier))
 		return false;
 
 	/* Linear needs a page aligned stride for remapping */
@@ -1496,7 +1509,7 @@ static void intel_plane_remap_gtt(struct intel_plane_state *plane_state)
 	src_w = drm_rect_width(&plane_state->uapi.src) >> 16;
 	src_h = drm_rect_height(&plane_state->uapi.src) >> 16;
 
-	drm_WARN_ON(&i915->drm, is_ccs_modifier(fb->modifier));
+	drm_WARN_ON(&i915->drm, intel_fb_is_ccs_modifier(fb->modifier));
 
 	/* Make src coordinates relative to the viewport */
 	drm_rect_translate(&plane_state->uapi.src,
@@ -1559,7 +1572,7 @@ u32 intel_fb_max_stride(struct drm_i915_private *dev_priv,
 	 *
 	 * The new CCS hash mode makes remapping impossible
 	 */
-	if (DISPLAY_VER(dev_priv) < 4 || is_ccs_modifier(modifier) ||
+	if (DISPLAY_VER(dev_priv) < 4 || intel_fb_is_ccs_modifier(modifier) ||
 	    intel_modifier_uses_dpt(dev_priv, modifier))
 		return intel_plane_fb_max_stride(dev_priv, pixel_format, modifier);
 	else if (DISPLAY_VER(dev_priv) >= 7)
@@ -1584,14 +1597,14 @@ intel_fb_stride_alignment(const struct drm_framebuffer *fb, int color_plane)
 		 * we need the stride to be page aligned.
 		 */
 		if (fb->pitches[color_plane] > max_stride &&
-		    !is_ccs_modifier(fb->modifier))
+		    !intel_fb_is_ccs_modifier(fb->modifier))
 			return intel_tile_size(dev_priv);
 		else
 			return 64;
 	}
 
 	tile_width = intel_tile_width_bytes(fb, color_plane);
-	if (is_ccs_modifier(fb->modifier)) {
+	if (intel_fb_is_ccs_modifier(fb->modifier)) {
 		/*
 		 * On ADL-P the stride must be either 8 tiles or a stride
 		 * that is aligned to 16 tiles, required by the 16 tiles =
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index c80822b3cb827..f32306fbd3dee 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -27,6 +27,8 @@ enum intel_plane_caps {
 	PLANE_HAS_CCS_MC = BIT(2),
 };
 
+bool intel_fb_is_ccs_modifier(u64 modifier);
+
 bool intel_fb_is_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane);
 int intel_fb_rc_ccs_cc_plane(const struct drm_framebuffer *fb);
 
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 47f31e40da2d8..bf5c6ee4df147 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1188,7 +1188,7 @@ static int skl_plane_check_fb(const struct intel_crtc_state *crtc_state,
 		return 0;
 
 	if (rotation & ~(DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180) &&
-	    is_ccs_modifier(fb->modifier)) {
+	    intel_fb_is_ccs_modifier(fb->modifier)) {
 		drm_dbg_kms(&dev_priv->drm,
 			    "RC support only with 0/180 degree rotation (%x)\n",
 			    rotation);
@@ -1487,7 +1487,7 @@ static int skl_check_main_surface(struct intel_plane_state *plane_state)
 	 * CCS AUX surface doesn't have its own x/y offsets, we must make sure
 	 * they match with the main surface x/y offsets.
 	 */
-	if (is_ccs_modifier(fb->modifier)) {
+	if (intel_fb_is_ccs_modifier(fb->modifier)) {
 		while (!skl_check_main_ccs_coordinates(plane_state, x, y,
 						       offset, aux_plane)) {
 			if (offset == 0)
@@ -1551,7 +1551,7 @@ static int skl_check_nv12_aux_surface(struct intel_plane_state *plane_state)
 	offset = intel_plane_compute_aligned_offset(&x, &y,
 						    plane_state, uv_plane);
 
-	if (is_ccs_modifier(fb->modifier)) {
+	if (intel_fb_is_ccs_modifier(fb->modifier)) {
 		int ccs_plane = main_to_ccs_plane(fb, uv_plane);
 		u32 aux_offset = plane_state->view.color_plane[ccs_plane].offset;
 		u32 alignment = intel_surf_alignment(fb, uv_plane);
@@ -1649,7 +1649,7 @@ static int skl_check_plane_surface(struct intel_plane_state *plane_state)
 	 * Handle the AUX surface first since the main surface setup depends on
 	 * it.
 	 */
-	if (is_ccs_modifier(fb->modifier)) {
+	if (intel_fb_is_ccs_modifier(fb->modifier)) {
 		ret = skl_check_ccs_aux_surface(plane_state);
 		if (ret)
 			return ret;
@@ -1833,7 +1833,7 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
 	case DRM_FORMAT_XBGR8888:
 	case DRM_FORMAT_ARGB8888:
 	case DRM_FORMAT_ABGR8888:
-		if (is_ccs_modifier(modifier))
+		if (intel_fb_is_ccs_modifier(modifier))
 			return true;
 		fallthrough;
 	case DRM_FORMAT_RGB565:
@@ -1887,7 +1887,7 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
 	case DRM_FORMAT_XBGR8888:
 	case DRM_FORMAT_ARGB8888:
 	case DRM_FORMAT_ABGR8888:
-		if (is_ccs_modifier(modifier))
+		if (intel_fb_is_ccs_modifier(modifier))
 			return true;
 		fallthrough;
 	case DRM_FORMAT_YUYV:
-- 
2.27.0


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

* [Intel-gfx] [PATCH v3 11/11] drm/i915: Add functions to check for RC CCS CC and MC CCS modifiers
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (9 preceding siblings ...)
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 10/11] drm/i915: Move is_ccs_modifier() to intel_fb.c Imre Deak
@ 2021-10-14 22:09 ` Imre Deak
  2021-10-15  3:39 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Simplify handling of modifiers (rev10) Patchwork
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-14 22:09 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila

Instead of open-coding the checks add functions for this, simplifying
the handling of CCS modifiers on future platforms.

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 drivers/gpu/drm/i915/display/intel_fb.c       | 24 +++++++++++++++++++
 drivers/gpu/drm/i915/display/intel_fb.h       |  2 ++
 .../drm/i915/display/skl_universal_plane.c    |  4 ++--
 3 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index e847568ebe5be..05a07943a1257 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -285,6 +285,30 @@ bool intel_fb_is_ccs_modifier(u64 modifier)
 	return is_ccs_type_modifier(lookup_modifier(modifier), INTEL_CCS_ANY);
 }
 
+/**
+ * intel_fb_is_rc_ccs_cc_modifier: Check if a modifier is an RC CCS CC modifier type
+ * @modifier: Modifier to check
+ *
+ * Returns:
+ * Returns %true if @modifier is a render with color clear modifier.
+ */
+bool intel_fb_is_rc_ccs_cc_modifier(u64 modifier)
+{
+	return is_ccs_type_modifier(lookup_modifier(modifier), INTEL_CCS_RC_CC);
+}
+
+/**
+ * intel_fb_is_mc_ccs_modifier: Check if a modifier is an MC CCS modifier type
+ * @modifier: Modifier to check
+ *
+ * Returns:
+ * Returns %true if @modifier is a media compression modifier.
+ */
+bool intel_fb_is_mc_ccs_modifier(u64 modifier)
+{
+	return is_ccs_type_modifier(lookup_modifier(modifier), INTEL_CCS_MC);
+}
+
 static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
 				       u8 display_ver)
 {
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index f32306fbd3dee..042ad81f86082 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -28,6 +28,8 @@ enum intel_plane_caps {
 };
 
 bool intel_fb_is_ccs_modifier(u64 modifier);
+bool intel_fb_is_rc_ccs_cc_modifier(u64 modifier);
+bool intel_fb_is_mc_ccs_modifier(u64 modifier);
 
 bool intel_fb_is_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane);
 int intel_fb_rc_ccs_cc_plane(const struct drm_framebuffer *fb);
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index bf5c6ee4df147..916378f8ff55e 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1067,7 +1067,7 @@ skl_program_plane(struct intel_plane *plane,
 	if (fb->format->is_yuv && icl_is_hdr_plane(dev_priv, plane_id))
 		icl_program_input_csc(plane, crtc_state, plane_state);
 
-	if (fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC)
+	if (intel_fb_is_rc_ccs_cc_modifier(fb->modifier))
 		intel_uncore_write64_fw(&dev_priv->uncore,
 					PLANE_CC_VAL(pipe, plane_id), plane_state->ccval);
 
@@ -1899,7 +1899,7 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
 	case DRM_FORMAT_P010:
 	case DRM_FORMAT_P012:
 	case DRM_FORMAT_P016:
-		if (modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS)
+		if (intel_fb_is_mc_ccs_modifier(modifier))
 			return true;
 		fallthrough;
 	case DRM_FORMAT_RGB565:
-- 
2.27.0


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

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Simplify handling of modifiers (rev10)
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (10 preceding siblings ...)
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 11/11] drm/i915: Add functions to check for RC CCS CC and MC CCS modifiers Imre Deak
@ 2021-10-15  3:39 ` Patchwork
  2021-10-15  3:41 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Patchwork @ 2021-10-15  3:39 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Simplify handling of modifiers (rev10)
URL   : https://patchwork.freedesktop.org/series/95579/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
7587ee673ff0 drm/i915: Add a table with a descriptor for all i915 modifiers
-:30: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#30: 
- Use from, until display version fields in modifier_desc instead of a mask. (Jani)

total: 0 errors, 1 warnings, 0 checks, 675 lines checked
9544c7133601 drm/i915: Move intel_get_format_info() to intel_fb.c
-:284: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'format_list' - possible side-effects?
#284: FILE: drivers/gpu/drm/i915/display/intel_fb.c:119:
+#define FORMAT_OVERRIDE(format_list) \
+	.formats = format_list, \
+	.format_count = ARRAY_SIZE(format_list)

total: 0 errors, 0 warnings, 1 checks, 351 lines checked
976e6a1a9e27 drm/i915: Add tiling attribute to the modifier descriptor
a2bc82b5b018 drm/i915: Simplify the modifier check for interlaced scanout support
bea84a82692f drm/i915: Unexport is_semiplanar_uv_plane()
54c82952b360 drm/i915: Move intel_format_info_is_yuv_semiplanar() to intel_fb.c
38a9722d4482 drm/i915: Add a platform independent way to get the RC CCS CC plane
8d49be8b64ea drm/i915: Handle CCS CC planes separately from CCS AUX planes
d5ca935d721a drm/i915: Add a platform independent way to check for CCS AUX planes
75e36bd51224 drm/i915: Move is_ccs_modifier() to intel_fb.c
0d2008070857 drm/i915: Add functions to check for RC CCS CC and MC CCS modifiers



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

* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Simplify handling of modifiers (rev10)
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (11 preceding siblings ...)
  2021-10-15  3:39 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Simplify handling of modifiers (rev10) Patchwork
@ 2021-10-15  3:41 ` Patchwork
  2021-10-15  4:10 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Patchwork @ 2021-10-15  3:41 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Simplify handling of modifiers (rev10)
URL   : https://patchwork.freedesktop.org/series/95579/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:27:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:27:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:27:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:32:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:32:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:49:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:49:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:49:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:56:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:56:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_reset.c:1392:5: warning: context imbalance in 'intel_gt_reset_trylock' - different lock contexts for basic block
+drivers/gpu/drm/i915/i915_perf.c:1442:15: warning: memset with byte count of 16777216
+drivers/gpu/drm/i915/i915_perf.c:1496:15: warning: memset with byte count of 16777216
+./include/asm-generic/bitops/find.h:112:45: warning: shift count is negative (-262080)
+./include/asm-generic/bitops/find.h:32:31: warning: shift count is negative (-262080)
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'gen6_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'gen6_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'gen6_write8' - different lock contexts for basic block



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

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Simplify handling of modifiers (rev10)
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (12 preceding siblings ...)
  2021-10-15  3:41 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
@ 2021-10-15  4:10 ` Patchwork
  2021-10-15 11:19 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Patchwork @ 2021-10-15  4:10 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915: Simplify handling of modifiers (rev10)
URL   : https://patchwork.freedesktop.org/series/95579/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10741 -> Patchwork_21343
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@cs-gfx:
    - fi-rkl-guc:         NOTRUN -> [SKIP][1] ([fdo#109315]) +17 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-rkl-guc/igt@amdgpu/amd_basic@cs-gfx.html

  * igt@amdgpu/amd_basic@query-info:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][2] ([fdo#109315])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-tgl-1115g4/igt@amdgpu/amd_basic@query-info.html

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

  * igt@amdgpu/amd_cs_nop@nop-gfx0:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][4] ([fdo#109315] / [i915#2575]) +16 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-tgl-1115g4/igt@amdgpu/amd_cs_nop@nop-gfx0.html

  * igt@gem_huc_copy@huc-copy:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][5] ([i915#2190])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-tgl-1115g4/igt@gem_huc_copy@huc-copy.html

  * igt@i915_pm_backlight@basic-brightness:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][6] ([i915#1155])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-tgl-1115g4/igt@i915_pm_backlight@basic-brightness.html

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

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][9] ([fdo#111827]) +8 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-tgl-1115g4/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][10] ([i915#4103]) +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-tgl-1115g4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][11] ([fdo#109285])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-tgl-1115g4/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_psr@primary_mmap_gtt:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][12] ([i915#1072]) +3 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-tgl-1115g4/igt@kms_psr@primary_mmap_gtt.html

  * igt@prime_vgem@basic-userptr:
    - fi-tgl-1115g4:      NOTRUN -> [SKIP][13] ([i915#3301])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-tgl-1115g4/igt@prime_vgem@basic-userptr.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@hangcheck:
    - fi-icl-y:           [INCOMPLETE][14] ([i915#3965]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/fi-icl-y/igt@i915_selftest@live@hangcheck.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-icl-y/igt@i915_selftest@live@hangcheck.html
    - fi-rkl-guc:         [INCOMPLETE][16] -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/fi-rkl-guc/igt@i915_selftest@live@hangcheck.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-rkl-guc/igt@i915_selftest@live@hangcheck.html

  * igt@kms_flip@basic-flip-vs-modeset@c-dp1:
    - fi-cfl-8109u:       [FAIL][18] ([i915#4165]) -> [PASS][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/fi-cfl-8109u/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-cfl-8109u/igt@kms_flip@basic-flip-vs-modeset@c-dp1.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-cml-u2:          [DMESG-WARN][20] ([i915#4269]) -> [PASS][21]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-cml-u2/igt@kms_frontbuffer_tracking@basic.html
    - fi-cfl-8109u:       [FAIL][22] ([i915#2546]) -> [PASS][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#3965]: https://gitlab.freedesktop.org/drm/intel/issues/3965
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4165]: https://gitlab.freedesktop.org/drm/intel/issues/4165
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269


Participating hosts (39 -> 37)
------------------------------

  Additional (1): fi-tgl-1115g4 
  Missing    (3): fi-bsw-cyan bat-dg1-6 fi-hsw-4200u 


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

  * Linux: CI_DRM_10741 -> Patchwork_21343

  CI-20190529: 20190529
  CI_DRM_10741: 2934af792d2017b7bd7a0904ae8f1080cac3b834 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6249: 04b156109f1c5128d5ace67420ee2e35e8a24e1d @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_21343: 0d2008070857b105a9c93232c4e69fe8f8194755 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

0d2008070857 drm/i915: Add functions to check for RC CCS CC and MC CCS modifiers
75e36bd51224 drm/i915: Move is_ccs_modifier() to intel_fb.c
d5ca935d721a drm/i915: Add a platform independent way to check for CCS AUX planes
8d49be8b64ea drm/i915: Handle CCS CC planes separately from CCS AUX planes
38a9722d4482 drm/i915: Add a platform independent way to get the RC CCS CC plane
54c82952b360 drm/i915: Move intel_format_info_is_yuv_semiplanar() to intel_fb.c
bea84a82692f drm/i915: Unexport is_semiplanar_uv_plane()
a2bc82b5b018 drm/i915: Simplify the modifier check for interlaced scanout support
976e6a1a9e27 drm/i915: Add tiling attribute to the modifier descriptor
9544c7133601 drm/i915: Move intel_get_format_info() to intel_fb.c
7587ee673ff0 drm/i915: Add a table with a descriptor for all i915 modifiers

== Logs ==

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

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

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

* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: Simplify handling of modifiers (rev10)
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (13 preceding siblings ...)
  2021-10-15  4:10 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2021-10-15 11:19 ` Patchwork
  2021-10-18 12:10   ` Imre Deak
  2021-10-19 14:42 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Simplify handling of modifiers (rev11) Patchwork
                   ` (3 subsequent siblings)
  18 siblings, 1 reply; 35+ messages in thread
From: Patchwork @ 2021-10-15 11:19 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915: Simplify handling of modifiers (rev10)
URL   : https://patchwork.freedesktop.org/series/95579/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_10741_full -> Patchwork_21343_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with Patchwork_21343_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_21343_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_vblank@pipe-a-wait-busy:
    - shard-skl:          [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html

  
#### Suppressed ####

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

  * {igt@kms_bw@linear-tiling-3-displays-3840x2160p}:
    - shard-snb:          NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb6/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html

  * {igt@kms_bw@linear-tiling-4-displays-1920x1080p}:
    - shard-apl:          NOTRUN -> [DMESG-FAIL][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@feature_discovery@chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][5] ([fdo#111827])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@feature_discovery@chamelium.html

  * igt@gem_ctx_persistence@hostile:
    - shard-tglb:         [PASS][6] -> [FAIL][7] ([i915#2410])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_ctx_persistence@hostile.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_ctx_persistence@hostile.html

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

  * igt@gem_exec_fair@basic-none-rrul@rcs0:
    - shard-kbl:          [PASS][9] -> [FAIL][10] ([i915#2842])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html

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

  * igt@gem_exec_fair@basic-none-vip@rcs0:
    - shard-tglb:         NOTRUN -> [FAIL][12] ([i915#2842])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@gem_exec_fair@basic-none-vip@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-iclb:         [PASS][13] -> [FAIL][14] ([i915#2842])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_whisper@basic-queues-forked-all:
    - shard-glk:          [PASS][15] -> [DMESG-WARN][16] ([i915#118])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk2/igt@gem_exec_whisper@basic-queues-forked-all.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@gem_exec_whisper@basic-queues-forked-all.html

  * igt@gem_huc_copy@huc-copy:
    - shard-apl:          NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#2190])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@gem_huc_copy@huc-copy.html
    - shard-kbl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#2190])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_huc_copy@huc-copy.html

  * igt@gem_pread@exhaustion:
    - shard-apl:          NOTRUN -> [WARN][19] ([i915#2658]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_pread@exhaustion.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-kbl:          NOTRUN -> [WARN][20] ([i915#2658])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_ringfill@engines-basic@vecs0:
    - shard-skl:          [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html

  * igt@gem_userptr_blits@dmabuf-unsync:
    - shard-tglb:         NOTRUN -> [SKIP][23] ([i915#3297]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_userptr_blits@dmabuf-unsync.html

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

  * igt@gen7_exec_parse@basic-offset:
    - shard-tglb:         NOTRUN -> [SKIP][25] ([fdo#109289]) +2 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gen7_exec_parse@basic-offset.html

  * igt@gen9_exec_parse@batch-invalid-length:
    - shard-snb:          NOTRUN -> [SKIP][26] ([fdo#109271]) +425 similar issues
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb7/igt@gen9_exec_parse@batch-invalid-length.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-iclb:         [PASS][27] -> [FAIL][28] ([i915#454])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb1/igt@i915_pm_dc@dc6-dpms.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-tglb:         [PASS][29] -> [WARN][30] ([i915#2681] / [i915#2684])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@i915_pm_rc6_residency@rc6-idle.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
    - shard-tglb:         NOTRUN -> [SKIP][31] ([fdo#109506] / [i915#2411])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-glk:          [PASS][32] -> [FAIL][33] ([i915#2521])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
    - shard-kbl:          NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3777])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
    - shard-apl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#3777]) +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html

  * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#111614]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-tglb:         [PASS][37] -> [FAIL][38] ([i915#3722]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
    - shard-skl:          NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#3777])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#111615]) +2 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#3689]) +7 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs.html

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
    - shard-kbl:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3886]) +1 similar issue
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][43] ([i915#3689] / [i915#3886]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#3886]) +8 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - shard-skl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#3886]) +2 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-apl:          NOTRUN -> [SKIP][46] ([fdo#109271]) +179 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium@hdmi-edid-change-during-suspend:
    - shard-apl:          NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +11 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_chamelium@hdmi-edid-change-during-suspend.html

  * igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
    - shard-snb:          NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +18 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb2/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html

  * igt@kms_chamelium@vga-hpd-fast:
    - shard-tglb:         NOTRUN -> [SKIP][49] ([fdo#109284] / [fdo#111827]) +8 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_chamelium@vga-hpd-fast.html

  * igt@kms_color_chamelium@pipe-b-ctm-0-25:
    - shard-skl:          NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827]) +5 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_color_chamelium@pipe-b-ctm-0-25.html

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

  * igt@kms_content_protection@lic:
    - shard-apl:          NOTRUN -> [TIMEOUT][52] ([i915#1319])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_content_protection@lic.html

  * igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen:
    - shard-tglb:         NOTRUN -> [SKIP][53] ([fdo#109279] / [i915#3359]) +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent:
    - shard-snb:          [PASS][54] -> [SKIP][55] ([fdo#109271])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-snb7/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb5/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-tglb:         [PASS][56] -> [INCOMPLETE][57] ([i915#2411] / [i915#2828] / [i915#456])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][58] ([i915#3319])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen:
    - shard-skl:          NOTRUN -> [SKIP][59] ([fdo#109271]) +72 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-tglb:         [PASS][60] -> [INCOMPLETE][61] ([i915#2411] / [i915#456])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement:
    - shard-tglb:         NOTRUN -> [SKIP][62] ([i915#3359]) +2 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
    - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109274] / [fdo#109278])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html

  * igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium:
    - shard-tglb:         NOTRUN -> [SKIP][64] ([i915#3528])
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html

  * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][65] -> [FAIL][66] ([i915#2122])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk7/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-kbl:          [PASS][67] -> [DMESG-WARN][68] ([i915#180]) +5 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

  * igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
    - shard-skl:          [PASS][69] -> [FAIL][70] ([i915#2122])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile:
    - shard-iclb:         [PASS][71] -> [SKIP][72] ([i915#3701])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-tglb:         NOTRUN -> [SKIP][73] ([fdo#111825]) +20 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-kbl:          NOTRUN -> [SKIP][74] ([fdo#109271]) +30 similar issues
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu.html

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

  * igt@kms_plane_alpha_blend@pipe-a-alpha-basic:
    - shard-skl:          NOTRUN -> [FAIL][76] ([fdo#108145] / [i915#265])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html

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

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
    - shard-skl:          [PASS][78] -> [FAIL][79] ([fdo#108145] / [i915#265])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
    - shard-apl:          NOTRUN -> [FAIL][80] ([fdo#108145] / [i915#265]) +1 similar issue
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2:
    - shard-skl:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#658]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3:
    - shard-tglb:         NOTRUN -> [SKIP][82] ([i915#2920]) +2 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5:
    - shard-apl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658]) +4 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [PASS][84] -> [SKIP][85] ([fdo#109642] / [fdo#111068] / [i915#658])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr2_su@page_flip:
    - shard-kbl:          NOTRUN -> [SKIP][86] ([fdo#109271] / [i915#658])
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_psr2_su@page_flip.html

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

  * igt@kms_psr@psr2_suspend:
    - shard-iclb:         [PASS][88] -> [SKIP][89] ([fdo#109441])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr@psr2_suspend.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr@psr2_suspend.html

  * igt@kms_tv_load_detect@load-detect:
    - shard-tglb:         NOTRUN -> [SKIP][90] ([fdo#109309])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_tv_load_detect@load-detect.html

  * igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend:
    - shard-iclb:         NOTRUN -> [SKIP][91] ([fdo#109278])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend.html

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

  * igt@nouveau_crc@pipe-d-ctx-flip-detection:
    - shard-tglb:         NOTRUN -> [SKIP][93] ([i915#2530]) +1 similar issue
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@nouveau_crc@pipe-d-ctx-flip-detection.html

  * igt@perf@polling-parameterized:
    - shard-iclb:         [PASS][94] -> [FAIL][95] ([i915#1542])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@perf@polling-parameterized.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb1/igt@perf@polling-parameterized.html

  * igt@prime_nv_test@i915_import_cpu_mmap:
    - shard-tglb:         NOTRUN -> [SKIP][96] ([fdo#109291]) +1 similar issue
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@prime_nv_test@i915_import_cpu_mmap.html

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

  * igt@sysfs_clients@recycle:
    - shard-tglb:         NOTRUN -> [SKIP][99] ([i915#2994])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@sysfs_clients@recycle.html

  
#### Possible fixes ####

  * igt@gem_eio@in-flight-contexts-1us:
    - shard-tglb:         [TIMEOUT][100] ([i915#3063]) -> [PASS][101] +1 similar issue
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_eio@in-flight-contexts-1us.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_eio@in-flight-contexts-1us.html

  * igt@gem_exec_fair@basic-flow@rcs0:
    - shard-tglb:         [SKIP][102] ([i915#2848]) -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_exec_fair@basic-flow@rcs0.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_exec_fair@basic-flow@rcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [FAIL][104] ([i915#2842]) -> [PASS][105] +1 similar issue
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-tglb:         [FAIL][106] ([i915#2842]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@gem_exec_fair@basic-pace@vecs0.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_exec_nop@basic-parallel:
    - shard-glk:          [DMESG-WARN][108] ([i915#118]) -> [PASS][109] +1 similar issue
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@gem_exec_nop@basic-parallel.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_nop@basic-parallel.html

  * igt@gem_mmap_offset@clear:
    - shard-tglb:         [TIMEOUT][110] ([i915#2502]) -> [PASS][111]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_mmap_offset@clear.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_mmap_offset@clear.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-tglb:         [TIMEOUT][112] ([i915#1521]) -> [PASS][113]
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_tiled_swapping@non-threaded.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_tiled_swapping@non-threaded.html

  * igt@gem_workarounds@suspend-resume:
    - shard-apl:          [DMESG-WARN][114] ([i915#180]) -> [PASS][115]
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-apl8/igt@gem_workarounds@suspend-resume.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_workarounds@suspend-resume.html

  * igt@gem_workarounds@suspend-resume-fd:
    - shard-kbl:          [DMESG-WARN][116] ([i915#180]) -> [PASS][117]
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl7/igt@gem_workarounds@suspend-resume-fd.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-skl:          [DMESG-WARN][118] ([i915#1436] / [i915#1982] / [i915#716]) -> [PASS][119]
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl10/igt@gen9_exec_parse@allowed-single.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@gen9_exec_parse@allowed-single.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-tglb:         [FAIL][120] ([i915#3722]) -> [PASS][121] +1 similar issue
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-tglb:         [INCOMPLETE][122] ([i915#456]) -> [PASS][123]
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-tglb:         [FAIL][124] ([i915#2346]) -> [PASS][125]
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@kms_hdr@bpc-switch-dpms:
    - shard-skl:          [FAIL][126] ([i915#1188]) -> [PASS][127] +1 similar issue
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@kms_hdr@bpc-switch-dpms.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_hdr@bpc-switch-dpms.html

  * igt@kms_psr@psr2_primary_page_flip:
    - shard-iclb:         [SKIP][128] ([fdo#109441]) -> [PASS][129] +2 similar issues
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-skl:          [INCOMPLETE][130] ([i915#198]) -> [PASS][131]
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@sysfs_heartbeat_interval@mixed@rcs0:
    - shard-skl:          [FAIL][132] ([i915#1731]) -> [PASS][133]
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl3/igt@sysfs_heartbeat_interval@mixed@rcs0.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@sysfs_heartbeat_interval@mixed@rcs0.html

  
#### Warnings ####

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-tglb:         [FAIL][134] ([i915#2842]) -> [SKIP][135] ([i915#2848]) +5 similar issues
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_exec_fair@basic-none@vcs0.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [SKIP][136] ([i915#2848]) -> [FAIL][137] ([i915#2842]) +1 similar issue
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwo

== Logs ==

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

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

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

* Re: [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers Imre Deak
@ 2021-10-15 18:04   ` Juha-Pekka Heikkila
  2021-10-19  7:42     ` Jani Nikula
  2021-10-20  9:40   ` Ville Syrjälä
  1 sibling, 1 reply; 35+ messages in thread
From: Juha-Pekka Heikkila @ 2021-10-15 18:04 UTC (permalink / raw)
  To: Imre Deak, intel-gfx; +Cc: Ville Syrjälä, Jani Nikula

I did prefer v2 bit field graphics version comparison over this {from, 
until} for the simple reason it had runtime just one AND instead of two 
separate CMP but either way also for v3

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

On 15.10.2021 1.09, Imre Deak wrote:
> Add a table describing all the framebuffer modifiers used by i915 at one
> place. This has the benefit of deduplicating the listing of supported
> modifiers for each platform and checking the support of these modifiers
> on a given plane. This also simplifies in a similar way getting some
> attribute for a modifier, for instance checking if the modifier is a
> CCS modifier type.
> 
> While at it drop the cursor plane filtering from skl_plane_has_rc_ccs(),
> as the cursor plane is registered with DRM core elsewhere.
> 
> v1: Unchanged.
> v2:
> - Keep the plane caps calculation in the plane code and pass an enum
>    with these caps to intel_fb_get_modifiers(). (Ville)
> - Get the modifiers calling intel_fb_get_modifiers() in i9xx_plane.c as
>    well.
> v3:
> - s/.id/.modifier/ (Ville)
> - Keep modifier_desc vs. plane_cap filter conditions consistent. (Ville)
> - Drop redundant cursor plane check from skl_plane_has_rc_ccs(). (Ville)
> - Use from, until display version fields in modifier_desc instead of a mask. (Jani)
> - Unexport struct intel_modifier_desc, separate its decl and init. (Jani)
> - Remove enum pipe, plane_id forward decls from intel_fb.h, which are
>    not needed after v2.
> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> (v2)
> ---
>   drivers/gpu/drm/i915/display/i9xx_plane.c     |  30 +--
>   drivers/gpu/drm/i915/display/intel_cursor.c   |  19 +-
>   .../drm/i915/display/intel_display_types.h    |   1 -
>   drivers/gpu/drm/i915/display/intel_fb.c       | 159 ++++++++++++++++
>   drivers/gpu/drm/i915/display/intel_fb.h       |  13 ++
>   drivers/gpu/drm/i915/display/intel_sprite.c   |  35 +---
>   drivers/gpu/drm/i915/display/skl_scaler.c     |   1 +
>   .../drm/i915/display/skl_universal_plane.c    | 178 +++++-------------
>   8 files changed, 252 insertions(+), 184 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
> index b1439ba78f67b..a939accff7ee2 100644
> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
> @@ -60,22 +60,11 @@ static const u32 vlv_primary_formats[] = {
>   	DRM_FORMAT_XBGR16161616F,
>   };
>   
> -static const u64 i9xx_format_modifiers[] = {
> -	I915_FORMAT_MOD_X_TILED,
> -	DRM_FORMAT_MOD_LINEAR,
> -	DRM_FORMAT_MOD_INVALID
> -};
> -
>   static bool i8xx_plane_format_mod_supported(struct drm_plane *_plane,
>   					    u32 format, u64 modifier)
>   {
> -	switch (modifier) {
> -	case DRM_FORMAT_MOD_LINEAR:
> -	case I915_FORMAT_MOD_X_TILED:
> -		break;
> -	default:
> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>   		return false;
> -	}
>   
>   	switch (format) {
>   	case DRM_FORMAT_C8:
> @@ -92,13 +81,8 @@ static bool i8xx_plane_format_mod_supported(struct drm_plane *_plane,
>   static bool i965_plane_format_mod_supported(struct drm_plane *_plane,
>   					    u32 format, u64 modifier)
>   {
> -	switch (modifier) {
> -	case DRM_FORMAT_MOD_LINEAR:
> -	case I915_FORMAT_MOD_X_TILED:
> -		break;
> -	default:
> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>   		return false;
> -	}
>   
>   	switch (format) {
>   	case DRM_FORMAT_C8:
> @@ -768,6 +752,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
>   	struct intel_plane *plane;
>   	const struct drm_plane_funcs *plane_funcs;
>   	unsigned int supported_rotations;
> +	const u64 *modifiers;
>   	const u32 *formats;
>   	int num_formats;
>   	int ret, zpos;
> @@ -875,21 +860,26 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
>   		plane->disable_flip_done = ilk_primary_disable_flip_done;
>   	}
>   
> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_TILING);
> +
>   	if (DISPLAY_VER(dev_priv) >= 5 || IS_G4X(dev_priv))
>   		ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
>   					       0, plane_funcs,
>   					       formats, num_formats,
> -					       i9xx_format_modifiers,
> +					       modifiers,
>   					       DRM_PLANE_TYPE_PRIMARY,
>   					       "primary %c", pipe_name(pipe));
>   	else
>   		ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
>   					       0, plane_funcs,
>   					       formats, num_formats,
> -					       i9xx_format_modifiers,
> +					       modifiers,
>   					       DRM_PLANE_TYPE_PRIMARY,
>   					       "plane %c",
>   					       plane_name(plane->i9xx_plane));
> +
> +	kfree(modifiers);
> +
>   	if (ret)
>   		goto fail;
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
> index 11842f2126130..6b08d8bca5cd4 100644
> --- a/drivers/gpu/drm/i915/display/intel_cursor.c
> +++ b/drivers/gpu/drm/i915/display/intel_cursor.c
> @@ -28,11 +28,6 @@ static const u32 intel_cursor_formats[] = {
>   	DRM_FORMAT_ARGB8888,
>   };
>   
> -static const u64 cursor_format_modifiers[] = {
> -	DRM_FORMAT_MOD_LINEAR,
> -	DRM_FORMAT_MOD_INVALID
> -};
> -
>   static u32 intel_cursor_base(const struct intel_plane_state *plane_state)
>   {
>   	struct drm_i915_private *dev_priv =
> @@ -605,8 +600,10 @@ static bool i9xx_cursor_get_hw_state(struct intel_plane *plane,
>   static bool intel_cursor_format_mod_supported(struct drm_plane *_plane,
>   					      u32 format, u64 modifier)
>   {
> -	return modifier == DRM_FORMAT_MOD_LINEAR &&
> -		format == DRM_FORMAT_ARGB8888;
> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
> +		return false;
> +
> +	return format == DRM_FORMAT_ARGB8888;
>   }
>   
>   static int
> @@ -754,6 +751,7 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
>   {
>   	struct intel_plane *cursor;
>   	int ret, zpos;
> +	u64 *modifiers;
>   
>   	cursor = intel_plane_alloc();
>   	if (IS_ERR(cursor))
> @@ -784,13 +782,18 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
>   	if (IS_I845G(dev_priv) || IS_I865G(dev_priv) || HAS_CUR_FBC(dev_priv))
>   		cursor->cursor.size = ~0;
>   
> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_NO_CAPS);
> +
>   	ret = drm_universal_plane_init(&dev_priv->drm, &cursor->base,
>   				       0, &intel_cursor_plane_funcs,
>   				       intel_cursor_formats,
>   				       ARRAY_SIZE(intel_cursor_formats),
> -				       cursor_format_modifiers,
> +				       modifiers,
>   				       DRM_PLANE_TYPE_CURSOR,
>   				       "cursor %c", pipe_name(pipe));
> +
> +	kfree(modifiers);
> +
>   	if (ret)
>   		goto fail;
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> index 39e11eaec1a3f..50b4264f61d62 100644
> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> @@ -1336,7 +1336,6 @@ struct intel_plane {
>   	enum plane_id id;
>   	enum pipe pipe;
>   	bool has_fbc;
> -	bool has_ccs;
>   	bool need_async_flip_disable_wa;
>   	u32 frontbuffer_bit;
>   
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> index fa1f375e696bf..015d0655e65e3 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> @@ -13,6 +13,165 @@
>   
>   #define check_array_bounds(i915, a, i) drm_WARN_ON(&(i915)->drm, (i) >= ARRAY_SIZE(a))
>   
> +struct intel_modifier_desc {
> +	u64 modifier;
> +	struct {
> +		u8 from;
> +		u8 until;
> +	} display_ver;
> +#define DISPLAY_VER_ALL		{ 0, -1 }
> +
> +	u8 is_linear:1;
> +
> +	struct {
> +#define INTEL_CCS_RC		BIT(0)
> +#define INTEL_CCS_RC_CC		BIT(1)
> +#define INTEL_CCS_MC		BIT(2)
> +
> +#define INTEL_CCS_ANY		(INTEL_CCS_RC | INTEL_CCS_RC_CC | INTEL_CCS_MC)
> +		u8 type:3;
> +	} ccs;
> +};
> +
> +static const struct intel_modifier_desc intel_modifiers[] = {
> +	{
> +		.modifier = DRM_FORMAT_MOD_LINEAR,
> +		.display_ver = DISPLAY_VER_ALL,
> +
> +		.is_linear = true,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_X_TILED,
> +		.display_ver = DISPLAY_VER_ALL,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED,
> +		.display_ver = { 9, 13 },
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Yf_TILED,
> +		.display_ver = { 9, 11 },
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED_CCS,
> +		.display_ver = { 9, 11 },
> +
> +		.ccs.type = INTEL_CCS_RC,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
> +		.display_ver = { 9, 11 },
> +
> +		.ccs.type = INTEL_CCS_RC,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> +		.display_ver = { 12, 13 },
> +
> +		.ccs.type = INTEL_CCS_RC,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> +		.display_ver = { 12, 13 },
> +
> +		.ccs.type = INTEL_CCS_RC_CC,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
> +		.display_ver = { 12, 13 },
> +
> +		.ccs.type = INTEL_CCS_MC,
> +	},
> +};
> +
> +static bool is_ccs_type_modifier(const struct intel_modifier_desc *md, u8 ccs_type)
> +{
> +	return md->ccs.type & ccs_type;
> +}
> +
> +static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
> +				       u8 display_ver)
> +{
> +	return display_ver >= md->display_ver.from &&
> +	       display_ver <= md->display_ver.until;
> +}
> +
> +static bool plane_has_modifier(struct drm_i915_private *i915,
> +			       enum intel_plane_caps plane_caps,
> +			       const struct intel_modifier_desc *md)
> +{
> +	if (!check_modifier_display_ver(md, DISPLAY_VER(i915)))
> +		return false;
> +
> +	if (!md->is_linear &&
> +	    !(plane_caps & PLANE_HAS_TILING))
> +		return false;
> +
> +	if (is_ccs_type_modifier(md, INTEL_CCS_RC | INTEL_CCS_RC_CC) &&
> +	    !(plane_caps & PLANE_HAS_CCS_RC))
> +		return false;
> +
> +	if (is_ccs_type_modifier(md, INTEL_CCS_MC) &&
> +	    !(plane_caps & PLANE_HAS_CCS_MC))
> +		return false;
> +
> +	return true;
> +}
> +
> +/**
> + * intel_fb_plane_get_modifiers: Get the modifiers for the given platform and plane capabilities
> + * @i915: i915 device instance
> + * @plane_caps: capabilities for the plane the modifiers are queried for
> + *
> + * Returns:
> + * Returns the list of modifiers allowed by the @i915 platform and @plane_caps.
> + * The caller must free the returned buffer.
> + */
> +u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
> +				  enum intel_plane_caps plane_caps)
> +{
> +	u64 *list, *p;
> +	int count = 1;		/* +1 for invalid modifier terminator */
> +	int i;
> +
> +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> +			count++;
> +	}
> +
> +	list = kmalloc_array(count, sizeof(*list), GFP_KERNEL);
> +	if (drm_WARN_ON(&i915->drm, !list))
> +		return NULL;
> +
> +	p = list;
> +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> +			*p++ = intel_modifiers[i].modifier;
> +	}
> +	*p++ = DRM_FORMAT_MOD_INVALID;
> +
> +	return list;
> +}
> +
> +/**
> + * intel_fb_plane_supports_modifier: Determine if a modifier is supported by the given plane
> + * @plane: Plane to check the modifier support for
> + * @modifier: The modifier to check the support for
> + *
> + * Returns:
> + * %true if the @modifier is supported on @plane.
> + */
> +bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier)
> +{
> +	int i;
> +
> +	for (i = 0; i < plane->base.modifier_count; i++)
> +		if (plane->base.modifiers[i] == modifier)
> +			return true;
> +
> +	return false;
> +}
> +
>   bool is_ccs_plane(const struct drm_framebuffer *fb, int plane)
>   {
>   	if (!is_ccs_modifier(fb->modifier))
> diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
> index 1cbdd84502bdd..0f77e81e69d29 100644
> --- a/drivers/gpu/drm/i915/display/intel_fb.h
> +++ b/drivers/gpu/drm/i915/display/intel_fb.h
> @@ -6,6 +6,7 @@
>   #ifndef __INTEL_FB_H__
>   #define __INTEL_FB_H__
>   
> +#include <linux/bits.h>
>   #include <linux/types.h>
>   
>   struct drm_device;
> @@ -16,13 +17,25 @@ struct drm_i915_private;
>   struct drm_mode_fb_cmd2;
>   struct intel_fb_view;
>   struct intel_framebuffer;
> +struct intel_plane;
>   struct intel_plane_state;
>   
> +enum intel_plane_caps {
> +	PLANE_HAS_NO_CAPS = 0,
> +	PLANE_HAS_TILING = BIT(0),
> +	PLANE_HAS_CCS_RC = BIT(1),
> +	PLANE_HAS_CCS_MC = BIT(2),
> +};
> +
>   bool is_ccs_plane(const struct drm_framebuffer *fb, int plane);
>   bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane);
>   bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane);
>   bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane);
>   
> +u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
> +				  enum intel_plane_caps plane_caps);
> +bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
> +
>   bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane);
>   
>   int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane);
> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
> index 08116f41da26a..2f4f47ab9da03 100644
> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> @@ -45,6 +45,7 @@
>   #include "intel_atomic_plane.h"
>   #include "intel_de.h"
>   #include "intel_display_types.h"
> +#include "intel_fb.h"
>   #include "intel_frontbuffer.h"
>   #include "intel_sprite.h"
>   #include "i9xx_plane.h"
> @@ -1575,12 +1576,6 @@ static const u32 g4x_plane_formats[] = {
>   	DRM_FORMAT_VYUY,
>   };
>   
> -static const u64 i9xx_plane_format_modifiers[] = {
> -	I915_FORMAT_MOD_X_TILED,
> -	DRM_FORMAT_MOD_LINEAR,
> -	DRM_FORMAT_MOD_INVALID
> -};
> -
>   static const u32 snb_plane_formats[] = {
>   	DRM_FORMAT_XRGB8888,
>   	DRM_FORMAT_XBGR8888,
> @@ -1629,13 +1624,8 @@ static const u32 chv_pipe_b_sprite_formats[] = {
>   static bool g4x_sprite_format_mod_supported(struct drm_plane *_plane,
>   					    u32 format, u64 modifier)
>   {
> -	switch (modifier) {
> -	case DRM_FORMAT_MOD_LINEAR:
> -	case I915_FORMAT_MOD_X_TILED:
> -		break;
> -	default:
> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>   		return false;
> -	}
>   
>   	switch (format) {
>   	case DRM_FORMAT_XRGB8888:
> @@ -1655,13 +1645,8 @@ static bool g4x_sprite_format_mod_supported(struct drm_plane *_plane,
>   static bool snb_sprite_format_mod_supported(struct drm_plane *_plane,
>   					    u32 format, u64 modifier)
>   {
> -	switch (modifier) {
> -	case DRM_FORMAT_MOD_LINEAR:
> -	case I915_FORMAT_MOD_X_TILED:
> -		break;
> -	default:
> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>   		return false;
> -	}
>   
>   	switch (format) {
>   	case DRM_FORMAT_XRGB8888:
> @@ -1686,13 +1671,8 @@ static bool snb_sprite_format_mod_supported(struct drm_plane *_plane,
>   static bool vlv_sprite_format_mod_supported(struct drm_plane *_plane,
>   					    u32 format, u64 modifier)
>   {
> -	switch (modifier) {
> -	case DRM_FORMAT_MOD_LINEAR:
> -	case I915_FORMAT_MOD_X_TILED:
> -		break;
> -	default:
> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>   		return false;
> -	}
>   
>   	switch (format) {
>   	case DRM_FORMAT_C8:
> @@ -1776,7 +1756,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
>   			formats = vlv_plane_formats;
>   			num_formats = ARRAY_SIZE(vlv_plane_formats);
>   		}
> -		modifiers = i9xx_plane_format_modifiers;
>   
>   		plane_funcs = &vlv_sprite_funcs;
>   	} else if (DISPLAY_VER(dev_priv) >= 7) {
> @@ -1795,7 +1774,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
>   
>   		formats = snb_plane_formats;
>   		num_formats = ARRAY_SIZE(snb_plane_formats);
> -		modifiers = i9xx_plane_format_modifiers;
>   
>   		plane_funcs = &snb_sprite_funcs;
>   	} else {
> @@ -1806,7 +1784,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
>   		plane->max_stride = g4x_sprite_max_stride;
>   		plane->min_cdclk = g4x_sprite_min_cdclk;
>   
> -		modifiers = i9xx_plane_format_modifiers;
>   		if (IS_SANDYBRIDGE(dev_priv)) {
>   			formats = snb_plane_formats;
>   			num_formats = ARRAY_SIZE(snb_plane_formats);
> @@ -1833,11 +1810,15 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
>   	plane->id = PLANE_SPRITE0 + sprite;
>   	plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, plane->id);
>   
> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_TILING);
> +
>   	ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
>   				       0, plane_funcs,
>   				       formats, num_formats, modifiers,
>   				       DRM_PLANE_TYPE_OVERLAY,
>   				       "sprite %c", sprite_name(pipe, sprite));
> +	kfree(modifiers);
> +
>   	if (ret)
>   		goto fail;
>   
> diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
> index 37eabeff8197f..c2e94118566b6 100644
> --- a/drivers/gpu/drm/i915/display/skl_scaler.c
> +++ b/drivers/gpu/drm/i915/display/skl_scaler.c
> @@ -4,6 +4,7 @@
>    */
>   #include "intel_de.h"
>   #include "intel_display_types.h"
> +#include "intel_fb.h"
>   #include "skl_scaler.h"
>   #include "skl_universal_plane.h"
>   
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index a0e53a3b267aa..264b9a422a224 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -163,50 +163,6 @@ static const u32 icl_hdr_plane_formats[] = {
>   	DRM_FORMAT_XVYU16161616,
>   };
>   
> -static const u64 skl_plane_format_modifiers_noccs[] = {
> -	I915_FORMAT_MOD_Yf_TILED,
> -	I915_FORMAT_MOD_Y_TILED,
> -	I915_FORMAT_MOD_X_TILED,
> -	DRM_FORMAT_MOD_LINEAR,
> -	DRM_FORMAT_MOD_INVALID
> -};
> -
> -static const u64 skl_plane_format_modifiers_ccs[] = {
> -	I915_FORMAT_MOD_Yf_TILED_CCS,
> -	I915_FORMAT_MOD_Y_TILED_CCS,
> -	I915_FORMAT_MOD_Yf_TILED,
> -	I915_FORMAT_MOD_Y_TILED,
> -	I915_FORMAT_MOD_X_TILED,
> -	DRM_FORMAT_MOD_LINEAR,
> -	DRM_FORMAT_MOD_INVALID
> -};
> -
> -static const u64 gen12_plane_format_modifiers_mc_ccs[] = {
> -	I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> -	I915_FORMAT_MOD_Y_TILED,
> -	I915_FORMAT_MOD_X_TILED,
> -	DRM_FORMAT_MOD_LINEAR,
> -	DRM_FORMAT_MOD_INVALID
> -};
> -
> -static const u64 gen12_plane_format_modifiers_rc_ccs[] = {
> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> -	I915_FORMAT_MOD_Y_TILED,
> -	I915_FORMAT_MOD_X_TILED,
> -	DRM_FORMAT_MOD_LINEAR,
> -	DRM_FORMAT_MOD_INVALID
> -};
> -
> -static const u64 adlp_step_a_plane_format_modifiers[] = {
> -	I915_FORMAT_MOD_Y_TILED,
> -	I915_FORMAT_MOD_X_TILED,
> -	DRM_FORMAT_MOD_LINEAR,
> -	DRM_FORMAT_MOD_INVALID
> -};
> -
>   int skl_format_to_fourcc(int format, bool rgb_order, bool alpha)
>   {
>   	switch (format) {
> @@ -1870,42 +1826,13 @@ static const u32 *icl_get_plane_formats(struct drm_i915_private *dev_priv,
>   	}
>   }
>   
> -static bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
> -			      enum pipe pipe, enum plane_id plane_id)
> -{
> -	if (plane_id == PLANE_CURSOR)
> -		return false;
> -
> -	if (DISPLAY_VER(dev_priv) >= 11)
> -		return true;
> -
> -	if (IS_GEMINILAKE(dev_priv))
> -		return pipe != PIPE_C;
> -
> -	return pipe != PIPE_C &&
> -		(plane_id == PLANE_PRIMARY ||
> -		 plane_id == PLANE_SPRITE0);
> -}
> -
>   static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
>   					   u32 format, u64 modifier)
>   {
>   	struct intel_plane *plane = to_intel_plane(_plane);
>   
> -	switch (modifier) {
> -	case DRM_FORMAT_MOD_LINEAR:
> -	case I915_FORMAT_MOD_X_TILED:
> -	case I915_FORMAT_MOD_Y_TILED:
> -	case I915_FORMAT_MOD_Yf_TILED:
> -		break;
> -	case I915_FORMAT_MOD_Y_TILED_CCS:
> -	case I915_FORMAT_MOD_Yf_TILED_CCS:
> -		if (!plane->has_ccs)
> -			return false;
> -		break;
> -	default:
> +	if (!intel_fb_plane_supports_modifier(plane, modifier))
>   		return false;
> -	}
>   
>   	switch (format) {
>   	case DRM_FORMAT_XRGB8888:
> @@ -1953,45 +1880,13 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
>   	}
>   }
>   
> -static bool gen12_plane_supports_mc_ccs(struct drm_i915_private *dev_priv,
> -					enum plane_id plane_id)
> -{
> -	/* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */
> -	if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv) ||
> -	    IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_D0))
> -		return false;
> -
> -	/* Wa_22011186057 */
> -	if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
> -		return false;
> -
> -	return plane_id < PLANE_SPRITE4;
> -}
> -
>   static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
>   					     u32 format, u64 modifier)
>   {
> -	struct drm_i915_private *dev_priv = to_i915(_plane->dev);
>   	struct intel_plane *plane = to_intel_plane(_plane);
>   
> -	switch (modifier) {
> -	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
> -		if (!gen12_plane_supports_mc_ccs(dev_priv, plane->id))
> -			return false;
> -		fallthrough;
> -	case DRM_FORMAT_MOD_LINEAR:
> -	case I915_FORMAT_MOD_X_TILED:
> -	case I915_FORMAT_MOD_Y_TILED:
> -		break;
> -	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
> -	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
> -		/* Wa_22011186057 */
> -		if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
> -			return false;
> -		break;
> -	default:
> +	if (!intel_fb_plane_supports_modifier(plane, modifier))
>   		return false;
> -	}
>   
>   	switch (format) {
>   	case DRM_FORMAT_XRGB8888:
> @@ -2039,18 +1934,6 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
>   	}
>   }
>   
> -static const u64 *gen12_get_plane_modifiers(struct drm_i915_private *dev_priv,
> -					    enum plane_id plane_id)
> -{
> -	/* Wa_22011186057 */
> -	if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
> -		return adlp_step_a_plane_format_modifiers;
> -	else if (gen12_plane_supports_mc_ccs(dev_priv, plane_id))
> -		return gen12_plane_format_modifiers_mc_ccs;
> -	else
> -		return gen12_plane_format_modifiers_rc_ccs;
> -}
> -
>   static const struct drm_plane_funcs skl_plane_funcs = {
>   	.update_plane = drm_atomic_helper_update_plane,
>   	.disable_plane = drm_atomic_helper_disable_plane,
> @@ -2091,6 +1974,39 @@ skl_plane_disable_flip_done(struct intel_plane *plane)
>   	spin_unlock_irq(&i915->irq_lock);
>   }
>   
> +static bool skl_plane_has_rc_ccs(struct drm_i915_private *i915,
> +				 enum pipe pipe, enum plane_id plane_id)
> +{
> +	/* Wa_22011186057 */
> +	if (IS_ADLP_DISPLAY_STEP(i915, STEP_A0, STEP_B0))
> +		return false;
> +
> +	if (DISPLAY_VER(i915) >= 11)
> +		return true;
> +
> +	if (IS_GEMINILAKE(i915))
> +		return pipe != PIPE_C;
> +
> +	return pipe != PIPE_C &&
> +		(plane_id == PLANE_PRIMARY ||
> +		 plane_id == PLANE_SPRITE0);
> +}
> +
> +static bool gen12_plane_has_mc_ccs(struct drm_i915_private *i915,
> +				   enum plane_id plane_id)
> +{
> +	/* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */
> +	if (IS_DG1(i915) || IS_ROCKETLAKE(i915) ||
> +	    IS_TGL_DISPLAY_STEP(i915, STEP_A0, STEP_D0))
> +		return false;
> +
> +	/* Wa_22011186057 */
> +	if (IS_ADLP_DISPLAY_STEP(i915, STEP_A0, STEP_B0))
> +		return false;
> +
> +	return plane_id < PLANE_SPRITE4;
> +}
> +
>   struct intel_plane *
>   skl_universal_plane_create(struct drm_i915_private *dev_priv,
>   			   enum pipe pipe, enum plane_id plane_id)
> @@ -2098,6 +2014,7 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
>   	const struct drm_plane_funcs *plane_funcs;
>   	struct intel_plane *plane;
>   	enum drm_plane_type plane_type;
> +	enum intel_plane_caps plane_caps;
>   	unsigned int supported_rotations;
>   	unsigned int supported_csc;
>   	const u64 *modifiers;
> @@ -2159,29 +2076,34 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
>   		formats = skl_get_plane_formats(dev_priv, pipe,
>   						plane_id, &num_formats);
>   
> -	plane->has_ccs = skl_plane_has_ccs(dev_priv, pipe, plane_id);
> -	if (DISPLAY_VER(dev_priv) >= 12) {
> -		modifiers = gen12_get_plane_modifiers(dev_priv, plane_id);
> +	if (DISPLAY_VER(dev_priv) >= 12)
>   		plane_funcs = &gen12_plane_funcs;
> -	} else {
> -		if (plane->has_ccs)
> -			modifiers = skl_plane_format_modifiers_ccs;
> -		else
> -			modifiers = skl_plane_format_modifiers_noccs;
> +	else
>   		plane_funcs = &skl_plane_funcs;
> -	}
>   
>   	if (plane_id == PLANE_PRIMARY)
>   		plane_type = DRM_PLANE_TYPE_PRIMARY;
>   	else
>   		plane_type = DRM_PLANE_TYPE_OVERLAY;
>   
> +	plane_caps = PLANE_HAS_TILING;
> +	if (skl_plane_has_rc_ccs(dev_priv, pipe, plane_id))
> +		plane_caps |= PLANE_HAS_CCS_RC;
> +
> +	if (gen12_plane_has_mc_ccs(dev_priv, plane_id))
> +		plane_caps |= PLANE_HAS_CCS_MC;
> +
> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, plane_caps);
> +
>   	ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
>   				       0, plane_funcs,
>   				       formats, num_formats, modifiers,
>   				       plane_type,
>   				       "plane %d%c", plane_id + 1,
>   				       pipe_name(pipe));
> +
> +	kfree(modifiers);
> +
>   	if (ret)
>   		goto fail;
>   
> 


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

* Re: [Intel-gfx]  ✗ Fi.CI.IGT: failure for drm/i915: Simplify handling of modifiers (rev10)
  2021-10-15 11:19 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
@ 2021-10-18 12:10   ` Imre Deak
  2021-10-18 15:42     ` Petri Latvala
  0 siblings, 1 reply; 35+ messages in thread
From: Imre Deak @ 2021-10-18 12:10 UTC (permalink / raw)
  To: intel-gfx, Petri Latvala, Tomi P Sarvela

Hi Petri, Tomi,

could you check the failure below?

On Fri, Oct 15, 2021 at 11:19:13AM +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915: Simplify handling of modifiers (rev10)
> URL   : https://patchwork.freedesktop.org/series/95579/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_10741_full -> Patchwork_21343_full
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_21343_full absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_21343_full, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in Patchwork_21343_full:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@kms_vblank@pipe-a-wait-busy:
>     - shard-skl:          [PASS][1] -> [INCOMPLETE][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html

This is from Patchwork_21343/shard-skl1/19/dmesg.log , where the above
test passes and is followed by more passing tests, until
kms_busy/extended-modeset-hang-oldfb

also passes at least according to igt_runner.log, though I can't see it in
dmesg.log. After that:

[1091.672412] Overall timeout time exceeded, stopping.

Is it just an overall timeout problem, or some test after
kms_busy/extended-modeset-hand-oldfb?

> #### Suppressed ####
> 
>   The following results come from untrusted machines, tests, or statuses.
>   They do not affect the overall result.
> 
>   * {igt@kms_bw@linear-tiling-3-displays-3840x2160p}:
>     - shard-snb:          NOTRUN -> [FAIL][3]
>    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb6/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html
> 
>   * {igt@kms_bw@linear-tiling-4-displays-1920x1080p}:
>     - shard-apl:          NOTRUN -> [DMESG-FAIL][4]
>    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html
> 
>   
> Known issues
> ------------
> 
>   Here are the changes found in Patchwork_21343_full that come from known issues:
> 
> ### IGT changes ###
> 
> #### Issues hit ####
> 
>   * igt@feature_discovery@chamelium:
>     - shard-tglb:         NOTRUN -> [SKIP][5] ([fdo#111827])
>    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@feature_discovery@chamelium.html
> 
>   * igt@gem_ctx_persistence@hostile:
>     - shard-tglb:         [PASS][6] -> [FAIL][7] ([i915#2410])
>    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_ctx_persistence@hostile.html
>    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_ctx_persistence@hostile.html
> 
>   * igt@gem_ctx_persistence@legacy-engines-mixed:
>     - shard-snb:          NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#1099]) +3 similar issues
>    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb6/igt@gem_ctx_persistence@legacy-engines-mixed.html
> 
>   * igt@gem_exec_fair@basic-none-rrul@rcs0:
>     - shard-kbl:          [PASS][9] -> [FAIL][10] ([i915#2842])
>    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
>    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
> 
>   * igt@gem_exec_fair@basic-none-solo@rcs0:
>     - shard-kbl:          NOTRUN -> [FAIL][11] ([i915#2842])
>    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
> 
>   * igt@gem_exec_fair@basic-none-vip@rcs0:
>     - shard-tglb:         NOTRUN -> [FAIL][12] ([i915#2842])
>    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@gem_exec_fair@basic-none-vip@rcs0.html
> 
>   * igt@gem_exec_fair@basic-pace-solo@rcs0:
>     - shard-iclb:         [PASS][13] -> [FAIL][14] ([i915#2842])
>    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@gem_exec_fair@basic-pace-solo@rcs0.html
>    [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@gem_exec_fair@basic-pace-solo@rcs0.html
> 
>   * igt@gem_exec_whisper@basic-queues-forked-all:
>     - shard-glk:          [PASS][15] -> [DMESG-WARN][16] ([i915#118])
>    [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk2/igt@gem_exec_whisper@basic-queues-forked-all.html
>    [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@gem_exec_whisper@basic-queues-forked-all.html
> 
>   * igt@gem_huc_copy@huc-copy:
>     - shard-apl:          NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#2190])
>    [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@gem_huc_copy@huc-copy.html
>     - shard-kbl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#2190])
>    [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_huc_copy@huc-copy.html
> 
>   * igt@gem_pread@exhaustion:
>     - shard-apl:          NOTRUN -> [WARN][19] ([i915#2658]) +1 similar issue
>    [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_pread@exhaustion.html
> 
>   * igt@gem_pwrite@basic-exhaustion:
>     - shard-kbl:          NOTRUN -> [WARN][20] ([i915#2658])
>    [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_pwrite@basic-exhaustion.html
> 
>   * igt@gem_ringfill@engines-basic@vecs0:
>     - shard-skl:          [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +1 similar issue
>    [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html
>    [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html
> 
>   * igt@gem_userptr_blits@dmabuf-unsync:
>     - shard-tglb:         NOTRUN -> [SKIP][23] ([i915#3297]) +1 similar issue
>    [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_userptr_blits@dmabuf-unsync.html
> 
>   * igt@gem_userptr_blits@input-checking:
>     - shard-snb:          NOTRUN -> [DMESG-WARN][24] ([i915#3002])
>    [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb2/igt@gem_userptr_blits@input-checking.html
> 
>   * igt@gen7_exec_parse@basic-offset:
>     - shard-tglb:         NOTRUN -> [SKIP][25] ([fdo#109289]) +2 similar issues
>    [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gen7_exec_parse@basic-offset.html
> 
>   * igt@gen9_exec_parse@batch-invalid-length:
>     - shard-snb:          NOTRUN -> [SKIP][26] ([fdo#109271]) +425 similar issues
>    [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb7/igt@gen9_exec_parse@batch-invalid-length.html
> 
>   * igt@i915_pm_dc@dc6-dpms:
>     - shard-iclb:         [PASS][27] -> [FAIL][28] ([i915#454])
>    [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb1/igt@i915_pm_dc@dc6-dpms.html
>    [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
> 
>   * igt@i915_pm_rc6_residency@rc6-idle:
>     - shard-tglb:         [PASS][29] -> [WARN][30] ([i915#2681] / [i915#2684])
>    [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@i915_pm_rc6_residency@rc6-idle.html
>    [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@i915_pm_rc6_residency@rc6-idle.html
> 
>   * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
>     - shard-tglb:         NOTRUN -> [SKIP][31] ([fdo#109506] / [i915#2411])
>    [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
> 
>   * igt@kms_async_flips@alternate-sync-async-flip:
>     - shard-glk:          [PASS][32] -> [FAIL][33] ([i915#2521])
>    [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
>    [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
> 
>   * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
>     - shard-kbl:          NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3777])
>    [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
>     - shard-apl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#3777]) +1 similar issue
>    [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
> 
>   * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
>     - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#111614]) +1 similar issue
>    [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
> 
>   * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
>     - shard-tglb:         [PASS][37] -> [FAIL][38] ([i915#3722]) +1 similar issue
>    [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
>    [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
> 
>   * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
>     - shard-skl:          NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#3777])
>    [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
> 
>   * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
>     - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#111615]) +2 similar issues
>    [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
> 
>   * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs:
>     - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#3689]) +7 similar issues
>    [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs.html
> 
>   * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
>     - shard-kbl:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3886]) +1 similar issue
>    [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html
> 
>   * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs:
>     - shard-tglb:         NOTRUN -> [SKIP][43] ([i915#3689] / [i915#3886]) +1 similar issue
>    [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs.html
> 
>   * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
>     - shard-apl:          NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#3886]) +8 similar issues
>    [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
> 
>   * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
>     - shard-skl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#3886]) +2 similar issues
>    [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html
> 
>   * igt@kms_cdclk@mode-transition:
>     - shard-apl:          NOTRUN -> [SKIP][46] ([fdo#109271]) +179 similar issues
>    [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_cdclk@mode-transition.html
> 
>   * igt@kms_chamelium@hdmi-edid-change-during-suspend:
>     - shard-apl:          NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +11 similar issues
>    [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_chamelium@hdmi-edid-change-during-suspend.html
> 
>   * igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
>     - shard-snb:          NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +18 similar issues
>    [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb2/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html
> 
>   * igt@kms_chamelium@vga-hpd-fast:
>     - shard-tglb:         NOTRUN -> [SKIP][49] ([fdo#109284] / [fdo#111827]) +8 similar issues
>    [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_chamelium@vga-hpd-fast.html
> 
>   * igt@kms_color_chamelium@pipe-b-ctm-0-25:
>     - shard-skl:          NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827]) +5 similar issues
>    [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_color_chamelium@pipe-b-ctm-0-25.html
> 
>   * igt@kms_color_chamelium@pipe-d-ctm-0-25:
>     - shard-kbl:          NOTRUN -> [SKIP][51] ([fdo#109271] / [fdo#111827])
>    [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_color_chamelium@pipe-d-ctm-0-25.html
> 
>   * igt@kms_content_protection@lic:
>     - shard-apl:          NOTRUN -> [TIMEOUT][52] ([i915#1319])
>    [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_content_protection@lic.html
> 
>   * igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen:
>     - shard-tglb:         NOTRUN -> [SKIP][53] ([fdo#109279] / [i915#3359]) +1 similar issue
>    [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen.html
> 
>   * igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent:
>     - shard-snb:          [PASS][54] -> [SKIP][55] ([fdo#109271])
>    [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-snb7/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html
>    [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb5/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html
> 
>   * igt@kms_cursor_crc@pipe-a-cursor-suspend:
>     - shard-tglb:         [PASS][56] -> [INCOMPLETE][57] ([i915#2411] / [i915#2828] / [i915#456])
>    [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
>    [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
> 
>   * igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen:
>     - shard-tglb:         NOTRUN -> [SKIP][58] ([i915#3319])
>    [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen.html
> 
>   * igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen:
>     - shard-skl:          NOTRUN -> [SKIP][59] ([fdo#109271]) +72 similar issues
>    [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen.html
> 
>   * igt@kms_cursor_crc@pipe-c-cursor-suspend:
>     - shard-tglb:         [PASS][60] -> [INCOMPLETE][61] ([i915#2411] / [i915#456])
>    [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
>    [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
> 
>   * igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement:
>     - shard-tglb:         NOTRUN -> [SKIP][62] ([i915#3359]) +2 similar issues
>    [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement.html
> 
>   * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
>     - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109274] / [fdo#109278])
>    [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
> 
>   * igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium:
>     - shard-tglb:         NOTRUN -> [SKIP][64] ([i915#3528])
>    [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html
> 
>   * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2:
>     - shard-glk:          [PASS][65] -> [FAIL][66] ([i915#2122])
>    [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
>    [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk7/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
> 
>   * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
>     - shard-kbl:          [PASS][67] -> [DMESG-WARN][68] ([i915#180]) +5 similar issues
>    [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
>    [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
> 
>   * igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
>     - shard-skl:          [PASS][69] -> [FAIL][70] ([i915#2122])
>    [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
>    [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
> 
>   * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile:
>     - shard-iclb:         [PASS][71] -> [SKIP][72] ([i915#3701])
>    [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
>    [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
> 
>   * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt:
>     - shard-tglb:         NOTRUN -> [SKIP][73] ([fdo#111825]) +20 similar issues
>    [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html
> 
>   * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu:
>     - shard-kbl:          NOTRUN -> [SKIP][74] ([fdo#109271]) +30 similar issues
>    [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu.html
> 
>   * igt@kms_pipe_crc_basic@read-crc-pipe-d:
>     - shard-apl:          NOTRUN -> [SKIP][75] ([fdo#109271] / [i915#533])
>    [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_pipe_crc_basic@read-crc-pipe-d.html
> 
>   * igt@kms_plane_alpha_blend@pipe-a-alpha-basic:
>     - shard-skl:          NOTRUN -> [FAIL][76] ([fdo#108145] / [i915#265])
>    [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html
> 
>   * igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:
>     - shard-apl:          NOTRUN -> [FAIL][77] ([i915#265])
>    [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html
> 
>   * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
>     - shard-skl:          [PASS][78] -> [FAIL][79] ([fdo#108145] / [i915#265])
>    [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
>    [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
> 
>   * igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
>     - shard-apl:          NOTRUN -> [FAIL][80] ([fdo#108145] / [i915#265]) +1 similar issue
>    [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html
> 
>   * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2:
>     - shard-skl:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#658]) +1 similar issue
>    [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2.html
> 
>   * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3:
>     - shard-tglb:         NOTRUN -> [SKIP][82] ([i915#2920]) +2 similar issues
>    [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3.html
> 
>   * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5:
>     - shard-apl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658]) +4 similar issues
>    [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5.html
> 
>   * igt@kms_psr2_su@frontbuffer:
>     - shard-iclb:         [PASS][84] -> [SKIP][85] ([fdo#109642] / [fdo#111068] / [i915#658])
>    [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
>    [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr2_su@frontbuffer.html
> 
>   * igt@kms_psr2_su@page_flip:
>     - shard-kbl:          NOTRUN -> [SKIP][86] ([fdo#109271] / [i915#658])
>    [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_psr2_su@page_flip.html
> 
>   * igt@kms_psr@psr2_sprite_render:
>     - shard-tglb:         NOTRUN -> [FAIL][87] ([i915#132] / [i915#3467])
>    [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_psr@psr2_sprite_render.html
> 
>   * igt@kms_psr@psr2_suspend:
>     - shard-iclb:         [PASS][88] -> [SKIP][89] ([fdo#109441])
>    [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr@psr2_suspend.html
>    [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr@psr2_suspend.html
> 
>   * igt@kms_tv_load_detect@load-detect:
>     - shard-tglb:         NOTRUN -> [SKIP][90] ([fdo#109309])
>    [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_tv_load_detect@load-detect.html
> 
>   * igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend:
>     - shard-iclb:         NOTRUN -> [SKIP][91] ([fdo#109278])
>    [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend.html
> 
>   * igt@kms_writeback@writeback-fb-id:
>     - shard-apl:          NOTRUN -> [SKIP][92] ([fdo#109271] / [i915#2437])
>    [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_writeback@writeback-fb-id.html
> 
>   * igt@nouveau_crc@pipe-d-ctx-flip-detection:
>     - shard-tglb:         NOTRUN -> [SKIP][93] ([i915#2530]) +1 similar issue
>    [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@nouveau_crc@pipe-d-ctx-flip-detection.html
> 
>   * igt@perf@polling-parameterized:
>     - shard-iclb:         [PASS][94] -> [FAIL][95] ([i915#1542])
>    [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@perf@polling-parameterized.html
>    [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb1/igt@perf@polling-parameterized.html
> 
>   * igt@prime_nv_test@i915_import_cpu_mmap:
>     - shard-tglb:         NOTRUN -> [SKIP][96] ([fdo#109291]) +1 similar issue
>    [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@prime_nv_test@i915_import_cpu_mmap.html
> 
>   * igt@sysfs_clients@fair-1:
>     - shard-apl:          NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#2994]) +3 similar issues
>    [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@sysfs_clients@fair-1.html
>     - shard-kbl:          NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#2994])
>    [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@sysfs_clients@fair-1.html
> 
>   * igt@sysfs_clients@recycle:
>     - shard-tglb:         NOTRUN -> [SKIP][99] ([i915#2994])
>    [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@sysfs_clients@recycle.html
> 
>   
> #### Possible fixes ####
> 
>   * igt@gem_eio@in-flight-contexts-1us:
>     - shard-tglb:         [TIMEOUT][100] ([i915#3063]) -> [PASS][101] +1 similar issue
>    [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_eio@in-flight-contexts-1us.html
>    [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_eio@in-flight-contexts-1us.html
> 
>   * igt@gem_exec_fair@basic-flow@rcs0:
>     - shard-tglb:         [SKIP][102] ([i915#2848]) -> [PASS][103]
>    [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_exec_fair@basic-flow@rcs0.html
>    [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_exec_fair@basic-flow@rcs0.html
> 
>   * igt@gem_exec_fair@basic-pace-share@rcs0:
>     - shard-glk:          [FAIL][104] ([i915#2842]) -> [PASS][105] +1 similar issue
>    [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
>    [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html
> 
>   * igt@gem_exec_fair@basic-pace@vecs0:
>     - shard-tglb:         [FAIL][106] ([i915#2842]) -> [PASS][107]
>    [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@gem_exec_fair@basic-pace@vecs0.html
>    [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_exec_fair@basic-pace@vecs0.html
> 
>   * igt@gem_exec_nop@basic-parallel:
>     - shard-glk:          [DMESG-WARN][108] ([i915#118]) -> [PASS][109] +1 similar issue
>    [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@gem_exec_nop@basic-parallel.html
>    [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_nop@basic-parallel.html
> 
>   * igt@gem_mmap_offset@clear:
>     - shard-tglb:         [TIMEOUT][110] ([i915#2502]) -> [PASS][111]
>    [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_mmap_offset@clear.html
>    [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_mmap_offset@clear.html
> 
>   * igt@gem_tiled_swapping@non-threaded:
>     - shard-tglb:         [TIMEOUT][112] ([i915#1521]) -> [PASS][113]
>    [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_tiled_swapping@non-threaded.html
>    [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_tiled_swapping@non-threaded.html
> 
>   * igt@gem_workarounds@suspend-resume:
>     - shard-apl:          [DMESG-WARN][114] ([i915#180]) -> [PASS][115]
>    [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-apl8/igt@gem_workarounds@suspend-resume.html
>    [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_workarounds@suspend-resume.html
> 
>   * igt@gem_workarounds@suspend-resume-fd:
>     - shard-kbl:          [DMESG-WARN][116] ([i915#180]) -> [PASS][117]
>    [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl7/igt@gem_workarounds@suspend-resume-fd.html
>    [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_workarounds@suspend-resume-fd.html
> 
>   * igt@gen9_exec_parse@allowed-single:
>     - shard-skl:          [DMESG-WARN][118] ([i915#1436] / [i915#1982] / [i915#716]) -> [PASS][119]
>    [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl10/igt@gen9_exec_parse@allowed-single.html
>    [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@gen9_exec_parse@allowed-single.html
> 
>   * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
>     - shard-tglb:         [FAIL][120] ([i915#3722]) -> [PASS][121] +1 similar issue
>    [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
>    [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
> 
>   * igt@kms_cursor_crc@pipe-b-cursor-suspend:
>     - shard-tglb:         [INCOMPLETE][122] ([i915#456]) -> [PASS][123]
>    [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
>    [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
> 
>   * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
>     - shard-tglb:         [FAIL][124] ([i915#2346]) -> [PASS][125]
>    [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
>    [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
> 
>   * igt@kms_hdr@bpc-switch-dpms:
>     - shard-skl:          [FAIL][126] ([i915#1188]) -> [PASS][127] +1 similar issue
>    [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@kms_hdr@bpc-switch-dpms.html
>    [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_hdr@bpc-switch-dpms.html
> 
>   * igt@kms_psr@psr2_primary_page_flip:
>     - shard-iclb:         [SKIP][128] ([fdo#109441]) -> [PASS][129] +2 similar issues
>    [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html
>    [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
> 
>   * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
>     - shard-skl:          [INCOMPLETE][130] ([i915#198]) -> [PASS][131]
>    [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
>    [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
> 
>   * igt@sysfs_heartbeat_interval@mixed@rcs0:
>     - shard-skl:          [FAIL][132] ([i915#1731]) -> [PASS][133]
>    [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl3/igt@sysfs_heartbeat_interval@mixed@rcs0.html
>    [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@sysfs_heartbeat_interval@mixed@rcs0.html
> 
>   
> #### Warnings ####
> 
>   * igt@gem_exec_fair@basic-none@vcs0:
>     - shard-tglb:         [FAIL][134] ([i915#2842]) -> [SKIP][135] ([i915#2848]) +5 similar issues
>    [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_exec_fair@basic-none@vcs0.html
>    [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_exec_fair@basic-none@vcs0.html
> 
>   * igt@gem_exec_fair@basic-pace-share@rcs0:
>     - shard-tglb:         [SKIP][136] ([i915#2848]) -> [FAIL][137] ([i915#2842]) +1 similar issue
>    [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_exec_fair@basic-pace-share@rcs0.html
>    [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwo
> 
> == Logs ==
> 
> For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/index.html

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

* Re: [Intel-gfx]  ✗ Fi.CI.IGT: failure for drm/i915: Simplify handling of modifiers (rev10)
  2021-10-18 12:10   ` Imre Deak
@ 2021-10-18 15:42     ` Petri Latvala
  2021-10-18 16:10       ` Imre Deak
  0 siblings, 1 reply; 35+ messages in thread
From: Petri Latvala @ 2021-10-18 15:42 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx, Tomi P Sarvela

On Mon, Oct 18, 2021 at 03:10:54PM +0300, Imre Deak wrote:
> Hi Petri, Tomi,
> 
> could you check the failure below?
> 
> On Fri, Oct 15, 2021 at 11:19:13AM +0000, Patchwork wrote:
> > == Series Details ==
> > 
> > Series: drm/i915: Simplify handling of modifiers (rev10)
> > URL   : https://patchwork.freedesktop.org/series/95579/
> > State : failure
> > 
> > == Summary ==
> > 
> > CI Bug Log - changes from CI_DRM_10741_full -> Patchwork_21343_full
> > ====================================================
> > 
> > Summary
> > -------
> > 
> >   **FAILURE**
> > 
> >   Serious unknown changes coming with Patchwork_21343_full absolutely need to be
> >   verified manually.
> >   
> >   If you think the reported changes have nothing to do with the changes
> >   introduced in Patchwork_21343_full, please notify your bug team to allow them
> >   to document this new failure mode, which will reduce false positives in CI.
> > 
> > Possible new issues
> > -------------------
> > 
> >   Here are the unknown changes that may have been introduced in Patchwork_21343_full:
> > 
> > ### IGT changes ###
> > 
> > #### Possible regressions ####
> > 
> >   * igt@kms_vblank@pipe-a-wait-busy:
> >     - shard-skl:          [PASS][1] -> [INCOMPLETE][2]
> >    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html
> >    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html
> 
> This is from Patchwork_21343/shard-skl1/19/dmesg.log , where the above
> test passes and is followed by more passing tests, until
> kms_busy/extended-modeset-hang-oldfb
> 
> also passes at least according to igt_runner.log, though I can't see it in
> dmesg.log. After that:
> 
> [1091.672412] Overall timeout time exceeded, stopping.
> 
> Is it just an overall timeout problem, or some test after
> kms_busy/extended-modeset-hand-oldfb?

The test passed but igt_runner's journal.txt for it was left
empty. Reason for that is unknown (fs corruption, or something like
that). Because overall timeout got triggered, igt_results was invoked
against that shard execution in jenkins master host, overwriting the
DUT-written one, and because the journal didn't state the subtest
started, it was parsed as being incomplete.

The logs unfortunately were not able to give any indication as to why
the journal file was left empty. igt_runner syncs it when writing to
it, and the test execution continued normally after that particular
test.



-- 
Petri Latvala


> 
> > #### Suppressed ####
> > 
> >   The following results come from untrusted machines, tests, or statuses.
> >   They do not affect the overall result.
> > 
> >   * {igt@kms_bw@linear-tiling-3-displays-3840x2160p}:
> >     - shard-snb:          NOTRUN -> [FAIL][3]
> >    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb6/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html
> > 
> >   * {igt@kms_bw@linear-tiling-4-displays-1920x1080p}:
> >     - shard-apl:          NOTRUN -> [DMESG-FAIL][4]
> >    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html
> > 
> >   
> > Known issues
> > ------------
> > 
> >   Here are the changes found in Patchwork_21343_full that come from known issues:
> > 
> > ### IGT changes ###
> > 
> > #### Issues hit ####
> > 
> >   * igt@feature_discovery@chamelium:
> >     - shard-tglb:         NOTRUN -> [SKIP][5] ([fdo#111827])
> >    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@feature_discovery@chamelium.html
> > 
> >   * igt@gem_ctx_persistence@hostile:
> >     - shard-tglb:         [PASS][6] -> [FAIL][7] ([i915#2410])
> >    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_ctx_persistence@hostile.html
> >    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_ctx_persistence@hostile.html
> > 
> >   * igt@gem_ctx_persistence@legacy-engines-mixed:
> >     - shard-snb:          NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#1099]) +3 similar issues
> >    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb6/igt@gem_ctx_persistence@legacy-engines-mixed.html
> > 
> >   * igt@gem_exec_fair@basic-none-rrul@rcs0:
> >     - shard-kbl:          [PASS][9] -> [FAIL][10] ([i915#2842])
> >    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
> >    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
> > 
> >   * igt@gem_exec_fair@basic-none-solo@rcs0:
> >     - shard-kbl:          NOTRUN -> [FAIL][11] ([i915#2842])
> >    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
> > 
> >   * igt@gem_exec_fair@basic-none-vip@rcs0:
> >     - shard-tglb:         NOTRUN -> [FAIL][12] ([i915#2842])
> >    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@gem_exec_fair@basic-none-vip@rcs0.html
> > 
> >   * igt@gem_exec_fair@basic-pace-solo@rcs0:
> >     - shard-iclb:         [PASS][13] -> [FAIL][14] ([i915#2842])
> >    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@gem_exec_fair@basic-pace-solo@rcs0.html
> >    [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@gem_exec_fair@basic-pace-solo@rcs0.html
> > 
> >   * igt@gem_exec_whisper@basic-queues-forked-all:
> >     - shard-glk:          [PASS][15] -> [DMESG-WARN][16] ([i915#118])
> >    [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk2/igt@gem_exec_whisper@basic-queues-forked-all.html
> >    [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@gem_exec_whisper@basic-queues-forked-all.html
> > 
> >   * igt@gem_huc_copy@huc-copy:
> >     - shard-apl:          NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#2190])
> >    [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@gem_huc_copy@huc-copy.html
> >     - shard-kbl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#2190])
> >    [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_huc_copy@huc-copy.html
> > 
> >   * igt@gem_pread@exhaustion:
> >     - shard-apl:          NOTRUN -> [WARN][19] ([i915#2658]) +1 similar issue
> >    [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_pread@exhaustion.html
> > 
> >   * igt@gem_pwrite@basic-exhaustion:
> >     - shard-kbl:          NOTRUN -> [WARN][20] ([i915#2658])
> >    [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_pwrite@basic-exhaustion.html
> > 
> >   * igt@gem_ringfill@engines-basic@vecs0:
> >     - shard-skl:          [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +1 similar issue
> >    [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html
> >    [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html
> > 
> >   * igt@gem_userptr_blits@dmabuf-unsync:
> >     - shard-tglb:         NOTRUN -> [SKIP][23] ([i915#3297]) +1 similar issue
> >    [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_userptr_blits@dmabuf-unsync.html
> > 
> >   * igt@gem_userptr_blits@input-checking:
> >     - shard-snb:          NOTRUN -> [DMESG-WARN][24] ([i915#3002])
> >    [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb2/igt@gem_userptr_blits@input-checking.html
> > 
> >   * igt@gen7_exec_parse@basic-offset:
> >     - shard-tglb:         NOTRUN -> [SKIP][25] ([fdo#109289]) +2 similar issues
> >    [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gen7_exec_parse@basic-offset.html
> > 
> >   * igt@gen9_exec_parse@batch-invalid-length:
> >     - shard-snb:          NOTRUN -> [SKIP][26] ([fdo#109271]) +425 similar issues
> >    [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb7/igt@gen9_exec_parse@batch-invalid-length.html
> > 
> >   * igt@i915_pm_dc@dc6-dpms:
> >     - shard-iclb:         [PASS][27] -> [FAIL][28] ([i915#454])
> >    [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb1/igt@i915_pm_dc@dc6-dpms.html
> >    [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
> > 
> >   * igt@i915_pm_rc6_residency@rc6-idle:
> >     - shard-tglb:         [PASS][29] -> [WARN][30] ([i915#2681] / [i915#2684])
> >    [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@i915_pm_rc6_residency@rc6-idle.html
> >    [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@i915_pm_rc6_residency@rc6-idle.html
> > 
> >   * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
> >     - shard-tglb:         NOTRUN -> [SKIP][31] ([fdo#109506] / [i915#2411])
> >    [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
> > 
> >   * igt@kms_async_flips@alternate-sync-async-flip:
> >     - shard-glk:          [PASS][32] -> [FAIL][33] ([i915#2521])
> >    [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
> >    [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
> > 
> >   * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
> >     - shard-kbl:          NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3777])
> >    [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
> >     - shard-apl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#3777]) +1 similar issue
> >    [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
> > 
> >   * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
> >     - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#111614]) +1 similar issue
> >    [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
> > 
> >   * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
> >     - shard-tglb:         [PASS][37] -> [FAIL][38] ([i915#3722]) +1 similar issue
> >    [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
> >    [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
> > 
> >   * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
> >     - shard-skl:          NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#3777])
> >    [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
> > 
> >   * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
> >     - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#111615]) +2 similar issues
> >    [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
> > 
> >   * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs:
> >     - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#3689]) +7 similar issues
> >    [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs.html
> > 
> >   * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
> >     - shard-kbl:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3886]) +1 similar issue
> >    [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html
> > 
> >   * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs:
> >     - shard-tglb:         NOTRUN -> [SKIP][43] ([i915#3689] / [i915#3886]) +1 similar issue
> >    [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs.html
> > 
> >   * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
> >     - shard-apl:          NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#3886]) +8 similar issues
> >    [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
> > 
> >   * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
> >     - shard-skl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#3886]) +2 similar issues
> >    [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html
> > 
> >   * igt@kms_cdclk@mode-transition:
> >     - shard-apl:          NOTRUN -> [SKIP][46] ([fdo#109271]) +179 similar issues
> >    [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_cdclk@mode-transition.html
> > 
> >   * igt@kms_chamelium@hdmi-edid-change-during-suspend:
> >     - shard-apl:          NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +11 similar issues
> >    [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_chamelium@hdmi-edid-change-during-suspend.html
> > 
> >   * igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
> >     - shard-snb:          NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +18 similar issues
> >    [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb2/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html
> > 
> >   * igt@kms_chamelium@vga-hpd-fast:
> >     - shard-tglb:         NOTRUN -> [SKIP][49] ([fdo#109284] / [fdo#111827]) +8 similar issues
> >    [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_chamelium@vga-hpd-fast.html
> > 
> >   * igt@kms_color_chamelium@pipe-b-ctm-0-25:
> >     - shard-skl:          NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827]) +5 similar issues
> >    [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_color_chamelium@pipe-b-ctm-0-25.html
> > 
> >   * igt@kms_color_chamelium@pipe-d-ctm-0-25:
> >     - shard-kbl:          NOTRUN -> [SKIP][51] ([fdo#109271] / [fdo#111827])
> >    [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_color_chamelium@pipe-d-ctm-0-25.html
> > 
> >   * igt@kms_content_protection@lic:
> >     - shard-apl:          NOTRUN -> [TIMEOUT][52] ([i915#1319])
> >    [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_content_protection@lic.html
> > 
> >   * igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen:
> >     - shard-tglb:         NOTRUN -> [SKIP][53] ([fdo#109279] / [i915#3359]) +1 similar issue
> >    [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen.html
> > 
> >   * igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent:
> >     - shard-snb:          [PASS][54] -> [SKIP][55] ([fdo#109271])
> >    [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-snb7/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html
> >    [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb5/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html
> > 
> >   * igt@kms_cursor_crc@pipe-a-cursor-suspend:
> >     - shard-tglb:         [PASS][56] -> [INCOMPLETE][57] ([i915#2411] / [i915#2828] / [i915#456])
> >    [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
> >    [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
> > 
> >   * igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen:
> >     - shard-tglb:         NOTRUN -> [SKIP][58] ([i915#3319])
> >    [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen.html
> > 
> >   * igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen:
> >     - shard-skl:          NOTRUN -> [SKIP][59] ([fdo#109271]) +72 similar issues
> >    [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen.html
> > 
> >   * igt@kms_cursor_crc@pipe-c-cursor-suspend:
> >     - shard-tglb:         [PASS][60] -> [INCOMPLETE][61] ([i915#2411] / [i915#456])
> >    [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
> >    [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
> > 
> >   * igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement:
> >     - shard-tglb:         NOTRUN -> [SKIP][62] ([i915#3359]) +2 similar issues
> >    [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement.html
> > 
> >   * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
> >     - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109274] / [fdo#109278])
> >    [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
> > 
> >   * igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium:
> >     - shard-tglb:         NOTRUN -> [SKIP][64] ([i915#3528])
> >    [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html
> > 
> >   * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2:
> >     - shard-glk:          [PASS][65] -> [FAIL][66] ([i915#2122])
> >    [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
> >    [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk7/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
> > 
> >   * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
> >     - shard-kbl:          [PASS][67] -> [DMESG-WARN][68] ([i915#180]) +5 similar issues
> >    [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
> >    [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
> > 
> >   * igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
> >     - shard-skl:          [PASS][69] -> [FAIL][70] ([i915#2122])
> >    [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
> >    [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
> > 
> >   * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile:
> >     - shard-iclb:         [PASS][71] -> [SKIP][72] ([i915#3701])
> >    [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
> >    [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
> > 
> >   * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt:
> >     - shard-tglb:         NOTRUN -> [SKIP][73] ([fdo#111825]) +20 similar issues
> >    [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html
> > 
> >   * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu:
> >     - shard-kbl:          NOTRUN -> [SKIP][74] ([fdo#109271]) +30 similar issues
> >    [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu.html
> > 
> >   * igt@kms_pipe_crc_basic@read-crc-pipe-d:
> >     - shard-apl:          NOTRUN -> [SKIP][75] ([fdo#109271] / [i915#533])
> >    [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_pipe_crc_basic@read-crc-pipe-d.html
> > 
> >   * igt@kms_plane_alpha_blend@pipe-a-alpha-basic:
> >     - shard-skl:          NOTRUN -> [FAIL][76] ([fdo#108145] / [i915#265])
> >    [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html
> > 
> >   * igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:
> >     - shard-apl:          NOTRUN -> [FAIL][77] ([i915#265])
> >    [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html
> > 
> >   * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
> >     - shard-skl:          [PASS][78] -> [FAIL][79] ([fdo#108145] / [i915#265])
> >    [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
> >    [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
> > 
> >   * igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
> >     - shard-apl:          NOTRUN -> [FAIL][80] ([fdo#108145] / [i915#265]) +1 similar issue
> >    [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html
> > 
> >   * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2:
> >     - shard-skl:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#658]) +1 similar issue
> >    [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2.html
> > 
> >   * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3:
> >     - shard-tglb:         NOTRUN -> [SKIP][82] ([i915#2920]) +2 similar issues
> >    [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3.html
> > 
> >   * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5:
> >     - shard-apl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658]) +4 similar issues
> >    [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5.html
> > 
> >   * igt@kms_psr2_su@frontbuffer:
> >     - shard-iclb:         [PASS][84] -> [SKIP][85] ([fdo#109642] / [fdo#111068] / [i915#658])
> >    [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
> >    [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr2_su@frontbuffer.html
> > 
> >   * igt@kms_psr2_su@page_flip:
> >     - shard-kbl:          NOTRUN -> [SKIP][86] ([fdo#109271] / [i915#658])
> >    [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_psr2_su@page_flip.html
> > 
> >   * igt@kms_psr@psr2_sprite_render:
> >     - shard-tglb:         NOTRUN -> [FAIL][87] ([i915#132] / [i915#3467])
> >    [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_psr@psr2_sprite_render.html
> > 
> >   * igt@kms_psr@psr2_suspend:
> >     - shard-iclb:         [PASS][88] -> [SKIP][89] ([fdo#109441])
> >    [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr@psr2_suspend.html
> >    [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr@psr2_suspend.html
> > 
> >   * igt@kms_tv_load_detect@load-detect:
> >     - shard-tglb:         NOTRUN -> [SKIP][90] ([fdo#109309])
> >    [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_tv_load_detect@load-detect.html
> > 
> >   * igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend:
> >     - shard-iclb:         NOTRUN -> [SKIP][91] ([fdo#109278])
> >    [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend.html
> > 
> >   * igt@kms_writeback@writeback-fb-id:
> >     - shard-apl:          NOTRUN -> [SKIP][92] ([fdo#109271] / [i915#2437])
> >    [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_writeback@writeback-fb-id.html
> > 
> >   * igt@nouveau_crc@pipe-d-ctx-flip-detection:
> >     - shard-tglb:         NOTRUN -> [SKIP][93] ([i915#2530]) +1 similar issue
> >    [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@nouveau_crc@pipe-d-ctx-flip-detection.html
> > 
> >   * igt@perf@polling-parameterized:
> >     - shard-iclb:         [PASS][94] -> [FAIL][95] ([i915#1542])
> >    [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@perf@polling-parameterized.html
> >    [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb1/igt@perf@polling-parameterized.html
> > 
> >   * igt@prime_nv_test@i915_import_cpu_mmap:
> >     - shard-tglb:         NOTRUN -> [SKIP][96] ([fdo#109291]) +1 similar issue
> >    [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@prime_nv_test@i915_import_cpu_mmap.html
> > 
> >   * igt@sysfs_clients@fair-1:
> >     - shard-apl:          NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#2994]) +3 similar issues
> >    [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@sysfs_clients@fair-1.html
> >     - shard-kbl:          NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#2994])
> >    [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@sysfs_clients@fair-1.html
> > 
> >   * igt@sysfs_clients@recycle:
> >     - shard-tglb:         NOTRUN -> [SKIP][99] ([i915#2994])
> >    [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@sysfs_clients@recycle.html
> > 
> >   
> > #### Possible fixes ####
> > 
> >   * igt@gem_eio@in-flight-contexts-1us:
> >     - shard-tglb:         [TIMEOUT][100] ([i915#3063]) -> [PASS][101] +1 similar issue
> >    [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_eio@in-flight-contexts-1us.html
> >    [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_eio@in-flight-contexts-1us.html
> > 
> >   * igt@gem_exec_fair@basic-flow@rcs0:
> >     - shard-tglb:         [SKIP][102] ([i915#2848]) -> [PASS][103]
> >    [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_exec_fair@basic-flow@rcs0.html
> >    [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_exec_fair@basic-flow@rcs0.html
> > 
> >   * igt@gem_exec_fair@basic-pace-share@rcs0:
> >     - shard-glk:          [FAIL][104] ([i915#2842]) -> [PASS][105] +1 similar issue
> >    [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
> >    [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html
> > 
> >   * igt@gem_exec_fair@basic-pace@vecs0:
> >     - shard-tglb:         [FAIL][106] ([i915#2842]) -> [PASS][107]
> >    [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@gem_exec_fair@basic-pace@vecs0.html
> >    [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_exec_fair@basic-pace@vecs0.html
> > 
> >   * igt@gem_exec_nop@basic-parallel:
> >     - shard-glk:          [DMESG-WARN][108] ([i915#118]) -> [PASS][109] +1 similar issue
> >    [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@gem_exec_nop@basic-parallel.html
> >    [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_nop@basic-parallel.html
> > 
> >   * igt@gem_mmap_offset@clear:
> >     - shard-tglb:         [TIMEOUT][110] ([i915#2502]) -> [PASS][111]
> >    [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_mmap_offset@clear.html
> >    [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_mmap_offset@clear.html
> > 
> >   * igt@gem_tiled_swapping@non-threaded:
> >     - shard-tglb:         [TIMEOUT][112] ([i915#1521]) -> [PASS][113]
> >    [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_tiled_swapping@non-threaded.html
> >    [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_tiled_swapping@non-threaded.html
> > 
> >   * igt@gem_workarounds@suspend-resume:
> >     - shard-apl:          [DMESG-WARN][114] ([i915#180]) -> [PASS][115]
> >    [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-apl8/igt@gem_workarounds@suspend-resume.html
> >    [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_workarounds@suspend-resume.html
> > 
> >   * igt@gem_workarounds@suspend-resume-fd:
> >     - shard-kbl:          [DMESG-WARN][116] ([i915#180]) -> [PASS][117]
> >    [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl7/igt@gem_workarounds@suspend-resume-fd.html
> >    [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_workarounds@suspend-resume-fd.html
> > 
> >   * igt@gen9_exec_parse@allowed-single:
> >     - shard-skl:          [DMESG-WARN][118] ([i915#1436] / [i915#1982] / [i915#716]) -> [PASS][119]
> >    [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl10/igt@gen9_exec_parse@allowed-single.html
> >    [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@gen9_exec_parse@allowed-single.html
> > 
> >   * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
> >     - shard-tglb:         [FAIL][120] ([i915#3722]) -> [PASS][121] +1 similar issue
> >    [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
> >    [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
> > 
> >   * igt@kms_cursor_crc@pipe-b-cursor-suspend:
> >     - shard-tglb:         [INCOMPLETE][122] ([i915#456]) -> [PASS][123]
> >    [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
> >    [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
> > 
> >   * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
> >     - shard-tglb:         [FAIL][124] ([i915#2346]) -> [PASS][125]
> >    [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
> >    [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
> > 
> >   * igt@kms_hdr@bpc-switch-dpms:
> >     - shard-skl:          [FAIL][126] ([i915#1188]) -> [PASS][127] +1 similar issue
> >    [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@kms_hdr@bpc-switch-dpms.html
> >    [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_hdr@bpc-switch-dpms.html
> > 
> >   * igt@kms_psr@psr2_primary_page_flip:
> >     - shard-iclb:         [SKIP][128] ([fdo#109441]) -> [PASS][129] +2 similar issues
> >    [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html
> >    [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
> > 
> >   * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
> >     - shard-skl:          [INCOMPLETE][130] ([i915#198]) -> [PASS][131]
> >    [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
> >    [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
> > 
> >   * igt@sysfs_heartbeat_interval@mixed@rcs0:
> >     - shard-skl:          [FAIL][132] ([i915#1731]) -> [PASS][133]
> >    [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl3/igt@sysfs_heartbeat_interval@mixed@rcs0.html
> >    [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@sysfs_heartbeat_interval@mixed@rcs0.html
> > 
> >   
> > #### Warnings ####
> > 
> >   * igt@gem_exec_fair@basic-none@vcs0:
> >     - shard-tglb:         [FAIL][134] ([i915#2842]) -> [SKIP][135] ([i915#2848]) +5 similar issues
> >    [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_exec_fair@basic-none@vcs0.html
> >    [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_exec_fair@basic-none@vcs0.html
> > 
> >   * igt@gem_exec_fair@basic-pace-share@rcs0:
> >     - shard-tglb:         [SKIP][136] ([i915#2848]) -> [FAIL][137] ([i915#2842]) +1 similar issue
> >    [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_exec_fair@basic-pace-share@rcs0.html
> >    [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwo
> > 
> > == Logs ==
> > 
> > For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/index.html

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

* Re: [Intel-gfx]  ✗ Fi.CI.IGT: failure for drm/i915: Simplify handling of modifiers (rev10)
  2021-10-18 15:42     ` Petri Latvala
@ 2021-10-18 16:10       ` Imre Deak
  2021-10-19  7:41         ` Petri Latvala
  0 siblings, 1 reply; 35+ messages in thread
From: Imre Deak @ 2021-10-18 16:10 UTC (permalink / raw)
  To: Petri Latvala; +Cc: intel-gfx, Tomi P Sarvela

On Mon, Oct 18, 2021 at 06:42:38PM +0300, Petri Latvala wrote:
> On Mon, Oct 18, 2021 at 03:10:54PM +0300, Imre Deak wrote:
> > Hi Petri, Tomi,
> > 
> > could you check the failure below?
> > 
> > On Fri, Oct 15, 2021 at 11:19:13AM +0000, Patchwork wrote:
> > > == Series Details ==
> > > 
> > > Series: drm/i915: Simplify handling of modifiers (rev10)
> > > URL   : https://patchwork.freedesktop.org/series/95579/
> > > State : failure
> > > 
> > > == Summary ==
> > > 
> > > CI Bug Log - changes from CI_DRM_10741_full -> Patchwork_21343_full
> > > ====================================================
> > > 
> > > Summary
> > > -------
> > > 
> > >   **FAILURE**
> > > 
> > >   Serious unknown changes coming with Patchwork_21343_full absolutely need to be
> > >   verified manually.
> > >   
> > >   If you think the reported changes have nothing to do with the changes
> > >   introduced in Patchwork_21343_full, please notify your bug team to allow them
> > >   to document this new failure mode, which will reduce false positives in CI.
> > > 
> > > Possible new issues
> > > -------------------
> > > 
> > >   Here are the unknown changes that may have been introduced in Patchwork_21343_full:
> > > 
> > > ### IGT changes ###
> > > 
> > > #### Possible regressions ####
> > > 
> > >   * igt@kms_vblank@pipe-a-wait-busy:
> > >     - shard-skl:          [PASS][1] -> [INCOMPLETE][2]
> > >    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html
> > >    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html
> > 
> > This is from Patchwork_21343/shard-skl1/19/dmesg.log , where the above
> > test passes and is followed by more passing tests, until
> > kms_busy/extended-modeset-hang-oldfb
> > 
> > also passes at least according to igt_runner.log, though I can't see it in
> > dmesg.log. After that:
> > 
> > [1091.672412] Overall timeout time exceeded, stopping.
> > 
> > Is it just an overall timeout problem, or some test after
> > kms_busy/extended-modeset-hand-oldfb?
> 
> The test passed but igt_runner's journal.txt for it was left
> empty. Reason for that is unknown (fs corruption, or something like
> that). Because overall timeout got triggered, igt_results was invoked
> against that shard execution in jenkins master host, overwriting the
> DUT-written one, and because the journal didn't state the subtest
> started, it was parsed as being incomplete.

Ok. Maybe igt_runner could sync/stat the file if the write happened as
expected? I can see the same truncation at least on the following
shard-skl test runs:

CI_DRM_10743/shard-skl7/16/118/journal.txt
Patchwork_21337/shard-skl9/15/45/journal.txt
Patchwork_21343/shard-skl1/19/72/journal.txt
Patchwork_21302/shard-skl7/23/45/journal.txt
Patchwork_21362/shard-skl8/21/12/journal.txt
Patchwork_21317/shard-skl3/11/0/journal.txt

I can't see anything obvious in dmesg, so I think the issue is unrelated
to changes in the patchset. Would it make sense to open a ticket for the
above particular file-truncated issue?

> The logs unfortunately were not able to give any indication as to why
> the journal file was left empty. igt_runner syncs it when writing to
> it, and the test execution continued normally after that particular
> test.


> -- 
> Petri Latvala
> 
> 
> > 
> > > #### Suppressed ####
> > > 
> > >   The following results come from untrusted machines, tests, or statuses.
> > >   They do not affect the overall result.
> > > 
> > >   * {igt@kms_bw@linear-tiling-3-displays-3840x2160p}:
> > >     - shard-snb:          NOTRUN -> [FAIL][3]
> > >    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb6/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html
> > > 
> > >   * {igt@kms_bw@linear-tiling-4-displays-1920x1080p}:
> > >     - shard-apl:          NOTRUN -> [DMESG-FAIL][4]
> > >    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html
> > > 
> > >   
> > > Known issues
> > > ------------
> > > 
> > >   Here are the changes found in Patchwork_21343_full that come from known issues:
> > > 
> > > ### IGT changes ###
> > > 
> > > #### Issues hit ####
> > > 
> > >   * igt@feature_discovery@chamelium:
> > >     - shard-tglb:         NOTRUN -> [SKIP][5] ([fdo#111827])
> > >    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@feature_discovery@chamelium.html
> > > 
> > >   * igt@gem_ctx_persistence@hostile:
> > >     - shard-tglb:         [PASS][6] -> [FAIL][7] ([i915#2410])
> > >    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_ctx_persistence@hostile.html
> > >    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_ctx_persistence@hostile.html
> > > 
> > >   * igt@gem_ctx_persistence@legacy-engines-mixed:
> > >     - shard-snb:          NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#1099]) +3 similar issues
> > >    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb6/igt@gem_ctx_persistence@legacy-engines-mixed.html
> > > 
> > >   * igt@gem_exec_fair@basic-none-rrul@rcs0:
> > >     - shard-kbl:          [PASS][9] -> [FAIL][10] ([i915#2842])
> > >    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
> > >    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
> > > 
> > >   * igt@gem_exec_fair@basic-none-solo@rcs0:
> > >     - shard-kbl:          NOTRUN -> [FAIL][11] ([i915#2842])
> > >    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
> > > 
> > >   * igt@gem_exec_fair@basic-none-vip@rcs0:
> > >     - shard-tglb:         NOTRUN -> [FAIL][12] ([i915#2842])
> > >    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@gem_exec_fair@basic-none-vip@rcs0.html
> > > 
> > >   * igt@gem_exec_fair@basic-pace-solo@rcs0:
> > >     - shard-iclb:         [PASS][13] -> [FAIL][14] ([i915#2842])
> > >    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@gem_exec_fair@basic-pace-solo@rcs0.html
> > >    [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@gem_exec_fair@basic-pace-solo@rcs0.html
> > > 
> > >   * igt@gem_exec_whisper@basic-queues-forked-all:
> > >     - shard-glk:          [PASS][15] -> [DMESG-WARN][16] ([i915#118])
> > >    [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk2/igt@gem_exec_whisper@basic-queues-forked-all.html
> > >    [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@gem_exec_whisper@basic-queues-forked-all.html
> > > 
> > >   * igt@gem_huc_copy@huc-copy:
> > >     - shard-apl:          NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#2190])
> > >    [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@gem_huc_copy@huc-copy.html
> > >     - shard-kbl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#2190])
> > >    [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_huc_copy@huc-copy.html
> > > 
> > >   * igt@gem_pread@exhaustion:
> > >     - shard-apl:          NOTRUN -> [WARN][19] ([i915#2658]) +1 similar issue
> > >    [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_pread@exhaustion.html
> > > 
> > >   * igt@gem_pwrite@basic-exhaustion:
> > >     - shard-kbl:          NOTRUN -> [WARN][20] ([i915#2658])
> > >    [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_pwrite@basic-exhaustion.html
> > > 
> > >   * igt@gem_ringfill@engines-basic@vecs0:
> > >     - shard-skl:          [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +1 similar issue
> > >    [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html
> > >    [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html
> > > 
> > >   * igt@gem_userptr_blits@dmabuf-unsync:
> > >     - shard-tglb:         NOTRUN -> [SKIP][23] ([i915#3297]) +1 similar issue
> > >    [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_userptr_blits@dmabuf-unsync.html
> > > 
> > >   * igt@gem_userptr_blits@input-checking:
> > >     - shard-snb:          NOTRUN -> [DMESG-WARN][24] ([i915#3002])
> > >    [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb2/igt@gem_userptr_blits@input-checking.html
> > > 
> > >   * igt@gen7_exec_parse@basic-offset:
> > >     - shard-tglb:         NOTRUN -> [SKIP][25] ([fdo#109289]) +2 similar issues
> > >    [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gen7_exec_parse@basic-offset.html
> > > 
> > >   * igt@gen9_exec_parse@batch-invalid-length:
> > >     - shard-snb:          NOTRUN -> [SKIP][26] ([fdo#109271]) +425 similar issues
> > >    [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb7/igt@gen9_exec_parse@batch-invalid-length.html
> > > 
> > >   * igt@i915_pm_dc@dc6-dpms:
> > >     - shard-iclb:         [PASS][27] -> [FAIL][28] ([i915#454])
> > >    [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb1/igt@i915_pm_dc@dc6-dpms.html
> > >    [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
> > > 
> > >   * igt@i915_pm_rc6_residency@rc6-idle:
> > >     - shard-tglb:         [PASS][29] -> [WARN][30] ([i915#2681] / [i915#2684])
> > >    [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@i915_pm_rc6_residency@rc6-idle.html
> > >    [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@i915_pm_rc6_residency@rc6-idle.html
> > > 
> > >   * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
> > >     - shard-tglb:         NOTRUN -> [SKIP][31] ([fdo#109506] / [i915#2411])
> > >    [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
> > > 
> > >   * igt@kms_async_flips@alternate-sync-async-flip:
> > >     - shard-glk:          [PASS][32] -> [FAIL][33] ([i915#2521])
> > >    [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
> > >    [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
> > > 
> > >   * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
> > >     - shard-kbl:          NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3777])
> > >    [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
> > >     - shard-apl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#3777]) +1 similar issue
> > >    [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
> > > 
> > >   * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
> > >     - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#111614]) +1 similar issue
> > >    [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
> > > 
> > >   * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
> > >     - shard-tglb:         [PASS][37] -> [FAIL][38] ([i915#3722]) +1 similar issue
> > >    [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
> > >    [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
> > > 
> > >   * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
> > >     - shard-skl:          NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#3777])
> > >    [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
> > > 
> > >   * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
> > >     - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#111615]) +2 similar issues
> > >    [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
> > > 
> > >   * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs:
> > >     - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#3689]) +7 similar issues
> > >    [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs.html
> > > 
> > >   * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
> > >     - shard-kbl:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3886]) +1 similar issue
> > >    [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html
> > > 
> > >   * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs:
> > >     - shard-tglb:         NOTRUN -> [SKIP][43] ([i915#3689] / [i915#3886]) +1 similar issue
> > >    [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs.html
> > > 
> > >   * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
> > >     - shard-apl:          NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#3886]) +8 similar issues
> > >    [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
> > > 
> > >   * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
> > >     - shard-skl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#3886]) +2 similar issues
> > >    [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html
> > > 
> > >   * igt@kms_cdclk@mode-transition:
> > >     - shard-apl:          NOTRUN -> [SKIP][46] ([fdo#109271]) +179 similar issues
> > >    [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_cdclk@mode-transition.html
> > > 
> > >   * igt@kms_chamelium@hdmi-edid-change-during-suspend:
> > >     - shard-apl:          NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +11 similar issues
> > >    [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_chamelium@hdmi-edid-change-during-suspend.html
> > > 
> > >   * igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
> > >     - shard-snb:          NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +18 similar issues
> > >    [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb2/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html
> > > 
> > >   * igt@kms_chamelium@vga-hpd-fast:
> > >     - shard-tglb:         NOTRUN -> [SKIP][49] ([fdo#109284] / [fdo#111827]) +8 similar issues
> > >    [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_chamelium@vga-hpd-fast.html
> > > 
> > >   * igt@kms_color_chamelium@pipe-b-ctm-0-25:
> > >     - shard-skl:          NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827]) +5 similar issues
> > >    [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_color_chamelium@pipe-b-ctm-0-25.html
> > > 
> > >   * igt@kms_color_chamelium@pipe-d-ctm-0-25:
> > >     - shard-kbl:          NOTRUN -> [SKIP][51] ([fdo#109271] / [fdo#111827])
> > >    [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_color_chamelium@pipe-d-ctm-0-25.html
> > > 
> > >   * igt@kms_content_protection@lic:
> > >     - shard-apl:          NOTRUN -> [TIMEOUT][52] ([i915#1319])
> > >    [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_content_protection@lic.html
> > > 
> > >   * igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen:
> > >     - shard-tglb:         NOTRUN -> [SKIP][53] ([fdo#109279] / [i915#3359]) +1 similar issue
> > >    [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen.html
> > > 
> > >   * igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent:
> > >     - shard-snb:          [PASS][54] -> [SKIP][55] ([fdo#109271])
> > >    [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-snb7/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html
> > >    [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb5/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html
> > > 
> > >   * igt@kms_cursor_crc@pipe-a-cursor-suspend:
> > >     - shard-tglb:         [PASS][56] -> [INCOMPLETE][57] ([i915#2411] / [i915#2828] / [i915#456])
> > >    [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
> > >    [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
> > > 
> > >   * igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen:
> > >     - shard-tglb:         NOTRUN -> [SKIP][58] ([i915#3319])
> > >    [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen.html
> > > 
> > >   * igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen:
> > >     - shard-skl:          NOTRUN -> [SKIP][59] ([fdo#109271]) +72 similar issues
> > >    [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen.html
> > > 
> > >   * igt@kms_cursor_crc@pipe-c-cursor-suspend:
> > >     - shard-tglb:         [PASS][60] -> [INCOMPLETE][61] ([i915#2411] / [i915#456])
> > >    [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
> > >    [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
> > > 
> > >   * igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement:
> > >     - shard-tglb:         NOTRUN -> [SKIP][62] ([i915#3359]) +2 similar issues
> > >    [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement.html
> > > 
> > >   * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
> > >     - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109274] / [fdo#109278])
> > >    [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
> > > 
> > >   * igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium:
> > >     - shard-tglb:         NOTRUN -> [SKIP][64] ([i915#3528])
> > >    [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html
> > > 
> > >   * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2:
> > >     - shard-glk:          [PASS][65] -> [FAIL][66] ([i915#2122])
> > >    [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
> > >    [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk7/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
> > > 
> > >   * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
> > >     - shard-kbl:          [PASS][67] -> [DMESG-WARN][68] ([i915#180]) +5 similar issues
> > >    [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
> > >    [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
> > > 
> > >   * igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
> > >     - shard-skl:          [PASS][69] -> [FAIL][70] ([i915#2122])
> > >    [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
> > >    [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
> > > 
> > >   * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile:
> > >     - shard-iclb:         [PASS][71] -> [SKIP][72] ([i915#3701])
> > >    [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
> > >    [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
> > > 
> > >   * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt:
> > >     - shard-tglb:         NOTRUN -> [SKIP][73] ([fdo#111825]) +20 similar issues
> > >    [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html
> > > 
> > >   * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu:
> > >     - shard-kbl:          NOTRUN -> [SKIP][74] ([fdo#109271]) +30 similar issues
> > >    [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu.html
> > > 
> > >   * igt@kms_pipe_crc_basic@read-crc-pipe-d:
> > >     - shard-apl:          NOTRUN -> [SKIP][75] ([fdo#109271] / [i915#533])
> > >    [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_pipe_crc_basic@read-crc-pipe-d.html
> > > 
> > >   * igt@kms_plane_alpha_blend@pipe-a-alpha-basic:
> > >     - shard-skl:          NOTRUN -> [FAIL][76] ([fdo#108145] / [i915#265])
> > >    [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html
> > > 
> > >   * igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:
> > >     - shard-apl:          NOTRUN -> [FAIL][77] ([i915#265])
> > >    [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html
> > > 
> > >   * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
> > >     - shard-skl:          [PASS][78] -> [FAIL][79] ([fdo#108145] / [i915#265])
> > >    [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
> > >    [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
> > > 
> > >   * igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
> > >     - shard-apl:          NOTRUN -> [FAIL][80] ([fdo#108145] / [i915#265]) +1 similar issue
> > >    [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html
> > > 
> > >   * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2:
> > >     - shard-skl:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#658]) +1 similar issue
> > >    [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2.html
> > > 
> > >   * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3:
> > >     - shard-tglb:         NOTRUN -> [SKIP][82] ([i915#2920]) +2 similar issues
> > >    [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3.html
> > > 
> > >   * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5:
> > >     - shard-apl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658]) +4 similar issues
> > >    [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5.html
> > > 
> > >   * igt@kms_psr2_su@frontbuffer:
> > >     - shard-iclb:         [PASS][84] -> [SKIP][85] ([fdo#109642] / [fdo#111068] / [i915#658])
> > >    [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
> > >    [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr2_su@frontbuffer.html
> > > 
> > >   * igt@kms_psr2_su@page_flip:
> > >     - shard-kbl:          NOTRUN -> [SKIP][86] ([fdo#109271] / [i915#658])
> > >    [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_psr2_su@page_flip.html
> > > 
> > >   * igt@kms_psr@psr2_sprite_render:
> > >     - shard-tglb:         NOTRUN -> [FAIL][87] ([i915#132] / [i915#3467])
> > >    [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_psr@psr2_sprite_render.html
> > > 
> > >   * igt@kms_psr@psr2_suspend:
> > >     - shard-iclb:         [PASS][88] -> [SKIP][89] ([fdo#109441])
> > >    [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr@psr2_suspend.html
> > >    [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr@psr2_suspend.html
> > > 
> > >   * igt@kms_tv_load_detect@load-detect:
> > >     - shard-tglb:         NOTRUN -> [SKIP][90] ([fdo#109309])
> > >    [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_tv_load_detect@load-detect.html
> > > 
> > >   * igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend:
> > >     - shard-iclb:         NOTRUN -> [SKIP][91] ([fdo#109278])
> > >    [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend.html
> > > 
> > >   * igt@kms_writeback@writeback-fb-id:
> > >     - shard-apl:          NOTRUN -> [SKIP][92] ([fdo#109271] / [i915#2437])
> > >    [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_writeback@writeback-fb-id.html
> > > 
> > >   * igt@nouveau_crc@pipe-d-ctx-flip-detection:
> > >     - shard-tglb:         NOTRUN -> [SKIP][93] ([i915#2530]) +1 similar issue
> > >    [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@nouveau_crc@pipe-d-ctx-flip-detection.html
> > > 
> > >   * igt@perf@polling-parameterized:
> > >     - shard-iclb:         [PASS][94] -> [FAIL][95] ([i915#1542])
> > >    [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@perf@polling-parameterized.html
> > >    [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb1/igt@perf@polling-parameterized.html
> > > 
> > >   * igt@prime_nv_test@i915_import_cpu_mmap:
> > >     - shard-tglb:         NOTRUN -> [SKIP][96] ([fdo#109291]) +1 similar issue
> > >    [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@prime_nv_test@i915_import_cpu_mmap.html
> > > 
> > >   * igt@sysfs_clients@fair-1:
> > >     - shard-apl:          NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#2994]) +3 similar issues
> > >    [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@sysfs_clients@fair-1.html
> > >     - shard-kbl:          NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#2994])
> > >    [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@sysfs_clients@fair-1.html
> > > 
> > >   * igt@sysfs_clients@recycle:
> > >     - shard-tglb:         NOTRUN -> [SKIP][99] ([i915#2994])
> > >    [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@sysfs_clients@recycle.html
> > > 
> > >   
> > > #### Possible fixes ####
> > > 
> > >   * igt@gem_eio@in-flight-contexts-1us:
> > >     - shard-tglb:         [TIMEOUT][100] ([i915#3063]) -> [PASS][101] +1 similar issue
> > >    [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_eio@in-flight-contexts-1us.html
> > >    [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_eio@in-flight-contexts-1us.html
> > > 
> > >   * igt@gem_exec_fair@basic-flow@rcs0:
> > >     - shard-tglb:         [SKIP][102] ([i915#2848]) -> [PASS][103]
> > >    [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_exec_fair@basic-flow@rcs0.html
> > >    [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_exec_fair@basic-flow@rcs0.html
> > > 
> > >   * igt@gem_exec_fair@basic-pace-share@rcs0:
> > >     - shard-glk:          [FAIL][104] ([i915#2842]) -> [PASS][105] +1 similar issue
> > >    [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
> > >    [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html
> > > 
> > >   * igt@gem_exec_fair@basic-pace@vecs0:
> > >     - shard-tglb:         [FAIL][106] ([i915#2842]) -> [PASS][107]
> > >    [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@gem_exec_fair@basic-pace@vecs0.html
> > >    [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_exec_fair@basic-pace@vecs0.html
> > > 
> > >   * igt@gem_exec_nop@basic-parallel:
> > >     - shard-glk:          [DMESG-WARN][108] ([i915#118]) -> [PASS][109] +1 similar issue
> > >    [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@gem_exec_nop@basic-parallel.html
> > >    [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_nop@basic-parallel.html
> > > 
> > >   * igt@gem_mmap_offset@clear:
> > >     - shard-tglb:         [TIMEOUT][110] ([i915#2502]) -> [PASS][111]
> > >    [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_mmap_offset@clear.html
> > >    [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_mmap_offset@clear.html
> > > 
> > >   * igt@gem_tiled_swapping@non-threaded:
> > >     - shard-tglb:         [TIMEOUT][112] ([i915#1521]) -> [PASS][113]
> > >    [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_tiled_swapping@non-threaded.html
> > >    [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_tiled_swapping@non-threaded.html
> > > 
> > >   * igt@gem_workarounds@suspend-resume:
> > >     - shard-apl:          [DMESG-WARN][114] ([i915#180]) -> [PASS][115]
> > >    [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-apl8/igt@gem_workarounds@suspend-resume.html
> > >    [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_workarounds@suspend-resume.html
> > > 
> > >   * igt@gem_workarounds@suspend-resume-fd:
> > >     - shard-kbl:          [DMESG-WARN][116] ([i915#180]) -> [PASS][117]
> > >    [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl7/igt@gem_workarounds@suspend-resume-fd.html
> > >    [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_workarounds@suspend-resume-fd.html
> > > 
> > >   * igt@gen9_exec_parse@allowed-single:
> > >     - shard-skl:          [DMESG-WARN][118] ([i915#1436] / [i915#1982] / [i915#716]) -> [PASS][119]
> > >    [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl10/igt@gen9_exec_parse@allowed-single.html
> > >    [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@gen9_exec_parse@allowed-single.html
> > > 
> > >   * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
> > >     - shard-tglb:         [FAIL][120] ([i915#3722]) -> [PASS][121] +1 similar issue
> > >    [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
> > >    [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
> > > 
> > >   * igt@kms_cursor_crc@pipe-b-cursor-suspend:
> > >     - shard-tglb:         [INCOMPLETE][122] ([i915#456]) -> [PASS][123]
> > >    [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
> > >    [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
> > > 
> > >   * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
> > >     - shard-tglb:         [FAIL][124] ([i915#2346]) -> [PASS][125]
> > >    [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
> > >    [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
> > > 
> > >   * igt@kms_hdr@bpc-switch-dpms:
> > >     - shard-skl:          [FAIL][126] ([i915#1188]) -> [PASS][127] +1 similar issue
> > >    [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@kms_hdr@bpc-switch-dpms.html
> > >    [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_hdr@bpc-switch-dpms.html
> > > 
> > >   * igt@kms_psr@psr2_primary_page_flip:
> > >     - shard-iclb:         [SKIP][128] ([fdo#109441]) -> [PASS][129] +2 similar issues
> > >    [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html
> > >    [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
> > > 
> > >   * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
> > >     - shard-skl:          [INCOMPLETE][130] ([i915#198]) -> [PASS][131]
> > >    [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
> > >    [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
> > > 
> > >   * igt@sysfs_heartbeat_interval@mixed@rcs0:
> > >     - shard-skl:          [FAIL][132] ([i915#1731]) -> [PASS][133]
> > >    [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl3/igt@sysfs_heartbeat_interval@mixed@rcs0.html
> > >    [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@sysfs_heartbeat_interval@mixed@rcs0.html
> > > 
> > >   
> > > #### Warnings ####
> > > 
> > >   * igt@gem_exec_fair@basic-none@vcs0:
> > >     - shard-tglb:         [FAIL][134] ([i915#2842]) -> [SKIP][135] ([i915#2848]) +5 similar issues
> > >    [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_exec_fair@basic-none@vcs0.html
> > >    [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_exec_fair@basic-none@vcs0.html
> > > 
> > >   * igt@gem_exec_fair@basic-pace-share@rcs0:
> > >     - shard-tglb:         [SKIP][136] ([i915#2848]) -> [FAIL][137] ([i915#2842]) +1 similar issue
> > >    [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_exec_fair@basic-pace-share@rcs0.html
> > >    [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwo
> > > 
> > > == Logs ==
> > > 
> > > For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/index.html

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

* Re: [Intel-gfx]  ✗ Fi.CI.IGT: failure for drm/i915: Simplify handling of modifiers (rev10)
  2021-10-18 16:10       ` Imre Deak
@ 2021-10-19  7:41         ` Petri Latvala
  0 siblings, 0 replies; 35+ messages in thread
From: Petri Latvala @ 2021-10-19  7:41 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx, Tomi P Sarvela

On Mon, Oct 18, 2021 at 07:10:02PM +0300, Imre Deak wrote:
> On Mon, Oct 18, 2021 at 06:42:38PM +0300, Petri Latvala wrote:
> > On Mon, Oct 18, 2021 at 03:10:54PM +0300, Imre Deak wrote:
> > > Hi Petri, Tomi,
> > > 
> > > could you check the failure below?
> > > 
> > > On Fri, Oct 15, 2021 at 11:19:13AM +0000, Patchwork wrote:
> > > > == Series Details ==
> > > > 
> > > > Series: drm/i915: Simplify handling of modifiers (rev10)
> > > > URL   : https://patchwork.freedesktop.org/series/95579/
> > > > State : failure
> > > > 
> > > > == Summary ==
> > > > 
> > > > CI Bug Log - changes from CI_DRM_10741_full -> Patchwork_21343_full
> > > > ====================================================
> > > > 
> > > > Summary
> > > > -------
> > > > 
> > > >   **FAILURE**
> > > > 
> > > >   Serious unknown changes coming with Patchwork_21343_full absolutely need to be
> > > >   verified manually.
> > > >   
> > > >   If you think the reported changes have nothing to do with the changes
> > > >   introduced in Patchwork_21343_full, please notify your bug team to allow them
> > > >   to document this new failure mode, which will reduce false positives in CI.
> > > > 
> > > > Possible new issues
> > > > -------------------
> > > > 
> > > >   Here are the unknown changes that may have been introduced in Patchwork_21343_full:
> > > > 
> > > > ### IGT changes ###
> > > > 
> > > > #### Possible regressions ####
> > > > 
> > > >   * igt@kms_vblank@pipe-a-wait-busy:
> > > >     - shard-skl:          [PASS][1] -> [INCOMPLETE][2]
> > > >    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html
> > > >    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_vblank@pipe-a-wait-busy.html
> > > 
> > > This is from Patchwork_21343/shard-skl1/19/dmesg.log , where the above
> > > test passes and is followed by more passing tests, until
> > > kms_busy/extended-modeset-hang-oldfb
> > > 
> > > also passes at least according to igt_runner.log, though I can't see it in
> > > dmesg.log. After that:
> > > 
> > > [1091.672412] Overall timeout time exceeded, stopping.
> > > 
> > > Is it just an overall timeout problem, or some test after
> > > kms_busy/extended-modeset-hand-oldfb?
> > 
> > The test passed but igt_runner's journal.txt for it was left
> > empty. Reason for that is unknown (fs corruption, or something like
> > that). Because overall timeout got triggered, igt_results was invoked
> > against that shard execution in jenkins master host, overwriting the
> > DUT-written one, and because the journal didn't state the subtest
> > started, it was parsed as being incomplete.
> 
> Ok. Maybe igt_runner could sync/stat the file if the write happened as
> expected?

It does. https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/blob/master/runner/executor.c#L881

... this is a good time for someone to point out a reason to need
fsync() instead of fdatasync().


> I can see the same truncation at least on the following
> shard-skl test runs:
> 
> CI_DRM_10743/shard-skl7/16/118/journal.txt
> Patchwork_21337/shard-skl9/15/45/journal.txt
> Patchwork_21343/shard-skl1/19/72/journal.txt
> Patchwork_21302/shard-skl7/23/45/journal.txt
> Patchwork_21362/shard-skl8/21/12/journal.txt
> Patchwork_21317/shard-skl3/11/0/journal.txt
> 
> I can't see anything obvious in dmesg, so I think the issue is unrelated
> to changes in the patchset. Would it make sense to open a ticket for the
> above particular file-truncated issue?

Yeah the common property here is shard-skl. They are the only
platforms in CI that use eMMC as their main disk, that could be a red
herring or a strong correlation, unknown as of yet.

A bug could be filed (against IGT) for this issue so it's at least
written down and not forgotten. A cibuglog filter is hard to create
for it so let's leave that out. That means we shouldn't poke Lakshmi
with this but just consider this series having a pass from CI, that
was the only reported regression.


-- 
Petri Latvala



> 
> > The logs unfortunately were not able to give any indication as to why
> > the journal file was left empty. igt_runner syncs it when writing to
> > it, and the test execution continued normally after that particular
> > test.
> 
> 
> > -- 
> > Petri Latvala
> > 
> > 
> > > 
> > > > #### Suppressed ####
> > > > 
> > > >   The following results come from untrusted machines, tests, or statuses.
> > > >   They do not affect the overall result.
> > > > 
> > > >   * {igt@kms_bw@linear-tiling-3-displays-3840x2160p}:
> > > >     - shard-snb:          NOTRUN -> [FAIL][3]
> > > >    [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb6/igt@kms_bw@linear-tiling-3-displays-3840x2160p.html
> > > > 
> > > >   * {igt@kms_bw@linear-tiling-4-displays-1920x1080p}:
> > > >     - shard-apl:          NOTRUN -> [DMESG-FAIL][4]
> > > >    [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html
> > > > 
> > > >   
> > > > Known issues
> > > > ------------
> > > > 
> > > >   Here are the changes found in Patchwork_21343_full that come from known issues:
> > > > 
> > > > ### IGT changes ###
> > > > 
> > > > #### Issues hit ####
> > > > 
> > > >   * igt@feature_discovery@chamelium:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][5] ([fdo#111827])
> > > >    [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@feature_discovery@chamelium.html
> > > > 
> > > >   * igt@gem_ctx_persistence@hostile:
> > > >     - shard-tglb:         [PASS][6] -> [FAIL][7] ([i915#2410])
> > > >    [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_ctx_persistence@hostile.html
> > > >    [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_ctx_persistence@hostile.html
> > > > 
> > > >   * igt@gem_ctx_persistence@legacy-engines-mixed:
> > > >     - shard-snb:          NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#1099]) +3 similar issues
> > > >    [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb6/igt@gem_ctx_persistence@legacy-engines-mixed.html
> > > > 
> > > >   * igt@gem_exec_fair@basic-none-rrul@rcs0:
> > > >     - shard-kbl:          [PASS][9] -> [FAIL][10] ([i915#2842])
> > > >    [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
> > > >    [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl4/igt@gem_exec_fair@basic-none-rrul@rcs0.html
> > > > 
> > > >   * igt@gem_exec_fair@basic-none-solo@rcs0:
> > > >     - shard-kbl:          NOTRUN -> [FAIL][11] ([i915#2842])
> > > >    [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
> > > > 
> > > >   * igt@gem_exec_fair@basic-none-vip@rcs0:
> > > >     - shard-tglb:         NOTRUN -> [FAIL][12] ([i915#2842])
> > > >    [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@gem_exec_fair@basic-none-vip@rcs0.html
> > > > 
> > > >   * igt@gem_exec_fair@basic-pace-solo@rcs0:
> > > >     - shard-iclb:         [PASS][13] -> [FAIL][14] ([i915#2842])
> > > >    [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@gem_exec_fair@basic-pace-solo@rcs0.html
> > > >    [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@gem_exec_fair@basic-pace-solo@rcs0.html
> > > > 
> > > >   * igt@gem_exec_whisper@basic-queues-forked-all:
> > > >     - shard-glk:          [PASS][15] -> [DMESG-WARN][16] ([i915#118])
> > > >    [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk2/igt@gem_exec_whisper@basic-queues-forked-all.html
> > > >    [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@gem_exec_whisper@basic-queues-forked-all.html
> > > > 
> > > >   * igt@gem_huc_copy@huc-copy:
> > > >     - shard-apl:          NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#2190])
> > > >    [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@gem_huc_copy@huc-copy.html
> > > >     - shard-kbl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#2190])
> > > >    [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_huc_copy@huc-copy.html
> > > > 
> > > >   * igt@gem_pread@exhaustion:
> > > >     - shard-apl:          NOTRUN -> [WARN][19] ([i915#2658]) +1 similar issue
> > > >    [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_pread@exhaustion.html
> > > > 
> > > >   * igt@gem_pwrite@basic-exhaustion:
> > > >     - shard-kbl:          NOTRUN -> [WARN][20] ([i915#2658])
> > > >    [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_pwrite@basic-exhaustion.html
> > > > 
> > > >   * igt@gem_ringfill@engines-basic@vecs0:
> > > >     - shard-skl:          [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +1 similar issue
> > > >    [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html
> > > >    [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@gem_ringfill@engines-basic@vecs0.html
> > > > 
> > > >   * igt@gem_userptr_blits@dmabuf-unsync:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][23] ([i915#3297]) +1 similar issue
> > > >    [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_userptr_blits@dmabuf-unsync.html
> > > > 
> > > >   * igt@gem_userptr_blits@input-checking:
> > > >     - shard-snb:          NOTRUN -> [DMESG-WARN][24] ([i915#3002])
> > > >    [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb2/igt@gem_userptr_blits@input-checking.html
> > > > 
> > > >   * igt@gen7_exec_parse@basic-offset:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][25] ([fdo#109289]) +2 similar issues
> > > >    [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gen7_exec_parse@basic-offset.html
> > > > 
> > > >   * igt@gen9_exec_parse@batch-invalid-length:
> > > >     - shard-snb:          NOTRUN -> [SKIP][26] ([fdo#109271]) +425 similar issues
> > > >    [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb7/igt@gen9_exec_parse@batch-invalid-length.html
> > > > 
> > > >   * igt@i915_pm_dc@dc6-dpms:
> > > >     - shard-iclb:         [PASS][27] -> [FAIL][28] ([i915#454])
> > > >    [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb1/igt@i915_pm_dc@dc6-dpms.html
> > > >    [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb3/igt@i915_pm_dc@dc6-dpms.html
> > > > 
> > > >   * igt@i915_pm_rc6_residency@rc6-idle:
> > > >     - shard-tglb:         [PASS][29] -> [WARN][30] ([i915#2681] / [i915#2684])
> > > >    [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@i915_pm_rc6_residency@rc6-idle.html
> > > >    [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@i915_pm_rc6_residency@rc6-idle.html
> > > > 
> > > >   * igt@i915_pm_rpm@gem-execbuf-stress-pc8:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][31] ([fdo#109506] / [i915#2411])
> > > >    [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@i915_pm_rpm@gem-execbuf-stress-pc8.html
> > > > 
> > > >   * igt@kms_async_flips@alternate-sync-async-flip:
> > > >     - shard-glk:          [PASS][32] -> [FAIL][33] ([i915#2521])
> > > >    [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
> > > >    [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk3/igt@kms_async_flips@alternate-sync-async-flip.html
> > > > 
> > > >   * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip:
> > > >     - shard-kbl:          NOTRUN -> [SKIP][34] ([fdo#109271] / [i915#3777])
> > > >    [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
> > > >     - shard-apl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#3777]) +1 similar issue
> > > >    [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip.html
> > > > 
> > > >   * igt@kms_big_fb@y-tiled-8bpp-rotate-90:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#111614]) +1 similar issue
> > > >    [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@y-tiled-8bpp-rotate-90.html
> > > > 
> > > >   * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
> > > >     - shard-tglb:         [PASS][37] -> [FAIL][38] ([i915#3722]) +1 similar issue
> > > >    [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
> > > >    [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
> > > > 
> > > >   * igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip:
> > > >     - shard-skl:          NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#3777])
> > > >    [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
> > > > 
> > > >   * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][40] ([fdo#111615]) +2 similar issues
> > > >    [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html
> > > > 
> > > >   * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#3689]) +7 similar issues
> > > >    [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs.html
> > > > 
> > > >   * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
> > > >     - shard-kbl:          NOTRUN -> [SKIP][42] ([fdo#109271] / [i915#3886]) +1 similar issue
> > > >    [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs.html
> > > > 
> > > >   * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][43] ([i915#3689] / [i915#3886]) +1 similar issue
> > > >    [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_mc_ccs.html
> > > > 
> > > >   * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
> > > >     - shard-apl:          NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#3886]) +8 similar issues
> > > >    [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html
> > > > 
> > > >   * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
> > > >     - shard-skl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#3886]) +2 similar issues
> > > >    [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html
> > > > 
> > > >   * igt@kms_cdclk@mode-transition:
> > > >     - shard-apl:          NOTRUN -> [SKIP][46] ([fdo#109271]) +179 similar issues
> > > >    [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@kms_cdclk@mode-transition.html
> > > > 
> > > >   * igt@kms_chamelium@hdmi-edid-change-during-suspend:
> > > >     - shard-apl:          NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +11 similar issues
> > > >    [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_chamelium@hdmi-edid-change-during-suspend.html
> > > > 
> > > >   * igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
> > > >     - shard-snb:          NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +18 similar issues
> > > >    [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb2/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html
> > > > 
> > > >   * igt@kms_chamelium@vga-hpd-fast:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][49] ([fdo#109284] / [fdo#111827]) +8 similar issues
> > > >    [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_chamelium@vga-hpd-fast.html
> > > > 
> > > >   * igt@kms_color_chamelium@pipe-b-ctm-0-25:
> > > >     - shard-skl:          NOTRUN -> [SKIP][50] ([fdo#109271] / [fdo#111827]) +5 similar issues
> > > >    [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_color_chamelium@pipe-b-ctm-0-25.html
> > > > 
> > > >   * igt@kms_color_chamelium@pipe-d-ctm-0-25:
> > > >     - shard-kbl:          NOTRUN -> [SKIP][51] ([fdo#109271] / [fdo#111827])
> > > >    [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_color_chamelium@pipe-d-ctm-0-25.html
> > > > 
> > > >   * igt@kms_content_protection@lic:
> > > >     - shard-apl:          NOTRUN -> [TIMEOUT][52] ([i915#1319])
> > > >    [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_content_protection@lic.html
> > > > 
> > > >   * igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][53] ([fdo#109279] / [i915#3359]) +1 similar issue
> > > >    [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen.html
> > > > 
> > > >   * igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent:
> > > >     - shard-snb:          [PASS][54] -> [SKIP][55] ([fdo#109271])
> > > >    [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-snb7/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html
> > > >    [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-snb5/igt@kms_cursor_crc@pipe-a-cursor-alpha-transparent.html
> > > > 
> > > >   * igt@kms_cursor_crc@pipe-a-cursor-suspend:
> > > >     - shard-tglb:         [PASS][56] -> [INCOMPLETE][57] ([i915#2411] / [i915#2828] / [i915#456])
> > > >    [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
> > > >    [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
> > > > 
> > > >   * igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][58] ([i915#3319])
> > > >    [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen.html
> > > > 
> > > >   * igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen:
> > > >     - shard-skl:          NOTRUN -> [SKIP][59] ([fdo#109271]) +72 similar issues
> > > >    [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_cursor_crc@pipe-b-cursor-32x32-onscreen.html
> > > > 
> > > >   * igt@kms_cursor_crc@pipe-c-cursor-suspend:
> > > >     - shard-tglb:         [PASS][60] -> [INCOMPLETE][61] ([i915#2411] / [i915#456])
> > > >    [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
> > > >    [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
> > > > 
> > > >   * igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][62] ([i915#3359]) +2 similar issues
> > > >    [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_cursor_crc@pipe-d-cursor-512x170-rapid-movement.html
> > > > 
> > > >   * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size:
> > > >     - shard-iclb:         NOTRUN -> [SKIP][63] ([fdo#109274] / [fdo#109278])
> > > >    [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic-transitions-varying-size.html
> > > > 
> > > >   * igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][64] ([i915#3528])
> > > >    [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium.html
> > > > 
> > > >   * igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2:
> > > >     - shard-glk:          [PASS][65] -> [FAIL][66] ([i915#2122])
> > > >    [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
> > > >    [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk7/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
> > > > 
> > > >   * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
> > > >     - shard-kbl:          [PASS][67] -> [DMESG-WARN][68] ([i915#180]) +5 similar issues
> > > >    [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
> > > >    [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl7/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
> > > > 
> > > >   * igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1:
> > > >     - shard-skl:          [PASS][69] -> [FAIL][70] ([i915#2122])
> > > >    [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
> > > >    [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@kms_flip@plain-flip-ts-check-interruptible@c-edp1.html
> > > > 
> > > >   * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile:
> > > >     - shard-iclb:         [PASS][71] -> [SKIP][72] ([i915#3701])
> > > >    [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
> > > >    [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile.html
> > > > 
> > > >   * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][73] ([fdo#111825]) +20 similar issues
> > > >    [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-cur-indfb-draw-mmap-gtt.html
> > > > 
> > > >   * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu:
> > > >     - shard-kbl:          NOTRUN -> [SKIP][74] ([fdo#109271]) +30 similar issues
> > > >    [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-cpu.html
> > > > 
> > > >   * igt@kms_pipe_crc_basic@read-crc-pipe-d:
> > > >     - shard-apl:          NOTRUN -> [SKIP][75] ([fdo#109271] / [i915#533])
> > > >    [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_pipe_crc_basic@read-crc-pipe-d.html
> > > > 
> > > >   * igt@kms_plane_alpha_blend@pipe-a-alpha-basic:
> > > >     - shard-skl:          NOTRUN -> [FAIL][76] ([fdo#108145] / [i915#265])
> > > >    [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_plane_alpha_blend@pipe-a-alpha-basic.html
> > > > 
> > > >   * igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:
> > > >     - shard-apl:          NOTRUN -> [FAIL][77] ([i915#265])
> > > >    [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html
> > > > 
> > > >   * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
> > > >     - shard-skl:          [PASS][78] -> [FAIL][79] ([fdo#108145] / [i915#265])
> > > >    [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
> > > >    [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
> > > > 
> > > >   * igt@kms_plane_alpha_blend@pipe-c-alpha-basic:
> > > >     - shard-apl:          NOTRUN -> [FAIL][80] ([fdo#108145] / [i915#265]) +1 similar issue
> > > >    [80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_plane_alpha_blend@pipe-c-alpha-basic.html
> > > > 
> > > >   * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2:
> > > >     - shard-skl:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#658]) +1 similar issue
> > > >    [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-2.html
> > > > 
> > > >   * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][82] ([i915#2920]) +2 similar issues
> > > >    [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-3.html
> > > > 
> > > >   * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5:
> > > >     - shard-apl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658]) +4 similar issues
> > > >    [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-5.html
> > > > 
> > > >   * igt@kms_psr2_su@frontbuffer:
> > > >     - shard-iclb:         [PASS][84] -> [SKIP][85] ([fdo#109642] / [fdo#111068] / [i915#658])
> > > >    [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
> > > >    [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr2_su@frontbuffer.html
> > > > 
> > > >   * igt@kms_psr2_su@page_flip:
> > > >     - shard-kbl:          NOTRUN -> [SKIP][86] ([fdo#109271] / [i915#658])
> > > >    [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@kms_psr2_su@page_flip.html
> > > > 
> > > >   * igt@kms_psr@psr2_sprite_render:
> > > >     - shard-tglb:         NOTRUN -> [FAIL][87] ([i915#132] / [i915#3467])
> > > >    [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_psr@psr2_sprite_render.html
> > > > 
> > > >   * igt@kms_psr@psr2_suspend:
> > > >     - shard-iclb:         [PASS][88] -> [SKIP][89] ([fdo#109441])
> > > >    [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb2/igt@kms_psr@psr2_suspend.html
> > > >    [89]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb4/igt@kms_psr@psr2_suspend.html
> > > > 
> > > >   * igt@kms_tv_load_detect@load-detect:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][90] ([fdo#109309])
> > > >    [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_tv_load_detect@load-detect.html
> > > > 
> > > >   * igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend:
> > > >     - shard-iclb:         NOTRUN -> [SKIP][91] ([fdo#109278])
> > > >    [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_vblank@pipe-d-ts-continuation-dpms-suspend.html
> > > > 
> > > >   * igt@kms_writeback@writeback-fb-id:
> > > >     - shard-apl:          NOTRUN -> [SKIP][92] ([fdo#109271] / [i915#2437])
> > > >    [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl8/igt@kms_writeback@writeback-fb-id.html
> > > > 
> > > >   * igt@nouveau_crc@pipe-d-ctx-flip-detection:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][93] ([i915#2530]) +1 similar issue
> > > >    [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@nouveau_crc@pipe-d-ctx-flip-detection.html
> > > > 
> > > >   * igt@perf@polling-parameterized:
> > > >     - shard-iclb:         [PASS][94] -> [FAIL][95] ([i915#1542])
> > > >    [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@perf@polling-parameterized.html
> > > >    [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb1/igt@perf@polling-parameterized.html
> > > > 
> > > >   * igt@prime_nv_test@i915_import_cpu_mmap:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][96] ([fdo#109291]) +1 similar issue
> > > >    [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@prime_nv_test@i915_import_cpu_mmap.html
> > > > 
> > > >   * igt@sysfs_clients@fair-1:
> > > >     - shard-apl:          NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#2994]) +3 similar issues
> > > >    [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl3/igt@sysfs_clients@fair-1.html
> > > >     - shard-kbl:          NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#2994])
> > > >    [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@sysfs_clients@fair-1.html
> > > > 
> > > >   * igt@sysfs_clients@recycle:
> > > >     - shard-tglb:         NOTRUN -> [SKIP][99] ([i915#2994])
> > > >    [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@sysfs_clients@recycle.html
> > > > 
> > > >   
> > > > #### Possible fixes ####
> > > > 
> > > >   * igt@gem_eio@in-flight-contexts-1us:
> > > >     - shard-tglb:         [TIMEOUT][100] ([i915#3063]) -> [PASS][101] +1 similar issue
> > > >    [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_eio@in-flight-contexts-1us.html
> > > >    [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_eio@in-flight-contexts-1us.html
> > > > 
> > > >   * igt@gem_exec_fair@basic-flow@rcs0:
> > > >     - shard-tglb:         [SKIP][102] ([i915#2848]) -> [PASS][103]
> > > >    [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_exec_fair@basic-flow@rcs0.html
> > > >    [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_exec_fair@basic-flow@rcs0.html
> > > > 
> > > >   * igt@gem_exec_fair@basic-pace-share@rcs0:
> > > >     - shard-glk:          [FAIL][104] ([i915#2842]) -> [PASS][105] +1 similar issue
> > > >    [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html
> > > >    [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html
> > > > 
> > > >   * igt@gem_exec_fair@basic-pace@vecs0:
> > > >     - shard-tglb:         [FAIL][106] ([i915#2842]) -> [PASS][107]
> > > >    [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@gem_exec_fair@basic-pace@vecs0.html
> > > >    [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_exec_fair@basic-pace@vecs0.html
> > > > 
> > > >   * igt@gem_exec_nop@basic-parallel:
> > > >     - shard-glk:          [DMESG-WARN][108] ([i915#118]) -> [PASS][109] +1 similar issue
> > > >    [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-glk5/igt@gem_exec_nop@basic-parallel.html
> > > >    [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-glk6/igt@gem_exec_nop@basic-parallel.html
> > > > 
> > > >   * igt@gem_mmap_offset@clear:
> > > >     - shard-tglb:         [TIMEOUT][110] ([i915#2502]) -> [PASS][111]
> > > >    [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb2/igt@gem_mmap_offset@clear.html
> > > >    [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb5/igt@gem_mmap_offset@clear.html
> > > > 
> > > >   * igt@gem_tiled_swapping@non-threaded:
> > > >     - shard-tglb:         [TIMEOUT][112] ([i915#1521]) -> [PASS][113]
> > > >    [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_tiled_swapping@non-threaded.html
> > > >    [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@gem_tiled_swapping@non-threaded.html
> > > > 
> > > >   * igt@gem_workarounds@suspend-resume:
> > > >     - shard-apl:          [DMESG-WARN][114] ([i915#180]) -> [PASS][115]
> > > >    [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-apl8/igt@gem_workarounds@suspend-resume.html
> > > >    [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-apl1/igt@gem_workarounds@suspend-resume.html
> > > > 
> > > >   * igt@gem_workarounds@suspend-resume-fd:
> > > >     - shard-kbl:          [DMESG-WARN][116] ([i915#180]) -> [PASS][117]
> > > >    [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-kbl7/igt@gem_workarounds@suspend-resume-fd.html
> > > >    [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-kbl3/igt@gem_workarounds@suspend-resume-fd.html
> > > > 
> > > >   * igt@gen9_exec_parse@allowed-single:
> > > >     - shard-skl:          [DMESG-WARN][118] ([i915#1436] / [i915#1982] / [i915#716]) -> [PASS][119]
> > > >    [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl10/igt@gen9_exec_parse@allowed-single.html
> > > >    [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl10/igt@gen9_exec_parse@allowed-single.html
> > > > 
> > > >   * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
> > > >     - shard-tglb:         [FAIL][120] ([i915#3722]) -> [PASS][121] +1 similar issue
> > > >    [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
> > > >    [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb3/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html
> > > > 
> > > >   * igt@kms_cursor_crc@pipe-b-cursor-suspend:
> > > >     - shard-tglb:         [INCOMPLETE][122] ([i915#456]) -> [PASS][123]
> > > >    [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb7/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
> > > >    [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
> > > > 
> > > >   * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
> > > >     - shard-tglb:         [FAIL][124] ([i915#2346]) -> [PASS][125]
> > > >    [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb3/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
> > > >    [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb8/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
> > > > 
> > > >   * igt@kms_hdr@bpc-switch-dpms:
> > > >     - shard-skl:          [FAIL][126] ([i915#1188]) -> [PASS][127] +1 similar issue
> > > >    [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl7/igt@kms_hdr@bpc-switch-dpms.html
> > > >    [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl1/igt@kms_hdr@bpc-switch-dpms.html
> > > > 
> > > >   * igt@kms_psr@psr2_primary_page_flip:
> > > >     - shard-iclb:         [SKIP][128] ([fdo#109441]) -> [PASS][129] +2 similar issues
> > > >    [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html
> > > >    [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
> > > > 
> > > >   * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
> > > >     - shard-skl:          [INCOMPLETE][130] ([i915#198]) -> [PASS][131]
> > > >    [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl9/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
> > > >    [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl3/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
> > > > 
> > > >   * igt@sysfs_heartbeat_interval@mixed@rcs0:
> > > >     - shard-skl:          [FAIL][132] ([i915#1731]) -> [PASS][133]
> > > >    [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-skl3/igt@sysfs_heartbeat_interval@mixed@rcs0.html
> > > >    [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-skl7/igt@sysfs_heartbeat_interval@mixed@rcs0.html
> > > > 
> > > >   
> > > > #### Warnings ####
> > > > 
> > > >   * igt@gem_exec_fair@basic-none@vcs0:
> > > >     - shard-tglb:         [FAIL][134] ([i915#2842]) -> [SKIP][135] ([i915#2848]) +5 similar issues
> > > >    [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb5/igt@gem_exec_fair@basic-none@vcs0.html
> > > >    [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/shard-tglb2/igt@gem_exec_fair@basic-none@vcs0.html
> > > > 
> > > >   * igt@gem_exec_fair@basic-pace-share@rcs0:
> > > >     - shard-tglb:         [SKIP][136] ([i915#2848]) -> [FAIL][137] ([i915#2842]) +1 similar issue
> > > >    [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10741/shard-tglb8/igt@gem_exec_fair@basic-pace-share@rcs0.html
> > > >    [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwo
> > > > 
> > > > == Logs ==
> > > > 
> > > > For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21343/index.html

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

* Re: [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers
  2021-10-15 18:04   ` Juha-Pekka Heikkila
@ 2021-10-19  7:42     ` Jani Nikula
  2021-10-19  7:46       ` Imre Deak
  0 siblings, 1 reply; 35+ messages in thread
From: Jani Nikula @ 2021-10-19  7:42 UTC (permalink / raw)
  To: juhapekka.heikkila, Imre Deak, intel-gfx; +Cc: Ville Syrjälä

On Fri, 15 Oct 2021, Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> wrote:
> I did prefer v2 bit field graphics version comparison over this {from, 
> until} for the simple reason it had runtime just one AND instead of two 
> separate CMP but either way also for v3

Premature optimization. For maintainability I prefer not adding new ways
of checking for display version ranges. We already have IS_DISPLAY_VER()
for that.

...which makes me wonder why that isn't used here but instead open-coded
into check_modifier_display_ver()?!?

BR,
Jani.

>
> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
>
> On 15.10.2021 1.09, Imre Deak wrote:
>> Add a table describing all the framebuffer modifiers used by i915 at one
>> place. This has the benefit of deduplicating the listing of supported
>> modifiers for each platform and checking the support of these modifiers
>> on a given plane. This also simplifies in a similar way getting some
>> attribute for a modifier, for instance checking if the modifier is a
>> CCS modifier type.
>> 
>> While at it drop the cursor plane filtering from skl_plane_has_rc_ccs(),
>> as the cursor plane is registered with DRM core elsewhere.
>> 
>> v1: Unchanged.
>> v2:
>> - Keep the plane caps calculation in the plane code and pass an enum
>>    with these caps to intel_fb_get_modifiers(). (Ville)
>> - Get the modifiers calling intel_fb_get_modifiers() in i9xx_plane.c as
>>    well.
>> v3:
>> - s/.id/.modifier/ (Ville)
>> - Keep modifier_desc vs. plane_cap filter conditions consistent. (Ville)
>> - Drop redundant cursor plane check from skl_plane_has_rc_ccs(). (Ville)
>> - Use from, until display version fields in modifier_desc instead of a mask. (Jani)
>> - Unexport struct intel_modifier_desc, separate its decl and init. (Jani)
>> - Remove enum pipe, plane_id forward decls from intel_fb.h, which are
>>    not needed after v2.
>> 
>> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
>> Cc: Jani Nikula <jani.nikula@intel.com>
>> Signed-off-by: Imre Deak <imre.deak@intel.com>
>> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> (v2)
>> ---
>>   drivers/gpu/drm/i915/display/i9xx_plane.c     |  30 +--
>>   drivers/gpu/drm/i915/display/intel_cursor.c   |  19 +-
>>   .../drm/i915/display/intel_display_types.h    |   1 -
>>   drivers/gpu/drm/i915/display/intel_fb.c       | 159 ++++++++++++++++
>>   drivers/gpu/drm/i915/display/intel_fb.h       |  13 ++
>>   drivers/gpu/drm/i915/display/intel_sprite.c   |  35 +---
>>   drivers/gpu/drm/i915/display/skl_scaler.c     |   1 +
>>   .../drm/i915/display/skl_universal_plane.c    | 178 +++++-------------
>>   8 files changed, 252 insertions(+), 184 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
>> index b1439ba78f67b..a939accff7ee2 100644
>> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
>> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
>> @@ -60,22 +60,11 @@ static const u32 vlv_primary_formats[] = {
>>   	DRM_FORMAT_XBGR16161616F,
>>   };
>>   
>> -static const u64 i9xx_format_modifiers[] = {
>> -	I915_FORMAT_MOD_X_TILED,
>> -	DRM_FORMAT_MOD_LINEAR,
>> -	DRM_FORMAT_MOD_INVALID
>> -};
>> -
>>   static bool i8xx_plane_format_mod_supported(struct drm_plane *_plane,
>>   					    u32 format, u64 modifier)
>>   {
>> -	switch (modifier) {
>> -	case DRM_FORMAT_MOD_LINEAR:
>> -	case I915_FORMAT_MOD_X_TILED:
>> -		break;
>> -	default:
>> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>>   		return false;
>> -	}
>>   
>>   	switch (format) {
>>   	case DRM_FORMAT_C8:
>> @@ -92,13 +81,8 @@ static bool i8xx_plane_format_mod_supported(struct drm_plane *_plane,
>>   static bool i965_plane_format_mod_supported(struct drm_plane *_plane,
>>   					    u32 format, u64 modifier)
>>   {
>> -	switch (modifier) {
>> -	case DRM_FORMAT_MOD_LINEAR:
>> -	case I915_FORMAT_MOD_X_TILED:
>> -		break;
>> -	default:
>> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>>   		return false;
>> -	}
>>   
>>   	switch (format) {
>>   	case DRM_FORMAT_C8:
>> @@ -768,6 +752,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
>>   	struct intel_plane *plane;
>>   	const struct drm_plane_funcs *plane_funcs;
>>   	unsigned int supported_rotations;
>> +	const u64 *modifiers;
>>   	const u32 *formats;
>>   	int num_formats;
>>   	int ret, zpos;
>> @@ -875,21 +860,26 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
>>   		plane->disable_flip_done = ilk_primary_disable_flip_done;
>>   	}
>>   
>> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_TILING);
>> +
>>   	if (DISPLAY_VER(dev_priv) >= 5 || IS_G4X(dev_priv))
>>   		ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
>>   					       0, plane_funcs,
>>   					       formats, num_formats,
>> -					       i9xx_format_modifiers,
>> +					       modifiers,
>>   					       DRM_PLANE_TYPE_PRIMARY,
>>   					       "primary %c", pipe_name(pipe));
>>   	else
>>   		ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
>>   					       0, plane_funcs,
>>   					       formats, num_formats,
>> -					       i9xx_format_modifiers,
>> +					       modifiers,
>>   					       DRM_PLANE_TYPE_PRIMARY,
>>   					       "plane %c",
>>   					       plane_name(plane->i9xx_plane));
>> +
>> +	kfree(modifiers);
>> +
>>   	if (ret)
>>   		goto fail;
>>   
>> diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
>> index 11842f2126130..6b08d8bca5cd4 100644
>> --- a/drivers/gpu/drm/i915/display/intel_cursor.c
>> +++ b/drivers/gpu/drm/i915/display/intel_cursor.c
>> @@ -28,11 +28,6 @@ static const u32 intel_cursor_formats[] = {
>>   	DRM_FORMAT_ARGB8888,
>>   };
>>   
>> -static const u64 cursor_format_modifiers[] = {
>> -	DRM_FORMAT_MOD_LINEAR,
>> -	DRM_FORMAT_MOD_INVALID
>> -};
>> -
>>   static u32 intel_cursor_base(const struct intel_plane_state *plane_state)
>>   {
>>   	struct drm_i915_private *dev_priv =
>> @@ -605,8 +600,10 @@ static bool i9xx_cursor_get_hw_state(struct intel_plane *plane,
>>   static bool intel_cursor_format_mod_supported(struct drm_plane *_plane,
>>   					      u32 format, u64 modifier)
>>   {
>> -	return modifier == DRM_FORMAT_MOD_LINEAR &&
>> -		format == DRM_FORMAT_ARGB8888;
>> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>> +		return false;
>> +
>> +	return format == DRM_FORMAT_ARGB8888;
>>   }
>>   
>>   static int
>> @@ -754,6 +751,7 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
>>   {
>>   	struct intel_plane *cursor;
>>   	int ret, zpos;
>> +	u64 *modifiers;
>>   
>>   	cursor = intel_plane_alloc();
>>   	if (IS_ERR(cursor))
>> @@ -784,13 +782,18 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
>>   	if (IS_I845G(dev_priv) || IS_I865G(dev_priv) || HAS_CUR_FBC(dev_priv))
>>   		cursor->cursor.size = ~0;
>>   
>> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_NO_CAPS);
>> +
>>   	ret = drm_universal_plane_init(&dev_priv->drm, &cursor->base,
>>   				       0, &intel_cursor_plane_funcs,
>>   				       intel_cursor_formats,
>>   				       ARRAY_SIZE(intel_cursor_formats),
>> -				       cursor_format_modifiers,
>> +				       modifiers,
>>   				       DRM_PLANE_TYPE_CURSOR,
>>   				       "cursor %c", pipe_name(pipe));
>> +
>> +	kfree(modifiers);
>> +
>>   	if (ret)
>>   		goto fail;
>>   
>> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
>> index 39e11eaec1a3f..50b4264f61d62 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
>> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
>> @@ -1336,7 +1336,6 @@ struct intel_plane {
>>   	enum plane_id id;
>>   	enum pipe pipe;
>>   	bool has_fbc;
>> -	bool has_ccs;
>>   	bool need_async_flip_disable_wa;
>>   	u32 frontbuffer_bit;
>>   
>> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
>> index fa1f375e696bf..015d0655e65e3 100644
>> --- a/drivers/gpu/drm/i915/display/intel_fb.c
>> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
>> @@ -13,6 +13,165 @@
>>   
>>   #define check_array_bounds(i915, a, i) drm_WARN_ON(&(i915)->drm, (i) >= ARRAY_SIZE(a))
>>   
>> +struct intel_modifier_desc {
>> +	u64 modifier;
>> +	struct {
>> +		u8 from;
>> +		u8 until;
>> +	} display_ver;
>> +#define DISPLAY_VER_ALL		{ 0, -1 }
>> +
>> +	u8 is_linear:1;
>> +
>> +	struct {
>> +#define INTEL_CCS_RC		BIT(0)
>> +#define INTEL_CCS_RC_CC		BIT(1)
>> +#define INTEL_CCS_MC		BIT(2)
>> +
>> +#define INTEL_CCS_ANY		(INTEL_CCS_RC | INTEL_CCS_RC_CC | INTEL_CCS_MC)
>> +		u8 type:3;
>> +	} ccs;
>> +};
>> +
>> +static const struct intel_modifier_desc intel_modifiers[] = {
>> +	{
>> +		.modifier = DRM_FORMAT_MOD_LINEAR,
>> +		.display_ver = DISPLAY_VER_ALL,
>> +
>> +		.is_linear = true,
>> +	},
>> +	{
>> +		.modifier = I915_FORMAT_MOD_X_TILED,
>> +		.display_ver = DISPLAY_VER_ALL,
>> +	},
>> +	{
>> +		.modifier = I915_FORMAT_MOD_Y_TILED,
>> +		.display_ver = { 9, 13 },
>> +	},
>> +	{
>> +		.modifier = I915_FORMAT_MOD_Yf_TILED,
>> +		.display_ver = { 9, 11 },
>> +	},
>> +	{
>> +		.modifier = I915_FORMAT_MOD_Y_TILED_CCS,
>> +		.display_ver = { 9, 11 },
>> +
>> +		.ccs.type = INTEL_CCS_RC,
>> +	},
>> +	{
>> +		.modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
>> +		.display_ver = { 9, 11 },
>> +
>> +		.ccs.type = INTEL_CCS_RC,
>> +	},
>> +	{
>> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
>> +		.display_ver = { 12, 13 },
>> +
>> +		.ccs.type = INTEL_CCS_RC,
>> +	},
>> +	{
>> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
>> +		.display_ver = { 12, 13 },
>> +
>> +		.ccs.type = INTEL_CCS_RC_CC,
>> +	},
>> +	{
>> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
>> +		.display_ver = { 12, 13 },
>> +
>> +		.ccs.type = INTEL_CCS_MC,
>> +	},
>> +};
>> +
>> +static bool is_ccs_type_modifier(const struct intel_modifier_desc *md, u8 ccs_type)
>> +{
>> +	return md->ccs.type & ccs_type;
>> +}
>> +
>> +static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
>> +				       u8 display_ver)
>> +{
>> +	return display_ver >= md->display_ver.from &&
>> +	       display_ver <= md->display_ver.until;
>> +}
>> +
>> +static bool plane_has_modifier(struct drm_i915_private *i915,
>> +			       enum intel_plane_caps plane_caps,
>> +			       const struct intel_modifier_desc *md)
>> +{
>> +	if (!check_modifier_display_ver(md, DISPLAY_VER(i915)))
>> +		return false;
>> +
>> +	if (!md->is_linear &&
>> +	    !(plane_caps & PLANE_HAS_TILING))
>> +		return false;
>> +
>> +	if (is_ccs_type_modifier(md, INTEL_CCS_RC | INTEL_CCS_RC_CC) &&
>> +	    !(plane_caps & PLANE_HAS_CCS_RC))
>> +		return false;
>> +
>> +	if (is_ccs_type_modifier(md, INTEL_CCS_MC) &&
>> +	    !(plane_caps & PLANE_HAS_CCS_MC))
>> +		return false;
>> +
>> +	return true;
>> +}
>> +
>> +/**
>> + * intel_fb_plane_get_modifiers: Get the modifiers for the given platform and plane capabilities
>> + * @i915: i915 device instance
>> + * @plane_caps: capabilities for the plane the modifiers are queried for
>> + *
>> + * Returns:
>> + * Returns the list of modifiers allowed by the @i915 platform and @plane_caps.
>> + * The caller must free the returned buffer.
>> + */
>> +u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
>> +				  enum intel_plane_caps plane_caps)
>> +{
>> +	u64 *list, *p;
>> +	int count = 1;		/* +1 for invalid modifier terminator */
>> +	int i;
>> +
>> +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
>> +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
>> +			count++;
>> +	}
>> +
>> +	list = kmalloc_array(count, sizeof(*list), GFP_KERNEL);
>> +	if (drm_WARN_ON(&i915->drm, !list))
>> +		return NULL;
>> +
>> +	p = list;
>> +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
>> +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
>> +			*p++ = intel_modifiers[i].modifier;
>> +	}
>> +	*p++ = DRM_FORMAT_MOD_INVALID;
>> +
>> +	return list;
>> +}
>> +
>> +/**
>> + * intel_fb_plane_supports_modifier: Determine if a modifier is supported by the given plane
>> + * @plane: Plane to check the modifier support for
>> + * @modifier: The modifier to check the support for
>> + *
>> + * Returns:
>> + * %true if the @modifier is supported on @plane.
>> + */
>> +bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier)
>> +{
>> +	int i;
>> +
>> +	for (i = 0; i < plane->base.modifier_count; i++)
>> +		if (plane->base.modifiers[i] == modifier)
>> +			return true;
>> +
>> +	return false;
>> +}
>> +
>>   bool is_ccs_plane(const struct drm_framebuffer *fb, int plane)
>>   {
>>   	if (!is_ccs_modifier(fb->modifier))
>> diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
>> index 1cbdd84502bdd..0f77e81e69d29 100644
>> --- a/drivers/gpu/drm/i915/display/intel_fb.h
>> +++ b/drivers/gpu/drm/i915/display/intel_fb.h
>> @@ -6,6 +6,7 @@
>>   #ifndef __INTEL_FB_H__
>>   #define __INTEL_FB_H__
>>   
>> +#include <linux/bits.h>
>>   #include <linux/types.h>
>>   
>>   struct drm_device;
>> @@ -16,13 +17,25 @@ struct drm_i915_private;
>>   struct drm_mode_fb_cmd2;
>>   struct intel_fb_view;
>>   struct intel_framebuffer;
>> +struct intel_plane;
>>   struct intel_plane_state;
>>   
>> +enum intel_plane_caps {
>> +	PLANE_HAS_NO_CAPS = 0,
>> +	PLANE_HAS_TILING = BIT(0),
>> +	PLANE_HAS_CCS_RC = BIT(1),
>> +	PLANE_HAS_CCS_MC = BIT(2),
>> +};
>> +
>>   bool is_ccs_plane(const struct drm_framebuffer *fb, int plane);
>>   bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane);
>>   bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane);
>>   bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane);
>>   
>> +u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
>> +				  enum intel_plane_caps plane_caps);
>> +bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
>> +
>>   bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane);
>>   
>>   int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane);
>> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
>> index 08116f41da26a..2f4f47ab9da03 100644
>> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
>> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
>> @@ -45,6 +45,7 @@
>>   #include "intel_atomic_plane.h"
>>   #include "intel_de.h"
>>   #include "intel_display_types.h"
>> +#include "intel_fb.h"
>>   #include "intel_frontbuffer.h"
>>   #include "intel_sprite.h"
>>   #include "i9xx_plane.h"
>> @@ -1575,12 +1576,6 @@ static const u32 g4x_plane_formats[] = {
>>   	DRM_FORMAT_VYUY,
>>   };
>>   
>> -static const u64 i9xx_plane_format_modifiers[] = {
>> -	I915_FORMAT_MOD_X_TILED,
>> -	DRM_FORMAT_MOD_LINEAR,
>> -	DRM_FORMAT_MOD_INVALID
>> -};
>> -
>>   static const u32 snb_plane_formats[] = {
>>   	DRM_FORMAT_XRGB8888,
>>   	DRM_FORMAT_XBGR8888,
>> @@ -1629,13 +1624,8 @@ static const u32 chv_pipe_b_sprite_formats[] = {
>>   static bool g4x_sprite_format_mod_supported(struct drm_plane *_plane,
>>   					    u32 format, u64 modifier)
>>   {
>> -	switch (modifier) {
>> -	case DRM_FORMAT_MOD_LINEAR:
>> -	case I915_FORMAT_MOD_X_TILED:
>> -		break;
>> -	default:
>> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>>   		return false;
>> -	}
>>   
>>   	switch (format) {
>>   	case DRM_FORMAT_XRGB8888:
>> @@ -1655,13 +1645,8 @@ static bool g4x_sprite_format_mod_supported(struct drm_plane *_plane,
>>   static bool snb_sprite_format_mod_supported(struct drm_plane *_plane,
>>   					    u32 format, u64 modifier)
>>   {
>> -	switch (modifier) {
>> -	case DRM_FORMAT_MOD_LINEAR:
>> -	case I915_FORMAT_MOD_X_TILED:
>> -		break;
>> -	default:
>> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>>   		return false;
>> -	}
>>   
>>   	switch (format) {
>>   	case DRM_FORMAT_XRGB8888:
>> @@ -1686,13 +1671,8 @@ static bool snb_sprite_format_mod_supported(struct drm_plane *_plane,
>>   static bool vlv_sprite_format_mod_supported(struct drm_plane *_plane,
>>   					    u32 format, u64 modifier)
>>   {
>> -	switch (modifier) {
>> -	case DRM_FORMAT_MOD_LINEAR:
>> -	case I915_FORMAT_MOD_X_TILED:
>> -		break;
>> -	default:
>> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
>>   		return false;
>> -	}
>>   
>>   	switch (format) {
>>   	case DRM_FORMAT_C8:
>> @@ -1776,7 +1756,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
>>   			formats = vlv_plane_formats;
>>   			num_formats = ARRAY_SIZE(vlv_plane_formats);
>>   		}
>> -		modifiers = i9xx_plane_format_modifiers;
>>   
>>   		plane_funcs = &vlv_sprite_funcs;
>>   	} else if (DISPLAY_VER(dev_priv) >= 7) {
>> @@ -1795,7 +1774,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
>>   
>>   		formats = snb_plane_formats;
>>   		num_formats = ARRAY_SIZE(snb_plane_formats);
>> -		modifiers = i9xx_plane_format_modifiers;
>>   
>>   		plane_funcs = &snb_sprite_funcs;
>>   	} else {
>> @@ -1806,7 +1784,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
>>   		plane->max_stride = g4x_sprite_max_stride;
>>   		plane->min_cdclk = g4x_sprite_min_cdclk;
>>   
>> -		modifiers = i9xx_plane_format_modifiers;
>>   		if (IS_SANDYBRIDGE(dev_priv)) {
>>   			formats = snb_plane_formats;
>>   			num_formats = ARRAY_SIZE(snb_plane_formats);
>> @@ -1833,11 +1810,15 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
>>   	plane->id = PLANE_SPRITE0 + sprite;
>>   	plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, plane->id);
>>   
>> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_TILING);
>> +
>>   	ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
>>   				       0, plane_funcs,
>>   				       formats, num_formats, modifiers,
>>   				       DRM_PLANE_TYPE_OVERLAY,
>>   				       "sprite %c", sprite_name(pipe, sprite));
>> +	kfree(modifiers);
>> +
>>   	if (ret)
>>   		goto fail;
>>   
>> diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
>> index 37eabeff8197f..c2e94118566b6 100644
>> --- a/drivers/gpu/drm/i915/display/skl_scaler.c
>> +++ b/drivers/gpu/drm/i915/display/skl_scaler.c
>> @@ -4,6 +4,7 @@
>>    */
>>   #include "intel_de.h"
>>   #include "intel_display_types.h"
>> +#include "intel_fb.h"
>>   #include "skl_scaler.h"
>>   #include "skl_universal_plane.h"
>>   
>> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
>> index a0e53a3b267aa..264b9a422a224 100644
>> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
>> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
>> @@ -163,50 +163,6 @@ static const u32 icl_hdr_plane_formats[] = {
>>   	DRM_FORMAT_XVYU16161616,
>>   };
>>   
>> -static const u64 skl_plane_format_modifiers_noccs[] = {
>> -	I915_FORMAT_MOD_Yf_TILED,
>> -	I915_FORMAT_MOD_Y_TILED,
>> -	I915_FORMAT_MOD_X_TILED,
>> -	DRM_FORMAT_MOD_LINEAR,
>> -	DRM_FORMAT_MOD_INVALID
>> -};
>> -
>> -static const u64 skl_plane_format_modifiers_ccs[] = {
>> -	I915_FORMAT_MOD_Yf_TILED_CCS,
>> -	I915_FORMAT_MOD_Y_TILED_CCS,
>> -	I915_FORMAT_MOD_Yf_TILED,
>> -	I915_FORMAT_MOD_Y_TILED,
>> -	I915_FORMAT_MOD_X_TILED,
>> -	DRM_FORMAT_MOD_LINEAR,
>> -	DRM_FORMAT_MOD_INVALID
>> -};
>> -
>> -static const u64 gen12_plane_format_modifiers_mc_ccs[] = {
>> -	I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
>> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
>> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
>> -	I915_FORMAT_MOD_Y_TILED,
>> -	I915_FORMAT_MOD_X_TILED,
>> -	DRM_FORMAT_MOD_LINEAR,
>> -	DRM_FORMAT_MOD_INVALID
>> -};
>> -
>> -static const u64 gen12_plane_format_modifiers_rc_ccs[] = {
>> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
>> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
>> -	I915_FORMAT_MOD_Y_TILED,
>> -	I915_FORMAT_MOD_X_TILED,
>> -	DRM_FORMAT_MOD_LINEAR,
>> -	DRM_FORMAT_MOD_INVALID
>> -};
>> -
>> -static const u64 adlp_step_a_plane_format_modifiers[] = {
>> -	I915_FORMAT_MOD_Y_TILED,
>> -	I915_FORMAT_MOD_X_TILED,
>> -	DRM_FORMAT_MOD_LINEAR,
>> -	DRM_FORMAT_MOD_INVALID
>> -};
>> -
>>   int skl_format_to_fourcc(int format, bool rgb_order, bool alpha)
>>   {
>>   	switch (format) {
>> @@ -1870,42 +1826,13 @@ static const u32 *icl_get_plane_formats(struct drm_i915_private *dev_priv,
>>   	}
>>   }
>>   
>> -static bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
>> -			      enum pipe pipe, enum plane_id plane_id)
>> -{
>> -	if (plane_id == PLANE_CURSOR)
>> -		return false;
>> -
>> -	if (DISPLAY_VER(dev_priv) >= 11)
>> -		return true;
>> -
>> -	if (IS_GEMINILAKE(dev_priv))
>> -		return pipe != PIPE_C;
>> -
>> -	return pipe != PIPE_C &&
>> -		(plane_id == PLANE_PRIMARY ||
>> -		 plane_id == PLANE_SPRITE0);
>> -}
>> -
>>   static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
>>   					   u32 format, u64 modifier)
>>   {
>>   	struct intel_plane *plane = to_intel_plane(_plane);
>>   
>> -	switch (modifier) {
>> -	case DRM_FORMAT_MOD_LINEAR:
>> -	case I915_FORMAT_MOD_X_TILED:
>> -	case I915_FORMAT_MOD_Y_TILED:
>> -	case I915_FORMAT_MOD_Yf_TILED:
>> -		break;
>> -	case I915_FORMAT_MOD_Y_TILED_CCS:
>> -	case I915_FORMAT_MOD_Yf_TILED_CCS:
>> -		if (!plane->has_ccs)
>> -			return false;
>> -		break;
>> -	default:
>> +	if (!intel_fb_plane_supports_modifier(plane, modifier))
>>   		return false;
>> -	}
>>   
>>   	switch (format) {
>>   	case DRM_FORMAT_XRGB8888:
>> @@ -1953,45 +1880,13 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
>>   	}
>>   }
>>   
>> -static bool gen12_plane_supports_mc_ccs(struct drm_i915_private *dev_priv,
>> -					enum plane_id plane_id)
>> -{
>> -	/* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */
>> -	if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv) ||
>> -	    IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_D0))
>> -		return false;
>> -
>> -	/* Wa_22011186057 */
>> -	if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> -		return false;
>> -
>> -	return plane_id < PLANE_SPRITE4;
>> -}
>> -
>>   static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
>>   					     u32 format, u64 modifier)
>>   {
>> -	struct drm_i915_private *dev_priv = to_i915(_plane->dev);
>>   	struct intel_plane *plane = to_intel_plane(_plane);
>>   
>> -	switch (modifier) {
>> -	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
>> -		if (!gen12_plane_supports_mc_ccs(dev_priv, plane->id))
>> -			return false;
>> -		fallthrough;
>> -	case DRM_FORMAT_MOD_LINEAR:
>> -	case I915_FORMAT_MOD_X_TILED:
>> -	case I915_FORMAT_MOD_Y_TILED:
>> -		break;
>> -	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
>> -	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
>> -		/* Wa_22011186057 */
>> -		if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> -			return false;
>> -		break;
>> -	default:
>> +	if (!intel_fb_plane_supports_modifier(plane, modifier))
>>   		return false;
>> -	}
>>   
>>   	switch (format) {
>>   	case DRM_FORMAT_XRGB8888:
>> @@ -2039,18 +1934,6 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
>>   	}
>>   }
>>   
>> -static const u64 *gen12_get_plane_modifiers(struct drm_i915_private *dev_priv,
>> -					    enum plane_id plane_id)
>> -{
>> -	/* Wa_22011186057 */
>> -	if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
>> -		return adlp_step_a_plane_format_modifiers;
>> -	else if (gen12_plane_supports_mc_ccs(dev_priv, plane_id))
>> -		return gen12_plane_format_modifiers_mc_ccs;
>> -	else
>> -		return gen12_plane_format_modifiers_rc_ccs;
>> -}
>> -
>>   static const struct drm_plane_funcs skl_plane_funcs = {
>>   	.update_plane = drm_atomic_helper_update_plane,
>>   	.disable_plane = drm_atomic_helper_disable_plane,
>> @@ -2091,6 +1974,39 @@ skl_plane_disable_flip_done(struct intel_plane *plane)
>>   	spin_unlock_irq(&i915->irq_lock);
>>   }
>>   
>> +static bool skl_plane_has_rc_ccs(struct drm_i915_private *i915,
>> +				 enum pipe pipe, enum plane_id plane_id)
>> +{
>> +	/* Wa_22011186057 */
>> +	if (IS_ADLP_DISPLAY_STEP(i915, STEP_A0, STEP_B0))
>> +		return false;
>> +
>> +	if (DISPLAY_VER(i915) >= 11)
>> +		return true;
>> +
>> +	if (IS_GEMINILAKE(i915))
>> +		return pipe != PIPE_C;
>> +
>> +	return pipe != PIPE_C &&
>> +		(plane_id == PLANE_PRIMARY ||
>> +		 plane_id == PLANE_SPRITE0);
>> +}
>> +
>> +static bool gen12_plane_has_mc_ccs(struct drm_i915_private *i915,
>> +				   enum plane_id plane_id)
>> +{
>> +	/* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */
>> +	if (IS_DG1(i915) || IS_ROCKETLAKE(i915) ||
>> +	    IS_TGL_DISPLAY_STEP(i915, STEP_A0, STEP_D0))
>> +		return false;
>> +
>> +	/* Wa_22011186057 */
>> +	if (IS_ADLP_DISPLAY_STEP(i915, STEP_A0, STEP_B0))
>> +		return false;
>> +
>> +	return plane_id < PLANE_SPRITE4;
>> +}
>> +
>>   struct intel_plane *
>>   skl_universal_plane_create(struct drm_i915_private *dev_priv,
>>   			   enum pipe pipe, enum plane_id plane_id)
>> @@ -2098,6 +2014,7 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
>>   	const struct drm_plane_funcs *plane_funcs;
>>   	struct intel_plane *plane;
>>   	enum drm_plane_type plane_type;
>> +	enum intel_plane_caps plane_caps;
>>   	unsigned int supported_rotations;
>>   	unsigned int supported_csc;
>>   	const u64 *modifiers;
>> @@ -2159,29 +2076,34 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
>>   		formats = skl_get_plane_formats(dev_priv, pipe,
>>   						plane_id, &num_formats);
>>   
>> -	plane->has_ccs = skl_plane_has_ccs(dev_priv, pipe, plane_id);
>> -	if (DISPLAY_VER(dev_priv) >= 12) {
>> -		modifiers = gen12_get_plane_modifiers(dev_priv, plane_id);
>> +	if (DISPLAY_VER(dev_priv) >= 12)
>>   		plane_funcs = &gen12_plane_funcs;
>> -	} else {
>> -		if (plane->has_ccs)
>> -			modifiers = skl_plane_format_modifiers_ccs;
>> -		else
>> -			modifiers = skl_plane_format_modifiers_noccs;
>> +	else
>>   		plane_funcs = &skl_plane_funcs;
>> -	}
>>   
>>   	if (plane_id == PLANE_PRIMARY)
>>   		plane_type = DRM_PLANE_TYPE_PRIMARY;
>>   	else
>>   		plane_type = DRM_PLANE_TYPE_OVERLAY;
>>   
>> +	plane_caps = PLANE_HAS_TILING;
>> +	if (skl_plane_has_rc_ccs(dev_priv, pipe, plane_id))
>> +		plane_caps |= PLANE_HAS_CCS_RC;
>> +
>> +	if (gen12_plane_has_mc_ccs(dev_priv, plane_id))
>> +		plane_caps |= PLANE_HAS_CCS_MC;
>> +
>> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, plane_caps);
>> +
>>   	ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
>>   				       0, plane_funcs,
>>   				       formats, num_formats, modifiers,
>>   				       plane_type,
>>   				       "plane %d%c", plane_id + 1,
>>   				       pipe_name(pipe));
>> +
>> +	kfree(modifiers);
>> +
>>   	if (ret)
>>   		goto fail;
>>   
>> 
>

-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers
  2021-10-19  7:42     ` Jani Nikula
@ 2021-10-19  7:46       ` Imre Deak
  0 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-19  7:46 UTC (permalink / raw)
  To: Jani Nikula; +Cc: juhapekka.heikkila, intel-gfx, Ville Syrjälä

On Tue, Oct 19, 2021 at 10:42:42AM +0300, Jani Nikula wrote:
> On Fri, 15 Oct 2021, Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> wrote:
> > I did prefer v2 bit field graphics version comparison over this {from, 
> > until} for the simple reason it had runtime just one AND instead of two 
> > separate CMP but either way also for v3
> 
> Premature optimization. For maintainability I prefer not adding new ways
> of checking for display version ranges. We already have IS_DISPLAY_VER()
> for that.
> 
> ...which makes me wonder why that isn't used here but instead open-coded
> into check_modifier_display_ver()?!?

Because it's not always the device version which is queried, rather is
the modifier support a given display version range? See the follow-up
patch where this is needed.

> 
> BR,
> Jani.
> 
> >
> > Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> >
> > On 15.10.2021 1.09, Imre Deak wrote:
> >> Add a table describing all the framebuffer modifiers used by i915 at one
> >> place. This has the benefit of deduplicating the listing of supported
> >> modifiers for each platform and checking the support of these modifiers
> >> on a given plane. This also simplifies in a similar way getting some
> >> attribute for a modifier, for instance checking if the modifier is a
> >> CCS modifier type.
> >> 
> >> While at it drop the cursor plane filtering from skl_plane_has_rc_ccs(),
> >> as the cursor plane is registered with DRM core elsewhere.
> >> 
> >> v1: Unchanged.
> >> v2:
> >> - Keep the plane caps calculation in the plane code and pass an enum
> >>    with these caps to intel_fb_get_modifiers(). (Ville)
> >> - Get the modifiers calling intel_fb_get_modifiers() in i9xx_plane.c as
> >>    well.
> >> v3:
> >> - s/.id/.modifier/ (Ville)
> >> - Keep modifier_desc vs. plane_cap filter conditions consistent. (Ville)
> >> - Drop redundant cursor plane check from skl_plane_has_rc_ccs(). (Ville)
> >> - Use from, until display version fields in modifier_desc instead of a mask. (Jani)
> >> - Unexport struct intel_modifier_desc, separate its decl and init. (Jani)
> >> - Remove enum pipe, plane_id forward decls from intel_fb.h, which are
> >>    not needed after v2.
> >> 
> >> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >> Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> >> Cc: Jani Nikula <jani.nikula@intel.com>
> >> Signed-off-by: Imre Deak <imre.deak@intel.com>
> >> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> (v2)
> >> ---
> >>   drivers/gpu/drm/i915/display/i9xx_plane.c     |  30 +--
> >>   drivers/gpu/drm/i915/display/intel_cursor.c   |  19 +-
> >>   .../drm/i915/display/intel_display_types.h    |   1 -
> >>   drivers/gpu/drm/i915/display/intel_fb.c       | 159 ++++++++++++++++
> >>   drivers/gpu/drm/i915/display/intel_fb.h       |  13 ++
> >>   drivers/gpu/drm/i915/display/intel_sprite.c   |  35 +---
> >>   drivers/gpu/drm/i915/display/skl_scaler.c     |   1 +
> >>   .../drm/i915/display/skl_universal_plane.c    | 178 +++++-------------
> >>   8 files changed, 252 insertions(+), 184 deletions(-)
> >> 
> >> diff --git a/drivers/gpu/drm/i915/display/i9xx_plane.c b/drivers/gpu/drm/i915/display/i9xx_plane.c
> >> index b1439ba78f67b..a939accff7ee2 100644
> >> --- a/drivers/gpu/drm/i915/display/i9xx_plane.c
> >> +++ b/drivers/gpu/drm/i915/display/i9xx_plane.c
> >> @@ -60,22 +60,11 @@ static const u32 vlv_primary_formats[] = {
> >>   	DRM_FORMAT_XBGR16161616F,
> >>   };
> >>   
> >> -static const u64 i9xx_format_modifiers[] = {
> >> -	I915_FORMAT_MOD_X_TILED,
> >> -	DRM_FORMAT_MOD_LINEAR,
> >> -	DRM_FORMAT_MOD_INVALID
> >> -};
> >> -
> >>   static bool i8xx_plane_format_mod_supported(struct drm_plane *_plane,
> >>   					    u32 format, u64 modifier)
> >>   {
> >> -	switch (modifier) {
> >> -	case DRM_FORMAT_MOD_LINEAR:
> >> -	case I915_FORMAT_MOD_X_TILED:
> >> -		break;
> >> -	default:
> >> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
> >>   		return false;
> >> -	}
> >>   
> >>   	switch (format) {
> >>   	case DRM_FORMAT_C8:
> >> @@ -92,13 +81,8 @@ static bool i8xx_plane_format_mod_supported(struct drm_plane *_plane,
> >>   static bool i965_plane_format_mod_supported(struct drm_plane *_plane,
> >>   					    u32 format, u64 modifier)
> >>   {
> >> -	switch (modifier) {
> >> -	case DRM_FORMAT_MOD_LINEAR:
> >> -	case I915_FORMAT_MOD_X_TILED:
> >> -		break;
> >> -	default:
> >> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
> >>   		return false;
> >> -	}
> >>   
> >>   	switch (format) {
> >>   	case DRM_FORMAT_C8:
> >> @@ -768,6 +752,7 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
> >>   	struct intel_plane *plane;
> >>   	const struct drm_plane_funcs *plane_funcs;
> >>   	unsigned int supported_rotations;
> >> +	const u64 *modifiers;
> >>   	const u32 *formats;
> >>   	int num_formats;
> >>   	int ret, zpos;
> >> @@ -875,21 +860,26 @@ intel_primary_plane_create(struct drm_i915_private *dev_priv, enum pipe pipe)
> >>   		plane->disable_flip_done = ilk_primary_disable_flip_done;
> >>   	}
> >>   
> >> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_TILING);
> >> +
> >>   	if (DISPLAY_VER(dev_priv) >= 5 || IS_G4X(dev_priv))
> >>   		ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
> >>   					       0, plane_funcs,
> >>   					       formats, num_formats,
> >> -					       i9xx_format_modifiers,
> >> +					       modifiers,
> >>   					       DRM_PLANE_TYPE_PRIMARY,
> >>   					       "primary %c", pipe_name(pipe));
> >>   	else
> >>   		ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
> >>   					       0, plane_funcs,
> >>   					       formats, num_formats,
> >> -					       i9xx_format_modifiers,
> >> +					       modifiers,
> >>   					       DRM_PLANE_TYPE_PRIMARY,
> >>   					       "plane %c",
> >>   					       plane_name(plane->i9xx_plane));
> >> +
> >> +	kfree(modifiers);
> >> +
> >>   	if (ret)
> >>   		goto fail;
> >>   
> >> diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c b/drivers/gpu/drm/i915/display/intel_cursor.c
> >> index 11842f2126130..6b08d8bca5cd4 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_cursor.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_cursor.c
> >> @@ -28,11 +28,6 @@ static const u32 intel_cursor_formats[] = {
> >>   	DRM_FORMAT_ARGB8888,
> >>   };
> >>   
> >> -static const u64 cursor_format_modifiers[] = {
> >> -	DRM_FORMAT_MOD_LINEAR,
> >> -	DRM_FORMAT_MOD_INVALID
> >> -};
> >> -
> >>   static u32 intel_cursor_base(const struct intel_plane_state *plane_state)
> >>   {
> >>   	struct drm_i915_private *dev_priv =
> >> @@ -605,8 +600,10 @@ static bool i9xx_cursor_get_hw_state(struct intel_plane *plane,
> >>   static bool intel_cursor_format_mod_supported(struct drm_plane *_plane,
> >>   					      u32 format, u64 modifier)
> >>   {
> >> -	return modifier == DRM_FORMAT_MOD_LINEAR &&
> >> -		format == DRM_FORMAT_ARGB8888;
> >> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
> >> +		return false;
> >> +
> >> +	return format == DRM_FORMAT_ARGB8888;
> >>   }
> >>   
> >>   static int
> >> @@ -754,6 +751,7 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
> >>   {
> >>   	struct intel_plane *cursor;
> >>   	int ret, zpos;
> >> +	u64 *modifiers;
> >>   
> >>   	cursor = intel_plane_alloc();
> >>   	if (IS_ERR(cursor))
> >> @@ -784,13 +782,18 @@ intel_cursor_plane_create(struct drm_i915_private *dev_priv,
> >>   	if (IS_I845G(dev_priv) || IS_I865G(dev_priv) || HAS_CUR_FBC(dev_priv))
> >>   		cursor->cursor.size = ~0;
> >>   
> >> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_NO_CAPS);
> >> +
> >>   	ret = drm_universal_plane_init(&dev_priv->drm, &cursor->base,
> >>   				       0, &intel_cursor_plane_funcs,
> >>   				       intel_cursor_formats,
> >>   				       ARRAY_SIZE(intel_cursor_formats),
> >> -				       cursor_format_modifiers,
> >> +				       modifiers,
> >>   				       DRM_PLANE_TYPE_CURSOR,
> >>   				       "cursor %c", pipe_name(pipe));
> >> +
> >> +	kfree(modifiers);
> >> +
> >>   	if (ret)
> >>   		goto fail;
> >>   
> >> diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
> >> index 39e11eaec1a3f..50b4264f61d62 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> >> +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> >> @@ -1336,7 +1336,6 @@ struct intel_plane {
> >>   	enum plane_id id;
> >>   	enum pipe pipe;
> >>   	bool has_fbc;
> >> -	bool has_ccs;
> >>   	bool need_async_flip_disable_wa;
> >>   	u32 frontbuffer_bit;
> >>   
> >> diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
> >> index fa1f375e696bf..015d0655e65e3 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_fb.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_fb.c
> >> @@ -13,6 +13,165 @@
> >>   
> >>   #define check_array_bounds(i915, a, i) drm_WARN_ON(&(i915)->drm, (i) >= ARRAY_SIZE(a))
> >>   
> >> +struct intel_modifier_desc {
> >> +	u64 modifier;
> >> +	struct {
> >> +		u8 from;
> >> +		u8 until;
> >> +	} display_ver;
> >> +#define DISPLAY_VER_ALL		{ 0, -1 }
> >> +
> >> +	u8 is_linear:1;
> >> +
> >> +	struct {
> >> +#define INTEL_CCS_RC		BIT(0)
> >> +#define INTEL_CCS_RC_CC		BIT(1)
> >> +#define INTEL_CCS_MC		BIT(2)
> >> +
> >> +#define INTEL_CCS_ANY		(INTEL_CCS_RC | INTEL_CCS_RC_CC | INTEL_CCS_MC)
> >> +		u8 type:3;
> >> +	} ccs;
> >> +};
> >> +
> >> +static const struct intel_modifier_desc intel_modifiers[] = {
> >> +	{
> >> +		.modifier = DRM_FORMAT_MOD_LINEAR,
> >> +		.display_ver = DISPLAY_VER_ALL,
> >> +
> >> +		.is_linear = true,
> >> +	},
> >> +	{
> >> +		.modifier = I915_FORMAT_MOD_X_TILED,
> >> +		.display_ver = DISPLAY_VER_ALL,
> >> +	},
> >> +	{
> >> +		.modifier = I915_FORMAT_MOD_Y_TILED,
> >> +		.display_ver = { 9, 13 },
> >> +	},
> >> +	{
> >> +		.modifier = I915_FORMAT_MOD_Yf_TILED,
> >> +		.display_ver = { 9, 11 },
> >> +	},
> >> +	{
> >> +		.modifier = I915_FORMAT_MOD_Y_TILED_CCS,
> >> +		.display_ver = { 9, 11 },
> >> +
> >> +		.ccs.type = INTEL_CCS_RC,
> >> +	},
> >> +	{
> >> +		.modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
> >> +		.display_ver = { 9, 11 },
> >> +
> >> +		.ccs.type = INTEL_CCS_RC,
> >> +	},
> >> +	{
> >> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> >> +		.display_ver = { 12, 13 },
> >> +
> >> +		.ccs.type = INTEL_CCS_RC,
> >> +	},
> >> +	{
> >> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> >> +		.display_ver = { 12, 13 },
> >> +
> >> +		.ccs.type = INTEL_CCS_RC_CC,
> >> +	},
> >> +	{
> >> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
> >> +		.display_ver = { 12, 13 },
> >> +
> >> +		.ccs.type = INTEL_CCS_MC,
> >> +	},
> >> +};
> >> +
> >> +static bool is_ccs_type_modifier(const struct intel_modifier_desc *md, u8 ccs_type)
> >> +{
> >> +	return md->ccs.type & ccs_type;
> >> +}
> >> +
> >> +static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
> >> +				       u8 display_ver)
> >> +{
> >> +	return display_ver >= md->display_ver.from &&
> >> +	       display_ver <= md->display_ver.until;
> >> +}
> >> +
> >> +static bool plane_has_modifier(struct drm_i915_private *i915,
> >> +			       enum intel_plane_caps plane_caps,
> >> +			       const struct intel_modifier_desc *md)
> >> +{
> >> +	if (!check_modifier_display_ver(md, DISPLAY_VER(i915)))
> >> +		return false;
> >> +
> >> +	if (!md->is_linear &&
> >> +	    !(plane_caps & PLANE_HAS_TILING))
> >> +		return false;
> >> +
> >> +	if (is_ccs_type_modifier(md, INTEL_CCS_RC | INTEL_CCS_RC_CC) &&
> >> +	    !(plane_caps & PLANE_HAS_CCS_RC))
> >> +		return false;
> >> +
> >> +	if (is_ccs_type_modifier(md, INTEL_CCS_MC) &&
> >> +	    !(plane_caps & PLANE_HAS_CCS_MC))
> >> +		return false;
> >> +
> >> +	return true;
> >> +}
> >> +
> >> +/**
> >> + * intel_fb_plane_get_modifiers: Get the modifiers for the given platform and plane capabilities
> >> + * @i915: i915 device instance
> >> + * @plane_caps: capabilities for the plane the modifiers are queried for
> >> + *
> >> + * Returns:
> >> + * Returns the list of modifiers allowed by the @i915 platform and @plane_caps.
> >> + * The caller must free the returned buffer.
> >> + */
> >> +u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
> >> +				  enum intel_plane_caps plane_caps)
> >> +{
> >> +	u64 *list, *p;
> >> +	int count = 1;		/* +1 for invalid modifier terminator */
> >> +	int i;
> >> +
> >> +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> >> +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> >> +			count++;
> >> +	}
> >> +
> >> +	list = kmalloc_array(count, sizeof(*list), GFP_KERNEL);
> >> +	if (drm_WARN_ON(&i915->drm, !list))
> >> +		return NULL;
> >> +
> >> +	p = list;
> >> +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> >> +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> >> +			*p++ = intel_modifiers[i].modifier;
> >> +	}
> >> +	*p++ = DRM_FORMAT_MOD_INVALID;
> >> +
> >> +	return list;
> >> +}
> >> +
> >> +/**
> >> + * intel_fb_plane_supports_modifier: Determine if a modifier is supported by the given plane
> >> + * @plane: Plane to check the modifier support for
> >> + * @modifier: The modifier to check the support for
> >> + *
> >> + * Returns:
> >> + * %true if the @modifier is supported on @plane.
> >> + */
> >> +bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier)
> >> +{
> >> +	int i;
> >> +
> >> +	for (i = 0; i < plane->base.modifier_count; i++)
> >> +		if (plane->base.modifiers[i] == modifier)
> >> +			return true;
> >> +
> >> +	return false;
> >> +}
> >> +
> >>   bool is_ccs_plane(const struct drm_framebuffer *fb, int plane)
> >>   {
> >>   	if (!is_ccs_modifier(fb->modifier))
> >> diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
> >> index 1cbdd84502bdd..0f77e81e69d29 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_fb.h
> >> +++ b/drivers/gpu/drm/i915/display/intel_fb.h
> >> @@ -6,6 +6,7 @@
> >>   #ifndef __INTEL_FB_H__
> >>   #define __INTEL_FB_H__
> >>   
> >> +#include <linux/bits.h>
> >>   #include <linux/types.h>
> >>   
> >>   struct drm_device;
> >> @@ -16,13 +17,25 @@ struct drm_i915_private;
> >>   struct drm_mode_fb_cmd2;
> >>   struct intel_fb_view;
> >>   struct intel_framebuffer;
> >> +struct intel_plane;
> >>   struct intel_plane_state;
> >>   
> >> +enum intel_plane_caps {
> >> +	PLANE_HAS_NO_CAPS = 0,
> >> +	PLANE_HAS_TILING = BIT(0),
> >> +	PLANE_HAS_CCS_RC = BIT(1),
> >> +	PLANE_HAS_CCS_MC = BIT(2),
> >> +};
> >> +
> >>   bool is_ccs_plane(const struct drm_framebuffer *fb, int plane);
> >>   bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane);
> >>   bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane);
> >>   bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane);
> >>   
> >> +u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
> >> +				  enum intel_plane_caps plane_caps);
> >> +bool intel_fb_plane_supports_modifier(struct intel_plane *plane, u64 modifier);
> >> +
> >>   bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane);
> >>   
> >>   int main_to_ccs_plane(const struct drm_framebuffer *fb, int main_plane);
> >> diff --git a/drivers/gpu/drm/i915/display/intel_sprite.c b/drivers/gpu/drm/i915/display/intel_sprite.c
> >> index 08116f41da26a..2f4f47ab9da03 100644
> >> --- a/drivers/gpu/drm/i915/display/intel_sprite.c
> >> +++ b/drivers/gpu/drm/i915/display/intel_sprite.c
> >> @@ -45,6 +45,7 @@
> >>   #include "intel_atomic_plane.h"
> >>   #include "intel_de.h"
> >>   #include "intel_display_types.h"
> >> +#include "intel_fb.h"
> >>   #include "intel_frontbuffer.h"
> >>   #include "intel_sprite.h"
> >>   #include "i9xx_plane.h"
> >> @@ -1575,12 +1576,6 @@ static const u32 g4x_plane_formats[] = {
> >>   	DRM_FORMAT_VYUY,
> >>   };
> >>   
> >> -static const u64 i9xx_plane_format_modifiers[] = {
> >> -	I915_FORMAT_MOD_X_TILED,
> >> -	DRM_FORMAT_MOD_LINEAR,
> >> -	DRM_FORMAT_MOD_INVALID
> >> -};
> >> -
> >>   static const u32 snb_plane_formats[] = {
> >>   	DRM_FORMAT_XRGB8888,
> >>   	DRM_FORMAT_XBGR8888,
> >> @@ -1629,13 +1624,8 @@ static const u32 chv_pipe_b_sprite_formats[] = {
> >>   static bool g4x_sprite_format_mod_supported(struct drm_plane *_plane,
> >>   					    u32 format, u64 modifier)
> >>   {
> >> -	switch (modifier) {
> >> -	case DRM_FORMAT_MOD_LINEAR:
> >> -	case I915_FORMAT_MOD_X_TILED:
> >> -		break;
> >> -	default:
> >> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
> >>   		return false;
> >> -	}
> >>   
> >>   	switch (format) {
> >>   	case DRM_FORMAT_XRGB8888:
> >> @@ -1655,13 +1645,8 @@ static bool g4x_sprite_format_mod_supported(struct drm_plane *_plane,
> >>   static bool snb_sprite_format_mod_supported(struct drm_plane *_plane,
> >>   					    u32 format, u64 modifier)
> >>   {
> >> -	switch (modifier) {
> >> -	case DRM_FORMAT_MOD_LINEAR:
> >> -	case I915_FORMAT_MOD_X_TILED:
> >> -		break;
> >> -	default:
> >> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
> >>   		return false;
> >> -	}
> >>   
> >>   	switch (format) {
> >>   	case DRM_FORMAT_XRGB8888:
> >> @@ -1686,13 +1671,8 @@ static bool snb_sprite_format_mod_supported(struct drm_plane *_plane,
> >>   static bool vlv_sprite_format_mod_supported(struct drm_plane *_plane,
> >>   					    u32 format, u64 modifier)
> >>   {
> >> -	switch (modifier) {
> >> -	case DRM_FORMAT_MOD_LINEAR:
> >> -	case I915_FORMAT_MOD_X_TILED:
> >> -		break;
> >> -	default:
> >> +	if (!intel_fb_plane_supports_modifier(to_intel_plane(_plane), modifier))
> >>   		return false;
> >> -	}
> >>   
> >>   	switch (format) {
> >>   	case DRM_FORMAT_C8:
> >> @@ -1776,7 +1756,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
> >>   			formats = vlv_plane_formats;
> >>   			num_formats = ARRAY_SIZE(vlv_plane_formats);
> >>   		}
> >> -		modifiers = i9xx_plane_format_modifiers;
> >>   
> >>   		plane_funcs = &vlv_sprite_funcs;
> >>   	} else if (DISPLAY_VER(dev_priv) >= 7) {
> >> @@ -1795,7 +1774,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
> >>   
> >>   		formats = snb_plane_formats;
> >>   		num_formats = ARRAY_SIZE(snb_plane_formats);
> >> -		modifiers = i9xx_plane_format_modifiers;
> >>   
> >>   		plane_funcs = &snb_sprite_funcs;
> >>   	} else {
> >> @@ -1806,7 +1784,6 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
> >>   		plane->max_stride = g4x_sprite_max_stride;
> >>   		plane->min_cdclk = g4x_sprite_min_cdclk;
> >>   
> >> -		modifiers = i9xx_plane_format_modifiers;
> >>   		if (IS_SANDYBRIDGE(dev_priv)) {
> >>   			formats = snb_plane_formats;
> >>   			num_formats = ARRAY_SIZE(snb_plane_formats);
> >> @@ -1833,11 +1810,15 @@ intel_sprite_plane_create(struct drm_i915_private *dev_priv,
> >>   	plane->id = PLANE_SPRITE0 + sprite;
> >>   	plane->frontbuffer_bit = INTEL_FRONTBUFFER(pipe, plane->id);
> >>   
> >> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, PLANE_HAS_TILING);
> >> +
> >>   	ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
> >>   				       0, plane_funcs,
> >>   				       formats, num_formats, modifiers,
> >>   				       DRM_PLANE_TYPE_OVERLAY,
> >>   				       "sprite %c", sprite_name(pipe, sprite));
> >> +	kfree(modifiers);
> >> +
> >>   	if (ret)
> >>   		goto fail;
> >>   
> >> diff --git a/drivers/gpu/drm/i915/display/skl_scaler.c b/drivers/gpu/drm/i915/display/skl_scaler.c
> >> index 37eabeff8197f..c2e94118566b6 100644
> >> --- a/drivers/gpu/drm/i915/display/skl_scaler.c
> >> +++ b/drivers/gpu/drm/i915/display/skl_scaler.c
> >> @@ -4,6 +4,7 @@
> >>    */
> >>   #include "intel_de.h"
> >>   #include "intel_display_types.h"
> >> +#include "intel_fb.h"
> >>   #include "skl_scaler.h"
> >>   #include "skl_universal_plane.h"
> >>   
> >> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> >> index a0e53a3b267aa..264b9a422a224 100644
> >> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> >> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> >> @@ -163,50 +163,6 @@ static const u32 icl_hdr_plane_formats[] = {
> >>   	DRM_FORMAT_XVYU16161616,
> >>   };
> >>   
> >> -static const u64 skl_plane_format_modifiers_noccs[] = {
> >> -	I915_FORMAT_MOD_Yf_TILED,
> >> -	I915_FORMAT_MOD_Y_TILED,
> >> -	I915_FORMAT_MOD_X_TILED,
> >> -	DRM_FORMAT_MOD_LINEAR,
> >> -	DRM_FORMAT_MOD_INVALID
> >> -};
> >> -
> >> -static const u64 skl_plane_format_modifiers_ccs[] = {
> >> -	I915_FORMAT_MOD_Yf_TILED_CCS,
> >> -	I915_FORMAT_MOD_Y_TILED_CCS,
> >> -	I915_FORMAT_MOD_Yf_TILED,
> >> -	I915_FORMAT_MOD_Y_TILED,
> >> -	I915_FORMAT_MOD_X_TILED,
> >> -	DRM_FORMAT_MOD_LINEAR,
> >> -	DRM_FORMAT_MOD_INVALID
> >> -};
> >> -
> >> -static const u64 gen12_plane_format_modifiers_mc_ccs[] = {
> >> -	I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
> >> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> >> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> >> -	I915_FORMAT_MOD_Y_TILED,
> >> -	I915_FORMAT_MOD_X_TILED,
> >> -	DRM_FORMAT_MOD_LINEAR,
> >> -	DRM_FORMAT_MOD_INVALID
> >> -};
> >> -
> >> -static const u64 gen12_plane_format_modifiers_rc_ccs[] = {
> >> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> >> -	I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> >> -	I915_FORMAT_MOD_Y_TILED,
> >> -	I915_FORMAT_MOD_X_TILED,
> >> -	DRM_FORMAT_MOD_LINEAR,
> >> -	DRM_FORMAT_MOD_INVALID
> >> -};
> >> -
> >> -static const u64 adlp_step_a_plane_format_modifiers[] = {
> >> -	I915_FORMAT_MOD_Y_TILED,
> >> -	I915_FORMAT_MOD_X_TILED,
> >> -	DRM_FORMAT_MOD_LINEAR,
> >> -	DRM_FORMAT_MOD_INVALID
> >> -};
> >> -
> >>   int skl_format_to_fourcc(int format, bool rgb_order, bool alpha)
> >>   {
> >>   	switch (format) {
> >> @@ -1870,42 +1826,13 @@ static const u32 *icl_get_plane_formats(struct drm_i915_private *dev_priv,
> >>   	}
> >>   }
> >>   
> >> -static bool skl_plane_has_ccs(struct drm_i915_private *dev_priv,
> >> -			      enum pipe pipe, enum plane_id plane_id)
> >> -{
> >> -	if (plane_id == PLANE_CURSOR)
> >> -		return false;
> >> -
> >> -	if (DISPLAY_VER(dev_priv) >= 11)
> >> -		return true;
> >> -
> >> -	if (IS_GEMINILAKE(dev_priv))
> >> -		return pipe != PIPE_C;
> >> -
> >> -	return pipe != PIPE_C &&
> >> -		(plane_id == PLANE_PRIMARY ||
> >> -		 plane_id == PLANE_SPRITE0);
> >> -}
> >> -
> >>   static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
> >>   					   u32 format, u64 modifier)
> >>   {
> >>   	struct intel_plane *plane = to_intel_plane(_plane);
> >>   
> >> -	switch (modifier) {
> >> -	case DRM_FORMAT_MOD_LINEAR:
> >> -	case I915_FORMAT_MOD_X_TILED:
> >> -	case I915_FORMAT_MOD_Y_TILED:
> >> -	case I915_FORMAT_MOD_Yf_TILED:
> >> -		break;
> >> -	case I915_FORMAT_MOD_Y_TILED_CCS:
> >> -	case I915_FORMAT_MOD_Yf_TILED_CCS:
> >> -		if (!plane->has_ccs)
> >> -			return false;
> >> -		break;
> >> -	default:
> >> +	if (!intel_fb_plane_supports_modifier(plane, modifier))
> >>   		return false;
> >> -	}
> >>   
> >>   	switch (format) {
> >>   	case DRM_FORMAT_XRGB8888:
> >> @@ -1953,45 +1880,13 @@ static bool skl_plane_format_mod_supported(struct drm_plane *_plane,
> >>   	}
> >>   }
> >>   
> >> -static bool gen12_plane_supports_mc_ccs(struct drm_i915_private *dev_priv,
> >> -					enum plane_id plane_id)
> >> -{
> >> -	/* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */
> >> -	if (IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv) ||
> >> -	    IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_D0))
> >> -		return false;
> >> -
> >> -	/* Wa_22011186057 */
> >> -	if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
> >> -		return false;
> >> -
> >> -	return plane_id < PLANE_SPRITE4;
> >> -}
> >> -
> >>   static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
> >>   					     u32 format, u64 modifier)
> >>   {
> >> -	struct drm_i915_private *dev_priv = to_i915(_plane->dev);
> >>   	struct intel_plane *plane = to_intel_plane(_plane);
> >>   
> >> -	switch (modifier) {
> >> -	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
> >> -		if (!gen12_plane_supports_mc_ccs(dev_priv, plane->id))
> >> -			return false;
> >> -		fallthrough;
> >> -	case DRM_FORMAT_MOD_LINEAR:
> >> -	case I915_FORMAT_MOD_X_TILED:
> >> -	case I915_FORMAT_MOD_Y_TILED:
> >> -		break;
> >> -	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
> >> -	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
> >> -		/* Wa_22011186057 */
> >> -		if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
> >> -			return false;
> >> -		break;
> >> -	default:
> >> +	if (!intel_fb_plane_supports_modifier(plane, modifier))
> >>   		return false;
> >> -	}
> >>   
> >>   	switch (format) {
> >>   	case DRM_FORMAT_XRGB8888:
> >> @@ -2039,18 +1934,6 @@ static bool gen12_plane_format_mod_supported(struct drm_plane *_plane,
> >>   	}
> >>   }
> >>   
> >> -static const u64 *gen12_get_plane_modifiers(struct drm_i915_private *dev_priv,
> >> -					    enum plane_id plane_id)
> >> -{
> >> -	/* Wa_22011186057 */
> >> -	if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
> >> -		return adlp_step_a_plane_format_modifiers;
> >> -	else if (gen12_plane_supports_mc_ccs(dev_priv, plane_id))
> >> -		return gen12_plane_format_modifiers_mc_ccs;
> >> -	else
> >> -		return gen12_plane_format_modifiers_rc_ccs;
> >> -}
> >> -
> >>   static const struct drm_plane_funcs skl_plane_funcs = {
> >>   	.update_plane = drm_atomic_helper_update_plane,
> >>   	.disable_plane = drm_atomic_helper_disable_plane,
> >> @@ -2091,6 +1974,39 @@ skl_plane_disable_flip_done(struct intel_plane *plane)
> >>   	spin_unlock_irq(&i915->irq_lock);
> >>   }
> >>   
> >> +static bool skl_plane_has_rc_ccs(struct drm_i915_private *i915,
> >> +				 enum pipe pipe, enum plane_id plane_id)
> >> +{
> >> +	/* Wa_22011186057 */
> >> +	if (IS_ADLP_DISPLAY_STEP(i915, STEP_A0, STEP_B0))
> >> +		return false;
> >> +
> >> +	if (DISPLAY_VER(i915) >= 11)
> >> +		return true;
> >> +
> >> +	if (IS_GEMINILAKE(i915))
> >> +		return pipe != PIPE_C;
> >> +
> >> +	return pipe != PIPE_C &&
> >> +		(plane_id == PLANE_PRIMARY ||
> >> +		 plane_id == PLANE_SPRITE0);
> >> +}
> >> +
> >> +static bool gen12_plane_has_mc_ccs(struct drm_i915_private *i915,
> >> +				   enum plane_id plane_id)
> >> +{
> >> +	/* Wa_14010477008:tgl[a0..c0],rkl[all],dg1[all] */
> >> +	if (IS_DG1(i915) || IS_ROCKETLAKE(i915) ||
> >> +	    IS_TGL_DISPLAY_STEP(i915, STEP_A0, STEP_D0))
> >> +		return false;
> >> +
> >> +	/* Wa_22011186057 */
> >> +	if (IS_ADLP_DISPLAY_STEP(i915, STEP_A0, STEP_B0))
> >> +		return false;
> >> +
> >> +	return plane_id < PLANE_SPRITE4;
> >> +}
> >> +
> >>   struct intel_plane *
> >>   skl_universal_plane_create(struct drm_i915_private *dev_priv,
> >>   			   enum pipe pipe, enum plane_id plane_id)
> >> @@ -2098,6 +2014,7 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
> >>   	const struct drm_plane_funcs *plane_funcs;
> >>   	struct intel_plane *plane;
> >>   	enum drm_plane_type plane_type;
> >> +	enum intel_plane_caps plane_caps;
> >>   	unsigned int supported_rotations;
> >>   	unsigned int supported_csc;
> >>   	const u64 *modifiers;
> >> @@ -2159,29 +2076,34 @@ skl_universal_plane_create(struct drm_i915_private *dev_priv,
> >>   		formats = skl_get_plane_formats(dev_priv, pipe,
> >>   						plane_id, &num_formats);
> >>   
> >> -	plane->has_ccs = skl_plane_has_ccs(dev_priv, pipe, plane_id);
> >> -	if (DISPLAY_VER(dev_priv) >= 12) {
> >> -		modifiers = gen12_get_plane_modifiers(dev_priv, plane_id);
> >> +	if (DISPLAY_VER(dev_priv) >= 12)
> >>   		plane_funcs = &gen12_plane_funcs;
> >> -	} else {
> >> -		if (plane->has_ccs)
> >> -			modifiers = skl_plane_format_modifiers_ccs;
> >> -		else
> >> -			modifiers = skl_plane_format_modifiers_noccs;
> >> +	else
> >>   		plane_funcs = &skl_plane_funcs;
> >> -	}
> >>   
> >>   	if (plane_id == PLANE_PRIMARY)
> >>   		plane_type = DRM_PLANE_TYPE_PRIMARY;
> >>   	else
> >>   		plane_type = DRM_PLANE_TYPE_OVERLAY;
> >>   
> >> +	plane_caps = PLANE_HAS_TILING;
> >> +	if (skl_plane_has_rc_ccs(dev_priv, pipe, plane_id))
> >> +		plane_caps |= PLANE_HAS_CCS_RC;
> >> +
> >> +	if (gen12_plane_has_mc_ccs(dev_priv, plane_id))
> >> +		plane_caps |= PLANE_HAS_CCS_MC;
> >> +
> >> +	modifiers = intel_fb_plane_get_modifiers(dev_priv, plane_caps);
> >> +
> >>   	ret = drm_universal_plane_init(&dev_priv->drm, &plane->base,
> >>   				       0, plane_funcs,
> >>   				       formats, num_formats, modifiers,
> >>   				       plane_type,
> >>   				       "plane %d%c", plane_id + 1,
> >>   				       pipe_name(pipe));
> >> +
> >> +	kfree(modifiers);
> >> +
> >>   	if (ret)
> >>   		goto fail;
> >>   
> >> 
> >
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for CCS AUX planes
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for " Imre Deak
@ 2021-10-19  8:02   ` Jani Nikula
  2021-10-19  8:38     ` Imre Deak
  2021-10-19  9:46   ` [Intel-gfx] [PATCH v4 " Imre Deak
  1 sibling, 1 reply; 35+ messages in thread
From: Jani Nikula @ 2021-10-19  8:02 UTC (permalink / raw)
  To: Imre Deak, intel-gfx; +Cc: Juha-Pekka Heikkila, Ville Syrjälä


From patch 1:

static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
				       u8 display_ver)
{
	return display_ver >= md->display_ver.from &&
	       display_ver <= md->display_ver.until;
}

On Fri, 15 Oct 2021, Imre Deak <imre.deak@intel.com> wrote:
> +static bool check_modifier_display_ver_range(const struct intel_modifier_desc *md,
> +					     u8 display_ver_from, u8 display_ver_until)
> +{
> +	return check_modifier_display_ver(md, display_ver_from) &&
> +	       check_modifier_display_ver(md, display_ver_until);
> +}
> +

...

> +/**
> + * intel_fb_is_gen12_ccs_aux_plane: Check if a framebuffer color plane is a GEN12 CCS AUX plane
> + * @fb: Framebuffer
> + * @color_plane: color plane index to check
> + *
> + * Returns:
> + * Returns %true if @fb's color plane at index @color_plane is a GEN12 CCS AUX plane.
> + */
> +static bool intel_fb_is_gen12_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane)
>  {
> -	return is_gen12_ccs_modifier(fb->modifier) && is_ccs_plane(fb, plane);
> +	const struct intel_modifier_desc *md = lookup_modifier(fb->modifier);
> +
> +	return check_modifier_display_ver_range(md, 12, 13) &&
> +	       ccs_aux_plane_mask(md, fb->format) & BIT(color_plane);
>  }

check_modifier_display_ver_range(md, 12, 13)

==>

check_modifier_display_ver(md, 12) &&
check_modifier_display_ver(md, 13)

==>

12 >= md->display_ver.from &&
12 <= md->display_ver.until &&
13 >= md->display_ver.from &&
13 <= md->display_ver.until

==>

Always false.


BR,
Jani.


-- 
Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for CCS AUX planes
  2021-10-19  8:02   ` Jani Nikula
@ 2021-10-19  8:38     ` Imre Deak
  2021-10-19  8:47       ` Imre Deak
  0 siblings, 1 reply; 35+ messages in thread
From: Imre Deak @ 2021-10-19  8:38 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, Juha-Pekka Heikkila, Ville Syrjälä

On Tue, Oct 19, 2021 at 11:02:45AM +0300, Jani Nikula wrote:
> 
> From patch 1:
> 
> static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
> 				       u8 display_ver)
> {
> 	return display_ver >= md->display_ver.from &&
> 	       display_ver <= md->display_ver.until;
> }
> 
> On Fri, 15 Oct 2021, Imre Deak <imre.deak@intel.com> wrote:
> > +static bool check_modifier_display_ver_range(const struct intel_modifier_desc *md,
> > +					     u8 display_ver_from, u8 display_ver_until)
> > +{
> > +	return check_modifier_display_ver(md, display_ver_from) &&
> > +	       check_modifier_display_ver(md, display_ver_until);
> > +}
> > +
> 
> ...
> 
> > +/**
> > + * intel_fb_is_gen12_ccs_aux_plane: Check if a framebuffer color plane is a GEN12 CCS AUX plane
> > + * @fb: Framebuffer
> > + * @color_plane: color plane index to check
> > + *
> > + * Returns:
> > + * Returns %true if @fb's color plane at index @color_plane is a GEN12 CCS AUX plane.
> > + */
> > +static bool intel_fb_is_gen12_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane)
> >  {
> > -	return is_gen12_ccs_modifier(fb->modifier) && is_ccs_plane(fb, plane);
> > +	const struct intel_modifier_desc *md = lookup_modifier(fb->modifier);
> > +
> > +	return check_modifier_display_ver_range(md, 12, 13) &&
> > +	       ccs_aux_plane_mask(md, fb->format) & BIT(color_plane);
> >  }
> 
> check_modifier_display_ver_range(md, 12, 13)
> 
> ==>
> 
> check_modifier_display_ver(md, 12) &&
> check_modifier_display_ver(md, 13)
> 
> ==>
> 
> 12 >= md->display_ver.from &&
> 12 <= md->display_ver.until &&
> 13 >= md->display_ver.from &&
> 13 <= md->display_ver.until
> 
> ==>
> 
> Always false.

If md->display_ver.from=12, md->display_ver.until=13

12 >= 12 &&
12 <= 13 &&
13 >= 12 &&
13 <= 13

not false.

But yes, check_modifier_display_ver_range() is bogus for the
md->display_ver.from == md->display_ver.until case, and should be

md->display_ver.from >= display_ver_from &&
md->display_ver.until <= disaply_ver_until

Thanks for catching this, will fix it.

> BR,
> Jani.
> 
> 
> -- 
> Jani Nikula, Intel Open Source Graphics Center

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

* Re: [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for CCS AUX planes
  2021-10-19  8:38     ` Imre Deak
@ 2021-10-19  8:47       ` Imre Deak
  2021-10-19 10:00         ` Imre Deak
  0 siblings, 1 reply; 35+ messages in thread
From: Imre Deak @ 2021-10-19  8:47 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, Juha-Pekka Heikkila, Ville Syrjälä

On Tue, Oct 19, 2021 at 11:38:33AM +0300, Imre Deak wrote:
> On Tue, Oct 19, 2021 at 11:02:45AM +0300, Jani Nikula wrote:
> > 
> > From patch 1:
> > 
> > static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
> > 				       u8 display_ver)
> > {
> > 	return display_ver >= md->display_ver.from &&
> > 	       display_ver <= md->display_ver.until;
> > }
> > 
> > On Fri, 15 Oct 2021, Imre Deak <imre.deak@intel.com> wrote:
> > > +static bool check_modifier_display_ver_range(const struct intel_modifier_desc *md,
> > > +					     u8 display_ver_from, u8 display_ver_until)
> > > +{
> > > +	return check_modifier_display_ver(md, display_ver_from) &&
> > > +	       check_modifier_display_ver(md, display_ver_until);
> > > +}
> > > +
> > 
> > ...
> > 
> > > +/**
> > > + * intel_fb_is_gen12_ccs_aux_plane: Check if a framebuffer color plane is a GEN12 CCS AUX plane
> > > + * @fb: Framebuffer
> > > + * @color_plane: color plane index to check
> > > + *
> > > + * Returns:
> > > + * Returns %true if @fb's color plane at index @color_plane is a GEN12 CCS AUX plane.
> > > + */
> > > +static bool intel_fb_is_gen12_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane)
> > >  {
> > > -	return is_gen12_ccs_modifier(fb->modifier) && is_ccs_plane(fb, plane);
> > > +	const struct intel_modifier_desc *md = lookup_modifier(fb->modifier);
> > > +
> > > +	return check_modifier_display_ver_range(md, 12, 13) &&
> > > +	       ccs_aux_plane_mask(md, fb->format) & BIT(color_plane);
> > >  }
> > 
> > check_modifier_display_ver_range(md, 12, 13)
> > 
> > ==>
> > 
> > check_modifier_display_ver(md, 12) &&
> > check_modifier_display_ver(md, 13)
> > 
> > ==>
> > 
> > 12 >= md->display_ver.from &&
> > 12 <= md->display_ver.until &&
> > 13 >= md->display_ver.from &&
> > 13 <= md->display_ver.until
> > 
> > ==>
> > 
> > Always false.
> 
> If md->display_ver.from=12, md->display_ver.until=13
> 
> 12 >= 12 &&
> 12 <= 13 &&
> 13 >= 12 &&
> 13 <= 13
> 
> not false.
> 
> But yes, check_modifier_display_ver_range() is bogus for the
> md->display_ver.from == md->display_ver.until case, and should be
> 
> md->display_ver.from >= display_ver_from &&
> md->display_ver.until <= disaply_ver_until

arg the above is still bogus and should be:

 check_modifier_display_ver(md, display_ver_from) ||
 check_modifier_display_ver(md, display_ver_until);

> Thanks for catching this, will fix it.
> 
> > BR,
> > Jani.
> > 
> > 
> > -- 
> > Jani Nikula, Intel Open Source Graphics Center

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

* [Intel-gfx] [PATCH v4 09/11] drm/i915: Add a platform independent way to check for CCS AUX planes
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for " Imre Deak
  2021-10-19  8:02   ` Jani Nikula
@ 2021-10-19  9:46   ` Imre Deak
  1 sibling, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-19  9:46 UTC (permalink / raw)
  To: intel-gfx; +Cc: Juha-Pekka Heikkila, Ville Syrjälä, Jani Nikula

Future platforms change the location of CCS AUX planes in CCS
framebuffers, so add intel_fb_is_ccs_aux_plane() to query for these
planes independently of the platform. This function can be used
everywhere instead of is_ccs_plane() (or is_ccs_plane() && !cc_plane()),
since all the callers are only interested in CCS AUX planes (and not CCS
color-clear planes).

Add the corresponding intel_fb_is_gen12_ccs_aux_plane(), which can be
used everywhere instead of is_gen12_ccs_plane(), based on the above
explanation.

This change also unexports the is_gen12_ccs_modifier(),
is_gen12_ccs_plane(), is_gen12_ccs_cc_plane() functions as they are only
used in intel_fb.c

v1-v2: Unchanged
v3: (Ville)
- Use ccs_aux instead of the ccs_ctrl term everywhere.
- Use color_plane instead of plane term for FB plane indicies.
v4: Fix version range check. (Jani)

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 .../drm/i915/display/intel_display_types.h    |  7 --
 drivers/gpu/drm/i915/display/intel_fb.c       | 82 ++++++++++++++-----
 drivers/gpu/drm/i915/display/intel_fb.h       |  5 +-
 .../drm/i915/display/skl_universal_plane.c    |  3 +-
 4 files changed, 64 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h b/drivers/gpu/drm/i915/display/intel_display_types.h
index 50b4264f61d62..e3353c2311e52 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -2049,11 +2049,4 @@ static inline bool is_ccs_modifier(u64 modifier)
 	       modifier == I915_FORMAT_MOD_Yf_TILED_CCS;
 }
 
-static inline bool is_gen12_ccs_modifier(u64 modifier)
-{
-	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS ||
-	       modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC ||
-	       modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS;
-}
-
 #endif /*  __INTEL_DISPLAY_TYPES_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_fb.c b/drivers/gpu/drm/i915/display/intel_fb.c
index 6e8d600dff6be..d65340d7fd843 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.c
+++ b/drivers/gpu/drm/i915/display/intel_fb.c
@@ -131,6 +131,8 @@ struct intel_modifier_desc {
 #define INTEL_CCS_ANY		(INTEL_CCS_RC | INTEL_CCS_RC_CC | INTEL_CCS_MC)
 		u8 type:3;
 		u8 cc_planes:3;
+		u8 packed_aux_planes:4;
+		u8 planar_aux_planes:4;
 	} ccs;
 };
 
@@ -163,6 +165,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC,
+		.ccs.packed_aux_planes = BIT(1),
 
 		FORMAT_OVERRIDE(skl_ccs_formats),
 	},
@@ -172,6 +175,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_NONE,
 
 		.ccs.type = INTEL_CCS_RC,
+		.ccs.packed_aux_planes = BIT(1),
 
 		FORMAT_OVERRIDE(skl_ccs_formats),
 	},
@@ -181,6 +185,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC,
+		.ccs.packed_aux_planes = BIT(1),
 
 		FORMAT_OVERRIDE(gen12_ccs_formats),
 	},
@@ -190,6 +195,7 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_RC_CC,
+		.ccs.packed_aux_planes = BIT(1),
 		.ccs.cc_planes = BIT(2),
 
 		FORMAT_OVERRIDE(gen12_ccs_cc_formats),
@@ -200,6 +206,8 @@ static const struct intel_modifier_desc intel_modifiers[] = {
 		.tiling = I915_TILING_Y,
 
 		.ccs.type = INTEL_CCS_MC,
+		.ccs.packed_aux_planes = BIT(1),
+		.ccs.planar_aux_planes = BIT(2) | BIT(3),
 
 		FORMAT_OVERRIDE(gen12_ccs_formats),
 	},
@@ -271,6 +279,13 @@ static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
 	       display_ver <= md->display_ver.until;
 }
 
+static bool check_modifier_display_ver_range(const struct intel_modifier_desc *md,
+					     u8 display_ver_from, u8 display_ver_until)
+{
+	return md->display_ver.from <= display_ver_until &&
+		display_ver_from <= md->display_ver.until;
+}
+
 static bool plane_has_modifier(struct drm_i915_private *i915,
 			       enum intel_plane_caps plane_caps,
 			       const struct intel_modifier_desc *md)
@@ -377,17 +392,44 @@ bool intel_format_info_is_yuv_semiplanar(const struct drm_format_info *info,
 	return format_is_yuv_semiplanar(lookup_modifier(modifier), info);
 }
 
-bool is_ccs_plane(const struct drm_framebuffer *fb, int plane)
+static u8 ccs_aux_plane_mask(const struct intel_modifier_desc *md,
+			     const struct drm_format_info *format)
 {
-	if (!is_ccs_modifier(fb->modifier))
-		return false;
+	if (format_is_yuv_semiplanar(md, format))
+		return md->ccs.planar_aux_planes;
+	else
+		return md->ccs.packed_aux_planes;
+}
+
+/**
+ * intel_fb_is_ccs_aux_plane: Check if a framebuffer color plane is a CCS AUX plane
+ * @fb: Framebuffer
+ * @color_plane: color plane index to check
+ *
+ * Returns:
+ * Returns %true if @fb's color plane at index @color_plane is a CCS AUX plane.
+ */
+bool intel_fb_is_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane)
+{
+	const struct intel_modifier_desc *md = lookup_modifier(fb->modifier);
 
-	return plane >= fb->format->num_planes / 2;
+	return ccs_aux_plane_mask(md, fb->format) & BIT(color_plane);
 }
 
-bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane)
+/**
+ * intel_fb_is_gen12_ccs_aux_plane: Check if a framebuffer color plane is a GEN12 CCS AUX plane
+ * @fb: Framebuffer
+ * @color_plane: color plane index to check
+ *
+ * Returns:
+ * Returns %true if @fb's color plane at index @color_plane is a GEN12 CCS AUX plane.
+ */
+static bool intel_fb_is_gen12_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane)
 {
-	return is_gen12_ccs_modifier(fb->modifier) && is_ccs_plane(fb, plane);
+	const struct intel_modifier_desc *md = lookup_modifier(fb->modifier);
+
+	return check_modifier_display_ver_range(md, 12, 13) &&
+	       ccs_aux_plane_mask(md, fb->format) & BIT(color_plane);
 }
 
 /**
@@ -410,9 +452,9 @@ int intel_fb_rc_ccs_cc_plane(const struct drm_framebuffer *fb)
 	return ilog2((int)md->ccs.cc_planes);
 }
 
-bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane)
+static bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int color_plane)
 {
-	return intel_fb_rc_ccs_cc_plane(fb) == plane;
+	return intel_fb_rc_ccs_cc_plane(fb) == color_plane;
 }
 
 static bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_plane)
@@ -424,7 +466,7 @@ static bool is_semiplanar_uv_plane(const struct drm_framebuffer *fb, int color_p
 bool is_surface_linear(const struct drm_framebuffer *fb, int color_plane)
 {
 	return fb->modifier == DRM_FORMAT_MOD_LINEAR ||
-	       is_gen12_ccs_plane(fb, color_plane) ||
+	       intel_fb_is_gen12_ccs_aux_plane(fb, color_plane) ||
 	       is_gen12_ccs_cc_plane(fb, color_plane);
 }
 
@@ -512,13 +554,13 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane)
 		else
 			return 512;
 	case I915_FORMAT_MOD_Y_TILED_CCS:
-		if (is_ccs_plane(fb, color_plane))
+		if (intel_fb_is_ccs_aux_plane(fb, color_plane))
 			return 128;
 		fallthrough;
 	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
 	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
 	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
-		if (is_ccs_plane(fb, color_plane) ||
+		if (intel_fb_is_ccs_aux_plane(fb, color_plane) ||
 		    is_gen12_ccs_cc_plane(fb, color_plane))
 			return 64;
 		fallthrough;
@@ -528,7 +570,7 @@ intel_tile_width_bytes(const struct drm_framebuffer *fb, int color_plane)
 		else
 			return 512;
 	case I915_FORMAT_MOD_Yf_TILED_CCS:
-		if (is_ccs_plane(fb, color_plane))
+		if (intel_fb_is_ccs_aux_plane(fb, color_plane))
 			return 128;
 		fallthrough;
 	case I915_FORMAT_MOD_Yf_TILED:
@@ -584,7 +626,7 @@ static void intel_tile_block_dims(const struct drm_framebuffer *fb, int color_pl
 {
 	intel_tile_dims(fb, color_plane, tile_width, tile_height);
 
-	if (is_gen12_ccs_plane(fb, color_plane))
+	if (intel_fb_is_gen12_ccs_aux_plane(fb, color_plane))
 		*tile_height = 1;
 }
 
@@ -645,7 +687,7 @@ unsigned int intel_surf_alignment(const struct drm_framebuffer *fb,
 		return 512 * 4096;
 
 	/* AUX_DIST needs only 4K alignment */
-	if (is_ccs_plane(fb, color_plane))
+	if (intel_fb_is_ccs_aux_plane(fb, color_plane))
 		return 4096;
 
 	if (is_semiplanar_uv_plane(fb, color_plane)) {
@@ -704,7 +746,7 @@ void intel_fb_plane_get_subsampling(int *hsub, int *vsub,
 	 * TODO: Deduct the subsampling from the char block for all CCS
 	 * formats and planes.
 	 */
-	if (!is_gen12_ccs_plane(fb, color_plane)) {
+	if (!intel_fb_is_gen12_ccs_aux_plane(fb, color_plane)) {
 		*hsub = fb->format->hsub;
 		*vsub = fb->format->vsub;
 
@@ -732,7 +774,7 @@ void intel_fb_plane_get_subsampling(int *hsub, int *vsub,
 static void intel_fb_plane_dims(const struct intel_framebuffer *fb, int color_plane, int *w, int *h)
 {
 	struct drm_i915_private *i915 = to_i915(fb->base.dev);
-	int main_plane = is_ccs_plane(&fb->base, color_plane) ?
+	int main_plane = intel_fb_is_ccs_aux_plane(&fb->base, color_plane) ?
 			 skl_ccs_to_main_plane(&fb->base, color_plane) : 0;
 	unsigned int main_width = fb->base.width;
 	unsigned int main_height = fb->base.height;
@@ -745,7 +787,7 @@ static void intel_fb_plane_dims(const struct intel_framebuffer *fb, int color_pl
 	 * stride in the allocated FB object may not be power-of-two
 	 * sized, in which case it is auto-padded to the POT size.
 	 */
-	if (IS_ALDERLAKE_P(i915) && is_ccs_plane(&fb->base, color_plane))
+	if (IS_ALDERLAKE_P(i915) && intel_fb_is_ccs_aux_plane(&fb->base, color_plane))
 		main_width = gen12_aligned_scanout_stride(fb, 0) /
 			     fb->base.format->cpp[0];
 
@@ -984,7 +1026,7 @@ static int intel_fb_check_ccs_xy(const struct drm_framebuffer *fb, int ccs_plane
 	int ccs_x, ccs_y;
 	int main_x, main_y;
 
-	if (!is_ccs_plane(fb, ccs_plane) || is_gen12_ccs_cc_plane(fb, ccs_plane))
+	if (!intel_fb_is_ccs_aux_plane(fb, ccs_plane))
 		return 0;
 
 	/*
@@ -1188,7 +1230,7 @@ plane_view_dst_stride_tiles(const struct intel_framebuffer *fb, int color_plane,
 			    unsigned int pitch_tiles)
 {
 	if (intel_fb_needs_pot_stride_remap(fb)) {
-		unsigned int min_stride = is_ccs_plane(&fb->base, color_plane) ? 2 : 8;
+		unsigned int min_stride = intel_fb_is_ccs_aux_plane(&fb->base, color_plane) ? 2 : 8;
 		/*
 		 * ADL_P, the only platform needing a POT stride has a minimum
 		 * of 8 main surface and 2 CCS AUX stride tiles.
@@ -1804,7 +1846,7 @@ int intel_framebuffer_init(struct intel_framebuffer *intel_fb,
 			goto err;
 		}
 
-		if (is_gen12_ccs_plane(fb, i) && !is_gen12_ccs_cc_plane(fb, i)) {
+		if (intel_fb_is_gen12_ccs_aux_plane(fb, i)) {
 			int ccs_aux_stride = gen12_ccs_aux_stride(intel_fb, i);
 
 			if (fb->pitches[i] != ccs_aux_stride) {
diff --git a/drivers/gpu/drm/i915/display/intel_fb.h b/drivers/gpu/drm/i915/display/intel_fb.h
index 74e0fc03319b9..c80822b3cb827 100644
--- a/drivers/gpu/drm/i915/display/intel_fb.h
+++ b/drivers/gpu/drm/i915/display/intel_fb.h
@@ -27,10 +27,7 @@ enum intel_plane_caps {
 	PLANE_HAS_CCS_MC = BIT(2),
 };
 
-bool is_ccs_plane(const struct drm_framebuffer *fb, int plane);
-bool is_gen12_ccs_plane(const struct drm_framebuffer *fb, int plane);
-bool is_gen12_ccs_cc_plane(const struct drm_framebuffer *fb, int plane);
-
+bool intel_fb_is_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane);
 int intel_fb_rc_ccs_cc_plane(const struct drm_framebuffer *fb);
 
 u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index e1f754270eb02..47f31e40da2d8 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1607,8 +1607,7 @@ static int skl_check_ccs_aux_surface(struct intel_plane_state *plane_state)
 		int hsub, vsub;
 		int x, y;
 
-		if (!is_ccs_plane(fb, ccs_plane) ||
-		    is_gen12_ccs_cc_plane(fb, ccs_plane))
+		if (!intel_fb_is_ccs_aux_plane(fb, ccs_plane))
 			continue;
 
 		intel_fb_plane_get_subsampling(&main_hsub, &main_vsub, fb,
-- 
2.27.0


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

* Re: [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for CCS AUX planes
  2021-10-19  8:47       ` Imre Deak
@ 2021-10-19 10:00         ` Imre Deak
  0 siblings, 0 replies; 35+ messages in thread
From: Imre Deak @ 2021-10-19 10:00 UTC (permalink / raw)
  To: Jani Nikula; +Cc: intel-gfx, Juha-Pekka Heikkila, Ville Syrjälä

On Tue, Oct 19, 2021 at 11:47:45AM +0300, Imre Deak wrote:
> On Tue, Oct 19, 2021 at 11:38:33AM +0300, Imre Deak wrote:
> > On Tue, Oct 19, 2021 at 11:02:45AM +0300, Jani Nikula wrote:
> > > 
> > > From patch 1:
> > > 
> > > static bool check_modifier_display_ver(const struct intel_modifier_desc *md,
> > > 				       u8 display_ver)
> > > {
> > > 	return display_ver >= md->display_ver.from &&
> > > 	       display_ver <= md->display_ver.until;
> > > }
> > > 
> > > On Fri, 15 Oct 2021, Imre Deak <imre.deak@intel.com> wrote:
> > > > +static bool check_modifier_display_ver_range(const struct intel_modifier_desc *md,
> > > > +					     u8 display_ver_from, u8 display_ver_until)
> > > > +{
> > > > +	return check_modifier_display_ver(md, display_ver_from) &&
> > > > +	       check_modifier_display_ver(md, display_ver_until);
> > > > +}
> > > > +
> > > 
> > > ...
> > > 
> > > > +/**
> > > > + * intel_fb_is_gen12_ccs_aux_plane: Check if a framebuffer color plane is a GEN12 CCS AUX plane
> > > > + * @fb: Framebuffer
> > > > + * @color_plane: color plane index to check
> > > > + *
> > > > + * Returns:
> > > > + * Returns %true if @fb's color plane at index @color_plane is a GEN12 CCS AUX plane.
> > > > + */
> > > > +static bool intel_fb_is_gen12_ccs_aux_plane(const struct drm_framebuffer *fb, int color_plane)
> > > >  {
> > > > -	return is_gen12_ccs_modifier(fb->modifier) && is_ccs_plane(fb, plane);
> > > > +	const struct intel_modifier_desc *md = lookup_modifier(fb->modifier);
> > > > +
> > > > +	return check_modifier_display_ver_range(md, 12, 13) &&
> > > > +	       ccs_aux_plane_mask(md, fb->format) & BIT(color_plane);
> > > >  }
> > > 
> > > check_modifier_display_ver_range(md, 12, 13)
> > > 
> > > ==>
> > > 
> > > check_modifier_display_ver(md, 12) &&
> > > check_modifier_display_ver(md, 13)
> > > 
> > > ==>
> > > 
> > > 12 >= md->display_ver.from &&
> > > 12 <= md->display_ver.until &&
> > > 13 >= md->display_ver.from &&
> > > 13 <= md->display_ver.until
> > > 
> > > ==>
> > > 
> > > Always false.
> > 
> > If md->display_ver.from=12, md->display_ver.until=13
> > 
> > 12 >= 12 &&
> > 12 <= 13 &&
> > 13 >= 12 &&
> > 13 <= 13
> > 
> > not false.
> > 
> > But yes, check_modifier_display_ver_range() is bogus for the
> > md->display_ver.from == md->display_ver.until case, and should be
> > 
> > md->display_ver.from >= display_ver_from &&
> > md->display_ver.until <= disaply_ver_until
> 
> arg the above is still bogus and should be:
> 
>  check_modifier_display_ver(md, display_ver_from) ||
>  check_modifier_display_ver(md, display_ver_until);

Somehow the intersect check for two ranges was difficult :/ I hope v4 I
sent is correct.

> 
> > Thanks for catching this, will fix it.
> > 
> > > BR,
> > > Jani.
> > > 
> > > 
> > > -- 
> > > Jani Nikula, Intel Open Source Graphics Center

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

* [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Simplify handling of modifiers (rev11)
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (14 preceding siblings ...)
  2021-10-15 11:19 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
@ 2021-10-19 14:42 ` Patchwork
  2021-10-19 14:44 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 35+ messages in thread
From: Patchwork @ 2021-10-19 14:42 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Simplify handling of modifiers (rev11)
URL   : https://patchwork.freedesktop.org/series/95579/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
8cb40d7e0dbd drm/i915: Add a table with a descriptor for all i915 modifiers
-:30: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#30: 
- Use from, until display version fields in modifier_desc instead of a mask. (Jani)

total: 0 errors, 1 warnings, 0 checks, 675 lines checked
01ccea448c51 drm/i915: Move intel_get_format_info() to intel_fb.c
-:284: CHECK:MACRO_ARG_REUSE: Macro argument reuse 'format_list' - possible side-effects?
#284: FILE: drivers/gpu/drm/i915/display/intel_fb.c:119:
+#define FORMAT_OVERRIDE(format_list) \
+	.formats = format_list, \
+	.format_count = ARRAY_SIZE(format_list)

total: 0 errors, 0 warnings, 1 checks, 351 lines checked
14c3d888d981 drm/i915: Add tiling attribute to the modifier descriptor
5d9bdcb9dfee drm/i915: Simplify the modifier check for interlaced scanout support
66b8cb174dbb drm/i915: Unexport is_semiplanar_uv_plane()
c2f251e1d2cd drm/i915: Move intel_format_info_is_yuv_semiplanar() to intel_fb.c
a01da1211d1f drm/i915: Add a platform independent way to get the RC CCS CC plane
d6523db285fa drm/i915: Handle CCS CC planes separately from CCS AUX planes
820b82990550 drm/i915: Add a platform independent way to check for CCS AUX planes
59db1f84b02f drm/i915: Move is_ccs_modifier() to intel_fb.c
e3d9c9af236f drm/i915: Add functions to check for RC CCS CC and MC CCS modifiers



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

* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915: Simplify handling of modifiers (rev11)
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (15 preceding siblings ...)
  2021-10-19 14:42 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Simplify handling of modifiers (rev11) Patchwork
@ 2021-10-19 14:44 ` Patchwork
  2021-10-19 15:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
  2021-10-19 19:07 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  18 siblings, 0 replies; 35+ messages in thread
From: Patchwork @ 2021-10-19 14:44 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Simplify handling of modifiers (rev11)
URL   : https://patchwork.freedesktop.org/series/95579/
State : warning

== Summary ==

$ dim sparse --fast origin/drm-tip
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
-
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:27:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:27:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:27:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:32:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:32:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:49:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:49:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:49:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:56:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_engine_stats.h:56:9: warning: trying to copy expression type 31
+drivers/gpu/drm/i915/gt/intel_reset.c:1392:5: warning: context imbalance in 'intel_gt_reset_trylock' - different lock contexts for basic block
+drivers/gpu/drm/i915/i915_perf.c:1442:15: warning: memset with byte count of 16777216
+drivers/gpu/drm/i915/i915_perf.c:1496:15: warning: memset with byte count of 16777216
+./include/asm-generic/bitops/find.h:112:45: warning: shift count is negative (-262080)
+./include/asm-generic/bitops/find.h:32:31: warning: shift count is negative (-262080)
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_read16' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_read32' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_read64' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_read8' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'fwtable_write8' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'gen6_write16' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'gen6_write32' - different lock contexts for basic block
+./include/linux/spinlock.h:418:9: warning: context imbalance in 'gen6_write8' - different lock contexts for basic block



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

* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Simplify handling of modifiers (rev11)
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (16 preceding siblings ...)
  2021-10-19 14:44 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
@ 2021-10-19 15:14 ` Patchwork
  2021-10-19 19:07 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
  18 siblings, 0 replies; 35+ messages in thread
From: Patchwork @ 2021-10-19 15:14 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915: Simplify handling of modifiers (rev11)
URL   : https://patchwork.freedesktop.org/series/95579/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10761 -> Patchwork_21378
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

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

  * igt@gem_exec_suspend@basic-s3:
    - fi-tgl-1115g4:      [PASS][2] -> [FAIL][3] ([i915#1888])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/fi-tgl-1115g4/igt@gem_exec_suspend@basic-s3.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/fi-tgl-1115g4/igt@gem_exec_suspend@basic-s3.html

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-skl-guc:         [PASS][4] -> [DMESG-FAIL][5] ([i915#2291] / [i915#541])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/fi-skl-guc/igt@i915_selftest@live@gt_heartbeat.html

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

  
#### Possible fixes ####

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

  * igt@kms_flip@basic-plain-flip@c-dp1:
    - fi-cfl-8109u:       [FAIL][10] ([i915#4165]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/fi-cfl-8109u/igt@kms_flip@basic-plain-flip@c-dp1.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/fi-cfl-8109u/igt@kms_flip@basic-plain-flip@c-dp1.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b:
    - fi-cfl-8109u:       [DMESG-WARN][12] ([i915#295]) -> [PASS][13] +14 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/fi-cfl-8109u/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-b.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#295]: https://gitlab.freedesktop.org/drm/intel/issues/295
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#4165]: https://gitlab.freedesktop.org/drm/intel/issues/4165
  [i915#4269]: https://gitlab.freedesktop.org/drm/intel/issues/4269
  [i915#541]: https://gitlab.freedesktop.org/drm/intel/issues/541


Participating hosts (38 -> 36)
------------------------------

  Missing    (2): fi-bsw-cyan bat-dg1-6 


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

  * Linux: CI_DRM_10761 -> Patchwork_21378

  CI-20190529: 20190529
  CI_DRM_10761: 944d824a8c70a3984d0723229f2c3b9a2fa8452c @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6255: 9b0881254557edeaf273b2196309fc4e22ea0312 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_21378: e3d9c9af236fc8502ad5208d3df31fe2b53ca6d0 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

e3d9c9af236f drm/i915: Add functions to check for RC CCS CC and MC CCS modifiers
59db1f84b02f drm/i915: Move is_ccs_modifier() to intel_fb.c
820b82990550 drm/i915: Add a platform independent way to check for CCS AUX planes
d6523db285fa drm/i915: Handle CCS CC planes separately from CCS AUX planes
a01da1211d1f drm/i915: Add a platform independent way to get the RC CCS CC plane
c2f251e1d2cd drm/i915: Move intel_format_info_is_yuv_semiplanar() to intel_fb.c
66b8cb174dbb drm/i915: Unexport is_semiplanar_uv_plane()
5d9bdcb9dfee drm/i915: Simplify the modifier check for interlaced scanout support
14c3d888d981 drm/i915: Add tiling attribute to the modifier descriptor
01ccea448c51 drm/i915: Move intel_get_format_info() to intel_fb.c
8cb40d7e0dbd drm/i915: Add a table with a descriptor for all i915 modifiers

== Logs ==

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

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

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

* [Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Simplify handling of modifiers (rev11)
  2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
                   ` (17 preceding siblings ...)
  2021-10-19 15:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2021-10-19 19:07 ` Patchwork
  18 siblings, 0 replies; 35+ messages in thread
From: Patchwork @ 2021-10-19 19:07 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx

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

== Series Details ==

Series: drm/i915: Simplify handling of modifiers (rev11)
URL   : https://patchwork.freedesktop.org/series/95579/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10761_full -> Patchwork_21378_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  

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

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

### IGT changes ###

#### Issues hit ####

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

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
    - shard-apl:          [PASS][2] -> [DMESG-WARN][3] ([i915#180]) +2 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-apl8/igt@gem_ctx_isolation@preservation-s3@bcs0.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl2/igt@gem_ctx_isolation@preservation-s3@bcs0.html

  * igt@gem_ctx_param@invalid-param-set:
    - shard-skl:          [PASS][4] -> [DMESG-WARN][5] ([i915#1982])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-skl10/igt@gem_ctx_param@invalid-param-set.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl5/igt@gem_ctx_param@invalid-param-set.html

  * igt@gem_ctx_persistence@legacy-engines-hostile-preempt:
    - shard-snb:          NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#1099]) +5 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-snb7/igt@gem_ctx_persistence@legacy-engines-hostile-preempt.html

  * igt@gem_ctx_sseu@invalid-sseu:
    - shard-tglb:         NOTRUN -> [SKIP][7] ([i915#280]) +2 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@gem_ctx_sseu@invalid-sseu.html

  * igt@gem_exec_fair@basic-none-vip@rcs0:
    - shard-tglb:         NOTRUN -> [FAIL][8] ([i915#2842]) +5 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@gem_exec_fair@basic-none-vip@rcs0.html

  * igt@gem_exec_fair@basic-none@rcs0:
    - shard-iclb:         [PASS][9] -> [FAIL][10] ([i915#2842])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-iclb7/igt@gem_exec_fair@basic-none@rcs0.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb5/igt@gem_exec_fair@basic-none@rcs0.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-kbl:          NOTRUN -> [FAIL][11] ([i915#2842]) +3 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl2/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-pace@bcs0:
    - shard-tglb:         [PASS][12] -> [FAIL][13] ([i915#2842]) +2 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-tglb7/igt@gem_exec_fair@basic-pace@bcs0.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb6/igt@gem_exec_fair@basic-pace@bcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-kbl:          [PASS][14] -> [FAIL][15] ([i915#2842])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-kbl6/igt@gem_exec_fair@basic-pace@vecs0.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl6/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-apl:          NOTRUN -> [WARN][16] ([i915#2658])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl1/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pxp@create-regular-context-1:
    - shard-tglb:         NOTRUN -> [SKIP][17] ([i915#4270])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@gem_pxp@create-regular-context-1.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-skl:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#3323])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl9/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@gem_userptr_blits@invalid-mmap-offset-unsync:
    - shard-tglb:         NOTRUN -> [SKIP][19] ([i915#3297])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb2/igt@gem_userptr_blits@invalid-mmap-offset-unsync.html

  * igt@gem_userptr_blits@vma-merge:
    - shard-apl:          NOTRUN -> [FAIL][20] ([i915#3318])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl8/igt@gem_userptr_blits@vma-merge.html

  * igt@gem_workarounds@suspend-resume:
    - shard-tglb:         [PASS][21] -> [INCOMPLETE][22] ([i915#456])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-tglb1/igt@gem_workarounds@suspend-resume.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb7/igt@gem_workarounds@suspend-resume.html

  * igt@gen9_exec_parse@batch-invalid-length:
    - shard-snb:          NOTRUN -> [SKIP][23] ([fdo#109271]) +303 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-snb6/igt@gen9_exec_parse@batch-invalid-length.html

  * igt@gen9_exec_parse@bb-start-out:
    - shard-tglb:         NOTRUN -> [SKIP][24] ([i915#2856])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@gen9_exec_parse@bb-start-out.html

  * igt@i915_pm_dc@dc5-psr:
    - shard-skl:          [PASS][25] -> [INCOMPLETE][26] ([i915#198])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-skl3/igt@i915_pm_dc@dc5-psr.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl4/igt@i915_pm_dc@dc5-psr.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-tglb:         NOTRUN -> [WARN][27] ([i915#2681] / [i915#2684])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_pm_rpm@gem-mmap-type@gtt:
    - shard-iclb:         [PASS][28] -> [INCOMPLETE][29] ([i915#2910])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-iclb6/igt@i915_pm_rpm@gem-mmap-type@gtt.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb4/igt@i915_pm_rpm@gem-mmap-type@gtt.html

  * igt@kms_async_flips@alternate-sync-async-flip:
    - shard-skl:          [PASS][30] -> [FAIL][31] ([i915#2521])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-skl2/igt@kms_async_flips@alternate-sync-async-flip.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl9/igt@kms_async_flips@alternate-sync-async-flip.html

  * igt@kms_async_flips@crc:
    - shard-skl:          NOTRUN -> [FAIL][32] ([i915#4272])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl9/igt@kms_async_flips@crc.html

  * igt@kms_big_fb@linear-8bpp-rotate-270:
    - shard-tglb:         NOTRUN -> [SKIP][33] ([fdo#111614]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb2/igt@kms_big_fb@linear-8bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip:
    - shard-skl:          NOTRUN -> [FAIL][34] ([i915#3743]) +2 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl6/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-180-async-flip.html

  * igt@kms_big_fb@yf-tiled-addfb-size-overflow:
    - shard-tglb:         NOTRUN -> [SKIP][35] ([fdo#111615]) +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-apl:          NOTRUN -> [SKIP][36] ([fdo#109271] / [i915#3777]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl1/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_bw@linear-tiling-1-displays-3840x2160p:
    - shard-tglb:         NOTRUN -> [FAIL][37] ([i915#1385])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@kms_bw@linear-tiling-1-displays-3840x2160p.html

  * igt@kms_bw@linear-tiling-2-displays-3840x2160p:
    - shard-snb:          NOTRUN -> [FAIL][38] ([i915#4299])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-snb2/igt@kms_bw@linear-tiling-2-displays-3840x2160p.html

  * igt@kms_bw@linear-tiling-3-displays-2560x1440p:
    - shard-kbl:          NOTRUN -> [FAIL][39] ([i915#4299])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl7/igt@kms_bw@linear-tiling-3-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-4-displays-1920x1080p:
    - shard-skl:          NOTRUN -> [FAIL][40] ([i915#4299])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl9/igt@kms_bw@linear-tiling-4-displays-1920x1080p.html

  * igt@kms_bw@linear-tiling-4-displays-2560x1440p:
    - shard-apl:          NOTRUN -> [DMESG-FAIL][41] ([i915#4298]) +2 similar issues
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl3/igt@kms_bw@linear-tiling-4-displays-2560x1440p.html

  * igt@kms_bw@linear-tiling-6-displays-2560x1440p:
    - shard-tglb:         NOTRUN -> [SKIP][42] ([i915#4300])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb2/igt@kms_bw@linear-tiling-6-displays-2560x1440p.html

  * igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_mc_ccs:
    - shard-kbl:          NOTRUN -> [SKIP][43] ([fdo#109271] / [i915#3886]) +2 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl2/igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_mc_ccs.html
    - shard-tglb:         NOTRUN -> [SKIP][44] ([i915#3689] / [i915#3886])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#3886]) +11 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl8/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - shard-skl:          NOTRUN -> [SKIP][46] ([fdo#109271] / [i915#3886]) +5 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl6/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][47] ([i915#3689]) +3 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb2/igt@kms_ccs@pipe-d-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-apl:          NOTRUN -> [SKIP][48] ([fdo#109271]) +264 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl6/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium@dp-crc-multiple:
    - shard-skl:          NOTRUN -> [SKIP][49] ([fdo#109271] / [fdo#111827]) +7 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl6/igt@kms_chamelium@dp-crc-multiple.html

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

  * igt@kms_chamelium@vga-hpd-fast:
    - shard-iclb:         NOTRUN -> [SKIP][51] ([fdo#109284] / [fdo#111827])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb6/igt@kms_chamelium@vga-hpd-fast.html

  * igt@kms_chamelium@vga-hpd-without-ddc:
    - shard-kbl:          NOTRUN -> [SKIP][52] ([fdo#109271] / [fdo#111827]) +7 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl2/igt@kms_chamelium@vga-hpd-without-ddc.html

  * igt@kms_color_chamelium@pipe-d-ctm-0-5:
    - shard-snb:          NOTRUN -> [SKIP][53] ([fdo#109271] / [fdo#111827]) +13 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-snb2/igt@kms_color_chamelium@pipe-d-ctm-0-5.html

  * igt@kms_color_chamelium@pipe-d-ctm-red-to-blue:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([fdo#109284] / [fdo#111827]) +6 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@kms_color_chamelium@pipe-d-ctm-red-to-blue.html

  * igt@kms_content_protection@lic:
    - shard-apl:          NOTRUN -> [TIMEOUT][55] ([i915#1319]) +2 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl3/igt@kms_content_protection@lic.html

  * igt@kms_content_protection@mei_interface:
    - shard-tglb:         NOTRUN -> [SKIP][56] ([fdo#111828])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@kms_content_protection@mei_interface.html

  * igt@kms_content_protection@uevent:
    - shard-apl:          NOTRUN -> [FAIL][57] ([i915#2105])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl1/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen:
    - shard-tglb:         NOTRUN -> [SKIP][58] ([fdo#109279] / [i915#3359]) +3 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb2/igt@kms_cursor_crc@pipe-a-cursor-512x512-onscreen.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-tglb:         [PASS][59] -> [INCOMPLETE][60] ([i915#2828] / [i915#456])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-tglb2/igt@kms_cursor_crc@pipe-a-cursor-suspend.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb7/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x10-random:
    - shard-tglb:         NOTRUN -> [SKIP][61] ([i915#3359]) +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@kms_cursor_crc@pipe-b-cursor-32x10-random.html

  * igt@kms_cursor_crc@pipe-c-cursor-max-size-random:
    - shard-iclb:         NOTRUN -> [SKIP][62] ([fdo#109278]) +2 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb6/igt@kms_cursor_crc@pipe-c-cursor-max-size-random.html

  * igt@kms_cursor_crc@pipe-d-cursor-256x256-onscreen:
    - shard-kbl:          NOTRUN -> [SKIP][63] ([fdo#109271]) +71 similar issues
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl3/igt@kms_cursor_crc@pipe-d-cursor-256x256-onscreen.html

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

  * igt@kms_cursor_legacy@pipe-d-torture-bo:
    - shard-kbl:          NOTRUN -> [SKIP][65] ([fdo#109271] / [i915#533])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl7/igt@kms_cursor_legacy@pipe-d-torture-bo.html

  * igt@kms_cursor_legacy@pipe-d-torture-move:
    - shard-skl:          NOTRUN -> [SKIP][66] ([fdo#109271]) +95 similar issues
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl9/igt@kms_cursor_legacy@pipe-d-torture-move.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-kbl:          [PASS][67] -> [DMESG-WARN][68] ([i915#180]) +3 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs:
    - shard-kbl:          NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#2672])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs.html

  * igt@kms_frontbuffer_tracking@fbcpsr-suspend:
    - shard-tglb:         [PASS][70] -> [INCOMPLETE][71] ([i915#2411] / [i915#456]) +1 similar issue
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb7/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-render:
    - shard-iclb:         NOTRUN -> [SKIP][72] ([fdo#109280]) +1 similar issue
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-pwrite:
    - shard-tglb:         NOTRUN -> [SKIP][73] ([fdo#111825]) +20 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-spr-indfb-draw-pwrite.html

  * igt@kms_hdr@bpc-switch-dpms:
    - shard-skl:          [PASS][74] -> [FAIL][75] ([i915#1188])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-skl9/igt@kms_hdr@bpc-switch-dpms.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl2/igt@kms_hdr@bpc-switch-dpms.html

  * igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d:
    - shard-apl:          NOTRUN -> [SKIP][76] ([fdo#109271] / [i915#533]) +2 similar issues
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl1/igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d.html

  * igt@kms_pipe_crc_basic@hang-read-crc-pipe-d:
    - shard-skl:          NOTRUN -> [SKIP][77] ([fdo#109271] / [i915#533])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl6/igt@kms_pipe_crc_basic@hang-read-crc-pipe-d.html

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

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

  * igt@kms_plane_alpha_blend@pipe-b-coverage-7efc:
    - shard-skl:          [PASS][80] -> [FAIL][81] ([fdo#108145] / [i915#265]) +1 similar issue
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-skl1/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl8/igt@kms_plane_alpha_blend@pipe-b-coverage-7efc.html

  * igt@kms_plane_alpha_blend@pipe-c-alpha-7efc:
    - shard-skl:          NOTRUN -> [FAIL][82] ([fdo#108145] / [i915#265]) +1 similar issue
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl6/igt@kms_plane_alpha_blend@pipe-c-alpha-7efc.html

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

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-5:
    - shard-skl:          NOTRUN -> [SKIP][84] ([fdo#109271] / [i915#658]) +1 similar issue
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl9/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area-5.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3:
    - shard-apl:          NOTRUN -> [SKIP][85] ([fdo#109271] / [i915#658]) +6 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl1/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-3.html

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

  * igt@kms_psr2_su@page_flip:
    - shard-tglb:         NOTRUN -> [SKIP][87] ([i915#1911])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@kms_psr2_su@page_flip.html
    - shard-kbl:          NOTRUN -> [SKIP][88] ([fdo#109271] / [i915#658])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl2/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [PASS][89] -> [SKIP][90] ([fdo#109441]) +2 similar issues
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb8/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_setmode@basic:
    - shard-snb:          NOTRUN -> [FAIL][91] ([i915#31])
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-snb6/igt@kms_setmode@basic.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-apl:          NOTRUN -> [SKIP][92] ([fdo#109271] / [i915#2437])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-apl3/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@nouveau_crc@pipe-a-source-outp-complete:
    - shard-tglb:         NOTRUN -> [SKIP][93] ([i915#2530])
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@nouveau_crc@pipe-a-source-outp-complete.html

  * igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name:
    - shard-tglb:         NOTRUN -> [SKIP][94] ([fdo#109291]) +1 similar issue
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name.html

  * igt@prime_vgem@basic-userptr:
    - shard-tglb:         NOTRUN -> [SKIP][95] ([i915#3301])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb2/igt@prime_vgem@basic-userptr.html

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

  * igt@sysfs_clients@pidname:
    - shard-skl:          NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#2994])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl6/igt@sysfs_clients@pidname.html

  * igt@sysfs_clients@sema-50:
    - shard-kbl:          NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#2994]) +1 similar issue
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl2/igt@sysfs_clients@sema-50.html
    - shard-tglb:         NOTRUN -> [SKIP][99] ([i915#2994]) +1 similar issue
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@sysfs_clients@sema-50.html

  
#### Possible fixes ####

  * igt@gem_eio@unwedge-stress:
    - shard-iclb:         [TIMEOUT][100] ([i915#2369] / [i915#2481] / [i915#3070]) -> [PASS][101]
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-iclb6/igt@gem_eio@unwedge-stress.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb4/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [FAIL][102] ([i915#2842]) -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-tglb6/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb3/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
    - shard-kbl:          [FAIL][104] ([i915#2842]) -> [PASS][105]
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-kbl6/igt@gem_exec_fair@basic-pace@vcs1.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl6/igt@gem_exec_fair@basic-pace@vcs1.html

  * igt@kms_big_fb@yf-tiled-32bpp-rotate-0:
    - shard-glk:          [DMESG-WARN][106] ([i915#118]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-glk5/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-glk8/igt@kms_big_fb@yf-tiled-32bpp-rotate-0.html

  * igt@kms_color@pipe-b-ctm-negative:
    - shard-skl:          [DMESG-WARN][108] ([i915#1982]) -> [PASS][109]
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-skl4/igt@kms_color@pipe-b-ctm-negative.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl3/igt@kms_color@pipe-b-ctm-negative.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-tglb:         [INCOMPLETE][110] ([i915#2411] / [i915#456]) -> [PASS][111]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-tglb7/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic:
    - shard-skl:          [FAIL][112] ([i915#2346]) -> [PASS][113]
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-skl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl10/igt@kms_cursor_legacy@flip-vs-cursor-atomic.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2:
    - shard-glk:          [FAIL][114] ([i915#79]) -> [PASS][115]
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@ac-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-edp1:
    - shard-tglb:         [INCOMPLETE][116] ([i915#456]) -> [PASS][117]
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-tglb7/igt@kms_flip@flip-vs-suspend-interruptible@a-edp1.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-tglb2/igt@kms_flip@flip-vs-suspend-interruptible@a-edp1.html

  * igt@kms_flip@wf_vblank-ts-check-interruptible@a-hdmi-a1:
    - shard-glk:          [FAIL][118] ([i915#2122]) -> [PASS][119] +2 similar issues
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-glk6/igt@kms_flip@wf_vblank-ts-check-interruptible@a-hdmi-a1.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-glk7/igt@kms_flip@wf_vblank-ts-check-interruptible@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile:
    - shard-iclb:         [SKIP][120] ([i915#3701]) -> [PASS][121]
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [DMESG-WARN][122] ([i915#180]) -> [PASS][123] +2 similar issues
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-kbl4/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-kbl7/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_hdr@bpc-switch:
    - shard-skl:          [FAIL][124] ([i915#1188]) -> [PASS][125]
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-skl1/igt@kms_hdr@bpc-switch.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-skl7/igt@kms_hdr@bpc-switch.html

  * igt@kms_psr@psr2_cursor_blt:
    - shard-iclb:         [SKIP][126] ([fdo#109441]) -> [PASS][127] +2 similar issues
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-iclb7/igt@kms_psr@psr2_cursor_blt.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-snb:          [DMESG-WARN][128] ([i915#3305]) -> [PASS][129]
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-snb2/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-snb2/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  
#### Warnings ####

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-iclb:         [WARN][130] ([i915#1804] / [i915#2684]) -> [WARN][131] ([i915#2684])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-iclb7/igt@i915_pm_rc6_residency@rc6-idle.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb5/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@kms_psr2_sf@cursor-plane-update-sf:
    - shard-iclb:         [SKIP][132] ([i915#658]) -> [SKIP][133] ([i915#2920]) +2 similar issues
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-iclb7/igt@kms_psr2_sf@cursor-plane-update-sf.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb2/igt@kms_psr2_sf@cursor-plane-update-sf.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-2:
    - shard-iclb:         [SKIP][134] ([i915#2920]) -> [SKIP][135] ([i915#658])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10761/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-2.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_21378/shard-iclb7/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area-2.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][136], [FAIL][137], [FAIL][138], [FAIL][139], [FAIL][140], [FAIL][141], [FAIL][142], [FAIL][143], [FAIL][144], [FAIL][145]) ([fdo#109271] / [i915#1436] / [i915#180] / [i915#1814] / [i915#3002] / [i915#3363] / [i915#4312]) -> ([FAIL][146], [F

== Logs ==

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

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

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

* Re: [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers
  2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers Imre Deak
  2021-10-15 18:04   ` Juha-Pekka Heikkila
@ 2021-10-20  9:40   ` Ville Syrjälä
  2021-10-20 10:46     ` Imre Deak
  1 sibling, 1 reply; 35+ messages in thread
From: Ville Syrjälä @ 2021-10-20  9:40 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx, Juha-Pekka Heikkila, Jani Nikula

On Fri, Oct 15, 2021 at 01:09:11AM +0300, Imre Deak wrote:
> +static const struct intel_modifier_desc intel_modifiers[] = {
> +	{
> +		.modifier = DRM_FORMAT_MOD_LINEAR,
> +		.display_ver = DISPLAY_VER_ALL,
> +
> +		.is_linear = true,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_X_TILED,
> +		.display_ver = DISPLAY_VER_ALL,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED,
> +		.display_ver = { 9, 13 },
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Yf_TILED,
> +		.display_ver = { 9, 11 },
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED_CCS,
> +		.display_ver = { 9, 11 },
> +
> +		.ccs.type = INTEL_CCS_RC,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
> +		.display_ver = { 9, 11 },
> +
> +		.ccs.type = INTEL_CCS_RC,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> +		.display_ver = { 12, 13 },
> +
> +		.ccs.type = INTEL_CCS_RC,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> +		.display_ver = { 12, 13 },
> +
> +		.ccs.type = INTEL_CCS_RC_CC,
> +	},
> +	{
> +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
> +		.display_ver = { 12, 13 },
> +
> +		.ccs.type = INTEL_CCS_MC,
> +	},
> +};
> +
<snip>
> +u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
> +				  enum intel_plane_caps plane_caps)
> +{
> +	u64 *list, *p;
> +	int count = 1;		/* +1 for invalid modifier terminator */
> +	int i;
> +
> +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> +			count++;
> +	}
> +
> +	list = kmalloc_array(count, sizeof(*list), GFP_KERNEL);
> +	if (drm_WARN_ON(&i915->drm, !list))
> +		return NULL;
> +
> +	p = list;
> +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> +			*p++ = intel_modifiers[i].modifier;
> +	}
> +	*p++ = DRM_FORMAT_MOD_INVALID;

Oh, one thing I just realized is that this will now list the modifiers
in the opposite order to what we had before. Previously we had roughly
compressed->tiled->linear order. I'm not sure sure anything relies on
that, but seems best to try and preserve it. I guess one could think
of it as some kind of priority order for the modifiers, where the more
efficient ones (in some sense) come first.

-- 
Ville Syrjälä
Intel

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

* Re: [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers
  2021-10-20  9:40   ` Ville Syrjälä
@ 2021-10-20 10:46     ` Imre Deak
  2021-10-20 10:50       ` Ville Syrjälä
  0 siblings, 1 reply; 35+ messages in thread
From: Imre Deak @ 2021-10-20 10:46 UTC (permalink / raw)
  To: Ville Syrjälä
  Cc: intel-gfx, Juha-Pekka Heikkila, Jani Nikula, Daniel Vetter

On Wed, Oct 20, 2021 at 12:40:30PM +0300, Ville Syrjälä wrote:
> On Fri, Oct 15, 2021 at 01:09:11AM +0300, Imre Deak wrote:
> > +static const struct intel_modifier_desc intel_modifiers[] = {
> > +	{
> > +		.modifier = DRM_FORMAT_MOD_LINEAR,
> > +		.display_ver = DISPLAY_VER_ALL,
> > +
> > +		.is_linear = true,
> > +	},
> > +	{
> > +		.modifier = I915_FORMAT_MOD_X_TILED,
> > +		.display_ver = DISPLAY_VER_ALL,
> > +	},
> > +	{
> > +		.modifier = I915_FORMAT_MOD_Y_TILED,
> > +		.display_ver = { 9, 13 },
> > +	},
> > +	{
> > +		.modifier = I915_FORMAT_MOD_Yf_TILED,
> > +		.display_ver = { 9, 11 },
> > +	},
> > +	{
> > +		.modifier = I915_FORMAT_MOD_Y_TILED_CCS,
> > +		.display_ver = { 9, 11 },
> > +
> > +		.ccs.type = INTEL_CCS_RC,
> > +	},
> > +	{
> > +		.modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
> > +		.display_ver = { 9, 11 },
> > +
> > +		.ccs.type = INTEL_CCS_RC,
> > +	},
> > +	{
> > +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> > +		.display_ver = { 12, 13 },
> > +
> > +		.ccs.type = INTEL_CCS_RC,
> > +	},
> > +	{
> > +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> > +		.display_ver = { 12, 13 },
> > +
> > +		.ccs.type = INTEL_CCS_RC_CC,
> > +	},
> > +	{
> > +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
> > +		.display_ver = { 12, 13 },
> > +
> > +		.ccs.type = INTEL_CCS_MC,
> > +	},
> > +};
> > +
> <snip>
> > +u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
> > +				  enum intel_plane_caps plane_caps)
> > +{
> > +	u64 *list, *p;
> > +	int count = 1;		/* +1 for invalid modifier terminator */
> > +	int i;
> > +
> > +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> > +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> > +			count++;
> > +	}
> > +
> > +	list = kmalloc_array(count, sizeof(*list), GFP_KERNEL);
> > +	if (drm_WARN_ON(&i915->drm, !list))
> > +		return NULL;
> > +
> > +	p = list;
> > +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> > +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> > +			*p++ = intel_modifiers[i].modifier;
> > +	}
> > +	*p++ = DRM_FORMAT_MOD_INVALID;
> 
> Oh, one thing I just realized is that this will now list the modifiers
> in the opposite order to what we had before. Previously we had roughly
> compressed->tiled->linear order. I'm not sure sure anything relies on
> that, but seems best to try and preserve it. I guess one could think
> of it as some kind of priority order for the modifiers, where the more
> efficient ones (in some sense) come first.

Hm, right that was subtle, thanks for catching it. 

As I understood Mesa (for instance) has to know what kind of modifiers
it sees and do a priority reorder for other clients anyway (which don't
know more about the mods besides the ID?).

+Danvet.

But the order shouldn't definitely be changed if there is no reason for
it. Ensuring some priority order scheme already at the kernel i/f makes
also sense to me. So if it's ok, I'll fix it up to be in the

gen12_mc -> gen12_rc -> gen12_rc_cc -> gen9_yf_rc -> gen9_y_rc -> yf_tiled -> y_tiled -> x_tiled -> linear

order, which is the current one.

For that matter, shouldn't gen12_rc_cc be before gen12_rc?

> 
> -- 
> Ville Syrjälä
> Intel

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

* Re: [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers
  2021-10-20 10:46     ` Imre Deak
@ 2021-10-20 10:50       ` Ville Syrjälä
  0 siblings, 0 replies; 35+ messages in thread
From: Ville Syrjälä @ 2021-10-20 10:50 UTC (permalink / raw)
  To: Imre Deak; +Cc: intel-gfx, Juha-Pekka Heikkila, Jani Nikula, Daniel Vetter

On Wed, Oct 20, 2021 at 01:46:30PM +0300, Imre Deak wrote:
> On Wed, Oct 20, 2021 at 12:40:30PM +0300, Ville Syrjälä wrote:
> > On Fri, Oct 15, 2021 at 01:09:11AM +0300, Imre Deak wrote:
> > > +static const struct intel_modifier_desc intel_modifiers[] = {
> > > +	{
> > > +		.modifier = DRM_FORMAT_MOD_LINEAR,
> > > +		.display_ver = DISPLAY_VER_ALL,
> > > +
> > > +		.is_linear = true,
> > > +	},
> > > +	{
> > > +		.modifier = I915_FORMAT_MOD_X_TILED,
> > > +		.display_ver = DISPLAY_VER_ALL,
> > > +	},
> > > +	{
> > > +		.modifier = I915_FORMAT_MOD_Y_TILED,
> > > +		.display_ver = { 9, 13 },
> > > +	},
> > > +	{
> > > +		.modifier = I915_FORMAT_MOD_Yf_TILED,
> > > +		.display_ver = { 9, 11 },
> > > +	},
> > > +	{
> > > +		.modifier = I915_FORMAT_MOD_Y_TILED_CCS,
> > > +		.display_ver = { 9, 11 },
> > > +
> > > +		.ccs.type = INTEL_CCS_RC,
> > > +	},
> > > +	{
> > > +		.modifier = I915_FORMAT_MOD_Yf_TILED_CCS,
> > > +		.display_ver = { 9, 11 },
> > > +
> > > +		.ccs.type = INTEL_CCS_RC,
> > > +	},
> > > +	{
> > > +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> > > +		.display_ver = { 12, 13 },
> > > +
> > > +		.ccs.type = INTEL_CCS_RC,
> > > +	},
> > > +	{
> > > +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> > > +		.display_ver = { 12, 13 },
> > > +
> > > +		.ccs.type = INTEL_CCS_RC_CC,
> > > +	},
> > > +	{
> > > +		.modifier = I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
> > > +		.display_ver = { 12, 13 },
> > > +
> > > +		.ccs.type = INTEL_CCS_MC,
> > > +	},
> > > +};
> > > +
> > <snip>
> > > +u64 *intel_fb_plane_get_modifiers(struct drm_i915_private *i915,
> > > +				  enum intel_plane_caps plane_caps)
> > > +{
> > > +	u64 *list, *p;
> > > +	int count = 1;		/* +1 for invalid modifier terminator */
> > > +	int i;
> > > +
> > > +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> > > +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> > > +			count++;
> > > +	}
> > > +
> > > +	list = kmalloc_array(count, sizeof(*list), GFP_KERNEL);
> > > +	if (drm_WARN_ON(&i915->drm, !list))
> > > +		return NULL;
> > > +
> > > +	p = list;
> > > +	for (i = 0; i < ARRAY_SIZE(intel_modifiers); i++) {
> > > +		if (plane_has_modifier(i915, plane_caps, &intel_modifiers[i]))
> > > +			*p++ = intel_modifiers[i].modifier;
> > > +	}
> > > +	*p++ = DRM_FORMAT_MOD_INVALID;
> > 
> > Oh, one thing I just realized is that this will now list the modifiers
> > in the opposite order to what we had before. Previously we had roughly
> > compressed->tiled->linear order. I'm not sure sure anything relies on
> > that, but seems best to try and preserve it. I guess one could think
> > of it as some kind of priority order for the modifiers, where the more
> > efficient ones (in some sense) come first.
> 
> Hm, right that was subtle, thanks for catching it. 
> 
> As I understood Mesa (for instance) has to know what kind of modifiers
> it sees and do a priority reorder for other clients anyway (which don't
> know more about the mods besides the ID?).
> 
> +Danvet.
> 
> But the order shouldn't definitely be changed if there is no reason for
> it. Ensuring some priority order scheme already at the kernel i/f makes
> also sense to me. So if it's ok, I'll fix it up to be in the
> 
> gen12_mc -> gen12_rc -> gen12_rc_cc -> gen9_yf_rc -> gen9_y_rc -> yf_tiled -> y_tiled -> x_tiled -> linear
> 
> order, which is the current one.
> 
> For that matter, shouldn't gen12_rc_cc be before gen12_rc?

Probably. No idea why it's not currently.

-- 
Ville Syrjälä
Intel

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

end of thread, other threads:[~2021-10-20 10:50 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-14 22:09 [Intel-gfx] [PATCH v3 00/11] drm/i915: Simplify handling of modifiers Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 01/11] drm/i915: Add a table with a descriptor for all i915 modifiers Imre Deak
2021-10-15 18:04   ` Juha-Pekka Heikkila
2021-10-19  7:42     ` Jani Nikula
2021-10-19  7:46       ` Imre Deak
2021-10-20  9:40   ` Ville Syrjälä
2021-10-20 10:46     ` Imre Deak
2021-10-20 10:50       ` Ville Syrjälä
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 02/11] drm/i915: Move intel_get_format_info() to intel_fb.c Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 03/11] drm/i915: Add tiling attribute to the modifier descriptor Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 04/11] drm/i915: Simplify the modifier check for interlaced scanout support Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 05/11] drm/i915: Unexport is_semiplanar_uv_plane() Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 06/11] drm/i915: Move intel_format_info_is_yuv_semiplanar() to intel_fb.c Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 07/11] drm/i915: Add a platform independent way to get the RC CCS CC plane Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 08/11] drm/i915: Handle CCS CC planes separately from CCS AUX planes Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 09/11] drm/i915: Add a platform independent way to check for " Imre Deak
2021-10-19  8:02   ` Jani Nikula
2021-10-19  8:38     ` Imre Deak
2021-10-19  8:47       ` Imre Deak
2021-10-19 10:00         ` Imre Deak
2021-10-19  9:46   ` [Intel-gfx] [PATCH v4 " Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 10/11] drm/i915: Move is_ccs_modifier() to intel_fb.c Imre Deak
2021-10-14 22:09 ` [Intel-gfx] [PATCH v3 11/11] drm/i915: Add functions to check for RC CCS CC and MC CCS modifiers Imre Deak
2021-10-15  3:39 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Simplify handling of modifiers (rev10) Patchwork
2021-10-15  3:41 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-10-15  4:10 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-10-15 11:19 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
2021-10-18 12:10   ` Imre Deak
2021-10-18 15:42     ` Petri Latvala
2021-10-18 16:10       ` Imre Deak
2021-10-19  7:41         ` Petri Latvala
2021-10-19 14:42 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Simplify handling of modifiers (rev11) Patchwork
2021-10-19 14:44 ` [Intel-gfx] ✗ Fi.CI.SPARSE: " Patchwork
2021-10-19 15:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2021-10-19 19:07 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork

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