All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer
@ 2021-06-15 16:00 Juha-Pekka Heikkila
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_ccs: separate ccs modifiers to separate subtests Juha-Pekka Heikkila
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2021-06-15 16:00 UTC (permalink / raw)
  To: igt-dev

take out frontbuffer usage from this test as it may fail this test
on frontbuffer related issues instead of cursor issues

v2(vsyrjala): fix cursor size change test to run only one loop

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 tests/kms_cursor_crc.c | 136 +++++++++++++++++++++--------------------
 1 file changed, 71 insertions(+), 65 deletions(-)

diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 1463c5b3f..ee8912dc1 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -64,14 +64,14 @@ typedef struct {
 	igt_plane_t *cursor;
 	cairo_surface_t *surface;
 	uint32_t devid;
-
+	bool hwimageistestimage;
 } data_t;
 
 #define TEST_DPMS (1<<0)
 #define TEST_SUSPEND (1<<1)
 
-#define FRONTBUFFER 0
-#define RESTOREBUFFER 1
+#define HWCURSORBUFFER 0
+#define SWCOMPARISONBUFFER 1
 
 static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)
 {
@@ -144,22 +144,16 @@ static bool cursor_visible(data_t *data, int x, int y)
 	return true;
 }
 
-static void restore_image(data_t *data)
+static void restore_image(data_t *data, uint32_t buffer)
 {
 	cairo_t *cr;
-	igt_display_t *display = &data->display;
 
-	/* rendercopy stripped in igt using cairo */
-	cr = igt_get_cairo_ctx(data->drm_fd,
-			       &data->primary_fb[FRONTBUFFER]);
+	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[buffer]);
 	cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
 	cairo_set_source_surface(cr, data->surface, 0, 0);
 	cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
 	cairo_fill(cr);
 	igt_put_cairo_ctx(cr);
-	igt_dirty_fb(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
-	igt_wait_for_vblank(data->drm_fd,
-			    display->pipes[data->pipe].crtc_offset);
 }
 
 static void do_single_test(data_t *data, int x, int y)
@@ -173,8 +167,6 @@ static void do_single_test(data_t *data, int x, int y)
 	igt_print_activity();
 
 	/* Hardware test */
-	restore_image(data);
-
 	igt_plane_set_position(data->cursor, x, y);
 	cursor_enable(data);
 
@@ -182,16 +174,18 @@ static void do_single_test(data_t *data, int x, int y)
 		ret = igt_display_try_commit2(display, COMMIT_LEGACY);
 		igt_assert_eq(ret, -EINVAL);
 		igt_plane_set_position(data->cursor, 0, y);
-
 		return;
 	}
 
+	igt_plane_set_fb(data->primary, &data->primary_fb[HWCURSORBUFFER]);
 	igt_display_commit(display);
 
 	/* Extra vblank wait is because nonblocking cursor ioctl */
 	igt_wait_for_vblank(data->drm_fd,
-			display->pipes[data->pipe].crtc_offset);
+			    display->pipes[data->pipe].crtc_offset);
+
 	igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc);
+	restore_image(data, SWCOMPARISONBUFFER);
 
 	if (data->flags & (TEST_DPMS | TEST_SUSPEND)) {
 		igt_crc_t crc_after;
@@ -220,15 +214,14 @@ static void do_single_test(data_t *data, int x, int y)
 		igt_assert_crc_equal(&crc, &crc_after);
 	}
 
-	cursor_disable(data);
-
 	/* Now render the same in software and collect crc */
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
+	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[SWCOMPARISONBUFFER]);
 	draw_cursor(cr, x, y, data->curw, data->curh, 1.0);
 	igt_put_cairo_ctx(cr);
+	igt_plane_set_fb(data->primary, &data->primary_fb[SWCOMPARISONBUFFER]);
+	cursor_disable(data);
 	igt_display_commit(display);
-	igt_dirty_fb(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
-	/* Extra vblank wait is because nonblocking cursor ioctl */
+
 	igt_wait_for_vblank(data->drm_fd,
 			display->pipes[data->pipe].crtc_offset);
 
@@ -244,8 +237,6 @@ static void do_fail_test(data_t *data, int x, int y, int expect)
 	igt_print_activity();
 
 	/* Hardware test */
-	restore_image(data);
-
 	cursor_enable(data);
 	igt_plane_set_position(data->cursor, x, y);
 	ret = igt_display_try_commit2(display, COMMIT_LEGACY);
@@ -362,13 +353,16 @@ static void cleanup_crtc(data_t *data)
 	igt_pipe_crc_free(data->pipe_crc);
 	data->pipe_crc = NULL;
 
-	cairo_surface_destroy(data->surface);
+	if (data->hwimageistestimage) {
+		cairo_surface_destroy(data->surface);
+		data->surface = NULL;
+	}
 
 	igt_plane_set_fb(data->primary, NULL);
 	igt_display_commit(display);
 
-	igt_remove_fb(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
-	igt_remove_fb(data->drm_fd, &data->primary_fb[RESTOREBUFFER]);
+	igt_remove_fb(data->drm_fd, &data->primary_fb[HWCURSORBUFFER]);
+	igt_remove_fb(data->drm_fd, &data->primary_fb[SWCOMPARISONBUFFER]);
 
 	igt_display_reset(display);
 }
@@ -389,18 +383,18 @@ static void prepare_crtc(data_t *data, igt_output_t *output,
 			    DRM_FORMAT_XRGB8888,
 			    LOCAL_DRM_FORMAT_MOD_NONE,
 			    0.0, 0.0, 0.0,
-			    &data->primary_fb[FRONTBUFFER]);
+			    &data->primary_fb[HWCURSORBUFFER]);
 
 	igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
 			    DRM_FORMAT_XRGB8888,
 			    LOCAL_DRM_FORMAT_MOD_NONE,
 			    0.0, 0.0, 0.0,
-			    &data->primary_fb[RESTOREBUFFER]);
+			    &data->primary_fb[SWCOMPARISONBUFFER]);
 
 	data->primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	data->cursor = igt_output_get_plane_type(output, DRM_PLANE_TYPE_CURSOR);
 
-	igt_plane_set_fb(data->primary, &data->primary_fb[FRONTBUFFER]);
+	igt_plane_set_fb(data->primary, &data->primary_fb[SWCOMPARISONBUFFER]);
 
 	igt_display_commit(display);
 
@@ -421,13 +415,22 @@ static void prepare_crtc(data_t *data, igt_output_t *output,
 	data->curh = cursor_h;
 	data->refresh = mode->vrefresh;
 
-	data->surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24, data->screenw, data->screenh);
+	if (data->hwimageistestimage) {
+		data->surface = cairo_image_surface_create(CAIRO_FORMAT_RGB24,
+							   data->screenw,
+							   data->screenh);
+
+		/* store test image as cairo surface */
+		cr = cairo_create(data->surface);
+		cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
+		igt_paint_test_pattern(cr, data->screenw, data->screenh);
+		cairo_destroy(cr);
+
+		/* Set HW cursor buffer in place */
+			restore_image(data, HWCURSORBUFFER);
+	} else
+		data->surface = NULL;
 
-	/* store test image as cairo surface */
-	cr = cairo_create(data->surface);
-	cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
-	igt_paint_test_pattern(cr, data->screenw, data->screenh);
-	cairo_destroy(cr);
 	igt_pipe_crc_start(data->pipe_crc);
 }
 
@@ -447,6 +450,10 @@ static void test_cursor_alpha(data_t *data, double a)
 				    LOCAL_DRM_FORMAT_MOD_NONE,
 				    &data->fb);
 	igt_assert(fb_id);
+
+	igt_plane_set_fb(data->primary, &data->primary_fb[HWCURSORBUFFER]);
+	igt_display_commit(display);
+
 	cr = igt_get_cairo_ctx(data->drm_fd, &data->fb);
 	igt_paint_color_alpha(cr, 0, 0, curw, curh, 1.0, 1.0, 1.0, a);
 	igt_put_cairo_ctx(cr);
@@ -462,10 +469,10 @@ static void test_cursor_alpha(data_t *data, double a)
 	igt_remove_fb(data->drm_fd, &data->fb);
 
 	/* Software Test - render cursor in software, drawn it directly on PF */
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
+	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[SWCOMPARISONBUFFER]);
 	igt_paint_color_alpha(cr, 0, 0, curw, curh, 1.0, 1.0, 1.0, a);
 	igt_put_cairo_ctx(cr);
-
+	igt_plane_set_fb(data->primary, &data->primary_fb[SWCOMPARISONBUFFER]);
 	igt_display_commit(display);
 	igt_wait_for_vblank(data->drm_fd,
 			display->pipes[data->pipe].crtc_offset);
@@ -473,12 +480,6 @@ static void test_cursor_alpha(data_t *data, double a)
 
 	/* Compare CRC from Hardware/Software tests */
 	igt_assert_crc_equal(&crc, &ref_crc);
-
-	/*Clear Screen*/
-	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
-	igt_paint_color(cr, 0, 0, data->screenw, data->screenh,
-			0.0, 0.0, 0.0);
-	igt_put_cairo_ctx(cr);
 }
 
 static void test_cursor_transparent(data_t *data)
@@ -574,10 +575,10 @@ static void test_cursor_size(data_t *data)
 {
 	igt_display_t *display = &data->display;
 	igt_pipe_crc_t *pipe_crc = data->pipe_crc;
-	igt_crc_t crc[10], ref_crc;
+	igt_crc_t crc, ref_crc;
 	cairo_t *cr;
 	uint32_t fb_id;
-	int i, size;
+	int i, size, prevsize = 0;
 	int cursor_max_size = data->cursor_max_w;
 
 	/* Create a maximum size cursor, then change the size in flight to
@@ -594,37 +595,38 @@ static void test_cursor_size(data_t *data)
 	igt_put_cairo_ctx(cr);
 
 	/* Hardware test loop */
-	cursor_enable(data);
 	for (i = 0, size = cursor_max_size; size >= 64; size /= 2, i++) {
+		cursor_enable(data);
 		/* Change size in flight: */
 		igt_plane_set_size(data->cursor, size, size);
 		igt_fb_set_size(&data->fb, data->cursor, size, size);
 		igt_display_commit(display);
-		igt_wait_for_vblank(data->drm_fd,
-				display->pipes[data->pipe].crtc_offset);
-		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc[i]);
-	}
-	cursor_disable(data);
-	igt_display_commit(display);
-	igt_remove_fb(data->drm_fd, &data->fb);
-	/* Software test loop */
-	for (i = 0, size = cursor_max_size; size >= 64; size /= 2, i++) {
+		igt_plane_set_fb(data->primary, &data->primary_fb[HWCURSORBUFFER]);
+		igt_display_commit(display);
+
+		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc);
+
+		cursor_disable(data);
+		igt_display_commit(display);
+
 		/* Now render the same in software and collect crc */
-		cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
+		cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[SWCOMPARISONBUFFER]);
+
+		/* remove previous cursor sw image */
+		if (prevsize > 0)
+			igt_paint_color(cr, 0, 0, prevsize, prevsize, 0.0, 0.0, 0.0);
+		prevsize = size;
+
 		igt_paint_color_alpha(cr, 0, 0, size, size, 1.0, 1.0, 1.0, 1.0);
 		igt_put_cairo_ctx(cr);
