All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general
@ 2021-10-13 22:17 Ville Syrjala
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 1/8] lib/fb: Introduce igt_fb_modifier_name() Ville Syrjala
                   ` (9 more replies)
  0 siblings, 10 replies; 22+ messages in thread
From: Ville Syrjala @ 2021-10-13 22:17 UTC (permalink / raw)
  To: igt-dev

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

Got fed up with the piles of copy-pasted code in kms_flip_tiling
and so proceeded to fully generalize it. After this it tests flipping
between all ordered pairs of modifiers. I did have to optimize it a bit
to keep the runtime within reasonable bounds since we now test a lot
more than before.

The only reason why I still left it ina tests/i915/ is that it relies
on the new igt_fb_modifier_name() to generate the dynamic subtest
name, and I didn't populate any non-i915 modifiers in there. So if/when
that gets filled out a bit more we can move this back out from the i915
dungeon.

Ville Syrjälä (8):
  lib/fb: Introduce igt_fb_modifier_name()
  tests/kms_plane: Use IGT_MODIFIER_{FMT,ARGS}
  tests/i915/kms_flip_tiling: Drop ancient stride change restrictin
  tests/i915/kms_flip_tiling: Replace i915 interlace check with
    try_commit
  tests/i915/kms_flip_tiling: Generalize away copy-pasta
  tests/i915/kms_flip_tiling: Drop useless i915 include
  tests/i915/kms_flip_tiling: Stick pipe_crc into data_t
  tests/i915/kms_flip_tiling: Keep CRC running all the time

 lib/igt_fb.c                 |  26 +++
 lib/igt_fb.h                 |   4 +
 tests/i915/kms_flip_tiling.c | 301 ++++++++---------------------------
 tests/kms_plane.c            |  16 +-
 4 files changed, 108 insertions(+), 239 deletions(-)

-- 
2.32.0

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

* [igt-dev] [PATCH i-g-t 1/8] lib/fb: Introduce igt_fb_modifier_name()
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
@ 2021-10-13 22:17 ` Ville Syrjala
  2021-10-18  6:51   ` Karthik B S
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 2/8] tests/kms_plane: Use IGT_MODIFIER_{FMT, ARGS} Ville Syrjala
                   ` (8 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Ville Syrjala @ 2021-10-13 22:17 UTC (permalink / raw)
  To: igt-dev

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

Provide a human redable name for modifiers. Only plugged in the
i915 specific ones for now. Also provide some printf format macros
for convenience.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_fb.c | 26 ++++++++++++++++++++++++++
 lib/igt_fb.h |  4 ++++
 2 files changed, 30 insertions(+)

diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index f1e1099ec864..63f3c86e75f0 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -4328,3 +4328,29 @@ void igt_format_array_fill(uint32_t **formats_array, unsigned int *count,
 		(*formats_array)[index++] = format->drm_id;
 	}
 }
+
+const char *igt_fb_modifier_name(uint64_t modifier)
+{
+	switch (modifier) {
+	case DRM_FORMAT_MOD_LINEAR:
+		return "linear";
+	case I915_FORMAT_MOD_X_TILED:
+		return "X";
+	case I915_FORMAT_MOD_Y_TILED:
+		return "Y";
+	case I915_FORMAT_MOD_Yf_TILED:
+		return "Yf";
+	case I915_FORMAT_MOD_Y_TILED_CCS:
+		return "Y-CCS";
+	case I915_FORMAT_MOD_Yf_TILED_CCS:
+		return "Yf-CCS";
+	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
+		return "Y-RC_CCS";
+	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
+		return "Y-RC_CCS-CC";
+	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
+		return "Y-MC_CCS";
+	default:
+		return "?";
+	}
+}
diff --git a/lib/igt_fb.h b/lib/igt_fb.h
index 2c2b8265b5f6..c61d9e7219ff 100644
--- a/lib/igt_fb.h
+++ b/lib/igt_fb.h
@@ -52,6 +52,9 @@ struct buf_ops;
 #define IGT_FORMAT_ARGS(f) ((f) >> 0) & 0xff, ((f) >> 8) & 0xff, \
 		((f) >> 16) & 0xff, ((f) >> 24) & 0xff, (f)
 
+#define IGT_MODIFIER_FMT "%s(0x%" PRIx64 ")"
+#define IGT_MODIFIER_ARGS(m) igt_fb_modifier_name(m), (m)
+
 /**
  * igt_fb_t:
  * @fb_id: KMS ID of the framebuffer
@@ -217,6 +220,7 @@ int igt_fill_cts_framebuffer(uint32_t *pixmap, uint32_t video_width,
 		uint32_t video_height, uint32_t bitdepth, int alpha);
 
 int igt_fb_get_fnv1a_crc(struct igt_fb *fb, igt_crc_t *crc);
+const char *igt_fb_modifier_name(uint64_t modifier);
 
 #endif /* __IGT_FB_H__ */
 
-- 
2.32.0

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

* [igt-dev] [PATCH i-g-t 2/8] tests/kms_plane: Use IGT_MODIFIER_{FMT, ARGS}
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 1/8] lib/fb: Introduce igt_fb_modifier_name() Ville Syrjala
@ 2021-10-13 22:17 ` Ville Syrjala
  2021-10-18  6:53   ` Karthik B S
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 3/8] tests/i915/kms_flip_tiling: Drop ancient stride change restrictin Ville Syrjala
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Ville Syrjala @ 2021-10-13 22:17 UTC (permalink / raw)
  To: igt-dev

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

Use IGT_MODIFIER_{FMT,ARGS} to print a human readable name for
the modifier.

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

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index effc54cecbf7..405d4c2180a6 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -768,8 +768,8 @@ static bool test_format_plane_rgb(data_t *data, enum pipe pipe,
 				  igt_crc_t ref_crc[],
 				  struct igt_fb *fb)
 {
-	igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
-		 IGT_FORMAT_ARGS(format), modifier,
+	igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
+		 IGT_FORMAT_ARGS(format), IGT_MODIFIER_ARGS(modifier),
 		 kmstest_pipe_name(pipe), plane->index);
 
 	return test_format_plane_colors(data, pipe, plane,
@@ -806,8 +806,8 @@ static bool test_format_plane_yuv(data_t *data, enum pipe pipe,
 						     igt_color_range_to_str(r)))
 				continue;
 
-			igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " (%s, %s) on %s.%u\n",
-				 IGT_FORMAT_ARGS(format), modifier,
+			igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " (%s, %s) on %s.%u\n",
+				 IGT_FORMAT_ARGS(format), IGT_MODIFIER_ARGS(modifier),
 				 igt_color_encoding_to_str(e),
 				 igt_color_range_to_str(r),
 				 kmstest_pipe_name(pipe), plane->index);
@@ -886,8 +886,8 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 
 	igt_pipe_crc_start(data->pipe_crc);
 
-	igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
-		 IGT_FORMAT_ARGS(ref.format), ref.modifier,
+	igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
+		 IGT_FORMAT_ARGS(ref.format), IGT_MODIFIER_ARGS(ref.modifier),
 		 kmstest_pipe_name(pipe), plane->index);
 
 	if (data->display.is_atomic) {
@@ -948,8 +948,8 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 			};
 
 			if (igt_vec_index(&tested_formats, &rf) >= 0) {
-				igt_info("Skipping format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
-					 IGT_FORMAT_ARGS(f.format), f.modifier,
+				igt_info("Skipping format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
+					 IGT_FORMAT_ARGS(f.format), IGT_MODIFIER_ARGS(f.modifier),
 					 kmstest_pipe_name(pipe), plane->index);
 				continue;
 			}
-- 
2.32.0

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

* [igt-dev] [PATCH i-g-t 3/8] tests/i915/kms_flip_tiling: Drop ancient stride change restrictin
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 1/8] lib/fb: Introduce igt_fb_modifier_name() Ville Syrjala
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 2/8] tests/kms_plane: Use IGT_MODIFIER_{FMT, ARGS} Ville Syrjala
@ 2021-10-13 22:17 ` Ville Syrjala
  2021-10-18  6:56   ` Karthik B S
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 4/8] tests/i915/kms_flip_tiling: Replace i915 interlace check with try_commit Ville Syrjala
                   ` (6 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Ville Syrjala @ 2021-10-13 22:17 UTC (permalink / raw)
  To: igt-dev

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

The restriction on page flips not being able to change the stride
was only relevant when i915 was still using CS flips. Ever since
we switched to pure mmio there is no limitation on what a page
flip can do (though the drm core still disallows pixel format
changes).

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/i915/kms_flip_tiling.c | 27 +++++++--------------------
 1 file changed, 7 insertions(+), 20 deletions(-)

diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
index 49ed7cb4863a..0ed08f78f917 100644
--- a/tests/i915/kms_flip_tiling.c
+++ b/tests/i915/kms_flip_tiling.c
@@ -72,7 +72,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 	igt_plane_t *primary;
 	igt_pipe_crc_t *pipe_crc;
 	igt_crc_t reference_crc, crc;
-	int fb_id, ret, width;
+	int fb_id, ret;
 
 	pipe_crc = pipe_crc_new(data, pipe);
 	igt_output_set_pipe(output, pipe);
@@ -88,30 +88,17 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 
 	primary = igt_output_get_plane(output, 0);
 
-	width = mode->hdisplay;
-
-	if (modifier[0] != modifier[1] &&
-	    (modifier[0] != DRM_FORMAT_MOD_LINEAR ||
-	     modifier[1] != DRM_FORMAT_MOD_LINEAR)) {
-		/*
-		 * Since a page flip to a buffer with different stride
-		 * doesn't work, choose width so that the stride of both
-		 * buffers is the same.
-		 */
-		width = 512;
-		while (width < mode->hdisplay)
-			width *= 2;
-	}
-
-	fb_id = igt_create_pattern_fb(data->drm_fd, width, mode->vdisplay,
+	fb_id = igt_create_pattern_fb(data->drm_fd,
+				      mode->hdisplay, mode->vdisplay,
 				      data->testformat, modifier[0],
 				      &data->fb[0]);
 	igt_assert(fb_id);
 
 	/* Second fb has different background so CRC does not match. */
-	fb_id = igt_create_color_pattern_fb(data->drm_fd, width, mode->vdisplay,
-				      data->testformat, modifier[1],
-				      0.5, 0.5, 0.5, &data->fb[1]);
+	fb_id = igt_create_color_pattern_fb(data->drm_fd,
+					    mode->hdisplay, mode->vdisplay,
+					    data->testformat, modifier[1],
+					    0.5, 0.5, 0.5, &data->fb[1]);
 	igt_assert(fb_id);
 
 	/* Set the crtc and generate a reference CRC. */
-- 
2.32.0

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

* [igt-dev] [PATCH i-g-t 4/8] tests/i915/kms_flip_tiling: Replace i915 interlace check with try_commit
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
                   ` (2 preceding siblings ...)
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 3/8] tests/i915/kms_flip_tiling: Drop ancient stride change restrictin Ville Syrjala
@ 2021-10-13 22:17 ` Ville Syrjala
  2021-10-18  6:57   ` Karthik B S
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 5/8] tests/i915/kms_flip_tiling: Generalize away copy-pasta Ville Syrjala
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Ville Syrjala @ 2021-10-13 22:17 UTC (permalink / raw)
  To: igt-dev

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

