All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode
@ 2020-02-06  2:09 José Roberto de Souza
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage José Roberto de Souza
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: José Roberto de Souza @ 2020-02-06  2:09 UTC (permalink / raw)
  To: igt-dev

This will allow us to do tests with different tile types, for now
all tests will continue to run with the default X tiling.

It also allow user to run all tests with liner tiling when set by
parameter.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 tests/kms_frontbuffer_tracking.c | 122 ++++++++++++++++++++-----------
 1 file changed, 78 insertions(+), 44 deletions(-)

diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 2c765c34..63b5d12d 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -130,6 +130,14 @@ struct test_mode {
 		FLIP_COUNT,
 	} flip;
 
+	enum tile_type {
+		TILE_LINEAR = 0,
+		TILE_X,
+		TILE_Y,
+		TILE_COUNT,
+		TILE_DEFAULT = TILE_X,
+	} tile;
+
 	enum igt_draw_method method;
 };
 
@@ -235,7 +243,7 @@ struct {
 	int only_pipes;
 	int shared_fb_x_offset;
 	int shared_fb_y_offset;
-	uint64_t tiling;
+	enum tile_type tiling;
 } opt = {
 	.check_status = true,
 	.check_crc = true,
@@ -248,7 +256,7 @@ struct {
 	.only_pipes = PIPE_COUNT,
 	.shared_fb_x_offset = 248,
 	.shared_fb_y_offset = 500,
-	.tiling = LOCAL_I915_FORMAT_MOD_X_TILED,
+	.tiling = TILE_DEFAULT,
 };
 
 struct modeset_params {
@@ -443,13 +451,26 @@ static bool init_modeset_cached_params(void)
 	return true;
 }
 
+static uint64_t tile_to_modifier(enum tile_type tile)
+{
+	switch (tile) {
+	case TILE_LINEAR:
+		return LOCAL_DRM_FORMAT_MOD_NONE;
+	case TILE_X:
+		return LOCAL_I915_FORMAT_MOD_X_TILED;
+	case TILE_Y:
+		return LOCAL_I915_FORMAT_MOD_Y_TILED;
+	default:
+		igt_assert(false);
+	}
+}
+
 static void create_fb(enum pixel_format pformat, int width, int height,
-		      uint64_t tiling, int plane, struct igt_fb *fb)
+		      enum tile_type tile, int plane, struct igt_fb *fb)
 {
 	uint32_t format;
-	uint64_t size;
+	uint64_t size, modifier;
 	unsigned int stride;
-	uint64_t tiling_for_size;
 
 	switch (pformat) {
 	case FORMAT_RGB888:
@@ -479,19 +500,14 @@ static void create_fb(enum pixel_format pformat, int width, int height,
 		igt_assert(false);
 	}
 
-	/* We want all frontbuffers with the same width/height/format to have
-	 * the same size regardless of tiling since we want to properly exercise
-	 * the Kernel's specific tiling-checking code paths without accidentally
-	 * hitting size-checking ones first. */
-	if (plane == PLANE_CUR)
-		tiling_for_size = LOCAL_DRM_FORMAT_MOD_NONE;
-	else
-		tiling_for_size = opt.tiling;
+	modifier = tile_to_modifier(tile);
 
-	igt_calc_fb_size(drm.fd, width, height, format, tiling_for_size, &size,
+	igt_warn_on(plane == PLANE_CUR && tile != TILE_LINEAR);
+
+	igt_calc_fb_size(drm.fd, width, height, format, modifier, &size,
 			 &stride);
 
-	igt_create_fb_with_bo_size(drm.fd, width, height, format, tiling,
+	igt_create_fb_with_bo_size(drm.fd, width, height, format, modifier,
 				   IGT_COLOR_YCBCR_BT709,
 				   IGT_COLOR_YCBCR_LIMITED_RANGE,
 				   fb, size, stride);
@@ -593,7 +609,7 @@ static void fill_fb(struct igt_fb *fb, enum color ecolor)
  * We do it vertically instead of the more common horizontal case in order to
  * avoid super huge strides not supported by FBC.
  */
-static void create_shared_fb(enum pixel_format format)
+static void create_shared_fb(enum pixel_format format, enum tile_type tile)
 {
 	int prim_w, prim_h, scnd_w, scnd_h, offs_w, offs_h, big_w, big_h;
 	struct screen_fbs *s = &fbs[format];
@@ -620,7 +636,7 @@ static void create_shared_fb(enum pixel_format format)
 
 	big_h = prim_h + scnd_h + offs_h + opt.shared_fb_y_offset;
 
-	create_fb(format, big_w, big_h, opt.tiling, PLANE_PRI, &s->big);
+	create_fb(format, big_w, big_h, tile, PLANE_PRI, &s->big);
 }
 
 static void destroy_fbs(enum pixel_format format)
@@ -642,7 +658,7 @@ static void destroy_fbs(enum pixel_format format)
 	igt_remove_fb(drm.fd, &s->big);
 }
 
-static void create_fbs(enum pixel_format format)
+static void create_fbs(enum pixel_format format, enum tile_type tile)
 {
 	struct screen_fbs *s = &fbs[format];
 
@@ -652,30 +668,29 @@ static void create_fbs(enum pixel_format format)
 	s->initialized = true;
 
 	create_fb(format, prim_mode_params.mode->hdisplay,
-		  prim_mode_params.mode->vdisplay, opt.tiling, PLANE_PRI,
+		  prim_mode_params.mode->vdisplay, tile, PLANE_PRI,
 		  &s->prim_pri);
 	create_fb(format, prim_mode_params.cursor.w,
 		  prim_mode_params.cursor.h, LOCAL_DRM_FORMAT_MOD_NONE,
 		  PLANE_CUR, &s->prim_cur);
 	create_fb(format, prim_mode_params.sprite.w,
-		  prim_mode_params.sprite.h, opt.tiling, PLANE_SPR,
-		  &s->prim_spr);
+		  prim_mode_params.sprite.h, tile, PLANE_SPR, &s->prim_spr);
 
-	create_fb(format, offscreen_fb.w, offscreen_fb.h, opt.tiling, PLANE_PRI,
+	create_fb(format, offscreen_fb.w, offscreen_fb.h, tile, PLANE_PRI,
 		  &s->offscreen);
 
-	create_shared_fb(format);
+	create_shared_fb(format, tile);
 
 	if (!scnd_mode_params.output)
 		return;
 
 	create_fb(format, scnd_mode_params.mode->hdisplay,
-		  scnd_mode_params.mode->vdisplay, opt.tiling, PLANE_PRI,
+		  scnd_mode_params.mode->vdisplay, tile, PLANE_PRI,
 		  &s->scnd_pri);
 	create_fb(format, scnd_mode_params.cursor.w, scnd_mode_params.cursor.h,
 		  LOCAL_DRM_FORMAT_MOD_NONE, PLANE_CUR, &s->scnd_cur);
 	create_fb(format, scnd_mode_params.sprite.w, scnd_mode_params.sprite.h,
-		  opt.tiling, PLANE_SPR, &s->scnd_spr);
+		  tile, PLANE_SPR, &s->scnd_spr);
 }
 
 static void __set_prim_plane_for_params(struct modeset_params *params)
@@ -1175,7 +1190,7 @@ static void collect_crc(igt_crc_t *crc)
 	igt_pipe_crc_collect_crc(pipe_crc, crc);
 }
 
-static void init_blue_crc(enum pixel_format format)
+static void init_blue_crc(enum pixel_format format, enum tile_type tile)
 {
 	struct igt_fb blue;
 
@@ -1183,7 +1198,7 @@ static void init_blue_crc(enum pixel_format format)
 		return;
 
 	create_fb(format, prim_mode_params.mode->hdisplay,
-		  prim_mode_params.mode->vdisplay, opt.tiling, PLANE_PRI,
+		  prim_mode_params.mode->vdisplay, tile, PLANE_PRI,
 		  &blue);
 
 	fill_fb(&blue, COLOR_PRIM_BG);
@@ -1209,7 +1224,7 @@ static void init_blue_crc(enum pixel_format format)
 	blue_crcs[format].initialized = true;
 }
 
-static void init_crcs(enum pixel_format format,
+static void init_crcs(enum pixel_format format, enum tile_type tile,
 		      struct draw_pattern_info *pattern)
 {
 	int r, r_;
@@ -1223,7 +1238,7 @@ static void init_crcs(enum pixel_format format,
 
 	for (r = 0; r < pattern->n_rects; r++)
 		create_fb(format, prim_mode_params.mode->hdisplay,
-			  prim_mode_params.mode->vdisplay, opt.tiling,
+			  prim_mode_params.mode->vdisplay, tile,
 			  PLANE_PRI, &tmp_fbs[r]);
 
 	for (r = 0; r < pattern->n_rects; r++)
@@ -1288,7 +1303,7 @@ static void setup_modeset(void)
 	offscreen_fb.fb = NULL;
 	offscreen_fb.w = 1024;
 	offscreen_fb.h = 1024;
-	create_fbs(FORMAT_DEFAULT);
+	create_fbs(FORMAT_DEFAULT, opt.tiling);
 }
 
 static void teardown_modeset(void)
@@ -1749,7 +1764,7 @@ static void set_crtc_fbs(const struct test_mode *t)
 {
 	struct screen_fbs *s = &fbs[t->format];
 
-	create_fbs(t->format);
+	create_fbs(t->format, t->tile);
 
 	switch (t->fbs) {
 	case FBS_INDIVIDUAL:
@@ -1809,9 +1824,9 @@ static void prepare_subtest_data(const struct test_mode *t,
 	if (need_modeset)
 		igt_display_commit(&drm.display);
 
-	init_blue_crc(t->format);
+	init_blue_crc(t->format, t->tile);
 	if (pattern)
-		init_crcs(t->format, pattern);
+		init_crcs(t->format, t->tile, pattern);
 
 	need_modeset = enable_features_for_test(t);
 	if (need_modeset)
@@ -2290,7 +2305,7 @@ static void flip_subtest(const struct test_mode *t)
 	prepare_subtest(t, pattern);
 
 	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
-		  opt.tiling, t->plane, &fb2);
+		  t->tile, t->plane, &fb2);
 	fill_fb(&fb2, bg_color);
 	orig_fb = params->primary.fb;
 
@@ -2336,7 +2351,7 @@ static void fliptrack_subtest(const struct test_mode *t, enum flip_type type)
 	prepare_subtest(t, pattern);
 
 	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
-		  opt.tiling, t->plane, &fb2);
+		  t->tile, t->plane, &fb2);
 	fill_fb(&fb2, COLOR_PRIM_BG);
 	orig_fb = params->primary.fb;
 
@@ -2494,7 +2509,7 @@ static void fullscreen_plane_subtest(const struct test_mode *t)
 	prepare_subtest(t, pattern);
 
 	rect = pattern->get_rect(&params->primary, 0);
-	create_fb(t->format, rect.w, rect.h, opt.tiling, t->plane,
+	create_fb(t->format, rect.w, rect.h, t->tile, t->plane,
 		  &fullscreen_fb);
 	/* Call pick_color() again since PRI and SPR may not support the same
 	 * pixel formats. */
@@ -2567,7 +2582,7 @@ static void scaledprimary_subtest(const struct test_mode *t)
 	old_fb = reg->fb;
 
 	create_fb(t->format, reg->fb->width, reg->fb->height,
-		  opt.tiling, t->plane, &new_fb);
+		  t->tile, t->plane, &new_fb);
 	fill_fb(&new_fb, COLOR_BLUE);
 
 	igt_draw_rect_fb(drm.fd, drm.bufmgr, NULL, &new_fb, t->method,
@@ -2662,7 +2677,7 @@ static void modesetfrombusy_subtest(const struct test_mode *t)
 	prepare_subtest(t, NULL);
 
 	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
-		  opt.tiling, t->plane, &fb2);
+		  t->tile, t->plane, &fb2);
 	fill_fb(&fb2, COLOR_PRIM_BG);
 
 	start_busy_thread(params->primary.fb);
@@ -2762,7 +2777,7 @@ static void farfromfence_subtest(const struct test_mode *t)
 	prepare_subtest(t, pattern);
 	target = pick_target(t, params);
 
-	create_fb(t->format, params->mode->hdisplay, max_height, opt.tiling,
+	create_fb(t->format, params->mode->hdisplay, max_height, t->tile,
 		  t->plane, &tall_fb);
 
 	fill_fb(&tall_fb, COLOR_PRIM_BG);
@@ -2838,7 +2853,7 @@ static void badstride_subtest(const struct test_mode *t)
 	old_fb = params->primary.fb;
 
 	create_fb(t->format, params->primary.fb->width + 4096, params->primary.fb->height,
-		  opt.tiling, t->plane, &wide_fb);
+		  t->tile, t->plane, &wide_fb);
 	igt_assert(wide_fb.strides[0] > 16384);
 
 	fill_fb(&wide_fb, COLOR_PRIM_BG);
@@ -3018,7 +3033,7 @@ static void basic_subtest(const struct test_mode *t)
 	prepare_subtest(t, pattern);
 
 	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
-		  opt.tiling, t->plane, &fb2);
+		  t->tile, t->plane, &fb2);
 	fb1 = params->primary.fb;
 
 	for (r = 0, method = 0; method < IGT_DRAW_METHOD_COUNT; method++, r++) {
@@ -3093,10 +3108,12 @@ static int opt_handler(int option, int option_index, void *data)
 		break;
 	case 'l':
 		if (!strcmp(optarg, "x"))
-			opt.tiling = LOCAL_I915_FORMAT_MOD_X_TILED;
+			opt.tiling = TILE_X;
 		else if (!strcmp(optarg, "y"))
-			opt.tiling = LOCAL_I915_FORMAT_MOD_Y_TILED;
-		else {
+			opt.tiling = TILE_Y;
+		else if (!strcmp(optarg, "l")) {
+			opt.tiling = TILE_LINEAR;
+		} else {
 			igt_warn("Bad tiling value: %s\n", optarg);
 			return IGT_OPT_HANDLER_ERROR;
 		}
@@ -3228,9 +3245,24 @@ static const char *flip_str(enum flip_type flip)
 	}
 }
 