-
+		igt_plane_set_fb(data->primary, &data->primary_fb[SWCOMPARISONBUFFER]);
 		igt_display_commit(display);
-		igt_wait_for_vblank(data->drm_fd,
-				display->pipes[data->pipe].crtc_offset);
 		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &ref_crc);
-		/* Clear screen afterwards */
-		cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
-		igt_paint_color(cr, 0, 0, data->screenw, data->screenh,
-				0.0, 0.0, 0.0);
-		igt_put_cairo_ctx(cr);
-		igt_assert_crc_equal(&crc[i], &ref_crc);
+
+		igt_assert_crc_equal(&crc, &ref_crc);
 	}
+
+	igt_remove_fb(data->drm_fd, &data->fb);
 }
 
 static void test_rapid_movement(data_t *data)
@@ -690,6 +692,7 @@ static void run_size_tests(data_t *data, enum pipe pipe,
 				      w, h);
 		}
 		create_cursor_fb(data, w, h);
+		data->hwimageistestimage = true;
 	}
 
 	/* Using created cursor FBs to test cursor support */
@@ -727,6 +730,7 @@ static void run_tests_on_pipe(data_t *data, enum pipe pipe)
 		data->pipe = pipe;
 		data->output = igt_get_single_output_for_pipe(&data->display, pipe);
 		igt_require(data->output);
+		data->hwimageistestimage = false;
 	}
 
 	igt_describe("Create a maximum size cursor, then change the size in "
@@ -746,8 +750,10 @@ static void run_tests_on_pipe(data_t *data, enum pipe pipe)
 	igt_subtest_f("pipe-%s-cursor-alpha-transparent", kmstest_pipe_name(pipe))
 		run_test(data, test_cursor_transparent, data->cursor_max_w, data->cursor_max_h);
 
-	igt_fixture
+	igt_fixture {
 		create_cursor_fb(data, data->cursor_max_w, data->cursor_max_h);
+		data->hwimageistestimage = true;
+	}
 
 	igt_subtest_f("pipe-%s-cursor-dpms", kmstest_pipe_name(pipe)) {
 		data->flags = TEST_DPMS;
-- 
2.28.0

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

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

* [igt-dev] [PATCH i-g-t 2/4] tests/kms_ccs: separate ccs modifiers to separate subtests
  2021-06-15 16:00 [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Juha-Pekka Heikkila
@ 2021-06-15 16:00 ` Juha-Pekka Heikkila
  2021-06-18 13:20   ` Imre Deak
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: fix rounding error Juha-Pekka Heikkila
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2021-06-15 16:00 UTC (permalink / raw)
  To: igt-dev

Current kms_ccs test is not revealing if some ccs modifier fails
as long as there's at least one modifier not failing. Separate all
ccs modifiers onto their own tests making testing individual ccs
modifiers easier and not hiding failures.

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 tests/kms_ccs.c | 156 +++++++++++++++++++++---------------------------
 1 file changed, 67 insertions(+), 89 deletions(-)

diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
index a3eac1f8f..62850c1b2 100644
--- a/tests/kms_ccs.c
+++ b/tests/kms_ccs.c
@@ -41,6 +41,7 @@ enum test_flags {
 	TEST_BAD_CCS_HANDLE		= 1 << 6,
 	TEST_BAD_AUX_STRIDE		= 1 << 7,
 	TEST_RANDOM			= 1 << 8,
+	TEST_ALL_PLANES			= 1 << 9,
 };
 
 #define TEST_FAIL_ON_ADDFB2 \
@@ -92,11 +93,11 @@ static const struct {
 	uint64_t modifier;
 	const char *str;
 } ccs_modifiers[] = {
-	{LOCAL_I915_FORMAT_MOD_Y_TILED_CCS, "LOCAL_I915_FORMAT_MOD_Y_TILED_CCS"},
-	{LOCAL_I915_FORMAT_MOD_Yf_TILED_CCS, "LOCAL_I915_FORMAT_MOD_Yf_TILED_CCS"},
-	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, "LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS"},
-	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC, "LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC"},
-	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS, "LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS"},
+	{LOCAL_I915_FORMAT_MOD_Y_TILED_CCS, "y_tiled_ccs"},
+	{LOCAL_I915_FORMAT_MOD_Yf_TILED_CCS, "yf_tiled_ccs"},
+	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, "y_tiled_gen12_rc_ccs"},
+	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC, "y_tiled_gen12_rc_ccs_cc"},
+	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS, "y_tiled_gen12_mc_ccs"},
 };
 
 static bool check_ccs_planes;
@@ -507,37 +508,53 @@ static int test_ccs(data_t *data)
 	return valid_tests;
 }
 
