All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v6 0/2] tests/kms_async_flips: Cleanup
@ 2022-05-31  5:36 Karthik B S
  2022-05-31  5:36 ` [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_async_flips: Convert tests to dynamic Karthik B S
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Karthik B S @ 2022-05-31  5:36 UTC (permalink / raw)
  To: igt-dev

Series includes patches to:
-Convert tests to dynamic
-Cleanup the test

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

Karthik B S (2):
  tests/kms_async_flips: Convert tests to dynamic
  tests/kms_async_flips: Test Cleanup

 tests/kms_async_flips.c | 235 +++++++++++++++++++++++++---------------
 1 file changed, 146 insertions(+), 89 deletions(-)

-- 
2.22.0

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

* [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_async_flips: Convert tests to dynamic
  2022-05-31  5:36 [igt-dev] [PATCH i-g-t v6 0/2] tests/kms_async_flips: Cleanup Karthik B S
@ 2022-05-31  5:36 ` Karthik B S
  2022-05-31  8:08   ` Kamil Konieczny
  2022-05-31  5:36 ` [igt-dev] [PATCH i-g-t v6 2/2] tests/kms_async_flips: Test Cleanup Karthik B S
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Karthik B S @ 2022-05-31  5:36 UTC (permalink / raw)
  To: igt-dev

v2: -Get the mode after igt_display_reset() (Bhanu)

v3: -Move patch to start of series to avoid code duplication (Bhanu)
    -Use for_each_pipe() instead of for_each_pipe_static() (Bhanu)

v4: -Add helper to avoid code duplication (Andre)

Signed-off-by: Karthik B S <karthik.b.s@intel.com>
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/kms_async_flips.c | 80 +++++++++++++++++++++++++++++++----------
 1 file changed, 62 insertions(+), 18 deletions(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 1701883b..8b545b77 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -51,6 +51,7 @@ typedef struct {
 	struct igt_fb bufs[4];
 	igt_display_t display;
 	drmModeConnectorPtr connector;
+	igt_output_t *output;
 	unsigned long flip_timestamp_us;
 	double flip_interval;
 	igt_pipe_crc_t *pipe_crc;
@@ -58,6 +59,9 @@ typedef struct {
 	int flip_count;
 	int frame_count;
 	bool flip_pending;
+	bool extended;
+	enum pipe pipe;
+	bool alternate_sync_async;
 } data_t;
 
 static drmModeConnectorPtr find_connector_for_modeset(data_t *data)
@@ -159,7 +163,7 @@ static void require_monotonic_timestamp(int fd)
 		      "Monotonic timestamps not supported\n");
 }
 