Rather than having to maintain i915 specific exceptions here
let's just use try_commit to figure out if we can even do the
actual test (the page flip ioctl).

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/i915/kms_flip_tiling.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
index 0ed08f78f917..63e0b8b9648f 100644
--- a/tests/i915/kms_flip_tiling.c
+++ b/tests/i915/kms_flip_tiling.c
@@ -65,6 +65,12 @@ static void pipe_crc_free(void)
 	}
 }
 
+static int try_commit(igt_display_t *display)
+{
+	return igt_display_try_commit2(display, display->is_atomic ?
+				       COMMIT_ATOMIC : COMMIT_LEGACY);
+}
+
 static void
 test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t modifier[2])
 {
@@ -79,13 +85,6 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 
 	mode = igt_output_get_mode(output);
 
-	/* Interlaced modes don't support Y/Yf tiling */
-	if (modifier[0] == I915_FORMAT_MOD_Y_TILED ||
-	    modifier[0] == I915_FORMAT_MOD_Yf_TILED ||
-	    modifier[1] == I915_FORMAT_MOD_Y_TILED ||
-	    modifier[1] == I915_FORMAT_MOD_Yf_TILED)
-		igt_require(!(mode->flags & DRM_MODE_FLAG_INTERLACE));
-
 	primary = igt_output_get_plane(output, 0);
 
 	fb_id = igt_create_pattern_fb(data->drm_fd,
@@ -103,12 +102,16 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 
 	/* Set the crtc and generate a reference CRC. */
 	igt_plane_set_fb(primary, &data->fb[1]);
-	igt_display_commit(&data->display);
+	igt_require_f(try_commit(&data->display) == 0,
+		      "commit failed with " IGT_MODIFIER_FMT "\n",
+		      IGT_MODIFIER_ARGS(modifier[1]));
 	igt_pipe_crc_collect_crc(pipe_crc, &reference_crc);
 
 	/* Commit the first fb. */
 	igt_plane_set_fb(primary, &data->fb[0]);
-	igt_display_commit(&data->display);
+	igt_require_f(try_commit(&data->display) == 0,
+		      "commit failed with " IGT_MODIFIER_FMT "\n",
+		      IGT_MODIFIER_ARGS(modifier[1]));
 
 	/* Flip to the second fb. */
 	ret = drmModePageFlip(data->drm_fd, output->config.crtc->crtc_id,
-- 
2.32.0

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

* [igt-dev] [PATCH i-g-t 5/8] tests/i915/kms_flip_tiling: Generalize away copy-pasta
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
                   ` (3 preceding siblings ...)
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 4/8] tests/i915/kms_flip_tiling: Replace i915 interlace check with try_commit Ville Syrjala
@ 2021-10-13 22:17 ` Ville Syrjala
  2021-10-18  7:02   ` Karthik B S
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 6/8] tests/i915/kms_flip_tiling: Drop useless i915 include Ville Syrjala
                   ` (4 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Ville Syrjala @ 2021-10-13 22:17 UTC (permalink / raw)
  To: igt-dev

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

Replace the huge swaths of copypasta by just looping over the
set of modifiers reported by the plane, and testing each against
the others (and itself).

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/i915/kms_flip_tiling.c | 209 +++++------------------------------
 1 file changed, 30 insertions(+), 179 deletions(-)

diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
index 63e0b8b9648f..e2e6619baeca 100644
--- a/tests/i915/kms_flip_tiling.c
+++ b/tests/i915/kms_flip_tiling.c
@@ -161,195 +161,46 @@ igt_main
 		igt_display_require(&data.display, data.drm_fd);
 	}
 
-	/*
-	 * Test that a page flip from a tiled buffer to a linear one works
-	 * correctly. First, it sets the crtc with the linear buffer and
-	 * generates a reference crc for the pipe. Then, the crtc is set with
-	 * the tiled one and page flip to the linear one issued. A new crc is
-	 * generated and compared to the reference one.
-	 */
-
-	igt_describe("Check pageflip from tiled buffer to linear one works correctly with x tiling");
-	igt_subtest_with_dynamic("flip-changes-tiling") {
-		uint64_t modifier[2] = { I915_FORMAT_MOD_X_TILED,
-					 DRM_FORMAT_MOD_LINEAR };
+	igt_describe("Check pageflip between modifiers");
+	igt_subtest_with_dynamic("flip-change-tiling") {
 		enum pipe pipe;
 
-		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
-			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
-
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
-				test_flip_tiling(&data, pipe, output, modifier);
-			test_cleanup(&data, pipe, output);
-		}
-	}
-
-	igt_describe("Check pageflip from tiled buffer to linear one works correctly with y tiling");
-	igt_subtest_with_dynamic("flip-changes-tiling-Y") {
-		uint64_t modifier[2] = { I915_FORMAT_MOD_Y_TILED,
-					 DRM_FORMAT_MOD_LINEAR };
-		enum pipe pipe;
+			igt_plane_t *plane;
 
-		igt_require_fb_modifiers(data.drm_fd);
+			igt_output_set_pipe(output, pipe);
 
-		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
-			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
+			plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
-		igt_require(data.gen >= 9);
+			for (int i = 0; i < plane->format_mod_count; i++) {
+				if (plane->formats[i] != data.testformat)
+					continue;
 
-		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
-				test_flip_tiling(&data, pipe, output, modifier);
-			test_cleanup(&data, pipe, output);
-		}
-	}
-
-	igt_describe("Check pageflip from tiled buffer to linear one works correctly with yf tiling");
-	igt_subtest_with_dynamic("flip-changes-tiling-Yf") {
-		uint64_t modifier[2] = { I915_FORMAT_MOD_Yf_TILED,
-					 DRM_FORMAT_MOD_LINEAR };
-		enum pipe pipe;
+				for (int j = 0; j < plane->format_mod_count; j++) {
+					uint64_t modifier[2] = {
+						plane->modifiers[i],
+						plane->modifiers[j],
+					};
 
-		igt_require_fb_modifiers(data.drm_fd);
+					if (plane->formats[j] != data.testformat)
+						continue;
 
-		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
-			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
-
-		igt_require(data.gen >= 9);
-
-		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
-				test_flip_tiling(&data, pipe, output, modifier);
-			test_cleanup(&data, pipe, output);
-		}
-	}
-
-	/*
-	 * Test that a page flip from a tiled buffer to another tiled one works
-	 * correctly. First, it sets the crtc with the tiled buffer and
-	 * generates a reference crc for the pipe. Then a page flip to second
-	 * tiled buffer is issued. A new crc is generated and compared to the
-	 * reference one.
-	 */
-
-	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with x tiling");
-	igt_subtest_with_dynamic("flip-X-tiled") {
-		uint64_t modifier[2] = { I915_FORMAT_MOD_X_TILED,
-					 I915_FORMAT_MOD_X_TILED };
-		enum pipe pipe;
-
-		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
-			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
-
-		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
-				test_flip_tiling(&data, pipe, output, modifier);
-			test_cleanup(&data, pipe, output);
-		}
-	}
-
-	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with y tiling");
-	igt_subtest_with_dynamic("flip-Y-tiled") {
-		uint64_t modifier[2] = { I915_FORMAT_MOD_Y_TILED,
-					 I915_FORMAT_MOD_Y_TILED };
-		enum pipe pipe;
-
-		igt_require_fb_modifiers(data.drm_fd);
-
-		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
-			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
-
-		igt_require(data.gen >= 9);
-
-		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
-				test_flip_tiling(&data, pipe, output, modifier);
-			test_cleanup(&data, pipe, output);
-		}
-	}
-
-	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with yf tiling");
-	igt_subtest_with_dynamic("flip-Yf-tiled") {
-		uint64_t modifier[2] = { I915_FORMAT_MOD_Yf_TILED,
-					 I915_FORMAT_MOD_Yf_TILED };
-		enum pipe pipe;
+					igt_require(igt_plane_has_format_mod(plane,
+									     data.testformat,
+									     modifier[0]));
+					igt_require(igt_plane_has_format_mod(plane,
+									     data.testformat,
+									     modifier[1]));
 
-		igt_require_fb_modifiers(data.drm_fd);
-
-		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
-			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
-
-		igt_require(data.gen >= 9);
-
-		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
-				test_flip_tiling(&data, pipe, output, modifier);
-			test_cleanup(&data, pipe, output);
-		}
-	}
-
-	/*
-	 * Test that a page flip from a linear buffer to a tiled one works
-	 * correctly. First, it sets the crtc with the linear buffer and
-	 * generates a reference crc for the pipe. Then a page flip to a tiled
-	 * buffer is issued. A new crc is generated and compared to the
-	 * reference one.
-	 */
-
-	igt_describe("Check pageflip from linear buffer to tiled one works correctly with x tiling");
-	igt_subtest_with_dynamic("flip-to-X-tiled") {
-		uint64_t modifier[2] = { DRM_FORMAT_MOD_LINEAR,
-					 I915_FORMAT_MOD_X_TILED };
-		enum pipe pipe;
-
-		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
-			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
-
-		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
-				test_flip_tiling(&data, pipe, output, modifier);
-			test_cleanup(&data, pipe, output);
-		}
-	}
-
-	igt_describe("Check pageflip from linear buffer to tiled one works correctly with y tiling");
-	igt_subtest_with_dynamic("flip-to-Y-tiled") {
-		uint64_t modifier[2] = { DRM_FORMAT_MOD_LINEAR,
-					 I915_FORMAT_MOD_Y_TILED };
-		enum pipe pipe;
-
-		igt_require_fb_modifiers(data.drm_fd);
-
-		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
-			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
-
-		igt_require(data.gen >= 9);
-
-		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
-				test_flip_tiling(&data, pipe, output, modifier);
-			test_cleanup(&data, pipe, output);
-		}
-	}
-
-	igt_describe("Check pageflip from linear buffer to tiled one works correctly with yf tiling");
-	igt_subtest_with_dynamic("flip-to-Yf-tiled") {
-		uint64_t modifier[2] = { DRM_FORMAT_MOD_LINEAR,
-					 I915_FORMAT_MOD_Yf_TILED };
-		enum pipe pipe;
-
-		igt_require_fb_modifiers(data.drm_fd);
-
-		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
-			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
-
-		igt_require(data.gen >= 9);
-
-		for_each_pipe_with_valid_output(&data.display, pipe, output) {
-			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
-				test_flip_tiling(&data, pipe, output, modifier);
-			test_cleanup(&data, pipe, output);
+					igt_dynamic_f("%s-pipe-%s-%s-to-%s",
+						      igt_output_name(output),
+						      kmstest_pipe_name(pipe),
+						      igt_fb_modifier_name(modifier[0]),
+						      igt_fb_modifier_name(modifier[1]))
+						test_flip_tiling(&data, pipe, output, modifier);
+					test_cleanup(&data, pipe, output);
+				}
+			}
 		}
 	}
 
-- 
2.32.0

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