-static int __test_output(data_t *data)
+static void test_output(data_t *data, const char* testformatstring)
 {
-	igt_display_t *display = &data->display;
-	int i, valid_tests = 0;
-
-	data->output = igt_get_single_output_for_pipe(display, data->pipe);
-	igt_require(data->output);
-
-	igt_output_set_pipe(data->output, data->pipe);
-
-	for (i = 0; i < ARRAY_SIZE(ccs_modifiers); i++) {
-		int j;
+	igt_fixture {
+		data->output = igt_get_single_output_for_pipe(&data->display,
+							      data->pipe);
+		igt_output_set_pipe(data->output, data->pipe);
+	}
 
+	for (int i = 0; i < ARRAY_SIZE(ccs_modifiers); i++) {
 		data->ccs_modifier = ccs_modifiers[i].modifier;
-		igt_debug("Modifier in use: %s\n", ccs_modifiers[i].str);
-		for (j = 0; j < ARRAY_SIZE(formats); j++) {
-			data->format = formats[j];
-			valid_tests += test_ccs(data);
+
+		igt_subtest_f("pipe-%s-%s-%s", kmstest_pipe_name(data->pipe),
+			      testformatstring, ccs_modifiers[i].str ) {
+			int valid_tests = 0;
+			igt_require(data->output);
+
+			if (data->flags == TEST_RANDOM)
+				igt_info("Testing with seed %d\n", data->seed);
+
+			if (data->flags & TEST_ALL_PLANES) {
+				igt_display_require_output_on_pipe(&data->display, data->pipe);
+
+				for_each_plane_on_pipe(&data->display, data->pipe, data->plane) {
+					for (int j = 0; j < ARRAY_SIZE(formats); j++) {
+						data->format = formats[j];
+						valid_tests += test_ccs(data);
+					}
+				}
+			} else {
+				for (int j = 0; j < ARRAY_SIZE(formats); j++) {
+					data->format = formats[j];
+					valid_tests += test_ccs(data);
+				}
+			}
+			igt_require_f(valid_tests > 0,
+				      "no valid tests for %s on pipe %s\n",
+				      ccs_modifiers[i].str,
+				      kmstest_pipe_name(data->pipe));
 		}
 	}
 
-	igt_output_set_pipe(data->output, PIPE_NONE);
-	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
-
-	return valid_tests;
-}
-
-static void test_output(data_t *data)
-{
-	int valid_tests = __test_output(data);
-	igt_require_f(valid_tests > 0, "CCS not supported, skipping\n");
+	igt_fixture {
+		igt_output_set_pipe(data->output, PIPE_NONE);
+		igt_display_commit2(&data->display, data->display.is_atomic ?
+				    COMMIT_ATOMIC : COMMIT_LEGACY);
+		data->plane = NULL;
+	}
 }
 
 static int opt_handler(int opt, int opt_index, void *opt_data)
@@ -570,6 +587,22 @@ igt_main_args("cs:", NULL, help_str, opt_handler, &data)
 {
 	enum pipe pipe;
 
+	const struct {
+		const enum test_flags	flags;
+		const char		*testname;
+		const char		*description;
+	} tests[] = {
+		{TEST_BAD_PIXEL_FORMAT, "bad-pixel-format", "Test bad pixel format with given CCS modifier"},
+		{TEST_BAD_ROTATION_90, "bad-rotation-90", "Test 90 degree rotation with given CCS modifier"},
+		{TEST_CRC, "crc-primary-basic", "Test primary plane CRC compatibility with given CCS modifier"},
+		{TEST_CRC | TEST_ROTATE_180, "crc-primary-rotation-180", "Test 180 degree rotation with given CCS modifier"},
+		{TEST_RANDOM, "random-ccs-data", "Test random CCS data"},
+		{TEST_NO_AUX_BUFFER, "missing-ccs-buffer", "Test missing CCS buffer with given CCS modifier"},
+		{TEST_BAD_CCS_HANDLE, "ccs-on-another-bo", "Test CCS with different BO with given modifier"},
+		{TEST_BAD_AUX_STRIDE, "bad-aux-stride", "Test with bad AUX stride with given CCS modifier"},
+		{TEST_CRC | TEST_ALL_PLANES, "crc-sprite-planes-basic", "Test sprite plane CRC compatibility with given CCS modifier"},
+	};
+
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
 
@@ -584,68 +617,13 @@ igt_main_args("cs:", NULL, help_str, opt_handler, &data)
 	}
 
 	for_each_pipe_static(pipe) {
-		const char *pipe_name = kmstest_pipe_name(pipe);
-
 		data.pipe = pipe;
 
-		data.flags = TEST_BAD_PIXEL_FORMAT;
-		igt_describe("Test bad pixel format with given CCS modifier");
-		igt_subtest_f("pipe-%s-bad-pixel-format", pipe_name)
-			test_output(&data);
-
-		data.flags = TEST_BAD_ROTATION_90;
-		igt_describe("Test 90 degree rotation with given CCS modifier");
-		igt_subtest_f("pipe-%s-bad-rotation-90", pipe_name)
-			test_output(&data);
-
-		data.flags = TEST_CRC;
-		igt_describe("Test primary plane CRC compatibility with given CCS modifier");
-		igt_subtest_f("pipe-%s-crc-primary-basic", pipe_name)
-			test_output(&data);
-
-		data.flags = TEST_CRC | TEST_ROTATE_180;
-		igt_describe("Test 180 degree rotation with given CCS modifier");
-		igt_subtest_f("pipe-%s-crc-primary-rotation-180", pipe_name)
-			test_output(&data);
-
-		data.flags = TEST_CRC;
-		igt_describe("Test sprite plane CRC compatibility with given CCS modifier");
-		igt_subtest_f("pipe-%s-crc-sprite-planes-basic", pipe_name) {
-			int valid_tests = 0;
-
-			igt_display_require_output_on_pipe(&data.display, data.pipe);
-
-			for_each_plane_on_pipe(&data.display, data.pipe, data.plane) {
-				valid_tests += __test_output(&data);
-			}
-
-			igt_require_f(valid_tests > 0,
-				      "CCS not supported, skipping\n");
-		}
-
-		data.plane = NULL;
-
-		data.flags = TEST_RANDOM;
-		igt_describe("Test random CCS data");
-		igt_subtest_f("pipe-%s-random-ccs-data", pipe_name) {
-			igt_info("Testing with seed %d\n", data.seed);
-			test_output(&data);
+		for (int c = 0; c < ARRAY_SIZE(tests); c++) {
+			data.flags = tests[c].flags;
+			igt_describe(tests[c].description);
+			test_output(&data, tests[c].testname);
 		}
-
-		data.flags = TEST_NO_AUX_BUFFER;
-		igt_describe("Test missing CCS buffer with given CCS modifier");
-		igt_subtest_f("pipe-%s-missing-ccs-buffer", pipe_name)
-			test_output(&data);
-
-		data.flags = TEST_BAD_CCS_HANDLE;
-		igt_describe("Test CCS with different BO with given modifier");
-		igt_subtest_f("pipe-%s-ccs-on-another-bo", pipe_name)
-			test_output(&data);
-
-		data.flags = TEST_BAD_AUX_STRIDE;
-		igt_describe("Test with bad AUX stride with given CCS modifier");
-		igt_subtest_f("pipe-%s-bad-aux-stride", pipe_name)
-			test_output(&data);
 	}
 
 	igt_fixture
-- 
2.28.0

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

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

* [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: fix rounding error
  2021-06-15 16:00 [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Juha-Pekka Heikkila
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_ccs: separate ccs modifiers to separate subtests Juha-Pekka Heikkila
@ 2021-06-15 16:00 ` Juha-Pekka Heikkila
  2021-06-18  8:19   ` Kahola, Mika
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 4/4] tests/kms_flip_scaled_crc: parameterize test sizes and fix test to try other connectors Juha-Pekka Heikkila
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2021-06-15 16:00 UTC (permalink / raw)
  To: igt-dev

On some screen sizes with legacy hw there was possible to get
rounding error on source clamping test which would incorrectly
fail clamping tests.

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 tests/kms_plane.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index ba419bbde..f22c045d8 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -473,12 +473,19 @@ static void draw_entire_color_array(data_t *data, cairo_t *cr, uint32_t format,
 	const int color_amount = ARRAY_SIZE(colors_extended);
 	const int x = format == DRM_FORMAT_XRGB8888 ? 0 : data->crop;
 
+	if (format != DRM_FORMAT_XRGB8888) {
+		cairo_rectangle(cr, data->crop, data->crop,
+				fb->width - data->crop * 2,
+				fb->height - data->crop * 2);
+	}
+
+
 	for (int n = 0; n < color_amount; n++) {
 		int y = (fb->height - x * 2) * n / color_amount + x;
 
 		igt_paint_color(cr, x, y,
 				fb->width - x * 2,
-				(fb->height - x * 2) / color_amount,
+				(fb->height - x * 2) / color_amount + 1,
 				colors_extended[n].red,
 				colors_extended[n].green,
 				colors_extended[n].blue);
-- 
2.28.0

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

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

* [igt-dev] [PATCH i-g-t 4/4] tests/kms_flip_scaled_crc: parameterize test sizes and fix test to try other connectors
  2021-06-15 16:00 [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Juha-Pekka Heikkila
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_ccs: separate ccs modifiers to separate subtests Juha-Pekka Heikkila
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: fix rounding error Juha-Pekka Heikkila
@ 2021-06-15 16:00 ` Juha-Pekka Heikkila
  2021-06-18  8:55   ` Kahola, Mika
  2021-06-15 16:46 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Juha-Pekka Heikkila @ 2021-06-15 16:00 UTC (permalink / raw)
  To: igt-dev

here parameterized first/second fb sizes making it possible to easily
add down/upscaled fb tests for both first and second fb. While at it
fixed test to try other available connectors for pipe if wanted mode
is not found on connector and test fails on cdcdlk.

Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
---
 tests/kms_flip_scaled_crc.c | 114 +++++++++++++++++++++++++++---------
 1 file changed, 86 insertions(+), 28 deletions(-)

diff --git a/tests/kms_flip_scaled_crc.c b/tests/kms_flip_scaled_crc.c
index d81ad352d..19c879fe1 100644
--- a/tests/kms_flip_scaled_crc.c
+++ b/tests/kms_flip_scaled_crc.c
@@ -46,51 +46,69 @@ const struct {
 	const uint32_t firstformat;
 	const uint64_t secondmodifier;
 	const uint32_t secondformat;
+	const double firstmultiplier;
+	const double secondmultiplier;
 } flip_scenario_test[] = {
 	{
 		"flip-32bpp-ytile-to-64bpp-ytile",
 		"Flip from 32bpp non scaled fb to 64bpp downscaled fb to stress CD clock programming",
 		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB8888,
-		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB16161616F
+		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB16161616F,
+		1.0,
+		2.0,
 	},
 	{
 		"flip-64bpp-ytile-to-32bpp-ytile",
 		"Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming",
 		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB16161616F,
-		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB8888
+		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB8888,
+		1.0,
+		2.0,
 	},
 	{
 		"flip-64bpp-ytile-to-16bpp-ytile",
 		"Flip from 64bpp non scaled fb to 16bpp downscaled fb to stress CD clock programming",
 		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB16161616F,
-		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_RGB565
+		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_RGB565,
+		1.0,
+		2.0,
 	},
 	{
 		"flip-32bpp-ytileccs-to-64bpp-ytile",
 		"Flip from 32bpp non scaled fb to 64bpp downscaled fb to stress CD clock programming",
 		LOCAL_I915_FORMAT_MOD_Y_TILED_CCS, DRM_FORMAT_XRGB8888,
-		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB16161616F
+		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB16161616F,
+		1.0,
+		2.0,
 	},
 	{
 		"flip-32bpp-ytile-to-32bpp-ytilegen12rcccs",
 		"Flip from 32bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming",
 		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB8888,
-		LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, DRM_FORMAT_XRGB8888
+		LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, DRM_FORMAT_XRGB8888,
+		1.0,
+		2.0,
 	},
 	{
 		"flip-32bpp-ytile-to-32bpp-ytileccs",
 		"Flip from 32bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming",
 		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB8888,
-		LOCAL_I915_FORMAT_MOD_Y_TILED_CCS, DRM_FORMAT_XRGB8888
+		LOCAL_I915_FORMAT_MOD_Y_TILED_CCS, DRM_FORMAT_XRGB8888,
+		1.0,
+		2.0,
 	},
 	{
 		"flip-64bpp-ytile-to-32bpp-ytilercccs",
 		"Flip from 64bpp non scaled fb to 32bpp downscaled fb to stress CD clock programming",
 		LOCAL_I915_FORMAT_MOD_Y_TILED, DRM_FORMAT_XRGB16161616F,
-		LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, DRM_FORMAT_XRGB8888
+		LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, DRM_FORMAT_XRGB8888,
+		1.0,
+		2.0,
 	},
 };
 
+enum subrval {CONNECTORFAIL, CONNECTORSUCCESS, TESTSKIP, NOREQUESTEDFORMATONPIPE};
+
 static void setup_fb(data_t *data, struct igt_fb *newfb, uint32_t width,
 		     uint32_t height, uint64_t format, uint64_t modifier)
 {
@@ -146,8 +164,8 @@ static void clear_lut(data_t *data, enum pipe pipe)
 	igt_pipe_obj_set_prop_value(pipe_obj, IGT_CRTC_GAMMA_LUT, 0);
 }
 
-static void test_flip_to_scaled(data_t *data, uint32_t index, enum pipe pipe,
-				igt_output_t *output)
+static enum subrval test_flip_to_scaled(data_t *data, uint32_t index,
+					enum pipe pipe, igt_output_t *output)
 {
 	igt_plane_t *primary;
 	igt_crc_t small_crc, big_crc;
@@ -163,14 +181,14 @@ static void test_flip_to_scaled(data_t *data, uint32_t index, enum pipe pipe,
 
 	if (data->big_fb.fb_id == 0) {
 		setup_fb(data, &data->small_fb,
-				data->attemptmodewidth,
-				data->attemptmodeheight,
+				data->attemptmodewidth * flip_scenario_test[index].firstmultiplier,
+				data->attemptmodeheight * flip_scenario_test[index].firstmultiplier,
 				flip_scenario_test[index].firstformat,
 				flip_scenario_test[index].firstmodifier);
 
 		setup_fb(data, &data->big_fb,
-				data->attemptmodewidth * 2,
-				data->attemptmodeheight * 2,
+				data->attemptmodewidth * flip_scenario_test[index].secondmultiplier,
+				data->attemptmodeheight * flip_scenario_test[index].secondmultiplier,
 				flip_scenario_test[index].secondformat,
 				flip_scenario_test[index].secondmodifier);
 
@@ -187,7 +205,7 @@ static void test_flip_to_scaled(data_t *data, uint32_t index, enum pipe pipe,
 				      data->small_fb.modifier) ||
 	    !igt_plane_has_format_mod(primary, data->big_fb.drm_format,
 				      data->big_fb.modifier))
-		return;
+		return NOREQUESTEDFORMATONPIPE;
 
 	set_lut(data, pipe);
 	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET,
@@ -211,31 +229,55 @@ static void test_flip_to_scaled(data_t *data, uint32_t index, enum pipe pipe,
 	}
 
 	if (!modetoset)
-		igt_debug("%dp mode was not found from connector, will continue with default. This may cause cdclk to fail this test.\n",
+		igt_debug("%dp mode was not found from connector, will try with default. This may cause cdclk to fail this test on this connector.\n",
 			  data->attemptmodeheight);
 	else
 		igt_output_override_mode(output, modetoset);
 
 	igt_plane_set_position(primary, 0, 0);
 	igt_plane_set_fb(primary, &data->small_fb);
-	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+	igt_plane_set_size(primary, data->attemptmodewidth,
+			   data->attemptmodeheight);
+	ret = igt_display_try_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+	switch (ret) {
+	case -ERANGE:
+		igt_debug("Platform scaling limits exceeded, skipping.\n");
+		return TESTSKIP;
+	case -EINVAL:
+		if (!modetoset) {
+			igt_debug("No %dp and default mode too big, cdclk limits exceeded. Check next connector\n",
+				  data->attemptmodeheight);
+			return CONNECTORFAIL;
+		}
+		/* fallthrough */
+	default:
+		igt_assert_eq(ret, 0);
+	}
 
 	igt_pipe_crc_start(data->pipe_crc);
 	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &small_crc);
 
 	igt_plane_set_fb(primary, &data->big_fb);
-	igt_plane_set_size(primary, data->small_fb.width,
-			   data->small_fb.height);
+	igt_plane_set_size(primary, data->attemptmodewidth,
+			   data->attemptmodeheight);
 	ret = igt_display_try_commit_atomic(&data->display,
 					    DRM_MODE_ATOMIC_ALLOW_MODESET  |
 					    DRM_MODE_PAGE_FLIP_EVENT, NULL);
 
-	igt_require_f(ret != -ERANGE,
-		      "Platform scaling limits exceeded, skipping.\n");
-	igt_require_f(!(ret == -EINVAL && !modetoset),
-		      "No %dp and default mode too big, cdclk limits exceeded. Skipping.\n",
-		      data->attemptmodeheight);
-	igt_assert_eq(ret, 0);
+	switch (ret) {
+	case -ERANGE:
+		igt_debug("Platform scaling limits exceeded, skipping.\n");
+		return TESTSKIP;
+	case -EINVAL:
+		if (!modetoset) {
+			igt_debug("No %dp and default mode too big, cdclk limits exceeded. Check next connector\n",
+				  data->attemptmodeheight);
+			return CONNECTORFAIL;
+		}
+		/* fallthrough */
+	default:
+		igt_assert_eq(ret, 0);
+	}
 
 	igt_assert(read(data->drm_fd, &ev, sizeof(ev)) == sizeof(ev));
 
@@ -251,6 +293,8 @@ static void test_flip_to_scaled(data_t *data, uint32_t index, enum pipe pipe,
 	igt_output_set_pipe(output, PIPE_NONE);
 	igt_plane_set_fb(primary, NULL);
 	igt_display_commit2(&data->display, COMMIT_ATOMIC);
+
+	return CONNECTORSUCCESS;
 }
 
 igt_main
@@ -280,11 +324,25 @@ igt_main
 	for (int index = 0; index < ARRAY_SIZE(flip_scenario_test); index++) {
 		igt_describe(flip_scenario_test[index].describe);
 		igt_subtest(flip_scenario_test[index].name) {
+			int validtests = 0;
 			free_fbs(&data);
-			for_each_pipe_with_single_output(&data.display, pipe,
-							 output)
-				test_flip_to_scaled(&data, index, pipe, output);
-
+			for_each_pipe_static(pipe) {
+				enum subrval rval = CONNECTORSUCCESS;
+				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					rval = test_flip_to_scaled(&data, index, pipe, output);
+
+					igt_require(rval != TESTSKIP);
+
+					// break out to test next pipe
+					if (rval == CONNECTORSUCCESS) {
+						validtests++;
+						break;
+					}
+				}
+				if (rval == NOREQUESTEDFORMATONPIPE)
+					igt_debug("No requested format/modifier on pipe %s\n", kmstest_pipe_name(pipe));
+			}
+			igt_require_f(validtests > 0, "No valid pipe/connector/format/mod combination found");
 		}
 	}
 	igt_fixture {
-- 
2.28.0

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer
  2021-06-15 16:00 [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Juha-Pekka Heikkila
                   ` (2 preceding siblings ...)
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 4/4] tests/kms_flip_scaled_crc: parameterize test sizes and fix test to try other connectors Juha-Pekka Heikkila
@ 2021-06-15 16:46 ` Patchwork
  2021-06-16  0:54 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  2021-06-21  9:40 ` [igt-dev] [PATCH i-g-t 1/4] " Kahola, Mika
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2021-06-15 16:46 UTC (permalink / raw)
  To: Juha-Pekka Heikkila; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 2986 bytes --]

== Series Details ==

Series: series starting with [i-g-t,1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer
URL   : https://patchwork.freedesktop.org/series/91527/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_10225 -> IGTPW_5928
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

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

  * igt@kms_chamelium@dp-crc-fast:
    - fi-kbl-7500u:       [PASS][2] -> [FAIL][3] ([i915#1372])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/fi-kbl-7500u/igt@kms_chamelium@dp-crc-fast.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@hangcheck:
    - {fi-hsw-gt1}:       [DMESG-WARN][4] ([i915#3303]) -> [PASS][5]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/fi-hsw-gt1/igt@i915_selftest@live@hangcheck.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/fi-hsw-gt1/igt@i915_selftest@live@hangcheck.html
    - fi-snb-2600:        [INCOMPLETE][6] ([i915#2782]) -> [PASS][7]
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/fi-snb-2600/igt@i915_selftest@live@hangcheck.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/fi-snb-2600/igt@i915_selftest@live@hangcheck.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1372]: https://gitlab.freedesktop.org/drm/intel/issues/1372
  [i915#2782]: https://gitlab.freedesktop.org/drm/intel/issues/2782
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303


Participating hosts (48 -> 38)
------------------------------

  Missing    (10): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan bat-adlp-4 bat-adls-4 fi-ctg-p8600 bat-adls-3 fi-dg1-1 fi-bdw-samus bat-jsl-1 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6107 -> IGTPW_5928

  CI-20190529: 20190529
  CI_DRM_10225: 52beaf52657f49ffda64af3c46548fb0907cf66d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_5928: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/index.html
  IGT_6107: 2bec4e7619f04d2ca86006917acd3b5c86fb73a0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git



== Testlist changes ==

+++ 270 lines
--- 54 lines

== Logs ==

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

[-- Attachment #1.2: Type: text/html, Size: 3690 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

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

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

* [igt-dev] ✗ Fi.CI.IGT: failure for series starting with [i-g-t,1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer
  2021-06-15 16:00 [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Juha-Pekka Heikkila
                   ` (3 preceding siblings ...)
  2021-06-15 16:46 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Patchwork
@ 2021-06-16  0:54 ` Patchwork
  2021-06-21  9:40 ` [igt-dev] [PATCH i-g-t 1/4] " Kahola, Mika
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2021-06-16  0:54 UTC (permalink / raw)
  To: Juha-Pekka Heikkila; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 30308 bytes --]

== Series Details ==

Series: series starting with [i-g-t,1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer
URL   : https://patchwork.freedesktop.org/series/91527/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_10225_full -> IGTPW_5928_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_5928_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_5928_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_5928/index.html

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@i915_pm_rpm@gem-mmap-type@uc:
    - shard-iclb:         [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/shard-iclb1/igt@i915_pm_rpm@gem-mmap-type@uc.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-iclb4/igt@i915_pm_rpm@gem-mmap-type@uc.html

  * {igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][3] +106 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-tglb6/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  
New tests
---------

  New tests have been introduced between CI_DRM_10225_full and IGTPW_5928_full:

### New IGT tests (180) ###

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.31] s

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.08] s

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-a-bad-aux-stride-yf_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.33] s

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.00] s

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

  * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0] s

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

  * igt@kms_ccs@pipe-a-bad-pixel-format-yf_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_ccs:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.86] s

  * igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.86] s

  * igt@kms_ccs@pipe-a-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.88] s

  * igt@kms_ccs@pipe-a-bad-rotation-90-yf_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.87] s

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_ccs:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.12] s

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-a-ccs-on-another-bo-yf_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.12] s

  * igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_ccs:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.00, 1.14] s

  * igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 1.05] s

  * igt@kms_ccs@pipe-a-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 1.01] s

  * igt@kms_ccs@pipe-a-crc-primary-basic-yf_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 1.15] s

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 1.09] s

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

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.00, 1.01] s

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.00, 1.04] s

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-yf_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 1.06] s

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_ccs:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.00, 2.73] s

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

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

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.00, 2.19] s

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-yf_tiled_ccs:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.00, 2.84] s

  * igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_ccs:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.11] s

  * igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-a-missing-ccs-buffer-yf_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.83] s

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_mc_ccs:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.85] s

  * igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.84] s

  * igt@kms_ccs@pipe-a-random-ccs-data-yf_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.90] s

  * igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_ccs:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.35] s

  * igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_mc_ccs:
    - Statuses : 3 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.08] s

  * igt@kms_ccs@pipe-b-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-b-bad-aux-stride-yf_tiled_ccs:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.35] s

  * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-b-bad-pixel-format-yf_tiled_ccs:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.87] s

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

  * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.84] s

  * igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.85] s

  * igt@kms_ccs@pipe-b-bad-rotation-90-yf_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.84] s

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_ccs:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.12] s

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-b-ccs-on-another-bo-yf_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.14] s

  * igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 1.13] s

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

  * igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 1.00] s

  * igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.00, 1.02] s

  * igt@kms_ccs@pipe-b-crc-primary-basic-yf_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 1.04] s

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_ccs:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0, 1.07] s

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 1.04] s

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 1.03] s

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-yf_tiled_ccs:
    - Statuses : 2 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.62] s

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 2.25] s

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 2.02] s

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 2.00] s

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic-yf_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 2.64] s

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.12] s

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-yf_tiled_ccs:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.12] s

  * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_ccs:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.84] s

  * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_mc_ccs:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.84] s

  * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.84] s

  * igt@kms_ccs@pipe-b-random-ccs-data-yf_tiled_ccs:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0, 0.84] s

  * igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.09] s

  * igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.09] s

  * igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-c-bad-aux-stride-yf_tiled_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.10] s

  * igt@kms_ccs@pipe-c-bad-pixel-format-y_tiled_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0] s

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

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

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

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

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.85] s

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

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.83] s

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.85] s

  * igt@kms_ccs@pipe-c-bad-rotation-90-yf_tiled_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.87] s

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.04] s

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-c-ccs-on-another-bo-yf_tiled_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 1.09] s

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

  * igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.00, 1.03] s

  * igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.00, 1.00] s

  * igt@kms_ccs@pipe-c-crc-primary-basic-yf_tiled_ccs:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 1.08] s

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 1.05] s

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

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 1.00] s

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 1.00] s

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-yf_tiled_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 1.10] s

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 2.22] s

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 2.04] s

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.00, 2.00] s

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-yf_tiled_ccs:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.00, 2.67] s

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-c-missing-ccs-buffer-yf_tiled_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.84] s

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

  * igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.85] s

  * igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.87] s

  * igt@kms_ccs@pipe-c-random-ccs-data-yf_tiled_ccs:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.83] s

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_mc_ccs:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.08] s

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 2 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-d-bad-aux-stride-yf_tiled_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0] s

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

  * igt@kms_ccs@pipe-d-bad-rotation-90-y_tiled_ccs:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

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

  * igt@kms_ccs@pipe-d-bad-rotation-90-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.85] s

  * igt@kms_ccs@pipe-d-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.86] s

  * igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-ccs-on-another-bo-y_tiled_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-ccs-on-another-bo-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-d-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-d-ccs-on-another-bo-yf_tiled_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

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

  * igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 1.00] s

  * igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 1.00] s

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

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

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

  * igt@kms_ccs@pipe-d-crc-primary-rotation-180-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 1.04] s

  * igt@kms_ccs@pipe-d-crc-primary-rotation-180-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 1.04] s

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

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 2.02] s

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 2.04] s

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-yf_tiled_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_ccs@pipe-d-missing-ccs-buffer-y_tiled_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-missing-ccs-buffer-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0, 0.03] s

  * igt@kms_ccs@pipe-d-missing-ccs-buffer-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.01] s

  * igt@kms_ccs@pipe-d-missing-ccs-buffer-yf_tiled_ccs:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

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

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

  * igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 0.84] s

  * igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 0.82] s

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

  

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

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

