All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane: Remove the upscaling requirement
@ 2019-03-28 17:57 Ville Syrjala
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_plane: Reduce the plane size 64x64 Ville Syrjala
                   ` (5 more replies)
  0 siblings, 6 replies; 11+ messages in thread
From: Ville Syrjala @ 2019-03-28 17:57 UTC (permalink / raw)
  To: igt-dev

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

No point in requiring upscaling when trying to use a small fb to test
pixel formats.

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

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index d8a14ecb3982..143bc5e6f3b8 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -392,40 +392,39 @@ static void set_legacy_lut(data_t *data, enum pipe pipe,
 
 static void test_format_plane_color(data_t *data, enum pipe pipe,
 				    igt_plane_t *plane,
-				    uint32_t format, int src_w, int src_h,
-				    int dst_w, int dst_h,
+				    uint32_t format, int width, int height,
 				    int color, igt_crc_t *crc, struct igt_fb *fb)
 {
 	const color_t *c = &colors[color];
 	struct igt_fb old_fb = *fb;
 
 	if (data->crop == 0 || format == DRM_FORMAT_XRGB8888) {
-		igt_create_color_fb(data->drm_fd, src_w, src_h, format,
-				    LOCAL_DRM_FORMAT_MOD_NONE,
+		igt_create_color_fb(data->drm_fd, width, height,
+				    format, DRM_FORMAT_MOD_NONE,
 				    c->red, c->green, c->blue, fb);
 	} else {
-	/*
-	 * paint border in inverted color, then visible area in middle
-	 * with correct color for clamping test
-	 */
+		/*
+		 * paint border in inverted color, then visible area in middle
+		 * with correct color for clamping test
+		 */
 		cairo_t *cr;
 
-		igt_create_fb(data->drm_fd, src_w + data->crop * 2,
-				    src_h + data->crop * 2, format,
-				    LOCAL_DRM_FORMAT_MOD_NONE,
-				    fb);
+		igt_create_fb(data->drm_fd,
+			      width + data->crop * 2,
+			      height + data->crop * 2,
+			      format, DRM_FORMAT_MOD_NONE, fb);
 
 		cr = igt_get_cairo_ctx(data->drm_fd, fb);
 
 		igt_paint_color(cr, 0, 0,
-				src_w+data->crop * 2,
-				src_h+data->crop * 2,
+				width + data->crop * 2,
+				height + data->crop * 2,
 				1.0f - c->red,
 				1.0f - c->green,
 				1.0f - c->blue);
 
 		igt_paint_color(cr, data->crop, data->crop,
-				src_w, src_h,
+				width, height,
 				c->red, c->green, c->blue);
 
 		igt_put_cairo_ctx(data->drm_fd, fb, cr);
@@ -436,11 +435,8 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
 	/*
 	 * if clamping test. DRM_FORMAT_XRGB8888 is used for reference color.
 	 */
-	if (data->crop != 0  && format != DRM_FORMAT_XRGB8888) {
+	if (data->crop != 0 && format != DRM_FORMAT_XRGB8888)
 		igt_fb_set_position(fb, plane, data->crop, data->crop);
-		igt_fb_set_size(fb, plane, src_w, src_h);
-	}
-	igt_plane_set_size(plane, dst_w, dst_h);
 
 	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_UNIVERSAL);
 	igt_pipe_crc_get_current(data->display.drm_fd, data->pipe_crc, crc);
@@ -456,7 +452,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 	struct igt_fb fb = {};
 	drmModeModeInfo *mode;
 	uint32_t format, ref_format;
-	uint64_t width, height, dst_w, dst_h;
+	uint64_t width, height;
 	igt_crc_t ref_crc[ARRAY_SIZE(colors)];
 	bool result = true;
 
@@ -480,8 +476,6 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 		do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_HEIGHT, &height));
 		ref_format = format = DRM_FORMAT_ARGB8888;
 	}
-	dst_w = width;
-	dst_h = height;
 
 	igt_debug("Testing connector %s on %s plane %s.%u\n",
 		  igt_output_name(output), kmstest_plane_type_name(plane->type),
@@ -506,31 +500,29 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 		 kmstest_pipe_name(pipe), plane->index);
 
 	if (plane->type != DRM_PLANE_TYPE_CURSOR && data->display.is_atomic) {
+		struct igt_fb test_fb;
 		int ret;
 
 		igt_create_fb(data->drm_fd, 256, 256, format,
-				    LOCAL_DRM_FORMAT_MOD_NONE, &fb);
+				    LOCAL_DRM_FORMAT_MOD_NONE, &test_fb);
 
-		igt_plane_set_fb(plane, &fb);
-		/* Upscale to max size */
-		igt_plane_set_size(plane, dst_w, dst_h);
+		igt_plane_set_fb(plane, &test_fb);
 
 		ret = igt_display_try_commit_atomic(&data->display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
 
 		if (!ret) {
-			width = fb.width;
-			height = fb.height;
+			width = test_fb.width;
+			height = test_fb.height;
 		}
 
-		igt_remove_fb(data->drm_fd, &fb);
-
 		igt_plane_set_fb(plane, NULL);
+
+		igt_remove_fb(data->drm_fd, &test_fb);
 	}
 
 	for (int i = 0; i < ARRAY_SIZE(colors); i++) {
 		test_format_plane_color(data, pipe, plane,
 					format, width, height,
-					dst_w, dst_h,
 					i, &ref_crc[i], &fb);
 	}
 
@@ -554,7 +546,6 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 		for (int j = 0; j < ARRAY_SIZE(colors); j++) {
 			test_format_plane_color(data, pipe, plane,
 						format, width, height,
-						dst_w, dst_h,
 						j, &crc, &fb);
 
 			if (!igt_check_crc_equal(&crc, &ref_crc[j])) {
-- 
2.19.2

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

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

* [igt-dev] [PATCH i-g-t 2/4] tests/kms_plane: Reduce the plane size 64x64
  2019-03-28 17:57 [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane: Remove the upscaling requirement Ville Syrjala
@ 2019-03-28 17:57 ` Ville Syrjala
  2019-03-29  9:42   ` Daniel Vetter
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: Eliminate modeset between every plane Ville Syrjala
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Ville Syrjala @ 2019-03-28 17:57 UTC (permalink / raw)
  To: igt-dev

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

Reduce the plane size further to speed up the test. 64x64 is the
universal i915 minimum cursor size so we'll use that. And since
we choce wisely we'll make cursors use the reduced size as well.

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

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 143bc5e6f3b8..4007c894f87a 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -499,12 +499,12 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 		 IGT_FORMAT_ARGS(format),
 		 kmstest_pipe_name(pipe), plane->index);
 
-	if (plane->type != DRM_PLANE_TYPE_CURSOR && data->display.is_atomic) {
+	if (data->display.is_atomic) {
 		struct igt_fb test_fb;
 		int ret;
 
-		igt_create_fb(data->drm_fd, 256, 256, format,
-				    LOCAL_DRM_FORMAT_MOD_NONE, &test_fb);
+		igt_create_fb(data->drm_fd, 64, 64, format,
+			      LOCAL_DRM_FORMAT_MOD_NONE, &test_fb);
 
 		igt_plane_set_fb(plane, &test_fb);
 
-- 
2.19.2

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

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

* [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: Eliminate modeset between every plane
  2019-03-28 17:57 [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane: Remove the upscaling requirement Ville Syrjala
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_plane: Reduce the plane size 64x64 Ville Syrjala
@ 2019-03-28 17:57 ` Ville Syrjala
  2019-03-29  9:45   ` Daniel Vetter
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 4/4] tests/kms_plane: Test all modifiers as well Ville Syrjala
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Ville Syrjala @ 2019-03-28 17:57 UTC (permalink / raw)
  To: igt-dev

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

Move the pipe/primary plane stuff outside the plane loop so that
we can avoid all that overhead (including a modeset) when switching
from one plane to another.

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

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 4007c894f87a..3f14dbf8e9b9 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -447,8 +447,6 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
 static bool test_format_plane(data_t *data, enum pipe pipe,
 			      igt_output_t *output, igt_plane_t *plane)
 {
-	igt_plane_t *primary;
-	struct igt_fb primary_fb;
 	struct igt_fb fb = {};
 	drmModeModeInfo *mode;
 	uint32_t format, ref_format;
@@ -481,18 +479,6 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 		  igt_output_name(output), kmstest_plane_type_name(plane->type),
 		  kmstest_pipe_name(pipe), plane->index);
 
-	igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
-		      DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, &primary_fb);
-
-	igt_output_set_pipe(output, pipe);
-	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
-	igt_plane_set_fb(primary, &primary_fb);
-
-	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
-
-	set_legacy_lut(data, pipe, 0xfc00);
-
-	test_init(data, pipe);
 	igt_pipe_crc_start(data->pipe_crc);
 
 	igt_info("Testing format " IGT_FORMAT_FMT " on %s.%u\n",
@@ -562,17 +548,9 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 	}
 
 	igt_pipe_crc_stop(data->pipe_crc);
-	test_fini(data);
-
-	set_legacy_lut(data, pipe, 0xffff);
 
-	igt_plane_set_fb(primary, NULL);
 	igt_plane_set_fb(plane, NULL);
-	igt_output_set_pipe(output, PIPE_NONE);
-	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
-
 	igt_remove_fb(data->drm_fd, &fb);
-	igt_remove_fb(data->drm_fd, &primary_fb);
 
 	return result;
 }
@@ -580,6 +558,9 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 static void
 test_pixel_formats(data_t *data, enum pipe pipe)
 {
+	struct igt_fb primary_fb;
+	igt_plane_t *primary;
+	drmModeModeInfo *mode;
 	bool result;
 	igt_output_t *output;
 	igt_plane_t *plane;
@@ -587,13 +568,36 @@ test_pixel_formats(data_t *data, enum pipe pipe)
 	output = igt_get_single_output_for_pipe(&data->display, pipe);
 	igt_require(output);
 
+	mode = igt_output_get_mode(output);
+
+	igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
+		      DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, &primary_fb);
+
+	igt_output_set_pipe(output, pipe);
+	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+	igt_plane_set_fb(primary, &primary_fb);
+
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+	set_legacy_lut(data, pipe, 0xfc00);
+
+	test_init(data, pipe);
+
 	result = true;
 	for_each_plane_on_pipe(&data->display, pipe, plane)
 		result &= test_format_plane(data, pipe, output, plane);
 
-	igt_assert_f(result, "At least one CRC mismatch happened\n");
+	test_fini(data);
 
-	igt_output_set_pipe(output, PIPE_ANY);
+	set_legacy_lut(data, pipe, 0xffff);
+
+	igt_plane_set_fb(primary, NULL);
+	igt_output_set_pipe(output, PIPE_NONE);
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+	igt_remove_fb(data->drm_fd, &primary_fb);
+
+	igt_assert_f(result, "At least one CRC mismatch happened\n");
 }
 
 static void
-- 
2.19.2

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

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

* [igt-dev] [PATCH i-g-t 4/4] tests/kms_plane: Test all modifiers as well
  2019-03-28 17:57 [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane: Remove the upscaling requirement Ville Syrjala
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_plane: Reduce the plane size 64x64 Ville Syrjala
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: Eliminate modeset between every plane Ville Syrjala
@ 2019-03-28 17:57 ` Ville Syrjala
  2019-03-29  9:53   ` Daniel Vetter
  2019-03-28 18:36 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_plane: Remove the upscaling requirement Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 11+ messages in thread
From: Ville Syrjala @ 2019-03-28 17:57 UTC (permalink / raw)
  To: igt-dev

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

Instead of just testing each pixel format let's test every
format+modifier combo.

Obviously testing with solid filled fbs isn't the most effective
way to detect tiling problems, but we can't really do much more if
we want to keep comparing YUV vs. RGB results (unless we start to
render the RGB content in a way that matches the YUV subsampling
behaviour of the hardware).

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

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 3f14dbf8e9b9..33e2905a8d71 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -392,7 +392,8 @@ static void set_legacy_lut(data_t *data, enum pipe pipe,
 
 static void test_format_plane_color(data_t *data, enum pipe pipe,
 				    igt_plane_t *plane,
-				    uint32_t format, int width, int height,
+				    uint32_t format, uint64_t modifier,
+				    int width, int height,
 				    int color, igt_crc_t *crc, struct igt_fb *fb)
 {
 	const color_t *c = &colors[color];
@@ -400,7 +401,7 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
 
 	if (data->crop == 0 || format == DRM_FORMAT_XRGB8888) {
 		igt_create_color_fb(data->drm_fd, width, height,
-				    format, DRM_FORMAT_MOD_NONE,
+				    format, modifier,
 				    c->red, c->green, c->blue, fb);
 	} else {
 		/*
@@ -412,7 +413,7 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
 		igt_create_fb(data->drm_fd,
 			      width + data->crop * 2,
 			      height + data->crop * 2,
-			      format, DRM_FORMAT_MOD_NONE, fb);
+			      format, modifier, fb);
 
 		cr = igt_get_cairo_ctx(data->drm_fd, fb);
 
@@ -450,6 +451,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 	struct igt_fb fb = {};
 	drmModeModeInfo *mode;
 	uint32_t format, ref_format;
+	uint64_t modifier, ref_modifier;
 	uint64_t width, height;
 	igt_crc_t ref_crc[ARRAY_SIZE(colors)];
 	bool result = true;
@@ -465,6 +467,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 		width = mode->hdisplay;
 		height = mode->vdisplay;
 		ref_format = format = DRM_FORMAT_XRGB8888;
+		ref_modifier = modifier = DRM_FORMAT_MOD_NONE;
 	} else {
 		if (!plane->drm_plane) {
 			igt_debug("Only legacy cursor ioctl supported, skipping cursor plane\n");
@@ -473,6 +476,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 		do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &width));
 		do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_HEIGHT, &height));
 		ref_format = format = DRM_FORMAT_ARGB8888;
+		ref_modifier = modifier = DRM_FORMAT_MOD_NONE;
 	}
 
 	igt_debug("Testing connector %s on %s plane %s.%u\n",
@@ -481,8 +485,8 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 
 	igt_pipe_crc_start(data->pipe_crc);
 
-	igt_info("Testing format " IGT_FORMAT_FMT " on %s.%u\n",
-		 IGT_FORMAT_ARGS(format),
+	igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
+		 IGT_FORMAT_ARGS(format), modifier,
 		 kmstest_pipe_name(pipe), plane->index);
 
 	if (data->display.is_atomic) {
@@ -508,30 +512,34 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
 
 	for (int i = 0; i < ARRAY_SIZE(colors); i++) {
 		test_format_plane_color(data, pipe, plane,
-					format, width, height,
+					format, modifier,
+					width, height,
 					i, &ref_crc[i], &fb);
 	}
 
-	for (int i = 0; i < plane->drm_plane->count_formats; i++) {
+	for (int i = 0; i < plane->format_mod_count; i++) {
 		int crc_mismatch_count = 0;
 		int crc_mismatch_mask = 0;
 		igt_crc_t crc;
 
-		format = plane->drm_plane->formats[i];
+		format = plane->formats[i];
+		modifier = plane->modifiers[i];
 
-		if (format == ref_format)
+		if (format == ref_format &&
+		    modifier == ref_modifier)
 			continue;
 
 		if (!igt_fb_supported_format(format))
 			continue;
 
-		igt_info("Testing format " IGT_FORMAT_FMT " on %s.%u\n",
-			 IGT_FORMAT_ARGS(format),
+		igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
+			 IGT_FORMAT_ARGS(format), modifier,
 			 kmstest_pipe_name(pipe), plane->index);
 
 		for (int j = 0; j < ARRAY_SIZE(colors); j++) {
 			test_format_plane_color(data, pipe, plane,
-						format, width, height,
+						format, modifier,
+						width, height,
 						j, &crc, &fb);
 
 			if (!igt_check_crc_equal(&crc, &ref_crc[j])) {
-- 
2.19.2

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_plane: Remove the upscaling requirement
  2019-03-28 17:57 [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane: Remove the upscaling requirement Ville Syrjala
                   ` (2 preceding siblings ...)
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 4/4] tests/kms_plane: Test all modifiers as well Ville Syrjala
@ 2019-03-28 18:36 ` Patchwork
  2019-03-29  4:25 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  2019-03-29  9:41 ` [igt-dev] [PATCH i-g-t 1/4] " Daniel Vetter
  5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2019-03-28 18:36 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/4] tests/kms_plane: Remove the upscaling requirement