* [igt-dev] [PATCH i-g-t 6/8] tests/i915/kms_flip_tiling: Drop useless i915 include
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
                   ` (4 preceding siblings ...)
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 5/8] tests/i915/kms_flip_tiling: Generalize away copy-pasta Ville Syrjala
@ 2021-10-13 22:17 ` Ville Syrjala
  2021-10-18  7:03   ` Karthik B S
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 7/8] tests/i915/kms_flip_tiling: Stick pipe_crc into data_t Ville Syrjala
                   ` (3 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Ville Syrjala @ 2021-10-13 22:17 UTC (permalink / raw)
  To: igt-dev

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

Nothing here needs any i915 specfic things. Drop the header.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/i915/kms_flip_tiling.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
index e2e6619baeca..8eecb20c49b9 100644
--- a/tests/i915/kms_flip_tiling.c
+++ b/tests/i915/kms_flip_tiling.c
@@ -29,7 +29,6 @@
 #include <stdio.h>
 #include <string.h>
 
-#include "i915/gem.h"
 #include "igt.h"
 
 IGT_TEST_DESCRIPTION("Test page flips and tiling scenarios");
-- 
2.32.0

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

* [igt-dev] [PATCH i-g-t 7/8] tests/i915/kms_flip_tiling: Stick pipe_crc into data_t
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
                   ` (5 preceding siblings ...)
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 6/8] tests/i915/kms_flip_tiling: Drop useless i915 include Ville Syrjala
@ 2021-10-13 22:17 ` Ville Syrjala
  2021-10-18  7:04   ` Karthik B S
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 8/8] tests/i915/kms_flip_tiling: Keep CRC running all the time Ville Syrjala
                   ` (2 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Ville Syrjala @ 2021-10-13 22:17 UTC (permalink / raw)
  To: igt-dev

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

Dunno why the pipe_crc has its own variable visible throughout
the whole file. Just stuff it into data_t where everything else
lives.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/i915/kms_flip_tiling.c | 36 +++++++++++++++---------------------
 1 file changed, 15 insertions(+), 21 deletions(-)

diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
index 8eecb20c49b9..604f01dd3766 100644
--- a/tests/i915/kms_flip_tiling.c
+++ b/tests/i915/kms_flip_tiling.c
@@ -39,29 +39,24 @@ typedef struct {
 	int gen;
 	uint32_t testformat;
 	struct igt_fb fb[2];
+	igt_pipe_crc_t *pipe_crc;
 } data_t;
 
-static igt_pipe_crc_t *_pipe_crc;
-
-static igt_pipe_crc_t *pipe_crc_new(data_t *data, int pipe)
+static void pipe_crc_free(data_t *data)
 {
-	if (_pipe_crc) {
-		igt_pipe_crc_free(_pipe_crc);
-		_pipe_crc = NULL;
-	}
+	if (!data->pipe_crc)
+		return;
 
-	_pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
-	igt_assert(_pipe_crc);
-
-	return _pipe_crc;
+	igt_pipe_crc_free(data->pipe_crc);
+	data->pipe_crc = NULL;
 }
 
-static void pipe_crc_free(void)
+static void pipe_crc_new(data_t *data, int pipe)
 {
-	if (_pipe_crc) {
-		igt_pipe_crc_free(_pipe_crc);
-		_pipe_crc = NULL;
-	}
+	pipe_crc_free(data);
+
+	data->pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
+	igt_assert(data->pipe_crc);
 }
 
 static int try_commit(igt_display_t *display)
@@ -75,11 +70,10 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 {
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
-	igt_pipe_crc_t *pipe_crc;
 	igt_crc_t reference_crc, crc;
 	int fb_id, ret;
 
-	pipe_crc = pipe_crc_new(data, pipe);
+	pipe_crc_new(data, pipe);
 	igt_output_set_pipe(output, pipe);
 
 	mode = igt_output_get_mode(output);
@@ -104,7 +98,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 	igt_require_f(try_commit(&data->display) == 0,
 		      "commit failed with " IGT_MODIFIER_FMT "\n",
 		      IGT_MODIFIER_ARGS(modifier[1]));
-	igt_pipe_crc_collect_crc(pipe_crc, &reference_crc);
+	igt_pipe_crc_collect_crc(data->pipe_crc, &reference_crc);
 
 	/* Commit the first fb. */
 	igt_plane_set_fb(primary, &data->fb[0]);
@@ -124,7 +118,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 	kmstest_wait_for_pageflip(data->drm_fd);
 
 	/* Get a crc and compare with the reference. */
-	igt_pipe_crc_collect_crc(pipe_crc, &crc);
+	igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
 	igt_assert_crc_equal(&reference_crc, &crc);
 }
 
@@ -135,7 +129,7 @@ static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
 
 	/* Clean up. */
 	igt_plane_set_fb(primary, NULL);
-	pipe_crc_free();
+	pipe_crc_free(data);
 	igt_output_set_pipe(output, PIPE_ANY);
 	igt_display_commit(&data->display);
 
-- 
2.32.0

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

* [igt-dev] [PATCH i-g-t 8/8] tests/i915/kms_flip_tiling: Keep CRC running all the time
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
                   ` (6 preceding siblings ...)
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 7/8] tests/i915/kms_flip_tiling: Stick pipe_crc into data_t Ville Syrjala
@ 2021-10-13 22:17 ` Ville Syrjala
  2021-10-18  7:05   ` Karthik B S
  2021-10-13 23:07 ` [igt-dev] ✓ Fi.CI.BAT: success for Promote kms_flip_tiling to general Patchwork
  2021-10-14  0:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  9 siblings, 1 reply; 22+ messages in thread
From: Ville Syrjala @ 2021-10-13 22:17 UTC (permalink / raw)
  To: igt-dev

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

Don't start/stop the CRC capture at every step. This speeds
up the test significantly.  We also avoid blinking off the
pipe obviously, and we also make sure to keep the old fbs
around to avoid pointless extra commits due to rmfb turning
off the plane whe the current fb vanishes.

The whole test is now ~16s on glk looping over all possible
ordered modifier pairs. Could probably restrict this to a
single pipe as well, further cutting that down by almost
another 2/3. But eg. on GLK not all pipes have all the modifiers
so could perhaps lose a bit of coverrage that way. And we're
only few seconds slower than the starting point when the test
only checked a subset of modifier pairs rather than the full set.
So perhaps acceptable.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 tests/i915/kms_flip_tiling.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
index 604f01dd3766..08f707f5cb4a 100644
--- a/tests/i915/kms_flip_tiling.c
+++ b/tests/i915/kms_flip_tiling.c
@@ -47,16 +47,19 @@ static void pipe_crc_free(data_t *data)
 	if (!data->pipe_crc)
 		return;
 
+	igt_pipe_crc_stop(data->pipe_crc);
 	igt_pipe_crc_free(data->pipe_crc);
 	data->pipe_crc = NULL;
 }
 
 static void pipe_crc_new(data_t *data, int pipe)
 {
-	pipe_crc_free(data);
+	if (data->pipe_crc)
+		return;
 
 	data->pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
 	igt_assert(data->pipe_crc);
+	igt_pipe_crc_start(data->pipe_crc);
 }
 
 static int try_commit(igt_display_t *display)
@@ -68,14 +71,12 @@ static int try_commit(igt_display_t *display)
 static void
 test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t modifier[2])
 {
+	struct igt_fb old_fb[2] = { data->fb[0], data->fb[1] };
 	drmModeModeInfo *mode;
 	igt_plane_t *primary;
 	igt_crc_t reference_crc, crc;
 	int fb_id, ret;
 
-	pipe_crc_new(data, pipe);
-	igt_output_set_pipe(output, pipe);
-
 	mode = igt_output_get_mode(output);
 
 	primary = igt_output_get_plane(output, 0);
@@ -98,7 +99,8 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 	igt_require_f(try_commit(&data->display) == 0,
 		      "commit failed with " IGT_MODIFIER_FMT "\n",
 		      IGT_MODIFIER_ARGS(modifier[1]));
-	igt_pipe_crc_collect_crc(data->pipe_crc, &reference_crc);
+	pipe_crc_new(data, pipe);
+	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &reference_crc);
 
 	/* Commit the first fb. */
 	igt_plane_set_fb(primary, &data->fb[0]);
@@ -118,8 +120,11 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
 	kmstest_wait_for_pageflip(data->drm_fd);
 
 	/* Get a crc and compare with the reference. */
-	igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
+	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &crc);
 	igt_assert_crc_equal(&reference_crc, &crc);
+
+	igt_remove_fb(data->drm_fd, &old_fb[0]);
+	igt_remove_fb(data->drm_fd, &old_fb[1]);
 }
 
 static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
@@ -131,7 +136,6 @@ static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
 	igt_plane_set_fb(primary, NULL);
 	pipe_crc_free(data);
 	igt_output_set_pipe(output, PIPE_ANY);
-	igt_display_commit(&data->display);
 
 	igt_remove_fb(data->drm_fd, &data->fb[0]);
 	igt_remove_fb(data->drm_fd, &data->fb[1]);
@@ -161,6 +165,7 @@ igt_main
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
 			igt_plane_t *plane;
 
+			pipe_crc_free(&data);
 			igt_output_set_pipe(output, pipe);
 
 			plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
@@ -191,9 +196,9 @@ igt_main
 						      igt_fb_modifier_name(modifier[0]),
 						      igt_fb_modifier_name(modifier[1]))
 						test_flip_tiling(&data, pipe, output, modifier);
-					test_cleanup(&data, pipe, output);
 				}
 			}
+			test_cleanup(&data, pipe, output);
 		}
 	}
 
-- 
2.32.0

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

* [igt-dev] ✓ Fi.CI.BAT: success for Promote kms_flip_tiling to general
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
                   ` (7 preceding siblings ...)
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 8/8] tests/i915/kms_flip_tiling: Keep CRC running all the time Ville Syrjala
@ 2021-10-13 23:07 ` Patchwork
  2021-10-14  0:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  9 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2021-10-13 23:07 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

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

== Series Details ==

Series: Promote kms_flip_tiling to general
URL   : https://patchwork.freedesktop.org/series/95803/
State : success

== Summary ==