### IGT changes ###

#### Issues hit ####

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

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

  * igt@gem_eio@in-flight-contexts-10ms:
    - shard-tglb:         NOTRUN -> [TIMEOUT][6] ([i915#3063])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-tglb8/igt@gem_eio@in-flight-contexts-10ms.html

  * igt@gem_exec_fair@basic-deadline:
    - shard-kbl:          [PASS][7] -> [FAIL][8] ([i915#2846])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/shard-kbl7/igt@gem_exec_fair@basic-deadline.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-kbl7/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-glk:          NOTRUN -> [FAIL][9] ([i915#2842])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-glk2/igt@gem_exec_fair@basic-none-solo@rcs0.html
    - shard-iclb:         NOTRUN -> [FAIL][10] ([i915#2842])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-iclb4/igt@gem_exec_fair@basic-none-solo@rcs0.html
    - shard-tglb:         NOTRUN -> [FAIL][11] ([i915#2842])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-tglb2/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-kbl:          [PASS][12] -> [FAIL][13] ([i915#2842])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/shard-kbl6/igt@gem_exec_fair@basic-pace@vcs0.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-kbl3/igt@gem_exec_fair@basic-pace@vcs0.html
    - shard-glk:          [PASS][14] -> [FAIL][15] ([i915#2842]) +1 similar issue
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/shard-glk7/igt@gem_exec_fair@basic-pace@vcs0.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-glk1/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [PASS][16] -> [FAIL][17] ([i915#2849])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/shard-iclb3/igt@gem_exec_fair@basic-throttle@rcs0.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-iclb5/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_params@rsvd2-dirt:
    - shard-tglb:         NOTRUN -> [SKIP][18] ([fdo#109283])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-tglb2/igt@gem_exec_params@rsvd2-dirt.html
    - shard-iclb:         NOTRUN -> [SKIP][19] ([fdo#109283])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-iclb5/igt@gem_exec_params@rsvd2-dirt.html

  * igt@gem_exec_reloc@basic-wide-active@bcs0:
    - shard-glk:          NOTRUN -> [FAIL][20] ([i915#2389]) +3 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-glk3/igt@gem_exec_reloc@basic-wide-active@bcs0.html

  * igt@gem_exec_whisper@basic-contexts-forked:
    - shard-glk:          [PASS][21] -> [DMESG-WARN][22] ([i915#118] / [i915#95]) +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/shard-glk7/igt@gem_exec_whisper@basic-contexts-forked.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-glk1/igt@gem_exec_whisper@basic-contexts-forked.html

  * igt@gem_mmap_gtt@big-copy-xy:
    - shard-glk:          [PASS][23] -> [FAIL][24] ([i915#307])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/shard-glk7/igt@gem_mmap_gtt@big-copy-xy.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-glk7/igt@gem_mmap_gtt@big-copy-xy.html

  * igt@gem_mmap_offset@clear:
    - shard-glk:          [PASS][25] -> [FAIL][26] ([i915#3160])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_10225/shard-glk7/igt@gem_mmap_offset@clear.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-glk2/igt@gem_mmap_offset@clear.html

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

  * igt@gem_render_copy@y-tiled-mc-ccs-to-y-tiled-ccs:
    - shard-iclb:         NOTRUN -> [SKIP][29] ([i915#768]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-iclb5/igt@gem_render_copy@y-tiled-mc-ccs-to-y-tiled-ccs.html

  * igt@gem_userptr_blits@unsync-overlap:
    - shard-tglb:         NOTRUN -> [SKIP][30] ([i915#3297]) +1 similar issue
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-tglb6/igt@gem_userptr_blits@unsync-overlap.html
    - shard-iclb:         NOTRUN -> [SKIP][31] ([i915#3297]) +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-iclb1/igt@gem_userptr_blits@unsync-overlap.html

  * igt@gen9_exec_parse@batch-zero-length:
    - shard-iclb:         NOTRUN -> [SKIP][32] ([fdo#112306])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-iclb8/igt@gen9_exec_parse@batch-zero-length.html
    - shard-tglb:         NOTRUN -> [SKIP][33] ([fdo#112306])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-tglb7/igt@gen9_exec_parse@batch-zero-length.html

  * igt@i915_pm_backlight@bad-brightness:
    - shard-glk:          NOTRUN -> [SKIP][34] ([fdo#109271]) +217 similar issues
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_5928/shard-glk5/igt@i915_pm_backlight

== Logs ==

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

[-- Attachment #1.2: Type: text/html, Size: 36992 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

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

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

* Re: [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: fix rounding error
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: fix rounding error Juha-Pekka Heikkila
@ 2021-06-18  8:19   ` Kahola, Mika
  0 siblings, 0 replies; 10+ messages in thread
From: Kahola, Mika @ 2021-06-18  8:19 UTC (permalink / raw)
  To: Juha-Pekka Heikkila, igt-dev

> -----Original Message-----
> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Juha-
> Pekka Heikkila
> Sent: Tuesday, June 15, 2021 7:00 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: fix rounding error
> 
> On some screen sizes with legacy hw there was possible to get rounding
> error on source clamping test which would incorrectly fail clamping tests.
> 
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

Looks solid.

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

> ---
>  tests/kms_plane.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/kms_plane.c b/tests/kms_plane.c index
> ba419bbde..f22c045d8 100644
> --- a/tests/kms_plane.c
> +++ b/tests/kms_plane.c
> @@ -473,12 +473,19 @@ static void draw_entire_color_array(data_t *data,
> cairo_t *cr, uint32_t format,
>  	const int color_amount = ARRAY_SIZE(colors_extended);
>  	const int x = format == DRM_FORMAT_XRGB8888 ? 0 : data->crop;
> 
> +	if (format != DRM_FORMAT_XRGB8888) {
> +		cairo_rectangle(cr, data->crop, data->crop,
> +				fb->width - data->crop * 2,
> +				fb->height - data->crop * 2);
> +	}
> +
> +
>  	for (int n = 0; n < color_amount; n++) {
>  		int y = (fb->height - x * 2) * n / color_amount + x;
> 
>  		igt_paint_color(cr, x, y,
>  				fb->width - x * 2,
> -				(fb->height - x * 2) / color_amount,
> +				(fb->height - x * 2) / color_amount + 1,
>  				colors_extended[n].red,
>  				colors_extended[n].green,
>  				colors_extended[n].blue);
> --
> 2.28.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 4/4] tests/kms_flip_scaled_crc: parameterize test sizes and fix test to try other connectors
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 4/4] tests/kms_flip_scaled_crc: parameterize test sizes and fix test to try other connectors Juha-Pekka Heikkila
@ 2021-06-18  8:55   ` Kahola, Mika
  0 siblings, 0 replies; 10+ messages in thread
From: Kahola, Mika @ 2021-06-18  8:55 UTC (permalink / raw)
  To: Juha-Pekka Heikkila, igt-dev

> -----Original Message-----
> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Juha-
> Pekka Heikkila
> Sent: Tuesday, June 15, 2021 7:00 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 4/4] tests/kms_flip_scaled_crc: parameterize
> test sizes and fix test to try other connectors
> 
> here parameterized first/second fb sizes making it possible to easily add
> down/upscaled fb tests for both first and second fb. While at it fixed test to
> try other available connectors for pipe if wanted mode is not found on
> connector and test fails on cdcdlk.
> 
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

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

> ---
>  tests/kms_flip_scaled_crc.c | 114 +++++++++++++++++++++++++++---------
>  1 file changed, 86 insertions(+), 28 deletions(-)
> 
> diff --git a/tests/kms_flip_scaled_crc.c b/tests/kms_flip_scaled_crc.c index
> d81ad352d..19c879fe1 100644
> --- a/tests/kms_flip_scaled_crc.c
> +++ b/tests/kms_flip_scaled_crc.c
> @@ -46,51 +46,69 @@ const struct {
>  	const uint32_t firstformat;
>  	const uint64_t secondmodifier;
>  	const uint32_t secondformat;
> +	const double firstmultiplier;
> +	const double secondmultiplier;
>  } flip_scenario_test[] = {
>  	{
>  		"flip-32bpp-ytile-to-64bpp-ytile",
>  		"Flip from 32bpp non scaled fb to 64bpp downscaled fb to
> stress CD clock programming",
>  		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB8888,
> -		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB16161616F
> +		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB16161616F,
> +		1.0,
> +		2.0,
>  	},
>  	{
>  		"flip-64bpp-ytile-to-32bpp-ytile",
>  		"Flip from 64bpp non scaled fb to 32bpp downscaled fb to
> stress CD clock programming",
>  		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB16161616F,
> -		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB8888
> +		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB8888,
> +		1.0,
> +		2.0,
>  	},
>  	{
>  		"flip-64bpp-ytile-to-16bpp-ytile",
>  		"Flip from 64bpp non scaled fb to 16bpp downscaled fb to
> stress CD clock programming",
>  		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB16161616F,
> -		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_RGB565
> +		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_RGB565,
> +		1.0,
> +		2.0,
>  	},
>  	{
>  		"flip-32bpp-ytileccs-to-64bpp-ytile",
>  		"Flip from 32bpp non scaled fb to 64bpp downscaled fb to
> stress CD clock programming",
>  		LOCAL_I915_FORMAT_MOD_Y_TILED_CCS,
> DRM_FORMAT_XRGB8888,
> -		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB16161616F
> +		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB16161616F,
> +		1.0,
> +		2.0,
>  	},
>  	{
>  		"flip-32bpp-ytile-to-32bpp-ytilegen12rcccs",
>  		"Flip from 32bpp non scaled fb to 32bpp downscaled fb to
> stress CD clock programming",
>  		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB8888,
> -		LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> DRM_FORMAT_XRGB8888
> +		LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> DRM_FORMAT_XRGB8888,
> +		1.0,
> +		2.0,
>  	},
>  	{
>  		"flip-32bpp-ytile-to-32bpp-ytileccs",
>  		"Flip from 32bpp non scaled fb to 32bpp downscaled fb to
> stress CD clock programming",
>  		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB8888,
> -		LOCAL_I915_FORMAT_MOD_Y_TILED_CCS,
> DRM_FORMAT_XRGB8888
> +		LOCAL_I915_FORMAT_MOD_Y_TILED_CCS,
> DRM_FORMAT_XRGB8888,
> +		1.0,
> +		2.0,
>  	},
>  	{
>  		"flip-64bpp-ytile-to-32bpp-ytilercccs",
>  		"Flip from 64bpp non scaled fb to 32bpp downscaled fb to
> stress CD clock programming",
>  		LOCAL_I915_FORMAT_MOD_Y_TILED,
> DRM_FORMAT_XRGB16161616F,
> -		LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> DRM_FORMAT_XRGB8888
> +		LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS,
> DRM_FORMAT_XRGB8888,
> +		1.0,
> +		2.0,
>  	},
>  };
> 
> +enum subrval {CONNECTORFAIL, CONNECTORSUCCESS, TESTSKIP,
> +NOREQUESTEDFORMATONPIPE};
> +
>  static void setup_fb(data_t *data, struct igt_fb *newfb, uint32_t width,
>  		     uint32_t height, uint64_t format, uint64_t modifier)  { @@
> -146,8 +164,8 @@ static void clear_lut(data_t *data, enum pipe pipe)
>  	igt_pipe_obj_set_prop_value(pipe_obj, IGT_CRTC_GAMMA_LUT, 0);
> }
> 
> -static void test_flip_to_scaled(data_t *data, uint32_t index, enum pipe pipe,
> -				igt_output_t *output)
> +static enum subrval test_flip_to_scaled(data_t *data, uint32_t index,
> +					enum pipe pipe, igt_output_t
> *output)
>  {
>  	igt_plane_t *primary;
>  	igt_crc_t small_crc, big_crc;
> @@ -163,14 +181,14 @@ static void test_flip_to_scaled(data_t *data,
> uint32_t index, enum pipe pipe,
> 
>  	if (data->big_fb.fb_id == 0) {
>  		setup_fb(data, &data->small_fb,
> -				data->attemptmodewidth,
> -				data->attemptmodeheight,
> +				data->attemptmodewidth *
> flip_scenario_test[index].firstmultiplier,
> +				data->attemptmodeheight *
> +flip_scenario_test[index].firstmultiplier,
>  				flip_scenario_test[index].firstformat,
>  				flip_scenario_test[index].firstmodifier);
> 
>  		setup_fb(data, &data->big_fb,
> -				data->attemptmodewidth * 2,
> -				data->attemptmodeheight * 2,
> +				data->attemptmodewidth *
> flip_scenario_test[index].secondmultiplier,
> +				data->attemptmodeheight *
> +flip_scenario_test[index].secondmultiplier,
>  				flip_scenario_test[index].secondformat,
>  				flip_scenario_test[index].secondmodifier);
> 
> @@ -187,7 +205,7 @@ static void test_flip_to_scaled(data_t *data, uint32_t
> index, enum pipe pipe,
>  				      data->small_fb.modifier) ||
>  	    !igt_plane_has_format_mod(primary, data->big_fb.drm_format,
>  				      data->big_fb.modifier))
> -		return;
> +		return NOREQUESTEDFORMATONPIPE;
> 
>  	set_lut(data, pipe);
>  	igt_display_commit_atomic(&data->display,
> DRM_MODE_ATOMIC_ALLOW_MODESET, @@ -211,31 +229,55 @@ static
> void test_flip_to_scaled(data_t *data, uint32_t index, enum pipe pipe,
>  	}
> 
>  	if (!modetoset)
> -		igt_debug("%dp mode was not found from connector, will
> continue with default. This may cause cdclk to fail this test.\n",
> +		igt_debug("%dp mode was not found from connector, will try
> with
> +default. This may cause cdclk to fail this test on this connector.\n",
>  			  data->attemptmodeheight);
>  	else
>  		igt_output_override_mode(output, modetoset);
> 
>  	igt_plane_set_position(primary, 0, 0);
>  	igt_plane_set_fb(primary, &data->small_fb);
> -	igt_display_commit_atomic(&data->display,
> DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +	igt_plane_set_size(primary, data->attemptmodewidth,
> +			   data->attemptmodeheight);
> +	ret = igt_display_try_commit_atomic(&data->display,
> DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
> +	switch (ret) {
> +	case -ERANGE:
> +		igt_debug("Platform scaling limits exceeded, skipping.\n");
> +		return TESTSKIP;
> +	case -EINVAL:
> +		if (!modetoset) {
> +			igt_debug("No %dp and default mode too big, cdclk
> limits exceeded. Check next connector\n",
> +				  data->attemptmodeheight);
> +			return CONNECTORFAIL;
> +		}
> +		/* fallthrough */
> +	default:
> +		igt_assert_eq(ret, 0);
> +	}
> 
>  	igt_pipe_crc_start(data->pipe_crc);
>  	igt_pipe_crc_get_current(data->drm_fd, data->pipe_crc, &small_crc);
> 
>  	igt_plane_set_fb(primary, &data->big_fb);
> -	igt_plane_set_size(primary, data->small_fb.width,
> -			   data->small_fb.height);
> +	igt_plane_set_size(primary, data->attemptmodewidth,
> +			   data->attemptmodeheight);
>  	ret = igt_display_try_commit_atomic(&data->display,
> 
> DRM_MODE_ATOMIC_ALLOW_MODESET  |
>  					    DRM_MODE_PAGE_FLIP_EVENT,
> NULL);
> 
> -	igt_require_f(ret != -ERANGE,
> -		      "Platform scaling limits exceeded, skipping.\n");
> -	igt_require_f(!(ret == -EINVAL && !modetoset),
> -		      "No %dp and default mode too big, cdclk limits exceeded.
> Skipping.\n",
> -		      data->attemptmodeheight);
> -	igt_assert_eq(ret, 0);
> +	switch (ret) {
> +	case -ERANGE:
> +		igt_debug("Platform scaling limits exceeded, skipping.\n");
> +		return TESTSKIP;
> +	case -EINVAL:
> +		if (!modetoset) {
> +			igt_debug("No %dp and default mode too big, cdclk
> limits exceeded. Check next connector\n",
> +				  data->attemptmodeheight);
> +			return CONNECTORFAIL;
> +		}
> +		/* fallthrough */
> +	default:
> +		igt_assert_eq(ret, 0);
> +	}
> 
>  	igt_assert(read(data->drm_fd, &ev, sizeof(ev)) == sizeof(ev));
> 
> @@ -251,6 +293,8 @@ static void test_flip_to_scaled(data_t *data, uint32_t
> index, enum pipe pipe,
>  	igt_output_set_pipe(output, PIPE_NONE);
>  	igt_plane_set_fb(primary, NULL);
>  	igt_display_commit2(&data->display, COMMIT_ATOMIC);
> +
> +	return CONNECTORSUCCESS;
>  }
> 
>  igt_main
> @@ -280,11 +324,25 @@ igt_main
>  	for (int index = 0; index < ARRAY_SIZE(flip_scenario_test); index++) {
>  		igt_describe(flip_scenario_test[index].describe);
>  		igt_subtest(flip_scenario_test[index].name) {
> +			int validtests = 0;
>  			free_fbs(&data);
> -			for_each_pipe_with_single_output(&data.display,
> pipe,
> -							 output)
> -				test_flip_to_scaled(&data, index, pipe,
> output);
> -
> +			for_each_pipe_static(pipe) {
> +				enum subrval rval = CONNECTORSUCCESS;
> +
> 	for_each_valid_output_on_pipe(&data.display, pipe, output) {
> +					rval = test_flip_to_scaled(&data,
> index, pipe, output);
> +
> +					igt_require(rval != TESTSKIP);
> +
> +					// break out to test next pipe
> +					if (rval == CONNECTORSUCCESS) {
> +						validtests++;
> +						break;
> +					}
> +				}
> +				if (rval == NOREQUESTEDFORMATONPIPE)
> +					igt_debug("No requested
> format/modifier on pipe %s\n", kmstest_pipe_name(pipe));
> +			}
> +			igt_require_f(validtests > 0, "No valid
> pipe/connector/format/mod
> +combination found");
>  		}
>  	}
>  	igt_fixture {
> --
> 2.28.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 2/4] tests/kms_ccs: separate ccs modifiers to separate subtests
  2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_ccs: separate ccs modifiers to separate subtests Juha-Pekka Heikkila
@ 2021-06-18 13:20   ` Imre Deak
  0 siblings, 0 replies; 10+ messages in thread
From: Imre Deak @ 2021-06-18 13:20 UTC (permalink / raw)
  To: Juha-Pekka Heikkila; +Cc: igt-dev

On Tue, Jun 15, 2021 at 07:00:20PM +0300, Juha-Pekka Heikkila wrote:
> Current kms_ccs test is not revealing if some ccs modifier fails
> as long as there's at least one modifier not failing. Separate all
> ccs modifiers onto their own tests making testing individual ccs
> modifiers easier and not hiding failures.
> 
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

Reviewed-by: Imre Deak <imre.deak@intel.com>

One nit below:

> ---
>  tests/kms_ccs.c | 156 +++++++++++++++++++++---------------------------
>  1 file changed, 67 insertions(+), 89 deletions(-)
> 
> diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c
> index a3eac1f8f..62850c1b2 100644
> --- a/tests/kms_ccs.c
> +++ b/tests/kms_ccs.c
> @@ -41,6 +41,7 @@ enum test_flags {
>  	TEST_BAD_CCS_HANDLE		= 1 << 6,
>  	TEST_BAD_AUX_STRIDE		= 1 << 7,
>  	TEST_RANDOM			= 1 << 8,
> +	TEST_ALL_PLANES			= 1 << 9,
>  };
>  
>  #define TEST_FAIL_ON_ADDFB2 \
> @@ -92,11 +93,11 @@ static const struct {
>  	uint64_t modifier;
>  	const char *str;
>  } ccs_modifiers[] = {
> -	{LOCAL_I915_FORMAT_MOD_Y_TILED_CCS, "LOCAL_I915_FORMAT_MOD_Y_TILED_CCS"},
> -	{LOCAL_I915_FORMAT_MOD_Yf_TILED_CCS, "LOCAL_I915_FORMAT_MOD_Yf_TILED_CCS"},
> -	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, "LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS"},
> -	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC, "LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC"},
> -	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS, "LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS"},
> +	{LOCAL_I915_FORMAT_MOD_Y_TILED_CCS, "y_tiled_ccs"},
> +	{LOCAL_I915_FORMAT_MOD_Yf_TILED_CCS, "yf_tiled_ccs"},
> +	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS, "y_tiled_gen12_rc_ccs"},
> +	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC, "y_tiled_gen12_rc_ccs_cc"},
> +	{LOCAL_I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS, "y_tiled_gen12_mc_ccs"},
>  };
>  
>  static bool check_ccs_planes;
> @@ -507,37 +508,53 @@ static int test_ccs(data_t *data)
>  	return valid_tests;
>  }
>  
> -static int __test_output(data_t *data)
> +static void test_output(data_t *data, const char* testformatstring)

Just const char *test_name ?

>  {
> -	igt_display_t *display = &data->display;
> -	int i, valid_tests = 0;
> -
> -	data->output = igt_get_single_output_for_pipe(display, data->pipe);
> -	igt_require(data->output);
> -
> -	igt_output_set_pipe(data->output, data->pipe);
> -
> -	for (i = 0; i < ARRAY_SIZE(ccs_modifiers); i++) {
> -		int j;
> +	igt_fixture {
> +		data->output = igt_get_single_output_for_pipe(&data->display,
> +							      data->pipe);
> +		igt_output_set_pipe(data->output, data->pipe);
> +	}
>  
> +	for (int i = 0; i < ARRAY_SIZE(ccs_modifiers); i++) {
>  		data->ccs_modifier = ccs_modifiers[i].modifier;
> -		igt_debug("Modifier in use: %s\n", ccs_modifiers[i].str);
> -		for (j = 0; j < ARRAY_SIZE(formats); j++) {
> -			data->format = formats[j];
> -			valid_tests += test_ccs(data);
> +
> +		igt_subtest_f("pipe-%s-%s-%s", kmstest_pipe_name(data->pipe),
> +			      testformatstring, ccs_modifiers[i].str ) {
> +			int valid_tests = 0;
> +			igt_require(data->output);
> +
> +			if (data->flags == TEST_RANDOM)
> +				igt_info("Testing with seed %d\n", data->seed);
> +
> +			if (data->flags & TEST_ALL_PLANES) {
> +				igt_display_require_output_on_pipe(&data->display, data->pipe);
> +
> +				for_each_plane_on_pipe(&data->display, data->pipe, data->plane) {
> +					for (int j = 0; j < ARRAY_SIZE(formats); j++) {
> +						data->format = formats[j];
> +						valid_tests += test_ccs(data);
> +					}
> +				}
> +			} else {
> +				for (int j = 0; j < ARRAY_SIZE(formats); j++) {
> +					data->format = formats[j];
> +					valid_tests += test_ccs(data);
> +				}
> +			}
> +			igt_require_f(valid_tests > 0,
> +				      "no valid tests for %s on pipe %s\n",
> +				      ccs_modifiers[i].str,
> +				      kmstest_pipe_name(data->pipe));
>  		}
>  	}
>  
> -	igt_output_set_pipe(data->output, PIPE_NONE);
> -	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> -
> -	return valid_tests;
> -}
> -
> -static void test_output(data_t *data)
> -{
> -	int valid_tests = __test_output(data);
> -	igt_require_f(valid_tests > 0, "CCS not supported, skipping\n");
> +	igt_fixture {
> +		igt_output_set_pipe(data->output, PIPE_NONE);
> +		igt_display_commit2(&data->display, data->display.is_atomic ?
> +				    COMMIT_ATOMIC : COMMIT_LEGACY);
> +		data->plane = NULL;
> +	}
>  }
>  
>  static int opt_handler(int opt, int opt_index, void *opt_data)
> @@ -570,6 +587,22 @@ igt_main_args("cs:", NULL, help_str, opt_handler, &data)
>  {
>  	enum pipe pipe;
>  
> +	const struct {
> +		const enum test_flags	flags;
> +		const char		*testname;
> +		const char		*description;
> +	} tests[] = {
> +		{TEST_BAD_PIXEL_FORMAT, "bad-pixel-format", "Test bad pixel format with given CCS modifier"},
> +		{TEST_BAD_ROTATION_90, "bad-rotation-90", "Test 90 degree rotation with given CCS modifier"},
> +		{TEST_CRC, "crc-primary-basic", "Test primary plane CRC compatibility with given CCS modifier"},
> +		{TEST_CRC | TEST_ROTATE_180, "crc-primary-rotation-180", "Test 180 degree rotation with given CCS modifier"},
> +		{TEST_RANDOM, "random-ccs-data", "Test random CCS data"},
> +		{TEST_NO_AUX_BUFFER, "missing-ccs-buffer", "Test missing CCS buffer with given CCS modifier"},
> +		{TEST_BAD_CCS_HANDLE, "ccs-on-another-bo", "Test CCS with different BO with given modifier"},
> +		{TEST_BAD_AUX_STRIDE, "bad-aux-stride", "Test with bad AUX stride with given CCS modifier"},
> +		{TEST_CRC | TEST_ALL_PLANES, "crc-sprite-planes-basic", "Test sprite plane CRC compatibility with given CCS modifier"},
> +	};
> +
>  	igt_fixture {
>  		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
>  
> @@ -584,68 +617,13 @@ igt_main_args("cs:", NULL, help_str, opt_handler, &data)
>  	}
>  
>  	for_each_pipe_static(pipe) {
> -		const char *pipe_name = kmstest_pipe_name(pipe);
> -
>  		data.pipe = pipe;
>  
> -		data.flags = TEST_BAD_PIXEL_FORMAT;
> -		igt_describe("Test bad pixel format with given CCS modifier");
> -		igt_subtest_f("pipe-%s-bad-pixel-format", pipe_name)
> -			test_output(&data);
> -
> -		data.flags = TEST_BAD_ROTATION_90;
> -		igt_describe("Test 90 degree rotation with given CCS modifier");
> -		igt_subtest_f("pipe-%s-bad-rotation-90", pipe_name)
> -			test_output(&data);
> -
> -		data.flags = TEST_CRC;
> -		igt_describe("Test primary plane CRC compatibility with given CCS modifier");
> -		igt_subtest_f("pipe-%s-crc-primary-basic", pipe_name)
> -			test_output(&data);
> -
> -		data.flags = TEST_CRC | TEST_ROTATE_180;
> -		igt_describe("Test 180 degree rotation with given CCS modifier");
> -		igt_subtest_f("pipe-%s-crc-primary-rotation-180", pipe_name)
> -			test_output(&data);
> -
> -		data.flags = TEST_CRC;
> -		igt_describe("Test sprite plane CRC compatibility with given CCS modifier");
> -		igt_subtest_f("pipe-%s-crc-sprite-planes-basic", pipe_name) {
> -			int valid_tests = 0;
> -
> -			igt_display_require_output_on_pipe(&data.display, data.pipe);
> -
> -			for_each_plane_on_pipe(&data.display, data.pipe, data.plane) {
> -				valid_tests += __test_output(&data);
> -			}
> -
> -			igt_require_f(valid_tests > 0,
> -				      "CCS not supported, skipping\n");
> -		}
> -
> -		data.plane = NULL;
> -
> -		data.flags = TEST_RANDOM;
> -		igt_describe("Test random CCS data");
> -		igt_subtest_f("pipe-%s-random-ccs-data", pipe_name) {
> -			igt_info("Testing with seed %d\n", data.seed);
> -			test_output(&data);
> +		for (int c = 0; c < ARRAY_SIZE(tests); c++) {
> +			data.flags = tests[c].flags;
> +			igt_describe(tests[c].description);
> +			test_output(&data, tests[c].testname);
>  		}
> -
> -		data.flags = TEST_NO_AUX_BUFFER;
> -		igt_describe("Test missing CCS buffer with given CCS modifier");
> -		igt_subtest_f("pipe-%s-missing-ccs-buffer", pipe_name)
> -			test_output(&data);
> -
> -		data.flags = TEST_BAD_CCS_HANDLE;
> -		igt_describe("Test CCS with different BO with given modifier");
> -		igt_subtest_f("pipe-%s-ccs-on-another-bo", pipe_name)
> -			test_output(&data);
> -
> -		data.flags = TEST_BAD_AUX_STRIDE;
> -		igt_describe("Test with bad AUX stride with given CCS modifier");
> -		igt_subtest_f("pipe-%s-bad-aux-stride", pipe_name)
> -			test_output(&data);
>  	}
>  
>  	igt_fixture
> -- 
> 2.28.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer
  2021-06-15 16:00 [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Juha-Pekka Heikkila
                   ` (4 preceding siblings ...)
  2021-06-16  0:54 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2021-06-21  9:40 ` Kahola, Mika
  5 siblings, 0 replies; 10+ messages in thread
From: Kahola, Mika @ 2021-06-21  9:40 UTC (permalink / raw)
  To: Juha-Pekka Heikkila, igt-dev

> -----Original Message-----
> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of Juha-
> Pekka Heikkila
> Sent: Tuesday, June 15, 2021 7:00 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead
> of frontbuffer
> 
> take out frontbuffer usage from this test as it may fail this test on frontbuffer
> related issues instead of cursor issues
> 
> v2(vsyrjala): fix cursor size change test to run only one loop
> 
> Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

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

> ---
>  tests/kms_cursor_crc.c | 136 +++++++++++++++++++++--------------------
>  1 file changed, 71 insertions(+), 65 deletions(-)
> 
> diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c index
> 1463c5b3f..ee8912dc1 100644
> --- a/tests/kms_cursor_crc.c
> +++ b/tests/kms_cursor_crc.c
> @@ -64,14 +64,14 @@ typedef struct {
>  	igt_plane_t *cursor;
>  	cairo_surface_t *surface;
>  	uint32_t devid;
> -
> +	bool hwimageistestimage;
>  } data_t;
> 
>  #define TEST_DPMS (1<<0)
>  #define TEST_SUSPEND (1<<1)
> 
> -#define FRONTBUFFER 0
> -#define RESTOREBUFFER 1
> +#define HWCURSORBUFFER 0
> +#define SWCOMPARISONBUFFER 1
> 
>  static void draw_cursor(cairo_t *cr, int x, int y, int cw, int ch, double a)  {
> @@ -144,22 +144,16 @@ static bool cursor_visible(data_t *data, int x, int y)
>  	return true;
>  }
> 
> -static void restore_image(data_t *data)
> +static void restore_image(data_t *data, uint32_t buffer)
>  {
>  	cairo_t *cr;
> -	igt_display_t *display = &data->display;
> 
> -	/* rendercopy stripped in igt using cairo */
> -	cr = igt_get_cairo_ctx(data->drm_fd,
> -			       &data->primary_fb[FRONTBUFFER]);
> +	cr = igt_get_cairo_ctx(data->drm_fd, &data->primary_fb[buffer]);
>  	cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
>  	cairo_set_source_surface(cr, data->surface, 0, 0);
>  	cairo_rectangle(cr, 0, 0, data->screenw, data->screenh);
>  	cairo_fill(cr);
>  	igt_put_cairo_ctx(cr);
> -	igt_dirty_fb(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
> -	igt_wait_for_vblank(data->drm_fd,
> -			    display->pipes[data->pipe].crtc_offset);
>  }
> 
>  static void do_single_test(data_t *data, int x, int y) @@ -173,8 +167,6 @@
> static void do_single_test(data_t *data, int x, int y)
>  	igt_print_activity();
> 
>  	/* Hardware test */
> -	restore_image(data);
> -
>  	igt_plane_set_position(data->cursor, x, y);
>  	cursor_enable(data);
> 
> @@ -182,16 +174,18 @@ static void do_single_test(data_t *data, int x, int y)
>  		ret = igt_display_try_commit2(display, COMMIT_LEGACY);
>  		igt_assert_eq(ret, -EINVAL);
>  		igt_plane_set_position(data->cursor, 0, y);
> -
>  		return;
>  	}
> 
> +	igt_plane_set_fb(data->primary, &data-
> >primary_fb[HWCURSORBUFFER]);
>  	igt_display_commit(display);
> 
>  	/* Extra vblank wait is because nonblocking cursor ioctl */
>  	igt_wait_for_vblank(data->drm_fd,
> -			display->pipes[data->pipe].crtc_offset);
> +			    display->pipes[data->pipe].crtc_offset);
> +
>  	igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc);
> +	restore_image(data, SWCOMPARISONBUFFER);
> 
>  	if (data->flags & (TEST_DPMS | TEST_SUSPEND)) {
>  		igt_crc_t crc_after;
> @@ -220,15 +214,14 @@ static void do_single_test(data_t *data, int x, int y)
>  		igt_assert_crc_equal(&crc, &crc_after);
>  	}
> 
> -	cursor_disable(data);
> -
>  	/* Now render the same in software and collect crc */
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data-
> >primary_fb[FRONTBUFFER]);
> +	cr = igt_get_cairo_ctx(data->drm_fd,
> +&data->primary_fb[SWCOMPARISONBUFFER]);
>  	draw_cursor(cr, x, y, data->curw, data->curh, 1.0);
>  	igt_put_cairo_ctx(cr);
> +	igt_plane_set_fb(data->primary, &data-
> >primary_fb[SWCOMPARISONBUFFER]);
> +	cursor_disable(data);
>  	igt_display_commit(display);
> -	igt_dirty_fb(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
> -	/* Extra vblank wait is because nonblocking cursor ioctl */
> +
>  	igt_wait_for_vblank(data->drm_fd,
>  			display->pipes[data->pipe].crtc_offset);
> 
> @@ -244,8 +237,6 @@ static void do_fail_test(data_t *data, int x, int y, int
> expect)
>  	igt_print_activity();
> 
>  	/* Hardware test */
> -	restore_image(data);
> -
>  	cursor_enable(data);
>  	igt_plane_set_position(data->cursor, x, y);
>  	ret = igt_display_try_commit2(display, COMMIT_LEGACY); @@ -
> 362,13 +353,16 @@ static void cleanup_crtc(data_t *data)
>  	igt_pipe_crc_free(data->pipe_crc);
>  	data->pipe_crc = NULL;
> 
> -	cairo_surface_destroy(data->surface);
> +	if (data->hwimageistestimage) {
> +		cairo_surface_destroy(data->surface);
> +		data->surface = NULL;
> +	}
> 
>  	igt_plane_set_fb(data->primary, NULL);
>  	igt_display_commit(display);
> 
> -	igt_remove_fb(data->drm_fd, &data->primary_fb[FRONTBUFFER]);
> -	igt_remove_fb(data->drm_fd, &data->primary_fb[RESTOREBUFFER]);
> +	igt_remove_fb(data->drm_fd, &data-
> >primary_fb[HWCURSORBUFFER]);
> +	igt_remove_fb(data->drm_fd, &data-
> >primary_fb[SWCOMPARISONBUFFER]);
> 
>  	igt_display_reset(display);
>  }
> @@ -389,18 +383,18 @@ static void prepare_crtc(data_t *data, igt_output_t
> *output,
>  			    DRM_FORMAT_XRGB8888,
>  			    LOCAL_DRM_FORMAT_MOD_NONE,
>  			    0.0, 0.0, 0.0,
> -			    &data->primary_fb[FRONTBUFFER]);
> +			    &data->primary_fb[HWCURSORBUFFER]);
> 
>  	igt_create_color_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
>  			    DRM_FORMAT_XRGB8888,
>  			    LOCAL_DRM_FORMAT_MOD_NONE,
>  			    0.0, 0.0, 0.0,
> -			    &data->primary_fb[RESTOREBUFFER]);
> +			    &data->primary_fb[SWCOMPARISONBUFFER]);
> 
>  	data->primary = igt_output_get_plane_type(output,
> DRM_PLANE_TYPE_PRIMARY);
>  	data->cursor = igt_output_get_plane_type(output,
> DRM_PLANE_TYPE_CURSOR);
> 
> -	igt_plane_set_fb(data->primary, &data-
> >primary_fb[FRONTBUFFER]);
> +	igt_plane_set_fb(data->primary,
> +&data->primary_fb[SWCOMPARISONBUFFER]);
> 
>  	igt_display_commit(display);
> 
> @@ -421,13 +415,22 @@ static void prepare_crtc(data_t *data, igt_output_t
> *output,
>  	data->curh = cursor_h;
>  	data->refresh = mode->vrefresh;
> 
> -	data->surface =
> cairo_image_surface_create(CAIRO_FORMAT_RGB24, data->screenw, data-
> >screenh);
> +	if (data->hwimageistestimage) {
> +		data->surface =
> cairo_image_surface_create(CAIRO_FORMAT_RGB24,
> +							   data->screenw,
> +							   data->screenh);
> +
> +		/* store test image as cairo surface */
> +		cr = cairo_create(data->surface);
> +		cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
> +		igt_paint_test_pattern(cr, data->screenw, data->screenh);
> +		cairo_destroy(cr);
> +
> +		/* Set HW cursor buffer in place */
> +			restore_image(data, HWCURSORBUFFER);
> +	} else
> +		data->surface = NULL;
> 
> -	/* store test image as cairo surface */
> -	cr = cairo_create(data->surface);
> -	cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE);
> -	igt_paint_test_pattern(cr, data->screenw, data->screenh);
> -	cairo_destroy(cr);
>  	igt_pipe_crc_start(data->pipe_crc);
>  }
> 
> @@ -447,6 +450,10 @@ static void test_cursor_alpha(data_t *data, double
> a)
>  				    LOCAL_DRM_FORMAT_MOD_NONE,
>  				    &data->fb);
>  	igt_assert(fb_id);
> +
> +	igt_plane_set_fb(data->primary, &data-
> >primary_fb[HWCURSORBUFFER]);
> +	igt_display_commit(display);
> +
>  	cr = igt_get_cairo_ctx(data->drm_fd, &data->fb);
>  	igt_paint_color_alpha(cr, 0, 0, curw, curh, 1.0, 1.0, 1.0, a);
>  	igt_put_cairo_ctx(cr);
> @@ -462,10 +469,10 @@ static void test_cursor_alpha(data_t *data, double
> a)
>  	igt_remove_fb(data->drm_fd, &data->fb);
> 
>  	/* Software Test - render cursor in software, drawn it directly on PF
> */
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data-
> >primary_fb[FRONTBUFFER]);
> +	cr = igt_get_cairo_ctx(data->drm_fd,
> +&data->primary_fb[SWCOMPARISONBUFFER]);
>  	igt_paint_color_alpha(cr, 0, 0, curw, curh, 1.0, 1.0, 1.0, a);
>  	igt_put_cairo_ctx(cr);
> -
> +	igt_plane_set_fb(data->primary,
> +&data->primary_fb[SWCOMPARISONBUFFER]);
>  	igt_display_commit(display);
>  	igt_wait_for_vblank(data->drm_fd,
>  			display->pipes[data->pipe].crtc_offset);
> @@ -473,12 +480,6 @@ static void test_cursor_alpha(data_t *data, double
> a)
> 
>  	/* Compare CRC from Hardware/Software tests */
>  	igt_assert_crc_equal(&crc, &ref_crc);
> -
> -	/*Clear Screen*/
> -	cr = igt_get_cairo_ctx(data->drm_fd, &data-
> >primary_fb[FRONTBUFFER]);
> -	igt_paint_color(cr, 0, 0, data->screenw, data->screenh,
> -			0.0, 0.0, 0.0);
> -	igt_put_cairo_ctx(cr);
>  }
> 
>  static void test_cursor_transparent(data_t *data) @@ -574,10 +575,10 @@
> static void test_cursor_size(data_t *data)  {
>  	igt_display_t *display = &data->display;
>  	igt_pipe_crc_t *pipe_crc = data->pipe_crc;
> -	igt_crc_t crc[10], ref_crc;
> +	igt_crc_t crc, ref_crc;
>  	cairo_t *cr;
>  	uint32_t fb_id;
> -	int i, size;
> +	int i, size, prevsize = 0;
>  	int cursor_max_size = data->cursor_max_w;
> 
>  	/* Create a maximum size cursor, then change the size in flight to
> @@ -594,37 +595,38 @@ static void test_cursor_size(data_t *data)
>  	igt_put_cairo_ctx(cr);
> 
>  	/* Hardware test loop */
> -	cursor_enable(data);
>  	for (i = 0, size = cursor_max_size; size >= 64; size /= 2, i++) {
> +		cursor_enable(data);
>  		/* Change size in flight: */
>  		igt_plane_set_size(data->cursor, size, size);
>  		igt_fb_set_size(&data->fb, data->cursor, size, size);
>  		igt_display_commit(display);
> -		igt_wait_for_vblank(data->drm_fd,
> -				display->pipes[data->pipe].crtc_offset);
> -		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc[i]);
> -	}
> -	cursor_disable(data);
> -	igt_display_commit(display);
> -	igt_remove_fb(data->drm_fd, &data->fb);
> -	/* Software test loop */
> -	for (i = 0, size = cursor_max_size; size >= 64; size /= 2, i++) {
> +		igt_plane_set_fb(data->primary, &data-
> >primary_fb[HWCURSORBUFFER]);
> +		igt_display_commit(display);
> +
> +		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &crc);
> +
> +		cursor_disable(data);
> +		igt_display_commit(display);
> +
>  		/* Now render the same in software and collect crc */
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data-
> >primary_fb[FRONTBUFFER]);
> +		cr = igt_get_cairo_ctx(data->drm_fd,
> +&data->primary_fb[SWCOMPARISONBUFFER]);
> +
> +		/* remove previous cursor sw image */
> +		if (prevsize > 0)
> +			igt_paint_color(cr, 0, 0, prevsize, prevsize, 0.0, 0.0,
> 0.0);
> +		prevsize = size;
> +
>  		igt_paint_color_alpha(cr, 0, 0, size, size, 1.0, 1.0, 1.0, 1.0);
>  		igt_put_cairo_ctx(cr);
> -
> +		igt_plane_set_fb(data->primary,
> +&data->primary_fb[SWCOMPARISONBUFFER]);
>  		igt_display_commit(display);
> -		igt_wait_for_vblank(data->drm_fd,
> -				display->pipes[data->pipe].crtc_offset);
>  		igt_pipe_crc_get_current(data->drm_fd, pipe_crc, &ref_crc);
> -		/* Clear screen afterwards */
> -		cr = igt_get_cairo_ctx(data->drm_fd, &data-
> >primary_fb[FRONTBUFFER]);
> -		igt_paint_color(cr, 0, 0, data->screenw, data->screenh,
> -				0.0, 0.0, 0.0);
> -		igt_put_cairo_ctx(cr);
> -		igt_assert_crc_equal(&crc[i], &ref_crc);
> +
> +		igt_assert_crc_equal(&crc, &ref_crc);
>  	}
> +
> +	igt_remove_fb(data->drm_fd, &data->fb);
>  }
> 
>  static void test_rapid_movement(data_t *data) @@ -690,6 +692,7 @@
> static void run_size_tests(data_t *data, enum pipe pipe,
>  				      w, h);
>  		}
>  		create_cursor_fb(data, w, h);
> +		data->hwimageistestimage = true;
>  	}
> 
>  	/* Using created cursor FBs to test cursor support */ @@ -727,6
> +730,7 @@ static void run_tests_on_pipe(data_t *data, enum pipe pipe)
>  		data->pipe = pipe;
>  		data->output = igt_get_single_output_for_pipe(&data-
> >display, pipe);
>  		igt_require(data->output);
> +		data->hwimageistestimage = false;
>  	}
> 
>  	igt_describe("Create a maximum size cursor, then change the size in
> "
> @@ -746,8 +750,10 @@ static void run_tests_on_pipe(data_t *data, enum
> pipe pipe)
>  	igt_subtest_f("pipe-%s-cursor-alpha-transparent",
> kmstest_pipe_name(pipe))
>  		run_test(data, test_cursor_transparent, data-
> >cursor_max_w, data->cursor_max_h);
> 
> -	igt_fixture
> +	igt_fixture {
>  		create_cursor_fb(data, data->cursor_max_w, data-
> >cursor_max_h);
> +		data->hwimageistestimage = true;
> +	}
> 
>  	igt_subtest_f("pipe-%s-cursor-dpms", kmstest_pipe_name(pipe)) {
>  		data->flags = TEST_DPMS;
> --
> 2.28.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2021-06-21  9:40 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-15 16:00 [igt-dev] [PATCH i-g-t 1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Juha-Pekka Heikkila
2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 2/4] tests/kms_ccs: separate ccs modifiers to separate subtests Juha-Pekka Heikkila
2021-06-18 13:20   ` Imre Deak
2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 3/4] tests/kms_plane: fix rounding error Juha-Pekka Heikkila
2021-06-18  8:19   ` Kahola, Mika
2021-06-15 16:00 ` [igt-dev] [PATCH i-g-t 4/4] tests/kms_flip_scaled_crc: parameterize test sizes and fix test to try other connectors Juha-Pekka Heikkila
2021-06-18  8:55   ` Kahola, Mika
2021-06-15 16:46 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/4] tests/kms_cursor_crc: use flipping instead of frontbuffer Patchwork
2021-06-16  0:54 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2021-06-21  9:40 ` [igt-dev] [PATCH i-g-t 1/4] " Kahola, Mika

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.