-static void test_async_flip(data_t *data, bool alternate_sync_async)
+static void test_async_flip(data_t *data)
 {
 	int ret, frame;
 	long long int fps;
@@ -172,7 +176,7 @@ static void test_async_flip(data_t *data, bool alternate_sync_async)
 	do {
 		int flags = DRM_MODE_PAGE_FLIP_ASYNC | DRM_MODE_PAGE_FLIP_EVENT;
 
-		if (alternate_sync_async) {
+		if (data->alternate_sync_async) {
 			flags &= ~DRM_MODE_PAGE_FLIP_ASYNC;
 
 			ret = drmModePageFlip(data->drm_fd, data->crtc_id,
@@ -216,7 +220,7 @@ static void test_async_flip(data_t *data, bool alternate_sync_async)
 		gettimeofday(&end, NULL);
 		timersub(&end, &start, &diff);
 
-		if (alternate_sync_async) {
+		if (data->alternate_sync_async) {
 			igt_assert_f(data->flip_interval < 1000.0 / (data->refresh_rate * MIN_FLIPS_PER_FRAME),
 				     "Flip interval not significantly smaller than vblank interval\n"
 				     "Flip interval: %lfms, Refresh Rate = %dHz, Threshold = %d\n",
@@ -226,7 +230,7 @@ static void test_async_flip(data_t *data, bool alternate_sync_async)
 		frame++;
 	} while (diff.tv_sec < RUN_TIME);
 
-	if (!alternate_sync_async) {
+	if (!data->alternate_sync_async) {
 		fps = frame * 1000 / RUN_TIME;
 		igt_assert_f((fps / 1000) > (data->refresh_rate * MIN_FLIPS_PER_FRAME),
 			     "FPS should be significantly higher than the refresh rate\n");
@@ -540,9 +544,45 @@ static void test_crc(data_t *data)
 	igt_assert_lt(data->frame_count * 2, data->flip_count);
 }
 
-igt_main
+static void run_test(data_t *data, void (*test)(data_t *))
+{
+	igt_output_t *output;
+	enum pipe pipe;
+
+	for_each_pipe(&data->display, pipe) {
+		for_each_valid_output_on_pipe(&data->display, pipe, output) {
+			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
+				data->output = output;
+				data->pipe = pipe;
+				test(data);
+			}
+
+			if (!data->extended)
+				break;
+		}
+	}
+}
+
+static int opt_handler(int opt, int opt_index, void *_data)
+{
+	data_t *data = _data;
+
+	switch (opt) {
+	case 'e':
+		data->extended = true;
+		break;
+	}
+
+	return IGT_OPT_HANDLER_SUCCESS;
+}
+
+static const char help_str[] =
+"  --e \t\tRun the extended tests\n";
+
+static data_t data;
+
+igt_main_args("e", NULL, help_str, opt_handler, &data)
 {
-	static data_t data;
 	int i;
 
 	igt_fixture {
@@ -561,28 +601,32 @@ igt_main
 			test_init(&data);
 
 		igt_describe("Wait for page flip events in between successive asynchronous flips");
-		igt_subtest("async-flip-with-page-flip-events")
-			test_async_flip(&data, false);
+		igt_subtest_with_dynamic("async-flip-with-page-flip-events") {
+			data.alternate_sync_async = false;
+			run_test(&data, test_async_flip);
+		}
 
 		igt_describe("Alternate between sync and async flips");
-		igt_subtest("alternate-sync-async-flip")
-			test_async_flip(&data, true);
+		igt_subtest_with_dynamic("alternate-sync-async-flip") {
+			data.alternate_sync_async = true;
+			run_test(&data, test_async_flip);
+		}
 
 		igt_describe("Verify that the async flip timestamp does not coincide with either previous or next vblank");
-		igt_subtest("test-time-stamp")
-			test_timestamp(&data);
+		igt_subtest_with_dynamic("test-time-stamp")
+			run_test(&data, test_timestamp);
 
 		igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
-		igt_subtest("test-cursor")
-			test_cursor(&data);
+		igt_subtest_with_dynamic("test-cursor")
+			run_test(&data, test_cursor);
 
 		igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
-		igt_subtest("invalid-async-flip")
-			test_invalid(&data);
+		igt_subtest_with_dynamic("invalid-async-flip")
+			run_test(&data, test_invalid);
 
 		igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
-		igt_subtest("crc")
-			test_crc(&data);
+		igt_subtest_with_dynamic("crc")
+			run_test(&data, test_crc);
 
 		igt_fixture {
 			for (i = 0; i < ARRAY_SIZE(data.bufs); i++)
-- 
2.22.0

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

* [igt-dev] [PATCH i-g-t v6 2/2] tests/kms_async_flips: Test Cleanup
  2022-05-31  5:36 [igt-dev] [PATCH i-g-t v6 0/2] tests/kms_async_flips: Cleanup Karthik B S
  2022-05-31  5:36 ` [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_async_flips: Convert tests to dynamic Karthik B S
@ 2022-05-31  5:36 ` Karthik B S
  2022-05-31  8:31   ` Kamil Konieczny
  2022-05-31  7:19 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_async_flips: Cleanup (rev2) Patchwork
  2022-05-31  8:28 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 1 reply; 9+ messages in thread
From: Karthik B S @ 2022-05-31  5:36 UTC (permalink / raw)
  To: igt-dev

-Replace drm function call with existing library functions
-igt_display_reset() before all subtests

v2: -Move conversion to dynamic subtest to a separate patch (Bhanu)
    -Use igt_output_get_mode to get default mode (Bhanu)
    -Add 'is_atomic' check before igt_display_commit2 (Bhanu)

v3: -Move test_init after the checks to skip subtest (Bhanu)
    -Update the logic to call make_fb() in test_init()

v4: -Move patch after patch to convert tests to dynamic to avoid code
     duplicaton. (Bhanu)

v5: -Update commit message. (Bhanu)
    -Move skip checks in the dynamic subtests before the start of the
     subtest to optimize the test. (Bhanu)
    -Close drm_fd at the end of the subtest.

v6: -Fix identation for braces. (Andre)

Signed-off-by: Karthik B S <karthik.b.s@intel.com>
---
 tests/kms_async_flips.c | 169 +++++++++++++++++++++-------------------
 1 file changed, 91 insertions(+), 78 deletions(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 8b545b77..4a0527dc 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -50,7 +50,6 @@ typedef struct {
 	uint32_t refresh_rate;
 	struct igt_fb bufs[4];
 	igt_display_t display;
-	drmModeConnectorPtr connector;
 	igt_output_t *output;
 	unsigned long flip_timestamp_us;
 	double flip_interval;
@@ -64,22 +63,6 @@ typedef struct {
 	bool alternate_sync_async;
 } data_t;
 
-static drmModeConnectorPtr find_connector_for_modeset(data_t *data)
-{
-	igt_output_t *output;
-	drmModeConnectorPtr ret = NULL;
-
-	for_each_connected_output(&data->display, output) {
-		if (output->config.connector->count_modes > 0) {
-			ret = output->config.connector;
-			break;
-		}
-	}
-
-	igt_assert_f(ret, "Connector NOT found\n");
-	return ret;
-}
-
 static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
 			 unsigned int tv_usec, void *_data)
 {
@@ -133,15 +116,11 @@ static void wait_flip_event(data_t *data)
 }
 
 static void make_fb(data_t *data, struct igt_fb *fb,
-		    drmModeConnectorPtr connector, int index)
+		    uint32_t width, uint32_t height, int index)
 {
-	uint32_t width, height;
 	int rec_width;
 	cairo_t *cr;
 
-	width = connector->modes[0].hdisplay;
-	height = connector->modes[0].vdisplay;
-
 	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
 
 	if (is_i915_device(data->drm_fd)) {
@@ -163,13 +142,52 @@ static void require_monotonic_timestamp(int fd)
 		      "Monotonic timestamps not supported\n");
 }
 
+static void test_init(data_t *data)
+{
+	int i;
+	uint32_t width, height;
+	igt_plane_t *plane;
+	static uint32_t prev_output_id;
+	drmModeModeInfo *mode;
+
+	igt_display_reset(&data->display);
+	igt_display_commit(&data->display);
+
+	mode = igt_output_get_mode(data->output);
+	width = mode->hdisplay;
+	height = mode->vdisplay;
+
+	data->crtc_id = data->display.pipes[data->pipe].crtc_id;
+	data->refresh_rate = mode->vrefresh;
+
+	igt_output_set_pipe(data->output, data->pipe);
+	plane = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
+
+	if (prev_output_id != data->output->id) {
+		prev_output_id = data->output->id;
+
+		if (data->bufs[0].fb_id) {
+			for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
+				igt_remove_fb(data->drm_fd, &data->bufs[i]);
+		}
+
+		for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
+			make_fb(data, &data->bufs[i], width, height, i);
+	}
+
+	igt_plane_set_fb(plane, &data->bufs[0]);
+	igt_plane_set_size(plane, width, height);
+
+	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+}
+
 static void test_async_flip(data_t *data)
 {
 	int ret, frame;
 	long long int fps;
 	struct timeval start, end, diff;
 
-	require_monotonic_timestamp(data->drm_fd);
+	test_init(data);
 
 	gettimeofday(&start, NULL);
 	frame = 1;
@@ -262,7 +280,7 @@ static void test_timestamp(data_t *data)
 	unsigned int seq, seq1;
 	int ret;
 
-	require_monotonic_timestamp(data->drm_fd);
+	test_init(data);
 
 	/*
 	 * In older platforms(<= gen10), async address update bit is double buffered.
@@ -321,6 +339,8 @@ static void test_cursor(data_t *data)
 	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &width));
 	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &height));
 
+	test_init(data);
+
 	igt_create_color_fb(data->drm_fd, width, height, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
 
@@ -355,15 +375,13 @@ static void test_invalid(data_t *data)
 	int ret;
 	uint32_t width, height;
 	struct igt_fb fb;
+	drmModeModeInfo *mode;
 
-	/* TODO: support more vendors */
-	igt_require(is_i915_device(data->drm_fd));
+	mode = igt_output_get_mode(data->output);
+	width = mode->hdisplay;
+	height = mode->vdisplay;
 
-	width = data->connector->modes[0].hdisplay;
-	height = data->connector->modes[0].vdisplay;
-
-	igt_require(igt_display_has_format_mod(&data->display, DRM_FORMAT_XRGB8888,
-					       I915_FORMAT_MOD_Y_TILED));
+	test_init(data);
 
 	igt_create_fb(data->drm_fd, width, height, DRM_FORMAT_XRGB8888,
 		      I915_FORMAT_MOD_Y_TILED, &fb);
@@ -379,33 +397,6 @@ static void test_invalid(data_t *data)
 	igt_remove_fb(data->drm_fd, &fb);
 }
 
-static void test_init(data_t *data)
-{
-	drmModeResPtr res;
-	int i, ret;
-
-	res = drmModeGetResources(data->drm_fd);
-	igt_assert(res);
-
-	kmstest_unset_all_crtcs(data->drm_fd, res);
-
-	data->connector = find_connector_for_modeset(data);
-	data->crtc_id = kmstest_find_crtc_for_connector(data->drm_fd,
-							res, data->connector, 0);
-
-	data->refresh_rate = data->connector->modes[0].vrefresh;
-
-	for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
-		make_fb(data, &data->bufs[i], data->connector, i);
-
-	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[0].fb_id, 0, 0,
-			     &data->connector->connector_id, 1, &data->connector->modes[0]);
-
-	igt_assert(ret == 0);
-
-	drmModeFreeResources(res);
-}
-
 static void queue_vblank(data_t *data)
 {
 	int pipe = kmstest_get_pipe_from_crtc_id(data->drm_fd, data->crtc_id);
@@ -491,13 +482,12 @@ static void test_crc(data_t *data)
 	cairo_t *cr;
 	int ret;
 
-	/* Devices without CRC can't run this test */
-	igt_require_pipe_crc(data->drm_fd);
-
 	data->flip_count = 0;
 	data->frame_count = 0;
 	data->flip_pending = false;
 
+	test_init(data);
+
 	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
 	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
 
@@ -505,7 +495,8 @@ static void test_crc(data_t *data)
 	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
 
 	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
-			     &data->connector->connector_id, 1, &data->connector->modes[0]);
+			     &data->output->config.connector->connector_id, 1,
+			     &data->output->config.connector->modes[0]);
 	igt_assert_eq(ret, 0);
 
 	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
@@ -577,7 +568,7 @@ static int opt_handler(int opt, int opt_index, void *_data)
 }
 
 static const char help_str[] =
-"  --e \t\tRun the extended tests\n";
+	"  --e \t\tRun the extended tests\n";
 
 static data_t data;
 
@@ -598,7 +589,7 @@ igt_main_args("e", NULL, help_str, opt_handler, &data)
 	igt_describe("Verify the async flip functionality and the fps during async flips");
 	igt_subtest_group {
 		igt_fixture
-			test_init(&data);
+			require_monotonic_timestamp(data.drm_fd);
 
 		igt_describe("Wait for page flip events in between successive asynchronous flips");
 		igt_subtest_with_dynamic("async-flip-with-page-flip-events") {
@@ -615,25 +606,47 @@ igt_main_args("e", NULL, help_str, opt_handler, &data)
 		igt_describe("Verify that the async flip timestamp does not coincide with either previous or next vblank");
 		igt_subtest_with_dynamic("test-time-stamp")
 			run_test(&data, test_timestamp);
+	}
 
-		igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
-		igt_subtest_with_dynamic("test-cursor")
-			run_test(&data, test_cursor);
+	igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
+	igt_subtest_with_dynamic("test-cursor") {
+		/*
+		 * Intel's PSR2 selective fetch adds other planes to state when
+		 * necessary, causing the async flip to fail because async flip is not
+		 * supported in cursor plane.
+		 */
+		igt_skip_on_f(i915_psr2_selective_fetch_check(data.drm_fd),
+			      "PSR2 sel fetch causes cursor to be added to primary plane " \
+			      "pages flips and async flip is not supported in cursor\n");
+
+		run_test(&data, test_cursor);
+	}
 
-		igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
-		igt_subtest_with_dynamic("invalid-async-flip")
-			run_test(&data, test_invalid);
+	igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
+	igt_subtest_with_dynamic("invalid-async-flip") {
+		/* TODO: support more vendors */
+		igt_require(is_i915_device(data.drm_fd));
+		igt_require(igt_display_has_format_mod(&data.display, DRM_FORMAT_XRGB8888,
+						       I915_FORMAT_MOD_Y_TILED));
 
-		igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
-		igt_subtest_with_dynamic("crc")
-			run_test(&data, test_crc);
+		run_test(&data, test_invalid);
+	}
 
-		igt_fixture {
-			for (i = 0; i < ARRAY_SIZE(data.bufs); i++)
-				igt_remove_fb(data.drm_fd, &data.bufs[i]);
-		}
+	igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
+	igt_subtest_with_dynamic("crc") {
+		/* Devices without CRC can't run this test */
+		igt_require_pipe_crc(data.drm_fd);
+
+		run_test(&data, test_crc);
 	}
 
-	igt_fixture
+	igt_fixture {
+		for (i = 0; i < ARRAY_SIZE(data.bufs); i++)
+			igt_remove_fb(data.drm_fd, &data.bufs[i]);
+
+		igt_display_reset(&data.display);
+		igt_display_commit(&data.display);
 		igt_display_fini(&data.display);
+		close(data.drm_fd);
+	}
 }
-- 
2.22.0

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

* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_async_flips: Cleanup (rev2)
  2022-05-31  5:36 [igt-dev] [PATCH i-g-t v6 0/2] tests/kms_async_flips: Cleanup Karthik B S
  2022-05-31  5:36 ` [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_async_flips: Convert tests to dynamic Karthik B S
  2022-05-31  5:36 ` [igt-dev] [PATCH i-g-t v6 2/2] tests/kms_async_flips: Test Cleanup Karthik B S
@ 2022-05-31  7:19 ` Patchwork
  2022-05-31  8:28 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  3 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2022-05-31  7:19 UTC (permalink / raw)
  To: Karthik B S; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms_async_flips: Cleanup (rev2)
URL   : https://patchwork.freedesktop.org/series/104493/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_11710 -> IGTPW_7193
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (46 -> 44)
------------------------------

  Additional (1): bat-rpls-2 
  Missing    (3): bat-dg2-8 bat-adlm-1 bat-adlp-4 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@gt_engines:
    - bat-dg1-5:          [PASS][1] -> [INCOMPLETE][2] ([i915#4418])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/bat-dg1-5/igt@i915_selftest@live@gt_engines.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/bat-dg1-5/igt@i915_selftest@live@gt_engines.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-g3258:       [PASS][3] -> [INCOMPLETE][4] ([i915#4785])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
    - fi-bdw-5557u:       NOTRUN -> [INCOMPLETE][5] ([i915#3921] / [i915#6105])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/fi-bdw-5557u/igt@i915_selftest@live@hangcheck.html
    - bat-dg1-6:          NOTRUN -> [DMESG-FAIL][6] ([i915#4494] / [i915#4957])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/bat-dg1-6/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@requests:
    - fi-pnv-d510:        [PASS][7] -> [DMESG-FAIL][8] ([i915#4528])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/fi-pnv-d510/igt@i915_selftest@live@requests.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/fi-pnv-d510/igt@i915_selftest@live@requests.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - bat-dg1-6:          NOTRUN -> [INCOMPLETE][9] ([i915#6011])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/bat-dg1-6/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@runner@aborted:
    - fi-pnv-d510:        NOTRUN -> [FAIL][10] ([fdo#109271] / [i915#2403] / [i915#4312])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/fi-pnv-d510/igt@runner@aborted.html
    - fi-hsw-g3258:       NOTRUN -> [FAIL][11] ([fdo#109271] / [i915#4312])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/fi-hsw-g3258/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@gt_engines:
    - bat-dg1-6:          [INCOMPLETE][12] ([i915#4418]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/bat-dg1-6/igt@i915_selftest@live@gt_engines.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/bat-dg1-6/igt@i915_selftest@live@gt_engines.html

  * igt@i915_selftest@live@gt_pm:
    - fi-tgl-1115g4:      [DMESG-FAIL][14] ([i915#3987]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/fi-tgl-1115g4/igt@i915_selftest@live@gt_pm.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/fi-tgl-1115g4/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@mman:
    - fi-bdw-5557u:       [INCOMPLETE][16] ([i915#5704]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/fi-bdw-5557u/igt@i915_selftest@live@mman.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/fi-bdw-5557u/igt@i915_selftest@live@mman.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#2403]: https://gitlab.freedesktop.org/drm/intel/issues/2403
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#3987]: https://gitlab.freedesktop.org/drm/intel/issues/3987
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4418]: https://gitlab.freedesktop.org/drm/intel/issues/4418
  [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
  [i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
  [i915#5704]: https://gitlab.freedesktop.org/drm/intel/issues/5704
  [i915#6011]: https://gitlab.freedesktop.org/drm/intel/issues/6011
  [i915#6105]: https://gitlab.freedesktop.org/drm/intel/issues/6105


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6500 -> IGTPW_7193

  CI-20190529: 20190529
  CI_DRM_11710: d2798c4b9213f0d14080bdeef58e692a2c01a0bf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7193: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/index.html
  IGT_6500: de4c6076a0f38ad3522b08931748f59d59a925ce @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_async_flips: Convert tests to dynamic
  2022-05-31  5:36 ` [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_async_flips: Convert tests to dynamic Karthik B S
@ 2022-05-31  8:08   ` Kamil Konieczny
  2022-05-31  8:39     ` Karthik B S
  0 siblings, 1 reply; 9+ messages in thread
From: Kamil Konieczny @ 2022-05-31  8:08 UTC (permalink / raw)
  To: igt-dev

Hi Karthik,

On 2022-05-31 at 11:06:47 +0530, Karthik B S wrote:

Put commit description here.

> v2: -Get the mode after igt_display_reset() (Bhanu)
> 
> v3: -Move patch to start of series to avoid code duplication (Bhanu)
>     -Use for_each_pipe() instead of for_each_pipe_static() (Bhanu)
> 
> v4: -Add helper to avoid code duplication (Andre)

Looks like you do a little more than just converting tests to
dynamic, can you describe that in commit message or maybe split
this patch into converting and adding new option and extending
tests ?

--
Kamil

> 
> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
> Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
>  tests/kms_async_flips.c | 80 +++++++++++++++++++++++++++++++----------
>  1 file changed, 62 insertions(+), 18 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 1701883b..8b545b77 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -51,6 +51,7 @@ typedef struct {
>  	struct igt_fb bufs[4];
>  	igt_display_t display;
>  	drmModeConnectorPtr connector;
> +	igt_output_t *output;
>  	unsigned long flip_timestamp_us;
>  	double flip_interval;
>  	igt_pipe_crc_t *pipe_crc;
> @@ -58,6 +59,9 @@ typedef struct {
>  	int flip_count;
>  	int frame_count;
>  	bool flip_pending;
> +	bool extended;
> +	enum pipe pipe;
> +	bool alternate_sync_async;
>  } data_t;
>  
>  static drmModeConnectorPtr find_connector_for_modeset(data_t *data)
> @@ -159,7 +163,7 @@ static void require_monotonic_timestamp(int fd)
>  		      "Monotonic timestamps not supported\n");
>  }
>  
> -static void test_async_flip(data_t *data, bool alternate_sync_async)
> +static void test_async_flip(data_t *data)
>  {
>  	int ret, frame;
>  	long long int fps;
> @@ -172,7 +176,7 @@ static void test_async_flip(data_t *data, bool alternate_sync_async)
>  	do {
>  		int flags = DRM_MODE_PAGE_FLIP_ASYNC | DRM_MODE_PAGE_FLIP_EVENT;
>  
> -		if (alternate_sync_async) {
> +		if (data->alternate_sync_async) {
>  			flags &= ~DRM_MODE_PAGE_FLIP_ASYNC;
>  
>  			ret = drmModePageFlip(data->drm_fd, data->crtc_id,
> @@ -216,7 +220,7 @@ static void test_async_flip(data_t *data, bool alternate_sync_async)
>  		gettimeofday(&end, NULL);
>  		timersub(&end, &start, &diff);
>  
> -		if (alternate_sync_async) {
> +		if (data->alternate_sync_async) {
>  			igt_assert_f(data->flip_interval < 1000.0 / (data->refresh_rate * MIN_FLIPS_PER_FRAME),
>  				     "Flip interval not significantly smaller than vblank interval\n"
>  				     "Flip interval: %lfms, Refresh Rate = %dHz, Threshold = %d\n",
> @@ -226,7 +230,7 @@ static void test_async_flip(data_t *data, bool alternate_sync_async)
>  		frame++;
>  	} while (diff.tv_sec < RUN_TIME);
>  
> -	if (!alternate_sync_async) {
> +	if (!data->alternate_sync_async) {
>  		fps = frame * 1000 / RUN_TIME;
>  		igt_assert_f((fps / 1000) > (data->refresh_rate * MIN_FLIPS_PER_FRAME),
>  			     "FPS should be significantly higher than the refresh rate\n");
> @@ -540,9 +544,45 @@ static void test_crc(data_t *data)
>  	igt_assert_lt(data->frame_count * 2, data->flip_count);
>  }
>  
> -igt_main
> +static void run_test(data_t *data, void (*test)(data_t *))
> +{
> +	igt_output_t *output;
> +	enum pipe pipe;
> +
> +	for_each_pipe(&data->display, pipe) {
> +		for_each_valid_output_on_pipe(&data->display, pipe, output) {
> +			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
> +				data->output = output;
> +				data->pipe = pipe;
> +				test(data);
> +			}
> +
> +			if (!data->extended)
> +				break;
> +		}
> +	}
> +}
> +
> +static int opt_handler(int opt, int opt_index, void *_data)
> +{
> +	data_t *data = _data;
> +
> +	switch (opt) {
> +	case 'e':
> +		data->extended = true;
> +		break;
> +	}
> +
> +	return IGT_OPT_HANDLER_SUCCESS;
> +}
> +
> +static const char help_str[] =
> +"  --e \t\tRun the extended tests\n";
> +
> +static data_t data;
> +
> +igt_main_args("e", NULL, help_str, opt_handler, &data)
>  {
> -	static data_t data;
>  	int i;
>  
>  	igt_fixture {
> @@ -561,28 +601,32 @@ igt_main
>  			test_init(&data);
>  
>  		igt_describe("Wait for page flip events in between successive asynchronous flips");
> -		igt_subtest("async-flip-with-page-flip-events")
> -			test_async_flip(&data, false);
> +		igt_subtest_with_dynamic("async-flip-with-page-flip-events") {
> +			data.alternate_sync_async = false;
> +			run_test(&data, test_async_flip);
> +		}
>  
>  		igt_describe("Alternate between sync and async flips");
> -		igt_subtest("alternate-sync-async-flip")
> -			test_async_flip(&data, true);
> +		igt_subtest_with_dynamic("alternate-sync-async-flip") {
> +			data.alternate_sync_async = true;
> +			run_test(&data, test_async_flip);
> +		}
>  
>  		igt_describe("Verify that the async flip timestamp does not coincide with either previous or next vblank");
> -		igt_subtest("test-time-stamp")
> -			test_timestamp(&data);
> +		igt_subtest_with_dynamic("test-time-stamp")
> +			run_test(&data, test_timestamp);
>  
>  		igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
> -		igt_subtest("test-cursor")
> -			test_cursor(&data);
> +		igt_subtest_with_dynamic("test-cursor")
> +			run_test(&data, test_cursor);
>  
>  		igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
> -		igt_subtest("invalid-async-flip")
> -			test_invalid(&data);
> +		igt_subtest_with_dynamic("invalid-async-flip")
> +			run_test(&data, test_invalid);
>  
>  		igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
> -		igt_subtest("crc")
> -			test_crc(&data);
> +		igt_subtest_with_dynamic("crc")
> +			run_test(&data, test_crc);
>  
>  		igt_fixture {
>  			for (i = 0; i < ARRAY_SIZE(data.bufs); i++)
> -- 
> 2.22.0
> 

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

* [igt-dev] ✗ Fi.CI.IGT: failure for tests/kms_async_flips: Cleanup (rev2)
  2022-05-31  5:36 [igt-dev] [PATCH i-g-t v6 0/2] tests/kms_async_flips: Cleanup Karthik B S
                   ` (2 preceding siblings ...)
  2022-05-31  7:19 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_async_flips: Cleanup (rev2) Patchwork
@ 2022-05-31  8:28 ` Patchwork
  3 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2022-05-31  8:28 UTC (permalink / raw)
  To: Karthik B S; +Cc: igt-dev

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

== Series Details ==

Series: tests/kms_async_flips: Cleanup (rev2)
URL   : https://patchwork.freedesktop.org/series/104493/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_11710_full -> IGTPW_7193_full
====================================================

Summary
-------

  **FAILURE**

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

Participating hosts (13 -> 10)
------------------------------

  Missing    (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_ctx_persistence@many-contexts:
    - shard-tglb:         [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-tglb2/igt@gem_ctx_persistence@many-contexts.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb2/igt@gem_ctx_persistence@many-contexts.html

  * igt@i915_pm_rpm@gem-evict-pwrite:
    - shard-iclb:         [PASS][3] -> [INCOMPLETE][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb3/igt@i915_pm_rpm@gem-evict-pwrite.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb4/igt@i915_pm_rpm@gem-evict-pwrite.html

  * {igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-a-hdmi-a-3} (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][5] +3 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-dg1-18/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-a-hdmi-a-3.html

  
#### Suppressed ####

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

  * igt@kms_flip@wf_vblank-ts-check-interruptible@b-edp1:
    - {shard-rkl}:        NOTRUN -> [FAIL][6] +1 similar issue
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_flip@wf_vblank-ts-check-interruptible@b-edp1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_11710_full and IGTPW_7193_full:

### New IGT tests (66) ###

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.31, 2.42] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [3.20, 3.27] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.19, 2.63] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-a-vga-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.16] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-b-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.28, 2.33] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-b-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [3.20, 3.26] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-b-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.18, 2.34] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-b-vga-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.14] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.31, 2.33] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [3.20, 3.25] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-c-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.16, 2.33] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-d-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [3.20] s

  * igt@kms_async_flips@alternate-sync-async-flip@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.16] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-dp-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.27] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [3.16, 3.21] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.64] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-a-vga-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.14] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-dp-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.27] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [3.20, 3.26] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.38] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-vga-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.13] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-dp-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.29] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [3.20, 3.27] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.36] s

  * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-d-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [3.20] s

  * igt@kms_async_flips@crc@pipe-a-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.38, 2.49] s

  * igt@kms_async_flips@crc@pipe-a-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [3.28, 3.33] s

  * igt@kms_async_flips@crc@pipe-a-hdmi-a-1:
    - Statuses : 3 pass(s)
    - Exec time: [2.17, 2.65] s

  * igt@kms_async_flips@crc@pipe-a-vga-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.23] s

  * igt@kms_async_flips@crc@pipe-b-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.38, 2.41] s

  * igt@kms_async_flips@crc@pipe-b-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [3.26, 3.32] s

  * igt@kms_async_flips@crc@pipe-b-hdmi-a-1:
    - Statuses : 3 pass(s)
    - Exec time: [2.16, 2.44] s

  * igt@kms_async_flips@crc@pipe-b-vga-1:
    - Statuses : 1 pass(s)
    - Exec time: [2.23] s

  * igt@kms_async_flips@crc@pipe-c-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.38, 2.40] s

  * igt@kms_async_flips@crc@pipe-c-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [3.27, 3.33] s

  * igt@kms_async_flips@crc@pipe-c-hdmi-a-1:
    - Statuses : 3 pass(s)
    - Exec time: [2.17, 2.39] s

  * igt@kms_async_flips@crc@pipe-d-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [3.26] s

  * igt@kms_async_flips@crc@pipe-d-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [2.16, 2.25] s

  * igt@kms_async_flips@invalid-async-flip@pipe-a-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.27, 0.42] s

  * igt@kms_async_flips@invalid-async-flip@pipe-a-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [1.21, 1.24] s

  * igt@kms_async_flips@invalid-async-flip@pipe-a-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.14, 0.73] s

  * igt@kms_async_flips@invalid-async-flip@pipe-b-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.24, 0.31] s

  * igt@kms_async_flips@invalid-async-flip@pipe-b-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [1.22, 1.25] s

  * igt@kms_async_flips@invalid-async-flip@pipe-b-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.35] s

  * igt@kms_async_flips@invalid-async-flip@pipe-c-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.24, 0.31] s

  * igt@kms_async_flips@invalid-async-flip@pipe-c-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [1.21, 1.22] s

  * igt@kms_async_flips@invalid-async-flip@pipe-c-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.38] s

  * igt@kms_async_flips@invalid-async-flip@pipe-d-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.22] s

  * igt@kms_async_flips@invalid-async-flip@pipe-d-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.10] s

  * igt@kms_async_flips@test-time-stamp@pipe-a-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.30, 0.44] s

  * igt@kms_async_flips@test-time-stamp@pipe-a-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [1.22, 1.28] s

  * igt@kms_async_flips@test-time-stamp@pipe-a-hdmi-a-1:
    - Statuses : 3 pass(s)
    - Exec time: [0.14, 0.70] s

  * igt@kms_async_flips@test-time-stamp@pipe-a-vga-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.17] s

  * igt@kms_async_flips@test-time-stamp@pipe-b-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.28, 0.35] s

  * igt@kms_async_flips@test-time-stamp@pipe-b-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [1.21, 1.28] s

  * igt@kms_async_flips@test-time-stamp@pipe-b-hdmi-a-1:
    - Statuses : 3 pass(s)
    - Exec time: [0.12, 0.38] s

  * igt@kms_async_flips@test-time-stamp@pipe-b-vga-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.17] s

  * igt@kms_async_flips@test-time-stamp@pipe-c-dp-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.28, 0.34] s

  * igt@kms_async_flips@test-time-stamp@pipe-c-edp-1:
    - Statuses : 2 pass(s)
    - Exec time: [1.22, 1.28] s

  * igt@kms_async_flips@test-time-stamp@pipe-c-hdmi-a-1:
    - Statuses : 3 pass(s)
    - Exec time: [0.12, 0.41] s

  * igt@kms_async_flips@test-time-stamp@pipe-d-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [1.22] s

  * igt@kms_async_flips@test-time-stamp@pipe-d-hdmi-a-1:
    - Statuses : 2 pass(s)
    - Exec time: [0.11, 0.17] s

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-a-hdmi-a-3:
    - Statuses : 1 skip(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-b-hdmi-a-3:
    - Statuses : 1 skip(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-hdmi-a-3:
    - Statuses : 1 skip(s)
    - Exec time: [0.03] s

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-d-hdmi-a-3:
    - Statuses : 1 skip(s)
    - Exec time: [0.03] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_persistence@processes:
    - shard-snb:          NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#1099])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-snb5/igt@gem_ctx_persistence@processes.html

  * igt@gem_eio@in-flight-suspend:
    - shard-apl:          [PASS][8] -> [DMESG-WARN][9] ([i915#180])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl3/igt@gem_eio@in-flight-suspend.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl6/igt@gem_eio@in-flight-suspend.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - shard-glk:          [PASS][10] -> [FAIL][11] ([i915#2842]) +2 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-glk2/igt@gem_exec_fair@basic-none@vcs0.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk2/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-none@vecs0:
    - shard-apl:          [PASS][12] -> [FAIL][13] ([i915#2842]) +1 similar issue
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl8/igt@gem_exec_fair@basic-none@vecs0.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl7/igt@gem_exec_fair@basic-none@vecs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-iclb:         [PASS][14] -> [FAIL][15] ([i915#2842])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb5/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb2/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
    - shard-iclb:         NOTRUN -> [FAIL][16] ([i915#2842])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb1/igt@gem_exec_fair@basic-pace@vcs1.html

  * igt@gem_exec_fair@basic-pace@vecs0:
    - shard-kbl:          [PASS][17] -> [FAIL][18] ([i915#2842]) +4 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-kbl7/igt@gem_exec_fair@basic-pace@vecs0.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-kbl6/igt@gem_exec_fair@basic-pace@vecs0.html

  * igt@gem_exec_flush@basic-batch-kernel-default-wb:
    - shard-snb:          [PASS][19] -> [SKIP][20] ([fdo#109271]) +4 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-snb7/igt@gem_exec_flush@basic-batch-kernel-default-wb.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-snb6/igt@gem_exec_flush@basic-batch-kernel-default-wb.html

  * igt@gem_lmem_swapping@parallel-random-verify:
    - shard-apl:          NOTRUN -> [SKIP][21] ([fdo#109271] / [i915#4613]) +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl4/igt@gem_lmem_swapping@parallel-random-verify.html

  * igt@gen7_exec_parse@oacontrol-tracking:
    - shard-snb:          NOTRUN -> [SKIP][22] ([fdo#109271]) +110 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-snb6/igt@gen7_exec_parse@oacontrol-tracking.html
    - shard-tglb:         NOTRUN -> [SKIP][23] ([fdo#109289])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb6/igt@gen7_exec_parse@oacontrol-tracking.html
    - shard-iclb:         NOTRUN -> [SKIP][24] ([fdo#109289])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb7/igt@gen7_exec_parse@oacontrol-tracking.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-glk:          [PASS][25] -> [DMESG-WARN][26] ([i915#5566] / [i915#716]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-glk5/igt@gen9_exec_parse@allowed-all.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk4/igt@gen9_exec_parse@allowed-all.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [PASS][27] -> [DMESG-WARN][28] ([i915#5566] / [i915#716])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl7/igt@gen9_exec_parse@allowed-single.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl6/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][29] -> [FAIL][30] ([i915#454])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb1/igt@i915_pm_dc@dc6-psr.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb3/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [PASS][31] -> [SKIP][32] ([fdo#109271])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl3/igt@i915_pm_dc@dc9-dpms.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl2/igt@i915_pm_dc@dc9-dpms.html

  * igt@kms_big_fb@4-tiled-8bpp-rotate-90:
    - shard-apl:          NOTRUN -> [SKIP][33] ([fdo#109271]) +56 similar issues
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl8/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
    - shard-tglb:         NOTRUN -> [SKIP][34] ([i915#5286]) +1 similar issue
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb2/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html
    - shard-iclb:         NOTRUN -> [SKIP][35] ([i915#5286]) +1 similar issue
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb3/igt@kms_big_fb@4-tiled-8bpp-rotate-90.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip:
    - shard-kbl:          NOTRUN -> [SKIP][36] ([fdo#109271]) +24 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-kbl7/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html
    - shard-tglb:         NOTRUN -> [SKIP][37] ([fdo#111615])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb1/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0-hflip.html

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][38] ([fdo#109271] / [i915#3886])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk6/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
    - shard-iclb:         NOTRUN -> [SKIP][39] ([fdo#109278] / [i915#3886])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb6/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][40] ([fdo#109271] / [i915#3886]) +4 similar issues
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl1/igt@kms_ccs@pipe-c-crc-primary-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][41] ([i915#3689]) +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb1/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs.html
    - shard-glk:          NOTRUN -> [SKIP][42] ([fdo#109271]) +18 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk6/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_ccs.html

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - shard-iclb:         NOTRUN -> [SKIP][43] ([fdo#109278]) +3 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb7/igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_chamelium@hdmi-hpd-storm:
    - shard-tglb:         NOTRUN -> [SKIP][44] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb1/igt@kms_chamelium@hdmi-hpd-storm.html
    - shard-glk:          NOTRUN -> [SKIP][45] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk3/igt@kms_chamelium@hdmi-hpd-storm.html
    - shard-iclb:         NOTRUN -> [SKIP][46] ([fdo#109284] / [fdo#111827]) +2 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb7/igt@kms_chamelium@hdmi-hpd-storm.html
    - shard-kbl:          NOTRUN -> [SKIP][47] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-kbl7/igt@kms_chamelium@hdmi-hpd-storm.html
    - shard-snb:          NOTRUN -> [SKIP][48] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-snb6/igt@kms_chamelium@hdmi-hpd-storm.html

  * igt@kms_chamelium@vga-hpd-without-ddc:
    - shard-apl:          NOTRUN -> [SKIP][49] ([fdo#109271] / [fdo#111827]) +4 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl3/igt@kms_chamelium@vga-hpd-without-ddc.html

  * igt@kms_cursor_crc@pipe-a-cursor-512x170-random:
    - shard-tglb:         NOTRUN -> [SKIP][50] ([fdo#109279] / [i915#3359]) +1 similar issue
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb1/igt@kms_cursor_crc@pipe-a-cursor-512x170-random.html
    - shard-iclb:         NOTRUN -> [SKIP][51] ([fdo#109278] / [fdo#109279])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb3/igt@kms_cursor_crc@pipe-a-cursor-512x170-random.html

  * igt@kms_cursor_crc@pipe-a-cursor-suspend:
    - shard-apl:          NOTRUN -> [DMESG-WARN][52] ([i915#180])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl2/igt@kms_cursor_crc@pipe-a-cursor-suspend.html

  * igt@kms_cursor_crc@pipe-b-cursor-512x170-rapid-movement:
    - shard-tglb:         NOTRUN -> [SKIP][53] ([i915#3359])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb2/igt@kms_cursor_crc@pipe-b-cursor-512x170-rapid-movement.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic:
    - shard-tglb:         NOTRUN -> [SKIP][54] ([fdo#109274] / [fdo#111825]) +2 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb5/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic.html
    - shard-iclb:         NOTRUN -> [SKIP][55] ([fdo#109274] / [fdo#109278]) +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb5/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic.html

  * igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-4tiled:
    - shard-tglb:         NOTRUN -> [SKIP][56] ([i915#5287])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb6/igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-4tiled.html
    - shard-iclb:         NOTRUN -> [SKIP][57] ([i915#5287])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb4/igt@kms_draw_crc@draw-method-xrgb8888-mmap-cpu-4tiled.html

  * igt@kms_flip@2x-flip-vs-suspend-interruptible:
    - shard-iclb:         NOTRUN -> [SKIP][58] ([fdo#109274])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb8/igt@kms_flip@2x-flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt:
    - shard-iclb:         NOTRUN -> [SKIP][59] ([fdo#109280]) +6 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
    - shard-tglb:         NOTRUN -> [SKIP][60] ([fdo#109280] / [fdo#111825]) +6 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb6/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-d:
    - shard-apl:          NOTRUN -> [SKIP][61] ([fdo#109271] / [i915#533]) +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl7/igt@kms_pipe_crc_basic@read-crc-pipe-d.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence:
    - shard-kbl:          NOTRUN -> [SKIP][62] ([fdo#109271] / [i915#533])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-kbl3/igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence.html
    - shard-glk:          NOTRUN -> [SKIP][63] ([fdo#109271] / [i915#533])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk1/igt@kms_pipe_crc_basic@read-crc-pipe-d-frame-sequence.html

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

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-tglb:         NOTRUN -> [SKIP][65] ([i915#3536])
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb6/igt@kms_plane_lowres@pipe-a-tiling-x.html
    - shard-iclb:         NOTRUN -> [SKIP][66] ([i915#3536])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
    - shard-apl:          NOTRUN -> [SKIP][67] ([fdo#109271] / [i915#658]) +2 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl7/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@overlay-plane-update-continuous-sf:
    - shard-tglb:         NOTRUN -> [SKIP][68] ([i915#2920])
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb2/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html
    - shard-glk:          NOTRUN -> [SKIP][69] ([fdo#109271] / [i915#658])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk3/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html
    - shard-iclb:         NOTRUN -> [SKIP][70] ([i915#2920])
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html
    - shard-kbl:          NOTRUN -> [SKIP][71] ([fdo#109271] / [i915#658])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-kbl6/igt@kms_psr2_sf@overlay-plane-update-continuous-sf.html

  * igt@kms_psr@psr2_cursor_plane_move:
    - shard-iclb:         [PASS][72] -> [SKIP][73] ([fdo#109441]) +1 similar issue
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb1/igt@kms_psr@psr2_cursor_plane_move.html

  * igt@kms_writeback@writeback-invalid-parameters:
    - shard-tglb:         NOTRUN -> [SKIP][74] ([i915#2437])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb5/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-glk:          NOTRUN -> [SKIP][75] ([fdo#109271] / [i915#2437])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk7/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-iclb:         NOTRUN -> [SKIP][76] ([i915#2437])
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb6/igt@kms_writeback@writeback-invalid-parameters.html
    - shard-kbl:          NOTRUN -> [SKIP][77] ([fdo#109271] / [i915#2437])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-kbl6/igt@kms_writeback@writeback-invalid-parameters.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-apl:          NOTRUN -> [SKIP][78] ([fdo#109271] / [i915#2437]) +1 similar issue
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl8/igt@kms_writeback@writeback-pixel-formats.html

  * igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name:
    - shard-tglb:         NOTRUN -> [SKIP][79] ([fdo#109291])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb3/igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name.html
    - shard-iclb:         NOTRUN -> [SKIP][80] ([fdo#109291])
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb2/igt@prime_nv_api@nv_i915_reimport_twice_check_flink_name.html

  * igt@sysfs_clients@busy:
    - shard-apl:          NOTRUN -> [SKIP][81] ([fdo#109271] / [i915#2994]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl3/igt@sysfs_clients@busy.html

  * igt@sysfs_clients@split-25:
    - shard-iclb:         NOTRUN -> [SKIP][82] ([i915#2994])
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb3/igt@sysfs_clients@split-25.html
    - shard-kbl:          NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#2994])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-kbl4/igt@sysfs_clients@split-25.html
    - shard-tglb:         NOTRUN -> [SKIP][84] ([i915#2994])
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb7/igt@sysfs_clients@split-25.html
    - shard-glk:          NOTRUN -> [SKIP][85] ([fdo#109271] / [i915#2994])
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk3/igt@sysfs_clients@split-25.html

  
#### Possible fixes ####

  * igt@fbdev@nullptr:
    - {shard-rkl}:        [SKIP][86] ([i915#2582]) -> [PASS][87]
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-2/igt@fbdev@nullptr.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-1/igt@fbdev@nullptr.html

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         [FAIL][88] ([i915#5784]) -> [PASS][89]
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-tglb1/igt@gem_eio@unwedge-stress.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb7/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@parallel-bb-first:
    - shard-iclb:         [SKIP][90] ([i915#4525]) -> [PASS][91] +1 similar issue
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb7/igt@gem_exec_balancer@parallel-bb-first.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb1/igt@gem_exec_balancer@parallel-bb-first.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [FAIL][92] ([i915#2842]) -> [PASS][93] +1 similar issue
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-glk5/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-kbl:          [FAIL][94] ([i915#2842]) -> [PASS][95]
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-kbl7/igt@gem_exec_fair@basic-pace@vcs0.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-kbl6/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_exec_flush@basic-uc-pro-default:
    - shard-snb:          [SKIP][96] ([fdo#109271]) -> [PASS][97] +2 similar issues
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-snb6/igt@gem_exec_flush@basic-uc-pro-default.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-snb5/igt@gem_exec_flush@basic-uc-pro-default.html

  * igt@gem_exec_whisper@basic-queues-all:
    - shard-glk:          [DMESG-WARN][98] ([i915#118]) -> [PASS][99]
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-glk2/igt@gem_exec_whisper@basic-queues-all.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk8/igt@gem_exec_whisper@basic-queues-all.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [SKIP][100] ([i915#2190]) -> [PASS][101]
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-tglb6/igt@gem_huc_copy@huc-copy.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglb5/igt@gem_huc_copy@huc-copy.html

  * igt@i915_pm_backlight@basic-brightness:
    - {shard-rkl}:        [SKIP][102] ([i915#3012]) -> [PASS][103]
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-4/igt@i915_pm_backlight@basic-brightness.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-iclb:         [SKIP][104] ([i915#4281]) -> [PASS][105]
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb1/igt@i915_pm_dc@dc9-dpms.html
    - {shard-tglu}:       [SKIP][106] ([i915#4281]) -> [PASS][107]
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-tglu-5/igt@i915_pm_dc@dc9-dpms.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-tglu-2/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a:
    - {shard-dg1}:        [SKIP][108] ([i915#1937]) -> [PASS][109]
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-dg1-18/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-dg1-13/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html

  * igt@i915_pm_rpm@fences:
    - {shard-rkl}:        [SKIP][110] ([i915#1849]) -> [PASS][111]
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-2/igt@i915_pm_rpm@fences.html
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@i915_pm_rpm@fences.html

  * igt@i915_pm_rpm@modeset-lpsp:
    - {shard-dg1}:        [SKIP][112] ([i915#1397]) -> [PASS][113]
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-dg1-18/igt@i915_pm_rpm@modeset-lpsp.html
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-dg1-16/igt@i915_pm_rpm@modeset-lpsp.html

  * igt@i915_selftest@live@hangcheck:
    - shard-snb:          [INCOMPLETE][114] ([i915#3921]) -> [PASS][115]
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-snb5/igt@i915_selftest@live@hangcheck.html
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-snb7/igt@i915_selftest@live@hangcheck.html

  * igt@i915_suspend@sysfs-reader:
    - {shard-dg1}:        [SKIP][116] ([i915#2575]) -> [PASS][117] +14 similar issues
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-dg1-12/igt@i915_suspend@sysfs-reader.html
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-dg1-16/igt@i915_suspend@sysfs-reader.html

  * igt@kms_big_fb@linear-32bpp-rotate-0:
    - shard-glk:          [DMESG-FAIL][118] ([i915#118] / [i915#1888]) -> [PASS][119]
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-glk1/igt@kms_big_fb@linear-32bpp-rotate-0.html
   [119]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-glk4/igt@kms_big_fb@linear-32bpp-rotate-0.html

  * igt@kms_big_fb@x-tiled-32bpp-rotate-0:
    - {shard-rkl}:        [SKIP][120] ([i915#1845] / [i915#4098]) -> [PASS][121] +23 similar issues
   [120]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-5/igt@kms_big_fb@x-tiled-32bpp-rotate-0.html
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_big_fb@x-tiled-32bpp-rotate-0.html

  * igt@kms_cursor_crc@pipe-b-cursor-64x21-rapid-movement:
    - {shard-rkl}:        [SKIP][122] ([fdo#112022] / [i915#4070]) -> [PASS][123] +6 similar issues
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-1/igt@kms_cursor_crc@pipe-b-cursor-64x21-rapid-movement.html
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_cursor_crc@pipe-b-cursor-64x21-rapid-movement.html

  * igt@kms_cursor_legacy@cursor-vs-flip-toggle:
    - {shard-rkl}:        [SKIP][124] ([fdo#111825] / [i915#4070]) -> [PASS][125] +6 similar issues
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-1/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_cursor_legacy@cursor-vs-flip-toggle.html

  * igt@kms_cursor_legacy@pipe-c-single-move:
    - {shard-rkl}:        [SKIP][126] ([i915#4070]) -> [PASS][127] +1 similar issue
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-6/igt@kms_cursor_legacy@pipe-c-single-move.html
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-5/igt@kms_cursor_legacy@pipe-c-single-move.html

  * igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-xtiled:
    - {shard-rkl}:        [SKIP][128] ([fdo#111314] / [i915#4098] / [i915#4369]) -> [PASS][129] +3 similar issues
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-1/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-xtiled.html
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_draw_crc@draw-method-xrgb8888-mmap-gtt-xtiled.html

  * igt@kms_fbcon_fbt@fbc-suspend:
    - shard-apl:          [INCOMPLETE][130] ([i915#180] / [i915#1982]) -> [PASS][131]
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl6/igt@kms_fbcon_fbt@fbc-suspend.html
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl7/igt@kms_fbcon_fbt@fbc-suspend.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling:
    - {shard-rkl}:        [SKIP][132] ([i915#3701]) -> [PASS][133] +1 similar issue
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt:
    - {shard-rkl}:        [SKIP][134] ([i915#1849] / [i915#4098]) -> [PASS][135] +23 similar issues
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-mmap-gtt.html

  * igt@kms_invalid_mode@uint-max-clock:
    - {shard-rkl}:        [SKIP][136] ([i915#4278]) -> [PASS][137] +1 similar issue
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-5/igt@kms_invalid_mode@uint-max-clock.html
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_invalid_mode@uint-max-clock.html

  * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-mid:
    - {shard-rkl}:        [SKIP][138] ([i915#1849] / [i915#4070] / [i915#4098]) -> [PASS][139] +1 similar issue
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-5/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-mid.html
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_plane_alpha_blend@pipe-b-constant-alpha-mid.html

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-x:
    - {shard-rkl}:        [SKIP][140] ([i915#3558] / [i915#4070]) -> [PASS][141]
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-1/igt@kms_plane_multiple@atomic-pipe-b-tiling-x.html
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_plane_multiple@atomic-pipe-b-tiling-x.html

  * igt@kms_psr@cursor_blt:
    - {shard-rkl}:        [SKIP][142] ([i915#1072]) -> [PASS][143] +2 similar issues
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-1/igt@kms_psr@cursor_blt.html
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@kms_psr@cursor_blt.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [SKIP][144] ([fdo#109441]) -> [PASS][145] +1 similar issue
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb1/igt@kms_psr@psr2_sprite_plane_move.html
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend:
    - shard-snb:          [DMESG-WARN][146] ([i915#5090]) -> [PASS][147]
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-snb4/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-snb6/igt@kms_vblank@pipe-a-ts-continuation-dpms-suspend.html

  * igt@perf@polling-small-buf:
    - {shard-rkl}:        [FAIL][148] ([i915#1722]) -> [PASS][149]
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-rkl-2/igt@perf@polling-small-buf.html
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-rkl-6/igt@perf@polling-small-buf.html

  * igt@perf_pmu@cpu-hotplug:
    - shard-snb:          [DMESG-WARN][150] -> [PASS][151]
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-snb4/igt@perf_pmu@cpu-hotplug.html
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-snb7/igt@perf_pmu@cpu-hotplug.html

  * igt@perf_pmu@rc6-suspend:
    - shard-apl:          [DMESG-WARN][152] ([i915#180]) -> [PASS][153]
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl6/igt@perf_pmu@rc6-suspend.html
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl1/igt@perf_pmu@rc6-suspend.html

  
#### Warnings ####

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-iclb:         [FAIL][154] -> [SKIP][155] ([i915#4525])
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb1/igt@gem_exec_balancer@parallel-ordering.html
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb3/igt@gem_exec_balancer@parallel-ordering.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf:
    - shard-iclb:         [SKIP][156] ([i915#658]) -> [SKIP][157] ([i915#2920])
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb5/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf:
    - shard-iclb:         [SKIP][158] ([i915#2920]) -> [SKIP][159] ([i915#658])
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf.html
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb6/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - shard-iclb:         [SKIP][160] ([i915#2920]) -> [SKIP][161] ([fdo#111068] / [i915#658])
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb7/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html

  * igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area:
    - shard-iclb:         [SKIP][162] ([fdo#111068] / [i915#658]) -> [SKIP][163] ([i915#2920])
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-iclb4/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
   [163]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-iclb2/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html

  * igt@runner@aborted:
    - shard-apl:          ([FAIL][164], [FAIL][165], [FAIL][166], [FAIL][167]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257]) -> ([FAIL][168], [FAIL][169], [FAIL][170], [FAIL][171], [FAIL][172]) ([fdo#109271] / [i915#3002] / [i915#4312] / [i915#5257])
   [164]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl3/igt@runner@aborted.html
   [165]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl6/igt@runner@aborted.html
   [166]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl6/igt@runner@aborted.html
   [167]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11710/shard-apl1/igt@runner@aborted.html
   [168]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl2/igt@runner@aborted.html
   [169]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl2/igt@runner@aborted.html
   [170]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl6/igt@runner@aborted.html
   [171]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl6/igt@runner@aborted.html
   [172]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/shard-apl6/igt@runner@aborted.html

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

  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111314]: https://bugs.freedesktop.org/show_bug.cgi?id=111314
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112022]: https://bugs.freedesktop.org/show_bug.cgi?id=112022
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#1149]: https://gitlab.freedesktop.org/drm/intel/issues/1149
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
  [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2029]: https://gitlab.freedesktop.org/drm/intel/issues/2029
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2849]: https://gitlab.freedesktop.org/drm/intel/issues/2849
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
  [i915#3002]: https://gitlab.freedesktop.org/drm/intel/issues/3002
  [i915#3012]: https://gitlab.freedesktop.org/drm/intel/issues/3012
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3319]: https://gitlab.freedesktop.org/drm/intel/issues/3319
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3464]: https://gitlab.freedesktop.org/drm/intel/issues/3464
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3701]: https://gitlab.freedesktop.org/drm/intel/issues/3701
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3810]: https://gitlab.freedesktop.org/drm/intel/issues/3810
  [i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3921]: https://gitlab.freedesktop.org/drm/intel/issues/3921
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#4016]: https://gitlab.freedesktop.org/drm/intel/issues/4016
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4278]: https://gitlab.freedesktop.org/drm/intel/issues/4278
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
  [i915#4369]: https://gitlab.freedesktop.org/drm/intel/issues/4369
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4842]: https://gitlab.freedesktop.org/drm/intel/issues/4842
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4853]: https://gitlab.freedesktop.org/drm/intel/issues/4853
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4883]: https://gitlab.freedesktop.org/drm/intel/issues/4883
  [i915#4893]: https://gitlab.freedesktop.org/drm/intel/issues/4893
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
  [i915#5030]: https://gitlab.freedesktop.org/drm/intel/issues/5030
  [i915#5090]: https://gitlab.freedesktop.org/drm/intel/issues/5090
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6011]: https://gitlab.freedesktop.org/drm/intel/issues/6011
  [i915#6079]: https://gitlab.freedesktop.org/drm/intel/issues/6079
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6500 -> IGTPW_7193
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_11710: d2798c4b9213f0d14080bdeef58e692a2c01a0bf @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7193: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7193/index.html
  IGT_6500: de4c6076a0f38ad3522b08931748f59d59a925ce @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

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

* Re: [igt-dev] [PATCH i-g-t v6 2/2] tests/kms_async_flips: Test Cleanup
  2022-05-31  5:36 ` [igt-dev] [PATCH i-g-t v6 2/2] tests/kms_async_flips: Test Cleanup Karthik B S
@ 2022-05-31  8:31   ` Kamil Konieczny
  2022-05-31  8:53     ` Karthik B S
  0 siblings, 1 reply; 9+ messages in thread
From: Kamil Konieczny @ 2022-05-31  8:31 UTC (permalink / raw)
  To: igt-dev

Hi Karthik,

On 2022-05-31 at 11:06:48 +0530, Karthik B S wrote:
> -Replace drm function call with existing library functions
- ^

Remove '-' from beggining.

> -igt_display_reset() before all subtests
- ^
Same here.

You make a little more than in commit description, imho subject
word "Cleanup" should be "refactoring". I do not know much about
kms itself, so I will not comment on validity of your changes,
only some small nits below. 

> 
> v2: -Move conversion to dynamic subtest to a separate patch (Bhanu)
>     -Use igt_output_get_mode to get default mode (Bhanu)
>     -Add 'is_atomic' check before igt_display_commit2 (Bhanu)
> 
> v3: -Move test_init after the checks to skip subtest (Bhanu)
>     -Update the logic to call make_fb() in test_init()
> 
> v4: -Move patch after patch to convert tests to dynamic to avoid code
>      duplicaton. (Bhanu)
> 
> v5: -Update commit message. (Bhanu)
>     -Move skip checks in the dynamic subtests before the start of the
>      subtest to optimize the test. (Bhanu)
>     -Close drm_fd at the end of the subtest.
> 
> v6: -Fix identation for braces. (Andre)
> 
> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
> ---
>  tests/kms_async_flips.c | 169 +++++++++++++++++++++-------------------
>  1 file changed, 91 insertions(+), 78 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 8b545b77..4a0527dc 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -50,7 +50,6 @@ typedef struct {
>  	uint32_t refresh_rate;
>  	struct igt_fb bufs[4];
>  	igt_display_t display;
> -	drmModeConnectorPtr connector;
>  	igt_output_t *output;
>  	unsigned long flip_timestamp_us;
>  	double flip_interval;
> @@ -64,22 +63,6 @@ typedef struct {
>  	bool alternate_sync_async;
>  } data_t;
>  
> -static drmModeConnectorPtr find_connector_for_modeset(data_t *data)
> -{
> -	igt_output_t *output;
> -	drmModeConnectorPtr ret = NULL;
> -
> -	for_each_connected_output(&data->display, output) {
> -		if (output->config.connector->count_modes > 0) {
> -			ret = output->config.connector;
> -			break;
> -		}
> -	}
> -
> -	igt_assert_f(ret, "Connector NOT found\n");
> -	return ret;
> -}
> -
>  static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
>  			 unsigned int tv_usec, void *_data)
>  {
> @@ -133,15 +116,11 @@ static void wait_flip_event(data_t *data)
>  }
>  
>  static void make_fb(data_t *data, struct igt_fb *fb,
> -		    drmModeConnectorPtr connector, int index)
> +		    uint32_t width, uint32_t height, int index)
>  {
> -	uint32_t width, height;
>  	int rec_width;
>  	cairo_t *cr;
>  
> -	width = connector->modes[0].hdisplay;
> -	height = connector->modes[0].vdisplay;
> -
>  	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
>  
>  	if (is_i915_device(data->drm_fd)) {
> @@ -163,13 +142,52 @@ static void require_monotonic_timestamp(int fd)
>  		      "Monotonic timestamps not supported\n");
>  }
>  
> +static void test_init(data_t *data)
> +{
> +	int i;
> +	uint32_t width, height;
> +	igt_plane_t *plane;
> +	static uint32_t prev_output_id;
> +	drmModeModeInfo *mode;
> +
> +	igt_display_reset(&data->display);
> +	igt_display_commit(&data->display);
> +
> +	mode = igt_output_get_mode(data->output);
> +	width = mode->hdisplay;
> +	height = mode->vdisplay;
> +
> +	data->crtc_id = data->display.pipes[data->pipe].crtc_id;
> +	data->refresh_rate = mode->vrefresh;
> +
> +	igt_output_set_pipe(data->output, data->pipe);
> +	plane = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
> +
> +	if (prev_output_id != data->output->id) {
> +		prev_output_id = data->output->id;
> +
> +		if (data->bufs[0].fb_id) {
> +			for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
> +				igt_remove_fb(data->drm_fd, &data->bufs[i]);
> +		}
> +
> +		for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
> +			make_fb(data, &data->bufs[i], width, height, i);
> +	}
> +
> +	igt_plane_set_fb(plane, &data->bufs[0]);
> +	igt_plane_set_size(plane, width, height);
> +
> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +}
> +
>  static void test_async_flip(data_t *data)
>  {
>  	int ret, frame;
>  	long long int fps;
>  	struct timeval start, end, diff;
>  
> -	require_monotonic_timestamp(data->drm_fd);
> +	test_init(data);
>  
>  	gettimeofday(&start, NULL);
>  	frame = 1;
> @@ -262,7 +280,7 @@ static void test_timestamp(data_t *data)
>  	unsigned int seq, seq1;
>  	int ret;
>  
> -	require_monotonic_timestamp(data->drm_fd);
> +	test_init(data);
>  
>  	/*
>  	 * In older platforms(<= gen10), async address update bit is double buffered.
> @@ -321,6 +339,8 @@ static void test_cursor(data_t *data)
>  	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &width));
>  	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &height));
>  
> +	test_init(data);
> +
>  	igt_create_color_fb(data->drm_fd, width, height, DRM_FORMAT_ARGB8888,
>  			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
>  
> @@ -355,15 +375,13 @@ static void test_invalid(data_t *data)
>  	int ret;
>  	uint32_t width, height;
>  	struct igt_fb fb;
> +	drmModeModeInfo *mode;
>  
> -	/* TODO: support more vendors */
> -	igt_require(is_i915_device(data->drm_fd));
> +	mode = igt_output_get_mode(data->output);
> +	width = mode->hdisplay;
> +	height = mode->vdisplay;
>  
> -	width = data->connector->modes[0].hdisplay;
> -	height = data->connector->modes[0].vdisplay;
> -
> -	igt_require(igt_display_has_format_mod(&data->display, DRM_FORMAT_XRGB8888,
> -					       I915_FORMAT_MOD_Y_TILED));
> +	test_init(data);
>  
>  	igt_create_fb(data->drm_fd, width, height, DRM_FORMAT_XRGB8888,
>  		      I915_FORMAT_MOD_Y_TILED, &fb);
> @@ -379,33 +397,6 @@ static void test_invalid(data_t *data)
>  	igt_remove_fb(data->drm_fd, &fb);
>  }
>  
> -static void test_init(data_t *data)
> -{
> -	drmModeResPtr res;
> -	int i, ret;
> -
> -	res = drmModeGetResources(data->drm_fd);
> -	igt_assert(res);
> -
> -	kmstest_unset_all_crtcs(data->drm_fd, res);
> -
> -	data->connector = find_connector_for_modeset(data);
> -	data->crtc_id = kmstest_find_crtc_for_connector(data->drm_fd,
> -							res, data->connector, 0);
> -
> -	data->refresh_rate = data->connector->modes[0].vrefresh;
> -
> -	for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
> -		make_fb(data, &data->bufs[i], data->connector, i);
> -
> -	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[0].fb_id, 0, 0,
> -			     &data->connector->connector_id, 1, &data->connector->modes[0]);
> -
> -	igt_assert(ret == 0);
> -
> -	drmModeFreeResources(res);
> -}
> -
>  static void queue_vblank(data_t *data)
>  {
>  	int pipe = kmstest_get_pipe_from_crtc_id(data->drm_fd, data->crtc_id);
> @@ -491,13 +482,12 @@ static void test_crc(data_t *data)
>  	cairo_t *cr;
>  	int ret;
>  
> -	/* Devices without CRC can't run this test */
> -	igt_require_pipe_crc(data->drm_fd);
> -
>  	data->flip_count = 0;
>  	data->frame_count = 0;
>  	data->flip_pending = false;
>  
> +	test_init(data);
> +
>  	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
>  	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
>  
> @@ -505,7 +495,8 @@ static void test_crc(data_t *data)
>  	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
>  
>  	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
> -			     &data->connector->connector_id, 1, &data->connector->modes[0]);
> +			     &data->output->config.connector->connector_id, 1,
> +			     &data->output->config.connector->modes[0]);
>  	igt_assert_eq(ret, 0);
>  
>  	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
> @@ -577,7 +568,7 @@ static int opt_handler(int opt, int opt_index, void *_data)
>  }
>  
>  static const char help_str[] =
> -"  --e \t\tRun the extended tests\n";
> +	"  --e \t\tRun the extended tests\n";

This should be done correctly in other patch.

>  
>  static data_t data;
>  
> @@ -598,7 +589,7 @@ igt_main_args("e", NULL, help_str, opt_handler, &data)
>  	igt_describe("Verify the async flip functionality and the fps during async flips");
>  	igt_subtest_group {
>  		igt_fixture
> -			test_init(&data);
> +			require_monotonic_timestamp(data.drm_fd);

This changed logic of test ?

--
Kamil

>  
>  		igt_describe("Wait for page flip events in between successive asynchronous flips");
>  		igt_subtest_with_dynamic("async-flip-with-page-flip-events") {
> @@ -615,25 +606,47 @@ igt_main_args("e", NULL, help_str, opt_handler, &data)
>  		igt_describe("Verify that the async flip timestamp does not coincide with either previous or next vblank");
>  		igt_subtest_with_dynamic("test-time-stamp")
>  			run_test(&data, test_timestamp);
> +	}
>  
> -		igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
> -		igt_subtest_with_dynamic("test-cursor")
> -			run_test(&data, test_cursor);
> +	igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
> +	igt_subtest_with_dynamic("test-cursor") {
> +		/*
> +		 * Intel's PSR2 selective fetch adds other planes to state when
> +		 * necessary, causing the async flip to fail because async flip is not
> +		 * supported in cursor plane.
> +		 */
> +		igt_skip_on_f(i915_psr2_selective_fetch_check(data.drm_fd),
> +			      "PSR2 sel fetch causes cursor to be added to primary plane " \
> +			      "pages flips and async flip is not supported in cursor\n");
> +
> +		run_test(&data, test_cursor);
> +	}
>  
> -		igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
> -		igt_subtest_with_dynamic("invalid-async-flip")
> -			run_test(&data, test_invalid);
> +	igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
> +	igt_subtest_with_dynamic("invalid-async-flip") {
> +		/* TODO: support more vendors */
> +		igt_require(is_i915_device(data.drm_fd));
> +		igt_require(igt_display_has_format_mod(&data.display, DRM_FORMAT_XRGB8888,
> +						       I915_FORMAT_MOD_Y_TILED));
>  
> -		igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
> -		igt_subtest_with_dynamic("crc")
> -			run_test(&data, test_crc);
> +		run_test(&data, test_invalid);
> +	}
>  
> -		igt_fixture {
> -			for (i = 0; i < ARRAY_SIZE(data.bufs); i++)
> -				igt_remove_fb(data.drm_fd, &data.bufs[i]);
> -		}
> +	igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
> +	igt_subtest_with_dynamic("crc") {
> +		/* Devices without CRC can't run this test */
> +		igt_require_pipe_crc(data.drm_fd);
> +
> +		run_test(&data, test_crc);
>  	}
>  
> -	igt_fixture
> +	igt_fixture {
> +		for (i = 0; i < ARRAY_SIZE(data.bufs); i++)
> +			igt_remove_fb(data.drm_fd, &data.bufs[i]);
> +
> +		igt_display_reset(&data.display);
> +		igt_display_commit(&data.display);
>  		igt_display_fini(&data.display);
> +		close(data.drm_fd);
> +	}
>  }
> -- 
> 2.22.0
> 

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

* Re: [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_async_flips: Convert tests to dynamic
  2022-05-31  8:08   ` Kamil Konieczny
@ 2022-05-31  8:39     ` Karthik B S
  0 siblings, 0 replies; 9+ messages in thread
From: Karthik B S @ 2022-05-31  8:39 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, Bhanuprakash Modem

On 5/31/2022 1:38 PM, Kamil Konieczny wrote:
> Hi Karthik,
>
> On 2022-05-31 at 11:06:47 +0530, Karthik B S wrote:
>
> Put commit description here.

Hi Kamil,

Thank you for the review. Will update this.

>
>> v2: -Get the mode after igt_display_reset() (Bhanu)
>>
>> v3: -Move patch to start of series to avoid code duplication (Bhanu)
>>      -Use for_each_pipe() instead of for_each_pipe_static() (Bhanu)
>>
>> v4: -Add helper to avoid code duplication (Andre)
> Looks like you do a little more than just converting tests to
> dynamic, can you describe that in commit message or maybe split
> this patch into converting and adding new option and extending
> tests ?

Will add details in the commit message.

Thanks,
Karthik.B.S
>
> --
> Kamil
>
>> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
>> Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
>> ---
>>   tests/kms_async_flips.c | 80 +++++++++++++++++++++++++++++++----------
>>   1 file changed, 62 insertions(+), 18 deletions(-)
>>
>> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
>> index 1701883b..8b545b77 100644
>> --- a/tests/kms_async_flips.c
>> +++ b/tests/kms_async_flips.c
>> @@ -51,6 +51,7 @@ typedef struct {
>>   	struct igt_fb bufs[4];
>>   	igt_display_t display;
>>   	drmModeConnectorPtr connector;
>> +	igt_output_t *output;
>>   	unsigned long flip_timestamp_us;
>>   	double flip_interval;
>>   	igt_pipe_crc_t *pipe_crc;
>> @@ -58,6 +59,9 @@ typedef struct {
>>   	int flip_count;
>>   	int frame_count;
>>   	bool flip_pending;
>> +	bool extended;
>> +	enum pipe pipe;
>> +	bool alternate_sync_async;
>>   } data_t;
>>   
>>   static drmModeConnectorPtr find_connector_for_modeset(data_t *data)
>> @@ -159,7 +163,7 @@ static void require_monotonic_timestamp(int fd)
>>   		      "Monotonic timestamps not supported\n");
>>   }
>>   
>> -static void test_async_flip(data_t *data, bool alternate_sync_async)
>> +static void test_async_flip(data_t *data)
>>   {
>>   	int ret, frame;
>>   	long long int fps;
>> @@ -172,7 +176,7 @@ static void test_async_flip(data_t *data, bool alternate_sync_async)
>>   	do {
>>   		int flags = DRM_MODE_PAGE_FLIP_ASYNC | DRM_MODE_PAGE_FLIP_EVENT;
>>   
>> -		if (alternate_sync_async) {
>> +		if (data->alternate_sync_async) {
>>   			flags &= ~DRM_MODE_PAGE_FLIP_ASYNC;
>>   
>>   			ret = drmModePageFlip(data->drm_fd, data->crtc_id,
>> @@ -216,7 +220,7 @@ static void test_async_flip(data_t *data, bool alternate_sync_async)
>>   		gettimeofday(&end, NULL);
>>   		timersub(&end, &start, &diff);
>>   
>> -		if (alternate_sync_async) {
>> +		if (data->alternate_sync_async) {
>>   			igt_assert_f(data->flip_interval < 1000.0 / (data->refresh_rate * MIN_FLIPS_PER_FRAME),
>>   				     "Flip interval not significantly smaller than vblank interval\n"
>>   				     "Flip interval: %lfms, Refresh Rate = %dHz, Threshold = %d\n",
>> @@ -226,7 +230,7 @@ static void test_async_flip(data_t *data, bool alternate_sync_async)
>>   		frame++;
>>   	} while (diff.tv_sec < RUN_TIME);
>>   
>> -	if (!alternate_sync_async) {
>> +	if (!data->alternate_sync_async) {
>>   		fps = frame * 1000 / RUN_TIME;
>>   		igt_assert_f((fps / 1000) > (data->refresh_rate * MIN_FLIPS_PER_FRAME),
>>   			     "FPS should be significantly higher than the refresh rate\n");
>> @@ -540,9 +544,45 @@ static void test_crc(data_t *data)
>>   	igt_assert_lt(data->frame_count * 2, data->flip_count);
>>   }
>>   
>> -igt_main
>> +static void run_test(data_t *data, void (*test)(data_t *))
>> +{
>> +	igt_output_t *output;
>> +	enum pipe pipe;
>> +
>> +	for_each_pipe(&data->display, pipe) {
>> +		for_each_valid_output_on_pipe(&data->display, pipe, output) {
>> +			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
>> +				data->output = output;
>> +				data->pipe = pipe;
>> +				test(data);
>> +			}
>> +
>> +			if (!data->extended)
>> +				break;
>> +		}
>> +	}
>> +}
>> +
>> +static int opt_handler(int opt, int opt_index, void *_data)
>> +{
>> +	data_t *data = _data;
>> +
>> +	switch (opt) {
>> +	case 'e':
>> +		data->extended = true;
>> +		break;
>> +	}
>> +
>> +	return IGT_OPT_HANDLER_SUCCESS;
>> +}
>> +
>> +static const char help_str[] =
>> +"  --e \t\tRun the extended tests\n";
>> +
>> +static data_t data;
>> +
>> +igt_main_args("e", NULL, help_str, opt_handler, &data)
>>   {
>> -	static data_t data;
>>   	int i;
>>   
>>   	igt_fixture {
>> @@ -561,28 +601,32 @@ igt_main
>>   			test_init(&data);
>>   
>>   		igt_describe("Wait for page flip events in between successive asynchronous flips");
>> -		igt_subtest("async-flip-with-page-flip-events")
>> -			test_async_flip(&data, false);
>> +		igt_subtest_with_dynamic("async-flip-with-page-flip-events") {
>> +			data.alternate_sync_async = false;
>> +			run_test(&data, test_async_flip);
>> +		}
>>   
>>   		igt_describe("Alternate between sync and async flips");
>> -		igt_subtest("alternate-sync-async-flip")
>> -			test_async_flip(&data, true);
>> +		igt_subtest_with_dynamic("alternate-sync-async-flip") {
>> +			data.alternate_sync_async = true;
>> +			run_test(&data, test_async_flip);
>> +		}
>>   
>>   		igt_describe("Verify that the async flip timestamp does not coincide with either previous or next vblank");
>> -		igt_subtest("test-time-stamp")
>> -			test_timestamp(&data);
>> +		igt_subtest_with_dynamic("test-time-stamp")
>> +			run_test(&data, test_timestamp);
>>   
>>   		igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
>> -		igt_subtest("test-cursor")
>> -			test_cursor(&data);
>> +		igt_subtest_with_dynamic("test-cursor")
>> +			run_test(&data, test_cursor);
>>   
>>   		igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
>> -		igt_subtest("invalid-async-flip")
>> -			test_invalid(&data);
>> +		igt_subtest_with_dynamic("invalid-async-flip")
>> +			run_test(&data, test_invalid);
>>   
>>   		igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
>> -		igt_subtest("crc")
>> -			test_crc(&data);
>> +		igt_subtest_with_dynamic("crc")
>> +			run_test(&data, test_crc);
>>   
>>   		igt_fixture {
>>   			for (i = 0; i < ARRAY_SIZE(data.bufs); i++)
>> -- 
>> 2.22.0
>>

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

* Re: [igt-dev] [PATCH i-g-t v6 2/2] tests/kms_async_flips: Test Cleanup
  2022-05-31  8:31   ` Kamil Konieczny
@ 2022-05-31  8:53     ` Karthik B S
  0 siblings, 0 replies; 9+ messages in thread
From: Karthik B S @ 2022-05-31  8:53 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev

On 5/31/2022 2:01 PM, Kamil Konieczny wrote:
> Hi Karthik,
>
> On 2022-05-31 at 11:06:48 +0530, Karthik B S wrote:
>> -Replace drm function call with existing library functions
> - ^
>
> Remove '-' from beggining.

Hi Kamil,

Thank you for the review. Will fix this.

>
>> -igt_display_reset() before all subtests
> - ^
> Same here.
Will fix this.
>
> You make a little more than in commit description, imho subject
> word "Cleanup" should be "refactoring". I do not know much about
> kms itself, so I will not comment on validity of your changes,
> only some small nits below.
Sure will update "Cleanup" to "refactoring". And add details anything 
else missing in the commit.
>
>> v2: -Move conversion to dynamic subtest to a separate patch (Bhanu)
>>      -Use igt_output_get_mode to get default mode (Bhanu)
>>      -Add 'is_atomic' check before igt_display_commit2 (Bhanu)
>>
>> v3: -Move test_init after the checks to skip subtest (Bhanu)
>>      -Update the logic to call make_fb() in test_init()
>>
>> v4: -Move patch after patch to convert tests to dynamic to avoid code
>>       duplicaton. (Bhanu)
>>
>> v5: -Update commit message. (Bhanu)
>>      -Move skip checks in the dynamic subtests before the start of the
>>       subtest to optimize the test. (Bhanu)
>>      -Close drm_fd at the end of the subtest.
>>
>> v6: -Fix identation for braces. (Andre)
>>
>> Signed-off-by: Karthik B S <karthik.b.s@intel.com>
>> ---
>>   tests/kms_async_flips.c | 169 +++++++++++++++++++++-------------------
>>   1 file changed, 91 insertions(+), 78 deletions(-)
>>
>> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
>> index 8b545b77..4a0527dc 100644
>> --- a/tests/kms_async_flips.c
>> +++ b/tests/kms_async_flips.c
>> @@ -50,7 +50,6 @@ typedef struct {
>>   	uint32_t refresh_rate;
>>   	struct igt_fb bufs[4];
>>   	igt_display_t display;
>> -	drmModeConnectorPtr connector;
>>   	igt_output_t *output;
>>   	unsigned long flip_timestamp_us;
>>   	double flip_interval;
>> @@ -64,22 +63,6 @@ typedef struct {
>>   	bool alternate_sync_async;
>>   } data_t;
>>   
>> -static drmModeConnectorPtr find_connector_for_modeset(data_t *data)
>> -{
>> -	igt_output_t *output;
>> -	drmModeConnectorPtr ret = NULL;
>> -
>> -	for_each_connected_output(&data->display, output) {
>> -		if (output->config.connector->count_modes > 0) {
>> -			ret = output->config.connector;
>> -			break;
>> -		}
>> -	}
>> -
>> -	igt_assert_f(ret, "Connector NOT found\n");
>> -	return ret;
>> -}
>> -
>>   static void flip_handler(int fd_, unsigned int sequence, unsigned int tv_sec,
>>   			 unsigned int tv_usec, void *_data)
>>   {
>> @@ -133,15 +116,11 @@ static void wait_flip_event(data_t *data)
>>   }
>>   
>>   static void make_fb(data_t *data, struct igt_fb *fb,
>> -		    drmModeConnectorPtr connector, int index)
>> +		    uint32_t width, uint32_t height, int index)
>>   {
>> -	uint32_t width, height;
>>   	int rec_width;
>>   	cairo_t *cr;
>>   
>> -	width = connector->modes[0].hdisplay;
>> -	height = connector->modes[0].vdisplay;
>> -
>>   	rec_width = width / (ARRAY_SIZE(data->bufs) * 2);
>>   
>>   	if (is_i915_device(data->drm_fd)) {
>> @@ -163,13 +142,52 @@ static void require_monotonic_timestamp(int fd)
>>   		      "Monotonic timestamps not supported\n");
>>   }
>>   
>> +static void test_init(data_t *data)
>> +{
>> +	int i;
>> +	uint32_t width, height;
>> +	igt_plane_t *plane;
>> +	static uint32_t prev_output_id;
>> +	drmModeModeInfo *mode;
>> +
>> +	igt_display_reset(&data->display);
>> +	igt_display_commit(&data->display);
>> +
>> +	mode = igt_output_get_mode(data->output);
>> +	width = mode->hdisplay;
>> +	height = mode->vdisplay;
>> +
>> +	data->crtc_id = data->display.pipes[data->pipe].crtc_id;
>> +	data->refresh_rate = mode->vrefresh;
>> +
>> +	igt_output_set_pipe(data->output, data->pipe);
>> +	plane = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
>> +
>> +	if (prev_output_id != data->output->id) {
>> +		prev_output_id = data->output->id;
>> +
>> +		if (data->bufs[0].fb_id) {
>> +			for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
>> +				igt_remove_fb(data->drm_fd, &data->bufs[i]);
>> +		}
>> +
>> +		for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
>> +			make_fb(data, &data->bufs[i], width, height, i);
>> +	}
>> +
>> +	igt_plane_set_fb(plane, &data->bufs[0]);
>> +	igt_plane_set_size(plane, width, height);
>> +
>> +	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
>> +}
>> +
>>   static void test_async_flip(data_t *data)
>>   {
>>   	int ret, frame;
>>   	long long int fps;
>>   	struct timeval start, end, diff;
>>   
>> -	require_monotonic_timestamp(data->drm_fd);
>> +	test_init(data);
>>   
>>   	gettimeofday(&start, NULL);
>>   	frame = 1;
>> @@ -262,7 +280,7 @@ static void test_timestamp(data_t *data)
>>   	unsigned int seq, seq1;
>>   	int ret;
>>   
>> -	require_monotonic_timestamp(data->drm_fd);
>> +	test_init(data);
>>   
>>   	/*
>>   	 * In older platforms(<= gen10), async address update bit is double buffered.
>> @@ -321,6 +339,8 @@ static void test_cursor(data_t *data)
>>   	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &width));
>>   	do_or_die(drmGetCap(data->drm_fd, DRM_CAP_CURSOR_WIDTH, &height));
>>   
>> +	test_init(data);
>> +
>>   	igt_create_color_fb(data->drm_fd, width, height, DRM_FORMAT_ARGB8888,
>>   			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
>>   
>> @@ -355,15 +375,13 @@ static void test_invalid(data_t *data)
>>   	int ret;
>>   	uint32_t width, height;
>>   	struct igt_fb fb;
>> +	drmModeModeInfo *mode;
>>   
>> -	/* TODO: support more vendors */
>> -	igt_require(is_i915_device(data->drm_fd));
>> +	mode = igt_output_get_mode(data->output);
>> +	width = mode->hdisplay;
>> +	height = mode->vdisplay;
>>   
>> -	width = data->connector->modes[0].hdisplay;
>> -	height = data->connector->modes[0].vdisplay;
>> -
>> -	igt_require(igt_display_has_format_mod(&data->display, DRM_FORMAT_XRGB8888,
>> -					       I915_FORMAT_MOD_Y_TILED));
>> +	test_init(data);
>>   
>>   	igt_create_fb(data->drm_fd, width, height, DRM_FORMAT_XRGB8888,
>>   		      I915_FORMAT_MOD_Y_TILED, &fb);
>> @@ -379,33 +397,6 @@ static void test_invalid(data_t *data)
>>   	igt_remove_fb(data->drm_fd, &fb);
>>   }
>>   
>> -static void test_init(data_t *data)
>> -{
>> -	drmModeResPtr res;
>> -	int i, ret;
>> -
>> -	res = drmModeGetResources(data->drm_fd);
>> -	igt_assert(res);
>> -
>> -	kmstest_unset_all_crtcs(data->drm_fd, res);
>> -
>> -	data->connector = find_connector_for_modeset(data);
>> -	data->crtc_id = kmstest_find_crtc_for_connector(data->drm_fd,
>> -							res, data->connector, 0);
>> -
>> -	data->refresh_rate = data->connector->modes[0].vrefresh;
>> -
>> -	for (i = 0; i < ARRAY_SIZE(data->bufs); i++)
>> -		make_fb(data, &data->bufs[i], data->connector, i);
>> -
>> -	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[0].fb_id, 0, 0,
>> -			     &data->connector->connector_id, 1, &data->connector->modes[0]);
>> -
>> -	igt_assert(ret == 0);
>> -
>> -	drmModeFreeResources(res);
>> -}
>> -
>>   static void queue_vblank(data_t *data)
>>   {
>>   	int pipe = kmstest_get_pipe_from_crtc_id(data->drm_fd, data->crtc_id);
>> @@ -491,13 +482,12 @@ static void test_crc(data_t *data)
>>   	cairo_t *cr;
>>   	int ret;
>>   
>> -	/* Devices without CRC can't run this test */
>> -	igt_require_pipe_crc(data->drm_fd);
>> -
>>   	data->flip_count = 0;
>>   	data->frame_count = 0;
>>   	data->flip_pending = false;
>>   
>> +	test_init(data);
>> +
>>   	cr = igt_get_cairo_ctx(data->drm_fd, &data->bufs[frame]);
>>   	igt_paint_color(cr, 0, 0, data->bufs[frame].width, data->bufs[frame].height, 1.0, 0.0, 0.0);
>>   
>> @@ -505,7 +495,8 @@ static void test_crc(data_t *data)
>>   	igt_paint_color(cr, 0, 0, data->bufs[!frame].width, data->bufs[!frame].height, 1.0, 0.0, 0.0);
>>   
>>   	ret = drmModeSetCrtc(data->drm_fd, data->crtc_id, data->bufs[frame].fb_id, 0, 0,
>> -			     &data->connector->connector_id, 1, &data->connector->modes[0]);
>> +			     &data->output->config.connector->connector_id, 1,
>> +			     &data->output->config.connector->modes[0]);
>>   	igt_assert_eq(ret, 0);
>>   
>>   	data->pipe_crc = igt_pipe_crc_new(data->drm_fd,
>> @@ -577,7 +568,7 @@ static int opt_handler(int opt, int opt_index, void *_data)
>>   }
>>   
>>   static const char help_str[] =
>> -"  --e \t\tRun the extended tests\n";
>> +	"  --e \t\tRun the extended tests\n";
> This should be done correctly in other patch.
Sure, will fix this.
>
>>   
>>   static data_t data;
>>   
>> @@ -598,7 +589,7 @@ igt_main_args("e", NULL, help_str, opt_handler, &data)
>>   	igt_describe("Verify the async flip functionality and the fps during async flips");
>>   	igt_subtest_group {
>>   		igt_fixture
>> -			test_init(&data);
>> +			require_monotonic_timestamp(data.drm_fd);
> This changed logic of test ?

No. test_init() was previously called directly in fixture as test ran 
only on one pipe-output combination and so one time setup was 
sufficient. Now as this test is being converted to dynamic, moved this 
call inside the test functions to call it each time we've a new 
pipe/output combination.

The require_monotonic_timestamp() function was brought out of the 
individual functions and into fixture to skip the test initially itself 
if this is not supported and avoid skips at a later stage of the test.

Thanks,
Karthik.B.S

>
> --
> Kamil
>
>>   
>>   		igt_describe("Wait for page flip events in between successive asynchronous flips");
>>   		igt_subtest_with_dynamic("async-flip-with-page-flip-events") {
>> @@ -615,25 +606,47 @@ igt_main_args("e", NULL, help_str, opt_handler, &data)
>>   		igt_describe("Verify that the async flip timestamp does not coincide with either previous or next vblank");
>>   		igt_subtest_with_dynamic("test-time-stamp")
>>   			run_test(&data, test_timestamp);
>> +	}
>>   
>> -		igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
>> -		igt_subtest_with_dynamic("test-cursor")
>> -			run_test(&data, test_cursor);
>> +	igt_describe("Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip");
>> +	igt_subtest_with_dynamic("test-cursor") {
>> +		/*
>> +		 * Intel's PSR2 selective fetch adds other planes to state when
>> +		 * necessary, causing the async flip to fail because async flip is not
>> +		 * supported in cursor plane.
>> +		 */
>> +		igt_skip_on_f(i915_psr2_selective_fetch_check(data.drm_fd),
>> +			      "PSR2 sel fetch causes cursor to be added to primary plane " \
>> +			      "pages flips and async flip is not supported in cursor\n");
>> +
>> +		run_test(&data, test_cursor);
>> +	}
>>   
>> -		igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
>> -		igt_subtest_with_dynamic("invalid-async-flip")
>> -			run_test(&data, test_invalid);
>> +	igt_describe("Negative case to verify if changes in fb are rejected from kernel as expected");
>> +	igt_subtest_with_dynamic("invalid-async-flip") {
>> +		/* TODO: support more vendors */
>> +		igt_require(is_i915_device(data.drm_fd));
>> +		igt_require(igt_display_has_format_mod(&data.display, DRM_FORMAT_XRGB8888,
>> +						       I915_FORMAT_MOD_Y_TILED));
>>   
>> -		igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
>> -		igt_subtest_with_dynamic("crc")
>> -			run_test(&data, test_crc);
>> +		run_test(&data, test_invalid);
>> +	}
>>   
>> -		igt_fixture {
>> -			for (i = 0; i < ARRAY_SIZE(data.bufs); i++)
>> -				igt_remove_fb(data.drm_fd, &data.bufs[i]);
>> -		}
>> +	igt_describe("Use CRC to verify async flip scans out the correct framebuffer");
>> +	igt_subtest_with_dynamic("crc") {
>> +		/* Devices without CRC can't run this test */
>> +		igt_require_pipe_crc(data.drm_fd);
>> +
>> +		run_test(&data, test_crc);
>>   	}
>>   
>> -	igt_fixture
>> +	igt_fixture {
>> +		for (i = 0; i < ARRAY_SIZE(data.bufs); i++)
>> +			igt_remove_fb(data.drm_fd, &data.bufs[i]);
>> +
>> +		igt_display_reset(&data.display);
>> +		igt_display_commit(&data.display);
>>   		igt_display_fini(&data.display);
>> +		close(data.drm_fd);
>> +	}
>>   }
>> -- 
>> 2.22.0
>>

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

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

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-31  5:36 [igt-dev] [PATCH i-g-t v6 0/2] tests/kms_async_flips: Cleanup Karthik B S
2022-05-31  5:36 ` [igt-dev] [PATCH i-g-t v6 1/2] tests/kms_async_flips: Convert tests to dynamic Karthik B S
2022-05-31  8:08   ` Kamil Konieczny
2022-05-31  8:39     ` Karthik B S
2022-05-31  5:36 ` [igt-dev] [PATCH i-g-t v6 2/2] tests/kms_async_flips: Test Cleanup Karthik B S
2022-05-31  8:31   ` Kamil Konieczny
2022-05-31  8:53     ` Karthik B S
2022-05-31  7:19 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_async_flips: Cleanup (rev2) Patchwork
2022-05-31  8:28 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

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