CI Bug Log - changes from IGT_6244 -> IGTPW_6317
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@gt_pm:
    - fi-kbl-7567u:       [PASS][1] -> [DMESG-FAIL][2] ([i915#2291])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6244/fi-kbl-7567u/igt@i915_selftest@live@gt_pm.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6317/fi-kbl-7567u/igt@i915_selftest@live@gt_pm.html

  * igt@kms_chamelium@hdmi-edid-read:
    - fi-bdw-samus:       NOTRUN -> [SKIP][3] ([fdo#109271] / [fdo#111827]) +8 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6317/fi-bdw-samus/igt@kms_chamelium@hdmi-edid-read.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
    - fi-bdw-samus:       NOTRUN -> [SKIP][4] ([fdo#109271]) +29 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6317/fi-bdw-samus/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-tgl-1115g4:      [FAIL][5] ([i915#1888]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6244/fi-tgl-1115g4/igt@gem_exec_suspend@basic-s0.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6317/fi-tgl-1115g4/igt@gem_exec_suspend@basic-s0.html

  * igt@gem_exec_suspend@basic-s3:
    - fi-bdw-samus:       [INCOMPLETE][7] ([i915#146]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6244/fi-bdw-samus/igt@gem_exec_suspend@basic-s3.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6317/fi-bdw-samus/igt@gem_exec_suspend@basic-s3.html

  * igt@i915_selftest@live@coherency:
    - {fi-tgl-dsi}:       [DMESG-FAIL][9] -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_6244/fi-tgl-dsi/igt@i915_selftest@live@coherency.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6317/fi-tgl-dsi/igt@i915_selftest@live@coherency.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#146]: https://gitlab.freedesktop.org/drm/intel/issues/146
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303


Participating hosts (40 -> 36)
------------------------------

  Missing    (4): fi-bsw-cyan fi-ilk-m540 fi-hsw-4200u fi-kbl-r 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6244 -> IGTPW_6317

  CI-20190529: 20190529
  CI_DRM_10732: 3fdfa1de4774903b9cb4fb308102b5a2d762d829 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_6317: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_6317/index.html
  IGT_6244: f0d20960795af65d7fd86bbc5a3e7fb47451e06e @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git



== Testlist changes ==

+igt@kms_flip_tiling@flip-change-tiling
-igt@kms_flip_tiling@flip-changes-tiling
-igt@kms_flip_tiling@flip-changes-tiling-y
-igt@kms_flip_tiling@flip-changes-tiling-yf
-igt@kms_flip_tiling@flip-to-x-tiled
-igt@kms_flip_tiling@flip-to-yf-tiled
-igt@kms_flip_tiling@flip-to-y-tiled
-igt@kms_flip_tiling@flip-x-tiled
-igt@kms_flip_tiling@flip-yf-tiled
-igt@kms_flip_tiling@flip-y-tiled

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for Promote kms_flip_tiling to general
  2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
                   ` (8 preceding siblings ...)
  2021-10-13 23:07 ` [igt-dev] ✓ Fi.CI.BAT: success for Promote kms_flip_tiling to general Patchwork
@ 2021-10-14  0:10 ` Patchwork
  9 siblings, 0 replies; 22+ messages in thread
From: Patchwork @ 2021-10-14  0:10 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

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

== Series Details ==

Series: Promote kms_flip_tiling to general
URL   : https://patchwork.freedesktop.org/series/95803/
State : success

== Summary ==

CI Bug Log - changes from IGT_6244_full -> IGTPW_6317_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

New tests
---------

  New tests have been introduced between IGT_6244_full and IGTPW_6317_full:

### New IGT tests (446) ###

  * igt@kms_flip_tiling@flip-change-tiling:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-linear-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-linear-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-linear-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-linear-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-linear-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-linear-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-x-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-x-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-x-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-x-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-x-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-x-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-ccs-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-y-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.32] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-ccs-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.57] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-a-yf-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-linear-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-linear-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-linear-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-linear-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-linear-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-linear-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-x-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-x-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-x-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-x-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-x-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-x-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-ccs-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.32] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-y-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.32] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-ccs-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.56] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-b-yf-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-linear-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-linear-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-linear-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-linear-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-x-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-x-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-x-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-x-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.27] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-y-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-y-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-y-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-y-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.33] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-yf-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-yf-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.25] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-yf-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.32] s

  * igt@kms_flip_tiling@flip-change-tiling@dp-1-pipe-c-yf-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.55] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-linear-to-linear:
    - Statuses : 2 pass(s)
    - Exec time: [0.10, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-linear-to-x:
    - Statuses : 2 pass(s)
    - Exec time: [0.12, 0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-linear-to-y:
    - Statuses : 2 pass(s)
    - Exec time: [0.12, 0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-linear-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-linear-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.14] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-linear-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-linear-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-linear-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-x-to-linear:
    - Statuses : 2 pass(s)
    - Exec time: [0.12, 0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-x-to-x:
    - Statuses : 2 pass(s)
    - Exec time: [0.10, 0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-x-to-y:
    - Statuses : 2 pass(s)
    - Exec time: [0.12, 0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-x-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-x-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-x-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-x-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-x-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-ccs-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-cc-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-cc-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-cc-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-cc-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-cc-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.23] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-rc_ccs-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-to-linear:
    - Statuses : 2 pass(s)
    - Exec time: [0.13, 0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-to-x:
    - Statuses : 2 pass(s)
    - Exec time: [0.13, 0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-to-y:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.14] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.16] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-y-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-ccs-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.30] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.17] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.18] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-a-yf-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.15] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-linear-to-linear:
    - Statuses : 2 pass(s)
    - Exec time: [0.09, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-linear-to-x:
    - Statuses : 2 pass(s)
    - Exec time: [0.09, 0.10] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-linear-to-y:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-linear-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-linear-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-linear-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-linear-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-linear-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-x-to-linear:
    - Statuses : 2 pass(s)
    - Exec time: [0.09, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-x-to-x:
    - Statuses : 2 pass(s)
    - Exec time: [0.09, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-x-to-y:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-x-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-x-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-x-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-x-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-x-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-ccs-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-cc-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-cc-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-cc-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-cc-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-cc-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [1.32] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-rc_ccs-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-to-linear:
    - Statuses : 2 pass(s)
    - Exec time: [0.10, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-to-x:
    - Statuses : 2 pass(s)
    - Exec time: [0.10, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-to-y:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-y-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-ccs-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [1.35] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-b-yf-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-linear-to-linear:
    - Statuses : 2 pass(s)
    - Exec time: [0.09, 0.10] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-linear-to-x:
    - Statuses : 2 pass(s)
    - Exec time: [0.09, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-linear-to-y:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-linear-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-linear-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-linear-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-linear-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-linear-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-x-to-linear:
    - Statuses : 2 pass(s)
    - Exec time: [0.09, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-x-to-x:
    - Statuses : 2 pass(s)
    - Exec time: [0.09, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-x-to-y:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-x-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-x-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-x-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-x-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-x-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-ccs-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-cc-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-cc-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-cc-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-cc-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-cc-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [1.31] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-rc_ccs-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-to-linear:
    - Statuses : 2 pass(s)
    - Exec time: [0.09, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-to-x:
    - Statuses : 2 pass(s)
    - Exec time: [0.10, 0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-to-y:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-to-y-rc_ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-to-y-rc_ccs-cc:
    - Statuses : 1 pass(s)
    - Exec time: [0.11] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-y-to-yf-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-yf-ccs-to-linear:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-yf-ccs-to-x:
    - Statuses : 1 pass(s)
    - Exec time: [0.12] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-yf-ccs-to-y:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-yf-ccs-to-y-ccs:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@kms_flip_tiling@flip-change-tiling@edp-1-pipe-c-yf-ccs-to-yf:
    - Statuses : 1 pass(s)
    - Exec time: [0.13] s

  * igt@

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t 1/8] lib/fb: Introduce igt_fb_modifier_name()
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 1/8] lib/fb: Introduce igt_fb_modifier_name() Ville Syrjala
@ 2021-10-18  6:51   ` Karthik B S
  0 siblings, 0 replies; 22+ messages in thread
From: Karthik B S @ 2021-10-18  6:51 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Provide a human redable name for modifiers. Only plugged in the
> i915 specific ones for now. Also provide some printf format macros
> for convenience.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Please fix typo: 'redable'

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   lib/igt_fb.c | 26 ++++++++++++++++++++++++++
>   lib/igt_fb.h |  4 ++++
>   2 files changed, 30 insertions(+)
>
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index f1e1099ec864..63f3c86e75f0 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -4328,3 +4328,29 @@ void igt_format_array_fill(uint32_t **formats_array, unsigned int *count,
>   		(*formats_array)[index++] = format->drm_id;
>   	}
>   }
> +
> +const char *igt_fb_modifier_name(uint64_t modifier)
> +{
> +	switch (modifier) {
> +	case DRM_FORMAT_MOD_LINEAR:
> +		return "linear";
> +	case I915_FORMAT_MOD_X_TILED:
> +		return "X";
> +	case I915_FORMAT_MOD_Y_TILED:
> +		return "Y";
> +	case I915_FORMAT_MOD_Yf_TILED:
> +		return "Yf";
> +	case I915_FORMAT_MOD_Y_TILED_CCS:
> +		return "Y-CCS";
> +	case I915_FORMAT_MOD_Yf_TILED_CCS:
> +		return "Yf-CCS";
> +	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS:
> +		return "Y-RC_CCS";
> +	case I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC:
> +		return "Y-RC_CCS-CC";
> +	case I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS:
> +		return "Y-MC_CCS";
> +	default:
> +		return "?";
> +	}
> +}
> diff --git a/lib/igt_fb.h b/lib/igt_fb.h
> index 2c2b8265b5f6..c61d9e7219ff 100644
> --- a/lib/igt_fb.h
> +++ b/lib/igt_fb.h
> @@ -52,6 +52,9 @@ struct buf_ops;
>   #define IGT_FORMAT_ARGS(f) ((f) >> 0) & 0xff, ((f) >> 8) & 0xff, \
>   		((f) >> 16) & 0xff, ((f) >> 24) & 0xff, (f)
>   
> +#define IGT_MODIFIER_FMT "%s(0x%" PRIx64 ")"
> +#define IGT_MODIFIER_ARGS(m) igt_fb_modifier_name(m), (m)
> +
>   /**
>    * igt_fb_t:
>    * @fb_id: KMS ID of the framebuffer
> @@ -217,6 +220,7 @@ int igt_fill_cts_framebuffer(uint32_t *pixmap, uint32_t video_width,
>   		uint32_t video_height, uint32_t bitdepth, int alpha);
>   
>   int igt_fb_get_fnv1a_crc(struct igt_fb *fb, igt_crc_t *crc);
> +const char *igt_fb_modifier_name(uint64_t modifier);
>   
>   #endif /* __IGT_FB_H__ */
>   


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

* Re: [igt-dev] [PATCH i-g-t 2/8] tests/kms_plane: Use IGT_MODIFIER_{FMT, ARGS}
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 2/8] tests/kms_plane: Use IGT_MODIFIER_{FMT, ARGS} Ville Syrjala
@ 2021-10-18  6:53   ` Karthik B S
  0 siblings, 0 replies; 22+ messages in thread
From: Karthik B S @ 2021-10-18  6:53 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Use IGT_MODIFIER_{FMT,ARGS} to print a human readable name for
> the modifier.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> ---
>   tests/kms_plane.c | 16 ++++++++--------
>   1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index effc54cecbf7..405d4c2180a6 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -768,8 +768,8 @@ static bool test_format_plane_rgb(data_t *data, enum pipe pipe,
>   				  igt_crc_t ref_crc[],
>   				  struct igt_fb *fb)
>   {
> -	igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
> -		 IGT_FORMAT_ARGS(format), modifier,
> +	igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
> +		 IGT_FORMAT_ARGS(format), IGT_MODIFIER_ARGS(modifier),
>   		 kmstest_pipe_name(pipe), plane->index);
>   
>   	return test_format_plane_colors(data, pipe, plane,
> @@ -806,8 +806,8 @@ static bool test_format_plane_yuv(data_t *data, enum pipe pipe,
>   						     igt_color_range_to_str(r)))
>   				continue;
>   
> -			igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " (%s, %s) on %s.%u\n",
> -				 IGT_FORMAT_ARGS(format), modifier,
> +			igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " (%s, %s) on %s.%u\n",
> +				 IGT_FORMAT_ARGS(format), IGT_MODIFIER_ARGS(modifier),
>   				 igt_color_encoding_to_str(e),
>   				 igt_color_range_to_str(r),
>   				 kmstest_pipe_name(pipe), plane->index);
> @@ -886,8 +886,8 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>   
>   	igt_pipe_crc_start(data->pipe_crc);
>   
> -	igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
> -		 IGT_FORMAT_ARGS(ref.format), ref.modifier,
> +	igt_info("Testing format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
> +		 IGT_FORMAT_ARGS(ref.format), IGT_MODIFIER_ARGS(ref.modifier),
>   		 kmstest_pipe_name(pipe), plane->index);
>   
>   	if (data->display.is_atomic) {
> @@ -948,8 +948,8 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>   			};
>   
>   			if (igt_vec_index(&tested_formats, &rf) >= 0) {
> -				igt_info("Skipping format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
> -					 IGT_FORMAT_ARGS(f.format), f.modifier,
> +				igt_info("Skipping format " IGT_FORMAT_FMT " / modifier " IGT_MODIFIER_FMT " on %s.%u\n",
> +					 IGT_FORMAT_ARGS(f.format), IGT_MODIFIER_ARGS(f.modifier),
>   					 kmstest_pipe_name(pipe), plane->index);
>   				continue;
>   			}


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

* Re: [igt-dev] [PATCH i-g-t 3/8] tests/i915/kms_flip_tiling: Drop ancient stride change restrictin
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 3/8] tests/i915/kms_flip_tiling: Drop ancient stride change restrictin Ville Syrjala
@ 2021-10-18  6:56   ` Karthik B S
  0 siblings, 0 replies; 22+ messages in thread
From: Karthik B S @ 2021-10-18  6:56 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> The restriction on page flips not being able to change the stride
> was only relevant when i915 was still using CS flips. Ever since
> we switched to pure mmio there is no limitation on what a page
> flip can do (though the drm core still disallows pixel format
> changes).
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Please fix typo in subject. 'restrictin'

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

> ---
>   tests/i915/kms_flip_tiling.c | 27 +++++++--------------------
>   1 file changed, 7 insertions(+), 20 deletions(-)
>
> diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
> index 49ed7cb4863a..0ed08f78f917 100644
> --- a/tests/i915/kms_flip_tiling.c
> +++ b/tests/i915/kms_flip_tiling.c
> @@ -72,7 +72,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
>   	igt_plane_t *primary;
>   	igt_pipe_crc_t *pipe_crc;
>   	igt_crc_t reference_crc, crc;
> -	int fb_id, ret, width;
> +	int fb_id, ret;
>   
>   	pipe_crc = pipe_crc_new(data, pipe);
>   	igt_output_set_pipe(output, pipe);
> @@ -88,30 +88,17 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
>   
>   	primary = igt_output_get_plane(output, 0);
>   
> -	width = mode->hdisplay;
> -
> -	if (modifier[0] != modifier[1] &&
> -	    (modifier[0] != DRM_FORMAT_MOD_LINEAR ||
> -	     modifier[1] != DRM_FORMAT_MOD_LINEAR)) {
> -		/*
> -		 * Since a page flip to a buffer with different stride
> -		 * doesn't work, choose width so that the stride of both
> -		 * buffers is the same.
> -		 */
> -		width = 512;
> -		while (width < mode->hdisplay)
> -			width *= 2;
> -	}
> -
> -	fb_id = igt_create_pattern_fb(data->drm_fd, width, mode->vdisplay,
> +	fb_id = igt_create_pattern_fb(data->drm_fd,
> +				      mode->hdisplay, mode->vdisplay,
>   				      data->testformat, modifier[0],
>   				      &data->fb[0]);
>   	igt_assert(fb_id);
>   
>   	/* Second fb has different background so CRC does not match. */
> -	fb_id = igt_create_color_pattern_fb(data->drm_fd, width, mode->vdisplay,
> -				      data->testformat, modifier[1],
> -				      0.5, 0.5, 0.5, &data->fb[1]);
> +	fb_id = igt_create_color_pattern_fb(data->drm_fd,
> +					    mode->hdisplay, mode->vdisplay,
> +					    data->testformat, modifier[1],
> +					    0.5, 0.5, 0.5, &data->fb[1]);
>   	igt_assert(fb_id);
>   
>   	/* Set the crtc and generate a reference CRC. */


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

* Re: [igt-dev] [PATCH i-g-t 4/8] tests/i915/kms_flip_tiling: Replace i915 interlace check with try_commit
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 4/8] tests/i915/kms_flip_tiling: Replace i915 interlace check with try_commit Ville Syrjala
@ 2021-10-18  6:57   ` Karthik B S
  0 siblings, 0 replies; 22+ messages in thread
From: Karthik B S @ 2021-10-18  6:57 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Rather than having to maintain i915 specific exceptions here
> let's just use try_commit to figure out if we can even do the
> actual test (the page flip ioctl).
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> ---
>   tests/i915/kms_flip_tiling.c | 21 ++++++++++++---------
>   1 file changed, 12 insertions(+), 9 deletions(-)
>
> diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
> index 0ed08f78f917..63e0b8b9648f 100644
> --- a/tests/i915/kms_flip_tiling.c
> +++ b/tests/i915/kms_flip_tiling.c
> @@ -65,6 +65,12 @@ static void pipe_crc_free(void)
>   	}
>   }
>   
> +static int try_commit(igt_display_t *display)
> +{
> +	return igt_display_try_commit2(display, display->is_atomic ?
> +				       COMMIT_ATOMIC : COMMIT_LEGACY);
> +}
> +
>   static void
>   test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t modifier[2])
>   {
> @@ -79,13 +85,6 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
>   
>   	mode = igt_output_get_mode(output);
>   
> -	/* Interlaced modes don't support Y/Yf tiling */
> -	if (modifier[0] == I915_FORMAT_MOD_Y_TILED ||
> -	    modifier[0] == I915_FORMAT_MOD_Yf_TILED ||
> -	    modifier[1] == I915_FORMAT_MOD_Y_TILED ||
> -	    modifier[1] == I915_FORMAT_MOD_Yf_TILED)
> -		igt_require(!(mode->flags & DRM_MODE_FLAG_INTERLACE));
> -
>   	primary = igt_output_get_plane(output, 0);
>   
>   	fb_id = igt_create_pattern_fb(data->drm_fd,
> @@ -103,12 +102,16 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
>   
>   	/* Set the crtc and generate a reference CRC. */
>   	igt_plane_set_fb(primary, &data->fb[1]);
> -	igt_display_commit(&data->display);
> +	igt_require_f(try_commit(&data->display) == 0,
> +		      "commit failed with " IGT_MODIFIER_FMT "\n",
> +		      IGT_MODIFIER_ARGS(modifier[1]));
>   	igt_pipe_crc_collect_crc(pipe_crc, &reference_crc);
>   
>   	/* Commit the first fb. */
>   	igt_plane_set_fb(primary, &data->fb[0]);
> -	igt_display_commit(&data->display);
> +	igt_require_f(try_commit(&data->display) == 0,
> +		      "commit failed with " IGT_MODIFIER_FMT "\n",
> +		      IGT_MODIFIER_ARGS(modifier[1]));
>   
>   	/* Flip to the second fb. */
>   	ret = drmModePageFlip(data->drm_fd, output->config.crtc->crtc_id,


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

* Re: [igt-dev] [PATCH i-g-t 5/8] tests/i915/kms_flip_tiling: Generalize away copy-pasta
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 5/8] tests/i915/kms_flip_tiling: Generalize away copy-pasta Ville Syrjala
@ 2021-10-18  7:02   ` Karthik B S
  2021-10-18  7:28     ` Ville Syrjälä
  0 siblings, 1 reply; 22+ messages in thread
From: Karthik B S @ 2021-10-18  7:02 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Replace the huge swaths of copypasta by just looping over the
> set of modifiers reported by the plane, and testing each against
> the others (and itself).
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   tests/i915/kms_flip_tiling.c | 209 +++++------------------------------
>   1 file changed, 30 insertions(+), 179 deletions(-)
>
> diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
> index 63e0b8b9648f..e2e6619baeca 100644
> --- a/tests/i915/kms_flip_tiling.c
> +++ b/tests/i915/kms_flip_tiling.c
> @@ -161,195 +161,46 @@ igt_main
>   		igt_display_require(&data.display, data.drm_fd);
>   	}
>   
> -	/*
> -	 * Test that a page flip from a tiled buffer to a linear one works
> -	 * correctly. First, it sets the crtc with the linear buffer and
> -	 * generates a reference crc for the pipe. Then, the crtc is set with
> -	 * the tiled one and page flip to the linear one issued. A new crc is
> -	 * generated and compared to the reference one.
> -	 */
> -
> -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with x tiling");
> -	igt_subtest_with_dynamic("flip-changes-tiling") {
> -		uint64_t modifier[2] = { I915_FORMAT_MOD_X_TILED,
> -					 DRM_FORMAT_MOD_LINEAR };
> +	igt_describe("Check pageflip between modifiers");
> +	igt_subtest_with_dynamic("flip-change-tiling") {
>   		enum pipe pipe;
>   
> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> -
>   		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> -				test_flip_tiling(&data, pipe, output, modifier);
> -			test_cleanup(&data, pipe, output);
> -		}
> -	}
> -
> -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with y tiling");
> -	igt_subtest_with_dynamic("flip-changes-tiling-Y") {
> -		uint64_t modifier[2] = { I915_FORMAT_MOD_Y_TILED,
> -					 DRM_FORMAT_MOD_LINEAR };
> -		enum pipe pipe;
> +			igt_plane_t *plane;
>   
> -		igt_require_fb_modifiers(data.drm_fd);
> +			igt_output_set_pipe(output, pipe);
>   
> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> +			plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
>   
> -		igt_require(data.gen >= 9);
> +			for (int i = 0; i < plane->format_mod_count; i++) {
> +				if (plane->formats[i] != data.testformat)
> +					continue;
>   
> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> -				test_flip_tiling(&data, pipe, output, modifier);
> -			test_cleanup(&data, pipe, output);
> -		}
> -	}
> -
> -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with yf tiling");
> -	igt_subtest_with_dynamic("flip-changes-tiling-Yf") {
> -		uint64_t modifier[2] = { I915_FORMAT_MOD_Yf_TILED,
> -					 DRM_FORMAT_MOD_LINEAR };
> -		enum pipe pipe;
> +				for (int j = 0; j < plane->format_mod_count; j++) {
> +					uint64_t modifier[2] = {
> +						plane->modifiers[i],
> +						plane->modifiers[j],
> +					};
>   
> -		igt_require_fb_modifiers(data.drm_fd);
> +					if (plane->formats[j] != data.testformat)
> +						continue;
Move this check before assigning modifier[]?
>   
> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> -
> -		igt_require(data.gen >= 9);
> -
> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> -				test_flip_tiling(&data, pipe, output, modifier);
> -			test_cleanup(&data, pipe, output);
> -		}
> -	}
> -
> -	/*
> -	 * Test that a page flip from a tiled buffer to another tiled one works
> -	 * correctly. First, it sets the crtc with the tiled buffer and
> -	 * generates a reference crc for the pipe. Then a page flip to second
> -	 * tiled buffer is issued. A new crc is generated and compared to the
> -	 * reference one.
> -	 */
> -
> -	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with x tiling");
> -	igt_subtest_with_dynamic("flip-X-tiled") {
> -		uint64_t modifier[2] = { I915_FORMAT_MOD_X_TILED,
> -					 I915_FORMAT_MOD_X_TILED };
> -		enum pipe pipe;
> -
> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> -
> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> -				test_flip_tiling(&data, pipe, output, modifier);
> -			test_cleanup(&data, pipe, output);
> -		}
> -	}
> -
> -	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with y tiling");
> -	igt_subtest_with_dynamic("flip-Y-tiled") {
> -		uint64_t modifier[2] = { I915_FORMAT_MOD_Y_TILED,
> -					 I915_FORMAT_MOD_Y_TILED };
> -		enum pipe pipe;
> -
> -		igt_require_fb_modifiers(data.drm_fd);
> -
> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> -
> -		igt_require(data.gen >= 9);
> -
> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> -				test_flip_tiling(&data, pipe, output, modifier);
> -			test_cleanup(&data, pipe, output);
> -		}
> -	}
> -
> -	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with yf tiling");
> -	igt_subtest_with_dynamic("flip-Yf-tiled") {
> -		uint64_t modifier[2] = { I915_FORMAT_MOD_Yf_TILED,
> -					 I915_FORMAT_MOD_Yf_TILED };
> -		enum pipe pipe;
> +					igt_require(igt_plane_has_format_mod(plane,
> +									     data.testformat,
> +									     modifier[0]));
> +					igt_require(igt_plane_has_format_mod(plane,
> +									     data.testformat,
> +									     modifier[1]));

Is this still required? We are already only taking modifiers which are 
supported by this format? Please correct me if I'm missing something here.

With these minor updates, the patch looks good to me.

Reviewed-by: Karthik B S <karthik.b.s@intel.com>

>   
> -		igt_require_fb_modifiers(data.drm_fd);
> -
> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> -
> -		igt_require(data.gen >= 9);
> -
> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> -				test_flip_tiling(&data, pipe, output, modifier);
> -			test_cleanup(&data, pipe, output);
> -		}
> -	}
> -
> -	/*
> -	 * Test that a page flip from a linear buffer to a tiled one works
> -	 * correctly. First, it sets the crtc with the linear buffer and
> -	 * generates a reference crc for the pipe. Then a page flip to a tiled
> -	 * buffer is issued. A new crc is generated and compared to the
> -	 * reference one.
> -	 */
> -
> -	igt_describe("Check pageflip from linear buffer to tiled one works correctly with x tiling");
> -	igt_subtest_with_dynamic("flip-to-X-tiled") {
> -		uint64_t modifier[2] = { DRM_FORMAT_MOD_LINEAR,
> -					 I915_FORMAT_MOD_X_TILED };
> -		enum pipe pipe;
> -
> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> -
> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> -				test_flip_tiling(&data, pipe, output, modifier);
> -			test_cleanup(&data, pipe, output);
> -		}
> -	}
> -
> -	igt_describe("Check pageflip from linear buffer to tiled one works correctly with y tiling");
> -	igt_subtest_with_dynamic("flip-to-Y-tiled") {
> -		uint64_t modifier[2] = { DRM_FORMAT_MOD_LINEAR,
> -					 I915_FORMAT_MOD_Y_TILED };
> -		enum pipe pipe;
> -
> -		igt_require_fb_modifiers(data.drm_fd);
> -
> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> -
> -		igt_require(data.gen >= 9);
> -
> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> -				test_flip_tiling(&data, pipe, output, modifier);
> -			test_cleanup(&data, pipe, output);
> -		}
> -	}
> -
> -	igt_describe("Check pageflip from linear buffer to tiled one works correctly with yf tiling");
> -	igt_subtest_with_dynamic("flip-to-Yf-tiled") {
> -		uint64_t modifier[2] = { DRM_FORMAT_MOD_LINEAR,
> -					 I915_FORMAT_MOD_Yf_TILED };
> -		enum pipe pipe;
> -
> -		igt_require_fb_modifiers(data.drm_fd);
> -
> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> -
> -		igt_require(data.gen >= 9);
> -
> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> -				test_flip_tiling(&data, pipe, output, modifier);
> -			test_cleanup(&data, pipe, output);
> +					igt_dynamic_f("%s-pipe-%s-%s-to-%s",
> +						      igt_output_name(output),
> +						      kmstest_pipe_name(pipe),
> +						      igt_fb_modifier_name(modifier[0]),
> +						      igt_fb_modifier_name(modifier[1]))
> +						test_flip_tiling(&data, pipe, output, modifier);
> +					test_cleanup(&data, pipe, output);
> +				}
> +			}
>   		}
>   	}
>   


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

* Re: [igt-dev] [PATCH i-g-t 6/8] tests/i915/kms_flip_tiling: Drop useless i915 include
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 6/8] tests/i915/kms_flip_tiling: Drop useless i915 include Ville Syrjala
@ 2021-10-18  7:03   ` Karthik B S
  0 siblings, 0 replies; 22+ messages in thread
From: Karthik B S @ 2021-10-18  7:03 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Nothing here needs any i915 specfic things. Drop the header.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> ---
>   tests/i915/kms_flip_tiling.c | 1 -
>   1 file changed, 1 deletion(-)
>
> diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
> index e2e6619baeca..8eecb20c49b9 100644
> --- a/tests/i915/kms_flip_tiling.c
> +++ b/tests/i915/kms_flip_tiling.c
> @@ -29,7 +29,6 @@
>   #include <stdio.h>
>   #include <string.h>
>   
> -#include "i915/gem.h"
>   #include "igt.h"
>   
>   IGT_TEST_DESCRIPTION("Test page flips and tiling scenarios");


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

* Re: [igt-dev] [PATCH i-g-t 7/8] tests/i915/kms_flip_tiling: Stick pipe_crc into data_t
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 7/8] tests/i915/kms_flip_tiling: Stick pipe_crc into data_t Ville Syrjala
@ 2021-10-18  7:04   ` Karthik B S
  0 siblings, 0 replies; 22+ messages in thread
From: Karthik B S @ 2021-10-18  7:04 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Dunno why the pipe_crc has its own variable visible throughout
> the whole file. Just stuff it into data_t where everything else
> lives.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> ---
>   tests/i915/kms_flip_tiling.c | 36 +++++++++++++++---------------------
>   1 file changed, 15 insertions(+), 21 deletions(-)
>
> diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
> index 8eecb20c49b9..604f01dd3766 100644
> --- a/tests/i915/kms_flip_tiling.c
> +++ b/tests/i915/kms_flip_tiling.c
> @@ -39,29 +39,24 @@ typedef struct {
>   	int gen;
>   	uint32_t testformat;
>   	struct igt_fb fb[2];
> +	igt_pipe_crc_t *pipe_crc;
>   } data_t;
>   
> -static igt_pipe_crc_t *_pipe_crc;
> -
> -static igt_pipe_crc_t *pipe_crc_new(data_t *data, int pipe)
> +static void pipe_crc_free(data_t *data)
>   {
> -	if (_pipe_crc) {
> -		igt_pipe_crc_free(_pipe_crc);
> -		_pipe_crc = NULL;
> -	}
> +	if (!data->pipe_crc)
> +		return;
>   
> -	_pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
> -	igt_assert(_pipe_crc);
> -
> -	return _pipe_crc;
> +	igt_pipe_crc_free(data->pipe_crc);
> +	data->pipe_crc = NULL;
>   }
>   
> -static void pipe_crc_free(void)
> +static void pipe_crc_new(data_t *data, int pipe)
>   {
> -	if (_pipe_crc) {
> -		igt_pipe_crc_free(_pipe_crc);
> -		_pipe_crc = NULL;
> -	}
> +	pipe_crc_free(data);
> +
> +	data->pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
> +	igt_assert(data->pipe_crc);
>   }
>   
>   static int try_commit(igt_display_t *display)
> @@ -75,11 +70,10 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
>   {
>   	drmModeModeInfo *mode;
>   	igt_plane_t *primary;
> -	igt_pipe_crc_t *pipe_crc;
>   	igt_crc_t reference_crc, crc;
>   	int fb_id, ret;
>   
> -	pipe_crc = pipe_crc_new(data, pipe);
> +	pipe_crc_new(data, pipe);
>   	igt_output_set_pipe(output, pipe);
>   
>   	mode = igt_output_get_mode(output);
> @@ -104,7 +98,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
>   	igt_require_f(try_commit(&data->display) == 0,
>   		      "commit failed with " IGT_MODIFIER_FMT "\n",
>   		      IGT_MODIFIER_ARGS(modifier[1]));
> -	igt_pipe_crc_collect_crc(pipe_crc, &reference_crc);
> +	igt_pipe_crc_collect_crc(data->pipe_crc, &reference_crc);
>   
>   	/* Commit the first fb. */
>   	igt_plane_set_fb(primary, &data->fb[0]);
> @@ -124,7 +118,7 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
>   	kmstest_wait_for_pageflip(data->drm_fd);
>   
>   	/* Get a crc and compare with the reference. */
> -	igt_pipe_crc_collect_crc(pipe_crc, &crc);
> +	igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
>   	igt_assert_crc_equal(&reference_crc, &crc);
>   }
>   
> @@ -135,7 +129,7 @@ static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
>   
>   	/* Clean up. */
>   	igt_plane_set_fb(primary, NULL);
> -	pipe_crc_free();
> +	pipe_crc_free(data);
>   	igt_output_set_pipe(output, PIPE_ANY);
>   	igt_display_commit(&data->display);
>   


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

* Re: [igt-dev] [PATCH i-g-t 8/8] tests/i915/kms_flip_tiling: Keep CRC running all the time
  2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 8/8] tests/i915/kms_flip_tiling: Keep CRC running all the time Ville Syrjala
@ 2021-10-18  7:05   ` Karthik B S
  0 siblings, 0 replies; 22+ messages in thread
From: Karthik B S @ 2021-10-18  7:05 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> Don't start/stop the CRC capture at every step. This speeds
> up the test significantly.  We also avoid blinking off the
> pipe obviously, and we also make sure to keep the old fbs
> around to avoid pointless extra commits due to rmfb turning
> off the plane whe the current fb vanishes.
>
> The whole test is now ~16s on glk looping over all possible
> ordered modifier pairs. Could probably restrict this to a
> single pipe as well, further cutting that down by almost
> another 2/3. But eg. on GLK not all pipes have all the modifiers
> so could perhaps lose a bit of coverrage that way. And we're
> only few seconds slower than the starting point when the test
> only checked a subset of modifier pairs rather than the full set.
> So perhaps acceptable.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> ---
>   tests/i915/kms_flip_tiling.c | 21 +++++++++++++--------
>   1 file changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
> index 604f01dd3766..08f707f5cb4a 100644
> --- a/tests/i915/kms_flip_tiling.c
> +++ b/tests/i915/kms_flip_tiling.c
> @@ -47,16 +47,19 @@ static void pipe_crc_free(data_t *data)
>   	if (!data->pipe_crc)
>   		return;
>   
> +	igt_pipe_crc_stop(data->pipe_crc);
>   	igt_pipe_crc_free(data->pipe_crc);
>   	data->pipe_crc = NULL;
>   }
>   
>   static void pipe_crc_new(data_t *data, int pipe)
>   {
> -	pipe_crc_free(data);
> +	if (data->pipe_crc)
> +		return;
>   
>   	data->pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, INTEL_PIPE_CRC_SOURCE_AUTO);
>   	igt_assert(data->pipe_crc);
> +	igt_pipe_crc_start(data->pipe_crc);
>   }
>   
>   static int try_commit(igt_display_t *display)
> @@ -68,14 +71,12 @@ static int try_commit(igt_display_t *display)
>   static void
>   test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t modifier[2])
>   {
> +	struct igt_fb old_fb[2] = { data->fb[0], data->fb[1] };
>   	drmModeModeInfo *mode;
>   	igt_plane_t *primary;
>   	igt_crc_t reference_crc, crc;
>   	int fb_id, ret;
>   
> -	pipe_crc_new(data, pipe);
> -	igt_output_set_pipe(output, pipe);
> -
>   	mode = igt_output_get_mode(output);
>   
>   	primary = igt_output_get_plane(output, 0);
> @@ -98,7 +99,8 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
>   	igt_require_f(try_commit(&data->display) == 0,
>   		      "commit failed with " IGT_MODIFIER_FMT "\n",
>   		      IGT_MODIFIER_ARGS(modifier[1]));
> -	igt_pipe_crc_collect_crc(data->pipe_crc, &reference_crc);
> +	pipe_crc_new(data, pipe);
> +	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &reference_crc);
>   
>   	/* Commit the first fb. */
>   	igt_plane_set_fb(primary, &data->fb[0]);
> @@ -118,8 +120,11 @@ test_flip_tiling(data_t *data, enum pipe pipe, igt_output_t *output, uint64_t mo
>   	kmstest_wait_for_pageflip(data->drm_fd);
>   
>   	/* Get a crc and compare with the reference. */
> -	igt_pipe_crc_collect_crc(data->pipe_crc, &crc);
> +	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &crc);
>   	igt_assert_crc_equal(&reference_crc, &crc);
> +
> +	igt_remove_fb(data->drm_fd, &old_fb[0]);
> +	igt_remove_fb(data->drm_fd, &old_fb[1]);
>   }
>   
>   static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
> @@ -131,7 +136,6 @@ static void test_cleanup(data_t *data, enum pipe pipe, igt_output_t *output)
>   	igt_plane_set_fb(primary, NULL);
>   	pipe_crc_free(data);
>   	igt_output_set_pipe(output, PIPE_ANY);
> -	igt_display_commit(&data->display);
>   
>   	igt_remove_fb(data->drm_fd, &data->fb[0]);
>   	igt_remove_fb(data->drm_fd, &data->fb[1]);
> @@ -161,6 +165,7 @@ igt_main
>   		for_each_pipe_with_valid_output(&data.display, pipe, output) {
>   			igt_plane_t *plane;
>   
> +			pipe_crc_free(&data);
>   			igt_output_set_pipe(output, pipe);
>   
>   			plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> @@ -191,9 +196,9 @@ igt_main
>   						      igt_fb_modifier_name(modifier[0]),
>   						      igt_fb_modifier_name(modifier[1]))
>   						test_flip_tiling(&data, pipe, output, modifier);
> -					test_cleanup(&data, pipe, output);
>   				}
>   			}
> +			test_cleanup(&data, pipe, output);
>   		}
>   	}
>   


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

