All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v3 0/4] enable 4-tiled ccs modifiers on dg2
@ 2022-05-12 11:01 Jeevan B
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 1/4] drm/fourcc: Import drm_fourcc header from 9035039e1ed69 Jeevan B
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Jeevan B @ 2022-05-12 11:01 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

LOCAL_I915_FORMAT_MOD_4_TILED_DG2_RC_CCS work for creating framebuffers, they
will pass crc checks. Copying from compressed to non-compressed for some
reason will copy compressed main surface instead of decompressing.

LOCAL_I915_FORMAT_MOD_4_TILED_DG2_MC_CCS produce good image if image is
framebuffer is all solid color. Areas with color edges sometimes cause random
compression block size content, these blocks show at same locations but yet
unknown where they're coming from. xrgb, xyuv and 16bpp yuv work equally.
Planar framebuffers cause fifo underrun hence no idea if content is good or no.

v2: pull headers from kernel
v3: modified commit message.

Jeevan B (1):
  drm/fourcc: Import drm_fourcc header from 9035039e1ed69

Juha-Pekka Heikkilä (3):
  lib/DG2: create flat ccs framebuffers with 4-tile
  tests/kms_ccs: Add dg2 tiled-4 ccs modifiers
  tests/kms_getfb: Add flat ccs modifier support

 include/drm-uapi/drm_fourcc.h |  36 ++++++++++
 lib/gen9_render.h             |  38 ++++++++---
 lib/igt_fb.c                  |  51 ++++++++++----
 lib/intel_aux_pgtable.c       |   6 +-
 lib/intel_batchbuffer.c       |   2 +-
 lib/intel_bufops.c            | 118 ++++++++++++++++++++++++++++----
 lib/intel_chipset.h           |   3 +-
 lib/rendercopy_gen9.c         | 125 +++++++++++++++++++++++-----------
 lib/veboxcopy_gen12.c         | 109 +++++++++++++++++++++--------
 tests/i915/kms_ccs.c          |  62 ++++++++++-------
 tests/kms_getfb.c             |  20 +++++-
 11 files changed, 438 insertions(+), 132 deletions(-)

-- 
2.36.0

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

* [igt-dev] [PATCH i-g-t v3 1/4] drm/fourcc: Import drm_fourcc header from 9035039e1ed69
  2022-05-12 11:01 [igt-dev] [PATCH i-g-t v3 0/4] enable 4-tiled ccs modifiers on dg2 Jeevan B
@ 2022-05-12 11:01 ` Jeevan B
  2022-05-13  8:30   ` Petri Latvala
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 2/4] lib/DG2: create flat ccs framebuffers with 4-tile Jeevan B
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Jeevan B @ 2022-05-12 11:01 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala

commit 9035039e1ed691cd893777a42e048003a2f349d6
Author: Mika Kahola <mika.kahola@intel.com>
Date:   Mon Apr 11 17:34:04 2022 +0300

    drm/fourcc: Introduce format modifier for DG2 clear color

Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 include/drm-uapi/drm_fourcc.h | 36 +++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/include/drm-uapi/drm_fourcc.h b/include/drm-uapi/drm_fourcc.h
index d8f7cad9..78bebdea 100644
--- a/include/drm-uapi/drm_fourcc.h
+++ b/include/drm-uapi/drm_fourcc.h
@@ -583,6 +583,42 @@ extern "C" {
  */
 #define I915_FORMAT_MOD_4_TILED         fourcc_mod_code(INTEL, 9)
 
+/*
+ * Intel color control surfaces (CCS) for DG2 render compression.
+ *
+ * The main surface is Tile 4 and at plane index 0. The CCS data is stored
+ * outside of the GEM object in a reserved memory area dedicated for the
+ * storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
+ * main surface pitch is required to be a multiple of four Tile 4 widths.
+ */
+#define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS fourcc_mod_code(INTEL, 10)
+
+/*
+ * Intel color control surfaces (CCS) for DG2 media compression.
+ *
+ * The main surface is Tile 4 and at plane index 0. For semi-planar formats
+ * like NV12, the Y and UV planes are Tile 4 and are located at plane indices
+ * 0 and 1, respectively. The CCS for all planes are stored outside of the
+ * GEM object in a reserved memory area dedicated for the storage of the
+ * CCS data for all RC/RC_CC/MC compressible GEM objects. The main surface
+ * pitch is required to be a multiple of four Tile 4 widths.
+ */
+#define I915_FORMAT_MOD_4_TILED_DG2_MC_CCS fourcc_mod_code(INTEL, 11)
+
+/*
+ * Intel Color Control Surface with Clear Color (CCS) for DG2 render compression.
+ *
+ * The main surface is Tile 4 and at plane index 0. The CCS data is stored
+ * outside of the GEM object in a reserved memory area dedicated for the
+ * storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
+ * main surface pitch is required to be a multiple of four Tile 4 widths. The
+ * clear color is stored at plane index 1 and the pitch should be ignored. The
+ * format of the 256 bits of clear color data matches the one used for the
+ * I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC modifier, see its description
+ * for details.
+ */
+#define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC fourcc_mod_code(INTEL, 12)
+
 /*
  * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
  *
-- 
2.36.0

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

* [igt-dev] [PATCH i-g-t v3 2/4] lib/DG2: create flat ccs framebuffers with 4-tile
  2022-05-12 11:01 [igt-dev] [PATCH i-g-t v3 0/4] enable 4-tiled ccs modifiers on dg2 Jeevan B
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 1/4] drm/fourcc: Import drm_fourcc header from 9035039e1ed69 Jeevan B
@ 2022-05-12 11:01 ` Jeevan B
  2022-05-13  8:51   ` Kahola, Mika
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 3/4] tests/kms_ccs: Add dg2 tiled-4 ccs modifiers Jeevan B
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Jeevan B @ 2022-05-12 11:01 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala, Juha-Pekka Heikkilä

From: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>

Add support for DG2 flat ccs framebuffers with tile-4.

Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 lib/gen9_render.h       |  38 +++++++++---
 lib/igt_fb.c            |  51 ++++++++++++----
 lib/intel_aux_pgtable.c |   6 +-
 lib/intel_batchbuffer.c |   2 +-
 lib/intel_bufops.c      | 118 ++++++++++++++++++++++++++++++++-----
 lib/intel_chipset.h     |   3 +-
 lib/rendercopy_gen9.c   | 125 +++++++++++++++++++++++++++-------------
 lib/veboxcopy_gen12.c   | 109 ++++++++++++++++++++++++++---------
 8 files changed, 347 insertions(+), 105 deletions(-)

diff --git a/lib/gen9_render.h b/lib/gen9_render.h
index 06d9718c..af3a2b3a 100644
--- a/lib/gen9_render.h
+++ b/lib/gen9_render.h
@@ -59,9 +59,15 @@ struct gen9_surface_state {
 		uint32_t depth:11;
 	} ss3;
 
-	struct {
-		uint32_t minimum_array_element:27;
-		uint32_t pad0:5;
+	union {
+		struct {
+			uint32_t minimum_array_element:27;
+			uint32_t pad0:5;
+		} skl;
+		struct {
+			uint32_t decompress_in_l3:1;
+			uint32_t pad0:31;
+		} dg2;
 	} ss4;
 
 	struct {
@@ -116,6 +122,15 @@ struct gen9_surface_state {
 			uint32_t media_compression:1;
 			uint32_t pad2:1;
 		} tgl;
+
+		struct {
+			uint32_t pad0:14;
+			uint32_t disable_support_for_multi_gpu_partial_writes:1;
+			uint32_t disable_support_for_multi_gpu_atomics:1;
+			uint32_t pad1:14;
+			uint32_t memory_compression_enable:1;
+			uint32_t memory_compression_type:1;
+		} dg2;
 	} ss7;
 
 	struct {
@@ -138,15 +153,22 @@ struct gen9_surface_state {
 		uint32_t aux_base_addr_hi;
 	} ss11;
 
-	/* register can be used for either
-	 * clear value or depth clear value
-	 */
 	struct {
-		uint32_t clear_address;
+		/*
+		 * compression_format is used only dg2 onward.
+		 * prior to dg2 full ss12 is used for the address
+		 * but due to alignments bits 0..6 will be zero
+		 * and asserted in code to be so
+		 */
+		uint32_t compression_format:5;
+		uint32_t pad0:1;
+		uint32_t clear_address:26;
 	} ss12;
 
 	struct {
-		uint32_t clear_address_hi;
+		uint32_t clear_address_hi:16;
+		uint32_t pad0:16;
+
 	} ss13;
 
 	struct {
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index eafbe7fd..f3cb711e 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -457,6 +457,9 @@ void igt_get_fb_tile_size(int fd, uint64_t modifier, int fb_bpp,
 	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
 	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
 	case I915_FORMAT_MOD_4_TILED:
+	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS:
+	case I915_FORMAT_MOD_4_TILED_DG2_MC_CCS:
+	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC:
 		igt_require_intel(fd);
 		if (intel_display_ver(intel_get_drm_devid(fd)) == 2) {
 			*width_ret = 128;
@@ -565,14 +568,17 @@ void igt_get_fb_tile_size(int fd, uint64_t modifier, int fb_bpp,
 
 static bool is_gen12_mc_ccs_modifier(uint64_t modifier)
 {
-	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS;
+	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS ||
+		modifier == I915_FORMAT_MOD_4_TILED_DG2_MC_CCS;
 }
 
 static bool is_gen12_ccs_modifier(uint64_t modifier)
 {
 	return is_gen12_mc_ccs_modifier(modifier) ||
 		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_RC_CCS_CC ||
+		modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS ||
+		modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC;
 }
 
 static bool is_ccs_modifier(uint64_t modifier)
@@ -584,7 +590,7 @@ static bool is_ccs_modifier(uint64_t modifier)
 
 static bool is_ccs_plane(const struct igt_fb *fb, int plane)
 {
-	if (!is_ccs_modifier(fb->modifier))
+	if (!is_ccs_modifier(fb->modifier) || HAS_FLATCCS(intel_get_drm_devid(fb->fd)))
 		return false;
 
 	return plane >= fb->num_planes / 2;
@@ -602,8 +608,15 @@ static bool is_gen12_ccs_plane(const struct igt_fb *fb, int plane)
 
 static bool is_gen12_ccs_cc_plane(const struct igt_fb *fb, int plane)
 {
-	return fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC &&
-	       plane == 2;
+	if (fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC &&
+	    plane == 2)
+		return true;
+
+	if (fb->modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC &&
+	    plane == 1)
+		return true;
+
+	return false;
 }
 
 bool igt_fb_is_gen12_ccs_cc_plane(const struct igt_fb *fb, int plane)
@@ -686,10 +699,11 @@ static int fb_num_planes(const struct igt_fb *fb)
 {
 	int num_planes = lookup_drm_format(fb->drm_format)->num_planes;
 
-	if (is_ccs_modifier(fb->modifier))
+	if (is_ccs_modifier(fb->modifier) && !HAS_FLATCCS(intel_get_drm_devid(fb->fd)))
 		num_planes *= 2;
 
-	if (fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC)
+	if (fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC ||
+	    fb->modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC)
 		num_planes++;
 
 	return num_planes;
@@ -763,7 +777,7 @@ static uint32_t calc_plane_stride(struct igt_fb *fb, int plane)
 		return ALIGN(min_stride, tile_width);
 	} else if (is_gen12_ccs_cc_plane(fb, plane)) {
 		/* clear color always fixed to 64 bytes */
-		return 64;
+		return HAS_FLATCCS(intel_get_drm_devid(fb->fd)) ? 512 : 64;
 	} else if (is_gen12_ccs_plane(fb, plane)) {
 		/*
 		 * The CCS surface stride is
@@ -966,6 +980,9 @@ uint64_t igt_fb_mod_to_tiling(uint64_t modifier)
 	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
 		return I915_TILING_Y;
 	case I915_FORMAT_MOD_4_TILED:
+	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS:
+	case I915_FORMAT_MOD_4_TILED_DG2_MC_CCS:
+	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC:
 		return I915_TILING_4;
 	case I915_FORMAT_MOD_Yf_TILED:
 	case I915_FORMAT_MOD_Yf_TILED_CCS:
@@ -2504,9 +2521,10 @@ igt_fb_create_intel_buf(int fd, struct buf_ops *bops,
 	if (is_ccs_modifier(fb->modifier)) {
 		igt_assert_eq(fb->strides[0] & 127, 0);
 
-		if (is_gen12_ccs_modifier(fb->modifier))
-			igt_assert_eq(fb->strides[1] & 63, 0);
-		else
+		if (is_gen12_ccs_modifier(fb->modifier)) {
+			if (!HAS_FLATCCS(intel_get_drm_devid(fb->fd)))
+				igt_assert_eq(fb->strides[1] & 63, 0);
+		} else
 			igt_assert_eq(fb->strides[1] & 127, 0);
 
 		if (is_gen12_mc_ccs_modifier(fb->modifier))
@@ -2539,7 +2557,7 @@ igt_fb_create_intel_buf(int fd, struct buf_ops *bops,
 		buf->yuv_semiplanar_bpp = yuv_semiplanar_bpp(fb->drm_format);
 
 	if (is_ccs_modifier(fb->modifier)) {
-		num_surfaces = fb->num_planes / 2;
+		num_surfaces = fb->num_planes / (HAS_FLATCCS(intel_get_drm_devid(fb->fd)) ? 1 : 2);
 		for (i = 0; i < num_surfaces; i++)
 			init_buf_ccs(buf, i,
 				     fb->offsets[num_surfaces + i],
@@ -2560,6 +2578,9 @@ igt_fb_create_intel_buf(int fd, struct buf_ops *bops,
 	if (fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC)
 		buf->cc.offset = fb->offsets[2];
 
+	if (fb->modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC)
+		buf->cc.offset = fb->offsets[1];
+
 	return buf;
 }
 
@@ -4570,6 +4591,12 @@ const char *igt_fb_modifier_name(uint64_t modifier)
 		return "Y-MC_CCS";
 	case I915_FORMAT_MOD_4_TILED:
 		return "4";
+	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS:
+		return "4-RC_CCS";
+	case I915_FORMAT_MOD_4_TILED_DG2_MC_CCS:
+		return "4-MC_CCS";
+	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC:
+		return "4-RC_CCS-CC";
 	default:
 		return "?";
 	}
diff --git a/lib/intel_aux_pgtable.c b/lib/intel_aux_pgtable.c
index f5796fdf..e31a6c34 100644
--- a/lib/intel_aux_pgtable.c
+++ b/lib/intel_aux_pgtable.c
@@ -263,7 +263,8 @@ static uint64_t pgt_get_l1_flags(const struct intel_buf *buf, int surface_idx)
 	} entry = {
 		.e = {
 			.valid = 1,
-			.tile_mode = buf->tiling == I915_TILING_Y ? 1 : 0,
+			.tile_mode = buf->tiling == I915_TILING_Y ? 1 :
+				(buf->tiling == I915_TILING_4 ? 2 : 0),
 		}
 	};
 
@@ -274,7 +275,8 @@ static uint64_t pgt_get_l1_flags(const struct intel_buf *buf, int surface_idx)
 	 */
 	igt_assert(buf->tiling == I915_TILING_Y ||
 		   buf->tiling == I915_TILING_Yf ||
-		   buf->tiling == I915_TILING_Ys);
+		   buf->tiling == I915_TILING_Ys ||
+		   buf->tiling == I915_TILING_4);
 
 	entry.e.ycr = surface_idx > 0;
 
diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c
index ebf3c598..81d2e140 100644
--- a/lib/intel_batchbuffer.c
+++ b/lib/intel_batchbuffer.c
@@ -1146,7 +1146,7 @@ igt_render_copyfunc_t igt_get_render_copyfunc(int devid)
 		copy = gen9_render_copyfunc;
 	else if (IS_GEN11(devid))
 		copy = gen11_render_copyfunc;
-	else if (IS_DG2(devid))
+	else if (HAS_4TILE(devid))
 		copy = gen12p71_render_copyfunc;
 	else if (IS_GEN12(devid))
 		copy = gen12_render_copyfunc;
diff --git a/lib/intel_bufops.c b/lib/intel_bufops.c
index f13063fa..05c0b0d4 100644
--- a/lib/intel_bufops.c
+++ b/lib/intel_bufops.c
@@ -89,6 +89,7 @@
 #define TILE_Y      TILE_DEF(I915_TILING_Y)
 #define TILE_Yf     TILE_DEF(I915_TILING_Yf)
 #define TILE_Ys     TILE_DEF(I915_TILING_Ys)
+#define TILE_4      TILE_DEF(I915_TILING_4)
 
 #define CCS_OFFSET(buf) (buf->ccs[0].offset)
 #define CCS_SIZE(gen, buf) \
@@ -105,16 +106,19 @@ struct buf_ops {
 	uint32_t supported_hw_tiles;
 	uint32_t swizzle_x;
 	uint32_t swizzle_y;
+	uint32_t swizzle_tile4;
 	bo_copy linear_to;
 	bo_copy linear_to_x;
 	bo_copy linear_to_y;
 	bo_copy linear_to_yf;
 	bo_copy linear_to_ys;
+	bo_copy linear_to_tile4;
 	bo_copy to_linear;
 	bo_copy x_to_linear;
 	bo_copy y_to_linear;
 	bo_copy yf_to_linear;
 	bo_copy ys_to_linear;
+	bo_copy tile4_to_linear;
 };
 
 static const char *tiling_str(uint32_t tiling)
@@ -125,6 +129,7 @@ static const char *tiling_str(uint32_t tiling)
 	case I915_TILING_Y:    return "Y";
 	case I915_TILING_Yf:   return "Yf";
 	case I915_TILING_Ys:   return "Ys";
+	case I915_TILING_4:    return "4";
 	default:               return "UNKNOWN";
 	}
 }
@@ -222,7 +227,8 @@ static void set_hw_tiled(struct buf_ops *bops, struct intel_buf *buf)
 {
 	uint32_t ret_tiling, ret_swizzle;
 
-	if (buf->tiling != I915_TILING_X && buf->tiling != I915_TILING_Y)
+	if (buf->tiling != I915_TILING_X && buf->tiling != I915_TILING_Y &&
+	    buf->tiling != I915_TILING_4)
 		return;
 
 	if (!buf_ops_has_hw_fence(bops, buf->tiling)) {
@@ -320,6 +326,50 @@ static void *y_ptr(void *ptr,
 	return ptr + pos;
 }
 
+/*
+ * (x,y) to memory location in tiled-4 surface
+ *
+ * coverted those divisions and multiplications to shifts and masks
+ * in hope this wouldn't be so slow.
+ */
+static void *tile4_ptr(void *ptr,
+			unsigned int x, unsigned int y,
+			unsigned int stride, unsigned int cpp)
+{
+	const int tile_width = 128;
+	const int tile_height = 32;
+	const int subtile_size = 64;
+	const int owords = 16;
+	int base, _x, _y, subtile, tile_x, tile_y;
+	int x_loc = x << __builtin_ctz(cpp);
+	int pos;
+
+	/* Pixel in tile via masks */
+	tile_x = x_loc & (tile_width - 1);
+	tile_y = y & (tile_height - 1);
+
+	/* subtile in 4k tile */
+	_x = tile_x >> __builtin_ctz(owords);
+	_y = tile_y >> 2;
+
+	/* tile-4 swizzle */
+	subtile = ((_y >> 1) << 4) + ((_y & 1) << 2) + (_x & 3) + ((_x & 4) << 1);
+
+	/* memory location */
+	base = (y >> __builtin_ctz(tile_height)) *
+		(stride << __builtin_ctz(tile_height)) +
+		(((x_loc >> __builtin_ctz(tile_width)) << __builtin_ctz(4096)));
+
+	pos = base + (subtile << __builtin_ctz(subtile_size)) +
+		((tile_y & 3) << __builtin_ctz(owords)) +
+		(tile_x & (owords - 1));
+	igt_assert((pos & (cpp - 1)) == 0);
+	pos = pos >> __builtin_ctz(cpp);
+
+	return ptr + pos;
+}
+
+
 static void *yf_ptr(void *ptr,
 		    unsigned int x, unsigned int y,
 		    unsigned int stride, unsigned int cpp)
@@ -365,6 +415,8 @@ static tile_fn __get_tile_fn_ptr(int tiling)
 	case I915_TILING_Yf:
 		fn = yf_ptr;
 		break;
+	case I915_TILING_4:
+		fn = tile4_ptr;
 	case I915_TILING_Ys:
 		/* To be implemented */
 		break;
@@ -391,7 +443,7 @@ static void __copy_ccs(struct buf_ops *bops, struct intel_buf *buf,
 	void *map;
 	int gen;
 
-	if (!buf->compression)
+	if (!buf->compression || HAS_FLATCCS(intel_get_drm_devid(bops->fd)))
 		return;
 
 	gen = bops->intel_gen;
@@ -551,6 +603,13 @@ static void copy_linear_to_ys(struct buf_ops *bops, struct intel_buf *buf,
 	__copy_linear_to(bops->fd, buf, linear, I915_TILING_Ys, 0);
 }
 
+static void copy_linear_to_tile4(struct buf_ops *bops, struct intel_buf *buf,
+				 uint32_t *linear)
+{
+	DEBUGFN();
+	__copy_linear_to(bops->fd, buf, linear, I915_TILING_4, bops->swizzle_tile4);
+}
+
 static void __copy_to_linear(int fd, struct intel_buf *buf,
 			     uint32_t *linear, int tiling, uint32_t swizzle)
 {
@@ -601,6 +660,13 @@ static void copy_ys_to_linear(struct buf_ops *bops, struct intel_buf *buf,
 	__copy_to_linear(bops->fd, buf, linear, I915_TILING_Ys, 0);
 }
 
+static void copy_tile4_to_linear(struct buf_ops *bops, struct intel_buf *buf,
+				 uint32_t *linear)
+{
+	DEBUGFN();
+	__copy_to_linear(bops->fd, buf, linear, I915_TILING_4, 0);
+}
+
 static void copy_linear_to_gtt(struct buf_ops *bops, struct intel_buf *buf,
 			       uint32_t *linear)
 {
@@ -752,11 +818,10 @@ static void __intel_buf_init(struct buf_ops *bops,
 	IGT_INIT_LIST_HEAD(&buf->link);
 
 	if (compression) {
-		int aux_width, aux_height;
-
 		igt_require(bops->intel_gen >= 9);
 		igt_assert(req_tiling == I915_TILING_Y ||
-			   req_tiling == I915_TILING_Yf);
+			   req_tiling == I915_TILING_Yf ||
+			   req_tiling == I915_TILING_4);
 		/*
 		 * On GEN12+ we align the main surface to 4 * 4 main surface
 		 * tiles, which is 64kB. These 16 tiles are mapped by 4 AUX
@@ -778,13 +843,18 @@ static void __intel_buf_init(struct buf_ops *bops,
 		buf->bpp = bpp;
 		buf->compression = compression;
 
-		aux_width = intel_buf_ccs_width(bops->intel_gen, buf);
-		aux_height = intel_buf_ccs_height(bops->intel_gen, buf);
+		if (!HAS_FLATCCS(intel_get_drm_devid(bops->fd))) {
+			int aux_width, aux_height;
 
-		buf->ccs[0].offset = buf->surface[0].stride * ALIGN(height, 32);
-		buf->ccs[0].stride = aux_width;
+			aux_width = intel_buf_ccs_width(bops->intel_gen, buf);
+			aux_height = intel_buf_ccs_height(bops->intel_gen, buf);
 
-		size = buf->ccs[0].offset + aux_width * aux_height;
+			buf->ccs[0].offset = buf->surface[0].stride * ALIGN(height, 32);
+			buf->ccs[0].stride = aux_width;
+			size = buf->ccs[0].offset + aux_width * aux_height;
+		} else {
+			size = buf->ccs[0].offset;
+		}
 	} else {
 		if (tiling) {
 			devid =  intel_get_drm_devid(bops->fd);
@@ -1176,17 +1246,19 @@ void intel_buf_write_aux_to_png(struct intel_buf *buf, const char *filename)
 #define DEFAULT_BUFOPS(__gen_start, __gen_end) \
 	.gen_start          = __gen_start, \
 	.gen_end            = __gen_end, \
-	.supported_hw_tiles = TILE_X | TILE_Y, \
+	.supported_hw_tiles = TILE_X | TILE_Y | TILE_4, \
 	.linear_to          = copy_linear_to_wc, \
 	.linear_to_x        = copy_linear_to_gtt, \
 	.linear_to_y        = copy_linear_to_gtt, \
 	.linear_to_yf       = copy_linear_to_yf, \
 	.linear_to_ys       = copy_linear_to_ys, \
+	.linear_to_tile4    = copy_linear_to_tile4, \
 	.to_linear          = copy_wc_to_linear, \
 	.x_to_linear        = copy_gtt_to_linear, \
 	.y_to_linear        = copy_gtt_to_linear, \
 	.yf_to_linear       = copy_yf_to_linear, \
-	.ys_to_linear       = copy_ys_to_linear
+	.ys_to_linear       = copy_ys_to_linear, \
+	.tile4_to_linear    = copy_tile4_to_linear
 
 struct buf_ops buf_ops_arr[] = {
 	{
@@ -1201,7 +1273,7 @@ struct buf_ops buf_ops_arr[] = {
 
 	{
 		DEFAULT_BUFOPS(12, 12),
-		.supported_tiles   = TILE_NONE | TILE_X | TILE_Y | TILE_Yf | TILE_Ys,
+		.supported_tiles   = TILE_NONE | TILE_X | TILE_Y | TILE_Yf | TILE_Ys | TILE_4,
 	},
 };
 
@@ -1230,6 +1302,8 @@ static bool probe_hw_tiling(struct buf_ops *bops, uint32_t tiling,
 			bops->swizzle_x = buf_swizzle;
 		else if (tiling == I915_TILING_Y)
 			bops->swizzle_y = buf_swizzle;
+		else if (tiling == I915_TILING_4)
+			bops->swizzle_tile4 = buf_swizzle;
 
 		*swizzling_supported = buf_swizzle == phys_swizzle;
 	}
@@ -1390,6 +1464,24 @@ static struct buf_ops *__buf_ops_create(int fd, bool check_idempotency)
 		}
 	}
 
+	if (is_hw_tiling_supported(bops, I915_TILING_4)) {
+		bool swizzling_supported;
+		bool supported = probe_hw_tiling(bops, I915_TILING_4,
+						 &swizzling_supported);
+
+		if (!swizzling_supported) {
+			igt_debug("Swizzling for 4 is not supported\n");
+			bops->supported_tiles &= ~TILE_4;
+		}
+
+		igt_debug("4 fence support: %s\n", bool_str(supported));
+		if (!supported) {
+			bops->supported_hw_tiles &= ~TILE_4;
+			bops->linear_to_tile4 = copy_linear_to_tile4;
+			bops->tile4_to_linear = copy_tile4_to_linear;
+		}
+	}
+
 	/* Disable other tiling format functions if not supported */
 	if (!is_tiling_supported(bops, I915_TILING_Yf)) {
 		igt_debug("Yf format not supported\n");
diff --git a/lib/intel_chipset.h b/lib/intel_chipset.h
index db75a829..4d9f4623 100644
--- a/lib/intel_chipset.h
+++ b/lib/intel_chipset.h
@@ -219,6 +219,7 @@ void intel_check_pch(void);
 
 #define HAS_4TILE(devid)	(intel_get_device_info(devid)->has_4tile)
 
-#define HAS_FLATCCS(devid)	(intel_get_device_info(devid)->has_flatccs)
+/* use HAS_4TILE here as all devices with 4-tile have flat ccs. */
+#define HAS_FLATCCS(devid)	HAS_4TILE(devid)
 
 #endif /* _INTEL_CHIPSET_H */
diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c
index 6c45efb4..ae0f775a 100644
--- a/lib/rendercopy_gen9.c
+++ b/lib/rendercopy_gen9.c
@@ -165,7 +165,8 @@ intel_get_uc_mocs(int fd) {
 
 /* Mostly copy+paste from gen6, except height, width, pitch moved */
 static uint32_t
-gen8_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int is_dst) {
+gen8_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int is_dst,
+	      bool fast_clear) {
 	struct gen9_surface_state *ss;
 	uint32_t write_domain, read_domain;
 	uint64_t address;
@@ -192,15 +193,26 @@ gen8_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int is_dst) {
 		case 64: ss->ss0.surface_format = SURFACEFORMAT_R16G16B16A16_FLOAT; break;
 		default: igt_assert(0);
 	}
-	ss->ss0.render_cache_read_write = 1;
 	ss->ss0.vertical_alignment = 1; /* align 4 */
-	ss->ss0.horizontal_alignment = 1; /* align 4 */
+	ss->ss0.horizontal_alignment = 1; /* align 4 or HALIGN_32 on display ver >= 13*/
+
+	if (HAS_4TILE(ibb->devid)) {
+		/*
+		 * mocs table version 1 index 3 groub wb use l3
+		 */
+		ss->ss1.memory_object_control = 3 << 1;
+		ss->ss5.mip_tail_start_lod = 0;
+	} else {
+		ss->ss0.render_cache_read_write = 1;
+		ss->ss1.memory_object_control = intel_get_uc_mocs(i915);
+		ss->ss5.mip_tail_start_lod = 1; /* needed with trmode */
+	}
+
 	if (buf->tiling == I915_TILING_X)
 		ss->ss0.tiled_mode = 2;
 	else if (buf->tiling != I915_TILING_NONE)
 		ss->ss0.tiled_mode = 3;
 
-	ss->ss1.memory_object_control = intel_get_uc_mocs(i915);
 	if (intel_buf_pxp(buf))
 		ss->ss1.memory_object_control |= 1;
 
@@ -208,7 +220,6 @@ gen8_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int is_dst) {
 		ss->ss5.trmode = 1;
 	else if (buf->tiling == I915_TILING_Ys)
 		ss->ss5.trmode = 2;
-	ss->ss5.mip_tail_start_lod = 1; /* needed with trmode */
 
 	address = intel_bb_offset_reloc(ibb, buf->handle,
 					read_domain, write_domain,
@@ -229,20 +240,23 @@ gen8_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int is_dst) {
 	if (buf->compression == I915_COMPRESSION_MEDIA)
 		ss->ss7.tgl.media_compression = 1;
 	else if (buf->compression == I915_COMPRESSION_RENDER) {
-		igt_assert(buf->ccs[0].stride);
-
 		ss->ss6.aux_mode = 0x5; /* AUX_CCS_E */
-		ss->ss6.aux_pitch = (buf->ccs[0].stride / 128) - 1;
 
-		address = intel_bb_offset_reloc_with_delta(ibb, buf->handle,
-							   read_domain, write_domain,
-							   (buf->cc.offset ? (1 << 10) : 0) | buf->ccs[0].offset,
-							   intel_bb_offset(ibb) + 4 * 10,
-							   buf->addr.offset);
-		ss->ss10.aux_base_addr = (address + buf->ccs[0].offset) >> 12;
-		ss->ss11.aux_base_addr_hi = (address + buf->ccs[0].offset) >> 32;
+		if (buf->ccs[0].stride) {
+
+			ss->ss6.aux_pitch = (buf->ccs[0].stride / 128) - 1;
+
+			address = intel_bb_offset_reloc_with_delta(ibb, buf->handle,
+								   read_domain, write_domain,
+								   (buf->cc.offset ? (1 << 10) : 0)
+								   | buf->ccs[0].offset,
+								   intel_bb_offset(ibb) + 4 * 10,
+								   buf->addr.offset);
+			ss->ss10.aux_base_addr = (address + buf->ccs[0].offset) >> 12;
+			ss->ss11.aux_base_addr_hi = (address + buf->ccs[0].offset) >> 32;
+		}
 
-		if (buf->cc.offset) {
+		if (fast_clear || (buf->cc.offset && !HAS_FLATCCS(ibb->devid))) {
 			igt_assert(buf->compression == I915_COMPRESSION_RENDER);
 
 			ss->ss10.clearvalue_addr_enable = 1;
@@ -252,8 +266,30 @@ gen8_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int is_dst) {
 								   buf->cc.offset,
 								   intel_bb_offset(ibb) + 4 * 12,
 								   buf->addr.offset);
-			ss->ss12.clear_address = address + buf->cc.offset;
+
+			/*
+			 * If this assert doesn't hold below clear address will be
+			 * written wrong.
+			 */
+
+			igt_assert(__builtin_ctzl(address + buf->cc.offset) >= 6 &&
+				   (__builtin_clzl(address + buf->cc.offset) >= 16));
+
+			ss->ss12.clear_address = (address + buf->cc.offset) >> 6;
 			ss->ss13.clear_address_hi = (address + buf->cc.offset) >> 32;
+		} else if (HAS_FLATCCS(ibb->devid)) {
+			ss->ss7.dg2.memory_compression_type = 0;
+			ss->ss7.dg2.memory_compression_enable = 0;
+			ss->ss7.dg2.disable_support_for_multi_gpu_partial_writes = 1;
+			ss->ss7.dg2.disable_support_for_multi_gpu_atomics = 1;
+
+			/*
+			 * For now here is coming only 32bpp rgb format
+			 * which is marked below as B8G8R8X8_UNORM = '8'
+			 * If here ever arrive other formats below need to be
+			 * fixed to take that into account.
+			 */
+			ss->ss12.compression_format = 8;
 		}
 	}
 
@@ -266,14 +302,15 @@ gen8_bind_surfaces(struct intel_bb *ibb,
 		   const struct intel_buf *dst)
 {
 	uint32_t *binding_table, binding_table_offset;
+	bool fast_clear = !src;
 
 	binding_table = intel_bb_ptr_align(ibb, 32);
 	binding_table_offset = intel_bb_ptr_add_return_prev_offset(ibb, 32);
 
-	binding_table[0] = gen8_bind_buf(ibb, dst, 1);
+	binding_table[0] = gen8_bind_buf(ibb, dst, 1, fast_clear);
 
 	if (src != NULL)
-		binding_table[1] = gen8_bind_buf(ibb, src, 0);
+		binding_table[1] = gen8_bind_buf(ibb, src, 0, false);
 
 	return binding_table_offset;
 }
@@ -856,12 +893,14 @@ gen8_emit_ps(struct intel_bb *ibb, uint32_t kernel, bool fast_clear) {
 static void
 gen9_emit_depth(struct intel_bb *ibb)
 {
+	bool need_10dw = HAS_4TILE(ibb->devid);
+
 	intel_bb_out(ibb, GEN8_3DSTATE_WM_DEPTH_STENCIL | (4 - 2));
 	intel_bb_out(ibb, 0);
 	intel_bb_out(ibb, 0);
 	intel_bb_out(ibb, 0);
 
-	intel_bb_out(ibb, GEN7_3DSTATE_DEPTH_BUFFER | (8-2));
+	intel_bb_out(ibb, GEN7_3DSTATE_DEPTH_BUFFER | (need_10dw ? (10-2) : (8-2)));
 	intel_bb_out(ibb, 0);
 	intel_bb_out(ibb, 0);
 	intel_bb_out(ibb, 0);
@@ -869,6 +908,10 @@ gen9_emit_depth(struct intel_bb *ibb)
 	intel_bb_out(ibb, 0);
 	intel_bb_out(ibb, 0);
 	intel_bb_out(ibb, 0);
+	if (need_10dw) {
+		intel_bb_out(ibb, 0);
+		intel_bb_out(ibb, 0);
+	}
 
 	intel_bb_out(ibb, GEN8_3DSTATE_HIER_DEPTH_BUFFER | (5-2));
 	intel_bb_out(ibb, 0);
@@ -1080,7 +1123,7 @@ void _gen9_render_op(struct intel_bb *ibb,
 
 	gen9_emit_state_base_address(ibb);
 
-	if (IS_DG2(ibb->devid) || intel_gen(ibb->devid) > 12) {
+	if (HAS_4TILE(ibb->devid) || intel_gen(ibb->devid) > 12) {
 		intel_bb_out(ibb, GEN4_3DSTATE_BINDING_TABLE_POOL_ALLOC | 2);
 		intel_bb_emit_reloc(ibb, ibb->handle,
 				    I915_GEM_DOMAIN_RENDER | I915_GEM_DOMAIN_INSTRUCTION, 0,
@@ -1197,18 +1240,12 @@ void gen12p71_render_copyfunc(struct intel_bb *ibb,
 			      struct intel_buf *dst,
 			      unsigned int dst_x, unsigned int dst_y)
 {
-	struct aux_pgtable_info pgtable_info = { };
-
-	gen12_aux_pgtable_init(&pgtable_info, ibb, src, dst);
-
 	_gen9_render_op(ibb, src, src_x, src_y,
 			width, height, dst, dst_x, dst_y,
-			pgtable_info.pgtable_buf,
+			NULL,
 			NULL,
 			gen12p71_render_copy,
 			sizeof(gen12p71_render_copy));
-
-	gen12_aux_pgtable_cleanup(ibb, &pgtable_info);
 }
 
 void gen12_render_clearfunc(struct intel_bb *ibb,
@@ -1217,16 +1254,24 @@ void gen12_render_clearfunc(struct intel_bb *ibb,
 			    unsigned int width, unsigned int height,
 			    const float clear_color[4])
 {
-	struct aux_pgtable_info pgtable_info = { };
-
-	gen12_aux_pgtable_init(&pgtable_info, ibb, NULL, dst);
-
-	_gen9_render_op(ibb, NULL, 0, 0,
-		        width, height, dst, dst_x, dst_y,
-		        pgtable_info.pgtable_buf,
-		        clear_color,
-		        gen12_render_copy,
-		        sizeof(gen12_render_copy));
-
-	gen12_aux_pgtable_cleanup(ibb, &pgtable_info);
+	if (!HAS_4TILE(ibb->devid)) {
+		struct aux_pgtable_info pgtable_info = { };
+
+		gen12_aux_pgtable_init(&pgtable_info, ibb, NULL, dst);
+
+		_gen9_render_op(ibb, NULL, 0, 0,
+				width, height, dst, dst_x, dst_y,
+				pgtable_info.pgtable_buf,
+				clear_color,
+				gen12_render_copy,
+				sizeof(gen12_render_copy));
+		gen12_aux_pgtable_cleanup(ibb, &pgtable_info);
+	} else {
+			_gen9_render_op(ibb, NULL, 0, 0,
+					width, height, dst, dst_x, dst_y,
+					NULL,
+					clear_color,
+					gen12p71_render_copy,
+					sizeof(gen12p71_render_copy));
+	}
 }
diff --git a/lib/veboxcopy_gen12.c b/lib/veboxcopy_gen12.c
index 17564493..aa90939b 100644
--- a/lib/veboxcopy_gen12.c
+++ b/lib/veboxcopy_gen12.c
@@ -53,19 +53,25 @@ struct vebox_surface_state {
 		uint32_t width:14;
 		uint32_t height:14;
 	} ss2;
-	struct {
+	union {
+		struct {
 #define VEBOX_TILE_WALK_XMAJOR 0
 #define VEBOX_TILE_WALK_YMAJOR 1
-		uint32_t tile_walk:1;
-		uint32_t tiled_surface:1;
-		uint32_t chroma_half_pitch:1;
-		uint32_t surface_pitch:17;
-		uint32_t chroma_interleave:1;
-		uint32_t lsb_packed_enable:1;
-		uint32_t bayer_input_alignment:2;
-		uint32_t bayer_pattern_format:1;
-		uint32_t bayer_pattern_offset:2;
-		uint32_t surface_format:5;
+			uint32_t tile_walk:1;
+			uint32_t tiled_surface:1;
+			uint32_t chroma_half_pitch:1;
+			uint32_t surface_pitch:17;
+			uint32_t chroma_interleave:1;
+			uint32_t lsb_packed_enable:1;
+			uint32_t bayer_input_alignment:2;
+			uint32_t bayer_pattern_format:1;
+			uint32_t bayer_pattern_offset:2;
+			uint32_t surface_format:5;
+		} tgl;
+		struct {
+			uint32_t tile_mode:2;
+			uint32_t pad0:30;
+		} dg2;
 	} ss3;
 	struct {
 		uint32_t u_y_offset:15;
@@ -82,9 +88,15 @@ struct vebox_surface_state {
 		uint32_t frame_x_offset:15;
 		uint32_t pad:2;
 	} ss6;
-	struct {
-		uint32_t derived_surface_pitch:17;
-		uint32_t pad:15;
+	union {
+		struct {
+			uint32_t derived_surface_pitch:17;
+			uint32_t pad:15;
+		} skl;
+		struct {
+			uint32_t pad:27;
+			uint32_t compression_format:5;
+		} dg2;
 	} ss7;
 	struct {
 		uint32_t skin_score_output_surface_pitch:17;
@@ -166,17 +178,46 @@ static void emit_surface_state_cmd(struct intel_bb *ibb,
 	ss->ss2.height = height - 1;
 	ss->ss2.width = width - 1;
 
-	ss->ss3.surface_format = format;
+	ss->ss3.tgl.surface_format = format;
 	if (format_is_interleaved_yuv(format))
-		ss->ss3.chroma_interleave = 1;
-	ss->ss3.surface_pitch = pitch - 1;
-	ss->ss3.tile_walk = (tiling == I915_TILING_Y) ||
-			    (tiling == I915_TILING_Yf);
-	ss->ss3.tiled_surface = tiling != I915_TILING_NONE;
+		ss->ss3.tgl.chroma_interleave = 1;
+	ss->ss3.tgl.surface_pitch = pitch - 1;
 
 	ss->ss4.u_y_offset = uv_offset / pitch;
 
-	ss->ss7.derived_surface_pitch = pitch - 1;
+	if (HAS_FLATCCS(ibb->devid)) {
+		/*
+		 * f-tile = 3 (Tile F)
+		 */
+		ss->ss3.dg2.tile_mode = (tiling != I915_TILING_NONE) ? 3 : 0;
+
+		switch (format) {
+		case R8G8B8A8_UNORM:
+			ss->ss7.dg2.compression_format = 0xa;
+			break;
+		case PLANAR_420_8:
+			ss->ss7.dg2.compression_format = 0xf;
+			break;
+		case PLANAR_420_16:
+			ss->ss7.dg2.compression_format = 8;
+			break;
+		case YCRCB_NORMAL:
+			ss->ss7.dg2.compression_format = 3;
+			break;
+		case PACKED_444A_8:
+			ss->ss7.dg2.compression_format = 0x9;
+			break;
+		default:
+			igt_assert(0);
+		}
+	} else {
+		ss->ss3.tgl.tile_walk = (tiling == I915_TILING_Y) ||
+			(tiling == I915_TILING_Yf) ||
+			(tiling == I915_TILING_4);
+		ss->ss3.tgl.tiled_surface = tiling != I915_TILING_NONE;
+	}
+
+	ss->ss7.skl.derived_surface_pitch = pitch - 1;
 
 	intel_bb_ptr_add(ibb, sizeof(*ss));
 }
@@ -203,7 +244,11 @@ static void emit_tiling_convert_cmd(struct intel_bb *ibb,
 		tc->tc1_2.input_compression_type =
 			src->compression == I915_COMPRESSION_RENDER;
 	}
-	tc->tc1_2.input_tiled_resource_mode = src->tiling == I915_TILING_Yf;
+
+	if (HAS_4TILE(ibb->devid))
+		tc->tc1_2.input_mocs_idx = 3;
+	else
+		tc->tc1_2.input_tiled_resource_mode = src->tiling == I915_TILING_Yf;
 	reloc_delta = tc->tc1_2_l;
 
 	igt_assert(src->addr.offset == ALIGN(src->addr.offset, 0x1000));
@@ -220,7 +265,12 @@ static void emit_tiling_convert_cmd(struct intel_bb *ibb,
 		tc->tc3_4.output_compression_type =
 			dst->compression == I915_COMPRESSION_RENDER;
 	}
-	tc->tc3_4.output_tiled_resource_mode = dst->tiling == I915_TILING_Yf;
+
+	if (HAS_4TILE(ibb->devid))
+		tc->tc3_4.output_mocs_idx = 3;
+	else
+		tc->tc3_4.output_tiled_resource_mode = dst->tiling == I915_TILING_Yf;
+
 	reloc_delta = tc->tc3_4_l;
 
 	igt_assert(dst->addr.offset == ALIGN(dst->addr.offset, 0x1000));
@@ -255,10 +305,12 @@ void gen12_vebox_copyfunc(struct intel_bb *ibb,
 	intel_bb_add_intel_buf(ibb, dst, true);
 	intel_bb_add_intel_buf(ibb, src, false);
 
-	intel_bb_ptr_set(ibb, BATCH_STATE_SPLIT);
-	gen12_aux_pgtable_init(&aux_pgtable_info, ibb, src, dst);
-	aux_pgtable_state = gen12_create_aux_pgtable_state(ibb,
-							   aux_pgtable_info.pgtable_buf);
+	if (!HAS_FLATCCS(ibb->devid)) {
+		intel_bb_ptr_set(ibb, BATCH_STATE_SPLIT);
+		gen12_aux_pgtable_init(&aux_pgtable_info, ibb, src, dst);
+		aux_pgtable_state = gen12_create_aux_pgtable_state(ibb,
+								   aux_pgtable_info.pgtable_buf);
+	}
 
 	intel_bb_ptr_set(ibb, 0);
 	gen12_emit_aux_pgtable_state(ibb, aux_pgtable_state, false);
@@ -311,5 +363,6 @@ void gen12_vebox_copyfunc(struct intel_bb *ibb,
 
 	intel_bb_reset(ibb, false);
 
-	gen12_aux_pgtable_cleanup(ibb, &aux_pgtable_info);
+	if (!HAS_FLATCCS(ibb->devid))
+		gen12_aux_pgtable_cleanup(ibb, &aux_pgtable_info);
 }
-- 
2.36.0

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

* [igt-dev] [PATCH i-g-t v3 3/4] tests/kms_ccs: Add dg2 tiled-4 ccs modifiers
  2022-05-12 11:01 [igt-dev] [PATCH i-g-t v3 0/4] enable 4-tiled ccs modifiers on dg2 Jeevan B
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 1/4] drm/fourcc: Import drm_fourcc header from 9035039e1ed69 Jeevan B
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 2/4] lib/DG2: create flat ccs framebuffers with 4-tile Jeevan B
@ 2022-05-12 11:01 ` Jeevan B
  2022-05-13  8:58   ` Kahola, Mika
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 4/4] tests/kms_getfb: Add flat ccs modifier support Jeevan B
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Jeevan B @ 2022-05-12 11:01 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala, Juha-Pekka Heikkilä

From: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>

I915_FORMAT_MOD_4_TILED_DG2_RC_CCS
I915_FORMAT_MOD_4_TILED_DG2_MC_CCS
I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC

modifier added for testing and prevent impossible ccs test from
flat ccs, fb generation for FB_HAS_PLANE will use linear modifier
instead if Y-modifier as its no longer supported for latest platform.

v2: Modified commit message. (Petri)

Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_ccs.c | 62 +++++++++++++++++++++++++++-----------------
 1 file changed, 38 insertions(+), 24 deletions(-)

diff --git a/tests/i915/kms_ccs.c b/tests/i915/kms_ccs.c
index 716be5b6..39bf6d58 100644
--- a/tests/i915/kms_ccs.c
+++ b/tests/i915/kms_ccs.c
@@ -98,10 +98,29 @@ static const struct {
 	{I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, "y_tiled_gen12_rc_ccs"},
 	{I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC, "y_tiled_gen12_rc_ccs_cc"},
 	{I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS, "y_tiled_gen12_mc_ccs"},
+	{I915_FORMAT_MOD_4_TILED_DG2_RC_CCS, "4_tiled_dg2_rc_ccs"},
+	{I915_FORMAT_MOD_4_TILED_DG2_MC_CCS, "4_tiled_dg2_mc_ccs"},
+	{I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC, "4_tiled_dg2_rc_ccs_cc"},
 };
 
 static bool check_ccs_planes;
 
+static const struct {
+	const enum test_flags	flags;
+	const char		*testname;
+	const char		*description;
+} tests[] = {
+	{TEST_BAD_PIXEL_FORMAT, "bad-pixel-format", "Test bad pixel format with given CCS modifier"},
+	{TEST_BAD_ROTATION_90, "bad-rotation-90", "Test 90 degree rotation with given CCS modifier"},
+	{TEST_CRC, "crc-primary-basic", "Test primary plane CRC compatibility with given CCS modifier"},
+	{TEST_CRC | TEST_ROTATE_180, "crc-primary-rotation-180", "Test 180 degree rotation with given CCS modifier"},
+	{TEST_RANDOM, "random-ccs-data", "Test random CCS data"},
+	{TEST_NO_AUX_BUFFER, "missing-ccs-buffer", "Test missing CCS buffer with given CCS modifier"},
+	{TEST_BAD_CCS_HANDLE, "ccs-on-another-bo", "Test CCS with different BO with given modifier"},
+	{TEST_BAD_AUX_STRIDE, "bad-aux-stride", "Test with bad AUX stride with given CCS modifier"},
+	{TEST_CRC | TEST_ALL_PLANES, "crc-sprite-planes-basic", "Test sprite plane CRC compatibility with given CCS modifier"},
+};
+
 /*
  * Limit maximum used sprite plane width so this test will not mistakenly
  * fail on hardware limitations which are not interesting to this test.
@@ -141,7 +160,8 @@ create_fb_prepare_add(int drm_fd, int width, int height,
 
 static bool is_ccs_cc_modifier(uint64_t modifier)
 {
-	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC;
+	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC ||
+		modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS;
 }
 
 /*
@@ -256,12 +276,14 @@ static void test_bad_ccs_plane(data_t *data, int width, int height, int ccs_plan
 	 * an incorrect stride with the same delta as on earlier platforms.
 	 */
 	if (fb_flags & FB_MISALIGN_AUX_STRIDE) {
+		igt_skip_on_f(HAS_FLATCCS(intel_get_drm_devid(data->drm_fd)), "No aux plane on flat ccs.\n");
 		igt_skip_on_f(width <= 1024,
 			      "FB already has the smallest possible stride\n");
 		f.pitches[ccs_plane] -= 64;
 	}
 
 	if (fb_flags & FB_SMALL_AUX_STRIDE) {
+		igt_skip_on_f(HAS_FLATCCS(intel_get_drm_devid(data->drm_fd)), "No aux plane on flat ccs.\n");
 		igt_skip_on_f(width <= 1024,
 			      "FB already has the smallest possible stride\n");
 		f.pitches[ccs_plane] = ALIGN(f.pitches[ccs_plane] / 2, 128);
@@ -277,6 +299,7 @@ static void test_bad_ccs_plane(data_t *data, int width, int height, int ccs_plan
 	}
 
 	if (data->flags & TEST_NO_AUX_BUFFER) {
+		igt_skip_on_f(HAS_FLATCCS(intel_get_drm_devid(data->drm_fd)), "No aux plane on flat ccs.\n");
 		f.handles[ccs_plane] = 0;
 		f.modifier[ccs_plane] = 0;
 		f.pitches[ccs_plane] = 0;
@@ -363,7 +386,7 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
 				   colors[!!data->plane].b,
 				   1.0};
 
-	/* Use either compressed or Y-tiled to test. However, given the lack of
+	/* Use either compressed or linear to test. However, given the lack of
 	 * available bandwidth, we use linear for the primary plane when
 	 * testing sprites, since we cannot fit two CCS planes into the
 	 * available FIFO configurations.
@@ -371,7 +394,7 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
 	if (fb_flags & FB_COMPRESSED)
 		modifier = data->ccs_modifier;
 	else if (!(fb_flags & FB_HAS_PLANE))
-		modifier = I915_FORMAT_MOD_Y_TILED;
+		modifier = DRM_FORMAT_MOD_LINEAR;
 	else
 		modifier = 0;
 
@@ -563,9 +586,11 @@ static int test_ccs(data_t *data)
 	return valid_tests;
 }
 
-static void test_output(data_t *data, const char* testformatstring)
+static void test_output(data_t *data, const int testnum)
 {
 	igt_fixture {
+		data->flags = tests[testnum].flags;
+
 		data->output = igt_get_single_output_for_pipe(&data->display,
 							      data->pipe);
 		igt_require(data->output);
@@ -573,10 +598,17 @@ static void test_output(data_t *data, const char* testformatstring)
 	}
 
 	for (int i = 0; i < ARRAY_SIZE(ccs_modifiers); i++) {
+		if ((ccs_modifiers[i].modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS ||
+		    ccs_modifiers[i].modifier == I915_FORMAT_MOD_4_TILED_DG2_MC_CCS ||
+		    ccs_modifiers[i].modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC) &&
+		    tests[testnum].flags & TEST_BAD_CCS_PLANE)
+		    continue;
+
 		data->ccs_modifier = ccs_modifiers[i].modifier;
 
+		igt_describe(tests[testnum].description);
 		igt_subtest_f("pipe-%s-%s-%s", kmstest_pipe_name(data->pipe),
-			      testformatstring, ccs_modifiers[i].str ) {
+			      tests[testnum].testname, ccs_modifiers[i].str) {
 			int valid_tests = 0;
 			igt_require(data->output);
 
@@ -643,22 +675,6 @@ igt_main_args("cs:", NULL, help_str, opt_handler, &data)
 {
 	enum pipe pipe;
 
-	const struct {
-		const enum test_flags	flags;
-		const char		*testname;
-		const char		*description;
-	} tests[] = {
-		{TEST_BAD_PIXEL_FORMAT, "bad-pixel-format", "Test bad pixel format with given CCS modifier"},
-		{TEST_BAD_ROTATION_90, "bad-rotation-90", "Test 90 degree rotation with given CCS modifier"},
-		{TEST_CRC, "crc-primary-basic", "Test primary plane CRC compatibility with given CCS modifier"},
-		{TEST_CRC | TEST_ROTATE_180, "crc-primary-rotation-180", "Test 180 degree rotation with given CCS modifier"},
-		{TEST_RANDOM, "random-ccs-data", "Test random CCS data"},
-		{TEST_NO_AUX_BUFFER, "missing-ccs-buffer", "Test missing CCS buffer with given CCS modifier"},
-		{TEST_BAD_CCS_HANDLE, "ccs-on-another-bo", "Test CCS with different BO with given modifier"},
-		{TEST_BAD_AUX_STRIDE, "bad-aux-stride", "Test with bad AUX stride with given CCS modifier"},
-		{TEST_CRC | TEST_ALL_PLANES, "crc-sprite-planes-basic", "Test sprite plane CRC compatibility with given CCS modifier"},
-	};
-
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
 
@@ -678,9 +694,7 @@ igt_main_args("cs:", NULL, help_str, opt_handler, &data)
 
 		igt_subtest_group {
 			for (int c = 0; c < ARRAY_SIZE(tests); c++) {
-				data.flags = tests[c].flags;
-				igt_describe(tests[c].description);
-				test_output(&data, tests[c].testname);
+				test_output(&data, c);
 			}
 		}
 	}
-- 
2.36.0

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

* [igt-dev] [PATCH i-g-t v3 4/4] tests/kms_getfb: Add flat ccs modifier support
  2022-05-12 11:01 [igt-dev] [PATCH i-g-t v3 0/4] enable 4-tiled ccs modifiers on dg2 Jeevan B
                   ` (2 preceding siblings ...)
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 3/4] tests/kms_ccs: Add dg2 tiled-4 ccs modifiers Jeevan B
@ 2022-05-12 11:01 ` Jeevan B
  2022-05-13  8:59   ` Kahola, Mika
  2022-05-12 13:27 ` [igt-dev] ✓ Fi.CI.BAT: success for enable 4-tiled ccs modifiers on dg2 (rev3) Patchwork
  2022-05-12 15:38 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 1 reply; 11+ messages in thread
From: Jeevan B @ 2022-05-12 11:01 UTC (permalink / raw)
  To: igt-dev; +Cc: petri.latvala, Juha-Pekka Heikkilä

From: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>

Add support for testing/skipping flat ccs modifiers

Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 tests/kms_getfb.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/tests/kms_getfb.c b/tests/kms_getfb.c
index 75f5f30c..b3a8d265 100644
--- a/tests/kms_getfb.c
+++ b/tests/kms_getfb.c
@@ -88,11 +88,18 @@ static void get_ccs_fb(int fd, struct drm_mode_fb_cmd2 *ret)
 		.flags = DRM_MODE_FB_MODIFIERS,
 	};
 	int size;
+	uint32_t devid;
 
 	igt_require(has_addfb2_iface(fd));
 	igt_require_intel(fd);
+	devid = intel_get_drm_devid(fd);
 
-	if ((intel_display_ver(intel_get_drm_devid(fd))) >= 12) {
+	if (HAS_FLATCCS(devid)) {
+		add.modifier[0] = I915_FORMAT_MOD_4_TILED_DG2_RC_CCS;
+		add.pitches[0] = ALIGN(add.width * 4, 4 * 512);
+		size = add.pitches[0] * ALIGN(add.height, 8);
+		size = ALIGN(size, 4096);
+	} else if ((intel_display_ver(devid)) >= 12) {
 		add.modifier[0] = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS;
 		add.modifier[1] = I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS;
 
@@ -130,7 +137,9 @@ static void get_ccs_fb(int fd, struct drm_mode_fb_cmd2 *ret)
 
 	add.handles[0] = gem_buffer_create_fb_obj(fd, size);
 	igt_require(add.handles[0] != 0);
-	add.handles[1] = add.handles[0];
+
+	if (!HAS_FLATCCS(intel_get_drm_devid(fd)))
+		add.handles[1] = add.handles[0];
 
 	if (drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &add) == 0)
 		*ret = add;
@@ -256,6 +265,9 @@ static void test_duplicate_handles(int fd)
 		struct drm_mode_fb_cmd2 add_ccs = { };
 		struct drm_mode_fb_cmd get = { };
 
+		igt_require_f(!HAS_FLATCCS(intel_get_drm_devid(fd)),
+			      "skip because flat ccs has only one buffer.\n");
+
 		get_ccs_fb(fd, &add_ccs);
 		igt_require(add_ccs.handles[0] != 0);
 		get.fb_id = add_ccs.fb_id;
@@ -350,7 +362,9 @@ static void test_getfb2(int fd)
 				igt_assert_eq_u64(get.modifier[i], 0);
 			}
 		}
-		igt_assert_eq_u32(get.handles[0], get.handles[1]);
+
+		if (!HAS_FLATCCS(intel_get_drm_devid(fd)))
+			igt_assert_eq_u32(get.handles[0], get.handles[1]);
 
 		do_ioctl(fd, DRM_IOCTL_MODE_RMFB, &get.fb_id);
 		gem_close(fd, add_ccs.handles[0]);
-- 
2.36.0

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

* [igt-dev] ✓ Fi.CI.BAT: success for enable 4-tiled ccs modifiers on dg2 (rev3)
  2022-05-12 11:01 [igt-dev] [PATCH i-g-t v3 0/4] enable 4-tiled ccs modifiers on dg2 Jeevan B
                   ` (3 preceding siblings ...)
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 4/4] tests/kms_getfb: Add flat ccs modifier support Jeevan B
@ 2022-05-12 13:27 ` Patchwork
  2022-05-12 15:38 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2022-05-12 13:27 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev

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

== Series Details ==

Series: enable 4-tiled ccs modifiers on dg2 (rev3)
URL   : https://patchwork.freedesktop.org/series/102335/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_11641 -> IGTPW_7087
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Missing    (2): bat-rpls-1 fi-bdw-samus 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_rpm@module-reload:
    - bat-adlp-4:         [PASS][1] -> [DMESG-WARN][2] ([i915#3576]) +2 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/bat-adlp-4/igt@i915_pm_rpm@module-reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/bat-adlp-4/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live@hangcheck:
    - fi-bdw-5557u:       NOTRUN -> [INCOMPLETE][3] ([i915#3921])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/fi-bdw-5557u/igt@i915_selftest@live@hangcheck.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@gem_migrate:
    - fi-bdw-5557u:       [INCOMPLETE][4] ([i915#5716]) -> [PASS][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/fi-bdw-5557u/igt@i915_selftest@live@gem_migrate.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/fi-bdw-5557u/igt@i915_selftest@live@gem_migrate.html

  * igt@i915_selftest@live@objects:
    - {bat-dg2-9}:        [DMESG-WARN][6] ([i915#5763]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/bat-dg2-9/igt@i915_selftest@live@objects.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/bat-dg2-9/igt@i915_selftest@live@objects.html

  * igt@kms_busy@basic@flip:
    - {bat-adlp-6}:       [DMESG-WARN][8] ([i915#3576]) -> [PASS][9] +1 similar issue
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/bat-adlp-6/igt@kms_busy@basic@flip.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/bat-adlp-6/igt@kms_busy@basic@flip.html

  * igt@kms_flip@basic-flip-vs-modeset@b-edp1:
    - bat-adlp-4:         [DMESG-WARN][10] ([i915#3576]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/bat-adlp-4/igt@kms_flip@basic-flip-vs-modeset@b-edp1.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/bat-adlp-4/igt@kms_flip@basic-flip-vs-modeset@b-edp1.html

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

  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#3576]: https://gitlab.freedesktop.org/drm/intel/issues/3576
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
  [i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
  [i915#5716]: https://gitlab.freedesktop.org/drm/intel/issues/5716
  [i915#5763]: https://gitlab.freedesktop.org/drm/intel/issues/5763
  [i915#5950]: https://gitlab.freedesktop.org/drm/intel/issues/5950


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6471 -> IGTPW_7087

  CI-20190529: 20190529
  CI_DRM_11641: b5cf8e9f83d104e9368888cdc48e307de77306d0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7087: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/index.html
  IGT_6471: 1d6816f1200520f936a799b7b0ef2e6f396abb16 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


Testlist changes
----------------

+++ 108 lines
--- 0 lines

== Logs ==

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

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

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

* [igt-dev] ✗ Fi.CI.IGT: failure for enable 4-tiled ccs modifiers on dg2 (rev3)
  2022-05-12 11:01 [igt-dev] [PATCH i-g-t v3 0/4] enable 4-tiled ccs modifiers on dg2 Jeevan B
                   ` (4 preceding siblings ...)
  2022-05-12 13:27 ` [igt-dev] ✓ Fi.CI.BAT: success for enable 4-tiled ccs modifiers on dg2 (rev3) Patchwork
@ 2022-05-12 15:38 ` Patchwork
  5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2022-05-12 15:38 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev

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

== Series Details ==

Series: enable 4-tiled ccs modifiers on dg2 (rev3)
URL   : https://patchwork.freedesktop.org/series/102335/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_11641_full -> IGTPW_7087_full
====================================================

Summary
-------

  **FAILURE**

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

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

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

  Missing    (4): pig-skl-6260u pig-kbl-iris shard-rkl pig-glk-j5005 

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_ccs@pipe-b-crc-primary-basic-4_tiled_dg2_mc_ccs} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][1] +49 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@kms_ccs@pipe-b-crc-primary-basic-4_tiled_dg2_mc_ccs.html

  * igt@perf_pmu@module-unload:
    - shard-snb:          NOTRUN -> [DMESG-WARN][2]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-snb5/igt@perf_pmu@module-unload.html

  
#### Suppressed ####

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

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs:
    - {shard-tglu}:       NOTRUN -> [SKIP][3] +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglu-3/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4_tiled_dg2_mc_ccs.html

  * {igt@kms_ccs@pipe-d-bad-rotation-90-4_tiled_dg2_rc_ccs_cc}:
    - shard-tglb:         NOTRUN -> [SKIP][4] +8 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@kms_ccs@pipe-d-bad-rotation-90-4_tiled_dg2_rc_ccs_cc.html

  
New tests
---------

  New tests have been introduced between CI_DRM_11641_full and IGTPW_7087_full:

### New IGT tests (17) ###

  * igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_dg2_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_dg2_rc_ccs_cc:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-a-bad-rotation-90-4_tiled_dg2_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc:
    - Statuses : 4 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-a-random-ccs-data-4_tiled_dg2_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-b-bad-rotation-90-4_tiled_dg2_rc_ccs_cc:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-b-crc-primary-basic-4_tiled_dg2_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-b-crc-primary-basic-4_tiled_dg2_rc_ccs:
    - Statuses : 4 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs:
    - Statuses : 4 skip(s)
    - Exec time: [0.00, 0.01] s

  * igt@kms_ccs@pipe-c-bad-pixel-format-4_tiled_dg2_rc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-c-bad-rotation-90-4_tiled_dg2_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-c-crc-primary-basic-4_tiled_dg2_rc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-4_tiled_dg2_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-c-random-ccs-data-4_tiled_dg2_rc_ccs_cc:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-crc-primary-basic-4_tiled_dg2_rc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-d-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-random-ccs-data-4_tiled_dg2_rc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  

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

  Here are the changes found in IGTPW_7087_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/IGTPW_7087/shard-tglb8/igt@feature_discovery@chamelium.html
    - shard-iclb:         NOTRUN -> [SKIP][6] ([fdo#111827])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb6/igt@feature_discovery@chamelium.html

  * igt@gem_ccs@block-copy-inplace:
    - shard-tglb:         NOTRUN -> [SKIP][7] ([i915#3555] / [i915#5325])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@gem_ccs@block-copy-inplace.html

  * igt@gem_ccs@ctrl-surf-copy-new-ctx:
    - shard-glk:          NOTRUN -> [SKIP][8] ([fdo#109271]) +188 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk1/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
    - shard-iclb:         NOTRUN -> [SKIP][9] ([i915#5327]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@gem_ccs@ctrl-surf-copy-new-ctx.html
    - shard-tglb:         NOTRUN -> [SKIP][10] ([i915#5325])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@gem_ccs@ctrl-surf-copy-new-ctx.html

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

  * igt@gem_ctx_sseu@engines:
    - shard-tglb:         NOTRUN -> [SKIP][12] ([i915#280])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@gem_ctx_sseu@engines.html

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         NOTRUN -> [TIMEOUT][13] ([i915#3063])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@parallel:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][14] ([i915#5076] / [i915#5614])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl4/igt@gem_exec_balancer@parallel.html

  * igt@gem_exec_balancer@parallel-balancer:
    - shard-iclb:         NOTRUN -> [SKIP][15] ([i915#4525])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@gem_exec_balancer@parallel-balancer.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-kbl:          NOTRUN -> [FAIL][16] ([i915#2842])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
    - shard-glk:          NOTRUN -> [FAIL][17] ([i915#2842]) +1 similar issue
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk2/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-none-vip@rcs0:
    - shard-tglb:         NOTRUN -> [FAIL][18] ([i915#2842]) +1 similar issue
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@gem_exec_fair@basic-none-vip@rcs0.html

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

  * igt@gem_exec_fair@basic-pace@rcs0:
    - shard-kbl:          [PASS][20] -> [FAIL][21] ([i915#2842]) +2 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl7/igt@gem_exec_fair@basic-pace@rcs0.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@gem_exec_fair@basic-pace@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-iclb:         [PASS][22] -> [FAIL][23] ([i915#2842])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb5/igt@gem_exec_fair@basic-pace@vcs0.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_exec_flush@basic-batch-kernel-default-cmd:
    - shard-snb:          NOTRUN -> [SKIP][24] ([fdo#109271]) +343 similar issues
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-snb6/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
    - shard-iclb:         NOTRUN -> [SKIP][25] ([fdo#109313])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb6/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
    - shard-tglb:         NOTRUN -> [SKIP][26] ([fdo#109313])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html

  * igt@gem_exec_flush@basic-batch-kernel-default-uc:
    - shard-snb:          [PASS][27] -> [SKIP][28] ([fdo#109271]) +1 similar issue
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-snb5/igt@gem_exec_flush@basic-batch-kernel-default-uc.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-snb6/igt@gem_exec_flush@basic-batch-kernel-default-uc.html

  * igt@gem_exec_params@no-bsd:
    - shard-tglb:         NOTRUN -> [SKIP][29] ([fdo#109283])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb3/igt@gem_exec_params@no-bsd.html

  * igt@gem_exec_params@no-vebox:
    - shard-iclb:         NOTRUN -> [SKIP][30] ([fdo#109283]) +1 similar issue
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@gem_exec_params@no-vebox.html
    - shard-tglb:         NOTRUN -> [SKIP][31] ([fdo#109283] / [i915#4877])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb3/igt@gem_exec_params@no-vebox.html

  * igt@gem_exec_suspend@basic-s3@smem:
    - shard-kbl:          NOTRUN -> [DMESG-WARN][32] ([i915#180]) +2 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         NOTRUN -> [SKIP][33] ([i915#2190])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@gem_huc_copy@huc-copy.html
    - shard-iclb:         NOTRUN -> [SKIP][34] ([i915#2190])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb8/igt@gem_huc_copy@huc-copy.html
    - shard-kbl:          NOTRUN -> [SKIP][35] ([fdo#109271] / [i915#2190])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl4/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs:
    - shard-iclb:         NOTRUN -> [SKIP][36] ([i915#4613]) +3 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb2/igt@gem_lmem_swapping@heavy-verify-multi-ccs.html

  * igt@gem_lmem_swapping@parallel-multi:
    - shard-apl:          NOTRUN -> [SKIP][37] ([fdo#109271] / [i915#4613]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl8/igt@gem_lmem_swapping@parallel-multi.html
    - shard-glk:          NOTRUN -> [SKIP][38] ([fdo#109271] / [i915#4613]) +2 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk7/igt@gem_lmem_swapping@parallel-multi.html

  * igt@gem_lmem_swapping@parallel-random-verify:
    - shard-kbl:          NOTRUN -> [SKIP][39] ([fdo#109271] / [i915#4613]) +3 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl3/igt@gem_lmem_swapping@parallel-random-verify.html

  * igt@gem_lmem_swapping@random:
    - shard-tglb:         NOTRUN -> [SKIP][40] ([i915#4613]) +4 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@gem_lmem_swapping@random.html

  * igt@gem_pread@exhaustion:
    - shard-tglb:         NOTRUN -> [WARN][41] ([i915#2658])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@gem_pread@exhaustion.html
    - shard-glk:          NOTRUN -> [WARN][42] ([i915#2658])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk4/igt@gem_pread@exhaustion.html
    - shard-apl:          NOTRUN -> [WARN][43] ([i915#2658])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl7/igt@gem_pread@exhaustion.html
    - shard-iclb:         NOTRUN -> [WARN][44] ([i915#2658])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb3/igt@gem_pread@exhaustion.html
    - shard-snb:          NOTRUN -> [WARN][45] ([i915#2658])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-snb5/igt@gem_pread@exhaustion.html
    - shard-kbl:          NOTRUN -> [WARN][46] ([i915#2658])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@gem_pread@exhaustion.html

  * igt@gem_pxp@protected-encrypted-src-copy-not-readible:
    - shard-tglb:         NOTRUN -> [SKIP][47] ([i915#4270]) +4 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@gem_pxp@protected-encrypted-src-copy-not-readible.html

  * igt@gem_pxp@reject-modify-context-protection-off-3:
    - shard-iclb:         NOTRUN -> [SKIP][48] ([i915#4270]) +4 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@gem_pxp@reject-modify-context-protection-off-3.html

  * igt@gem_render_copy@x-tiled-to-vebox-yf-tiled:
    - shard-kbl:          NOTRUN -> [SKIP][49] ([fdo#109271]) +343 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl1/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html
    - shard-iclb:         NOTRUN -> [SKIP][50] ([i915#768]) +4 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb2/igt@gem_render_copy@x-tiled-to-vebox-yf-tiled.html

  * igt@gem_softpin@evict-single-offset:
    - shard-kbl:          NOTRUN -> [FAIL][51] ([i915#4171])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl3/igt@gem_softpin@evict-single-offset.html
    - shard-glk:          NOTRUN -> [FAIL][52] ([i915#4171])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk2/igt@gem_softpin@evict-single-offset.html
    - shard-apl:          NOTRUN -> [FAIL][53] ([i915#4171])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl8/igt@gem_softpin@evict-single-offset.html

  * igt@gem_softpin@evict-snoop:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([fdo#109312])
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@gem_softpin@evict-snoop.html

  * igt@gem_userptr_blits@input-checking:
    - shard-iclb:         NOTRUN -> [DMESG-WARN][55] ([i915#4991])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb3/igt@gem_userptr_blits@input-checking.html

  * igt@gem_userptr_blits@unsync-unmap-cycles:
    - shard-tglb:         NOTRUN -> [SKIP][56] ([i915#3297]) +3 similar issues
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@gem_userptr_blits@unsync-unmap-cycles.html
    - shard-iclb:         NOTRUN -> [SKIP][57] ([i915#3297]) +4 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb6/igt@gem_userptr_blits@unsync-unmap-cycles.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-apl:          [PASS][58] -> [DMESG-WARN][59] ([i915#180]) +1 similar issue
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl4/igt@gem_workarounds@suspend-resume-context.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl6/igt@gem_workarounds@suspend-resume-context.html

  * igt@gen3_render_linear_blits:
    - shard-tglb:         NOTRUN -> [SKIP][60] ([fdo#109289]) +4 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@gen3_render_linear_blits.html
    - shard-iclb:         NOTRUN -> [SKIP][61] ([fdo#109289]) +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb8/igt@gen3_render_linear_blits.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-iclb:         NOTRUN -> [SKIP][62] ([i915#2856]) +3 similar issues
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb7/igt@gen9_exec_parse@allowed-all.html
    - shard-glk:          [PASS][63] -> [DMESG-WARN][64] ([i915#5566] / [i915#716])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-glk2/igt@gen9_exec_parse@allowed-all.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk7/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-tglb:         NOTRUN -> [SKIP][65] ([i915#2527] / [i915#2856]) +3 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb5/igt@gen9_exec_parse@allowed-single.html
    - shard-kbl:          NOTRUN -> [DMESG-WARN][66] ([i915#5566] / [i915#716])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl7/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-tglb:         NOTRUN -> [SKIP][67] ([i915#1904])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@i915_pm_dc@dc3co-vpb-simulation.html
    - shard-iclb:         NOTRUN -> [SKIP][68] ([i915#658])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         NOTRUN -> [FAIL][69] ([i915#454])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb7/igt@i915_pm_dc@dc6-psr.html
    - shard-tglb:         NOTRUN -> [FAIL][70] ([i915#454])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_pm_rpm@dpms-mode-unset-non-lpsp:
    - shard-tglb:         NOTRUN -> [SKIP][71] ([fdo#111644] / [i915#1397] / [i915#2411]) +1 similar issue
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@i915_pm_rpm@dpms-mode-unset-non-lpsp.html

  * igt@i915_pm_rpm@modeset-non-lpsp:
    - shard-iclb:         NOTRUN -> [SKIP][72] ([fdo#110892]) +1 similar issue
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb6/igt@i915_pm_rpm@modeset-non-lpsp.html

  * igt@i915_pm_rpm@pc8-residency:
    - shard-iclb:         NOTRUN -> [SKIP][73] ([fdo#109293] / [fdo#109506])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb1/igt@i915_pm_rpm@pc8-residency.html
    - shard-tglb:         NOTRUN -> [SKIP][74] ([fdo#109506] / [i915#2411])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@i915_pm_rpm@pc8-residency.html

  * igt@i915_pm_sseu@full-enable:
    - shard-tglb:         NOTRUN -> [SKIP][75] ([i915#4387])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@i915_pm_sseu@full-enable.html
    - shard-iclb:         NOTRUN -> [SKIP][76] ([i915#4387])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb8/igt@i915_pm_sseu@full-enable.html

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

  * igt@i915_selftest@live@gt_lrc:
    - shard-tglb:         NOTRUN -> [DMESG-FAIL][78] ([i915#2373])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@gt_pm:
    - shard-tglb:         NOTRUN -> [DMESG-FAIL][79] ([i915#1759])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@i915_selftest@live@gt_pm.html

  * igt@kms_atomic@atomic_plane_damage:
    - shard-iclb:         NOTRUN -> [SKIP][80] ([i915#4765])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb7/igt@kms_atomic@atomic_plane_damage.html

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-iclb:         NOTRUN -> [SKIP][81] ([i915#1769]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb8/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html
    - shard-tglb:         NOTRUN -> [SKIP][82] ([i915#1769]) +1 similar issue
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@kms_atomic_transition@plane-all-modeset-transition-fencing.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-0:
    - shard-iclb:         NOTRUN -> [SKIP][83] ([i915#5286]) +7 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb4/igt@kms_big_fb@4-tiled-8bpp-rotate-0.html

  * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-tglb:         NOTRUN -> [SKIP][84] ([i915#5286]) +9 similar issues
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_big_fb@linear-32bpp-rotate-90:
    - shard-iclb:         NOTRUN -> [SKIP][85] ([fdo#110725] / [fdo#111614]) +7 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb7/igt@kms_big_fb@linear-32bpp-rotate-90.html

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

  * igt@kms_big_fb@yf-tiled-8bpp-rotate-90:
    - shard-tglb:         NOTRUN -> [SKIP][87] ([fdo#111615]) +8 similar issues
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@kms_big_fb@yf-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
    - shard-iclb:         NOTRUN -> [SKIP][88] ([fdo#110723]) +2 similar issues
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb3/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html

  * igt@kms_big_joiner@basic:
    - shard-tglb:         NOTRUN -> [SKIP][89] ([i915#2705]) +1 similar issue
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@kms_big_joiner@basic.html
    - shard-iclb:         NOTRUN -> [SKIP][90] ([i915#2705]) +1 similar issue
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@kms_big_joiner@basic.html

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][91] ([i915#3689]) +8 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs.html

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
    - shard-glk:          NOTRUN -> [SKIP][92] ([fdo#109271] / [i915#3886]) +4 similar issues
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk3/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
    - shard-iclb:         NOTRUN -> [SKIP][93] ([fdo#109278] / [i915#3886]) +9 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb7/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-a-random-ccs-data-yf_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][94] ([fdo#111615] / [i915#3689]) +6 similar issues
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb3/igt@kms_ccs@pipe-a-random-ccs-data-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][95] ([i915#3689] / [i915#3886]) +4 similar issues
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html

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

  * igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs:
    - shard-kbl:          NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#3886]) +12 similar issues
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl7/igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_mc_ccs.html

  * igt@kms_cdclk@mode-transition:
    - shard-apl:          NOTRUN -> [SKIP][98] ([fdo#109271]) +220 similar issues
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl4/igt@kms_cdclk@mode-transition.html
    - shard-iclb:         NOTRUN -> [SKIP][99] ([i915#3742])
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@kms_cdclk@mode-transition.html
    - shard-tglb:         NOTRUN -> [SKIP][100] ([i915#3742])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@kms_cdclk@mode-transition.html

  * igt@kms_chamelium@dp-crc-multiple:
    - shard-apl:          NOTRUN -> [SKIP][101] ([fdo#109271] / [fdo#111827]) +12 similar issues
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl7/igt@kms_chamelium@dp-crc-multiple.html

  * igt@kms_chamelium@dp-hpd-storm:
    - shard-iclb:         NOTRUN -> [SKIP][102] ([fdo#109284] / [fdo#111827]) +12 similar issues
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@kms_chamelium@dp-hpd-storm.html

  * igt@kms_chamelium@hdmi-edid-read:
    - shard-tglb:         NOTRUN -> [SKIP][103] ([fdo#109284] / [fdo#111827]) +16 similar issues
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@kms_chamelium@hdmi-edid-read.html

  * igt@kms_color@pipe-b-deep-color:
    - shard-iclb:         NOTRUN -> [SKIP][104] ([fdo#109278] / [i915#3555])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb8/igt@kms_color@pipe-b-deep-color.html

  * igt@kms_color@pipe-d-ctm-max:
    - shard-iclb:         NOTRUN -> [SKIP][105] ([fdo#109278] / [i915#1149])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@kms_color@pipe-d-ctm-max.html

  * igt@kms_color_chamelium@pipe-b-ctm-0-25:
    - shard-kbl:          NOTRUN -> [SKIP][106] ([fdo#109271] / [fdo#111827]) +16 similar issues
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl1/igt@kms_color_chamelium@pipe-b-ctm-0-25.html

  * igt@kms_color_chamelium@pipe-b-ctm-negative:
    - shard-snb:          NOTRUN -> [SKIP][107] ([fdo#109271] / [fdo#111827]) +12 similar issues
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-snb7/igt@kms_color_chamelium@pipe-b-ctm-negative.html

  * igt@kms_color_chamelium@pipe-d-ctm-negative:
    - shard-iclb:         NOTRUN -> [SKIP][108] ([fdo#109278] / [fdo#109284] / [fdo#111827]) +2 similar issues
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb2/igt@kms_color_chamelium@pipe-d-ctm-negative.html

  * igt@kms_color_chamelium@pipe-d-degamma:
    - shard-glk:          NOTRUN -> [SKIP][109] ([fdo#109271] / [fdo#111827]) +9 similar issues
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk3/igt@kms_color_chamelium@pipe-d-degamma.html

  * igt@kms_content_protection@dp-mst-type-0:
    - shard-tglb:         NOTRUN -> [SKIP][110] ([i915#3116] / [i915#3299])
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb3/igt@kms_content_protection@dp-mst-type-0.html
    - shard-iclb:         NOTRUN -> [SKIP][111] ([i915#3116])
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb1/igt@kms_content_protection@dp-mst-type-0.html

  * igt@kms_content_protection@lic:
    - shard-apl:          NOTRUN -> [TIMEOUT][112] ([i915#1319]) +1 similar issue
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl4/igt@kms_content_protection@lic.html
    - shard-kbl:          NOTRUN -> [TIMEOUT][113] ([i915#1319])
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl3/igt@kms_content_protection@lic.html

  * igt@kms_content_protection@mei_interface:
    - shard-iclb:         NOTRUN -> [SKIP][114] ([fdo#109300] / [fdo#111066]) +1 similar issue
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb8/igt@kms_content_protection@mei_interface.html

  * igt@kms_content_protection@uevent:
    - shard-kbl:          NOTRUN -> [FAIL][115] ([i915#2105])
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl7/igt@kms_content_protection@uevent.html
    - shard-tglb:         NOTRUN -> [SKIP][116] ([i915#1063]) +2 similar issues
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen:
    - shard-tglb:         NOTRUN -> [SKIP][117] ([i915#3319]) +5 similar issues
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@kms_cursor_crc@pipe-b-cursor-32x32-offscreen.html

  * igt@kms_cursor_crc@pipe-b-cursor-512x170-offscreen:
    - shard-iclb:         NOTRUN -> [SKIP][118] ([fdo#109278] / [fdo#109279]) +5 similar issues
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@kms_cursor_crc@pipe-b-cursor-512x170-offscreen.html

  * igt@kms_cursor_crc@pipe-c-cursor-512x512-random:
    - shard-tglb:         NOTRUN -> [SKIP][119] ([fdo#109279] / [i915#3359]) +12 similar issues
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb3/igt@kms_cursor_crc@pipe-c-cursor-512x512-random.html

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

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
    - shard-iclb:         NOTRUN -> [SKIP][121] ([fdo#109274] / [fdo#109278]) +3 similar issues
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb7/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          [PASS][122] -> [FAIL][123] ([i915#2346])
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@pipe-d-single-move:
    - shard-iclb:         NOTRUN -> [SKIP][124] ([fdo#109278]) +118 similar issues
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb4/igt@kms_cursor_legacy@pipe-d-single-move.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions:
    - shard-tglb:         NOTRUN -> [SKIP][125] ([i915#4103]) +2 similar issues
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-render-4tiled:
    - shard-tglb:         NOTRUN -> [SKIP][126] ([i915#5287]) +5 similar issues
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@kms_draw_crc@draw-method-xrgb2101010-render-4tiled.html

  * igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-4tiled:
    - shard-iclb:         NOTRUN -> [SKIP][127] ([i915#5287]) +5 similar issues
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb8/igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-4tiled.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible:
    - shard-iclb:         NOTRUN -> [SKIP][128] ([fdo#109274]) +4 similar issues
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb2/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible.html

  * igt@kms_flip@2x-plain-flip:
    - shard-tglb:         NOTRUN -> [SKIP][129] ([fdo#109274] / [fdo#111825]) +10 similar issues
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@kms_flip@2x-plain-flip.html

  * igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2:
    - shard-glk:          [PASS][130] -> [FAIL][131] ([i915#79])
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-glk8/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk8/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a2.html

  * igt@kms_flip@flip-vs-suspend@b-vga1:
    - shard-snb:          [PASS][132] -> [DMESG-WARN][133] ([i915#5090])
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-snb5/igt@kms_flip@flip-vs-suspend@b-vga1.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-snb5/igt@kms_flip@flip-vs-suspend@b-vga1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling:
    - shard-glk:          [PASS][134] -> [FAIL][135] ([i915#4911])
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-glk9/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk8/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling:
    - shard-tglb:         NOTRUN -> [SKIP][136] ([i915#2587])
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@kms_flip_scaled_crc@flip-32bpp-ytileccs-to-64bpp-ytile-upscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling:
    - shard-iclb:         [PASS][137] -> [SKIP][138] ([i915#3701])
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb8/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling:
    - shard-iclb:         NOTRUN -> [SKIP][139] ([i915#2587]) +1 similar issue
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilercccs-upscaling.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc:
    - shard-tglb:         NOTRUN -> [SKIP][140] ([fdo#109280] / [fdo#111825]) +48 similar issues
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-apl:          NOTRUN -> [DMESG-WARN][141] ([i915#180]) +2 similar issues
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl1/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt:
    - shard-iclb:         NOTRUN -> [SKIP][142] ([fdo#109280]) +46 similar issues
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb8/igt@kms_frontbuffer_tracking@psr-2p-primscrn-shrfb-plflip-blt.html

  * igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d:
    - shard-glk:          NOTRUN -> [SKIP][143] ([fdo#109271] / [i915#533]) +1 similar issue
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk1/igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d.html
    - shard-apl:          NOTRUN -> [SKIP][144] ([fdo#109271] / [i915#533]) +2 similar issues
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl6/igt@kms_pipe_crc_basic@disable-crc-after-crtc-pipe-d.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-d-frame-sequence:
    - shard-kbl:          NOTRUN -> [SKIP][145] ([fdo#109271] / [i915#533]) +2 similar issues
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl1/igt@kms_pipe_crc_basic@nonblocking-crc-pipe-d-frame-sequence.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - shard-kbl:          [PASS][146] -> [DMESG-WARN][147] ([i915#180]) +1 similar issue
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
    - shard-kbl:          NOTRUN -> [FAIL][148] ([fdo#108145] / [i915#265]) +2 similar issues
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl7/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html

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

  * igt@kms_plane_lowres@pipe-a-tiling-yf:
    - shard-iclb:         NOTRUN -> [SKIP][150] ([i915#3536]) +3 similar issues
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@kms_plane_lowres@pipe-a-tiling-yf.html

  * igt@kms_plane_lowres@pipe-b-tiling-4:
    - shard-tglb:         NOTRUN -> [SKIP][151] ([i915#5288]) +2 similar issues
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@kms_plane_lowres@pipe-b-tiling-4.html
    - shard-iclb:         NOTRUN -> [SKIP][152] ([i915#5288]) +1 similar issue
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb4/igt@kms_plane_lowres@pipe-b-tiling-4.html

  * igt@kms_plane_lowres@pipe-b-tiling-yf:
    - shard-tglb:         NOTRUN -> [SKIP][153] ([fdo#111615] / [fdo#112054]) +1 similar issue
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@kms_plane_lowres@pipe-b-tiling-yf.html

  * igt@kms_plane_lowres@pipe-d-tiling-y:
    - shard-tglb:         NOTRUN -> [SKIP][154] ([i915#3536]) +3 similar issues
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb3/igt@kms_plane_lowres@pipe-d-tiling-y.html

  * igt@kms_plane_scaling@downscale-with-modifier-factor-0-25@pipe-c-edp-1-downscale-with-modifier:
    - shard-iclb:         NOTRUN -> [SKIP][155] ([i915#5176]) +2 similar issues
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb4/igt@kms_plane_scaling@downscale-with-modifier-factor-0-25@pipe-c-edp-1-downscale-with-modifier.html

  * igt@kms_plane_scaling@downscale-with-modifier-factor-0-25@pipe-d-edp-1-downscale-with-modifier:
    - shard-tglb:         NOTRUN -> [SKIP][156] ([i915#5176]) +3 similar issues
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb3/igt@kms_plane_scaling@downscale-with-modifier-factor-0-25@pipe-d-edp-1-downscale-with-modifier.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-edp-1-planes-downscale:
    - shard-iclb:         NOTRUN -> [SKIP][157] ([i915#5235]) +5 similar issues
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb6/igt@kms_plane_scaling@planes-downscale-factor-0-25@pipe-b-edp-1-planes-downscale.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-edp-1-planes-upscale-downscale:
    - shard-tglb:         NOTRUN -> [SKIP][158] ([i915#5235]) +3 similar issues
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25@pipe-d-edp-1-planes-upscale-downscale.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-edp-1-planes-upscale-downscale:
    - shard-iclb:         [PASS][159] -> [SKIP][160] ([i915#5235]) +2 similar issues
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb5/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-edp-1-planes-upscale-downscale.html
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-a-edp-1-planes-upscale-downscale.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
    - shard-apl:          NOTRUN -> [SKIP][161] ([fdo#109271] / [i915#658]) +1 similar issue
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl2/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - shard-kbl:          NOTRUN -> [SKIP][162] ([fdo#109271] / [i915#658]) +3 similar issues
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@plane-move-sf-dmg-area:
    - shard-iclb:         NOTRUN -> [SKIP][163] ([fdo#111068] / [i915#658]) +1 similar issue
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb6/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
    - shard-tglb:         NOTRUN -> [SKIP][164] ([i915#2920]) +1 similar issue
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
    - shard-glk:          NOTRUN -> [SKIP][165] ([fdo#109271] / [i915#658])
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk9/igt@kms_psr2_sf@plane-move-sf-dmg-area.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-tglb:         NOTRUN -> [SKIP][166] ([i915#1911])
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb6/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr@psr2_cursor_plane_move:
    - shard-iclb:         [PASS][167] -> [SKIP][168] ([fdo#109441]) +2 similar issues
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@kms_psr@psr2_cursor_plane_move.html

  * igt@kms_psr@psr2_sprite_blt:
    - shard-tglb:         NOTRUN -> [FAIL][169] ([i915#132] / [i915#3467]) +3 similar issues
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb5/igt@kms_psr@psr2_sprite_blt.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         NOTRUN -> [SKIP][170] ([fdo#109441]) +2 similar issues
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb5/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-tglb:         [PASS][171] -> [SKIP][172] ([i915#5519])
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-tglb6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_scaling_modes@scaling-mode-none@edp-1-pipe-a:
    - shard-tglb:         NOTRUN -> [SKIP][173] ([i915#5030]) +3 similar issues
   [173]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@kms_scaling_modes@scaling-mode-none@edp-1-pipe-a.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - shard-iclb:         NOTRUN -> [SKIP][174] ([i915#3555]) +3 similar issues
   [174]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb7/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@kms_sysfs_edid_timing:
    - shard-apl:          NOTRUN -> [FAIL][175] ([IGT#2])
   [175]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl1/igt@kms_sysfs_edid_timing.html
    - shard-kbl:          NOTRUN -> [FAIL][176] ([IGT#2])
   [176]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl1/igt@kms_sysfs_edid_timing.html

  * igt@kms_vrr@flip-basic:
    - shard-tglb:         NOTRUN -> [SKIP][177] ([i915#3555]) +4 similar issues
   [177]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb7/igt@kms_vrr@flip-basic.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-kbl:          NOTRUN -> [SKIP][178] ([fdo#109271] / [i915#2437]) +1 similar issue
   [178]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl4/igt@kms_writeback@writeback-pixel-formats.html
    - shard-iclb:         NOTRUN -> [SKIP][179] ([i915#2437])
   [179]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb4/igt@kms_writeback@writeback-pixel-formats.html
    - shard-tglb:         NOTRUN -> [SKIP][180] ([i915#2437])
   [180]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb5/igt@kms_writeback@writeback-pixel-formats.html

  * igt@nouveau_crc@pipe-a-ctx-flip-skip-current-frame:
    - shard-tglb:         NOTRUN -> [SKIP][181] ([i915#2530]) +4 similar issues
   [181]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@nouveau_crc@pipe-a-ctx-flip-skip-current-frame.html

  * igt@nouveau_crc@pipe-a-source-rg:
    - shard-iclb:         NOTRUN -> [SKIP][182] ([i915#2530]) +3 similar issues
   [182]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb1/igt@nouveau_crc@pipe-a-source-rg.html

  * igt@prime_nv_pcopy@test3_1:
    - shard-tglb:         NOTRUN -> [SKIP][183] ([fdo#109291]) +8 similar issues
   [183]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb3/igt@prime_nv_pcopy@test3_1.html

  * igt@prime_nv_pcopy@test3_3:
    - shard-iclb:         NOTRUN -> [SKIP][184] ([fdo#109291]) +7 similar issues
   [184]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb1/igt@prime_nv_pcopy@test3_3.html

  * igt@prime_vgem@fence-write-hang:
    - shard-iclb:         NOTRUN -> [SKIP][185] ([fdo#109295])
   [185]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb3/igt@prime_vgem@fence-write-hang.html
    - shard-tglb:         NOTRUN -> [SKIP][186] ([fdo#109295])
   [186]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb5/igt@prime_vgem@fence-write-hang.html

  * igt@sysfs_clients@busy:
    - shard-tglb:         NOTRUN -> [SKIP][187] ([i915#2994]) +2 similar issues
   [187]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb8/igt@sysfs_clients@busy.html

  * igt@sysfs_clients@pidname:
    - shard-iclb:         NOTRUN -> [SKIP][188] ([i915#2994]) +2 similar issues
   [188]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb3/igt@sysfs_clients@pidname.html

  * igt@sysfs_clients@recycle-many:
    - shard-kbl:          NOTRUN -> [SKIP][189] ([fdo#109271] / [i915#2994]) +2 similar issues
   [189]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@sysfs_clients@recycle-many.html

  
#### Possible fixes ####

  * igt@gem_eio@unwedge-stress:
    - shard-iclb:         [TIMEOUT][190] ([i915#3070]) -> [PASS][191]
   [190]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb4/igt@gem_eio@unwedge-stress.html
   [191]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb4/igt@gem_eio@unwedge-stress.html
    - {shard-tglu}:       [TIMEOUT][192] ([i915#3063]) -> [PASS][193]
   [192]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-tglu-8/igt@gem_eio@unwedge-stress.html
   [193]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglu-6/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-iclb:         [FAIL][194] ([i915#2842]) -> [PASS][195]
   [194]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb1/igt@gem_exec_fair@basic-none-share@rcs0.html
   [195]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb7/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-glk:          [FAIL][196] ([i915#2842]) -> [PASS][197] +2 similar issues
   [196]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-glk3/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [197]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk6/igt@gem_exec_fair@basic-pace-solo@rcs0.html
    - shard-apl:          [FAIL][198] ([i915#2842]) -> [PASS][199]
   [198]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [199]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl6/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-kbl:          [FAIL][200] ([i915#2842]) -> [PASS][201] +1 similar issue
   [200]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl7/igt@gem_exec_fair@basic-pace@vecs0.html
   [201]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-iclb:         [SKIP][202] ([i915#4281]) -> [PASS][203]
   [202]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html
   [203]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb7/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_suspend@system-suspend-without-i915:
    - shard-snb:          [DMESG-WARN][204] -> [PASS][205]
   [204]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-snb4/igt@i915_suspend@system-suspend-without-i915.html
   [205]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-snb2/igt@i915_suspend@system-suspend-without-i915.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-kbl:          [DMESG-WARN][206] ([i915#180]) -> [PASS][207] +1 similar issue
   [206]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [207]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl3/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2:
    - shard-glk:          [FAIL][208] ([i915#79]) -> [PASS][209]
   [208]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-glk8/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html
   [209]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-glk8/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a2.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
    - shard-apl:          [DMESG-WARN][210] ([i915#180]) -> [PASS][211] +4 similar issues
   [210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl8/igt@kms_flip@flip-vs-suspend@a-dp1.html
   [211]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl7/igt@kms_flip@flip-vs-suspend@a-dp1.html

  * igt@kms_psr@psr2_primary_mmap_cpu:
    - shard-iclb:         [SKIP][212] ([fdo#109441]) -> [PASS][213] +1 similar issue
   [212]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb7/igt@kms_psr@psr2_primary_mmap_cpu.html
   [213]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb2/igt@kms_psr@psr2_primary_mmap_cpu.html

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - shard-iclb:         [SKIP][214] ([i915#5519]) -> [PASS][215]
   [214]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb7/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
   [215]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb4/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html

  * igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
    - shard-tglb:         [SKIP][216] ([i915#5519]) -> [PASS][217]
   [216]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-tglb3/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
   [217]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-tglb2/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html

  
#### Warnings ####

  * igt@gem_exec_balancer@parallel-keep-submit-fence:
    - shard-iclb:         [DMESG-WARN][218] ([i915#5614]) -> [SKIP][219] ([i915#4525])
   [218]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb1/igt@gem_exec_balancer@parallel-keep-submit-fence.html
   [219]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb6/igt@gem_exec_balancer@parallel-keep-submit-fence.html

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-iclb:         [DMESG-FAIL][220] ([i915#5614]) -> [SKIP][221] ([i915#4525])
   [220]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-iclb1/igt@gem_exec_balancer@parallel-ordering.html
   [221]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-iclb6/igt@gem_exec_balancer@parallel-ordering.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-kbl:          [INCOMPLETE][222] ([i915#180]) -> [FAIL][223] ([i915#4767])
   [222]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl1/igt@kms_fbcon_fbt@fbc-suspend.html
   [223]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl7/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes:
    - shard-kbl:          [INCOMPLETE][224] ([i915#3614]) -> [DMESG-WARN][225] ([i915#180])
   [224]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl4/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html
   [225]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@kms_plane@plane-panning-bottom-right-suspend@pipe-a-planes.html

  * igt@runner@aborted:
    - shard-kbl:          ([FAIL][226], [FAIL][227], [FAIL][228], [FAIL][229], [FAIL][230], [FAIL][231], [FAIL][232], [FAIL][233], [FAIL][234], [FAIL][235], [FAIL][236], [FAIL][237], [FAIL][238], [FAIL][239]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#92]) -> ([FAIL][240], [FAIL][241], [FAIL][242], [FAIL][243], [FAIL][244], [FAIL][245], [FAIL][246], [FAIL][247], [FAIL][248], [FAIL][249], [FAIL][250], [FAIL][251], [FAIL][252], [FAIL][253], [FAIL][254], [FAIL][255]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#716])
   [226]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl1/igt@runner@aborted.html
   [227]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl1/igt@runner@aborted.html
   [228]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl4/igt@runner@aborted.html
   [229]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl1/igt@runner@aborted.html
   [230]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl1/igt@runner@aborted.html
   [231]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl1/igt@runner@aborted.html
   [232]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl3/igt@runner@aborted.html
   [233]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl1/igt@runner@aborted.html
   [234]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl1/igt@runner@aborted.html
   [235]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl7/igt@runner@aborted.html
   [236]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl6/igt@runner@aborted.html
   [237]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl6/igt@runner@aborted.html
   [238]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl7/igt@runner@aborted.html
   [239]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-kbl7/igt@runner@aborted.html
   [240]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@runner@aborted.html
   [241]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@runner@aborted.html
   [242]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@runner@aborted.html
   [243]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl1/igt@runner@aborted.html
   [244]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl4/igt@runner@aborted.html
   [245]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl4/igt@runner@aborted.html
   [246]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl4/igt@runner@aborted.html
   [247]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl1/igt@runner@aborted.html
   [248]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl4/igt@runner@aborted.html
   [249]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl7/igt@runner@aborted.html
   [250]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@runner@aborted.html
   [251]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl1/igt@runner@aborted.html
   [252]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl7/igt@runner@aborted.html
   [253]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl1/igt@runner@aborted.html
   [254]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@runner@aborted.html
   [255]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-kbl6/igt@runner@aborted.html
    - shard-apl:          ([FAIL][256], [FAIL][257], [FAIL][258], [FAIL][259], [FAIL][260], [FAIL][261], [FAIL][262]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][263], [FAIL][264], [FAIL][265], [FAIL][266], [FAIL][267], [FAIL][268], [FAIL][269], [FAIL][270]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312] / [i915#5257])
   [256]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl3/igt@runner@aborted.html
   [257]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl1/igt@runner@aborted.html
   [258]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl6/igt@runner@aborted.html
   [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl8/igt@runner@aborted.html
   [260]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl6/igt@runner@aborted.html
   [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl6/igt@runner@aborted.html
   [262]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11641/shard-apl6/igt@runner@aborted.html
   [263]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl7/igt@runner@aborted.html
   [264]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl3/igt@runner@aborted.html
   [265]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl1/igt@runner@aborted.html
   [266]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl3/igt@runner@aborted.html
   [267]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl8/igt@runner@aborted.html
   [268]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl1/igt@runner@aborted.html
   [269]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl6/igt@runner@aborted.html
   [270]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/shard-apl1/igt@runner@aborted.html

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

  [IGT#2]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/2
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109293]: https://bugs.freedesktop.org/show_bug.cgi?id=109293
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
  [fdo#110892]: https://bugs.freedesktop.org/show_bug.cgi?id=110892
  [fdo#111066]: https://bugs.freedesktop.org/show_bug.cgi?id=111066
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#1149]: https://gitlab.freedesktop.org/drm/intel/issues/1149
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1759]: https://gitlab.freedesktop.org/drm/intel/issues/1759
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1904]: https://gitlab.freedesktop.org/drm/intel/issues/1904
  [i915#1911]: https://gitlab.freedesktop.org/drm/intel/issues/1911
  [i915#2105]: https://gitlab.freedesktop.org/drm/intel/issues/2105
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2373]: https://gitlab.freedesktop.org/drm/intel/issues/2373
  [i915#2411]: https://gitlab.freedesktop.org/drm/intel/issues/2411
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
  [i915#3070]: https://gitlab.freedesktop.org/drm/intel/issues/3070
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3319]: https://gitlab.freedesktop.org/drm/intel/issues/3319
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3371]: https://gitlab.freedesktop.org/drm/intel/issues/3371
  [i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3614]: https://gitlab.freedesktop.org/drm/intel/issues/3614
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3701]: https://gitlab.freedesktop.org/drm/intel/issues/3701
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4171]: https://gitlab.freedesktop.org/drm/intel/issues/4171
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4765]: https://gitlab.freedesktop.org/drm/intel/issues/4765
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4877]: https://gitlab.freedesktop.org/drm/intel/issues/4877
  [i915#4911]: https://gitlab.freedesktop.org/drm/intel/issues/4911
  [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
  [i915#5030]: https://gitlab.freedesktop.org/drm/intel/issues/5030
  [i915#5076]: https://gitlab.freedesktop.org/drm/intel/issues/5076
  [i915#5090]: https://gitlab.freedesktop.org/drm/intel/issues/5090
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5614]: https://gitlab.freedesktop.org/drm/intel/issues/5614
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6471 -> IGTPW_7087
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_11641: b5cf8e9f83d104e9368888cdc48e307de77306d0 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7087: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7087/index.html
  IGT_6471: 1d6816f1200520f936a799b7b0ef2e6f396abb16 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t v3 1/4] drm/fourcc: Import drm_fourcc header from 9035039e1ed69
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 1/4] drm/fourcc: Import drm_fourcc header from 9035039e1ed69 Jeevan B
@ 2022-05-13  8:30   ` Petri Latvala
  0 siblings, 0 replies; 11+ messages in thread
From: Petri Latvala @ 2022-05-13  8:30 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev

On Thu, May 12, 2022 at 04:31:10PM +0530, Jeevan B wrote:
> commit 9035039e1ed691cd893777a42e048003a2f349d6
> Author: Mika Kahola <mika.kahola@intel.com>
> Date:   Mon Apr 11 17:34:04 2022 +0300
> 
>     drm/fourcc: Introduce format modifier for DG2 clear color
> 
> Signed-off-by: Jeevan B <jeevan.b@intel.com>


Matches what it claims,
Reviewed-by: Petri Latvala <petri.latvala@intel.com>


> ---
>  include/drm-uapi/drm_fourcc.h | 36 +++++++++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/include/drm-uapi/drm_fourcc.h b/include/drm-uapi/drm_fourcc.h
> index d8f7cad9..78bebdea 100644
> --- a/include/drm-uapi/drm_fourcc.h
> +++ b/include/drm-uapi/drm_fourcc.h
> @@ -583,6 +583,42 @@ extern "C" {
>   */
>  #define I915_FORMAT_MOD_4_TILED         fourcc_mod_code(INTEL, 9)
>  
> +/*
> + * Intel color control surfaces (CCS) for DG2 render compression.
> + *
> + * The main surface is Tile 4 and at plane index 0. The CCS data is stored
> + * outside of the GEM object in a reserved memory area dedicated for the
> + * storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
> + * main surface pitch is required to be a multiple of four Tile 4 widths.
> + */
> +#define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS fourcc_mod_code(INTEL, 10)
> +
> +/*
> + * Intel color control surfaces (CCS) for DG2 media compression.
> + *
> + * The main surface is Tile 4 and at plane index 0. For semi-planar formats
> + * like NV12, the Y and UV planes are Tile 4 and are located at plane indices
> + * 0 and 1, respectively. The CCS for all planes are stored outside of the
> + * GEM object in a reserved memory area dedicated for the storage of the
> + * CCS data for all RC/RC_CC/MC compressible GEM objects. The main surface
> + * pitch is required to be a multiple of four Tile 4 widths.
> + */
> +#define I915_FORMAT_MOD_4_TILED_DG2_MC_CCS fourcc_mod_code(INTEL, 11)
> +
> +/*
> + * Intel Color Control Surface with Clear Color (CCS) for DG2 render compression.
> + *
> + * The main surface is Tile 4 and at plane index 0. The CCS data is stored
> + * outside of the GEM object in a reserved memory area dedicated for the
> + * storage of the CCS data for all RC/RC_CC/MC compressible GEM objects. The
> + * main surface pitch is required to be a multiple of four Tile 4 widths. The
> + * clear color is stored at plane index 1 and the pitch should be ignored. The
> + * format of the 256 bits of clear color data matches the one used for the
> + * I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC modifier, see its description
> + * for details.
> + */
> +#define I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC fourcc_mod_code(INTEL, 12)
> +
>  /*
>   * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
>   *
> -- 
> 2.36.0
> 

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

* Re: [igt-dev] [PATCH i-g-t v3 2/4] lib/DG2: create flat ccs framebuffers with 4-tile
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 2/4] lib/DG2: create flat ccs framebuffers with 4-tile Jeevan B
@ 2022-05-13  8:51   ` Kahola, Mika
  0 siblings, 0 replies; 11+ messages in thread
From: Kahola, Mika @ 2022-05-13  8:51 UTC (permalink / raw)
  To: B, Jeevan, igt-dev; +Cc: Latvala, Petri, Heikkila, Juha-pekka

> -----Original Message-----
> From: B, Jeevan <jeevan.b@intel.com>
> Sent: Thursday, May 12, 2022 2:01 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Kahola, Mika <mika.kahola@intel.com>; Deak, Imre
> <imre.deak@intel.com>; Latvala, Petri <petri.latvala@intel.com>; Heikkila,
> Juha-pekka <juha-pekka.heikkila@intel.com>; B, Jeevan <jeevan.b@intel.com>
> Subject: [PATCH i-g-t v3 2/4] lib/DG2: create flat ccs framebuffers with 4-tile
> 
> From: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
> 
> Add support for DG2 flat ccs framebuffers with tile-4.
> 
> Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
> Signed-off-by: Jeevan B <jeevan.b@intel.com>

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

> ---
>  lib/gen9_render.h       |  38 +++++++++---
>  lib/igt_fb.c            |  51 ++++++++++++----
>  lib/intel_aux_pgtable.c |   6 +-
>  lib/intel_batchbuffer.c |   2 +-
>  lib/intel_bufops.c      | 118 ++++++++++++++++++++++++++++++++-----
>  lib/intel_chipset.h     |   3 +-
>  lib/rendercopy_gen9.c   | 125 +++++++++++++++++++++++++++-------------
>  lib/veboxcopy_gen12.c   | 109 ++++++++++++++++++++++++++---------
>  8 files changed, 347 insertions(+), 105 deletions(-)
> 
> diff --git a/lib/gen9_render.h b/lib/gen9_render.h index 06d9718c..af3a2b3a
> 100644
> --- a/lib/gen9_render.h
> +++ b/lib/gen9_render.h
> @@ -59,9 +59,15 @@ struct gen9_surface_state {
>  		uint32_t depth:11;
>  	} ss3;
> 
> -	struct {
> -		uint32_t minimum_array_element:27;
> -		uint32_t pad0:5;
> +	union {
> +		struct {
> +			uint32_t minimum_array_element:27;
> +			uint32_t pad0:5;
> +		} skl;
> +		struct {
> +			uint32_t decompress_in_l3:1;
> +			uint32_t pad0:31;
> +		} dg2;
>  	} ss4;
> 
>  	struct {
> @@ -116,6 +122,15 @@ struct gen9_surface_state {
>  			uint32_t media_compression:1;
>  			uint32_t pad2:1;
>  		} tgl;
> +
> +		struct {
> +			uint32_t pad0:14;
> +			uint32_t
> disable_support_for_multi_gpu_partial_writes:1;
> +			uint32_t disable_support_for_multi_gpu_atomics:1;
> +			uint32_t pad1:14;
> +			uint32_t memory_compression_enable:1;
> +			uint32_t memory_compression_type:1;
> +		} dg2;
>  	} ss7;
> 
>  	struct {
> @@ -138,15 +153,22 @@ struct gen9_surface_state {
>  		uint32_t aux_base_addr_hi;
>  	} ss11;
> 
> -	/* register can be used for either
> -	 * clear value or depth clear value
> -	 */
>  	struct {
> -		uint32_t clear_address;
> +		/*
> +		 * compression_format is used only dg2 onward.
> +		 * prior to dg2 full ss12 is used for the address
> +		 * but due to alignments bits 0..6 will be zero
> +		 * and asserted in code to be so
> +		 */
> +		uint32_t compression_format:5;
> +		uint32_t pad0:1;
> +		uint32_t clear_address:26;
>  	} ss12;
> 
>  	struct {
> -		uint32_t clear_address_hi;
> +		uint32_t clear_address_hi:16;
> +		uint32_t pad0:16;
> +
>  	} ss13;
> 
>  	struct {
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c index eafbe7fd..f3cb711e 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -457,6 +457,9 @@ void igt_get_fb_tile_size(int fd, uint64_t modifier, int
> fb_bpp,
>  	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
>  	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
>  	case I915_FORMAT_MOD_4_TILED:
> +	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS:
> +	case I915_FORMAT_MOD_4_TILED_DG2_MC_CCS:
> +	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC:
>  		igt_require_intel(fd);
>  		if (intel_display_ver(intel_get_drm_devid(fd)) == 2) {
>  			*width_ret = 128;
> @@ -565,14 +568,17 @@ void igt_get_fb_tile_size(int fd, uint64_t modifier, int
> fb_bpp,
> 
>  static bool is_gen12_mc_ccs_modifier(uint64_t modifier)  {
> -	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS;
> +	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS ||
> +		modifier == I915_FORMAT_MOD_4_TILED_DG2_MC_CCS;
>  }
> 
>  static bool is_gen12_ccs_modifier(uint64_t modifier)  {
>  	return is_gen12_mc_ccs_modifier(modifier) ||
>  		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_RC_CCS_CC
> ||
> +		modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS ||
> +		modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC;
>  }
> 
>  static bool is_ccs_modifier(uint64_t modifier) @@ -584,7 +590,7 @@ static
> bool is_ccs_modifier(uint64_t modifier)
> 
>  static bool is_ccs_plane(const struct igt_fb *fb, int plane)  {
> -	if (!is_ccs_modifier(fb->modifier))
> +	if (!is_ccs_modifier(fb->modifier) ||
> +HAS_FLATCCS(intel_get_drm_devid(fb->fd)))
>  		return false;
> 
>  	return plane >= fb->num_planes / 2;
> @@ -602,8 +608,15 @@ static bool is_gen12_ccs_plane(const struct igt_fb *fb,
> int plane)
> 
>  static bool is_gen12_ccs_cc_plane(const struct igt_fb *fb, int plane)  {
> -	return fb->modifier ==
> I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC &&
> -	       plane == 2;
> +	if (fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC
> &&
> +	    plane == 2)
> +		return true;
> +
> +	if (fb->modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC &&
> +	    plane == 1)
> +		return true;
> +
> +	return false;
>  }
> 
>  bool igt_fb_is_gen12_ccs_cc_plane(const struct igt_fb *fb, int plane) @@ -
> 686,10 +699,11 @@ static int fb_num_planes(const struct igt_fb *fb)  {
>  	int num_planes = lookup_drm_format(fb->drm_format)->num_planes;
> 
> -	if (is_ccs_modifier(fb->modifier))
> +	if (is_ccs_modifier(fb->modifier) &&
> +!HAS_FLATCCS(intel_get_drm_devid(fb->fd)))
>  		num_planes *= 2;
> 
> -	if (fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC)
> +	if (fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC
> ||
> +	    fb->modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC)
>  		num_planes++;
> 
>  	return num_planes;
> @@ -763,7 +777,7 @@ static uint32_t calc_plane_stride(struct igt_fb *fb, int
> plane)
>  		return ALIGN(min_stride, tile_width);
>  	} else if (is_gen12_ccs_cc_plane(fb, plane)) {
>  		/* clear color always fixed to 64 bytes */
> -		return 64;
> +		return HAS_FLATCCS(intel_get_drm_devid(fb->fd)) ? 512 : 64;
>  	} else if (is_gen12_ccs_plane(fb, plane)) {
>  		/*
>  		 * The CCS surface stride is
> @@ -966,6 +980,9 @@ uint64_t igt_fb_mod_to_tiling(uint64_t modifier)
>  	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
>  		return I915_TILING_Y;
>  	case I915_FORMAT_MOD_4_TILED:
> +	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS:
> +	case I915_FORMAT_MOD_4_TILED_DG2_MC_CCS:
> +	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC:
>  		return I915_TILING_4;
>  	case I915_FORMAT_MOD_Yf_TILED:
>  	case I915_FORMAT_MOD_Yf_TILED_CCS:
> @@ -2504,9 +2521,10 @@ igt_fb_create_intel_buf(int fd, struct buf_ops *bops,
>  	if (is_ccs_modifier(fb->modifier)) {
>  		igt_assert_eq(fb->strides[0] & 127, 0);
> 
> -		if (is_gen12_ccs_modifier(fb->modifier))
> -			igt_assert_eq(fb->strides[1] & 63, 0);
> -		else
> +		if (is_gen12_ccs_modifier(fb->modifier)) {
> +			if (!HAS_FLATCCS(intel_get_drm_devid(fb->fd)))
> +				igt_assert_eq(fb->strides[1] & 63, 0);
> +		} else
>  			igt_assert_eq(fb->strides[1] & 127, 0);
> 
>  		if (is_gen12_mc_ccs_modifier(fb->modifier))
> @@ -2539,7 +2557,7 @@ igt_fb_create_intel_buf(int fd, struct buf_ops *bops,
>  		buf->yuv_semiplanar_bpp = yuv_semiplanar_bpp(fb-
> >drm_format);
> 
>  	if (is_ccs_modifier(fb->modifier)) {
> -		num_surfaces = fb->num_planes / 2;
> +		num_surfaces = fb->num_planes /
> +(HAS_FLATCCS(intel_get_drm_devid(fb->fd)) ? 1 : 2);
>  		for (i = 0; i < num_surfaces; i++)
>  			init_buf_ccs(buf, i,
>  				     fb->offsets[num_surfaces + i], @@ -2560,6
> +2578,9 @@ igt_fb_create_intel_buf(int fd, struct buf_ops *bops,
>  	if (fb->modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC)
>  		buf->cc.offset = fb->offsets[2];
> 
> +	if (fb->modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC)
> +		buf->cc.offset = fb->offsets[1];
> +
>  	return buf;
>  }
> 
> @@ -4570,6 +4591,12 @@ const char *igt_fb_modifier_name(uint64_t
> modifier)
>  		return "Y-MC_CCS";
>  	case I915_FORMAT_MOD_4_TILED:
>  		return "4";
> +	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS:
> +		return "4-RC_CCS";
> +	case I915_FORMAT_MOD_4_TILED_DG2_MC_CCS:
> +		return "4-MC_CCS";
> +	case I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC:
> +		return "4-RC_CCS-CC";
>  	default:
>  		return "?";
>  	}
> diff --git a/lib/intel_aux_pgtable.c b/lib/intel_aux_pgtable.c index
> f5796fdf..e31a6c34 100644
> --- a/lib/intel_aux_pgtable.c
> +++ b/lib/intel_aux_pgtable.c
> @@ -263,7 +263,8 @@ static uint64_t pgt_get_l1_flags(const struct intel_buf
> *buf, int surface_idx)
>  	} entry = {
>  		.e = {
>  			.valid = 1,
> -			.tile_mode = buf->tiling == I915_TILING_Y ? 1 : 0,
> +			.tile_mode = buf->tiling == I915_TILING_Y ? 1 :
> +				(buf->tiling == I915_TILING_4 ? 2 : 0),
>  		}
>  	};
> 
> @@ -274,7 +275,8 @@ static uint64_t pgt_get_l1_flags(const struct intel_buf
> *buf, int surface_idx)
>  	 */
>  	igt_assert(buf->tiling == I915_TILING_Y ||
>  		   buf->tiling == I915_TILING_Yf ||
> -		   buf->tiling == I915_TILING_Ys);
> +		   buf->tiling == I915_TILING_Ys ||
> +		   buf->tiling == I915_TILING_4);
> 
>  	entry.e.ycr = surface_idx > 0;
> 
> diff --git a/lib/intel_batchbuffer.c b/lib/intel_batchbuffer.c index
> ebf3c598..81d2e140 100644
> --- a/lib/intel_batchbuffer.c
> +++ b/lib/intel_batchbuffer.c
> @@ -1146,7 +1146,7 @@ igt_render_copyfunc_t igt_get_render_copyfunc(int
> devid)
>  		copy = gen9_render_copyfunc;
>  	else if (IS_GEN11(devid))
>  		copy = gen11_render_copyfunc;
> -	else if (IS_DG2(devid))
> +	else if (HAS_4TILE(devid))
>  		copy = gen12p71_render_copyfunc;
>  	else if (IS_GEN12(devid))
>  		copy = gen12_render_copyfunc;
> diff --git a/lib/intel_bufops.c b/lib/intel_bufops.c index f13063fa..05c0b0d4
> 100644
> --- a/lib/intel_bufops.c
> +++ b/lib/intel_bufops.c
> @@ -89,6 +89,7 @@
>  #define TILE_Y      TILE_DEF(I915_TILING_Y)
>  #define TILE_Yf     TILE_DEF(I915_TILING_Yf)
>  #define TILE_Ys     TILE_DEF(I915_TILING_Ys)
> +#define TILE_4      TILE_DEF(I915_TILING_4)
> 
>  #define CCS_OFFSET(buf) (buf->ccs[0].offset)  #define CCS_SIZE(gen, buf) \ @@
> -105,16 +106,19 @@ struct buf_ops {
>  	uint32_t supported_hw_tiles;
>  	uint32_t swizzle_x;
>  	uint32_t swizzle_y;
> +	uint32_t swizzle_tile4;
>  	bo_copy linear_to;
>  	bo_copy linear_to_x;
>  	bo_copy linear_to_y;
>  	bo_copy linear_to_yf;
>  	bo_copy linear_to_ys;
> +	bo_copy linear_to_tile4;
>  	bo_copy to_linear;
>  	bo_copy x_to_linear;
>  	bo_copy y_to_linear;
>  	bo_copy yf_to_linear;
>  	bo_copy ys_to_linear;
> +	bo_copy tile4_to_linear;
>  };
> 
>  static const char *tiling_str(uint32_t tiling) @@ -125,6 +129,7 @@ static const
> char *tiling_str(uint32_t tiling)
>  	case I915_TILING_Y:    return "Y";
>  	case I915_TILING_Yf:   return "Yf";
>  	case I915_TILING_Ys:   return "Ys";
> +	case I915_TILING_4:    return "4";
>  	default:               return "UNKNOWN";
>  	}
>  }
> @@ -222,7 +227,8 @@ static void set_hw_tiled(struct buf_ops *bops, struct
> intel_buf *buf)  {
>  	uint32_t ret_tiling, ret_swizzle;
> 
> -	if (buf->tiling != I915_TILING_X && buf->tiling != I915_TILING_Y)
> +	if (buf->tiling != I915_TILING_X && buf->tiling != I915_TILING_Y &&
> +	    buf->tiling != I915_TILING_4)
>  		return;
> 
>  	if (!buf_ops_has_hw_fence(bops, buf->tiling)) { @@ -320,6 +326,50
> @@ static void *y_ptr(void *ptr,
>  	return ptr + pos;
>  }
> 
> +/*
> + * (x,y) to memory location in tiled-4 surface
> + *
> + * coverted those divisions and multiplications to shifts and masks
> + * in hope this wouldn't be so slow.
> + */
> +static void *tile4_ptr(void *ptr,
> +			unsigned int x, unsigned int y,
> +			unsigned int stride, unsigned int cpp) {
> +	const int tile_width = 128;
> +	const int tile_height = 32;
> +	const int subtile_size = 64;
> +	const int owords = 16;
> +	int base, _x, _y, subtile, tile_x, tile_y;
> +	int x_loc = x << __builtin_ctz(cpp);
> +	int pos;
> +
> +	/* Pixel in tile via masks */
> +	tile_x = x_loc & (tile_width - 1);
> +	tile_y = y & (tile_height - 1);
> +
> +	/* subtile in 4k tile */
> +	_x = tile_x >> __builtin_ctz(owords);
> +	_y = tile_y >> 2;
> +
> +	/* tile-4 swizzle */
> +	subtile = ((_y >> 1) << 4) + ((_y & 1) << 2) + (_x & 3) + ((_x & 4) <<
> +1);
> +
> +	/* memory location */
> +	base = (y >> __builtin_ctz(tile_height)) *
> +		(stride << __builtin_ctz(tile_height)) +
> +		(((x_loc >> __builtin_ctz(tile_width)) << __builtin_ctz(4096)));
> +
> +	pos = base + (subtile << __builtin_ctz(subtile_size)) +
> +		((tile_y & 3) << __builtin_ctz(owords)) +
> +		(tile_x & (owords - 1));
> +	igt_assert((pos & (cpp - 1)) == 0);
> +	pos = pos >> __builtin_ctz(cpp);
> +
> +	return ptr + pos;
> +}
> +
> +
>  static void *yf_ptr(void *ptr,
>  		    unsigned int x, unsigned int y,
>  		    unsigned int stride, unsigned int cpp) @@ -365,6 +415,8 @@
> static tile_fn __get_tile_fn_ptr(int tiling)
>  	case I915_TILING_Yf:
>  		fn = yf_ptr;
>  		break;
> +	case I915_TILING_4:
> +		fn = tile4_ptr;
>  	case I915_TILING_Ys:
>  		/* To be implemented */
>  		break;
> @@ -391,7 +443,7 @@ static void __copy_ccs(struct buf_ops *bops, struct
> intel_buf *buf,
>  	void *map;
>  	int gen;
> 
> -	if (!buf->compression)
> +	if (!buf->compression || HAS_FLATCCS(intel_get_drm_devid(bops->fd)))
>  		return;
> 
>  	gen = bops->intel_gen;
> @@ -551,6 +603,13 @@ static void copy_linear_to_ys(struct buf_ops *bops,
> struct intel_buf *buf,
>  	__copy_linear_to(bops->fd, buf, linear, I915_TILING_Ys, 0);  }
> 
> +static void copy_linear_to_tile4(struct buf_ops *bops, struct intel_buf *buf,
> +				 uint32_t *linear)
> +{
> +	DEBUGFN();
> +	__copy_linear_to(bops->fd, buf, linear, I915_TILING_4,
> +bops->swizzle_tile4); }
> +
>  static void __copy_to_linear(int fd, struct intel_buf *buf,
>  			     uint32_t *linear, int tiling, uint32_t swizzle)  { @@ -
> 601,6 +660,13 @@ static void copy_ys_to_linear(struct buf_ops *bops, struct
> intel_buf *buf,
>  	__copy_to_linear(bops->fd, buf, linear, I915_TILING_Ys, 0);  }
> 
> +static void copy_tile4_to_linear(struct buf_ops *bops, struct intel_buf *buf,
> +				 uint32_t *linear)
> +{
> +	DEBUGFN();
> +	__copy_to_linear(bops->fd, buf, linear, I915_TILING_4, 0); }
> +
>  static void copy_linear_to_gtt(struct buf_ops *bops, struct intel_buf *buf,
>  			       uint32_t *linear)
>  {
> @@ -752,11 +818,10 @@ static void __intel_buf_init(struct buf_ops *bops,
>  	IGT_INIT_LIST_HEAD(&buf->link);
> 
>  	if (compression) {
> -		int aux_width, aux_height;
> -
>  		igt_require(bops->intel_gen >= 9);
>  		igt_assert(req_tiling == I915_TILING_Y ||
> -			   req_tiling == I915_TILING_Yf);
> +			   req_tiling == I915_TILING_Yf ||
> +			   req_tiling == I915_TILING_4);
>  		/*
>  		 * On GEN12+ we align the main surface to 4 * 4 main surface
>  		 * tiles, which is 64kB. These 16 tiles are mapped by 4 AUX @@ -
> 778,13 +843,18 @@ static void __intel_buf_init(struct buf_ops *bops,
>  		buf->bpp = bpp;
>  		buf->compression = compression;
> 
> -		aux_width = intel_buf_ccs_width(bops->intel_gen, buf);
> -		aux_height = intel_buf_ccs_height(bops->intel_gen, buf);
> +		if (!HAS_FLATCCS(intel_get_drm_devid(bops->fd))) {
> +			int aux_width, aux_height;
> 
> -		buf->ccs[0].offset = buf->surface[0].stride * ALIGN(height, 32);
> -		buf->ccs[0].stride = aux_width;
> +			aux_width = intel_buf_ccs_width(bops->intel_gen, buf);
> +			aux_height = intel_buf_ccs_height(bops->intel_gen,
> buf);
> 
> -		size = buf->ccs[0].offset + aux_width * aux_height;
> +			buf->ccs[0].offset = buf->surface[0].stride *
> ALIGN(height, 32);
> +			buf->ccs[0].stride = aux_width;
> +			size = buf->ccs[0].offset + aux_width * aux_height;
> +		} else {
> +			size = buf->ccs[0].offset;
> +		}
>  	} else {
>  		if (tiling) {
>  			devid =  intel_get_drm_devid(bops->fd); @@ -1176,17
> +1246,19 @@ void intel_buf_write_aux_to_png(struct intel_buf *buf, const
> char *filename)  #define DEFAULT_BUFOPS(__gen_start, __gen_end) \
>  	.gen_start          = __gen_start, \
>  	.gen_end            = __gen_end, \
> -	.supported_hw_tiles = TILE_X | TILE_Y, \
> +	.supported_hw_tiles = TILE_X | TILE_Y | TILE_4, \
>  	.linear_to          = copy_linear_to_wc, \
>  	.linear_to_x        = copy_linear_to_gtt, \
>  	.linear_to_y        = copy_linear_to_gtt, \
>  	.linear_to_yf       = copy_linear_to_yf, \
>  	.linear_to_ys       = copy_linear_to_ys, \
> +	.linear_to_tile4    = copy_linear_to_tile4, \
>  	.to_linear          = copy_wc_to_linear, \
>  	.x_to_linear        = copy_gtt_to_linear, \
>  	.y_to_linear        = copy_gtt_to_linear, \
>  	.yf_to_linear       = copy_yf_to_linear, \
> -	.ys_to_linear       = copy_ys_to_linear
> +	.ys_to_linear       = copy_ys_to_linear, \
> +	.tile4_to_linear    = copy_tile4_to_linear
> 
>  struct buf_ops buf_ops_arr[] = {
>  	{
> @@ -1201,7 +1273,7 @@ struct buf_ops buf_ops_arr[] = {
> 
>  	{
>  		DEFAULT_BUFOPS(12, 12),
> -		.supported_tiles   = TILE_NONE | TILE_X | TILE_Y | TILE_Yf |
> TILE_Ys,
> +		.supported_tiles   = TILE_NONE | TILE_X | TILE_Y | TILE_Yf |
> TILE_Ys | TILE_4,
>  	},
>  };
> 
> @@ -1230,6 +1302,8 @@ static bool probe_hw_tiling(struct buf_ops *bops,
> uint32_t tiling,
>  			bops->swizzle_x = buf_swizzle;
>  		else if (tiling == I915_TILING_Y)
>  			bops->swizzle_y = buf_swizzle;
> +		else if (tiling == I915_TILING_4)
> +			bops->swizzle_tile4 = buf_swizzle;
> 
>  		*swizzling_supported = buf_swizzle == phys_swizzle;
>  	}
> @@ -1390,6 +1464,24 @@ static struct buf_ops *__buf_ops_create(int fd, bool
> check_idempotency)
>  		}
>  	}
> 
> +	if (is_hw_tiling_supported(bops, I915_TILING_4)) {
> +		bool swizzling_supported;
> +		bool supported = probe_hw_tiling(bops, I915_TILING_4,
> +						 &swizzling_supported);
> +
> +		if (!swizzling_supported) {
> +			igt_debug("Swizzling for 4 is not supported\n");
> +			bops->supported_tiles &= ~TILE_4;
> +		}
> +
> +		igt_debug("4 fence support: %s\n", bool_str(supported));
> +		if (!supported) {
> +			bops->supported_hw_tiles &= ~TILE_4;
> +			bops->linear_to_tile4 = copy_linear_to_tile4;
> +			bops->tile4_to_linear = copy_tile4_to_linear;
> +		}
> +	}
> +
>  	/* Disable other tiling format functions if not supported */
>  	if (!is_tiling_supported(bops, I915_TILING_Yf)) {
>  		igt_debug("Yf format not supported\n"); diff --git
> a/lib/intel_chipset.h b/lib/intel_chipset.h index db75a829..4d9f4623 100644
> --- a/lib/intel_chipset.h
> +++ b/lib/intel_chipset.h
> @@ -219,6 +219,7 @@ void intel_check_pch(void);
> 
>  #define HAS_4TILE(devid)	(intel_get_device_info(devid)->has_4tile)
> 
> -#define HAS_FLATCCS(devid)	(intel_get_device_info(devid)->has_flatccs)
> +/* use HAS_4TILE here as all devices with 4-tile have flat ccs. */
> +#define HAS_FLATCCS(devid)	HAS_4TILE(devid)
> 
>  #endif /* _INTEL_CHIPSET_H */
> diff --git a/lib/rendercopy_gen9.c b/lib/rendercopy_gen9.c index
> 6c45efb4..ae0f775a 100644
> --- a/lib/rendercopy_gen9.c
> +++ b/lib/rendercopy_gen9.c
> @@ -165,7 +165,8 @@ intel_get_uc_mocs(int fd) {
> 
>  /* Mostly copy+paste from gen6, except height, width, pitch moved */  static
> uint32_t -gen8_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int
> is_dst) {
> +gen8_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int is_dst,
> +	      bool fast_clear) {
>  	struct gen9_surface_state *ss;
>  	uint32_t write_domain, read_domain;
>  	uint64_t address;
> @@ -192,15 +193,26 @@ gen8_bind_buf(struct intel_bb *ibb, const struct
> intel_buf *buf, int is_dst) {
>  		case 64: ss->ss0.surface_format =
> SURFACEFORMAT_R16G16B16A16_FLOAT; break;
>  		default: igt_assert(0);
>  	}
> -	ss->ss0.render_cache_read_write = 1;
>  	ss->ss0.vertical_alignment = 1; /* align 4 */
> -	ss->ss0.horizontal_alignment = 1; /* align 4 */
> +	ss->ss0.horizontal_alignment = 1; /* align 4 or HALIGN_32 on display
> +ver >= 13*/
> +
> +	if (HAS_4TILE(ibb->devid)) {
> +		/*
> +		 * mocs table version 1 index 3 groub wb use l3
> +		 */
> +		ss->ss1.memory_object_control = 3 << 1;
> +		ss->ss5.mip_tail_start_lod = 0;
> +	} else {
> +		ss->ss0.render_cache_read_write = 1;
> +		ss->ss1.memory_object_control = intel_get_uc_mocs(i915);
> +		ss->ss5.mip_tail_start_lod = 1; /* needed with trmode */
> +	}
> +
>  	if (buf->tiling == I915_TILING_X)
>  		ss->ss0.tiled_mode = 2;
>  	else if (buf->tiling != I915_TILING_NONE)
>  		ss->ss0.tiled_mode = 3;
> 
> -	ss->ss1.memory_object_control = intel_get_uc_mocs(i915);
>  	if (intel_buf_pxp(buf))
>  		ss->ss1.memory_object_control |= 1;
> 
> @@ -208,7 +220,6 @@ gen8_bind_buf(struct intel_bb *ibb, const struct
> intel_buf *buf, int is_dst) {
>  		ss->ss5.trmode = 1;
>  	else if (buf->tiling == I915_TILING_Ys)
>  		ss->ss5.trmode = 2;
> -	ss->ss5.mip_tail_start_lod = 1; /* needed with trmode */
> 
>  	address = intel_bb_offset_reloc(ibb, buf->handle,
>  					read_domain, write_domain,
> @@ -229,20 +240,23 @@ gen8_bind_buf(struct intel_bb *ibb, const struct
> intel_buf *buf, int is_dst) {
>  	if (buf->compression == I915_COMPRESSION_MEDIA)
>  		ss->ss7.tgl.media_compression = 1;
>  	else if (buf->compression == I915_COMPRESSION_RENDER) {
> -		igt_assert(buf->ccs[0].stride);
> -
>  		ss->ss6.aux_mode = 0x5; /* AUX_CCS_E */
> -		ss->ss6.aux_pitch = (buf->ccs[0].stride / 128) - 1;
> 
> -		address = intel_bb_offset_reloc_with_delta(ibb, buf->handle,
> -							   read_domain,
> write_domain,
> -							   (buf->cc.offset ? (1
> << 10) : 0) | buf->ccs[0].offset,
> -							   intel_bb_offset(ibb)
> + 4 * 10,
> -							   buf->addr.offset);
> -		ss->ss10.aux_base_addr = (address + buf->ccs[0].offset) >> 12;
> -		ss->ss11.aux_base_addr_hi = (address + buf->ccs[0].offset) >>
> 32;
> +		if (buf->ccs[0].stride) {
> +
> +			ss->ss6.aux_pitch = (buf->ccs[0].stride / 128) - 1;
> +
> +			address = intel_bb_offset_reloc_with_delta(ibb, buf-
> >handle,
> +
> read_domain, write_domain,
> +								   (buf-
> >cc.offset ? (1 << 10) : 0)
> +								   | buf-
> >ccs[0].offset,
> +
> intel_bb_offset(ibb) + 4 * 10,
> +								   buf-
> >addr.offset);
> +			ss->ss10.aux_base_addr = (address + buf-
> >ccs[0].offset) >> 12;
> +			ss->ss11.aux_base_addr_hi = (address + buf-
> >ccs[0].offset) >> 32;
> +		}
> 
> -		if (buf->cc.offset) {
> +		if (fast_clear || (buf->cc.offset && !HAS_FLATCCS(ibb->devid)))
> {
>  			igt_assert(buf->compression ==
> I915_COMPRESSION_RENDER);
> 
>  			ss->ss10.clearvalue_addr_enable = 1; @@ -252,8
> +266,30 @@ gen8_bind_buf(struct intel_bb *ibb, const struct intel_buf *buf, int
> is_dst) {
>  								   buf-
> >cc.offset,
> 
> intel_bb_offset(ibb) + 4 * 12,
>  								   buf-
> >addr.offset);
> -			ss->ss12.clear_address = address + buf->cc.offset;
> +
> +			/*
> +			 * If this assert doesn't hold below clear address will be
> +			 * written wrong.
> +			 */
> +
> +			igt_assert(__builtin_ctzl(address + buf->cc.offset) >= 6
> &&
> +				   (__builtin_clzl(address + buf->cc.offset) >=
> 16));
> +
> +			ss->ss12.clear_address = (address + buf->cc.offset) >>
> 6;
>  			ss->ss13.clear_address_hi = (address + buf->cc.offset)
> >> 32;
> +		} else if (HAS_FLATCCS(ibb->devid)) {
> +			ss->ss7.dg2.memory_compression_type = 0;
> +			ss->ss7.dg2.memory_compression_enable = 0;
> +			ss-
> >ss7.dg2.disable_support_for_multi_gpu_partial_writes = 1;
> +			ss->ss7.dg2.disable_support_for_multi_gpu_atomics =
> 1;
> +
> +			/*
> +			 * For now here is coming only 32bpp rgb format
> +			 * which is marked below as B8G8R8X8_UNORM = '8'
> +			 * If here ever arrive other formats below need to be
> +			 * fixed to take that into account.
> +			 */
> +			ss->ss12.compression_format = 8;
>  		}
>  	}
> 
> @@ -266,14 +302,15 @@ gen8_bind_surfaces(struct intel_bb *ibb,
>  		   const struct intel_buf *dst)
>  {
>  	uint32_t *binding_table, binding_table_offset;
> +	bool fast_clear = !src;
> 
>  	binding_table = intel_bb_ptr_align(ibb, 32);
>  	binding_table_offset = intel_bb_ptr_add_return_prev_offset(ibb, 32);
> 
> -	binding_table[0] = gen8_bind_buf(ibb, dst, 1);
> +	binding_table[0] = gen8_bind_buf(ibb, dst, 1, fast_clear);
> 
>  	if (src != NULL)
> -		binding_table[1] = gen8_bind_buf(ibb, src, 0);
> +		binding_table[1] = gen8_bind_buf(ibb, src, 0, false);
> 
>  	return binding_table_offset;
>  }
> @@ -856,12 +893,14 @@ gen8_emit_ps(struct intel_bb *ibb, uint32_t kernel,
> bool fast_clear) {  static void  gen9_emit_depth(struct intel_bb *ibb)  {
> +	bool need_10dw = HAS_4TILE(ibb->devid);
> +
>  	intel_bb_out(ibb, GEN8_3DSTATE_WM_DEPTH_STENCIL | (4 - 2));
>  	intel_bb_out(ibb, 0);
>  	intel_bb_out(ibb, 0);
>  	intel_bb_out(ibb, 0);
> 
> -	intel_bb_out(ibb, GEN7_3DSTATE_DEPTH_BUFFER | (8-2));
> +	intel_bb_out(ibb, GEN7_3DSTATE_DEPTH_BUFFER | (need_10dw ? (10-
> 2) :
> +(8-2)));
>  	intel_bb_out(ibb, 0);
>  	intel_bb_out(ibb, 0);
>  	intel_bb_out(ibb, 0);
> @@ -869,6 +908,10 @@ gen9_emit_depth(struct intel_bb *ibb)
>  	intel_bb_out(ibb, 0);
>  	intel_bb_out(ibb, 0);
>  	intel_bb_out(ibb, 0);
> +	if (need_10dw) {
> +		intel_bb_out(ibb, 0);
> +		intel_bb_out(ibb, 0);
> +	}
> 
>  	intel_bb_out(ibb, GEN8_3DSTATE_HIER_DEPTH_BUFFER | (5-2));
>  	intel_bb_out(ibb, 0);
> @@ -1080,7 +1123,7 @@ void _gen9_render_op(struct intel_bb *ibb,
> 
>  	gen9_emit_state_base_address(ibb);
> 
> -	if (IS_DG2(ibb->devid) || intel_gen(ibb->devid) > 12) {
> +	if (HAS_4TILE(ibb->devid) || intel_gen(ibb->devid) > 12) {
>  		intel_bb_out(ibb,
> GEN4_3DSTATE_BINDING_TABLE_POOL_ALLOC | 2);
>  		intel_bb_emit_reloc(ibb, ibb->handle,
>  				    I915_GEM_DOMAIN_RENDER |
> I915_GEM_DOMAIN_INSTRUCTION, 0, @@ -1197,18 +1240,12 @@ void
> gen12p71_render_copyfunc(struct intel_bb *ibb,
>  			      struct intel_buf *dst,
>  			      unsigned int dst_x, unsigned int dst_y)  {
> -	struct aux_pgtable_info pgtable_info = { };
> -
> -	gen12_aux_pgtable_init(&pgtable_info, ibb, src, dst);
> -
>  	_gen9_render_op(ibb, src, src_x, src_y,
>  			width, height, dst, dst_x, dst_y,
> -			pgtable_info.pgtable_buf,
> +			NULL,
>  			NULL,
>  			gen12p71_render_copy,
>  			sizeof(gen12p71_render_copy));
> -
> -	gen12_aux_pgtable_cleanup(ibb, &pgtable_info);
>  }
> 
>  void gen12_render_clearfunc(struct intel_bb *ibb, @@ -1217,16 +1254,24 @@
> void gen12_render_clearfunc(struct intel_bb *ibb,
>  			    unsigned int width, unsigned int height,
>  			    const float clear_color[4])
>  {
> -	struct aux_pgtable_info pgtable_info = { };
> -
> -	gen12_aux_pgtable_init(&pgtable_info, ibb, NULL, dst);
> -
> -	_gen9_render_op(ibb, NULL, 0, 0,
> -		        width, height, dst, dst_x, dst_y,
> -		        pgtable_info.pgtable_buf,
> -		        clear_color,
> -		        gen12_render_copy,
> -		        sizeof(gen12_render_copy));
> -
> -	gen12_aux_pgtable_cleanup(ibb, &pgtable_info);
> +	if (!HAS_4TILE(ibb->devid)) {
> +		struct aux_pgtable_info pgtable_info = { };
> +
> +		gen12_aux_pgtable_init(&pgtable_info, ibb, NULL, dst);
> +
> +		_gen9_render_op(ibb, NULL, 0, 0,
> +				width, height, dst, dst_x, dst_y,
> +				pgtable_info.pgtable_buf,
> +				clear_color,
> +				gen12_render_copy,
> +				sizeof(gen12_render_copy));
> +		gen12_aux_pgtable_cleanup(ibb, &pgtable_info);
> +	} else {
> +			_gen9_render_op(ibb, NULL, 0, 0,
> +					width, height, dst, dst_x, dst_y,
> +					NULL,
> +					clear_color,
> +					gen12p71_render_copy,
> +					sizeof(gen12p71_render_copy));
> +	}
>  }
> diff --git a/lib/veboxcopy_gen12.c b/lib/veboxcopy_gen12.c index
> 17564493..aa90939b 100644
> --- a/lib/veboxcopy_gen12.c
> +++ b/lib/veboxcopy_gen12.c
> @@ -53,19 +53,25 @@ struct vebox_surface_state {
>  		uint32_t width:14;
>  		uint32_t height:14;
>  	} ss2;
> -	struct {
> +	union {
> +		struct {
>  #define VEBOX_TILE_WALK_XMAJOR 0
>  #define VEBOX_TILE_WALK_YMAJOR 1
> -		uint32_t tile_walk:1;
> -		uint32_t tiled_surface:1;
> -		uint32_t chroma_half_pitch:1;
> -		uint32_t surface_pitch:17;
> -		uint32_t chroma_interleave:1;
> -		uint32_t lsb_packed_enable:1;
> -		uint32_t bayer_input_alignment:2;
> -		uint32_t bayer_pattern_format:1;
> -		uint32_t bayer_pattern_offset:2;
> -		uint32_t surface_format:5;
> +			uint32_t tile_walk:1;
> +			uint32_t tiled_surface:1;
> +			uint32_t chroma_half_pitch:1;
> +			uint32_t surface_pitch:17;
> +			uint32_t chroma_interleave:1;
> +			uint32_t lsb_packed_enable:1;
> +			uint32_t bayer_input_alignment:2;
> +			uint32_t bayer_pattern_format:1;
> +			uint32_t bayer_pattern_offset:2;
> +			uint32_t surface_format:5;
> +		} tgl;
> +		struct {
> +			uint32_t tile_mode:2;
> +			uint32_t pad0:30;
> +		} dg2;
>  	} ss3;
>  	struct {
>  		uint32_t u_y_offset:15;
> @@ -82,9 +88,15 @@ struct vebox_surface_state {
>  		uint32_t frame_x_offset:15;
>  		uint32_t pad:2;
>  	} ss6;
> -	struct {
> -		uint32_t derived_surface_pitch:17;
> -		uint32_t pad:15;
> +	union {
> +		struct {
> +			uint32_t derived_surface_pitch:17;
> +			uint32_t pad:15;
> +		} skl;
> +		struct {
> +			uint32_t pad:27;
> +			uint32_t compression_format:5;
> +		} dg2;
>  	} ss7;
>  	struct {
>  		uint32_t skin_score_output_surface_pitch:17;
> @@ -166,17 +178,46 @@ static void emit_surface_state_cmd(struct intel_bb
> *ibb,
>  	ss->ss2.height = height - 1;
>  	ss->ss2.width = width - 1;
> 
> -	ss->ss3.surface_format = format;
> +	ss->ss3.tgl.surface_format = format;
>  	if (format_is_interleaved_yuv(format))
> -		ss->ss3.chroma_interleave = 1;
> -	ss->ss3.surface_pitch = pitch - 1;
> -	ss->ss3.tile_walk = (tiling == I915_TILING_Y) ||
> -			    (tiling == I915_TILING_Yf);
> -	ss->ss3.tiled_surface = tiling != I915_TILING_NONE;
> +		ss->ss3.tgl.chroma_interleave = 1;
> +	ss->ss3.tgl.surface_pitch = pitch - 1;
> 
>  	ss->ss4.u_y_offset = uv_offset / pitch;
> 
> -	ss->ss7.derived_surface_pitch = pitch - 1;
> +	if (HAS_FLATCCS(ibb->devid)) {
> +		/*
> +		 * f-tile = 3 (Tile F)
> +		 */
> +		ss->ss3.dg2.tile_mode = (tiling != I915_TILING_NONE) ? 3 : 0;
> +
> +		switch (format) {
> +		case R8G8B8A8_UNORM:
> +			ss->ss7.dg2.compression_format = 0xa;
> +			break;
> +		case PLANAR_420_8:
> +			ss->ss7.dg2.compression_format = 0xf;
> +			break;
> +		case PLANAR_420_16:
> +			ss->ss7.dg2.compression_format = 8;
> +			break;
> +		case YCRCB_NORMAL:
> +			ss->ss7.dg2.compression_format = 3;
> +			break;
> +		case PACKED_444A_8:
> +			ss->ss7.dg2.compression_format = 0x9;
> +			break;
> +		default:
> +			igt_assert(0);
> +		}
> +	} else {
> +		ss->ss3.tgl.tile_walk = (tiling == I915_TILING_Y) ||
> +			(tiling == I915_TILING_Yf) ||
> +			(tiling == I915_TILING_4);
> +		ss->ss3.tgl.tiled_surface = tiling != I915_TILING_NONE;
> +	}
> +
> +	ss->ss7.skl.derived_surface_pitch = pitch - 1;
> 
>  	intel_bb_ptr_add(ibb, sizeof(*ss));
>  }
> @@ -203,7 +244,11 @@ static void emit_tiling_convert_cmd(struct intel_bb
> *ibb,
>  		tc->tc1_2.input_compression_type =
>  			src->compression == I915_COMPRESSION_RENDER;
>  	}
> -	tc->tc1_2.input_tiled_resource_mode = src->tiling == I915_TILING_Yf;
> +
> +	if (HAS_4TILE(ibb->devid))
> +		tc->tc1_2.input_mocs_idx = 3;
> +	else
> +		tc->tc1_2.input_tiled_resource_mode = src->tiling ==
> I915_TILING_Yf;
>  	reloc_delta = tc->tc1_2_l;
> 
>  	igt_assert(src->addr.offset == ALIGN(src->addr.offset, 0x1000)); @@ -
> 220,7 +265,12 @@ static void emit_tiling_convert_cmd(struct intel_bb *ibb,
>  		tc->tc3_4.output_compression_type =
>  			dst->compression == I915_COMPRESSION_RENDER;
>  	}
> -	tc->tc3_4.output_tiled_resource_mode = dst->tiling == I915_TILING_Yf;
> +
> +	if (HAS_4TILE(ibb->devid))
> +		tc->tc3_4.output_mocs_idx = 3;
> +	else
> +		tc->tc3_4.output_tiled_resource_mode = dst->tiling ==
> I915_TILING_Yf;
> +
>  	reloc_delta = tc->tc3_4_l;
> 
>  	igt_assert(dst->addr.offset == ALIGN(dst->addr.offset, 0x1000)); @@ -
> 255,10 +305,12 @@ void gen12_vebox_copyfunc(struct intel_bb *ibb,
>  	intel_bb_add_intel_buf(ibb, dst, true);
>  	intel_bb_add_intel_buf(ibb, src, false);
> 
> -	intel_bb_ptr_set(ibb, BATCH_STATE_SPLIT);
> -	gen12_aux_pgtable_init(&aux_pgtable_info, ibb, src, dst);
> -	aux_pgtable_state = gen12_create_aux_pgtable_state(ibb,
> -
> aux_pgtable_info.pgtable_buf);
> +	if (!HAS_FLATCCS(ibb->devid)) {
> +		intel_bb_ptr_set(ibb, BATCH_STATE_SPLIT);
> +		gen12_aux_pgtable_init(&aux_pgtable_info, ibb, src, dst);
> +		aux_pgtable_state = gen12_create_aux_pgtable_state(ibb,
> +
> aux_pgtable_info.pgtable_buf);
> +	}
> 
>  	intel_bb_ptr_set(ibb, 0);
>  	gen12_emit_aux_pgtable_state(ibb, aux_pgtable_state, false); @@ -
> 311,5 +363,6 @@ void gen12_vebox_copyfunc(struct intel_bb *ibb,
> 
>  	intel_bb_reset(ibb, false);
> 
> -	gen12_aux_pgtable_cleanup(ibb, &aux_pgtable_info);
> +	if (!HAS_FLATCCS(ibb->devid))
> +		gen12_aux_pgtable_cleanup(ibb, &aux_pgtable_info);
>  }
> --
> 2.36.0


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

* Re: [igt-dev] [PATCH i-g-t v3 3/4] tests/kms_ccs: Add dg2 tiled-4 ccs modifiers
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 3/4] tests/kms_ccs: Add dg2 tiled-4 ccs modifiers Jeevan B
@ 2022-05-13  8:58   ` Kahola, Mika
  0 siblings, 0 replies; 11+ messages in thread
From: Kahola, Mika @ 2022-05-13  8:58 UTC (permalink / raw)
  To: B, Jeevan, igt-dev; +Cc: Latvala, Petri, Heikkila, Juha-pekka

> -----Original Message-----
> From: B, Jeevan <jeevan.b@intel.com>
> Sent: Thursday, May 12, 2022 2:01 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Kahola, Mika <mika.kahola@intel.com>; Deak, Imre
> <imre.deak@intel.com>; Latvala, Petri <petri.latvala@intel.com>; Heikkila,
> Juha-pekka <juha-pekka.heikkila@intel.com>; B, Jeevan <jeevan.b@intel.com>
> Subject: [PATCH i-g-t v3 3/4] tests/kms_ccs: Add dg2 tiled-4 ccs modifiers
> 
> From: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
> 
> I915_FORMAT_MOD_4_TILED_DG2_RC_CCS
> I915_FORMAT_MOD_4_TILED_DG2_MC_CCS
> I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC
> 
> modifier added for testing and prevent impossible ccs test from flat ccs, fb
> generation for FB_HAS_PLANE will use linear modifier instead if Y-modifier as its
> no longer supported for latest platform.
> 
> v2: Modified commit message. (Petri)
> 
> Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
> Signed-off-by: Jeevan B <jeevan.b@intel.com>

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

> ---
>  tests/i915/kms_ccs.c | 62 +++++++++++++++++++++++++++-----------------
>  1 file changed, 38 insertions(+), 24 deletions(-)
> 
> diff --git a/tests/i915/kms_ccs.c b/tests/i915/kms_ccs.c index
> 716be5b6..39bf6d58 100644
> --- a/tests/i915/kms_ccs.c
> +++ b/tests/i915/kms_ccs.c
> @@ -98,10 +98,29 @@ static const struct {
>  	{I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> "y_tiled_gen12_rc_ccs"},
>  	{I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC,
> "y_tiled_gen12_rc_ccs_cc"},
>  	{I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS,
> "y_tiled_gen12_mc_ccs"},
> +	{I915_FORMAT_MOD_4_TILED_DG2_RC_CCS, "4_tiled_dg2_rc_ccs"},
> +	{I915_FORMAT_MOD_4_TILED_DG2_MC_CCS, "4_tiled_dg2_mc_ccs"},
> +	{I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC,
> "4_tiled_dg2_rc_ccs_cc"},
>  };
> 
>  static bool check_ccs_planes;
> 
> +static const struct {
> +	const enum test_flags	flags;
> +	const char		*testname;
> +	const char		*description;
> +} tests[] = {
> +	{TEST_BAD_PIXEL_FORMAT, "bad-pixel-format", "Test bad pixel format
> with given CCS modifier"},
> +	{TEST_BAD_ROTATION_90, "bad-rotation-90", "Test 90 degree rotation
> with given CCS modifier"},
> +	{TEST_CRC, "crc-primary-basic", "Test primary plane CRC compatibility
> with given CCS modifier"},
> +	{TEST_CRC | TEST_ROTATE_180, "crc-primary-rotation-180", "Test 180
> degree rotation with given CCS modifier"},
> +	{TEST_RANDOM, "random-ccs-data", "Test random CCS data"},
> +	{TEST_NO_AUX_BUFFER, "missing-ccs-buffer", "Test missing CCS buffer
> with given CCS modifier"},
> +	{TEST_BAD_CCS_HANDLE, "ccs-on-another-bo", "Test CCS with
> different BO with given modifier"},
> +	{TEST_BAD_AUX_STRIDE, "bad-aux-stride", "Test with bad AUX stride
> with given CCS modifier"},
> +	{TEST_CRC | TEST_ALL_PLANES, "crc-sprite-planes-basic", "Test sprite
> +plane CRC compatibility with given CCS modifier"}, };
> +
>  /*
>   * Limit maximum used sprite plane width so this test will not mistakenly
>   * fail on hardware limitations which are not interesting to this test.
> @@ -141,7 +160,8 @@ create_fb_prepare_add(int drm_fd, int width, int height,
> 
>  static bool is_ccs_cc_modifier(uint64_t modifier)  {
> -	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC;
> +	return modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC
> ||
> +		modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS;
>  }
> 
>  /*
> @@ -256,12 +276,14 @@ static void test_bad_ccs_plane(data_t *data, int
> width, int height, int ccs_plan
>  	 * an incorrect stride with the same delta as on earlier platforms.
>  	 */
>  	if (fb_flags & FB_MISALIGN_AUX_STRIDE) {
> +		igt_skip_on_f(HAS_FLATCCS(intel_get_drm_devid(data-
> >drm_fd)), "No aux
> +plane on flat ccs.\n");
>  		igt_skip_on_f(width <= 1024,
>  			      "FB already has the smallest possible stride\n");
>  		f.pitches[ccs_plane] -= 64;
>  	}
> 
>  	if (fb_flags & FB_SMALL_AUX_STRIDE) {
> +		igt_skip_on_f(HAS_FLATCCS(intel_get_drm_devid(data-
> >drm_fd)), "No aux
> +plane on flat ccs.\n");
>  		igt_skip_on_f(width <= 1024,
>  			      "FB already has the smallest possible stride\n");
>  		f.pitches[ccs_plane] = ALIGN(f.pitches[ccs_plane] / 2, 128); @@
> -277,6 +299,7 @@ static void test_bad_ccs_plane(data_t *data, int width, int
> height, int ccs_plan
>  	}
> 
>  	if (data->flags & TEST_NO_AUX_BUFFER) {
> +		igt_skip_on_f(HAS_FLATCCS(intel_get_drm_devid(data-
> >drm_fd)), "No aux
> +plane on flat ccs.\n");
>  		f.handles[ccs_plane] = 0;
>  		f.modifier[ccs_plane] = 0;
>  		f.pitches[ccs_plane] = 0;
> @@ -363,7 +386,7 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
>  				   colors[!!data->plane].b,
>  				   1.0};
> 
> -	/* Use either compressed or Y-tiled to test. However, given the lack of
> +	/* Use either compressed or linear to test. However, given the lack of
>  	 * available bandwidth, we use linear for the primary plane when
>  	 * testing sprites, since we cannot fit two CCS planes into the
>  	 * available FIFO configurations.
> @@ -371,7 +394,7 @@ static void generate_fb(data_t *data, struct igt_fb *fb,
>  	if (fb_flags & FB_COMPRESSED)
>  		modifier = data->ccs_modifier;
>  	else if (!(fb_flags & FB_HAS_PLANE))
> -		modifier = I915_FORMAT_MOD_Y_TILED;
> +		modifier = DRM_FORMAT_MOD_LINEAR;
>  	else
>  		modifier = 0;
> 
> @@ -563,9 +586,11 @@ static int test_ccs(data_t *data)
>  	return valid_tests;
>  }
> 
> -static void test_output(data_t *data, const char* testformatstring)
> +static void test_output(data_t *data, const int testnum)
>  {
>  	igt_fixture {
> +		data->flags = tests[testnum].flags;
> +
>  		data->output = igt_get_single_output_for_pipe(&data->display,
>  							      data->pipe);
>  		igt_require(data->output);
> @@ -573,10 +598,17 @@ static void test_output(data_t *data, const char*
> testformatstring)
>  	}
> 
>  	for (int i = 0; i < ARRAY_SIZE(ccs_modifiers); i++) {
> +		if ((ccs_modifiers[i].modifier ==
> I915_FORMAT_MOD_4_TILED_DG2_RC_CCS ||
> +		    ccs_modifiers[i].modifier ==
> I915_FORMAT_MOD_4_TILED_DG2_MC_CCS ||
> +		    ccs_modifiers[i].modifier ==
> I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC) &&
> +		    tests[testnum].flags & TEST_BAD_CCS_PLANE)
> +		    continue;
> +
>  		data->ccs_modifier = ccs_modifiers[i].modifier;
> 
> +		igt_describe(tests[testnum].description);
>  		igt_subtest_f("pipe-%s-%s-%s", kmstest_pipe_name(data-
> >pipe),
> -			      testformatstring, ccs_modifiers[i].str ) {
> +			      tests[testnum].testname, ccs_modifiers[i].str) {
>  			int valid_tests = 0;
>  			igt_require(data->output);
> 
> @@ -643,22 +675,6 @@ igt_main_args("cs:", NULL, help_str, opt_handler,
> &data)  {
>  	enum pipe pipe;
> 
> -	const struct {
> -		const enum test_flags	flags;
> -		const char		*testname;
> -		const char		*description;
> -	} tests[] = {
> -		{TEST_BAD_PIXEL_FORMAT, "bad-pixel-format", "Test bad pixel
> format with given CCS modifier"},
> -		{TEST_BAD_ROTATION_90, "bad-rotation-90", "Test 90 degree
> rotation with given CCS modifier"},
> -		{TEST_CRC, "crc-primary-basic", "Test primary plane CRC
> compatibility with given CCS modifier"},
> -		{TEST_CRC | TEST_ROTATE_180, "crc-primary-rotation-180",
> "Test 180 degree rotation with given CCS modifier"},
> -		{TEST_RANDOM, "random-ccs-data", "Test random CCS data"},
> -		{TEST_NO_AUX_BUFFER, "missing-ccs-buffer", "Test missing
> CCS buffer with given CCS modifier"},
> -		{TEST_BAD_CCS_HANDLE, "ccs-on-another-bo", "Test CCS with
> different BO with given modifier"},
> -		{TEST_BAD_AUX_STRIDE, "bad-aux-stride", "Test with bad AUX
> stride with given CCS modifier"},
> -		{TEST_CRC | TEST_ALL_PLANES, "crc-sprite-planes-basic", "Test
> sprite plane CRC compatibility with given CCS modifier"},
> -	};
> -
>  	igt_fixture {
>  		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> 
> @@ -678,9 +694,7 @@ igt_main_args("cs:", NULL, help_str, opt_handler,
> &data)
> 
>  		igt_subtest_group {
>  			for (int c = 0; c < ARRAY_SIZE(tests); c++) {
> -				data.flags = tests[c].flags;
> -				igt_describe(tests[c].description);
> -				test_output(&data, tests[c].testname);
> +				test_output(&data, c);
>  			}
>  		}
>  	}
> --
> 2.36.0


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

* Re: [igt-dev] [PATCH i-g-t v3 4/4] tests/kms_getfb: Add flat ccs modifier support
  2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 4/4] tests/kms_getfb: Add flat ccs modifier support Jeevan B
@ 2022-05-13  8:59   ` Kahola, Mika
  0 siblings, 0 replies; 11+ messages in thread
From: Kahola, Mika @ 2022-05-13  8:59 UTC (permalink / raw)
  To: B, Jeevan, igt-dev; +Cc: Latvala, Petri, Heikkila, Juha-pekka

> -----Original Message-----
> From: B, Jeevan <jeevan.b@intel.com>
> Sent: Thursday, May 12, 2022 2:01 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Kahola, Mika <mika.kahola@intel.com>; Deak, Imre
> <imre.deak@intel.com>; Latvala, Petri <petri.latvala@intel.com>; Heikkila,
> Juha-pekka <juha-pekka.heikkila@intel.com>; B, Jeevan <jeevan.b@intel.com>
> Subject: [PATCH i-g-t v3 4/4] tests/kms_getfb: Add flat ccs modifier support
> 
> From: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
> 
> Add support for testing/skipping flat ccs modifiers
> 
> Signed-off-by: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
> Signed-off-by: Jeevan B <jeevan.b@intel.com>

Reviewed-by: Mika Kahola <mika.kahola@intel.com>

> ---
>  tests/kms_getfb.c | 20 +++++++++++++++++---
>  1 file changed, 17 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/kms_getfb.c b/tests/kms_getfb.c index 75f5f30c..b3a8d265
> 100644
> --- a/tests/kms_getfb.c
> +++ b/tests/kms_getfb.c
> @@ -88,11 +88,18 @@ static void get_ccs_fb(int fd, struct drm_mode_fb_cmd2
> *ret)
>  		.flags = DRM_MODE_FB_MODIFIERS,
>  	};
>  	int size;
> +	uint32_t devid;
> 
>  	igt_require(has_addfb2_iface(fd));
>  	igt_require_intel(fd);
> +	devid = intel_get_drm_devid(fd);
> 
> -	if ((intel_display_ver(intel_get_drm_devid(fd))) >= 12) {
> +	if (HAS_FLATCCS(devid)) {
> +		add.modifier[0] = I915_FORMAT_MOD_4_TILED_DG2_RC_CCS;
> +		add.pitches[0] = ALIGN(add.width * 4, 4 * 512);
> +		size = add.pitches[0] * ALIGN(add.height, 8);
> +		size = ALIGN(size, 4096);
> +	} else if ((intel_display_ver(devid)) >= 12) {
>  		add.modifier[0] =
> I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS;
>  		add.modifier[1] =
> I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS;
> 
> @@ -130,7 +137,9 @@ static void get_ccs_fb(int fd, struct drm_mode_fb_cmd2
> *ret)
> 
>  	add.handles[0] = gem_buffer_create_fb_obj(fd, size);
>  	igt_require(add.handles[0] != 0);
> -	add.handles[1] = add.handles[0];
> +
> +	if (!HAS_FLATCCS(intel_get_drm_devid(fd)))
> +		add.handles[1] = add.handles[0];
> 
>  	if (drmIoctl(fd, DRM_IOCTL_MODE_ADDFB2, &add) == 0)
>  		*ret = add;
> @@ -256,6 +265,9 @@ static void test_duplicate_handles(int fd)
>  		struct drm_mode_fb_cmd2 add_ccs = { };
>  		struct drm_mode_fb_cmd get = { };
> 
> +		igt_require_f(!HAS_FLATCCS(intel_get_drm_devid(fd)),
> +			      "skip because flat ccs has only one buffer.\n");
> +
>  		get_ccs_fb(fd, &add_ccs);
>  		igt_require(add_ccs.handles[0] != 0);
>  		get.fb_id = add_ccs.fb_id;
> @@ -350,7 +362,9 @@ static void test_getfb2(int fd)
>  				igt_assert_eq_u64(get.modifier[i], 0);
>  			}
>  		}
> -		igt_assert_eq_u32(get.handles[0], get.handles[1]);
> +
> +		if (!HAS_FLATCCS(intel_get_drm_devid(fd)))
> +			igt_assert_eq_u32(get.handles[0], get.handles[1]);
> 
>  		do_ioctl(fd, DRM_IOCTL_MODE_RMFB, &get.fb_id);
>  		gem_close(fd, add_ccs.handles[0]);
> --
> 2.36.0


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

end of thread, other threads:[~2022-05-13  8:59 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-12 11:01 [igt-dev] [PATCH i-g-t v3 0/4] enable 4-tiled ccs modifiers on dg2 Jeevan B
2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 1/4] drm/fourcc: Import drm_fourcc header from 9035039e1ed69 Jeevan B
2022-05-13  8:30   ` Petri Latvala
2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 2/4] lib/DG2: create flat ccs framebuffers with 4-tile Jeevan B
2022-05-13  8:51   ` Kahola, Mika
2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 3/4] tests/kms_ccs: Add dg2 tiled-4 ccs modifiers Jeevan B
2022-05-13  8:58   ` Kahola, Mika
2022-05-12 11:01 ` [igt-dev] [PATCH i-g-t v3 4/4] tests/kms_getfb: Add flat ccs modifier support Jeevan B
2022-05-13  8:59   ` Kahola, Mika
2022-05-12 13:27 ` [igt-dev] ✓ Fi.CI.BAT: success for enable 4-tiled ccs modifiers on dg2 (rev3) Patchwork
2022-05-12 15:38 ` [igt-dev] ✗ Fi.CI.IGT: failure " 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.