URL   : https://patchwork.freedesktop.org/series/58687/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5831 -> IGTPW_2728
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/58687/revisions/1/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-blb-e6850:       PASS -> INCOMPLETE [fdo#107718]

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-icl-u2:          PASS -> DMESG-WARN [fdo#109638]

  * igt@i915_selftest@live_uncore:
    - fi-ivb-3770:        PASS -> DMESG-FAIL [fdo#110210]

  * igt@kms_busy@basic-flip-a:
    - fi-gdg-551:         PASS -> FAIL [fdo#103182]

  * igt@kms_frontbuffer_tracking@basic:
    - fi-byt-clapper:     PASS -> FAIL [fdo#103167]

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - fi-byt-clapper:     PASS -> FAIL [fdo#103191] / [fdo#107362]

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#109638]: https://bugs.freedesktop.org/show_bug.cgi?id=109638
  [fdo#110210]: https://bugs.freedesktop.org/show_bug.cgi?id=110210


Participating hosts (43 -> 39)
------------------------------

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


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

    * IGT: IGT_4911 -> IGTPW_2728

  CI_DRM_5831: 8cac0cc264d2a6af0b33370b542b12d516e022c5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2728: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2728/
  IGT_4911: d9fe699ea45406e279b78d1afdb4d57a205a3c99 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for series starting with [i-g-t,1/4] tests/kms_plane: Remove the upscaling requirement
  2019-03-28 17:57 [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane: Remove the upscaling requirement Ville Syrjala
                   ` (3 preceding siblings ...)
  2019-03-28 18:36 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_plane: Remove the upscaling requirement Patchwork
@ 2019-03-29  4:25 ` Patchwork
  2019-03-29  9:41 ` [igt-dev] [PATCH i-g-t 1/4] " Daniel Vetter
  5 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2019-03-29  4:25 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/4] tests/kms_plane: Remove the upscaling requirement
URL   : https://patchwork.freedesktop.org/series/58687/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_5831_full -> IGTPW_2728_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/58687/revisions/1/mbox/

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

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

### IGT changes ###

#### Suppressed ####

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

  * {igt@kms_plane@pixel-format-pipe-a-planes-source-clamping}:
    - shard-snb:          PASS -> FAIL +1

  * {igt@kms_plane@pixel-format-pipe-b-planes-source-clamping}:
    - shard-apl:          PASS -> FAIL +2
    - shard-hsw:          PASS -> FAIL +1

  * {igt@kms_plane@pixel-format-pipe-c-planes-source-clamping}:
    - shard-glk:          SKIP [fdo#109271] -> FAIL +2
    - shard-kbl:          PASS -> FAIL +2

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-suspend:
    - shard-kbl:          PASS -> INCOMPLETE [fdo#103665] +1

  * igt@gem_exec_suspend@basic-s3:
    - shard-kbl:          PASS -> DMESG-WARN [fdo#108566]

  * igt@kms_atomic_transition@6x-modeset-transitions-fencing:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@kms_atomic_transition@plane-all-modeset-transition-fencing:
    - shard-apl:          PASS -> INCOMPLETE [fdo#103927]

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-a:
    - shard-hsw:          PASS -> DMESG-WARN [fdo#110222]

  * igt@kms_busy@extended-pageflip-modeset-hang-oldfb-render-f:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] / [fdo#109278]

  * igt@kms_cursor_crc@cursor-size-change:
    - shard-glk:          PASS -> FAIL [fdo#103232]
    - shard-apl:          PASS -> FAIL [fdo#103232]
    - shard-kbl:          PASS -> FAIL [fdo#103232]

  * igt@kms_fbcon_fbt@fbc:
    - shard-glk:          NOTRUN -> SKIP [fdo#109271] +13

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-glk:          PASS -> FAIL [fdo#105363]

  * igt@kms_plane_alpha_blend@pipe-b-alpha-transparant-fb:
    - shard-apl:          NOTRUN -> FAIL [fdo#108145]

  * igt@kms_psr@basic:
    - shard-apl:          NOTRUN -> SKIP [fdo#109271] +15

  
#### Possible fixes ####

  * igt@kms_busy@extended-modeset-hang-newfb-render-b:
    - shard-hsw:          DMESG-WARN [fdo#110222] -> PASS +2
    - shard-kbl:          DMESG-WARN [fdo#110222] -> PASS

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-a:
    - shard-snb:          DMESG-WARN [fdo#110222] -> PASS +1

  * igt@kms_cursor_crc@cursor-128x128-dpms:
    - shard-kbl:          FAIL [fdo#103232] -> PASS
    - shard-apl:          FAIL [fdo#103232] -> PASS

  * igt@kms_draw_crc@draw-method-xrgb8888-render-xtiled:
    - shard-glk:          FAIL [fdo#107791] -> PASS

  * igt@kms_flip@flip-vs-suspend:
    - shard-kbl:          DMESG-WARN [fdo#108566] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - shard-apl:          FAIL [fdo#103167] -> PASS
    - shard-kbl:          FAIL [fdo#103167] -> PASS

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-shrfb-plflip-blt:
    - shard-glk:          FAIL [fdo#103167] -> PASS

  * {igt@kms_plane@pixel-format-pipe-b-planes}:
    - shard-glk:          SKIP [fdo#109271] -> PASS

  * igt@kms_plane_alpha_blend@pipe-a-alpha-opaque-fb:
    - shard-apl:          FAIL [fdo#108145] -> PASS

  * igt@kms_plane_scaling@pipe-c-scaler-with-pixel-format:
    - shard-glk:          SKIP [fdo#109271] / [fdo#109278] -> PASS

  * igt@kms_sequence@queue-idle:
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS

  * igt@kms_setmode@basic:
    - shard-kbl:          FAIL [fdo#99912] -> PASS

  * igt@kms_vblank@pipe-a-ts-continuation-modeset:
    - shard-apl:          FAIL [fdo#104894] -> PASS
    - shard-kbl:          FAIL [fdo#104894] -> PASS

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

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#107791]: https://bugs.freedesktop.org/show_bug.cgi?id=107791
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#110222]: https://bugs.freedesktop.org/show_bug.cgi?id=110222
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (10 -> 5)
------------------------------

  Missing    (5): shard-skl pig-hsw-4770r pig-glk-j5005 shard-iclb pig-skl-6260u 


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

    * IGT: IGT_4911 -> IGTPW_2728
    * Piglit: piglit_4509 -> None

  CI_DRM_5831: 8cac0cc264d2a6af0b33370b542b12d516e022c5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2728: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2728/
  IGT_4911: d9fe699ea45406e279b78d1afdb4d57a205a3c99 @ 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_2728/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane: Remove the upscaling requirement
  2019-03-28 17:57 [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane: Remove the upscaling requirement Ville Syrjala
                   ` (4 preceding siblings ...)
  2019-03-29  4:25 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2019-03-29  9:41 ` Daniel Vetter
  5 siblings, 0 replies; 11+ messages in thread
From: Daniel Vetter @ 2019-03-29  9:41 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

On Thu, Mar 28, 2019 at 07:57:24PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> No point in requiring upscaling when trying to use a small fb to test
> pixel formats.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  tests/kms_plane.c | 55 ++++++++++++++++++++---------------------------
>  1 file changed, 23 insertions(+), 32 deletions(-)
> 
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index d8a14ecb3982..143bc5e6f3b8 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -392,40 +392,39 @@ static void set_legacy_lut(data_t *data, enum pipe pipe,
>  
>  static void test_format_plane_color(data_t *data, enum pipe pipe,
>  				    igt_plane_t *plane,
> -				    uint32_t format, int src_w, int src_h,
> -				    int dst_w, int dst_h,
> +				    uint32_t format, int width, int height,
>  				    int color, igt_crc_t *crc, struct igt_fb *fb)
>  {
>  	const color_t *c = &colors[color];
>  	struct igt_fb old_fb = *fb;
>  
>  	if (data->crop == 0 || format == DRM_FORMAT_XRGB8888) {
> -		igt_create_color_fb(data->drm_fd, src_w, src_h, format,
> -				    LOCAL_DRM_FORMAT_MOD_NONE,
> +		igt_create_color_fb(data->drm_fd, width, height,
> +				    format, DRM_FORMAT_MOD_NONE,
>  				    c->red, c->green, c->blue, fb);
>  	} else {
> -	/*
> -	 * paint border in inverted color, then visible area in middle
> -	 * with correct color for clamping test
> -	 */
> +		/*
> +		 * paint border in inverted color, then visible area in middle
> +		 * with correct color for clamping test
> +		 */
>  		cairo_t *cr;
>  
> -		igt_create_fb(data->drm_fd, src_w + data->crop * 2,
> -				    src_h + data->crop * 2, format,
> -				    LOCAL_DRM_FORMAT_MOD_NONE,
> -				    fb);
> +		igt_create_fb(data->drm_fd,
> +			      width + data->crop * 2,
> +			      height + data->crop * 2,
> +			      format, DRM_FORMAT_MOD_NONE, fb);
>  
>  		cr = igt_get_cairo_ctx(data->drm_fd, fb);
>  
>  		igt_paint_color(cr, 0, 0,
> -				src_w+data->crop * 2,
> -				src_h+data->crop * 2,
> +				width + data->crop * 2,
> +				height + data->crop * 2,
>  				1.0f - c->red,
>  				1.0f - c->green,
>  				1.0f - c->blue);
>  
>  		igt_paint_color(cr, data->crop, data->crop,
> -				src_w, src_h,
> +				width, height,
>  				c->red, c->green, c->blue);
>  
>  		igt_put_cairo_ctx(data->drm_fd, fb, cr);
> @@ -436,11 +435,8 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
>  	/*
>  	 * if clamping test. DRM_FORMAT_XRGB8888 is used for reference color.
>  	 */
> -	if (data->crop != 0  && format != DRM_FORMAT_XRGB8888) {
> +	if (data->crop != 0 && format != DRM_FORMAT_XRGB8888)
>  		igt_fb_set_position(fb, plane, data->crop, data->crop);
> -		igt_fb_set_size(fb, plane, src_w, src_h);
> -	}
> -	igt_plane_set_size(plane, dst_w, dst_h);
>  
>  	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_UNIVERSAL);
>  	igt_pipe_crc_get_current(data->display.drm_fd, data->pipe_crc, crc);
> @@ -456,7 +452,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  	struct igt_fb fb = {};
>  	drmModeModeInfo *mode;
>  	uint32_t format, ref_format;
> -	uint64_t width, height, dst_w, dst_h;
> +	uint64_t width, height;
>  	igt_crc_t ref_crc[ARRAY_SIZE(colors)];
>  	bool result = true;
>  
> @@ -480,8 +476,6 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  		do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_HEIGHT, &height));
>  		ref_format = format = DRM_FORMAT_ARGB8888;
>  	}
> -	dst_w = width;
> -	dst_h = height;
>  
>  	igt_debug("Testing connector %s on %s plane %s.%u\n",
>  		  igt_output_name(output), kmstest_plane_type_name(plane->type),
> @@ -506,31 +500,29 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  		 kmstest_pipe_name(pipe), plane->index);
>  
>  	if (plane->type != DRM_PLANE_TYPE_CURSOR && data->display.is_atomic) {
> +		struct igt_fb test_fb;
>  		int ret;
>  
>  		igt_create_fb(data->drm_fd, 256, 256, format,
> -				    LOCAL_DRM_FORMAT_MOD_NONE, &fb);
> +				    LOCAL_DRM_FORMAT_MOD_NONE, &test_fb);
>  
> -		igt_plane_set_fb(plane, &fb);
> -		/* Upscale to max size */
> -		igt_plane_set_size(plane, dst_w, dst_h);
> +		igt_plane_set_fb(plane, &test_fb);
>  
>  		ret = igt_display_try_commit_atomic(&data->display, DRM_MODE_ATOMIC_TEST_ONLY, NULL);
>  
>  		if (!ret) {
> -			width = fb.width;
> -			height = fb.height;
> +			width = test_fb.width;
> +			height = test_fb.height;
>  		}
>  
> -		igt_remove_fb(data->drm_fd, &fb);
> -
>  		igt_plane_set_fb(plane, NULL);
> +
> +		igt_remove_fb(data->drm_fd, &test_fb);
>  	}
>  
>  	for (int i = 0; i < ARRAY_SIZE(colors); i++) {
>  		test_format_plane_color(data, pipe, plane,
>  					format, width, height,
> -					dst_w, dst_h,
>  					i, &ref_crc[i], &fb);
>  	}
>  
> @@ -554,7 +546,6 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  		for (int j = 0; j < ARRAY_SIZE(colors); j++) {
>  			test_format_plane_color(data, pipe, plane,
>  						format, width, height,
> -						dst_w, dst_h,
>  						j, &crc, &fb);
>  
>  			if (!igt_check_crc_equal(&crc, &ref_crc[j])) {
> -- 
> 2.19.2
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 2/4] tests/kms_plane: Reduce the plane size 64x64
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_plane: Reduce the plane size 64x64 Ville Syrjala
@ 2019-03-29  9:42   ` Daniel Vetter
  0 siblings, 0 replies; 11+ messages in thread
From: Daniel Vetter @ 2019-03-29  9:42 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

On Thu, Mar 28, 2019 at 07:57:25PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Reduce the plane size further to speed up the test. 64x64 is the
> universal i915 minimum cursor size so we'll use that. And since
> we choce wisely we'll make cursors use the reduced size as well.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  tests/kms_plane.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index 143bc5e6f3b8..4007c894f87a 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -499,12 +499,12 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  		 IGT_FORMAT_ARGS(format),
>  		 kmstest_pipe_name(pipe), plane->index);
>  
> -	if (plane->type != DRM_PLANE_TYPE_CURSOR && data->display.is_atomic) {
> +	if (data->display.is_atomic) {
>  		struct igt_fb test_fb;
>  		int ret;
>  
> -		igt_create_fb(data->drm_fd, 256, 256, format,
> -				    LOCAL_DRM_FORMAT_MOD_NONE, &test_fb);
> +		igt_create_fb(data->drm_fd, 64, 64, format,
> +			      LOCAL_DRM_FORMAT_MOD_NONE, &test_fb);
>  
>  		igt_plane_set_fb(plane, &test_fb);
>  
> -- 
> 2.19.2
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: Eliminate modeset between every plane
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: Eliminate modeset between every plane Ville Syrjala
@ 2019-03-29  9:45   ` Daniel Vetter
  0 siblings, 0 replies; 11+ messages in thread
From: Daniel Vetter @ 2019-03-29  9:45 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

On Thu, Mar 28, 2019 at 07:57:26PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Move the pipe/primary plane stuff outside the plane loop so that
> we can avoid all that overhead (including a modeset) when switching
> from one plane to another.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  tests/kms_plane.c | 52 +++++++++++++++++++++++++----------------------
>  1 file changed, 28 insertions(+), 24 deletions(-)
> 
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index 4007c894f87a..3f14dbf8e9b9 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -447,8 +447,6 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
>  static bool test_format_plane(data_t *data, enum pipe pipe,
>  			      igt_output_t *output, igt_plane_t *plane)
>  {
> -	igt_plane_t *primary;
> -	struct igt_fb primary_fb;
>  	struct igt_fb fb = {};
>  	drmModeModeInfo *mode;
>  	uint32_t format, ref_format;
> @@ -481,18 +479,6 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  		  igt_output_name(output), kmstest_plane_type_name(plane->type),
>  		  kmstest_pipe_name(pipe), plane->index);
>  
> -	igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
> -		      DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, &primary_fb);
> -
> -	igt_output_set_pipe(output, pipe);
> -	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> -	igt_plane_set_fb(primary, &primary_fb);
> -
> -	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> -
> -	set_legacy_lut(data, pipe, 0xfc00);
> -
> -	test_init(data, pipe);
>  	igt_pipe_crc_start(data->pipe_crc);
>  
>  	igt_info("Testing format " IGT_FORMAT_FMT " on %s.%u\n",
> @@ -562,17 +548,9 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  	}
>  
>  	igt_pipe_crc_stop(data->pipe_crc);
> -	test_fini(data);
> -
> -	set_legacy_lut(data, pipe, 0xffff);
>  
> -	igt_plane_set_fb(primary, NULL);
>  	igt_plane_set_fb(plane, NULL);
> -	igt_output_set_pipe(output, PIPE_NONE);
> -	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> -
>  	igt_remove_fb(data->drm_fd, &fb);
> -	igt_remove_fb(data->drm_fd, &primary_fb);
>  
>  	return result;
>  }
> @@ -580,6 +558,9 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  static void
>  test_pixel_formats(data_t *data, enum pipe pipe)
>  {
> +	struct igt_fb primary_fb;
> +	igt_plane_t *primary;
> +	drmModeModeInfo *mode;
>  	bool result;
>  	igt_output_t *output;
>  	igt_plane_t *plane;
> @@ -587,13 +568,36 @@ test_pixel_formats(data_t *data, enum pipe pipe)
>  	output = igt_get_single_output_for_pipe(&data->display, pipe);
>  	igt_require(output);
>  
> +	mode = igt_output_get_mode(output);
> +
> +	igt_create_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
> +		      DRM_FORMAT_XRGB8888, LOCAL_DRM_FORMAT_MOD_NONE, &primary_fb);
> +
> +	igt_output_set_pipe(output, pipe);
> +	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> +	igt_plane_set_fb(primary, &primary_fb);
> +
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
> +	set_legacy_lut(data, pipe, 0xfc00);
> +
> +	test_init(data, pipe);
> +
>  	result = true;
>  	for_each_plane_on_pipe(&data->display, pipe, plane)
>  		result &= test_format_plane(data, pipe, output, plane);
>  
> -	igt_assert_f(result, "At least one CRC mismatch happened\n");
> +	test_fini(data);
>  
> -	igt_output_set_pipe(output, PIPE_ANY);
> +	set_legacy_lut(data, pipe, 0xffff);
> +
> +	igt_plane_set_fb(primary, NULL);
> +	igt_output_set_pipe(output, PIPE_NONE);
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
> +	igt_remove_fb(data->drm_fd, &primary_fb);
> +
> +	igt_assert_f(result, "At least one CRC mismatch happened\n");
>  }
>  
>  static void
> -- 
> 2.19.2
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev


Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 4/4] tests/kms_plane: Test all modifiers as well
  2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 4/4] tests/kms_plane: Test all modifiers as well Ville Syrjala
@ 2019-03-29  9:53   ` Daniel Vetter
  2019-03-29 11:11     ` Ville Syrjälä
  0 siblings, 1 reply; 11+ messages in thread
From: Daniel Vetter @ 2019-03-29  9:53 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

On Thu, Mar 28, 2019 at 07:57:27PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Instead of just testing each pixel format let's test every
> format+modifier combo.
> 
> Obviously testing with solid filled fbs isn't the most effective
> way to detect tiling problems, but we can't really do much more if
> we want to keep comparing YUV vs. RGB results (unless we start to
> render the RGB content in a way that matches the YUV subsampling
> behaviour of the hardware).
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

Hm, if we don't have the igt fb support for a modifier combo, I guess
we'll now skip the entire test? More reasons to figure out the dynamic
subtest stuff I've been talking about I guess.

*shrug*

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> ---
>  tests/kms_plane.c | 32 ++++++++++++++++++++------------
>  1 file changed, 20 insertions(+), 12 deletions(-)
> 
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> index 3f14dbf8e9b9..33e2905a8d71 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -392,7 +392,8 @@ static void set_legacy_lut(data_t *data, enum pipe pipe,
>  
>  static void test_format_plane_color(data_t *data, enum pipe pipe,
>  				    igt_plane_t *plane,
> -				    uint32_t format, int width, int height,
> +				    uint32_t format, uint64_t modifier,
> +				    int width, int height,
>  				    int color, igt_crc_t *crc, struct igt_fb *fb)
>  {
>  	const color_t *c = &colors[color];
> @@ -400,7 +401,7 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
>  
>  	if (data->crop == 0 || format == DRM_FORMAT_XRGB8888) {
>  		igt_create_color_fb(data->drm_fd, width, height,
> -				    format, DRM_FORMAT_MOD_NONE,
> +				    format, modifier,
>  				    c->red, c->green, c->blue, fb);
>  	} else {
>  		/*
> @@ -412,7 +413,7 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
>  		igt_create_fb(data->drm_fd,
>  			      width + data->crop * 2,
>  			      height + data->crop * 2,
> -			      format, DRM_FORMAT_MOD_NONE, fb);
> +			      format, modifier, fb);
>  
>  		cr = igt_get_cairo_ctx(data->drm_fd, fb);
>  
> @@ -450,6 +451,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  	struct igt_fb fb = {};
>  	drmModeModeInfo *mode;
>  	uint32_t format, ref_format;
> +	uint64_t modifier, ref_modifier;
>  	uint64_t width, height;
>  	igt_crc_t ref_crc[ARRAY_SIZE(colors)];
>  	bool result = true;
> @@ -465,6 +467,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  		width = mode->hdisplay;
>  		height = mode->vdisplay;
>  		ref_format = format = DRM_FORMAT_XRGB8888;
> +		ref_modifier = modifier = DRM_FORMAT_MOD_NONE;
>  	} else {
>  		if (!plane->drm_plane) {
>  			igt_debug("Only legacy cursor ioctl supported, skipping cursor plane\n");
> @@ -473,6 +476,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  		do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &width));
>  		do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_HEIGHT, &height));
>  		ref_format = format = DRM_FORMAT_ARGB8888;
> +		ref_modifier = modifier = DRM_FORMAT_MOD_NONE;
>  	}
>  
>  	igt_debug("Testing connector %s on %s plane %s.%u\n",
> @@ -481,8 +485,8 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  
>  	igt_pipe_crc_start(data->pipe_crc);
>  
> -	igt_info("Testing format " IGT_FORMAT_FMT " on %s.%u\n",
> -		 IGT_FORMAT_ARGS(format),
> +	igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
> +		 IGT_FORMAT_ARGS(format), modifier,
>  		 kmstest_pipe_name(pipe), plane->index);
>  
>  	if (data->display.is_atomic) {
> @@ -508,30 +512,34 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
>  
>  	for (int i = 0; i < ARRAY_SIZE(colors); i++) {
>  		test_format_plane_color(data, pipe, plane,
> -					format, width, height,
> +					format, modifier,
> +					width, height,
>  					i, &ref_crc[i], &fb);
>  	}
>  
> -	for (int i = 0; i < plane->drm_plane->count_formats; i++) {
> +	for (int i = 0; i < plane->format_mod_count; i++) {
>  		int crc_mismatch_count = 0;
>  		int crc_mismatch_mask = 0;
>  		igt_crc_t crc;
>  
> -		format = plane->drm_plane->formats[i];
> +		format = plane->formats[i];
> +		modifier = plane->modifiers[i];
>  
> -		if (format == ref_format)
> +		if (format == ref_format &&
> +		    modifier == ref_modifier)
>  			continue;
>  
>  		if (!igt_fb_supported_format(format))
>  			continue;
>  
> -		igt_info("Testing format " IGT_FORMAT_FMT " on %s.%u\n",
> -			 IGT_FORMAT_ARGS(format),
> +		igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
> +			 IGT_FORMAT_ARGS(format), modifier,
>  			 kmstest_pipe_name(pipe), plane->index);
>  
>  		for (int j = 0; j < ARRAY_SIZE(colors); j++) {
>  			test_format_plane_color(data, pipe, plane,
> -						format, width, height,
> +						format, modifier,
> +						width, height,
>  						j, &crc, &fb);
>  
>  			if (!igt_check_crc_equal(&crc, &ref_crc[j])) {
> -- 
> 2.19.2
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 4/4] tests/kms_plane: Test all modifiers as well
  2019-03-29  9:53   ` Daniel Vetter
@ 2019-03-29 11:11     ` Ville Syrjälä
  0 siblings, 0 replies; 11+ messages in thread
From: Ville Syrjälä @ 2019-03-29 11:11 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: igt-dev

On Fri, Mar 29, 2019 at 10:53:05AM +0100, Daniel Vetter wrote:
> On Thu, Mar 28, 2019 at 07:57:27PM +0200, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Instead of just testing each pixel format let's test every
> > format+modifier combo.
> > 
> > Obviously testing with solid filled fbs isn't the most effective
> > way to detect tiling problems, but we can't really do much more if
> > we want to keep comparing YUV vs. RGB results (unless we start to
> > render the RGB content in a way that matches the YUV subsampling
> > behaviour of the hardware).
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Hm, if we don't have the igt fb support for a modifier combo, I guess
> we'll now skip the entire test? More reasons to figure out the dynamic
> subtest stuff I've been talking about I guess.

Yeah, it's a bit annoying atm. Especially not having a new enough cairo
with the float support means that the test reports a skip on most modern
machines when I run it. I guess should unlazy myself and just build
cairo myself.

> 
> *shrug*
> 
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> 
> > ---
> >  tests/kms_plane.c | 32 ++++++++++++++++++++------------
> >  1 file changed, 20 insertions(+), 12 deletions(-)
> > 
> > diff --git a/tests/kms_plane.c b/tests/kms_plane.c
> > index 3f14dbf8e9b9..33e2905a8d71 100644
> > --- a/tests/kms_plane.c
> > +++ b/tests/kms_plane.c
> > @@ -392,7 +392,8 @@ static void set_legacy_lut(data_t *data, enum pipe pipe,
> >  
> >  static void test_format_plane_color(data_t *data, enum pipe pipe,
> >  				    igt_plane_t *plane,
> > -				    uint32_t format, int width, int height,
> > +				    uint32_t format, uint64_t modifier,
> > +				    int width, int height,
> >  				    int color, igt_crc_t *crc, struct igt_fb *fb)
> >  {
> >  	const color_t *c = &colors[color];
> > @@ -400,7 +401,7 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
> >  
> >  	if (data->crop == 0 || format == DRM_FORMAT_XRGB8888) {
> >  		igt_create_color_fb(data->drm_fd, width, height,
> > -				    format, DRM_FORMAT_MOD_NONE,
> > +				    format, modifier,
> >  				    c->red, c->green, c->blue, fb);
> >  	} else {
> >  		/*
> > @@ -412,7 +413,7 @@ static void test_format_plane_color(data_t *data, enum pipe pipe,
> >  		igt_create_fb(data->drm_fd,
> >  			      width + data->crop * 2,
> >  			      height + data->crop * 2,
> > -			      format, DRM_FORMAT_MOD_NONE, fb);
> > +			      format, modifier, fb);
> >  
> >  		cr = igt_get_cairo_ctx(data->drm_fd, fb);
> >  
> > @@ -450,6 +451,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
> >  	struct igt_fb fb = {};
> >  	drmModeModeInfo *mode;
> >  	uint32_t format, ref_format;
> > +	uint64_t modifier, ref_modifier;
> >  	uint64_t width, height;
> >  	igt_crc_t ref_crc[ARRAY_SIZE(colors)];
> >  	bool result = true;
> > @@ -465,6 +467,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
> >  		width = mode->hdisplay;
> >  		height = mode->vdisplay;
> >  		ref_format = format = DRM_FORMAT_XRGB8888;
> > +		ref_modifier = modifier = DRM_FORMAT_MOD_NONE;
> >  	} else {
> >  		if (!plane->drm_plane) {
> >  			igt_debug("Only legacy cursor ioctl supported, skipping cursor plane\n");
> > @@ -473,6 +476,7 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
> >  		do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &width));
> >  		do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_HEIGHT, &height));
> >  		ref_format = format = DRM_FORMAT_ARGB8888;
> > +		ref_modifier = modifier = DRM_FORMAT_MOD_NONE;
> >  	}
> >  
> >  	igt_debug("Testing connector %s on %s plane %s.%u\n",
> > @@ -481,8 +485,8 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
> >  
> >  	igt_pipe_crc_start(data->pipe_crc);
> >  
> > -	igt_info("Testing format " IGT_FORMAT_FMT " on %s.%u\n",
> > -		 IGT_FORMAT_ARGS(format),
> > +	igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
> > +		 IGT_FORMAT_ARGS(format), modifier,
> >  		 kmstest_pipe_name(pipe), plane->index);
> >  
> >  	if (data->display.is_atomic) {
> > @@ -508,30 +512,34 @@ static bool test_format_plane(data_t *data, enum pipe pipe,
> >  
> >  	for (int i = 0; i < ARRAY_SIZE(colors); i++) {
> >  		test_format_plane_color(data, pipe, plane,
> > -					format, width, height,
> > +					format, modifier,
> > +					width, height,
> >  					i, &ref_crc[i], &fb);
> >  	}
> >  
> > -	for (int i = 0; i < plane->drm_plane->count_formats; i++) {
> > +	for (int i = 0; i < plane->format_mod_count; i++) {
> >  		int crc_mismatch_count = 0;
> >  		int crc_mismatch_mask = 0;
> >  		igt_crc_t crc;
> >  
> > -		format = plane->drm_plane->formats[i];
> > +		format = plane->formats[i];
> > +		modifier = plane->modifiers[i];
> >  
> > -		if (format == ref_format)
> > +		if (format == ref_format &&
> > +		    modifier == ref_modifier)
> >  			continue;
> >  
> >  		if (!igt_fb_supported_format(format))
> >  			continue;
> >  
> > -		igt_info("Testing format " IGT_FORMAT_FMT " on %s.%u\n",
> > -			 IGT_FORMAT_ARGS(format),
> > +		igt_info("Testing format " IGT_FORMAT_FMT " / modifier 0x%" PRIx64 " on %s.%u\n",
> > +			 IGT_FORMAT_ARGS(format), modifier,
> >  			 kmstest_pipe_name(pipe), plane->index);
> >  
> >  		for (int j = 0; j < ARRAY_SIZE(colors); j++) {
> >  			test_format_plane_color(data, pipe, plane,
> > -						format, width, height,
> > +						format, modifier,
> > +						width, height,
> >  						j, &crc, &fb);
> >  
> >  			if (!igt_check_crc_equal(&crc, &ref_crc[j])) {
> > -- 
> > 2.19.2
> > 
> > _______________________________________________
> > igt-dev mailing list
> > igt-dev@lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/igt-dev
> 
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch

-- 
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] 11+ messages in thread

end of thread, other threads:[~2019-03-29 11:11 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-28 17:57 [igt-dev] [PATCH i-g-t 1/4] tests/kms_plane: Remove the upscaling requirement Ville Syrjala
2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_plane: Reduce the plane size 64x64 Ville Syrjala
2019-03-29  9:42   ` Daniel Vetter
2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: Eliminate modeset between every plane Ville Syrjala
2019-03-29  9:45   ` Daniel Vetter
2019-03-28 17:57 ` [igt-dev] [PATCH i-g-t 4/4] tests/kms_plane: Test all modifiers as well Ville Syrjala
2019-03-29  9:53   ` Daniel Vetter
2019-03-29 11:11     ` Ville Syrjälä
2019-03-28 18:36 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_plane: Remove the upscaling requirement Patchwork
2019-03-29  4:25 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-03-29  9:41 ` [igt-dev] [PATCH i-g-t 1/4] " Daniel Vetter

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.