* Re: [igt-dev] [PATCH i-g-t 5/8] tests/i915/kms_flip_tiling: Generalize away copy-pasta
  2021-10-18  7:02   ` Karthik B S
@ 2021-10-18  7:28     ` Ville Syrjälä
  2021-10-18  7:35       ` Karthik B S
  2021-10-18  7:36       ` Ville Syrjälä
  0 siblings, 2 replies; 22+ messages in thread
From: Ville Syrjälä @ 2021-10-18  7:28 UTC (permalink / raw)
  To: Karthik B S; +Cc: igt-dev

On Mon, Oct 18, 2021 at 12:32:18PM +0530, Karthik B S wrote:
> On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> >
> > Replace the huge swaths of copypasta by just looping over the
> > set of modifiers reported by the plane, and testing each against
> > the others (and itself).
> >
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >   tests/i915/kms_flip_tiling.c | 209 +++++------------------------------
> >   1 file changed, 30 insertions(+), 179 deletions(-)
> >
> > diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
> > index 63e0b8b9648f..e2e6619baeca 100644
> > --- a/tests/i915/kms_flip_tiling.c
> > +++ b/tests/i915/kms_flip_tiling.c
> > @@ -161,195 +161,46 @@ igt_main
> >   		igt_display_require(&data.display, data.drm_fd);
> >   	}
> >   
> > -	/*
> > -	 * Test that a page flip from a tiled buffer to a linear one works
> > -	 * correctly. First, it sets the crtc with the linear buffer and
> > -	 * generates a reference crc for the pipe. Then, the crtc is set with
> > -	 * the tiled one and page flip to the linear one issued. A new crc is
> > -	 * generated and compared to the reference one.
> > -	 */
> > -
> > -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with x tiling");
> > -	igt_subtest_with_dynamic("flip-changes-tiling") {
> > -		uint64_t modifier[2] = { I915_FORMAT_MOD_X_TILED,
> > -					 DRM_FORMAT_MOD_LINEAR };
> > +	igt_describe("Check pageflip between modifiers");
> > +	igt_subtest_with_dynamic("flip-change-tiling") {
> >   		enum pipe pipe;
> >   
> > -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> > -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> > -
> >   		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> > -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> > -				test_flip_tiling(&data, pipe, output, modifier);
> > -			test_cleanup(&data, pipe, output);
> > -		}
> > -	}
> > -
> > -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with y tiling");
> > -	igt_subtest_with_dynamic("flip-changes-tiling-Y") {
> > -		uint64_t modifier[2] = { I915_FORMAT_MOD_Y_TILED,
> > -					 DRM_FORMAT_MOD_LINEAR };
> > -		enum pipe pipe;
> > +			igt_plane_t *plane;
> >   
> > -		igt_require_fb_modifiers(data.drm_fd);
> > +			igt_output_set_pipe(output, pipe);
> >   
> > -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> > -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> > +			plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> >   
> > -		igt_require(data.gen >= 9);
> > +			for (int i = 0; i < plane->format_mod_count; i++) {
> > +				if (plane->formats[i] != data.testformat)
> > +					continue;
> >   
> > -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> > -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> > -				test_flip_tiling(&data, pipe, output, modifier);
> > -			test_cleanup(&data, pipe, output);
> > -		}
> > -	}
> > -
> > -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with yf tiling");
> > -	igt_subtest_with_dynamic("flip-changes-tiling-Yf") {
> > -		uint64_t modifier[2] = { I915_FORMAT_MOD_Yf_TILED,
> > -					 DRM_FORMAT_MOD_LINEAR };
> > -		enum pipe pipe;
> > +				for (int j = 0; j < plane->format_mod_count; j++) {
> > +					uint64_t modifier[2] = {
> > +						plane->modifiers[i],
> > +						plane->modifiers[j],
> > +					};
> >   
> > -		igt_require_fb_modifiers(data.drm_fd);
> > +					if (plane->formats[j] != data.testformat)
> > +						continue;
> Move this check before assigning modifier[]?

Then I'd have to split the declaration and assignment.

> >   
> > -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> > -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> > -
> > -		igt_require(data.gen >= 9);
> > -
> > -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> > -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> > -				test_flip_tiling(&data, pipe, output, modifier);
> > -			test_cleanup(&data, pipe, output);
> > -		}
> > -	}
> > -
> > -	/*
> > -	 * Test that a page flip from a tiled buffer to another tiled one works
> > -	 * correctly. First, it sets the crtc with the tiled buffer and
> > -	 * generates a reference crc for the pipe. Then a page flip to second
> > -	 * tiled buffer is issued. A new crc is generated and compared to the
> > -	 * reference one.
> > -	 */
> > -
> > -	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with x tiling");
> > -	igt_subtest_with_dynamic("flip-X-tiled") {
> > -		uint64_t modifier[2] = { I915_FORMAT_MOD_X_TILED,
> > -					 I915_FORMAT_MOD_X_TILED };
> > -		enum pipe pipe;
> > -
> > -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> > -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> > -
> > -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> > -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> > -				test_flip_tiling(&data, pipe, output, modifier);
> > -			test_cleanup(&data, pipe, output);
> > -		}
> > -	}
> > -
> > -	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with y tiling");
> > -	igt_subtest_with_dynamic("flip-Y-tiled") {
> > -		uint64_t modifier[2] = { I915_FORMAT_MOD_Y_TILED,
> > -					 I915_FORMAT_MOD_Y_TILED };
> > -		enum pipe pipe;
> > -
> > -		igt_require_fb_modifiers(data.drm_fd);
> > -
> > -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> > -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> > -
> > -		igt_require(data.gen >= 9);
> > -
> > -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> > -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> > -				test_flip_tiling(&data, pipe, output, modifier);
> > -			test_cleanup(&data, pipe, output);
> > -		}
> > -	}
> > -
> > -	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with yf tiling");
> > -	igt_subtest_with_dynamic("flip-Yf-tiled") {
> > -		uint64_t modifier[2] = { I915_FORMAT_MOD_Yf_TILED,
> > -					 I915_FORMAT_MOD_Yf_TILED };
> > -		enum pipe pipe;
> > +					igt_require(igt_plane_has_format_mod(plane,
> > +									     data.testformat,
> > +									     modifier[0]));
> > +					igt_require(igt_plane_has_format_mod(plane,
> > +									     data.testformat,
> > +									     modifier[1]));
> 
> Is this still required? We are already only taking modifiers which are 
> supported by this format? Please correct me if I'm missing something here.

Not missing anything, these can go. We already checked for this by hand.

Originally I forgot that plane->modifiers[]+plane->formats[] actually
form a SoA tuple, so I just iterated plane->modifiers[] without skipping
anything, thinking that would just iterate each modifier once. And with
that apporach I would have still needed the igt_plane_has_format_mod().
However as I rediscovered the truth I then added the manual
plane->format[] checks which make these redundant.

> 
> With these minor updates, the patch looks good to me.
> 
> Reviewed-by: Karthik B S <karthik.b.s@intel.com>

Thanks.

-- 
Ville Syrjälä
Intel

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

* Re: [igt-dev] [PATCH i-g-t 5/8] tests/i915/kms_flip_tiling: Generalize away copy-pasta
  2021-10-18  7:28     ` Ville Syrjälä
@ 2021-10-18  7:35       ` Karthik B S
  2021-10-18  7:36       ` Ville Syrjälä
  1 sibling, 0 replies; 22+ messages in thread
From: Karthik B S @ 2021-10-18  7:35 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

On 10/18/2021 12:58 PM, Ville Syrjälä wrote:
> On Mon, Oct 18, 2021 at 12:32:18PM +0530, Karthik B S wrote:
>> On 10/14/2021 3:47 AM, Ville Syrjala wrote:
>>> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>>
>>> Replace the huge swaths of copypasta by just looping over the
>>> set of modifiers reported by the plane, and testing each against
>>> the others (and itself).
>>>
>>> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
>>> ---
>>>    tests/i915/kms_flip_tiling.c | 209 +++++------------------------------
>>>    1 file changed, 30 insertions(+), 179 deletions(-)
>>>
>>> diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
>>> index 63e0b8b9648f..e2e6619baeca 100644
>>> --- a/tests/i915/kms_flip_tiling.c
>>> +++ b/tests/i915/kms_flip_tiling.c
>>> @@ -161,195 +161,46 @@ igt_main
>>>    		igt_display_require(&data.display, data.drm_fd);
>>>    	}
>>>    
>>> -	/*
>>> -	 * Test that a page flip from a tiled buffer to a linear one works
>>> -	 * correctly. First, it sets the crtc with the linear buffer and
>>> -	 * generates a reference crc for the pipe. Then, the crtc is set with
>>> -	 * the tiled one and page flip to the linear one issued. A new crc is
>>> -	 * generated and compared to the reference one.
>>> -	 */
>>> -
>>> -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with x tiling");
>>> -	igt_subtest_with_dynamic("flip-changes-tiling") {
>>> -		uint64_t modifier[2] = { I915_FORMAT_MOD_X_TILED,
>>> -					 DRM_FORMAT_MOD_LINEAR };
>>> +	igt_describe("Check pageflip between modifiers");
>>> +	igt_subtest_with_dynamic("flip-change-tiling") {
>>>    		enum pipe pipe;
>>>    
>>> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
>>> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
>>> -
>>>    		for_each_pipe_with_valid_output(&data.display, pipe, output) {
>>> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
>>> -				test_flip_tiling(&data, pipe, output, modifier);
>>> -			test_cleanup(&data, pipe, output);
>>> -		}
>>> -	}
>>> -
>>> -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with y tiling");
>>> -	igt_subtest_with_dynamic("flip-changes-tiling-Y") {
>>> -		uint64_t modifier[2] = { I915_FORMAT_MOD_Y_TILED,
>>> -					 DRM_FORMAT_MOD_LINEAR };
>>> -		enum pipe pipe;
>>> +			igt_plane_t *plane;
>>>    
>>> -		igt_require_fb_modifiers(data.drm_fd);
>>> +			igt_output_set_pipe(output, pipe);
>>>    
>>> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
>>> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
>>> +			plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
>>>    
>>> -		igt_require(data.gen >= 9);
>>> +			for (int i = 0; i < plane->format_mod_count; i++) {
>>> +				if (plane->formats[i] != data.testformat)
>>> +					continue;
>>>    
>>> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
>>> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
>>> -				test_flip_tiling(&data, pipe, output, modifier);
>>> -			test_cleanup(&data, pipe, output);
>>> -		}
>>> -	}
>>> -
>>> -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with yf tiling");
>>> -	igt_subtest_with_dynamic("flip-changes-tiling-Yf") {
>>> -		uint64_t modifier[2] = { I915_FORMAT_MOD_Yf_TILED,
>>> -					 DRM_FORMAT_MOD_LINEAR };
>>> -		enum pipe pipe;
>>> +				for (int j = 0; j < plane->format_mod_count; j++) {
>>> +					uint64_t modifier[2] = {
>>> +						plane->modifiers[i],
>>> +						plane->modifiers[j],
>>> +					};
>>>    
>>> -		igt_require_fb_modifiers(data.drm_fd);
>>> +					if (plane->formats[j] != data.testformat)
>>> +						continue;
>> Move this check before assigning modifier[]?
> Then I'd have to split the declaration and assignment.
Right. Should be fine to keep it as is then.
>
>>>    
>>> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
>>> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
>>> -
>>> -		igt_require(data.gen >= 9);
>>> -
>>> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
>>> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
>>> -				test_flip_tiling(&data, pipe, output, modifier);
>>> -			test_cleanup(&data, pipe, output);
>>> -		}
>>> -	}
>>> -
>>> -	/*
>>> -	 * Test that a page flip from a tiled buffer to another tiled one works
>>> -	 * correctly. First, it sets the crtc with the tiled buffer and
>>> -	 * generates a reference crc for the pipe. Then a page flip to second
>>> -	 * tiled buffer is issued. A new crc is generated and compared to the
>>> -	 * reference one.
>>> -	 */
>>> -
>>> -	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with x tiling");
>>> -	igt_subtest_with_dynamic("flip-X-tiled") {
>>> -		uint64_t modifier[2] = { I915_FORMAT_MOD_X_TILED,
>>> -					 I915_FORMAT_MOD_X_TILED };
>>> -		enum pipe pipe;
>>> -
>>> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
>>> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
>>> -
>>> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
>>> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
>>> -				test_flip_tiling(&data, pipe, output, modifier);
>>> -			test_cleanup(&data, pipe, output);
>>> -		}
>>> -	}
>>> -
>>> -	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with y tiling");
>>> -	igt_subtest_with_dynamic("flip-Y-tiled") {
>>> -		uint64_t modifier[2] = { I915_FORMAT_MOD_Y_TILED,
>>> -					 I915_FORMAT_MOD_Y_TILED };
>>> -		enum pipe pipe;
>>> -
>>> -		igt_require_fb_modifiers(data.drm_fd);
>>> -
>>> -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
>>> -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
>>> -
>>> -		igt_require(data.gen >= 9);
>>> -
>>> -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
>>> -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
>>> -				test_flip_tiling(&data, pipe, output, modifier);
>>> -			test_cleanup(&data, pipe, output);
>>> -		}
>>> -	}
>>> -
>>> -	igt_describe("Check pageflip from tiled buffer to another tiled one works correctly with yf tiling");
>>> -	igt_subtest_with_dynamic("flip-Yf-tiled") {
>>> -		uint64_t modifier[2] = { I915_FORMAT_MOD_Yf_TILED,
>>> -					 I915_FORMAT_MOD_Yf_TILED };
>>> -		enum pipe pipe;
>>> +					igt_require(igt_plane_has_format_mod(plane,
>>> +									     data.testformat,
>>> +									     modifier[0]));
>>> +					igt_require(igt_plane_has_format_mod(plane,
>>> +									     data.testformat,
>>> +									     modifier[1]));
>> Is this still required? We are already only taking modifiers which are
>> supported by this format? Please correct me if I'm missing something here.
> Not missing anything, these can go. We already checked for this by hand.
>
> Originally I forgot that plane->modifiers[]+plane->formats[] actually
> form a SoA tuple, so I just iterated plane->modifiers[] without skipping
> anything, thinking that would just iterate each modifier once. And with
> that apporach I would have still needed the igt_plane_has_format_mod().
> However as I rediscovered the truth I then added the manual
> plane->format[] checks which make these redundant.

Thank you for the clarification.

Thanks,

Karthik.B.S

>
>> With these minor updates, the patch looks good to me.
>>
>> Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> Thanks.
>

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

* Re: [igt-dev] [PATCH i-g-t 5/8] tests/i915/kms_flip_tiling: Generalize away copy-pasta
  2021-10-18  7:28     ` Ville Syrjälä
  2021-10-18  7:35       ` Karthik B S
@ 2021-10-18  7:36       ` Ville Syrjälä
  1 sibling, 0 replies; 22+ messages in thread
From: Ville Syrjälä @ 2021-10-18  7:36 UTC (permalink / raw)
  To: Karthik B S; +Cc: igt-dev

On Mon, Oct 18, 2021 at 10:28:30AM +0300, Ville Syrjälä wrote:
> On Mon, Oct 18, 2021 at 12:32:18PM +0530, Karthik B S wrote:
> > On 10/14/2021 3:47 AM, Ville Syrjala wrote:
> > > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > >
> > > Replace the huge swaths of copypasta by just looping over the
> > > set of modifiers reported by the plane, and testing each against
> > > the others (and itself).
> > >
> > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > ---
> > >   tests/i915/kms_flip_tiling.c | 209 +++++------------------------------
> > >   1 file changed, 30 insertions(+), 179 deletions(-)
> > >
> > > diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
> > > index 63e0b8b9648f..e2e6619baeca 100644
> > > --- a/tests/i915/kms_flip_tiling.c
> > > +++ b/tests/i915/kms_flip_tiling.c
> > > @@ -161,195 +161,46 @@ igt_main
> > >   		igt_display_require(&data.display, data.drm_fd);
> > >   	}
> > >   
> > > -	/*
> > > -	 * Test that a page flip from a tiled buffer to a linear one works
> > > -	 * correctly. First, it sets the crtc with the linear buffer and
> > > -	 * generates a reference crc for the pipe. Then, the crtc is set with
> > > -	 * the tiled one and page flip to the linear one issued. A new crc is
> > > -	 * generated and compared to the reference one.
> > > -	 */
> > > -
> > > -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with x tiling");
> > > -	igt_subtest_with_dynamic("flip-changes-tiling") {
> > > -		uint64_t modifier[2] = { I915_FORMAT_MOD_X_TILED,
> > > -					 DRM_FORMAT_MOD_LINEAR };
> > > +	igt_describe("Check pageflip between modifiers");
> > > +	igt_subtest_with_dynamic("flip-change-tiling") {
> > >   		enum pipe pipe;
> > >   
> > > -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> > > -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> > > -
> > >   		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> > > -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> > > -				test_flip_tiling(&data, pipe, output, modifier);
> > > -			test_cleanup(&data, pipe, output);
> > > -		}
> > > -	}
> > > -
> > > -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with y tiling");
> > > -	igt_subtest_with_dynamic("flip-changes-tiling-Y") {
> > > -		uint64_t modifier[2] = { I915_FORMAT_MOD_Y_TILED,
> > > -					 DRM_FORMAT_MOD_LINEAR };
> > > -		enum pipe pipe;
> > > +			igt_plane_t *plane;
> > >   
> > > -		igt_require_fb_modifiers(data.drm_fd);
> > > +			igt_output_set_pipe(output, pipe);
> > >   
> > > -		for (int i = 0; i < ARRAY_SIZE(modifier); i++)
> > > -			igt_require(igt_display_has_format_mod(&data.display, data.testformat, modifier[i]));
> > > +			plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> > >   
> > > -		igt_require(data.gen >= 9);
> > > +			for (int i = 0; i < plane->format_mod_count; i++) {
> > > +				if (plane->formats[i] != data.testformat)
> > > +					continue;
> > >   
> > > -		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> > > -			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
> > > -				test_flip_tiling(&data, pipe, output, modifier);
> > > -			test_cleanup(&data, pipe, output);
> > > -		}
> > > -	}
> > > -
> > > -	igt_describe("Check pageflip from tiled buffer to linear one works correctly with yf tiling");
> > > -	igt_subtest_with_dynamic("flip-changes-tiling-Yf") {
> > > -		uint64_t modifier[2] = { I915_FORMAT_MOD_Yf_TILED,
> > > -					 DRM_FORMAT_MOD_LINEAR };
> > > -		enum pipe pipe;
> > > +				for (int j = 0; j < plane->format_mod_count; j++) {
> > > +					uint64_t modifier[2] = {
> > > +						plane->modifiers[i],
> > > +						plane->modifiers[j],
> > > +					};
> > >   
> > > -		igt_require_fb_modifiers(data.drm_fd);
> > > +					if (plane->formats[j] != data.testformat)
> > > +						continue;
> > Move this check before assigning modifier[]?
> 
> Then I'd have to split the declaration and assignment.

Hmm. Or I guess I could fully embrace c99 and declare anywhere.
But I don't *think* we're doing that anywhere else in igt so far.

-- 
Ville Syrjälä
Intel

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

end of thread, other threads:[~2021-10-18  7:36 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-13 22:17 [igt-dev] [PATCH i-g-t 0/8] Promote kms_flip_tiling to general Ville Syrjala
2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 1/8] lib/fb: Introduce igt_fb_modifier_name() Ville Syrjala
2021-10-18  6:51   ` Karthik B S
2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 2/8] tests/kms_plane: Use IGT_MODIFIER_{FMT, ARGS} Ville Syrjala
2021-10-18  6:53   ` Karthik B S
2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 3/8] tests/i915/kms_flip_tiling: Drop ancient stride change restrictin Ville Syrjala
2021-10-18  6:56   ` Karthik B S
2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 4/8] tests/i915/kms_flip_tiling: Replace i915 interlace check with try_commit Ville Syrjala
2021-10-18  6:57   ` Karthik B S
2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 5/8] tests/i915/kms_flip_tiling: Generalize away copy-pasta Ville Syrjala
2021-10-18  7:02   ` Karthik B S
2021-10-18  7:28     ` Ville Syrjälä
2021-10-18  7:35       ` Karthik B S
2021-10-18  7:36       ` Ville Syrjälä
2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 6/8] tests/i915/kms_flip_tiling: Drop useless i915 include Ville Syrjala
2021-10-18  7:03   ` Karthik B S
2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 7/8] tests/i915/kms_flip_tiling: Stick pipe_crc into data_t Ville Syrjala
2021-10-18  7:04   ` Karthik B S
2021-10-13 22:17 ` [igt-dev] [PATCH i-g-t 8/8] tests/i915/kms_flip_tiling: Keep CRC running all the time Ville Syrjala
2021-10-18  7:05   ` Karthik B S
2021-10-13 23:07 ` [igt-dev] ✓ Fi.CI.BAT: success for Promote kms_flip_tiling to general Patchwork
2021-10-14  0:10 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

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