+static const char *tile_str(enum tile_type tile)
+{
+	switch (tile) {
+	case TILE_LINEAR:
+		return "linear";
+	case TILE_X:
+		return "x";
+	case TILE_Y:
+		return "y";
+	default:
+		igt_assert(false);
+	}
+}
+
 #define TEST_MODE_ITER_BEGIN(t) \
 	t.format = FORMAT_DEFAULT;					   \
 	t.flip = FLIP_PAGEFLIP;						   \
+	t.tile = opt.tiling;						   \
 	for (t.feature = 0; t.feature < FEATURE_COUNT; t.feature++) {	   \
 	for (t.pipes = 0; t.pipes < PIPE_COUNT; t.pipes++) {		   \
 	for (t.screen = 0; t.screen < SCREEN_COUNT; t.screen++) {	   \
@@ -3288,6 +3320,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
 			/* Make sure nothing is using these values. */
 			t.flip = -1;
 			t.method = -1;
+			t.tile = opt.tiling;
 
 			igt_subtest_f("%s-%s-rte",
 				      feature_str(t.feature),
@@ -3472,6 +3505,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
 	t.feature = FEATURE_DEFAULT;
 	t.format = FORMAT_DEFAULT;
 	t.flip = FLIP_PAGEFLIP;
+	t.tile = opt.tiling;
 	igt_subtest("basic") {
 		igt_require_gem(drm.fd);
 		basic_subtest(&t);
-- 
2.25.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage
  2020-02-06  2:09 [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode José Roberto de Souza
@ 2020-02-06  2:09 ` José Roberto de Souza
  2020-02-06 11:57   ` Ville Syrjälä
  2020-02-06 12:00   ` Ville Syrjälä
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_frontbuffer_tracking: Enable positive test on linear tiling José Roberto de Souza
                   ` (5 subsequent siblings)
  6 siblings, 2 replies; 14+ messages in thread
From: José Roberto de Souza @ 2020-02-06  2:09 UTC (permalink / raw)
  To: igt-dev

Lets add some more tiling tests, if tiling is supported by FBC draw
some rectangles and compare the CRC against benchmark if not
supported run the test to guarantee that FBC is disabled.

This is a preparation for when kernel will allow FBC to be enabled
without fences, so we can better test linear and Y tiled
frontbuffers.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 tests/kms_frontbuffer_tracking.c | 50 +++++++++++++++++++++++++-------
 1 file changed, 39 insertions(+), 11 deletions(-)

diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 63b5d12d..d5a64a4d 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -2159,6 +2159,23 @@ static void format_draw_subtest(const struct test_mode *t)
 		badformat_subtest(t);
 }
 
+static bool tiling_is_valid(int feature_flags, enum tile_type tile)
+{
+	if (!(feature_flags & FEATURE_FBC))
+		return true;
+
+	switch (tile) {
+	case TILE_LINEAR:
+		return false;
+	case TILE_X:
+	case TILE_Y:
+		return true;
+	default:
+		igt_assert(false);
+		return false;
+	}
+}
+
 /*
  * slow_draw - sleep a little bit between drawing operations
  *
@@ -2954,22 +2971,22 @@ static void stridechange_subtest(const struct test_mode *t)
 }
 
 /**
- * tilingchange - alternate between tiled and untiled in multiple ways
+ * tiling_disable_fbc_subtest - Check that tiling causes FBC to be disabled
  *
  * METHOD
- *   This test alternates between tiled and untiled frontbuffers of the same
- *   size and format through multiple different APIs: the page flip IOCTL,
- *   normal modesets and the plane APIs.
+ *   This test alternates between a FBC supported and non-supported tiled
+ *   frontbuffers of the same size and format through multiple different
+ *   APIs: the page flip IOCTL, normal modesets and the plane APIs.
  *
  * EXPECTED RESULTS
- *   FBC gets properly disabled for the untiled FB and reenabled for the
- *   tiled FB.
+ *   FBC gets properly disabled for the non-supported tiling and reenabled for
+ *   the supported tiling.
  *
  * FAILURES
  *   Bad Kernels may somehow leave FBC enabled, which can cause FIFO underruns
  *   that lead to CRC assertion failures.
  */
-static void tilingchange_subtest(const struct test_mode *t)
+static void tiling_disable_fbc_subtest(const struct test_mode *t)
 {
 	struct igt_fb new_fb, *old_fb;
 	struct modeset_params *params = pick_params(t);
@@ -2980,13 +2997,13 @@ static void tilingchange_subtest(const struct test_mode *t)
 	old_fb = params->primary.fb;
 
 	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
-		  LOCAL_DRM_FORMAT_MOD_NONE, t->plane, &new_fb);
+		  t->tile, t->plane, &new_fb);
 	fill_fb(&new_fb, COLOR_PRIM_BG);
 
 	for (flip_type = 0; flip_type < FLIP_COUNT; flip_type++) {
 		igt_debug("Flip type: %d\n", flip_type);
 
-		/* Set a buffer with no tiling. */
+		/* Set a buffer with new tiling. */
 		params->primary.fb = &new_fb;
 		page_flip_for_params(params, flip_type);
 		do_assertions(ASSERT_FBC_DISABLED);
@@ -3486,8 +3503,19 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
 			igt_subtest_f("%s-stridechange", feature_str(t.feature))
 				stridechange_subtest(&t);
 
-			igt_subtest_f("%s-tilingchange", feature_str(t.feature))
-				tilingchange_subtest(&t);
+			for (t.tile = TILE_LINEAR; t.tile < TILE_COUNT;
+			     t.tile++) {
+				igt_subtest_f("%s-tiling-%s",
+					      feature_str(t.feature),
+					      tile_str(t.tile)) {
+
+					if (tiling_is_valid(t.feature, t.tile))
+						draw_subtest(&t);
+					else
+						tiling_disable_fbc_subtest(&t);
+				}
+			}
+			t.tile = opt.tiling;
 		}
 
 		if ((t.feature & FEATURE_PSR) || (t.feature & FEATURE_DRRS))
-- 
2.25.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 3/4] tests/kms_frontbuffer_tracking: Enable positive test on linear tiling
  2020-02-06  2:09 [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode José Roberto de Souza
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage José Roberto de Souza
@ 2020-02-06  2:09 ` José Roberto de Souza
  2020-02-06 11:58   ` Ville Syrjälä
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 4/4] DO_NOT_MERGE: Revert "tests/kms_frontbuffer_tracking: Enable positive test on linear tiling" José Roberto de Souza
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: José Roberto de Souza @ 2020-02-06  2:09 UTC (permalink / raw)
  To: igt-dev

i915 is making fences not mandatory to enable FBC in newer platforms.
As BSpec do not have restrictions against tiling formats to enable
FBC it will be possible to enable FBC with linear tiling, so lets test
it.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 tests/kms_frontbuffer_tracking.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index d5a64a4d..2fda9ab7 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -2161,11 +2161,15 @@ static void format_draw_subtest(const struct test_mode *t)
 
 static bool tiling_is_valid(int feature_flags, enum tile_type tile)
 {
+	int devid = intel_get_drm_devid(drm.fd);
+
 	if (!(feature_flags & FEATURE_FBC))
 		return true;
 
 	switch (tile) {
 	case TILE_LINEAR:
+		if (AT_LEAST_GEN(devid, 11))
+			return true;
 		return false;
 	case TILE_X:
 	case TILE_Y:
-- 
2.25.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t 4/4] DO_NOT_MERGE: Revert "tests/kms_frontbuffer_tracking: Enable positive test on linear tiling"
  2020-02-06  2:09 [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode José Roberto de Souza
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage José Roberto de Souza
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_frontbuffer_tracking: Enable positive test on linear tiling José Roberto de Souza
@ 2020-02-06  2:09 ` José Roberto de Souza
  2020-02-06  2:59 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode Patchwork
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: José Roberto de Souza @ 2020-02-06  2:09 UTC (permalink / raw)
  To: igt-dev

Reverting this one as the kernel patches did not landed yet so it would
cause CI to fail.

This reverts commit 4ee05d47f7fe0d97a99bda7f08db7e9a30da61a6.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 tests/kms_frontbuffer_tracking.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index 2fda9ab7..d5a64a4d 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -2161,15 +2161,11 @@ static void format_draw_subtest(const struct test_mode *t)
 
 static bool tiling_is_valid(int feature_flags, enum tile_type tile)
 {
-	int devid = intel_get_drm_devid(drm.fd);
-
 	if (!(feature_flags & FEATURE_FBC))
 		return true;
 
 	switch (tile) {
 	case TILE_LINEAR:
-		if (AT_LEAST_GEN(devid, 11))
-			return true;
 		return false;
 	case TILE_X:
 	case TILE_Y:
-- 
2.25.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode
  2020-02-06  2:09 [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode José Roberto de Souza
                   ` (2 preceding siblings ...)
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 4/4] DO_NOT_MERGE: Revert "tests/kms_frontbuffer_tracking: Enable positive test on linear tiling" José Roberto de Souza
@ 2020-02-06  2:59 ` Patchwork
  2020-02-06 11:53 ` [igt-dev] [PATCH i-g-t 1/4] " Ville Syrjälä
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2020-02-06  2:59 UTC (permalink / raw)
  To: José Roberto de Souza; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode
URL   : https://patchwork.freedesktop.org/series/73071/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_7874 -> IGTPW_4104
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_close_race@basic-threads:
    - fi-byt-j1900:       [PASS][1] -> [INCOMPLETE][2] ([i915#45])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/fi-byt-j1900/igt@gem_close_race@basic-threads.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/fi-byt-j1900/igt@gem_close_race@basic-threads.html

  * igt@i915_selftest@live_blt:
    - fi-hsw-4770r:       [PASS][3] -> [DMESG-FAIL][4] ([i915#553] / [i915#725])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/fi-hsw-4770r/igt@i915_selftest@live_blt.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/fi-hsw-4770r/igt@i915_selftest@live_blt.html

  * igt@kms_addfb_basic@bad-pitch-256:
    - fi-tgl-y:           [PASS][5] -> [DMESG-WARN][6] ([CI#94] / [i915#402]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/fi-tgl-y/igt@kms_addfb_basic@bad-pitch-256.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/fi-tgl-y/igt@kms_addfb_basic@bad-pitch-256.html

  
#### Possible fixes ####

  * igt@gem_exec_parallel@fds:
    - fi-byt-n2820:       [FAIL][7] ([i915#694]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/fi-byt-n2820/igt@gem_exec_parallel@fds.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/fi-byt-n2820/igt@gem_exec_parallel@fds.html

  * igt@i915_selftest@live_gem_contexts:
    - fi-byt-n2820:       [DMESG-FAIL][9] ([i915#722]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/fi-byt-n2820/igt@i915_selftest@live_gem_contexts.html

  * igt@kms_addfb_basic@addfb25-bad-modifier:
    - fi-tgl-y:           [DMESG-WARN][11] ([CI#94] / [i915#402]) -> [PASS][12] +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/fi-tgl-y/igt@kms_addfb_basic@addfb25-bad-modifier.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/fi-tgl-y/igt@kms_addfb_basic@addfb25-bad-modifier.html

  * igt@kms_chamelium@hdmi-crc-fast:
    - fi-icl-u2:          [FAIL][13] ([fdo#109635] / [i915#217]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/fi-icl-u2/igt@kms_chamelium@hdmi-crc-fast.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/fi-icl-u2/igt@kms_chamelium@hdmi-crc-fast.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [FAIL][15] ([fdo#111096] / [i915#323]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Warnings ####

  * igt@gem_exec_parallel@contexts:
    - fi-byt-n2820:       [TIMEOUT][17] ([fdo#112271] / [i915#1084]) -> [TIMEOUT][18] ([fdo#112271])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/fi-byt-n2820/igt@gem_exec_parallel@contexts.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/fi-byt-n2820/igt@gem_exec_parallel@contexts.html

  
  [CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
  [fdo#109635]: https://bugs.freedesktop.org/show_bug.cgi?id=109635
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#1084]: https://gitlab.freedesktop.org/drm/intel/issues/1084
  [i915#217]: https://gitlab.freedesktop.org/drm/intel/issues/217
  [i915#323]: https://gitlab.freedesktop.org/drm/intel/issues/323
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#45]: https://gitlab.freedesktop.org/drm/intel/issues/45
  [i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#722]: https://gitlab.freedesktop.org/drm/intel/issues/722
  [i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725


Participating hosts (51 -> 47)
------------------------------

  Missing    (4): fi-byt-clapper fi-byt-squawks fi-bsw-cyan fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5420 -> IGTPW_4104

  CI-20190529: 20190529
  CI_DRM_7874: 3f234d1ab91ec2321312150116c1285bcb0a260b @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4104: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/index.html
  IGT_5420: 497e13d2b4c1053bcd01bd15739fef55e7694a03 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_frontbuffer_tracking@fbcdrrs-tiling-linear
+igt@kms_frontbuffer_tracking@fbcdrrs-tiling-x
+igt@kms_frontbuffer_tracking@fbcdrrs-tiling-y
+igt@kms_frontbuffer_tracking@fbcpsrdrrs-tiling-linear
+igt@kms_frontbuffer_tracking@fbcpsrdrrs-tiling-x
+igt@kms_frontbuffer_tracking@fbcpsrdrrs-tiling-y
+igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear
+igt@kms_frontbuffer_tracking@fbcpsr-tiling-x
+igt@kms_frontbuffer_tracking@fbcpsr-tiling-y
+igt@kms_frontbuffer_tracking@fbc-tiling-linear
+igt@kms_frontbuffer_tracking@fbc-tiling-x
+igt@kms_frontbuffer_tracking@fbc-tiling-y
-igt@kms_frontbuffer_tracking@fbcdrrs-tilingchange
-igt@kms_frontbuffer_tracking@fbcpsrdrrs-tilingchange
-igt@kms_frontbuffer_tracking@fbcpsr-tilingchange
-igt@kms_frontbuffer_tracking@fbc-tilingchange

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode
  2020-02-06  2:09 [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode José Roberto de Souza
                   ` (3 preceding siblings ...)
  2020-02-06  2:59 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode Patchwork
@ 2020-02-06 11:53 ` Ville Syrjälä
  2020-03-10 23:54   ` Souza, Jose
  2020-02-06 15:58 ` [igt-dev] ✗ GitLab.Pipeline: failure for series starting with [i-g-t,1/4] " Patchwork
  2020-02-08 14:56 ` [igt-dev] ✗ Fi.CI.IGT: " Patchwork
  6 siblings, 1 reply; 14+ messages in thread
From: Ville Syrjälä @ 2020-02-06 11:53 UTC (permalink / raw)
  To: José Roberto de Souza; +Cc: igt-dev

On Wed, Feb 05, 2020 at 06:09:41PM -0800, José Roberto de Souza wrote:
> This will allow us to do tests with different tile types, for now
> all tests will continue to run with the default X tiling.
> 
> It also allow user to run all tests with liner tiling when set by
> parameter.
> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  tests/kms_frontbuffer_tracking.c | 122 ++++++++++++++++++++-----------
>  1 file changed, 78 insertions(+), 44 deletions(-)
> 
> diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
> index 2c765c34..63b5d12d 100644
> --- a/tests/kms_frontbuffer_tracking.c
> +++ b/tests/kms_frontbuffer_tracking.c
> @@ -130,6 +130,14 @@ struct test_mode {
>  		FLIP_COUNT,
>  	} flip;
>  
> +	enum tile_type {
> +		TILE_LINEAR = 0,
> +		TILE_X,
> +		TILE_Y,
> +		TILE_COUNT,
> +		TILE_DEFAULT = TILE_X,
> +	} tile;

Looks totally redundant. What's the point of this enum?

> +
>  	enum igt_draw_method method;
>  };
>  
> @@ -235,7 +243,7 @@ struct {
>  	int only_pipes;
>  	int shared_fb_x_offset;
>  	int shared_fb_y_offset;
> -	uint64_t tiling;
> +	enum tile_type tiling;
>  } opt = {
>  	.check_status = true,
>  	.check_crc = true,
> @@ -248,7 +256,7 @@ struct {
>  	.only_pipes = PIPE_COUNT,
>  	.shared_fb_x_offset = 248,
>  	.shared_fb_y_offset = 500,
> -	.tiling = LOCAL_I915_FORMAT_MOD_X_TILED,
> +	.tiling = TILE_DEFAULT,
>  };
>  
>  struct modeset_params {
> @@ -443,13 +451,26 @@ static bool init_modeset_cached_params(void)
>  	return true;
>  }
>  
> +static uint64_t tile_to_modifier(enum tile_type tile)
> +{
> +	switch (tile) {
> +	case TILE_LINEAR:
> +		return LOCAL_DRM_FORMAT_MOD_NONE;
> +	case TILE_X:
> +		return LOCAL_I915_FORMAT_MOD_X_TILED;
> +	case TILE_Y:
> +		return LOCAL_I915_FORMAT_MOD_Y_TILED;
> +	default:
> +		igt_assert(false);
> +	}
> +}
> +
>  static void create_fb(enum pixel_format pformat, int width, int height,
> -		      uint64_t tiling, int plane, struct igt_fb *fb)
> +		      enum tile_type tile, int plane, struct igt_fb *fb)
>  {
>  	uint32_t format;
> -	uint64_t size;
> +	uint64_t size, modifier;
>  	unsigned int stride;
> -	uint64_t tiling_for_size;
>  
>  	switch (pformat) {
>  	case FORMAT_RGB888:
> @@ -479,19 +500,14 @@ static void create_fb(enum pixel_format pformat, int width, int height,
>  		igt_assert(false);
>  	}
>  
> -	/* We want all frontbuffers with the same width/height/format to have
> -	 * the same size regardless of tiling since we want to properly exercise
> -	 * the Kernel's specific tiling-checking code paths without accidentally
> -	 * hitting size-checking ones first. */
> -	if (plane == PLANE_CUR)
> -		tiling_for_size = LOCAL_DRM_FORMAT_MOD_NONE;
> -	else
> -		tiling_for_size = opt.tiling;
> +	modifier = tile_to_modifier(tile);
>  
> -	igt_calc_fb_size(drm.fd, width, height, format, tiling_for_size, &size,
> +	igt_warn_on(plane == PLANE_CUR && tile != TILE_LINEAR);
> +
> +	igt_calc_fb_size(drm.fd, width, height, format, modifier, &size,
>  			 &stride);
>  
> -	igt_create_fb_with_bo_size(drm.fd, width, height, format, tiling,
> +	igt_create_fb_with_bo_size(drm.fd, width, height, format, modifier,
>  				   IGT_COLOR_YCBCR_BT709,
>  				   IGT_COLOR_YCBCR_LIMITED_RANGE,
>  				   fb, size, stride);
> @@ -593,7 +609,7 @@ static void fill_fb(struct igt_fb *fb, enum color ecolor)
>   * We do it vertically instead of the more common horizontal case in order to
>   * avoid super huge strides not supported by FBC.
>   */
> -static void create_shared_fb(enum pixel_format format)
> +static void create_shared_fb(enum pixel_format format, enum tile_type tile)
>  {
>  	int prim_w, prim_h, scnd_w, scnd_h, offs_w, offs_h, big_w, big_h;
>  	struct screen_fbs *s = &fbs[format];
> @@ -620,7 +636,7 @@ static void create_shared_fb(enum pixel_format format)
>  
>  	big_h = prim_h + scnd_h + offs_h + opt.shared_fb_y_offset;
>  
> -	create_fb(format, big_w, big_h, opt.tiling, PLANE_PRI, &s->big);
> +	create_fb(format, big_w, big_h, tile, PLANE_PRI, &s->big);
>  }
>  
>  static void destroy_fbs(enum pixel_format format)
> @@ -642,7 +658,7 @@ static void destroy_fbs(enum pixel_format format)
>  	igt_remove_fb(drm.fd, &s->big);
>  }
>  
> -static void create_fbs(enum pixel_format format)
> +static void create_fbs(enum pixel_format format, enum tile_type tile)
>  {
>  	struct screen_fbs *s = &fbs[format];
>  
> @@ -652,30 +668,29 @@ static void create_fbs(enum pixel_format format)
>  	s->initialized = true;
>  
>  	create_fb(format, prim_mode_params.mode->hdisplay,
> -		  prim_mode_params.mode->vdisplay, opt.tiling, PLANE_PRI,
> +		  prim_mode_params.mode->vdisplay, tile, PLANE_PRI,
>  		  &s->prim_pri);
>  	create_fb(format, prim_mode_params.cursor.w,
>  		  prim_mode_params.cursor.h, LOCAL_DRM_FORMAT_MOD_NONE,
>  		  PLANE_CUR, &s->prim_cur);
>  	create_fb(format, prim_mode_params.sprite.w,
> -		  prim_mode_params.sprite.h, opt.tiling, PLANE_SPR,
> -		  &s->prim_spr);
> +		  prim_mode_params.sprite.h, tile, PLANE_SPR, &s->prim_spr);
>  
> -	create_fb(format, offscreen_fb.w, offscreen_fb.h, opt.tiling, PLANE_PRI,
> +	create_fb(format, offscreen_fb.w, offscreen_fb.h, tile, PLANE_PRI,
>  		  &s->offscreen);
>  
> -	create_shared_fb(format);
> +	create_shared_fb(format, tile);
>  
>  	if (!scnd_mode_params.output)
>  		return;
>  
>  	create_fb(format, scnd_mode_params.mode->hdisplay,
> -		  scnd_mode_params.mode->vdisplay, opt.tiling, PLANE_PRI,
> +		  scnd_mode_params.mode->vdisplay, tile, PLANE_PRI,
>  		  &s->scnd_pri);
>  	create_fb(format, scnd_mode_params.cursor.w, scnd_mode_params.cursor.h,
>  		  LOCAL_DRM_FORMAT_MOD_NONE, PLANE_CUR, &s->scnd_cur);
>  	create_fb(format, scnd_mode_params.sprite.w, scnd_mode_params.sprite.h,
> -		  opt.tiling, PLANE_SPR, &s->scnd_spr);
> +		  tile, PLANE_SPR, &s->scnd_spr);
>  }
>  
>  static void __set_prim_plane_for_params(struct modeset_params *params)
> @@ -1175,7 +1190,7 @@ static void collect_crc(igt_crc_t *crc)
>  	igt_pipe_crc_collect_crc(pipe_crc, crc);
>  }
>  
> -static void init_blue_crc(enum pixel_format format)
> +static void init_blue_crc(enum pixel_format format, enum tile_type tile)
>  {
>  	struct igt_fb blue;
>  
> @@ -1183,7 +1198,7 @@ static void init_blue_crc(enum pixel_format format)
>  		return;
>  
>  	create_fb(format, prim_mode_params.mode->hdisplay,
> -		  prim_mode_params.mode->vdisplay, opt.tiling, PLANE_PRI,
> +		  prim_mode_params.mode->vdisplay, tile, PLANE_PRI,
>  		  &blue);
>  
>  	fill_fb(&blue, COLOR_PRIM_BG);
> @@ -1209,7 +1224,7 @@ static void init_blue_crc(enum pixel_format format)
>  	blue_crcs[format].initialized = true;
>  }
>  
> -static void init_crcs(enum pixel_format format,
> +static void init_crcs(enum pixel_format format, enum tile_type tile,
>  		      struct draw_pattern_info *pattern)
>  {
>  	int r, r_;
> @@ -1223,7 +1238,7 @@ static void init_crcs(enum pixel_format format,
>  
>  	for (r = 0; r < pattern->n_rects; r++)
>  		create_fb(format, prim_mode_params.mode->hdisplay,
> -			  prim_mode_params.mode->vdisplay, opt.tiling,
> +			  prim_mode_params.mode->vdisplay, tile,
>  			  PLANE_PRI, &tmp_fbs[r]);
>  
>  	for (r = 0; r < pattern->n_rects; r++)
> @@ -1288,7 +1303,7 @@ static void setup_modeset(void)
>  	offscreen_fb.fb = NULL;
>  	offscreen_fb.w = 1024;
>  	offscreen_fb.h = 1024;
> -	create_fbs(FORMAT_DEFAULT);
> +	create_fbs(FORMAT_DEFAULT, opt.tiling);
>  }
>  
>  static void teardown_modeset(void)
> @@ -1749,7 +1764,7 @@ static void set_crtc_fbs(const struct test_mode *t)
>  {
>  	struct screen_fbs *s = &fbs[t->format];
>  
> -	create_fbs(t->format);
> +	create_fbs(t->format, t->tile);
>  
>  	switch (t->fbs) {
>  	case FBS_INDIVIDUAL:
> @@ -1809,9 +1824,9 @@ static void prepare_subtest_data(const struct test_mode *t,
>  	if (need_modeset)
>  		igt_display_commit(&drm.display);
>  
> -	init_blue_crc(t->format);
> +	init_blue_crc(t->format, t->tile);
>  	if (pattern)
> -		init_crcs(t->format, pattern);
> +		init_crcs(t->format, t->tile, pattern);
>  
>  	need_modeset = enable_features_for_test(t);
>  	if (need_modeset)
> @@ -2290,7 +2305,7 @@ static void flip_subtest(const struct test_mode *t)
>  	prepare_subtest(t, pattern);
>  
>  	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
> -		  opt.tiling, t->plane, &fb2);
> +		  t->tile, t->plane, &fb2);
>  	fill_fb(&fb2, bg_color);
>  	orig_fb = params->primary.fb;
>  
> @@ -2336,7 +2351,7 @@ static void fliptrack_subtest(const struct test_mode *t, enum flip_type type)
>  	prepare_subtest(t, pattern);
>  
>  	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
> -		  opt.tiling, t->plane, &fb2);
> +		  t->tile, t->plane, &fb2);
>  	fill_fb(&fb2, COLOR_PRIM_BG);
>  	orig_fb = params->primary.fb;
>  
> @@ -2494,7 +2509,7 @@ static void fullscreen_plane_subtest(const struct test_mode *t)
>  	prepare_subtest(t, pattern);
>  
>  	rect = pattern->get_rect(&params->primary, 0);
> -	create_fb(t->format, rect.w, rect.h, opt.tiling, t->plane,
> +	create_fb(t->format, rect.w, rect.h, t->tile, t->plane,
>  		  &fullscreen_fb);
>  	/* Call pick_color() again since PRI and SPR may not support the same
>  	 * pixel formats. */
> @@ -2567,7 +2582,7 @@ static void scaledprimary_subtest(const struct test_mode *t)
>  	old_fb = reg->fb;
>  
>  	create_fb(t->format, reg->fb->width, reg->fb->height,
> -		  opt.tiling, t->plane, &new_fb);
> +		  t->tile, t->plane, &new_fb);
>  	fill_fb(&new_fb, COLOR_BLUE);
>  
>  	igt_draw_rect_fb(drm.fd, drm.bufmgr, NULL, &new_fb, t->method,
> @@ -2662,7 +2677,7 @@ static void modesetfrombusy_subtest(const struct test_mode *t)
>  	prepare_subtest(t, NULL);
>  
>  	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
> -		  opt.tiling, t->plane, &fb2);
> +		  t->tile, t->plane, &fb2);
>  	fill_fb(&fb2, COLOR_PRIM_BG);
>  
>  	start_busy_thread(params->primary.fb);
> @@ -2762,7 +2777,7 @@ static void farfromfence_subtest(const struct test_mode *t)
>  	prepare_subtest(t, pattern);
>  	target = pick_target(t, params);
>  
> -	create_fb(t->format, params->mode->hdisplay, max_height, opt.tiling,
> +	create_fb(t->format, params->mode->hdisplay, max_height, t->tile,
>  		  t->plane, &tall_fb);
>  
>  	fill_fb(&tall_fb, COLOR_PRIM_BG);
> @@ -2838,7 +2853,7 @@ static void badstride_subtest(const struct test_mode *t)
>  	old_fb = params->primary.fb;
>  
>  	create_fb(t->format, params->primary.fb->width + 4096, params->primary.fb->height,
> -		  opt.tiling, t->plane, &wide_fb);
> +		  t->tile, t->plane, &wide_fb);
>  	igt_assert(wide_fb.strides[0] > 16384);
>  
>  	fill_fb(&wide_fb, COLOR_PRIM_BG);
> @@ -3018,7 +3033,7 @@ static void basic_subtest(const struct test_mode *t)
>  	prepare_subtest(t, pattern);
>  
>  	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
> -		  opt.tiling, t->plane, &fb2);
> +		  t->tile, t->plane, &fb2);
>  	fb1 = params->primary.fb;
>  
>  	for (r = 0, method = 0; method < IGT_DRAW_METHOD_COUNT; method++, r++) {
> @@ -3093,10 +3108,12 @@ static int opt_handler(int option, int option_index, void *data)
>  		break;
>  	case 'l':
>  		if (!strcmp(optarg, "x"))
> -			opt.tiling = LOCAL_I915_FORMAT_MOD_X_TILED;
> +			opt.tiling = TILE_X;
>  		else if (!strcmp(optarg, "y"))
> -			opt.tiling = LOCAL_I915_FORMAT_MOD_Y_TILED;
> -		else {
> +			opt.tiling = TILE_Y;
> +		else if (!strcmp(optarg, "l")) {
> +			opt.tiling = TILE_LINEAR;
> +		} else {
>  			igt_warn("Bad tiling value: %s\n", optarg);
>  			return IGT_OPT_HANDLER_ERROR;
>  		}
> @@ -3228,9 +3245,24 @@ static const char *flip_str(enum flip_type flip)
>  	}
>  }
>  
> +static const char *tile_str(enum tile_type tile)
> +{
> +	switch (tile) {
> +	case TILE_LINEAR:
> +		return "linear";
> +	case TILE_X:
> +		return "x";
> +	case TILE_Y:
> +		return "y";
> +	default:
> +		igt_assert(false);
> +	}
> +}
> +
>  #define TEST_MODE_ITER_BEGIN(t) \
>  	t.format = FORMAT_DEFAULT;					   \
>  	t.flip = FLIP_PAGEFLIP;						   \
> +	t.tile = opt.tiling;						   \
>  	for (t.feature = 0; t.feature < FEATURE_COUNT; t.feature++) {	   \
>  	for (t.pipes = 0; t.pipes < PIPE_COUNT; t.pipes++) {		   \
>  	for (t.screen = 0; t.screen < SCREEN_COUNT; t.screen++) {	   \
> @@ -3288,6 +3320,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
>  			/* Make sure nothing is using these values. */
>  			t.flip = -1;
>  			t.method = -1;
> +			t.tile = opt.tiling;
>  
>  			igt_subtest_f("%s-%s-rte",
>  				      feature_str(t.feature),
> @@ -3472,6 +3505,7 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
>  	t.feature = FEATURE_DEFAULT;
>  	t.format = FORMAT_DEFAULT;
>  	t.flip = FLIP_PAGEFLIP;
> +	t.tile = opt.tiling;
>  	igt_subtest("basic") {
>  		igt_require_gem(drm.fd);
>  		basic_subtest(&t);
> -- 
> 2.25.0

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage José Roberto de Souza
@ 2020-02-06 11:57   ` Ville Syrjälä
  2020-03-10 23:59     ` Souza, Jose
  2020-02-06 12:00   ` Ville Syrjälä
  1 sibling, 1 reply; 14+ messages in thread
From: Ville Syrjälä @ 2020-02-06 11:57 UTC (permalink / raw)
  To: José Roberto de Souza; +Cc: igt-dev

On Wed, Feb 05, 2020 at 06:09:42PM -0800, José Roberto de Souza wrote:
> Lets add some more tiling tests, if tiling is supported by FBC draw
> some rectangles and compare the CRC against benchmark if not
> supported run the test to guarantee that FBC is disabled.
> 
> This is a preparation for when kernel will allow FBC to be enabled
> without fences, so we can better test linear and Y tiled
> frontbuffers.
> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  tests/kms_frontbuffer_tracking.c | 50 +++++++++++++++++++++++++-------
>  1 file changed, 39 insertions(+), 11 deletions(-)
> 
> diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
> index 63b5d12d..d5a64a4d 100644
> --- a/tests/kms_frontbuffer_tracking.c
> +++ b/tests/kms_frontbuffer_tracking.c
> @@ -2159,6 +2159,23 @@ static void format_draw_subtest(const struct test_mode *t)
>  		badformat_subtest(t);
>  }
>  
> +static bool tiling_is_valid(int feature_flags, enum tile_type tile)
> +{
> +	if (!(feature_flags & FEATURE_FBC))
> +		return true;
> +
> +	switch (tile) {
> +	case TILE_LINEAR:
> +		return false;
> +	case TILE_X:
> +	case TILE_Y:
> +		return true;
> +	default:
> +		igt_assert(false);
> +		return false;
> +	}
> +}
> +
>  /*
>   * slow_draw - sleep a little bit between drawing operations
>   *
> @@ -2954,22 +2971,22 @@ static void stridechange_subtest(const struct test_mode *t)
>  }
>  
>  /**
> - * tilingchange - alternate between tiled and untiled in multiple ways
> + * tiling_disable_fbc_subtest - Check that tiling causes FBC to be disabled

Check that *unsupported* tiling ... ?

>   *
>   * METHOD
> - *   This test alternates between tiled and untiled frontbuffers of the same
> - *   size and format through multiple different APIs: the page flip IOCTL,
> - *   normal modesets and the plane APIs.
> + *   This test alternates between a FBC supported and non-supported tiled
> + *   frontbuffers of the same size and format through multiple different
> + *   APIs: the page flip IOCTL, normal modesets and the plane APIs.
>   *
>   * EXPECTED RESULTS
> - *   FBC gets properly disabled for the untiled FB and reenabled for the
> - *   tiled FB.
> + *   FBC gets properly disabled for the non-supported tiling and reenabled for
> + *   the supported tiling.
>   *
>   * FAILURES
>   *   Bad Kernels may somehow leave FBC enabled, which can cause FIFO underruns
>   *   that lead to CRC assertion failures.
>   */
> -static void tilingchange_subtest(const struct test_mode *t)
> +static void tiling_disable_fbc_subtest(const struct test_mode *t)
>  {
>  	struct igt_fb new_fb, *old_fb;
>  	struct modeset_params *params = pick_params(t);
> @@ -2980,13 +2997,13 @@ static void tilingchange_subtest(const struct test_mode *t)
>  	old_fb = params->primary.fb;
>  
>  	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
> -		  LOCAL_DRM_FORMAT_MOD_NONE, t->plane, &new_fb);
> +		  t->tile, t->plane, &new_fb);

Do we really want to change this to X tiled (I think that's what you set
as default)?

>  	fill_fb(&new_fb, COLOR_PRIM_BG);
>  
>  	for (flip_type = 0; flip_type < FLIP_COUNT; flip_type++) {
>  		igt_debug("Flip type: %d\n", flip_type);
>  
> -		/* Set a buffer with no tiling. */
> +		/* Set a buffer with new tiling. */
>  		params->primary.fb = &new_fb;
>  		page_flip_for_params(params, flip_type);
>  		do_assertions(ASSERT_FBC_DISABLED);
> @@ -3486,8 +3503,19 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
>  			igt_subtest_f("%s-stridechange", feature_str(t.feature))
>  				stridechange_subtest(&t);
>  
> -			igt_subtest_f("%s-tilingchange", feature_str(t.feature))
> -				tilingchange_subtest(&t);
> +			for (t.tile = TILE_LINEAR; t.tile < TILE_COUNT;
> +			     t.tile++) {
> +				igt_subtest_f("%s-tiling-%s",
> +					      feature_str(t.feature),
> +					      tile_str(t.tile)) {
> +
> +					if (tiling_is_valid(t.feature, t.tile))
> +						draw_subtest(&t);
> +					else
> +						tiling_disable_fbc_subtest(&t);
> +				}
> +			}
> +			t.tile = opt.tiling;
>  		}
>  
>  		if ((t.feature & FEATURE_PSR) || (t.feature & FEATURE_DRRS))
> -- 
> 2.25.0

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 3/4] tests/kms_frontbuffer_tracking: Enable positive test on linear tiling
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_frontbuffer_tracking: Enable positive test on linear tiling José Roberto de Souza
@ 2020-02-06 11:58   ` Ville Syrjälä
  0 siblings, 0 replies; 14+ messages in thread
From: Ville Syrjälä @ 2020-02-06 11:58 UTC (permalink / raw)
  To: José Roberto de Souza; +Cc: igt-dev

On Wed, Feb 05, 2020 at 06:09:43PM -0800, José Roberto de Souza wrote:
> i915 is making fences not mandatory to enable FBC in newer platforms.
> As BSpec do not have restrictions against tiling formats to enable
> FBC it will be possible to enable FBC with linear tiling, so lets test
> it.
> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  tests/kms_frontbuffer_tracking.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
> index d5a64a4d..2fda9ab7 100644
> --- a/tests/kms_frontbuffer_tracking.c
> +++ b/tests/kms_frontbuffer_tracking.c
> @@ -2161,11 +2161,15 @@ static void format_draw_subtest(const struct test_mode *t)
>  
>  static bool tiling_is_valid(int feature_flags, enum tile_type tile)
>  {
> +	int devid = intel_get_drm_devid(drm.fd);
> +
>  	if (!(feature_flags & FEATURE_FBC))
>  		return true;
>  
>  	switch (tile) {
>  	case TILE_LINEAR:
> +		if (AT_LEAST_GEN(devid, 11))

gen9+ IIRC

> +			return true;
>  		return false;
>  	case TILE_X:
>  	case TILE_Y:
> -- 
> 2.25.0

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage
  2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage José Roberto de Souza
  2020-02-06 11:57   ` Ville Syrjälä
@ 2020-02-06 12:00   ` Ville Syrjälä
  2020-03-11  0:00     ` Souza, Jose
  1 sibling, 1 reply; 14+ messages in thread
From: Ville Syrjälä @ 2020-02-06 12:00 UTC (permalink / raw)
  To: José Roberto de Souza; +Cc: igt-dev

On Wed, Feb 05, 2020 at 06:09:42PM -0800, José Roberto de Souza wrote:
> Lets add some more tiling tests, if tiling is supported by FBC draw
> some rectangles and compare the CRC against benchmark if not
> supported run the test to guarantee that FBC is disabled.
> 
> This is a preparation for when kernel will allow FBC to be enabled
> without fences, so we can better test linear and Y tiled
> frontbuffers.
> 
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  tests/kms_frontbuffer_tracking.c | 50 +++++++++++++++++++++++++-------
>  1 file changed, 39 insertions(+), 11 deletions(-)
> 
> diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
> index 63b5d12d..d5a64a4d 100644
> --- a/tests/kms_frontbuffer_tracking.c
> +++ b/tests/kms_frontbuffer_tracking.c
> @@ -2159,6 +2159,23 @@ static void format_draw_subtest(const struct test_mode *t)
>  		badformat_subtest(t);
>  }
>  
> +static bool tiling_is_valid(int feature_flags, enum tile_type tile)
> +{
> +	if (!(feature_flags & FEATURE_FBC))
> +		return true;
> +
> +	switch (tile) {
> +	case TILE_LINEAR:
> +		return false;
> +	case TILE_X:
> +	case TILE_Y:
> +		return true;
> +	default:
> +		igt_assert(false);
> +		return false;
> +	}
> +}
> +
>  /*
>   * slow_draw - sleep a little bit between drawing operations
>   *
> @@ -2954,22 +2971,22 @@ static void stridechange_subtest(const struct test_mode *t)
>  }
>  
>  /**
> - * tilingchange - alternate between tiled and untiled in multiple ways
> + * tiling_disable_fbc_subtest - Check that tiling causes FBC to be disabled
>   *
>   * METHOD
> - *   This test alternates between tiled and untiled frontbuffers of the same
> - *   size and format through multiple different APIs: the page flip IOCTL,
> - *   normal modesets and the plane APIs.
> + *   This test alternates between a FBC supported and non-supported tiled
> + *   frontbuffers of the same size and format through multiple different
> + *   APIs: the page flip IOCTL, normal modesets and the plane APIs.
>   *
>   * EXPECTED RESULTS
> - *   FBC gets properly disabled for the untiled FB and reenabled for the
> - *   tiled FB.
> + *   FBC gets properly disabled for the non-supported tiling and reenabled for
> + *   the supported tiling.
>   *
>   * FAILURES
>   *   Bad Kernels may somehow leave FBC enabled, which can cause FIFO underruns
>   *   that lead to CRC assertion failures.
>   */
> -static void tilingchange_subtest(const struct test_mode *t)
> +static void tiling_disable_fbc_subtest(const struct test_mode *t)
>  {
>  	struct igt_fb new_fb, *old_fb;
>  	struct modeset_params *params = pick_params(t);
> @@ -2980,13 +2997,13 @@ static void tilingchange_subtest(const struct test_mode *t)
>  	old_fb = params->primary.fb;
>  
>  	create_fb(t->format, params->primary.fb->width, params->primary.fb->height,
> -		  LOCAL_DRM_FORMAT_MOD_NONE, t->plane, &new_fb);
> +		  t->tile, t->plane, &new_fb);
>  	fill_fb(&new_fb, COLOR_PRIM_BG);
>  
>  	for (flip_type = 0; flip_type < FLIP_COUNT; flip_type++) {
>  		igt_debug("Flip type: %d\n", flip_type);
>  
> -		/* Set a buffer with no tiling. */
> +		/* Set a buffer with new tiling. */
>  		params->primary.fb = &new_fb;
>  		page_flip_for_params(params, flip_type);
>  		do_assertions(ASSERT_FBC_DISABLED);
> @@ -3486,8 +3503,19 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
>  			igt_subtest_f("%s-stridechange", feature_str(t.feature))
>  				stridechange_subtest(&t);
>  
> -			igt_subtest_f("%s-tilingchange", feature_str(t.feature))
> -				tilingchange_subtest(&t);
> +			for (t.tile = TILE_LINEAR; t.tile < TILE_COUNT;
> +			     t.tile++) {

Ah, I guess the enum is for this loop.

s/tile/tiling/ whould be more customary language in general.
Although, maybe people would then confuse it with the uapi
definitions? Shrug.

> +				igt_subtest_f("%s-tiling-%s",
> +					      feature_str(t.feature),
> +					      tile_str(t.tile)) {
> +
> +					if (tiling_is_valid(t.feature, t.tile))
> +						draw_subtest(&t);
> +					else
> +						tiling_disable_fbc_subtest(&t);
> +				}
> +			}
> +			t.tile = opt.tiling;
>  		}
>  
>  		if ((t.feature & FEATURE_PSR) || (t.feature & FEATURE_DRRS))
> -- 
> 2.25.0

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ GitLab.Pipeline: failure for series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode
  2020-02-06  2:09 [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode José Roberto de Souza
                   ` (4 preceding siblings ...)
  2020-02-06 11:53 ` [igt-dev] [PATCH i-g-t 1/4] " Ville Syrjälä
@ 2020-02-06 15:58 ` Patchwork
  2020-02-08 14:56 ` [igt-dev] ✗ Fi.CI.IGT: " Patchwork
  6 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2020-02-06 15:58 UTC (permalink / raw)
  To: José Roberto de Souza; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode
URL   : https://patchwork.freedesktop.org/series/73071/
State : failure

== Summary ==

ERROR! This series introduces new undocumented tests:

kms_frontbuffer_tracking@fbc-tiling-linear
kms_frontbuffer_tracking@fbc-tiling-x
kms_frontbuffer_tracking@fbc-tiling-y
kms_frontbuffer_tracking@fbcdrrs-tiling-linear
kms_frontbuffer_tracking@fbcdrrs-tiling-x
kms_frontbuffer_tracking@fbcdrrs-tiling-y
kms_frontbuffer_tracking@fbcpsr-tiling-linear
kms_frontbuffer_tracking@fbcpsr-tiling-x
kms_frontbuffer_tracking@fbcpsr-tiling-y
kms_frontbuffer_tracking@fbcpsrdrrs-tiling-linear
kms_frontbuffer_tracking@fbcpsrdrrs-tiling-x
kms_frontbuffer_tracking@fbcpsrdrrs-tiling-y

Can you document them as per the requirement in the [CONTRIBUTING.md]?

[Documentation] has more details on how to do this.

Here are few examples:
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/0316695d03aa46108296b27f3982ec93200c7a6e
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/443cc658e1e6b492ee17bf4f4d891029eb7a205d

Thanks in advance!

[CONTRIBUTING.md]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/CONTRIBUTING.md#L19
[Documentation]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe

Other than that, pipeline status: SUCCESS.

see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/105425 for the overview.

== Logs ==

For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/105425
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode
  2020-02-06  2:09 [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode José Roberto de Souza
                   ` (5 preceding siblings ...)
  2020-02-06 15:58 ` [igt-dev] ✗ GitLab.Pipeline: failure for series starting with [i-g-t,1/4] " Patchwork
@ 2020-02-08 14:56 ` Patchwork
  6 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2020-02-08 14:56 UTC (permalink / raw)
  To: José Roberto de Souza; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode
URL   : https://patchwork.freedesktop.org/series/73071/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7874_full -> IGTPW_4104_full
====================================================

Summary
-------

  **FAILURE**

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

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

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_frontbuffer_tracking@fbc-tiling-linear} (NEW):
    - shard-apl:          NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-apl4/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html
    - shard-glk:          NOTRUN -> [FAIL][2]
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-glk9/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html
    - shard-tglb:         NOTRUN -> [FAIL][3] +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb7/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html
    - shard-kbl:          NOTRUN -> [FAIL][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html
    - shard-snb:          NOTRUN -> [FAIL][5] +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb2/igt@kms_frontbuffer_tracking@fbc-tiling-linear.html

  * {igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear} (NEW):
    - shard-iclb:         NOTRUN -> [FAIL][6] +1 similar issue
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-a:
    - shard-tglb:         [PASS][7] -> [FAIL][8] +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-tglb5/igt@kms_pipe_crc_basic@read-crc-pipe-a.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb6/igt@kms_pipe_crc_basic@read-crc-pipe-a.html

  
#### Suppressed ####

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

  * {igt@gem_ctx_persistence@replace@vcs1}:
    - shard-iclb:         NOTRUN -> [FAIL][9]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb4/igt@gem_ctx_persistence@replace@vcs1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_7874_full and IGTPW_4104_full:

### New IGT tests (6) ###

  * igt@kms_frontbuffer_tracking@fbc-tiling-linear:
    - Statuses : 6 fail(s) 1 skip(s)
    - Exec time: [0.0, 3.65] s

  * igt@kms_frontbuffer_tracking@fbc-tiling-x:
    - Statuses : 6 pass(s) 1 skip(s)
    - Exec time: [0.0, 2.96] s

  * igt@kms_frontbuffer_tracking@fbc-tiling-y:
    - Statuses : 1 fail(s) 5 pass(s) 1 skip(s)
    - Exec time: [0.0, 3.30] s

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear:
    - Statuses : 2 fail(s) 5 skip(s)
    - Exec time: [0.0, 4.71] s

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-x:
    - Statuses : 2 pass(s) 5 skip(s)
    - Exec time: [0.0, 4.92] s

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-y:
    - Statuses : 2 pass(s) 5 skip(s)
    - Exec time: [0.0, 4.83] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_balancer@hang:
    - shard-tglb:         [PASS][10] -> [TIMEOUT][11] ([fdo#112271])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-tglb2/igt@gem_exec_balancer@hang.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb6/igt@gem_exec_balancer@hang.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [PASS][12] -> [SKIP][13] ([fdo#110854])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb2/igt@gem_exec_balancer@smoke.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb7/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@out-order-bsd2:
    - shard-iclb:         [PASS][14] -> [SKIP][15] ([fdo#109276]) +20 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb1/igt@gem_exec_schedule@out-order-bsd2.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb6/igt@gem_exec_schedule@out-order-bsd2.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
    - shard-iclb:         [PASS][16] -> [SKIP][17] ([fdo#112146]) +5 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb6/igt@gem_exec_schedule@preempt-other-chain-bsd.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb2/igt@gem_exec_schedule@preempt-other-chain-bsd.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-display:
    - shard-hsw:          [PASS][18] -> [FAIL][19] ([i915#694]) +2 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-hsw5/igt@gem_partial_pwrite_pread@writes-after-reads-display.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-hsw6/igt@gem_partial_pwrite_pread@writes-after-reads-display.html

  * igt@gem_ppgtt@flink-and-close-vma-leak:
    - shard-glk:          [PASS][20] -> [FAIL][21] ([i915#644])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-glk8/igt@gem_ppgtt@flink-and-close-vma-leak.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-glk9/igt@gem_ppgtt@flink-and-close-vma-leak.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-snb:          [PASS][22] -> [DMESG-WARN][23] ([i915#478])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb5/igt@gem_tiled_swapping@non-threaded.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb6/igt@gem_tiled_swapping@non-threaded.html

  * igt@gem_workarounds@suspend-resume:
    - shard-kbl:          [PASS][24] -> [INCOMPLETE][25] ([fdo#103665])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-kbl2/igt@gem_workarounds@suspend-resume.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-kbl3/igt@gem_workarounds@suspend-resume.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-glk:          [PASS][26] -> [FAIL][27] ([i915#72])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-glk3/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-glk2/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-render-untiled:
    - shard-tglb:         [PASS][28] -> [FAIL][29] ([i915#559]) +2 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-tglb2/igt@kms_draw_crc@draw-method-xrgb2101010-render-untiled.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb7/igt@kms_draw_crc@draw-method-xrgb2101010-render-untiled.html

  * igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled:
    - shard-tglb:         [PASS][30] -> [DMESG-FAIL][31] ([i915#402])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-tglb5/igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb2/igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-glk:          [PASS][32] -> [FAIL][33] ([i915#79])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-glk1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-glk9/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-apl:          [PASS][34] -> [DMESG-WARN][35] ([i915#180]) +1 similar issue
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-apl4/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-apl6/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-kbl:          [PASS][36] -> [DMESG-WARN][37] ([i915#180]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-kbl2/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_plane_cursor@pipe-a-primary-size-128:
    - shard-tglb:         [PASS][38] -> [FAIL][39] ([i915#1139])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-tglb2/igt@kms_plane_cursor@pipe-a-primary-size-128.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb8/igt@kms_plane_cursor@pipe-a-primary-size-128.html

  * igt@kms_plane_lowres@pipe-a-tiling-y:
    - shard-glk:          [PASS][40] -> [FAIL][41] ([i915#899])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-glk8/igt@kms_plane_lowres@pipe-a-tiling-y.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-glk7/igt@kms_plane_lowres@pipe-a-tiling-y.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [PASS][42] -> [SKIP][43] ([fdo#109642] / [fdo#111068])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb2/igt@kms_psr2_su@page_flip.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb5/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_cursor_mmap_cpu:
    - shard-iclb:         [PASS][44] -> [SKIP][45] ([fdo#109441]) +2 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb4/igt@kms_psr@psr2_cursor_mmap_cpu.html

  * igt@perf_pmu@busy-vcs1:
    - shard-iclb:         [PASS][46] -> [SKIP][47] ([fdo#112080]) +12 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb2/igt@perf_pmu@busy-vcs1.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb6/igt@perf_pmu@busy-vcs1.html

  
#### Possible fixes ####

  * igt@gem_blits@basic:
    - shard-kbl:          [DMESG-WARN][48] ([i915#836]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-kbl2/igt@gem_blits@basic.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-kbl1/igt@gem_blits@basic.html

  * igt@gem_exec_flush@basic-batch-kernel-default-cmd:
    - shard-hsw:          [FAIL][50] ([i915#694]) -> [PASS][51] +1 similar issue
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-hsw2/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-hsw5/igt@gem_exec_flush@basic-batch-kernel-default-cmd.html

  * igt@gem_exec_schedule@pi-common-bsd:
    - shard-iclb:         [SKIP][52] ([i915#677]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb2/igt@gem_exec_schedule@pi-common-bsd.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb8/igt@gem_exec_schedule@pi-common-bsd.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-iclb:         [SKIP][54] ([fdo#112146]) -> [PASS][55] +6 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb2/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb7/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@i915_pm_rps@waitboost:
    - shard-iclb:         [FAIL][56] ([i915#413]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb7/igt@i915_pm_rps@waitboost.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb7/igt@i915_pm_rps@waitboost.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-0:
    - shard-tglb:         [FAIL][58] -> [PASS][59] +1 similar issue
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-tglb6/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb5/igt@kms_big_fb@x-tiled-8bpp-rotate-0.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-180:
    - shard-iclb:         [SKIP][60] ([i915#1140]) -> [PASS][61]
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb5/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb3/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html

  * igt@kms_cursor_crc@pipe-a-cursor-128x42-offscreen:
    - shard-apl:          [FAIL][62] ([i915#54]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-apl8/igt@kms_cursor_crc@pipe-a-cursor-128x42-offscreen.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-apl4/igt@kms_cursor_crc@pipe-a-cursor-128x42-offscreen.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-kbl:          [DMESG-WARN][64] ([i915#180]) -> [PASS][65] +4 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-kbl2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-kbl2/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_draw_crc@draw-method-rgb565-render-xtiled:
    - shard-snb:          [SKIP][66] ([fdo#109271]) -> [PASS][67]
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb4/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb6/igt@kms_draw_crc@draw-method-rgb565-render-xtiled.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-ytiled:
    - shard-tglb:         [FAIL][68] ([i915#559]) -> [PASS][69]
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-tglb2/igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-ytiled.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb7/igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-ytiled.html

  * igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-xtiled:
    - shard-tglb:         [DMESG-FAIL][70] ([i915#402]) -> [PASS][71] +1 similar issue
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-tglb1/igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-xtiled.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb1/igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-xtiled.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-glk:          [FAIL][72] ([i915#79]) -> [PASS][73]
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-glk6/igt@kms_flip@flip-vs-expired-vblank.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-glk4/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-apl:          [DMESG-WARN][74] ([i915#180]) -> [PASS][75]
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-apl4/igt@kms_flip@flip-vs-suspend-interruptible.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_psr@psr2_suspend:
    - shard-iclb:         [SKIP][76] ([fdo#109441]) -> [PASS][77] +2 similar issues
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb1/igt@kms_psr@psr2_suspend.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb2/igt@kms_psr@psr2_suspend.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][78] ([i915#31]) -> [PASS][79]
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-apl1/igt@kms_setmode@basic.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-apl1/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-c-query-forked-hang:
    - shard-hsw:          [INCOMPLETE][80] ([CI#80] / [i915#61]) -> [PASS][81]
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-hsw8/igt@kms_vblank@pipe-c-query-forked-hang.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-hsw5/igt@kms_vblank@pipe-c-query-forked-hang.html

  * igt@perf_pmu@busy-accuracy-2-vcs1:
    - shard-iclb:         [SKIP][82] ([fdo#112080]) -> [PASS][83] +7 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb3/igt@perf_pmu@busy-accuracy-2-vcs1.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb4/igt@perf_pmu@busy-accuracy-2-vcs1.html

  * igt@prime_mmap_coherency@ioctl-errors:
    - shard-hsw:          [FAIL][84] ([i915#831]) -> [PASS][85]
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-hsw4/igt@prime_mmap_coherency@ioctl-errors.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-hsw8/igt@prime_mmap_coherency@ioctl-errors.html

  * igt@prime_vgem@fence-wait-bsd2:
    - shard-iclb:         [SKIP][86] ([fdo#109276]) -> [PASS][87] +19 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-iclb8/igt@prime_vgem@fence-wait-bsd2.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-iclb4/igt@prime_vgem@fence-wait-bsd2.html

  
#### Warnings ####

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup:
    - shard-snb:          [DMESG-WARN][88] ([fdo#111870] / [i915#478]) -> [DMESG-WARN][89] ([fdo#110789] / [fdo#111870] / [i915#478])
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy-gup.html

  * igt@i915_pm_dc@dc6-dpms:
    - shard-tglb:         [SKIP][90] ([i915#468]) -> [FAIL][91] ([i915#454])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-tglb2/igt@i915_pm_dc@dc6-dpms.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-tglb1/igt@i915_pm_dc@dc6-dpms.html

  * igt@runner@aborted:
    - shard-snb:          ([FAIL][92], [FAIL][93], [FAIL][94], [FAIL][95], [FAIL][96], [FAIL][97], [FAIL][98]) ([fdo#111870] / [i915#1077]) -> ([FAIL][99], [FAIL][100], [FAIL][101], [FAIL][102], [FAIL][103], [FAIL][104], [FAIL][105], [FAIL][106], [FAIL][107]) ([fdo#111870] / [i915#1077] / [i915#183])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb6/igt@runner@aborted.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb4/igt@runner@aborted.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb4/igt@runner@aborted.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb6/igt@runner@aborted.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb4/igt@runner@aborted.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb6/igt@runner@aborted.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7874/shard-snb6/igt@runner@aborted.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb2/igt@runner@aborted.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb2/igt@runner@aborted.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb2/igt@runner@aborted.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb4/igt@runner@aborted.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb5/igt@runner@aborted.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb5/igt@runner@aborted.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb2/igt@runner@aborted.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb6/igt@runner@aborted.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/shard-snb4/igt@runner@aborted.html

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

  [CI#80]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/80
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
  [fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
  [fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
  [fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
  [i915#1077]: https://gitlab.freedesktop.org/drm/intel/issues/1077
  [i915#1139]: https://gitlab.freedesktop.org/drm/intel/issues/1139
  [i915#1140]: https://gitlab.freedesktop.org/drm/intel/issues/1140
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#183]: https://gitlab.freedesktop.org/drm/intel/issues/183
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#413]: https://gitlab.freedesktop.org/drm/intel/issues/413
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#468]: https://gitlab.freedesktop.org/drm/intel/issues/468
  [i915#478]: https://gitlab.freedesktop.org/drm/intel/issues/478
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#559]: https://gitlab.freedesktop.org/drm/intel/issues/559
  [i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
  [i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
  [i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
  [i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
  [i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#831]: https://gitlab.freedesktop.org/drm/intel/issues/831
  [i915#836]: https://gitlab.freedesktop.org/drm/intel/issues/836
  [i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899


Participating hosts (10 -> 8)
------------------------------

  Missing    (2): pig-skl-6260u pig-glk-j5005 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5420 -> IGTPW_4104
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_7874: 3f234d1ab91ec2321312150116c1285bcb0a260b @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4104: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/index.html
  IGT_5420: 497e13d2b4c1053bcd01bd15739fef55e7694a03 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4104/index.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode
  2020-02-06 11:53 ` [igt-dev] [PATCH i-g-t 1/4] " Ville Syrjälä
@ 2020-03-10 23:54   ` Souza, Jose
  0 siblings, 0 replies; 14+ messages in thread
From: Souza, Jose @ 2020-03-10 23:54 UTC (permalink / raw)
  To: ville.syrjala; +Cc: igt-dev

On Thu, 2020-02-06 at 13:53 +0200, Ville Syrjälä wrote:
> On Wed, Feb 05, 2020 at 06:09:41PM -0800, José Roberto de Souza
> wrote:
> > This will allow us to do tests with different tile types, for now
> > all tests will continue to run with the default X tiling.
> > 
> > It also allow user to run all tests with liner tiling when set by
> > parameter.
> > 
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> > ---
> >  tests/kms_frontbuffer_tracking.c | 122 ++++++++++++++++++++-------
> > ----
> >  1 file changed, 78 insertions(+), 44 deletions(-)
> > 
> > diff --git a/tests/kms_frontbuffer_tracking.c
> > b/tests/kms_frontbuffer_tracking.c
> > index 2c765c34..63b5d12d 100644
> > --- a/tests/kms_frontbuffer_tracking.c
> > +++ b/tests/kms_frontbuffer_tracking.c
> > @@ -130,6 +130,14 @@ struct test_mode {
> >  		FLIP_COUNT,
> >  	} flip;
> >  
> > +	enum tile_type {
> > +		TILE_LINEAR = 0,
> > +		TILE_X,
> > +		TILE_Y,
> > +		TILE_COUNT,
> > +		TILE_DEFAULT = TILE_X,
> > +	} tile;
> 
> Looks totally redundant. What's the point of this enum?

As you notice it will be used in the next patches.
Will add it to the
commit message.

> 
> > +
> >  	enum igt_draw_method method;
> >  };
> >  
> > @@ -235,7 +243,7 @@ struct {
> >  	int only_pipes;
> >  	int shared_fb_x_offset;
> >  	int shared_fb_y_offset;
> > -	uint64_t tiling;
> > +	enum tile_type tiling;
> >  } opt = {
> >  	.check_status = true,
> >  	.check_crc = true,
> > @@ -248,7 +256,7 @@ struct {
> >  	.only_pipes = PIPE_COUNT,
> >  	.shared_fb_x_offset = 248,
> >  	.shared_fb_y_offset = 500,
> > -	.tiling = LOCAL_I915_FORMAT_MOD_X_TILED,
> > +	.tiling = TILE_DEFAULT,
> >  };
> >  
> >  struct modeset_params {
> > @@ -443,13 +451,26 @@ static bool init_modeset_cached_params(void)
> >  	return true;
> >  }
> >  
> > +static uint64_t tile_to_modifier(enum tile_type tile)
> > +{
> > +	switch (tile) {
> > +	case TILE_LINEAR:
> > +		return LOCAL_DRM_FORMAT_MOD_NONE;
> > +	case TILE_X:
> > +		return LOCAL_I915_FORMAT_MOD_X_TILED;
> > +	case TILE_Y:
> > +		return LOCAL_I915_FORMAT_MOD_Y_TILED;
> > +	default:
> > +		igt_assert(false);
> > +	}
> > +}
> > +
> >  static void create_fb(enum pixel_format pformat, int width, int
> > height,
> > -		      uint64_t tiling, int plane, struct igt_fb *fb)
> > +		      enum tile_type tile, int plane, struct igt_fb
> > *fb)
> >  {
> >  	uint32_t format;
> > -	uint64_t size;
> > +	uint64_t size, modifier;
> >  	unsigned int stride;
> > -	uint64_t tiling_for_size;
> >  
> >  	switch (pformat) {
> >  	case FORMAT_RGB888:
> > @@ -479,19 +500,14 @@ static void create_fb(enum pixel_format
> > pformat, int width, int height,
> >  		igt_assert(false);
> >  	}
> >  
> > -	/* We want all frontbuffers with the same width/height/format
> > to have
> > -	 * the same size regardless of tiling since we want to properly
> > exercise
> > -	 * the Kernel's specific tiling-checking code paths without
> > accidentally
> > -	 * hitting size-checking ones first. */
> > -	if (plane == PLANE_CUR)
> > -		tiling_for_size = LOCAL_DRM_FORMAT_MOD_NONE;
> > -	else
> > -		tiling_for_size = opt.tiling;
> > +	modifier = tile_to_modifier(tile);
> >  
> > -	igt_calc_fb_size(drm.fd, width, height, format,
> > tiling_for_size, &size,
> > +	igt_warn_on(plane == PLANE_CUR && tile != TILE_LINEAR);
> > +
> > +	igt_calc_fb_size(drm.fd, width, height, format, modifier,
> > &size,
> >  			 &stride);
> >  
> > -	igt_create_fb_with_bo_size(drm.fd, width, height, format,
> > tiling,
> > +	igt_create_fb_with_bo_size(drm.fd, width, height, format,
> > modifier,
> >  				   IGT_COLOR_YCBCR_BT709,
> >  				   IGT_COLOR_YCBCR_LIMITED_RANGE,
> >  				   fb, size, stride);
> > @@ -593,7 +609,7 @@ static void fill_fb(struct igt_fb *fb, enum
> > color ecolor)
> >   * We do it vertically instead of the more common horizontal case
> > in order to
> >   * avoid super huge strides not supported by FBC.
> >   */
> > -static void create_shared_fb(enum pixel_format format)
> > +static void create_shared_fb(enum pixel_format format, enum
> > tile_type tile)
> >  {
> >  	int prim_w, prim_h, scnd_w, scnd_h, offs_w, offs_h, big_w,
> > big_h;
> >  	struct screen_fbs *s = &fbs[format];
> > @@ -620,7 +636,7 @@ static void create_shared_fb(enum pixel_format
> > format)
> >  
> >  	big_h = prim_h + scnd_h + offs_h + opt.shared_fb_y_offset;
> >  
> > -	create_fb(format, big_w, big_h, opt.tiling, PLANE_PRI, &s-
> > >big);
> > +	create_fb(format, big_w, big_h, tile, PLANE_PRI, &s->big);
> >  }
> >  
> >  static void destroy_fbs(enum pixel_format format)
> > @@ -642,7 +658,7 @@ static void destroy_fbs(enum pixel_format
> > format)
> >  	igt_remove_fb(drm.fd, &s->big);
> >  }
> >  
> > -static void create_fbs(enum pixel_format format)
> > +static void create_fbs(enum pixel_format format, enum tile_type
> > tile)
> >  {
> >  	struct screen_fbs *s = &fbs[format];
> >  
> > @@ -652,30 +668,29 @@ static void create_fbs(enum pixel_format
> > format)
> >  	s->initialized = true;
> >  
> >  	create_fb(format, prim_mode_params.mode->hdisplay,
> > -		  prim_mode_params.mode->vdisplay, opt.tiling,
> > PLANE_PRI,
> > +		  prim_mode_params.mode->vdisplay, tile, PLANE_PRI,
> >  		  &s->prim_pri);
> >  	create_fb(format, prim_mode_params.cursor.w,
> >  		  prim_mode_params.cursor.h, LOCAL_DRM_FORMAT_MOD_NONE,
> >  		  PLANE_CUR, &s->prim_cur);
> >  	create_fb(format, prim_mode_params.sprite.w,
> > -		  prim_mode_params.sprite.h, opt.tiling, PLANE_SPR,
> > -		  &s->prim_spr);
> > +		  prim_mode_params.sprite.h, tile, PLANE_SPR, &s-
> > >prim_spr);
> >  
> > -	create_fb(format, offscreen_fb.w, offscreen_fb.h, opt.tiling,
> > PLANE_PRI,
> > +	create_fb(format, offscreen_fb.w, offscreen_fb.h, tile,
> > PLANE_PRI,
> >  		  &s->offscreen);
> >  
> > -	create_shared_fb(format);
> > +	create_shared_fb(format, tile);
> >  
> >  	if (!scnd_mode_params.output)
> >  		return;
> >  
> >  	create_fb(format, scnd_mode_params.mode->hdisplay,
> > -		  scnd_mode_params.mode->vdisplay, opt.tiling,
> > PLANE_PRI,
> > +		  scnd_mode_params.mode->vdisplay, tile, PLANE_PRI,
> >  		  &s->scnd_pri);
> >  	create_fb(format, scnd_mode_params.cursor.w,
> > scnd_mode_params.cursor.h,
> >  		  LOCAL_DRM_FORMAT_MOD_NONE, PLANE_CUR, &s->scnd_cur);
> >  	create_fb(format, scnd_mode_params.sprite.w,
> > scnd_mode_params.sprite.h,
> > -		  opt.tiling, PLANE_SPR, &s->scnd_spr);
> > +		  tile, PLANE_SPR, &s->scnd_spr);
> >  }
> >  
> >  static void __set_prim_plane_for_params(struct modeset_params
> > *params)
> > @@ -1175,7 +1190,7 @@ static void collect_crc(igt_crc_t *crc)
> >  	igt_pipe_crc_collect_crc(pipe_crc, crc);
> >  }
> >  
> > -static void init_blue_crc(enum pixel_format format)
> > +static void init_blue_crc(enum pixel_format format, enum tile_type
> > tile)
> >  {
> >  	struct igt_fb blue;
> >  
> > @@ -1183,7 +1198,7 @@ static void init_blue_crc(enum pixel_format
> > format)
> >  		return;
> >  
> >  	create_fb(format, prim_mode_params.mode->hdisplay,
> > -		  prim_mode_params.mode->vdisplay, opt.tiling,
> > PLANE_PRI,
> > +		  prim_mode_params.mode->vdisplay, tile, PLANE_PRI,
> >  		  &blue);
> >  
> >  	fill_fb(&blue, COLOR_PRIM_BG);
> > @@ -1209,7 +1224,7 @@ static void init_blue_crc(enum pixel_format
> > format)
> >  	blue_crcs[format].initialized = true;
> >  }
> >  
> > -static void init_crcs(enum pixel_format format,
> > +static void init_crcs(enum pixel_format format, enum tile_type
> > tile,
> >  		      struct draw_pattern_info *pattern)
> >  {
> >  	int r, r_;
> > @@ -1223,7 +1238,7 @@ static void init_crcs(enum pixel_format
> > format,
> >  
> >  	for (r = 0; r < pattern->n_rects; r++)
> >  		create_fb(format, prim_mode_params.mode->hdisplay,
> > -			  prim_mode_params.mode->vdisplay, opt.tiling,
> > +			  prim_mode_params.mode->vdisplay, tile,
> >  			  PLANE_PRI, &tmp_fbs[r]);
> >  
> >  	for (r = 0; r < pattern->n_rects; r++)
> > @@ -1288,7 +1303,7 @@ static void setup_modeset(void)
> >  	offscreen_fb.fb = NULL;
> >  	offscreen_fb.w = 1024;
> >  	offscreen_fb.h = 1024;
> > -	create_fbs(FORMAT_DEFAULT);
> > +	create_fbs(FORMAT_DEFAULT, opt.tiling);
> >  }
> >  
> >  static void teardown_modeset(void)
> > @@ -1749,7 +1764,7 @@ static void set_crtc_fbs(const struct
> > test_mode *t)
> >  {
> >  	struct screen_fbs *s = &fbs[t->format];
> >  
> > -	create_fbs(t->format);
> > +	create_fbs(t->format, t->tile);
> >  
> >  	switch (t->fbs) {
> >  	case FBS_INDIVIDUAL:
> > @@ -1809,9 +1824,9 @@ static void prepare_subtest_data(const struct
> > test_mode *t,
> >  	if (need_modeset)
> >  		igt_display_commit(&drm.display);
> >  
> > -	init_blue_crc(t->format);
> > +	init_blue_crc(t->format, t->tile);
> >  	if (pattern)
> > -		init_crcs(t->format, pattern);
> > +		init_crcs(t->format, t->tile, pattern);
> >  
> >  	need_modeset = enable_features_for_test(t);
> >  	if (need_modeset)
> > @@ -2290,7 +2305,7 @@ static void flip_subtest(const struct
> > test_mode *t)
> >  	prepare_subtest(t, pattern);
> >  
> >  	create_fb(t->format, params->primary.fb->width, params-
> > >primary.fb->height,
> > -		  opt.tiling, t->plane, &fb2);
> > +		  t->tile, t->plane, &fb2);
> >  	fill_fb(&fb2, bg_color);
> >  	orig_fb = params->primary.fb;
> >  
> > @@ -2336,7 +2351,7 @@ static void fliptrack_subtest(const struct
> > test_mode *t, enum flip_type type)
> >  	prepare_subtest(t, pattern);
> >  
> >  	create_fb(t->format, params->primary.fb->width, params-
> > >primary.fb->height,
> > -		  opt.tiling, t->plane, &fb2);
> > +		  t->tile, t->plane, &fb2);
> >  	fill_fb(&fb2, COLOR_PRIM_BG);
> >  	orig_fb = params->primary.fb;
> >  
> > @@ -2494,7 +2509,7 @@ static void fullscreen_plane_subtest(const
> > struct test_mode *t)
> >  	prepare_subtest(t, pattern);
> >  
> >  	rect = pattern->get_rect(&params->primary, 0);
> > -	create_fb(t->format, rect.w, rect.h, opt.tiling, t->plane,
> > +	create_fb(t->format, rect.w, rect.h, t->tile, t->plane,
> >  		  &fullscreen_fb);
> >  	/* Call pick_color() again since PRI and SPR may not support
> > the same
> >  	 * pixel formats. */
> > @@ -2567,7 +2582,7 @@ static void scaledprimary_subtest(const
> > struct test_mode *t)
> >  	old_fb = reg->fb;
> >  
> >  	create_fb(t->format, reg->fb->width, reg->fb->height,
> > -		  opt.tiling, t->plane, &new_fb);
> > +		  t->tile, t->plane, &new_fb);
> >  	fill_fb(&new_fb, COLOR_BLUE);
> >  
> >  	igt_draw_rect_fb(drm.fd, drm.bufmgr, NULL, &new_fb, t->method,
> > @@ -2662,7 +2677,7 @@ static void modesetfrombusy_subtest(const
> > struct test_mode *t)
> >  	prepare_subtest(t, NULL);
> >  
> >  	create_fb(t->format, params->primary.fb->width, params-
> > >primary.fb->height,
> > -		  opt.tiling, t->plane, &fb2);
> > +		  t->tile, t->plane, &fb2);
> >  	fill_fb(&fb2, COLOR_PRIM_BG);
> >  
> >  	start_busy_thread(params->primary.fb);
> > @@ -2762,7 +2777,7 @@ static void farfromfence_subtest(const struct
> > test_mode *t)
> >  	prepare_subtest(t, pattern);
> >  	target = pick_target(t, params);
> >  
> > -	create_fb(t->format, params->mode->hdisplay, max_height,
> > opt.tiling,
> > +	create_fb(t->format, params->mode->hdisplay, max_height, t-
> > >tile,
> >  		  t->plane, &tall_fb);
> >  
> >  	fill_fb(&tall_fb, COLOR_PRIM_BG);
> > @@ -2838,7 +2853,7 @@ static void badstride_subtest(const struct
> > test_mode *t)
> >  	old_fb = params->primary.fb;
> >  
> >  	create_fb(t->format, params->primary.fb->width + 4096, params-
> > >primary.fb->height,
> > -		  opt.tiling, t->plane, &wide_fb);
> > +		  t->tile, t->plane, &wide_fb);
> >  	igt_assert(wide_fb.strides[0] > 16384);
> >  
> >  	fill_fb(&wide_fb, COLOR_PRIM_BG);
> > @@ -3018,7 +3033,7 @@ static void basic_subtest(const struct
> > test_mode *t)
> >  	prepare_subtest(t, pattern);
> >  
> >  	create_fb(t->format, params->primary.fb->width, params-
> > >primary.fb->height,
> > -		  opt.tiling, t->plane, &fb2);
> > +		  t->tile, t->plane, &fb2);
> >  	fb1 = params->primary.fb;
> >  
> >  	for (r = 0, method = 0; method < IGT_DRAW_METHOD_COUNT;
> > method++, r++) {
> > @@ -3093,10 +3108,12 @@ static int opt_handler(int option, int
> > option_index, void *data)
> >  		break;
> >  	case 'l':
> >  		if (!strcmp(optarg, "x"))
> > -			opt.tiling = LOCAL_I915_FORMAT_MOD_X_TILED;
> > +			opt.tiling = TILE_X;
> >  		else if (!strcmp(optarg, "y"))
> > -			opt.tiling = LOCAL_I915_FORMAT_MOD_Y_TILED;
> > -		else {
> > +			opt.tiling = TILE_Y;
> > +		else if (!strcmp(optarg, "l")) {
> > +			opt.tiling = TILE_LINEAR;
> > +		} else {
> >  			igt_warn("Bad tiling value: %s\n", optarg);
> >  			return IGT_OPT_HANDLER_ERROR;
> >  		}
> > @@ -3228,9 +3245,24 @@ static const char *flip_str(enum flip_type
> > flip)
> >  	}
> >  }
> >  
> > +static const char *tile_str(enum tile_type tile)
> > +{
> > +	switch (tile) {
> > +	case TILE_LINEAR:
> > +		return "linear";
> > +	case TILE_X:
> > +		return "x";
> > +	case TILE_Y:
> > +		return "y";
> > +	default:
> > +		igt_assert(false);
> > +	}
> > +}
> > +
> >  #define TEST_MODE_ITER_BEGIN(t) \
> >  	t.format = FORMAT_DEFAULT;					   
> > \
> >  	t.flip = FLIP_PAGEFLIP;						
> >    \
> > +	t.tile = opt.tiling;						
> >    \
> >  	for (t.feature = 0; t.feature < FEATURE_COUNT; t.feature++) {	
> >    \
> >  	for (t.pipes = 0; t.pipes < PIPE_COUNT; t.pipes++) {		
> >    \
> >  	for (t.screen = 0; t.screen < SCREEN_COUNT; t.screen++) {	   
> > \
> > @@ -3288,6 +3320,7 @@ igt_main_args("", long_options, help_str,
> > opt_handler, NULL)
> >  			/* Make sure nothing is using these values. */
> >  			t.flip = -1;
> >  			t.method = -1;
> > +			t.tile = opt.tiling;
> >  
> >  			igt_subtest_f("%s-%s-rte",
> >  				      feature_str(t.feature),
> > @@ -3472,6 +3505,7 @@ igt_main_args("", long_options, help_str,
> > opt_handler, NULL)
> >  	t.feature = FEATURE_DEFAULT;
> >  	t.format = FORMAT_DEFAULT;
> >  	t.flip = FLIP_PAGEFLIP;
> > +	t.tile = opt.tiling;
> >  	igt_subtest("basic") {
> >  		igt_require_gem(drm.fd);
> >  		basic_subtest(&t);
> > -- 
> > 2.25.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage
  2020-02-06 11:57   ` Ville Syrjälä
@ 2020-03-10 23:59     ` Souza, Jose
  0 siblings, 0 replies; 14+ messages in thread
From: Souza, Jose @ 2020-03-10 23:59 UTC (permalink / raw)
  To: ville.syrjala; +Cc: igt-dev

On Thu, 2020-02-06 at 13:57 +0200, Ville Syrjälä wrote:
> On Wed, Feb 05, 2020 at 06:09:42PM -0800, José Roberto de Souza
> wrote:
> > Lets add some more tiling tests, if tiling is supported by FBC draw
> > some rectangles and compare the CRC against benchmark if not
> > supported run the test to guarantee that FBC is disabled.
> > 
> > This is a preparation for when kernel will allow FBC to be enabled
> > without fences, so we can better test linear and Y tiled
> > frontbuffers.
> > 
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> > ---
> >  tests/kms_frontbuffer_tracking.c | 50 +++++++++++++++++++++++++---
> > ----
> >  1 file changed, 39 insertions(+), 11 deletions(-)
> > 
> > diff --git a/tests/kms_frontbuffer_tracking.c
> > b/tests/kms_frontbuffer_tracking.c
> > index 63b5d12d..d5a64a4d 100644
> > --- a/tests/kms_frontbuffer_tracking.c
> > +++ b/tests/kms_frontbuffer_tracking.c
> > @@ -2159,6 +2159,23 @@ static void format_draw_subtest(const struct
> > test_mode *t)
> >  		badformat_subtest(t);
> >  }
> >  
> > +static bool tiling_is_valid(int feature_flags, enum tile_type
> > tile)
> > +{
> > +	if (!(feature_flags & FEATURE_FBC))
> > +		return true;
> > +
> > +	switch (tile) {
> > +	case TILE_LINEAR:
> > +		return false;
> > +	case TILE_X:
> > +	case TILE_Y:
> > +		return true;
> > +	default:
> > +		igt_assert(false);
> > +		return false;
> > +	}
> > +}
> > +
> >  /*
> >   * slow_draw - sleep a little bit between drawing operations
> >   *
> > @@ -2954,22 +2971,22 @@ static void stridechange_subtest(const
> > struct test_mode *t)
> >  }
> >  
> >  /**
> > - * tilingchange - alternate between tiled and untiled in multiple
> > ways
> > + * tiling_disable_fbc_subtest - Check that tiling causes FBC to be
> > disabled
> 
> Check that *unsupported* tiling ... ?

yeah, changing to:
Check if tiling is unsupported by FBC

> 
> >   *
> >   * METHOD
> > - *   This test alternates between tiled and untiled frontbuffers
> > of the same
> > - *   size and format through multiple different APIs: the page
> > flip IOCTL,
> > - *   normal modesets and the plane APIs.
> > + *   This test alternates between a FBC supported and non-
> > supported tiled
> > + *   frontbuffers of the same size and format through multiple
> > different
> > + *   APIs: the page flip IOCTL, normal modesets and the plane
> > APIs.
> >   *
> >   * EXPECTED RESULTS
> > - *   FBC gets properly disabled for the untiled FB and reenabled
> > for the
> > - *   tiled FB.
> > + *   FBC gets properly disabled for the non-supported tiling and
> > reenabled for
> > + *   the supported tiling.
> >   *
> >   * FAILURES
> >   *   Bad Kernels may somehow leave FBC enabled, which can cause
> > FIFO underruns
> >   *   that lead to CRC assertion failures.
> >   */
> > -static void tilingchange_subtest(const struct test_mode *t)
> > +static void tiling_disable_fbc_subtest(const struct test_mode *t)
> >  {
> >  	struct igt_fb new_fb, *old_fb;
> >  	struct modeset_params *params = pick_params(t);
> > @@ -2980,13 +2997,13 @@ static void tilingchange_subtest(const
> > struct test_mode *t)
> >  	old_fb = params->primary.fb;
> >  
> >  	create_fb(t->format, params->primary.fb->width, params-
> > >primary.fb->height,
> > -		  LOCAL_DRM_FORMAT_MOD_NONE, t->plane, &new_fb);
> > +		  t->tile, t->plane, &new_fb);
> 
> Do we really want to change this to X tiled (I think that's what you
> set
> as default)?

I guess, not removing it.

> 
> >  	fill_fb(&new_fb, COLOR_PRIM_BG);
> >  
> >  	for (flip_type = 0; flip_type < FLIP_COUNT; flip_type++) {
> >  		igt_debug("Flip type: %d\n", flip_type);
> >  
> > -		/* Set a buffer with no tiling. */
> > +		/* Set a buffer with new tiling. */
> >  		params->primary.fb = &new_fb;
> >  		page_flip_for_params(params, flip_type);
> >  		do_assertions(ASSERT_FBC_DISABLED);
> > @@ -3486,8 +3503,19 @@ igt_main_args("", long_options, help_str,
> > opt_handler, NULL)
> >  			igt_subtest_f("%s-stridechange",
> > feature_str(t.feature))
> >  				stridechange_subtest(&t);
> >  
> > -			igt_subtest_f("%s-tilingchange",
> > feature_str(t.feature))
> > -				tilingchange_subtest(&t);
> > +			for (t.tile = TILE_LINEAR; t.tile < TILE_COUNT;
> > +			     t.tile++) {
> > +				igt_subtest_f("%s-tiling-%s",
> > +					      feature_str(t.feature),
> > +					      tile_str(t.tile)) {
> > +
> > +					if (tiling_is_valid(t.feature,
> > t.tile))
> > +						draw_subtest(&t);
> > +					else
> > +						tiling_disable_fbc_subt
> > est(&t);
> > +				}
> > +			}
> > +			t.tile = opt.tiling;
> >  		}
> >  
> >  		if ((t.feature & FEATURE_PSR) || (t.feature &
> > FEATURE_DRRS))
> > -- 
> > 2.25.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage
  2020-02-06 12:00   ` Ville Syrjälä
@ 2020-03-11  0:00     ` Souza, Jose
  0 siblings, 0 replies; 14+ messages in thread
From: Souza, Jose @ 2020-03-11  0:00 UTC (permalink / raw)
  To: ville.syrjala; +Cc: igt-dev

On Thu, 2020-02-06 at 14:00 +0200, Ville Syrjälä wrote:
> On Wed, Feb 05, 2020 at 06:09:42PM -0800, José Roberto de Souza
> wrote:
> > Lets add some more tiling tests, if tiling is supported by FBC draw
> > some rectangles and compare the CRC against benchmark if not
> > supported run the test to guarantee that FBC is disabled.
> > 
> > This is a preparation for when kernel will allow FBC to be enabled
> > without fences, so we can better test linear and Y tiled
> > frontbuffers.
> > 
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> > ---
> >  tests/kms_frontbuffer_tracking.c | 50 +++++++++++++++++++++++++---
> > ----
> >  1 file changed, 39 insertions(+), 11 deletions(-)
> > 
> > diff --git a/tests/kms_frontbuffer_tracking.c
> > b/tests/kms_frontbuffer_tracking.c
> > index 63b5d12d..d5a64a4d 100644
> > --- a/tests/kms_frontbuffer_tracking.c
> > +++ b/tests/kms_frontbuffer_tracking.c
> > @@ -2159,6 +2159,23 @@ static void format_draw_subtest(const struct
> > test_mode *t)
> >  		badformat_subtest(t);
> >  }
> >  
> > +static bool tiling_is_valid(int feature_flags, enum tile_type
> > tile)
> > +{
> > +	if (!(feature_flags & FEATURE_FBC))
> > +		return true;
> > +
> > +	switch (tile) {
> > +	case TILE_LINEAR:
> > +		return false;
> > +	case TILE_X:
> > +	case TILE_Y:
> > +		return true;
> > +	default:
> > +		igt_assert(false);
> > +		return false;
> > +	}
> > +}
> > +
> >  /*
> >   * slow_draw - sleep a little bit between drawing operations
> >   *
> > @@ -2954,22 +2971,22 @@ static void stridechange_subtest(const
> > struct test_mode *t)
> >  }
> >  
> >  /**
> > - * tilingchange - alternate between tiled and untiled in multiple
> > ways
> > + * tiling_disable_fbc_subtest - Check that tiling causes FBC to be
> > disabled
> >   *
> >   * METHOD
> > - *   This test alternates between tiled and untiled frontbuffers
> > of the same
> > - *   size and format through multiple different APIs: the page
> > flip IOCTL,
> > - *   normal modesets and the plane APIs.
> > + *   This test alternates between a FBC supported and non-
> > supported tiled
> > + *   frontbuffers of the same size and format through multiple
> > different
> > + *   APIs: the page flip IOCTL, normal modesets and the plane
> > APIs.
> >   *
> >   * EXPECTED RESULTS
> > - *   FBC gets properly disabled for the untiled FB and reenabled
> > for the
> > - *   tiled FB.
> > + *   FBC gets properly disabled for the non-supported tiling and
> > reenabled for
> > + *   the supported tiling.
> >   *
> >   * FAILURES
> >   *   Bad Kernels may somehow leave FBC enabled, which can cause
> > FIFO underruns
> >   *   that lead to CRC assertion failures.
> >   */
> > -static void tilingchange_subtest(const struct test_mode *t)
> > +static void tiling_disable_fbc_subtest(const struct test_mode *t)
> >  {
> >  	struct igt_fb new_fb, *old_fb;
> >  	struct modeset_params *params = pick_params(t);
> > @@ -2980,13 +2997,13 @@ static void tilingchange_subtest(const
> > struct test_mode *t)
> >  	old_fb = params->primary.fb;
> >  
> >  	create_fb(t->format, params->primary.fb->width, params-
> > >primary.fb->height,
> > -		  LOCAL_DRM_FORMAT_MOD_NONE, t->plane, &new_fb);
> > +		  t->tile, t->plane, &new_fb);
> >  	fill_fb(&new_fb, COLOR_PRIM_BG);
> >  
> >  	for (flip_type = 0; flip_type < FLIP_COUNT; flip_type++) {
> >  		igt_debug("Flip type: %d\n", flip_type);
> >  
> > -		/* Set a buffer with no tiling. */
> > +		/* Set a buffer with new tiling. */
> >  		params->primary.fb = &new_fb;
> >  		page_flip_for_params(params, flip_type);
> >  		do_assertions(ASSERT_FBC_DISABLED);
> > @@ -3486,8 +3503,19 @@ igt_main_args("", long_options, help_str,
> > opt_handler, NULL)
> >  			igt_subtest_f("%s-stridechange",
> > feature_str(t.feature))
> >  				stridechange_subtest(&t);
> >  
> > -			igt_subtest_f("%s-tilingchange",
> > feature_str(t.feature))
> > -				tilingchange_subtest(&t);
> > +			for (t.tile = TILE_LINEAR; t.tile < TILE_COUNT;
> > +			     t.tile++) {
> 
> Ah, I guess the enum is for this loop.
> 
> s/tile/tiling/ whould be more customary language in general.
> Although, maybe people would then confuse it with the uapi
> definitions? Shrug.

Renaming to tiling.

> 
> > +				igt_subtest_f("%s-tiling-%s",
> > +					      feature_str(t.feature),
> > +					      tile_str(t.tile)) {
> > +
> > +					if (tiling_is_valid(t.feature,
> > t.tile))
> > +						draw_subtest(&t);
> > +					else
> > +						tiling_disable_fbc_subt
> > est(&t);
> > +				}
> > +			}
> > +			t.tile = opt.tiling;
> >  		}
> >  
> >  		if ((t.feature & FEATURE_PSR) || (t.feature &
> > FEATURE_DRRS))
> > -- 
> > 2.25.0
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2020-03-11  0:00 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-06  2:09 [igt-dev] [PATCH i-g-t 1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode José Roberto de Souza
2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_frontbuffer_tracking: Improve tiling test coverage José Roberto de Souza
2020-02-06 11:57   ` Ville Syrjälä
2020-03-10 23:59     ` Souza, Jose
2020-02-06 12:00   ` Ville Syrjälä
2020-03-11  0:00     ` Souza, Jose
2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_frontbuffer_tracking: Enable positive test on linear tiling José Roberto de Souza
2020-02-06 11:58   ` Ville Syrjälä
2020-02-06  2:09 ` [igt-dev] [PATCH i-g-t 4/4] DO_NOT_MERGE: Revert "tests/kms_frontbuffer_tracking: Enable positive test on linear tiling" José Roberto de Souza
2020-02-06  2:59 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_frontbuffer_tracking: Add tiling to test_mode Patchwork
2020-02-06 11:53 ` [igt-dev] [PATCH i-g-t 1/4] " Ville Syrjälä
2020-03-10 23:54   ` Souza, Jose
2020-02-06 15:58 ` [igt-dev] ✗ GitLab.Pipeline: failure for series starting with [i-g-t,1/4] " Patchwork
2020-02-08 14:56 ` [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.