Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/2] Convert PSR2 sf & su test to dynamic
@ 2022-09-08 13:14 Jeevan B
  2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_su: Convert tests " Jeevan B
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Jeevan B @ 2022-09-08 13:14 UTC (permalink / raw)
  To: igt-dev

Convert psr2_sf & psr2_su patch to dynamic subtests. 
We check psr2 support for each pipe and if the pipe supports then
its added as part of dynamic subtest instead to running through all
pipe.

Jeevan B (2):
  tests/i915/kms_psr2_su: Convert tests to dynamic
  tests/i915/kms_psr2_sf: Convert tests to dynamic

 tests/i915/kms_psr2_sf.c | 259 +++++++++++++++++++++++++++------------
 tests/i915/kms_psr2_su.c |  63 ++++++----
 2 files changed, 221 insertions(+), 101 deletions(-)

-- 
2.36.0

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

* [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_su: Convert tests to dynamic
  2022-09-08 13:14 [igt-dev] [PATCH i-g-t 0/2] Convert PSR2 sf & su test to dynamic Jeevan B
@ 2022-09-08 13:14 ` Jeevan B
  2022-09-09 11:23   ` Hogander, Jouni
  2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: " Jeevan B
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 11+ messages in thread
From: Jeevan B @ 2022-09-08 13:14 UTC (permalink / raw)
  To: igt-dev

Converting the existing subtests to dynamic subtests.
Adding support for each_pipe, currently PSR2 is supported on
PIPE_A so breaking the loop for other pipes currently.

v2: Add commit message and change break to continue. (Jouni)
v3: Check for pipe supporting PSR2 or not and then add to dynamic subtest. (Jouni)

Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_psr2_su.c | 63 +++++++++++++++++++++++++---------------
 1 file changed, 40 insertions(+), 23 deletions(-)

diff --git a/tests/i915/kms_psr2_su.c b/tests/i915/kms_psr2_su.c
index caccf713..f63f1483 100644
--- a/tests/i915/kms_psr2_su.c
+++ b/tests/i915/kms_psr2_su.c
@@ -260,13 +260,30 @@ static void cleanup(data_t *data)
 	igt_remove_fb(data->drm_fd, &data->fb[0]);
 }
 
+static int check_psr2_support(data_t *data, enum pipe pipe, int x)
+{
+	igt_output_t *output;
+	igt_display_t *display = &data->display;
+
+	igt_display_reset(display);
+	output = data->output;
+	igt_output_set_pipe(output, pipe);
+
+	prepare(data);
+	x = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
+	cleanup(data);
+
+	return x;
+}
+
 igt_main
 {
 	data_t data = {};
+	enum pipe pipe;
+	int r;
 
 	igt_fixture {
 		struct itimerspec interval;
-		int r;
 
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
 		data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
@@ -287,12 +304,6 @@ igt_main
 			      "Error enabling PSR2\n");
 		data.op = FRONTBUFFER;
 		data.format = DRM_FORMAT_XRGB8888;
-		prepare(&data);
-		r = psr_wait_entry(data.debugfs_fd, PSR_MODE_2);
-		cleanup(&data);
-		if (!r)
-			psr_print_debugfs(data.debugfs_fd);
-		igt_require_f(r, "PSR2 can not be enabled\n");
 
 		/* blocking timerfd */
 		data.change_screen_timerfd = timerfd_create(CLOCK_MONOTONIC, 0);
@@ -312,23 +323,29 @@ igt_main
 		while (*format != DRM_FORMAT_INVALID) {
 			data.format = *format++;
 			igt_describe("Test that selective update works when screen changes");
-			igt_subtest_f("%s-%s", op_str(data.op), igt_format_str(data.format)) {
-				if (data.op == FRONTBUFFER &&
-				    intel_display_ver(intel_get_drm_devid(data.drm_fd)) >= 12) {
-					/*
-					 * FIXME: Display 12+ platforms now have PSR2
-					 * selective fetch enabled by default but we
-					 * still can't properly handle frontbuffer
-					 * rendering, so right it does full frame
-					 * fetches at every frontbuffer rendering.
-					 * So it is expected that this test will fail
-					 * in display 12+ platform for now.
-					 */
-					igt_skip("PSR2 selective fetch is doing full frame fetches for frontbuffer rendering\n");
+			igt_subtest_with_dynamic_f("%s-%s", op_str(data.op), igt_format_str(data.format)) {
+				for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+					if (check_psr2_support(&data, pipe, r)) {
+						igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+							if (data.op == FRONTBUFFER &&
+							    intel_display_ver(intel_get_drm_devid(data.drm_fd)) >= 12) {
+								/*
+								 * FIXME: Display 12+ platforms now have PSR2
+								 * selective fetch enabled by default but we
+								 * still can't properly handle frontbuffer
+								 * rendering, so right it does full frame
+								 * fetches at every frontbuffer rendering.
+								 * So it is expected that this test will fail
+								 * in display 12+ platform for now.
+								 */
+								igt_skip("PSR2 selective fetch is doing full frame fetches for frontbuffer rendering\n");
+							}
+							prepare(&data);
+							run(&data);
+							cleanup(&data);
+						}
+					}
 				}
-				prepare(&data);
-				run(&data);
-				cleanup(&data);
 			}
 		}
 	}
-- 
2.36.0

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

* [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: Convert tests to dynamic
  2022-09-08 13:14 [igt-dev] [PATCH i-g-t 0/2] Convert PSR2 sf & su test to dynamic Jeevan B
  2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_su: Convert tests " Jeevan B
@ 2022-09-08 13:14 ` Jeevan B
  2022-09-09 11:36   ` Hogander, Jouni
  2022-09-14  7:12   ` Hogander, Jouni
  2022-09-08 13:55 ` [igt-dev] ✓ Fi.CI.BAT: success for Convert PSR2 sf & su test " Patchwork
  2022-09-08 18:20 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  3 siblings, 2 replies; 11+ messages in thread
From: Jeevan B @ 2022-09-08 13:14 UTC (permalink / raw)
  To: igt-dev

Converting the existing subtests to dynamic subtests.

v2: Check for pipe supporting PSR2 or not and then add to dynamic subtest. (Jouni)

Signed-off-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_psr2_sf.c | 259 +++++++++++++++++++++++++++------------
 1 file changed, 181 insertions(+), 78 deletions(-)

diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
index 6612587c..19efc5b9 100644
--- a/tests/i915/kms_psr2_sf.c
+++ b/tests/i915/kms_psr2_sf.c
@@ -838,14 +838,31 @@ static void cleanup(data_t *data)
 	igt_remove_fb(data->drm_fd, &data->fb_test);
 }
 
+static int check_psr2_support(data_t *data, enum pipe pipe, int x)
+{
+       igt_output_t *output;
+       igt_display_t *display = &data->display;
+
+       igt_display_reset(display);
+       output = data->output;
+       igt_output_set_pipe(output, pipe);
+
+       prepare(data);
+       x = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
+       cleanup(data);
+
+       return x;
+}
+
 igt_main
 {
 	data_t data = {};
 	int i;
+	enum pipe pipe;
+	int r;
 
 	igt_fixture {
 		drmModeResPtr res;
-		int r;
 
 		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
 		data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
@@ -888,131 +905,211 @@ igt_main
 
 	/* Verify primary plane selective fetch */
 	igt_describe("Test that selective fetch works on primary plane");
-	igt_subtest_f("primary-%s-sf-dmg-area", op_str(data.op)) {
-		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
-			data.damage_area_count = i;
-			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
-			prepare(&data);
-			run(&data);
-			cleanup(&data);
+	igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
+						data.damage_area_count = i;
+						data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
+						prepare(&data);
+						run(&data);
+						cleanup(&data);
+					}
+				}
+			}
 		}
 	}
 
 	/* Verify primary plane selective fetch with big fb */
 	data.big_fb_test = 1;
 	igt_describe("Test that selective fetch works on primary plane with big fb");
-	igt_subtest_f("primary-%s-sf-dmg-area-big-fb", op_str(data.op)) {
-		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
-			data.damage_area_count = i;
-			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
-			prepare(&data);
-			run(&data);
-			cleanup(&data);
+	igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area-big-fb", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
+						data.damage_area_count = i;
+						data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
+						prepare(&data);
+						run(&data);
+						cleanup(&data);
+					}
+				}
+			}
 		}
 	}
 	data.big_fb_test = 0;
 
 	/* Verify overlay plane selective fetch */
 	igt_describe("Test that selective fetch works on overlay plane");
-	igt_subtest_f("overlay-%s-sf-dmg-area", op_str(data.op)) {
-		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
-			data.damage_area_count = i;
-			data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
-			prepare(&data);
-			run(&data);
-			cleanup(&data);
+	igt_subtest_with_dynamic_f("overlay-%s-sf-dmg-area", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
+						data.damage_area_count = i;
+						data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
+						prepare(&data);
+						run(&data);
+						cleanup(&data);
+					}
+				}
+			}
 		}
 	}
 
 	/* Verify overlay plane selective fetch */
 	igt_describe("Test that selective fetch works on cursor plane");
-	igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
-		data.damage_area_count = 1;
-		data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
-		prepare(&data);
-		run(&data);
-		cleanup(&data);
+	igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
+						data.damage_area_count = 1;
+						data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
+						prepare(&data);
+						run(&data);
+						cleanup(&data);
+					}
+				}
+			}
+		}
 	}
 
 	data.op = PLANE_MOVE_CONTINUOUS;
 	igt_describe("Test that selective fetch works on moving cursor plane (no update)");
-	igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
-		data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
-		prepare(&data);
-		run(&data);
-		cleanup(&data);
+	igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
+						data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
+						prepare(&data);
+						run(&data);
+						cleanup(&data);
+					}
+				}
+			}
+		}
 	}
 
 	data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
 	igt_describe("Test that selective fetch works on moving cursor plane exceeding partially visible area (no update)");
-	igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
-		data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
-		prepare(&data);
-		run(&data);
-		cleanup(&data);
+	igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
+						data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
+						prepare(&data);
+						run(&data);
+						cleanup(&data);
+					}
+				}
+			}
+		}
 	}
 
 	data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
 	igt_describe("Test that selective fetch works on moving cursor plane exceeding fully visible area (no update)");
-	igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
-		data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
-		prepare(&data);
-		run(&data);
-		cleanup(&data);
+	igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
+						data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
+						prepare(&data);
+						run(&data);
+						cleanup(&data);
+					}
+				}
+			}
+		}
 	}
 
 	/* Only for overlay plane */
 	data.op = PLANE_MOVE;
 	/* Verify overlay plane move selective fetch */
 	igt_describe("Test that selective fetch works on moving overlay plane");
-	igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
-		for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
-			data.pos = i;
-			data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
-			prepare(&data);
-			run(&data);
-			cleanup(&data);
+	igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			 if (check_psr2_support(&data, pipe, r)) {
+				 igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
+						data.pos = i;
+						data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
+						prepare(&data);
+						run(&data);
+						cleanup(&data);
+					}
+				 }
+			 }
 		}
 	}
 
 	data.op = PLANE_MOVE_CONTINUOUS;
 	igt_describe("Test that selective fetch works on moving overlay plane (no update)");
-	igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
-		data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
-		prepare(&data);
-		run(&data);
-		cleanup(&data);
+	igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
+					prepare(&data);
+					run(&data);
+					cleanup(&data);
+				}
+			}
+		}
 	}
 
 	data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
 	igt_describe("Test that selective fetch works on moving overlay plane partially exceeding visible area (no update)");
-	igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
-		data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
-		prepare(&data);
-		run(&data);
-		cleanup(&data);
+	igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
+					prepare(&data);
+					run(&data);
+					cleanup(&data);
+				}
+			}
+		}
 	}
 
 	data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
 	igt_describe("Test that selective fetch works on moving overlay plane fully exceeding visible area (no update)");
-	igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
-		data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
-		prepare(&data);
-		run(&data);
-		cleanup(&data);
+	igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
+					prepare(&data);
+					run(&data);
+					cleanup(&data);
+				}
+			}
+		}
 	}
 
 	/* Verify primary plane selective fetch with overplay plane blended */
 	data.op = OVERLAY_PRIM_UPDATE;
 	igt_describe("Test that selective fetch works on primary plane "
 		     "with blended overlay plane");
-	igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
-		for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
-			data.damage_area_count = i;
-			data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
-			prepare(&data);
-			run(&data);
-			cleanup(&data);
+	igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
+						data.damage_area_count = i;
+						data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
+						prepare(&data);
+						run(&data);
+						cleanup(&data);
+					}
+				}
+			}
 		}
 	}
 
@@ -1023,12 +1120,18 @@ igt_main
 	data.op = PLANE_UPDATE_CONTINUOUS;
 	data.primary_format = DRM_FORMAT_NV12;
 	igt_describe("Test that selective fetch works on overlay plane");
-	igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
-			data.damage_area_count = 1;
-			data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
-			prepare(&data);
-			run(&data);
-			cleanup(&data);
+	igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op)) {
+		for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
+			if (check_psr2_support(&data, pipe, r)) {
+				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
+					data.damage_area_count = 1;
+					data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
+					prepare(&data);
+					run(&data);
+					cleanup(&data);
+				}
+			}
+		}
 	}
 
 	igt_fixture {
-- 
2.36.0

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

* [igt-dev] ✓ Fi.CI.BAT: success for Convert PSR2 sf & su test to dynamic
  2022-09-08 13:14 [igt-dev] [PATCH i-g-t 0/2] Convert PSR2 sf & su test to dynamic Jeevan B
  2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_su: Convert tests " Jeevan B
  2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: " Jeevan B
@ 2022-09-08 13:55 ` Patchwork
  2022-09-08 18:20 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  3 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2022-09-08 13:55 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev

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

== Series Details ==

Series: Convert PSR2 sf & su test to dynamic
URL   : https://patchwork.freedesktop.org/series/108299/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12094 -> IGTPW_7756
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (32 -> 40)
------------------------------

  Additional (9): bat-dg1-5 bat-adlm-1 bat-dg2-9 bat-adlp-6 bat-adlp-4 bat-rplp-1 bat-rpls-1 bat-rpls-2 bat-dg2-11 
  Missing    (1): fi-bdw-samus 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@nullptr:
    - bat-dg1-5:          NOTRUN -> [SKIP][1] ([i915#2582]) +4 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@fbdev@nullptr.html

  * igt@fbdev@read:
    - bat-adlp-4:         NOTRUN -> [SKIP][2] ([i915#2582]) +4 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@fbdev@read.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - bat-adlp-4:         NOTRUN -> [SKIP][3] ([i915#4613]) +3 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_mmap@basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][4] ([i915#4083])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@gem_mmap@basic.html

  * igt@gem_tiled_blits@basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][5] ([i915#4077]) +2 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@gem_tiled_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][6] ([i915#4079]) +1 similar issue
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@gem_tiled_pread_basic.html
    - bat-adlp-4:         NOTRUN -> [SKIP][7] ([i915#3282])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_backlight@basic-brightness:
    - bat-adlp-4:         NOTRUN -> [SKIP][8] ([i915#1155])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@i915_pm_backlight@basic-brightness.html
    - bat-dg1-5:          NOTRUN -> [SKIP][9] ([i915#1155])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@i915_pm_backlight@basic-brightness.html

  * igt@i915_pm_rps@basic-api:
    - bat-adlp-4:         NOTRUN -> [SKIP][10] ([i915#6621])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@i915_pm_rps@basic-api.html
    - bat-dg1-5:          NOTRUN -> [SKIP][11] ([i915#6621])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@gem:
    - fi-pnv-d510:        NOTRUN -> [DMESG-FAIL][12] ([i915#4528])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/fi-pnv-d510/igt@i915_selftest@live@gem.html

  * igt@i915_selftest@live@hangcheck:
    - fi-hsw-g3258:       [PASS][13] -> [INCOMPLETE][14] ([i915#3303] / [i915#4785])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
    - bat-dg1-5:          NOTRUN -> [DMESG-FAIL][15] ([i915#4494] / [i915#4957])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@i915_selftest@live@hangcheck.html

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

  * igt@kms_addfb_basic@basic-x-tiled-legacy:
    - bat-dg1-5:          NOTRUN -> [SKIP][17] ([i915#4212]) +7 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@kms_addfb_basic@basic-x-tiled-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-dg1-5:          NOTRUN -> [SKIP][18] ([i915#4215])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@kms_addfb_basic@basic-y-tiled-legacy.html

  * igt@kms_busy@basic:
    - bat-dg1-5:          NOTRUN -> [SKIP][19] ([i915#1845] / [i915#4303])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@kms_busy@basic.html

  * igt@kms_chamelium@common-hpd-after-suspend:
    - fi-bsw-kefka:       NOTRUN -> [SKIP][20] ([fdo#109271] / [fdo#111827])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/fi-bsw-kefka/igt@kms_chamelium@common-hpd-after-suspend.html

  * igt@kms_chamelium@dp-crc-fast:
    - bat-adlp-4:         NOTRUN -> [SKIP][21] ([fdo#111827]) +8 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@kms_chamelium@dp-crc-fast.html
    - bat-dg1-5:          NOTRUN -> [SKIP][22] ([fdo#111827]) +7 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@kms_chamelium@dp-crc-fast.html

  * igt@kms_flip@basic-flip-vs-wf_vblank:
    - bat-adlp-4:         NOTRUN -> [SKIP][23] ([i915#3637]) +3 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@kms_flip@basic-flip-vs-wf_vblank.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-adlp-4:         NOTRUN -> [SKIP][24] ([i915#4093]) +3 similar issues
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@kms_force_connector_basic@force-load-detect.html
    - bat-dg1-5:          NOTRUN -> [SKIP][25] ([fdo#109285])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_frontbuffer_tracking@basic:
    - bat-adlp-4:         NOTRUN -> [SKIP][26] ([i915#4342])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@kms_frontbuffer_tracking@basic.html

  * igt@kms_pipe_crc_basic@nonblocking-crc:
    - bat-dg1-5:          NOTRUN -> [SKIP][27] ([i915#4078]) +13 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@kms_pipe_crc_basic@nonblocking-crc.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence:
    - bat-adlp-4:         NOTRUN -> [SKIP][28] ([i915#3546]) +10 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@kms_pipe_crc_basic@read-crc-frame-sequence.html

  * igt@kms_psr@primary_page_flip:
    - bat-dg1-5:          NOTRUN -> [SKIP][29] ([i915#1072] / [i915#4078]) +3 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@kms_psr@primary_page_flip.html

  * igt@kms_psr@sprite_plane_onoff:
    - bat-adlp-4:         NOTRUN -> [SKIP][30] ([i915#1072]) +3 similar issues
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@kms_psr@sprite_plane_onoff.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-dg1-5:          NOTRUN -> [SKIP][31] ([i915#3555])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@kms_setmode@basic-clone-single-crtc.html
    - bat-adlp-4:         NOTRUN -> [SKIP][32] ([i915#3555] / [i915#4579])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@kms_setmode@basic-clone-single-crtc.html

  * igt@prime_vgem@basic-fence-flip:
    - bat-adlp-4:         NOTRUN -> [SKIP][33] ([fdo#109295] / [i915#3546] / [i915#3708])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@prime_vgem@basic-fence-flip.html
    - bat-dg1-5:          NOTRUN -> [SKIP][34] ([i915#1845] / [i915#3708])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@prime_vgem@basic-fence-flip.html

  * igt@prime_vgem@basic-fence-read:
    - bat-dg1-5:          NOTRUN -> [SKIP][35] ([i915#3708]) +2 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@prime_vgem@basic-fence-read.html

  * igt@prime_vgem@basic-gtt:
    - bat-dg1-5:          NOTRUN -> [SKIP][36] ([i915#3708] / [i915#4077]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@prime_vgem@basic-gtt.html

  * igt@prime_vgem@basic-userptr:
    - bat-adlp-4:         NOTRUN -> [SKIP][37] ([fdo#109295] / [i915#3301] / [i915#3708])
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@prime_vgem@basic-userptr.html
    - bat-dg1-5:          NOTRUN -> [SKIP][38] ([i915#3708] / [i915#4873])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@prime_vgem@basic-userptr.html

  * igt@prime_vgem@basic-write:
    - bat-adlp-4:         NOTRUN -> [SKIP][39] ([fdo#109295] / [i915#3291] / [i915#3708]) +2 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-adlp-4/igt@prime_vgem@basic-write.html

  * igt@runner@aborted:
    - fi-glk-dsi:         NOTRUN -> [FAIL][40] ([i915#4312] / [i915#6599])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/fi-glk-dsi/igt@runner@aborted.html
    - bat-dg1-5:          NOTRUN -> [FAIL][41] ([i915#4312] / [i915#5257])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/bat-dg1-5/igt@runner@aborted.html
    - fi-bdw-5557u:       NOTRUN -> [FAIL][42] ([i915#4312])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/fi-bdw-5557u/igt@runner@aborted.html
    - fi-hsw-g3258:       NOTRUN -> [FAIL][43] ([fdo#109271] / [i915#4312] / [i915#6246])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/fi-hsw-g3258/igt@runner@aborted.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@execlists:
    - fi-bsw-kefka:       [INCOMPLETE][44] ([i915#5847]) -> [PASS][45]
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/fi-bsw-kefka/igt@i915_selftest@live@execlists.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/fi-bsw-kefka/igt@i915_selftest@live@execlists.html

  * igt@i915_selftest@live@requests:
    - fi-pnv-d510:        [DMESG-FAIL][46] ([i915#4528]) -> [PASS][47]
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/fi-pnv-d510/igt@i915_selftest@live@requests.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/fi-pnv-d510/igt@i915_selftest@live@requests.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#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3303]: https://gitlab.freedesktop.org/drm/intel/issues/3303
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3595]: https://gitlab.freedesktop.org/drm/intel/issues/3595
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4093]: https://gitlab.freedesktop.org/drm/intel/issues/4093
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
  [i915#4303]: https://gitlab.freedesktop.org/drm/intel/issues/4303
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4342]: https://gitlab.freedesktop.org/drm/intel/issues/4342
  [i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
  [i915#4817]: https://gitlab.freedesktop.org/drm/intel/issues/4817
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5257]: https://gitlab.freedesktop.org/drm/intel/issues/5257
  [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
  [i915#5847]: https://gitlab.freedesktop.org/drm/intel/issues/5847
  [i915#6011]: https://gitlab.freedesktop.org/drm/intel/issues/6011
  [i915#6246]: https://gitlab.freedesktop.org/drm/intel/issues/6246
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6599]: https://gitlab.freedesktop.org/drm/intel/issues/6599
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6641]: https://gitlab.freedesktop.org/drm/intel/issues/6641
  [i915#6730]: https://gitlab.freedesktop.org/drm/intel/issues/6730


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6648 -> IGTPW_7756

  CI-20190529: 20190529
  CI_DRM_12094: 2c2f1d1ab12efd051cffcd740978476c96c26d0d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7756: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/index.html
  IGT_6648: 3c9079c0b97445fbfc903b9c5a1d69707b80af80 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for Convert PSR2 sf & su test to dynamic
  2022-09-08 13:14 [igt-dev] [PATCH i-g-t 0/2] Convert PSR2 sf & su test to dynamic Jeevan B
                   ` (2 preceding siblings ...)
  2022-09-08 13:55 ` [igt-dev] ✓ Fi.CI.BAT: success for Convert PSR2 sf & su test " Patchwork
@ 2022-09-08 18:20 ` Patchwork
  3 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2022-09-08 18:20 UTC (permalink / raw)
  To: Jeevan B; +Cc: igt-dev

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

== Series Details ==

Series: Convert PSR2 sf & su test to dynamic
URL   : https://patchwork.freedesktop.org/series/108299/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12094_full -> IGTPW_7756_full
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with IGTPW_7756_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_7756_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_7756/index.html

Participating hosts (11 -> 8)
------------------------------

  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_7756_full:

### IGT changes ###

#### Warnings ####

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-tglb:         [SKIP][1] ([i915#1911]) -> [SKIP][2] +3 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-tglb7/igt@kms_psr2_su@page_flip-nv12.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb6/igt@kms_psr2_su@page_flip-nv12.html

  
New tests
---------

  New tests have been introduced between CI_DRM_12094_full and IGTPW_7756_full:

### New IGT tests (3) ###

  * igt@kms_psr2_su@frontbuffer-xrgb8888@pipe-a:
    - Statuses : 1 pass(s)
    - Exec time: [0.60] s

  * igt@kms_psr2_su@frontbuffer-xrgb8888@pipe-b:
    - Statuses : 1 pass(s)
    - Exec time: [0.29] s

  * igt@kms_psr2_su@frontbuffer-xrgb8888@pipe-c:
    - Statuses : 1 pass(s)
    - Exec time: [0.29] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@drm_buddy@all:
    - shard-iclb:         NOTRUN -> [SKIP][3] ([i915#6433])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb5/igt@drm_buddy@all.html
    - shard-tglb:         NOTRUN -> [SKIP][4] ([i915#6433])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb5/igt@drm_buddy@all.html

  * igt@gem_ctx_isolation@preservation-s3@vecs0:
    - shard-apl:          [PASS][5] -> [DMESG-WARN][6] ([i915#180])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl7/igt@gem_ctx_isolation@preservation-s3@vecs0.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl2/igt@gem_ctx_isolation@preservation-s3@vecs0.html

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

  * igt@gem_eio@unwedge-stress:
    - shard-tglb:         [PASS][8] -> [FAIL][9] ([i915#5784])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-tglb3/igt@gem_eio@unwedge-stress.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb2/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-glk:          [PASS][10] -> [FAIL][11] ([i915#2842]) +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-glk2/igt@gem_exec_fair@basic-pace@vcs0.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-glk2/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_lmem_swapping@heavy-multi:
    - shard-apl:          NOTRUN -> [SKIP][12] ([fdo#109271] / [i915#4613])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl3/igt@gem_lmem_swapping@heavy-multi.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-glk:          [PASS][13] -> [DMESG-WARN][14] ([i915#5566] / [i915#716])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-glk3/igt@gen9_exec_parse@allowed-all.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-glk1/igt@gen9_exec_parse@allowed-all.html

  * igt@i915_pm_dc@dc5-psr:
    - shard-tglb:         [PASS][15] -> [FAIL][16] ([i915#3989])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-tglb5/igt@i915_pm_dc@dc5-psr.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb5/igt@i915_pm_dc@dc5-psr.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [PASS][17] -> [SKIP][18] ([fdo#109271])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl3/igt@i915_pm_dc@dc9-dpms.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl8/igt@i915_pm_dc@dc9-dpms.html

  * igt@kms_big_fb@4-tiled-addfb-size-offset-overflow:
    - shard-tglb:         NOTRUN -> [SKIP][19] ([i915#5286])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb3/igt@kms_big_fb@4-tiled-addfb-size-offset-overflow.html

  * igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc:
    - shard-tglb:         NOTRUN -> [SKIP][20] ([i915#3689] / [i915#6095])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - shard-apl:          NOTRUN -> [SKIP][21] ([fdo#109271] / [i915#3886]) +2 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl8/igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-c-bad-pixel-format-yf_tiled_ccs:
    - shard-apl:          NOTRUN -> [SKIP][22] ([fdo#109271]) +83 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl6/igt@kms_ccs@pipe-c-bad-pixel-format-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_mc_ccs:
    - shard-tglb:         NOTRUN -> [SKIP][23] ([i915#3689]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb5/igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs:
    - shard-iclb:         NOTRUN -> [SKIP][24] ([fdo#109278])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb8/igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs.html
    - shard-tglb:         NOTRUN -> [SKIP][25] ([fdo#111615] / [i915#3689])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb1/igt@kms_ccs@pipe-d-bad-rotation-90-yf_tiled_ccs.html

  * igt@kms_chamelium@hdmi-crc-single:
    - shard-iclb:         NOTRUN -> [SKIP][26] ([fdo#109284] / [fdo#111827])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb6/igt@kms_chamelium@hdmi-crc-single.html
    - shard-snb:          NOTRUN -> [SKIP][27] ([fdo#109271] / [fdo#111827])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-snb6/igt@kms_chamelium@hdmi-crc-single.html
    - shard-apl:          NOTRUN -> [SKIP][28] ([fdo#109271] / [fdo#111827]) +2 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl7/igt@kms_chamelium@hdmi-crc-single.html
    - shard-tglb:         NOTRUN -> [SKIP][29] ([fdo#109284] / [fdo#111827]) +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb5/igt@kms_chamelium@hdmi-crc-single.html
    - shard-glk:          NOTRUN -> [SKIP][30] ([fdo#109271] / [fdo#111827])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-glk3/igt@kms_chamelium@hdmi-crc-single.html

  * igt@kms_content_protection@dp-mst-lic-type-1:
    - shard-iclb:         NOTRUN -> [SKIP][31] ([i915#3116])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb7/igt@kms_content_protection@dp-mst-lic-type-1.html
    - shard-tglb:         NOTRUN -> [SKIP][32] ([i915#3116] / [i915#3299])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb7/igt@kms_content_protection@dp-mst-lic-type-1.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
    - shard-glk:          [PASS][33] -> [FAIL][34] ([i915#2346])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html

  * igt@kms_flip@2x-flip-vs-wf_vblank-interruptible:
    - shard-iclb:         NOTRUN -> [SKIP][35] ([fdo#109274])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb3/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html
    - shard-tglb:         NOTRUN -> [SKIP][36] ([fdo#109274] / [fdo#111825] / [i915#3637]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb6/igt@kms_flip@2x-flip-vs-wf_vblank-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1:
    - shard-glk:          [PASS][37] -> [FAIL][38] ([i915#79]) +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-glk1/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-glk3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1.html

  * igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][39] ([i915#2672]) +3 similar issues
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb5/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-default-mode:
    - shard-iclb:         NOTRUN -> [SKIP][40] ([i915#3555]) +1 similar issue
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytileccs-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode:
    - shard-iclb:         [PASS][41] -> [SKIP][42] ([i915#3555])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytile-downscaling@pipe-a-default-mode.html

  * igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode:
    - shard-iclb:         NOTRUN -> [SKIP][43] ([i915#2672] / [i915#3555]) +1 similar issue
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb7/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-32bpp-ytilegen12rcccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_frontbuffer_tracking@fbc-tiling-4:
    - shard-tglb:         NOTRUN -> [SKIP][44] ([i915#5439])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-tiling-4.html
    - shard-iclb:         NOTRUN -> [SKIP][45] ([i915#5438])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb7/igt@kms_frontbuffer_tracking@fbc-tiling-4.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render:
    - shard-tglb:         NOTRUN -> [SKIP][46] ([i915#6497]) +1 similar issue
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-onoff:
    - shard-glk:          NOTRUN -> [SKIP][47] ([fdo#109271]) +7 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-glk3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt:
    - shard-snb:          NOTRUN -> [SKIP][48] ([fdo#109271]) +8 similar issues
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-snb5/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html
    - shard-tglb:         NOTRUN -> [SKIP][49] ([fdo#109280] / [fdo#111825]) +6 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb7/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html
    - shard-iclb:         NOTRUN -> [SKIP][50] ([fdo#109280])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb3/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-shrfb-plflip-blt.html

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

  * igt@kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling@pipe-b-hdmi-a-2:
    - shard-glk:          [PASS][52] -> [DMESG-WARN][53] ([i915#118])
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-glk9/igt@kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling@pipe-b-hdmi-a-2.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-glk1/igt@kms_plane_scaling@plane-scaler-with-pixel-format-unity-scaling@pipe-b-hdmi-a-2.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1:
    - shard-iclb:         [PASS][54] -> [SKIP][55] ([i915#5235]) +2 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb8/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb2/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html

  * igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
    - shard-apl:          NOTRUN -> [SKIP][56] ([fdo#109271] / [i915#658])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl4/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - shard-tglb:         NOTRUN -> [SKIP][57] ([i915#2920])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html

  * igt@kms_vrr@flip-basic:
    - shard-tglb:         NOTRUN -> [SKIP][58] ([i915#3555])
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb1/igt@kms_vrr@flip-basic.html

  * igt@nouveau_crc@pipe-b-ctx-flip-detection:
    - shard-tglb:         NOTRUN -> [SKIP][59] ([i915#2530])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb7/igt@nouveau_crc@pipe-b-ctx-flip-detection.html

  * igt@perf@stress-open-close:
    - shard-glk:          [PASS][60] -> [INCOMPLETE][61] ([i915#5213])
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-glk3/igt@perf@stress-open-close.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-glk3/igt@perf@stress-open-close.html

  * igt@prime_nv_test@nv_write_i915_gtt_mmap_read:
    - shard-iclb:         NOTRUN -> [SKIP][62] ([fdo#109291])
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb8/igt@prime_nv_test@nv_write_i915_gtt_mmap_read.html
    - shard-tglb:         NOTRUN -> [SKIP][63] ([fdo#109291])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb1/igt@prime_nv_test@nv_write_i915_gtt_mmap_read.html

  
#### Possible fixes ####

  * igt@api_intel_bb@object-reloc-purge-cache:
    - {shard-rkl}:        [SKIP][64] ([i915#3281]) -> [PASS][65]
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-rkl-2/igt@api_intel_bb@object-reloc-purge-cache.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-rkl-5/igt@api_intel_bb@object-reloc-purge-cache.html

  * igt@gem_eio@unwedge-stress:
    - shard-iclb:         [TIMEOUT][66] ([i915#3070]) -> [PASS][67]
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb3/igt@gem_eio@unwedge-stress.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb1/igt@gem_eio@unwedge-stress.html
    - {shard-rkl}:        [TIMEOUT][68] ([i915#3063]) -> [PASS][69]
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-rkl-2/igt@gem_eio@unwedge-stress.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-rkl-5/igt@gem_eio@unwedge-stress.html

  * igt@gem_exec_balancer@parallel-contexts:
    - shard-iclb:         [SKIP][70] ([i915#4525]) -> [PASS][71] +2 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb3/igt@gem_exec_balancer@parallel-contexts.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb4/igt@gem_exec_balancer@parallel-contexts.html

  * igt@gem_exec_endless@dispatch@vecs0:
    - shard-tglb:         [INCOMPLETE][72] ([i915#3778]) -> [PASS][73]
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-tglb7/igt@gem_exec_endless@dispatch@vecs0.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb2/igt@gem_exec_endless@dispatch@vecs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-tglb:         [FAIL][74] ([i915#2842]) -> [PASS][75]
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-tglb3/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb6/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-apl:          [FAIL][76] ([i915#2842]) -> [PASS][77]
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-iclb:         [FAIL][78] ([i915#2842]) -> [PASS][79]
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb6/igt@gem_exec_fair@basic-throttle@rcs0.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb7/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_huc_copy@huc-copy:
    - shard-tglb:         [SKIP][80] ([i915#2190]) -> [PASS][81]
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-tglb6/igt@gem_huc_copy@huc-copy.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb2/igt@gem_huc_copy@huc-copy.html

  * igt@i915_selftest@live@execlists:
    - shard-apl:          [INCOMPLETE][82] ([i915#6443]) -> [PASS][83]
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl4/igt@i915_selftest@live@execlists.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl6/igt@i915_selftest@live@execlists.html

  * igt@kms_flip@dpms-off-confusion@c-edp1:
    - shard-tglb:         [INCOMPLETE][84] -> [PASS][85]
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-tglb6/igt@kms_flip@dpms-off-confusion@c-edp1.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-tglb5/igt@kms_flip@dpms-off-confusion@c-edp1.html

  * igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-b-edp-1:
    - shard-iclb:         [SKIP][86] ([i915#5176]) -> [PASS][87] +2 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb2/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-b-edp-1.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb4/igt@kms_plane_scaling@plane-downscale-with-pixel-format-factor-0-5@pipe-b-edp-1.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-iclb:         [SKIP][88] ([fdo#109441]) -> [PASS][89]
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb3/igt@kms_psr@psr2_cursor_plane_onoff.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@perf_pmu@rc6-suspend:
    - shard-apl:          [DMESG-WARN][90] ([i915#180]) -> [PASS][91] +2 similar issues
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl2/igt@perf_pmu@rc6-suspend.html
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl6/igt@perf_pmu@rc6-suspend.html

  
#### Warnings ####

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-iclb:         [FAIL][92] ([i915#6117]) -> [SKIP][93] ([i915#4525])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb1/igt@gem_exec_balancer@parallel-ordering.html
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb8/igt@gem_exec_balancer@parallel-ordering.html

  * igt@gem_softpin@evict-single-offset:
    - shard-glk:          [FAIL][94] ([i915#1888] / [i915#4171]) -> [FAIL][95] ([i915#4171])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-glk2/igt@gem_softpin@evict-single-offset.html
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-glk2/igt@gem_softpin@evict-single-offset.html

  * igt@i915_pm_rc6_residency@rc6-idle@rcs0:
    - shard-iclb:         [WARN][96] ([i915#2684]) -> [FAIL][97] ([i915#2684])
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb2/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb3/igt@i915_pm_rc6_residency@rc6-idle@rcs0.html

  * igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
    - shard-iclb:         [SKIP][98] ([i915#2920]) -> [SKIP][99] ([fdo#111068] / [i915#658])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-iclb1/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html

  * igt@runner@aborted:
    - shard-apl:          ([FAIL][100], [FAIL][101], [FAIL][102], [FAIL][103], [FAIL][104], [FAIL][105]) ([fdo#109271] / [i915#180] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#6599]) -> ([FAIL][106], [FAIL][107], [FAIL][108]) ([i915#180] / [i915#3002] / [i915#4312] / [i915#5257] / [i915#6599])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl1/igt@runner@aborted.html
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl8/igt@runner@aborted.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl3/igt@runner@aborted.html
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl4/igt@runner@aborted.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl2/igt@runner@aborted.html
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12094/shard-apl7/igt@runner@aborted.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl2/igt@runner@aborted.html
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl7/igt@runner@aborted.html
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/shard-apl7/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#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [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#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
  [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [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#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [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#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [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#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#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#1911]: https://gitlab.freedesktop.org/drm/intel/issues/1911
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436
  [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#2532]: https://gitlab.freedesktop.org/drm/intel/issues/2532
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
  [i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [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#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
  [i915#3070]: https://gitlab.freedesktop.org/drm/intel/issues/3070
  [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#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [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#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3376]: https://gitlab.freedesktop.org/drm/intel/issues/3376
  [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [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#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#3778]: https://gitlab.freedesktop.org/drm/intel/issues/3778
  [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
  [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
  [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#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4171]: https://gitlab.freedesktop.org/drm/intel/issues/4171
  [i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4941]: https://gitlab.freedesktop.org/drm/intel/issues/4941
  [i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5182]: https://gitlab.freedesktop.org/drm/intel/issues/5182
  [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213
  [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#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#5327]: https://gitlab.freedesktop.org/drm/intel/issues/5327
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5438]: https://gitlab.freedesktop.org/drm/intel/issues/5438
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5639]: https://gitlab.freedesktop.org/drm/intel/issues/5639
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#5982]: https://gitlab.freedesktop.org/drm/intel/issues/5982
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6259]: https://gitlab.freedesktop.org/drm/intel/issues/6259
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
  [i915#6344]: https://gitlab.freedesktop.org/drm/intel/issues/6344
  [i915#6412]: https://gitlab.freedesktop.org/drm/intel/issues/6412
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#6443]: https://gitlab.freedesktop.org/drm/intel/issues/6443
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
  [i915#6599]: https://gitlab.freedesktop.org/drm/intel/issues/6599
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79


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

  * CI: CI-20190529 -> None
  * IGT: IGT_6648 -> IGTPW_7756
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_12094: 2c2f1d1ab12efd051cffcd740978476c96c26d0d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_7756: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7756/index.html
  IGT_6648: 3c9079c0b97445fbfc903b9c5a1d69707b80af80 @ 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_7756/index.html

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

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

* Re: [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_su: Convert tests to dynamic
  2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_su: Convert tests " Jeevan B
@ 2022-09-09 11:23   ` Hogander, Jouni
  0 siblings, 0 replies; 11+ messages in thread
From: Hogander, Jouni @ 2022-09-09 11:23 UTC (permalink / raw)
  To: igt-dev@lists.freedesktop.org, B, Jeevan

On Thu, 2022-09-08 at 18:44 +0530, Jeevan B wrote:
> Converting the existing subtests to dynamic subtests.
> Adding support for each_pipe, currently PSR2 is supported on
> PIPE_A so breaking the loop for other pipes currently.
> 
> v2: Add commit message and change break to continue. (Jouni)
> v3: Check for pipe supporting PSR2 or not and then add to dynamic
> subtest. (Jouni)
> 
> Signed-off-by: Jeevan B <jeevan.b@intel.com>
> ---
>  tests/i915/kms_psr2_su.c | 63 +++++++++++++++++++++++++-------------
> --
>  1 file changed, 40 insertions(+), 23 deletions(-)
> 
> diff --git a/tests/i915/kms_psr2_su.c b/tests/i915/kms_psr2_su.c
> index caccf713..f63f1483 100644
> --- a/tests/i915/kms_psr2_su.c
> +++ b/tests/i915/kms_psr2_su.c
> @@ -260,13 +260,30 @@ static void cleanup(data_t *data)
>         igt_remove_fb(data->drm_fd, &data->fb[0]);
>  }
>  
> +static int check_psr2_support(data_t *data, enum pipe pipe, int x)
> +{
> +       igt_output_t *output;
> +       igt_display_t *display = &data->display;
> +
> +       igt_display_reset(display);
> +       output = data->output;
> +       igt_output_set_pipe(output, pipe);
> +
> +       prepare(data);

You could remove prepare/cleanup from here and have commond
prepare/cleanup in the loop below. Would that work for you?

> +       x = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
> +       cleanup(data);
> +
> +       return x;
> +}
> +
>  igt_main
>  {
>         data_t data = {};
> +       enum pipe pipe;
> +       int r;
>  
>         igt_fixture {
>                 struct itimerspec interval;
> -               int r;
>  
>                 data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
>                 data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
> @@ -287,12 +304,6 @@ igt_main
>                               "Error enabling PSR2\n");
>                 data.op = FRONTBUFFER;
>                 data.format = DRM_FORMAT_XRGB8888;
> -               prepare(&data);
> -               r = psr_wait_entry(data.debugfs_fd, PSR_MODE_2);
> -               cleanup(&data);
> -               if (!r)
> -                       psr_print_debugfs(data.debugfs_fd);
> -               igt_require_f(r, "PSR2 can not be enabled\n");
>  
>                 /* blocking timerfd */
>                 data.change_screen_timerfd =
> timerfd_create(CLOCK_MONOTONIC, 0);
> @@ -312,23 +323,29 @@ igt_main
>                 while (*format != DRM_FORMAT_INVALID) {
>                         data.format = *format++;
>                         igt_describe("Test that selective update
> works when screen changes");
> -                       igt_subtest_f("%s-%s", op_str(data.op),
> igt_format_str(data.format)) {
> -                               if (data.op == FRONTBUFFER &&
> -                                  
> intel_display_ver(intel_get_drm_devid(data.drm_fd)) >= 12) {
> -                                       /*
> -                                        * FIXME: Display 12+
> platforms now have PSR2
> -                                        * selective fetch enabled by
> default but we
> -                                        * still can't properly
> handle frontbuffer
> -                                        * rendering, so right it
> does full frame
> -                                        * fetches at every
> frontbuffer rendering.
> -                                        * So it is expected that
> this test will fail
> -                                        * in display 12+ platform
> for now.
> -                                        */
> -                                       igt_skip("PSR2 selective
> fetch is doing full frame fetches for frontbuffer rendering\n");
> +                       igt_subtest_with_dynamic_f("%s-%s",
> op_str(data.op), igt_format_str(data.format)) {
> +                               for_each_pipe_with_valid_output(&data
> .display, pipe, data.output) {

call prepare here.

> +                                       if (check_psr2_support(&data,
> pipe, r)) {
> +                                               igt_dynamic_f("pipe-
> %s", kmstest_pipe_name(pipe)) {
> +                                                       if (data.op
> == FRONTBUFFER &&
> +                                                          
> intel_display_ver(intel_get_drm_devid(data.drm_fd)) >= 12) {
> +                                                               /*
> +                                                                *
> FIXME: Display 12+ platforms now have PSR2
> +                                                                *
> selective fetch enabled by default but we
> +                                                                *
> still can't properly handle frontbuffer
> +                                                                *
> rendering, so right it does full frame
> +                                                                *
> fetches at every frontbuffer rendering.
> +                                                                * So
> it is expected that this test will fail
> +                                                                * in
> display 12+ platform for now.
> +                                                                */
> +                                                               igt_s
> kip("PSR2 selective fetch is doing full frame fetches for frontbuffer
> rendering\n");
> +                                                       }
> +                                                       prepare(&data
> );

Remove this one as well.
> +                                                       run(&data);
> +                                                       cleanup(&data

And remove cleanup from here

> );
> +                                               }
> +                                       }
>                                 }
> -                               prepare(&data);
> -                               run(&data);
> -                               cleanup(&data);
>                         }
>                 }

Call cleanup here.

>         }

BR,

Jouni Högander


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

* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: Convert tests to dynamic
  2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: " Jeevan B
@ 2022-09-09 11:36   ` Hogander, Jouni
  2022-09-13 20:42     ` B, Jeevan
  2022-09-14  7:12   ` Hogander, Jouni
  1 sibling, 1 reply; 11+ messages in thread
From: Hogander, Jouni @ 2022-09-09 11:36 UTC (permalink / raw)
  To: igt-dev@lists.freedesktop.org, B, Jeevan

On Thu, 2022-09-08 at 18:44 +0530, Jeevan B wrote:
> Converting the existing subtests to dynamic subtests.
> 
> v2: Check for pipe supporting PSR2 or not and then add to dynamic
> subtest. (Jouni)
> 
> Signed-off-by: Jeevan B <jeevan.b@intel.com>
> ---
>  tests/i915/kms_psr2_sf.c | 259 +++++++++++++++++++++++++++----------
> --
>  1 file changed, 181 insertions(+), 78 deletions(-)
> 
> diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
> index 6612587c..19efc5b9 100644
> --- a/tests/i915/kms_psr2_sf.c
> +++ b/tests/i915/kms_psr2_sf.c
> @@ -838,14 +838,31 @@ static void cleanup(data_t *data)
>         igt_remove_fb(data->drm_fd, &data->fb_test);
>  }
>  
> +static int check_psr2_support(data_t *data, enum pipe pipe, int x)
> +{
> +       igt_output_t *output;
> +       igt_display_t *display = &data->display;
> +
> +       igt_display_reset(display);
> +       output = data->output;
> +       igt_output_set_pipe(output, pipe);
> +
> +       prepare(data);

Same comment here as in that other patch. Share prepare/cleanup in
where this check_psr2_support is called.

Also now I realized this function is doing more that just checking psr
support. Maybe you should move 

igt_display_reset(display);
output = data->output;
igt_output_set_pipe(output, pipe);

into prepare? Would this work for you?

> +       x = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
> +       cleanup(data);
> +
> +       return x;
> +}
> +
>  igt_main
>  {
>         data_t data = {};
>         int i;
> +       enum pipe pipe;
> +       int r;
>  
>         igt_fixture {
>                 drmModeResPtr res;
> -               int r;
>  
>                 data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
>                 data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
> @@ -888,131 +905,211 @@ igt_main
>  
>         /* Verify primary plane selective fetch */
>         igt_describe("Test that selective fetch works on primary
> plane");
> -       igt_subtest_f("primary-%s-sf-dmg-area", op_str(data.op)) {
> -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -                       data.damage_area_count = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area",
> op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.damage_area_coun
> t = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
>                 }
>         }
>  
>         /* Verify primary plane selective fetch with big fb */
>         data.big_fb_test = 1;
>         igt_describe("Test that selective fetch works on primary
> plane with big fb");
> -       igt_subtest_f("primary-%s-sf-dmg-area-big-fb",
> op_str(data.op)) {
> -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -                       data.damage_area_count = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area-big-fb",
> op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.damage_area_coun
> t = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
>                 }
>         }
>         data.big_fb_test = 0;
>  
>         /* Verify overlay plane selective fetch */
>         igt_describe("Test that selective fetch works on overlay
> plane");
> -       igt_subtest_f("overlay-%s-sf-dmg-area", op_str(data.op)) {
> -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -                       data.damage_area_count = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf-dmg-area",
> op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.damage_area_coun
> t = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
>                 }
>         }
>  
>         /* Verify overlay plane selective fetch */
>         igt_describe("Test that selective fetch works on cursor
> plane");
> -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> -               data.damage_area_count = 1;
> -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.damage_area_coun
> t = 1;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS;
>         igt_describe("Test that selective fetch works on moving
> cursor plane (no update)");
> -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
>         igt_describe("Test that selective fetch works on moving
> cursor plane exceeding partially visible area (no update)");
> -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
>         igt_describe("Test that selective fetch works on moving
> cursor plane exceeding fully visible area (no update)");
> -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
> +               }
>         }
>  
>         /* Only for overlay plane */
>         data.op = PLANE_MOVE;
>         /* Verify overlay plane move selective fetch */
>         igt_describe("Test that selective fetch works on moving
> overlay plane");
> -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> -               for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
> -                       data.pos = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                        if (check_psr2_support(&data, pipe, r)) {
> +                                igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = POS_TOP_LEFT; i <=
> POS_BOTTOM_RIGHT ; i++) {
> +                                               data.pos = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                                }
> +                        }
>                 }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS;
>         igt_describe("Test that selective fetch works on moving
> overlay plane (no update)");
> -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                       prepare(&data);
> +                                       run(&data);
> +                                       cleanup(&data);
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
>         igt_describe("Test that selective fetch works on moving
> overlay plane partially exceeding visible area (no update)");
> -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                       prepare(&data);
> +                                       run(&data);
> +                                       cleanup(&data);
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
>         igt_describe("Test that selective fetch works on moving
> overlay plane fully exceeding visible area (no update)");
> -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                       prepare(&data);
> +                                       run(&data);
> +                                       cleanup(&data);
> +                               }
> +                       }
> +               }
>         }
>  
>         /* Verify primary plane selective fetch with overplay plane
> blended */
>         data.op = OVERLAY_PRIM_UPDATE;
>         igt_describe("Test that selective fetch works on primary
> plane "
>                      "with blended overlay plane");
> -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -                       data.damage_area_count = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.damage_area_coun
> t = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
>                 }
>         }
>  
> @@ -1023,12 +1120,18 @@ igt_main
>         data.op = PLANE_UPDATE_CONTINUOUS;
>         data.primary_format = DRM_FORMAT_NV12;
>         igt_describe("Test that selective fetch works on overlay
> plane");
> -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> -                       data.damage_area_count = 1;
> -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       data.damage_area_count = 1;
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                       prepare(&data);
> +                                       run(&data);
> +                                       cleanup(&data);
> +                               }
> +                       }
> +               }
>         }
>  
>         igt_fixture {


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

* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: Convert tests to dynamic
  2022-09-09 11:36   ` Hogander, Jouni
@ 2022-09-13 20:42     ` B, Jeevan
  2022-09-14  6:19       ` Hogander, Jouni
  0 siblings, 1 reply; 11+ messages in thread
From: B, Jeevan @ 2022-09-13 20:42 UTC (permalink / raw)
  To: Hogander, Jouni, igt-dev@lists.freedesktop.org



> -----Original Message-----
> From: Hogander, Jouni <jouni.hogander@intel.com>
> Sent: Friday, September 9, 2022 5:07 PM
> To: igt-dev@lists.freedesktop.org; B, Jeevan <jeevan.b@intel.com>
> Subject: Re: [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: Convert tests to
> dynamic
> 
> On Thu, 2022-09-08 at 18:44 +0530, Jeevan B wrote:
> > Converting the existing subtests to dynamic subtests.
> >
> > v2: Check for pipe supporting PSR2 or not and then add to dynamic
> > subtest. (Jouni)
> >
> > Signed-off-by: Jeevan B <jeevan.b@intel.com>
> > ---
> >  tests/i915/kms_psr2_sf.c | 259 +++++++++++++++++++++++++++----------
> > --
> >  1 file changed, 181 insertions(+), 78 deletions(-)
> >
> > diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c index
> > 6612587c..19efc5b9 100644
> > --- a/tests/i915/kms_psr2_sf.c
> > +++ b/tests/i915/kms_psr2_sf.c
> > @@ -838,14 +838,31 @@ static void cleanup(data_t *data)
> >         igt_remove_fb(data->drm_fd, &data->fb_test);
> >  }
> >
> > +static int check_psr2_support(data_t *data, enum pipe pipe, int x) {
> > +       igt_output_t *output;
> > +       igt_display_t *display = &data->display;
> > +
> > +       igt_display_reset(display);
> > +       output = data->output;
> > +       igt_output_set_pipe(output, pipe);
> > +
> > +       prepare(data);
> 
> Same comment here as in that other patch. Share prepare/cleanup in where
> this check_psr2_support is called.
> 
> Also now I realized this function is doing more that just checking psr
> support. Maybe you should move
> 
Hi, 

I tried to change as suggested. 
+static void prepare(data_t *data, enum pipe pipe)
 {
        igt_plane_t *primary, *sprite = NULL, *cursor = NULL;
        int fb_w, fb_h, x, y, view_w, view_h;
+       igt_output_t *output;
+       igt_display_t *display = &data->display;
+
+       igt_display_reset(display);
+       output = data->output;
+       igt_output_set_pipe(output, pipe);

        if (data->big_fb_test) {
                fb_w = data->big_fb_width;

also share prepare and clean for check_psr2_support. 
In couple of cases tests is failing due to "psr_active_check" failed and also
"No space left on device".

Tried few tweaks didn't work. Any suggestion ??

Thanks 
Jeevan B

> igt_display_reset(display);
> output = data->output;
> igt_output_set_pipe(output, pipe);
> 
> into prepare? Would this work for you?
> 
> > +       x = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
> > +       cleanup(data);
> > +
> > +       return x;
> > +}
> > +
> >  igt_main
> >  {
> >         data_t data = {};
> >         int i;
> > +       enum pipe pipe;
> > +       int r;
> >
> >         igt_fixture {
> >                 drmModeResPtr res;
> > -               int r;
> >
> >                 data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> >                 data.debugfs_fd = igt_debugfs_dir(data.drm_fd); @@
> > -888,131 +905,211 @@ igt_main
> >
> >         /* Verify primary plane selective fetch */
> >         igt_describe("Test that selective fetch works on primary
> > plane");
> > -       igt_subtest_f("primary-%s-sf-dmg-area", op_str(data.op)) {
> > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > -                       data.damage_area_count = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area",
> > op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.damage_area_coun
> > t = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_PRIMARY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> >                 }
> >         }
> >
> >         /* Verify primary plane selective fetch with big fb */
> >         data.big_fb_test = 1;
> >         igt_describe("Test that selective fetch works on primary plane
> > with big fb");
> > -       igt_subtest_f("primary-%s-sf-dmg-area-big-fb",
> > op_str(data.op)) {
> > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > -                       data.damage_area_count = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area-big-fb",
> > op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.damage_area_coun
> > t = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_PRIMARY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> >                 }
> >         }
> >         data.big_fb_test = 0;
> >
> >         /* Verify overlay plane selective fetch */
> >         igt_describe("Test that selective fetch works on overlay
> > plane");
> > -       igt_subtest_f("overlay-%s-sf-dmg-area", op_str(data.op)) {
> > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > -                       data.damage_area_count = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf-dmg-area",
> > op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.damage_area_coun
> > t = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> >                 }
> >         }
> >
> >         /* Verify overlay plane selective fetch */
> >         igt_describe("Test that selective fetch works on cursor
> > plane");
> > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > -               data.damage_area_count = 1;
> > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.damage_area_coun
> > t = 1;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> > +               }
> >         }
> >
> >         data.op = PLANE_MOVE_CONTINUOUS;
> >         igt_describe("Test that selective fetch works on moving cursor
> > plane (no update)");
> > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> > +               }
> >         }
> >
> >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
> >         igt_describe("Test that selective fetch works on moving cursor
> > plane exceeding partially visible area (no update)");
> > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> > +               }
> >         }
> >
> >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
> >         igt_describe("Test that selective fetch works on moving cursor
> > plane exceeding fully visible area (no update)");
> > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> > +               }
> >         }
> >
> >         /* Only for overlay plane */
> >         data.op = PLANE_MOVE;
> >         /* Verify overlay plane move selective fetch */
> >         igt_describe("Test that selective fetch works on moving
> > overlay plane");
> > -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> > -               for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
> > -                       data.pos = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                        if (check_psr2_support(&data, pipe, r)) {
> > +                                igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = POS_TOP_LEFT; i <=
> > POS_BOTTOM_RIGHT ; i++) {
> > +                                               data.pos = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                                }
> > +                        }
> >                 }
> >         }
> >
> >         data.op = PLANE_MOVE_CONTINUOUS;
> >         igt_describe("Test that selective fetch works on moving
> > overlay plane (no update)");
> > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                       prepare(&data);
> > +                                       run(&data);
> > +                                       cleanup(&data);
> > +                               }
> > +                       }
> > +               }
> >         }
> >
> >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
> >         igt_describe("Test that selective fetch works on moving
> > overlay plane partially exceeding visible area (no update)");
> > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                       prepare(&data);
> > +                                       run(&data);
> > +                                       cleanup(&data);
> > +                               }
> > +                       }
> > +               }
> >         }
> >
> >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
> >         igt_describe("Test that selective fetch works on moving
> > overlay plane fully exceeding visible area (no update)");
> > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                       prepare(&data);
> > +                                       run(&data);
> > +                                       cleanup(&data);
> > +                               }
> > +                       }
> > +               }
> >         }
> >
> >         /* Verify primary plane selective fetch with overplay plane
> > blended */
> >         data.op = OVERLAY_PRIM_UPDATE;
> >         igt_describe("Test that selective fetch works on primary plane
> > "
> >                      "with blended overlay plane");
> > -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > -                       data.damage_area_count = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.damage_area_coun
> > t = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_PRIMARY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> >                 }
> >         }
> >
> > @@ -1023,12 +1120,18 @@ igt_main
> >         data.op = PLANE_UPDATE_CONTINUOUS;
> >         data.primary_format = DRM_FORMAT_NV12;
> >         igt_describe("Test that selective fetch works on overlay
> > plane");
> > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > -                       data.damage_area_count = 1;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       data.damage_area_count = 1;
> > +                                       data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                       prepare(&data);
> > +                                       run(&data);
> > +                                       cleanup(&data);
> > +                               }
> > +                       }
> > +               }
> >         }
> >
> >         igt_fixture {


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

* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: Convert tests to dynamic
  2022-09-13 20:42     ` B, Jeevan
@ 2022-09-14  6:19       ` Hogander, Jouni
  0 siblings, 0 replies; 11+ messages in thread
From: Hogander, Jouni @ 2022-09-14  6:19 UTC (permalink / raw)
  To: igt-dev@lists.freedesktop.org, B, Jeevan

On Tue, 2022-09-13 at 20:42 +0000, B, Jeevan wrote:
> 
> 
> > -----Original Message-----
> > From: Hogander, Jouni <jouni.hogander@intel.com>
> > Sent: Friday, September 9, 2022 5:07 PM
> > To: igt-dev@lists.freedesktop.org; B, Jeevan <jeevan.b@intel.com>
> > Subject: Re: [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: Convert
> > tests to
> > dynamic
> > 
> > On Thu, 2022-09-08 at 18:44 +0530, Jeevan B wrote:
> > > Converting the existing subtests to dynamic subtests.
> > > 
> > > v2: Check for pipe supporting PSR2 or not and then add to dynamic
> > > subtest. (Jouni)
> > > 
> > > Signed-off-by: Jeevan B <jeevan.b@intel.com>
> > > ---
> > >  tests/i915/kms_psr2_sf.c | 259 +++++++++++++++++++++++++++------
> > > ----
> > > --
> > >  1 file changed, 181 insertions(+), 78 deletions(-)
> > > 
> > > diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
> > > index
> > > 6612587c..19efc5b9 100644
> > > --- a/tests/i915/kms_psr2_sf.c
> > > +++ b/tests/i915/kms_psr2_sf.c
> > > @@ -838,14 +838,31 @@ static void cleanup(data_t *data)
> > >         igt_remove_fb(data->drm_fd, &data->fb_test);
> > >  }
> > > 
> > > +static int check_psr2_support(data_t *data, enum pipe pipe, int
> > > x) {
> > > +       igt_output_t *output;
> > > +       igt_display_t *display = &data->display;
> > > +
> > > +       igt_display_reset(display);
> > > +       output = data->output;
> > > +       igt_output_set_pipe(output, pipe);
> > > +
> > > +       prepare(data);
> > 
> > Same comment here as in that other patch. Share prepare/cleanup in
> > where
> > this check_psr2_support is called.
> > 
> > Also now I realized this function is doing more that just checking
> > psr
> > support. Maybe you should move
> > 
> Hi, 
> 
> I tried to change as suggested. 
> +static void prepare(data_t *data, enum pipe pipe)
>  {
>         igt_plane_t *primary, *sprite = NULL, *cursor = NULL;
>         int fb_w, fb_h, x, y, view_w, view_h;
> +       igt_output_t *output;
> +       igt_display_t *display = &data->display;
> +
> +       igt_display_reset(display);
> +       output = data->output;
> +       igt_output_set_pipe(output, pipe);
> 
>         if (data->big_fb_test) {
>                 fb_w = data->big_fb_width;
> 
> also share prepare and clean for check_psr2_support. 
> In couple of cases tests is failing due to "psr_active_check" failed
> and also
> "No space left on device".
> 
> Tried few tweaks didn't work. Any suggestion ??

Ok, this is probably because prepare is depending on damage_area_count
and test_plane_id. Let's keep this part as it was in your last patch.
Sorry for confusion here. My bad.

I found couple of other issues in your patch. I will comment these in
separate reply to your patch.

> 
> Thanks 
> Jeevan B
> 
> > igt_display_reset(display);
> > output = data->output;
> > igt_output_set_pipe(output, pipe);
> > 
> > into prepare? Would this work for you?
> > 
> > > +       x = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
> > > +       cleanup(data);
> > > +
> > > +       return x;
> > > +}
> > > +
> > >  igt_main
> > >  {
> > >         data_t data = {};
> > >         int i;
> > > +       enum pipe pipe;
> > > +       int r;
> > > 
> > >         igt_fixture {
> > >                 drmModeResPtr res;
> > > -               int r;
> > > 
> > >                 data.drm_fd =
> > > drm_open_driver_master(DRIVER_INTEL);
> > >                 data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
> > > @@
> > > -888,131 +905,211 @@ igt_main
> > > 
> > >         /* Verify primary plane selective fetch */
> > >         igt_describe("Test that selective fetch works on primary
> > > plane");
> > > -       igt_subtest_f("primary-%s-sf-dmg-area", op_str(data.op))
> > > {
> > > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > > -                       data.damage_area_count = i;
> > > -                       data.test_plane_id =
> > > DRM_PLANE_TYPE_PRIMARY;
> > > -                       prepare(&data);
> > > -                       run(&data);
> > > -                       cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area",
> > > op_str(data.op)) {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       for (i = 1; i <=
> > > MAX_DAMAGE_AREAS; i++) {
> > > +                                               data.damage_area_
> > > coun
> > > t = i;
> > > +                                               data.test_plane_i
> > > d =
> > > DRM_PLANE_TYPE_PRIMARY;
> > > +                                               prepare(&data);
> > > +                                               run(&data);
> > > +                                               cleanup(&data);
> > > +                                       }
> > > +                               }
> > > +                       }
> > >                 }
> > >         }
> > > 
> > >         /* Verify primary plane selective fetch with big fb */
> > >         data.big_fb_test = 1;
> > >         igt_describe("Test that selective fetch works on primary
> > > plane
> > > with big fb");
> > > -       igt_subtest_f("primary-%s-sf-dmg-area-big-fb",
> > > op_str(data.op)) {
> > > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > > -                       data.damage_area_count = i;
> > > -                       data.test_plane_id =
> > > DRM_PLANE_TYPE_PRIMARY;
> > > -                       prepare(&data);
> > > -                       run(&data);
> > > -                       cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area-big-
> > > fb",
> > > op_str(data.op)) {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       for (i = 1; i <=
> > > MAX_DAMAGE_AREAS; i++) {
> > > +                                               data.damage_area_
> > > coun
> > > t = i;
> > > +                                               data.test_plane_i
> > > d =
> > > DRM_PLANE_TYPE_PRIMARY;
> > > +                                               prepare(&data);
> > > +                                               run(&data);
> > > +                                               cleanup(&data);
> > > +                                       }
> > > +                               }
> > > +                       }
> > >                 }
> > >         }
> > >         data.big_fb_test = 0;
> > > 
> > >         /* Verify overlay plane selective fetch */
> > >         igt_describe("Test that selective fetch works on overlay
> > > plane");
> > > -       igt_subtest_f("overlay-%s-sf-dmg-area", op_str(data.op))
> > > {
> > > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > > -                       data.damage_area_count = i;
> > > -                       data.test_plane_id =
> > > DRM_PLANE_TYPE_OVERLAY;
> > > -                       prepare(&data);
> > > -                       run(&data);
> > > -                       cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("overlay-%s-sf-dmg-area",
> > > op_str(data.op)) {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       for (i = 1; i <=
> > > MAX_DAMAGE_AREAS; i++) {
> > > +                                               data.damage_area_
> > > coun
> > > t = i;
> > > +                                               data.test_plane_i
> > > d =
> > > DRM_PLANE_TYPE_OVERLAY;
> > > +                                               prepare(&data);
> > > +                                               run(&data);
> > > +                                               cleanup(&data);
> > > +                                       }
> > > +                               }
> > > +                       }
> > >                 }
> > >         }
> > > 
> > >         /* Verify overlay plane selective fetch */
> > >         igt_describe("Test that selective fetch works on cursor
> > > plane");
> > > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > > -               data.damage_area_count = 1;
> > > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > > -               prepare(&data);
> > > -               run(&data);
> > > -               cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("cursor-%s-sf",
> > > op_str(data.op)) {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       for (i = 1; i <=
> > > MAX_DAMAGE_AREAS; i++) {
> > > +                                               data.damage_area_
> > > coun
> > > t = 1;
> > > +                                               data.test_plane_i
> > > d =
> > > DRM_PLANE_TYPE_CURSOR;
> > > +                                               prepare(&data);
> > > +                                               run(&data);
> > > +                                               cleanup(&data);
> > > +                                       }
> > > +                               }
> > > +                       }
> > > +               }
> > >         }
> > > 
> > >         data.op = PLANE_MOVE_CONTINUOUS;
> > >         igt_describe("Test that selective fetch works on moving
> > > cursor
> > > plane (no update)");
> > > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > > -               prepare(&data);
> > > -               run(&data);
> > > -               cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("cursor-%s-sf",
> > > op_str(data.op)) {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       for (i = 1; i <=
> > > MAX_DAMAGE_AREAS; i++) {
> > > +                                               data.test_plane_i
> > > d =
> > > DRM_PLANE_TYPE_CURSOR;
> > > +                                               prepare(&data);
> > > +                                               run(&data);
> > > +                                               cleanup(&data);
> > > +                                       }
> > > +                               }
> > > +                       }
> > > +               }
> > >         }
> > > 
> > >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
> > >         igt_describe("Test that selective fetch works on moving
> > > cursor
> > > plane exceeding partially visible area (no update)");
> > > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > > -               prepare(&data);
> > > -               run(&data);
> > > -               cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("cursor-%s-sf",
> > > op_str(data.op)) {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       for (i = 1; i <=
> > > MAX_DAMAGE_AREAS; i++) {
> > > +                                               data.test_plane_i
> > > d =
> > > DRM_PLANE_TYPE_CURSOR;
> > > +                                               prepare(&data);
> > > +                                               run(&data);
> > > +                                               cleanup(&data);
> > > +                                       }
> > > +                               }
> > > +                       }
> > > +               }
> > >         }
> > > 
> > >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
> > >         igt_describe("Test that selective fetch works on moving
> > > cursor
> > > plane exceeding fully visible area (no update)");
> > > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > > -               prepare(&data);
> > > -               run(&data);
> > > -               cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("cursor-%s-sf",
> > > op_str(data.op)) {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       for (i = 1; i <=
> > > MAX_DAMAGE_AREAS; i++) {
> > > +                                               data.test_plane_i
> > > d =
> > > DRM_PLANE_TYPE_CURSOR;
> > > +                                               prepare(&data);
> > > +                                               run(&data);
> > > +                                               cleanup(&data);
> > > +                                       }
> > > +                               }
> > > +                       }
> > > +               }
> > >         }
> > > 
> > >         /* Only for overlay plane */
> > >         data.op = PLANE_MOVE;
> > >         /* Verify overlay plane move selective fetch */
> > >         igt_describe("Test that selective fetch works on moving
> > > overlay plane");
> > > -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> > > -               for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ;
> > > i++) {
> > > -                       data.pos = i;
> > > -                       data.test_plane_id =
> > > DRM_PLANE_TYPE_OVERLAY;
> > > -                       prepare(&data);
> > > -                       run(&data);
> > > -                       cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("%s-sf-dmg-area",
> > > op_str(data.op))
> > > {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                        if (check_psr2_support(&data, pipe, r))
> > > {
> > > +                                igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       for (i = POS_TOP_LEFT; i
> > > <=
> > > POS_BOTTOM_RIGHT ; i++) {
> > > +                                               data.pos = i;
> > > +                                               data.test_plane_i
> > > d =
> > > DRM_PLANE_TYPE_OVERLAY;
> > > +                                               prepare(&data);
> > > +                                               run(&data);
> > > +                                               cleanup(&data);
> > > +                                       }
> > > +                                }
> > > +                        }
> > >                 }
> > >         }
> > > 
> > >         data.op = PLANE_MOVE_CONTINUOUS;
> > >         igt_describe("Test that selective fetch works on moving
> > > overlay plane (no update)");
> > > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > > -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > > -               prepare(&data);
> > > -               run(&data);
> > > -               cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("overlay-%s-sf",
> > > op_str(data.op))
> > > {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       data.test_plane_id =
> > > DRM_PLANE_TYPE_OVERLAY;
> > > +                                       prepare(&data);
> > > +                                       run(&data);
> > > +                                       cleanup(&data);
> > > +                               }
> > > +                       }
> > > +               }
> > >         }
> > > 
> > >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
> > >         igt_describe("Test that selective fetch works on moving
> > > overlay plane partially exceeding visible area (no update)");
> > > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > > -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > > -               prepare(&data);
> > > -               run(&data);
> > > -               cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("overlay-%s-sf",
> > > op_str(data.op))
> > > {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       data.test_plane_id =
> > > DRM_PLANE_TYPE_OVERLAY;
> > > +                                       prepare(&data);
> > > +                                       run(&data);
> > > +                                       cleanup(&data);
> > > +                               }
> > > +                       }
> > > +               }
> > >         }
> > > 
> > >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
> > >         igt_describe("Test that selective fetch works on moving
> > > overlay plane fully exceeding visible area (no update)");
> > > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > > -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > > -               prepare(&data);
> > > -               run(&data);
> > > -               cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("overlay-%s-sf",
> > > op_str(data.op))
> > > {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       data.test_plane_id =
> > > DRM_PLANE_TYPE_OVERLAY;
> > > +                                       prepare(&data);
> > > +                                       run(&data);
> > > +                                       cleanup(&data);
> > > +                               }
> > > +                       }
> > > +               }
> > >         }
> > > 
> > >         /* Verify primary plane selective fetch with overplay
> > > plane
> > > blended */
> > >         data.op = OVERLAY_PRIM_UPDATE;
> > >         igt_describe("Test that selective fetch works on primary
> > > plane
> > > "
> > >                      "with blended overlay plane");
> > > -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> > > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > > -                       data.damage_area_count = i;
> > > -                       data.test_plane_id =
> > > DRM_PLANE_TYPE_PRIMARY;
> > > -                       prepare(&data);
> > > -                       run(&data);
> > > -                       cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("%s-sf-dmg-area",
> > > op_str(data.op))
> > > {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       for (i = 1; i <=
> > > MAX_DAMAGE_AREAS; i++) {
> > > +                                               data.damage_area_
> > > coun
> > > t = i;
> > > +                                               data.test_plane_i
> > > d =
> > > DRM_PLANE_TYPE_PRIMARY;
> > > +                                               prepare(&data);
> > > +                                               run(&data);
> > > +                                               cleanup(&data);
> > > +                                       }
> > > +                               }
> > > +                       }
> > >                 }
> > >         }
> > > 
> > > @@ -1023,12 +1120,18 @@ igt_main
> > >         data.op = PLANE_UPDATE_CONTINUOUS;
> > >         data.primary_format = DRM_FORMAT_NV12;
> > >         igt_describe("Test that selective fetch works on overlay
> > > plane");
> > > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > > -                       data.damage_area_count = 1;
> > > -                       data.test_plane_id =
> > > DRM_PLANE_TYPE_OVERLAY;
> > > -                       prepare(&data);
> > > -                       run(&data);
> > > -                       cleanup(&data);
> > > +       igt_subtest_with_dynamic_f("overlay-%s-sf",
> > > op_str(data.op))
> > > {
> > > +               for_each_pipe_with_valid_output(&data.display,
> > > pipe,
> > > data.output) {
> > > +                       if (check_psr2_support(&data, pipe, r)) {
> > > +                               igt_dynamic_f("pipe-%s",
> > > kmstest_pipe_name(pipe)) {
> > > +                                       data.damage_area_count =
> > > 1;
> > > +                                       data.test_plane_id =
> > > DRM_PLANE_TYPE_OVERLAY;
> > > +                                       prepare(&data);
> > > +                                       run(&data);
> > > +                                       cleanup(&data);
> > > +                               }
> > > +                       }
> > > +               }
> > >         }
> > > 
> > >         igt_fixture {
> 


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

* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: Convert tests to dynamic
  2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: " Jeevan B
  2022-09-09 11:36   ` Hogander, Jouni
@ 2022-09-14  7:12   ` Hogander, Jouni
  2022-09-14  8:18     ` Petri Latvala
  1 sibling, 1 reply; 11+ messages in thread
From: Hogander, Jouni @ 2022-09-14  7:12 UTC (permalink / raw)
  To: igt-dev@lists.freedesktop.org, B, Jeevan

On Thu, 2022-09-08 at 18:44 +0530, Jeevan B wrote:
> Converting the existing subtests to dynamic subtests.
> 
> v2: Check for pipe supporting PSR2 or not and then add to dynamic
> subtest. (Jouni)
> 
> Signed-off-by: Jeevan B <jeevan.b@intel.com>
> ---
>  tests/i915/kms_psr2_sf.c | 259 +++++++++++++++++++++++++++----------
> --
>  1 file changed, 181 insertions(+), 78 deletions(-)
> 
> diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
> index 6612587c..19efc5b9 100644
> --- a/tests/i915/kms_psr2_sf.c
> +++ b/tests/i915/kms_psr2_sf.c
> @@ -838,14 +838,31 @@ static void cleanup(data_t *data)
>         igt_remove_fb(data->drm_fd, &data->fb_test);
>  }
>  
> +static int check_psr2_support(data_t *data, enum pipe pipe, int x)

I think you can drop int x.

> +{
> +       igt_output_t *output;
> +       igt_display_t *display = &data->display;
> +
> +       igt_display_reset(display);
> +       output = data->output;
> +       igt_output_set_pipe(output, pipe);
> +
> +       prepare(data);
> +       x = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
> +       cleanup(data);
> +
> +       return x;
> +}

How about checking psr2 support once in fixture:

...
int pipes[IGT_MAX_PIPES];
int n_pipes = 0;
...
for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
	if (check_psr2_support(&data, pipe) {
		pipes[n_pipes] = pipe;
		n_pipes++;
	}
}
	
Then just iterate pipes array later instead of rechecking for each
testcase.

> +
>  igt_main
>  {
>         data_t data = {};
>         int i;
> +       enum pipe pipe;
> +       int r;
>  
>         igt_fixture {
>                 drmModeResPtr res;
> -               int r;
>  
>                 data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
>                 data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
> @@ -888,131 +905,211 @@ igt_main
>  
>         /* Verify primary plane selective fetch */
>         igt_describe("Test that selective fetch works on primary
> plane");
> -       igt_subtest_f("primary-%s-sf-dmg-area", op_str(data.op)) {
> -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -                       data.damage_area_count = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area",
> op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.damage_area_coun
> t = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
>                 }
>         }
>  
>         /* Verify primary plane selective fetch with big fb */
>         data.big_fb_test = 1;
>         igt_describe("Test that selective fetch works on primary
> plane with big fb");
> -       igt_subtest_f("primary-%s-sf-dmg-area-big-fb",
> op_str(data.op)) {
> -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -                       data.damage_area_count = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area-big-fb",
> op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.damage_area_coun
> t = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
>                 }
>         }
>         data.big_fb_test = 0;
>  
>         /* Verify overlay plane selective fetch */
>         igt_describe("Test that selective fetch works on overlay
> plane");
> -       igt_subtest_f("overlay-%s-sf-dmg-area", op_str(data.op)) {
> -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -                       data.damage_area_count = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf-dmg-area",
> op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.damage_area_coun
> t = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
>                 }
>         }
>  
>         /* Verify overlay plane selective fetch */
>         igt_describe("Test that selective fetch works on cursor
> plane");
> -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> -               data.damage_area_count = 1;
> -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {

No need to iterate damage areas.

> +                                               data.damage_area_coun
> t = 1;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS;
>         igt_describe("Test that selective fetch works on moving
> cursor plane (no update)");
> -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {

Same here

> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
>         igt_describe("Test that selective fetch works on moving
> cursor plane exceeding partially visible area (no update)");
> -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {

Here as well.

> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
>         igt_describe("Test that selective fetch works on moving
> cursor plane exceeding fully visible area (no update)");
> -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {

and here.

> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_CURSOR;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
> +               }
>         }
>  
>         /* Only for overlay plane */
>         data.op = PLANE_MOVE;
>         /* Verify overlay plane move selective fetch */
>         igt_describe("Test that selective fetch works on moving
> overlay plane");
> -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> -               for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
> -                       data.pos = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                        if (check_psr2_support(&data, pipe, r)) {
> +                                igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = POS_TOP_LEFT; i <=
> POS_BOTTOM_RIGHT ; i++) {
> +                                               data.pos = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                                }
> +                        }
>                 }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS;
>         igt_describe("Test that selective fetch works on moving
> overlay plane (no update)");
> -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                       prepare(&data);
> +                                       run(&data);
> +                                       cleanup(&data);
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
>         igt_describe("Test that selective fetch works on moving
> overlay plane partially exceeding visible area (no update)");
> -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                       prepare(&data);
> +                                       run(&data);
> +                                       cleanup(&data);
> +                               }
> +                       }
> +               }
>         }
>  
>         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
>         igt_describe("Test that selective fetch works on moving
> overlay plane fully exceeding visible area (no update)");
> -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -               prepare(&data);
> -               run(&data);
> -               cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                       prepare(&data);
> +                                       run(&data);
> +                                       cleanup(&data);
> +                               }
> +                       }
> +               }
>         }
>  
>         /* Verify primary plane selective fetch with overplay plane
> blended */
>         data.op = OVERLAY_PRIM_UPDATE;
>         igt_describe("Test that selective fetch works on primary
> plane "
>                      "with blended overlay plane");
> -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> -                       data.damage_area_count = i;
> -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       for (i = 1; i <=
> MAX_DAMAGE_AREAS; i++) {
> +                                               data.damage_area_coun
> t = i;
> +                                               data.test_plane_id =
> DRM_PLANE_TYPE_PRIMARY;
> +                                               prepare(&data);
> +                                               run(&data);
> +                                               cleanup(&data);
> +                                       }
> +                               }
> +                       }
>                 }
>         }
>  
> @@ -1023,12 +1120,18 @@ igt_main
>         data.op = PLANE_UPDATE_CONTINUOUS;
>         data.primary_format = DRM_FORMAT_NV12;
>         igt_describe("Test that selective fetch works on overlay
> plane");
> -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> -                       data.damage_area_count = 1;
> -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> -                       prepare(&data);
> -                       run(&data);
> -                       cleanup(&data);
> +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> {
> +               for_each_pipe_with_valid_output(&data.display, pipe,
> data.output) {
> +                       if (check_psr2_support(&data, pipe, r)) {
> +                               igt_dynamic_f("pipe-%s",
> kmstest_pipe_name(pipe)) {
> +                                       data.damage_area_count = 1;
> +                                       data.test_plane_id =
> DRM_PLANE_TYPE_OVERLAY;
> +                                       prepare(&data);
> +                                       run(&data);
> +                                       cleanup(&data);
> +                               }
> +                       }
> +               }
>         }
>  
>         igt_fixture {


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

* Re: [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: Convert tests to dynamic
  2022-09-14  7:12   ` Hogander, Jouni
@ 2022-09-14  8:18     ` Petri Latvala
  0 siblings, 0 replies; 11+ messages in thread
From: Petri Latvala @ 2022-09-14  8:18 UTC (permalink / raw)
  To: Hogander, Jouni; +Cc: igt-dev@lists.freedesktop.org

On Wed, Sep 14, 2022 at 07:12:03AM +0000, Hogander, Jouni wrote:
> On Thu, 2022-09-08 at 18:44 +0530, Jeevan B wrote:
> > Converting the existing subtests to dynamic subtests.
> > 
> > v2: Check for pipe supporting PSR2 or not and then add to dynamic
> > subtest. (Jouni)
> > 
> > Signed-off-by: Jeevan B <jeevan.b@intel.com>
> > ---
> >  tests/i915/kms_psr2_sf.c | 259 +++++++++++++++++++++++++++----------
> > --
> >  1 file changed, 181 insertions(+), 78 deletions(-)
> > 
> > diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
> > index 6612587c..19efc5b9 100644
> > --- a/tests/i915/kms_psr2_sf.c
> > +++ b/tests/i915/kms_psr2_sf.c
> > @@ -838,14 +838,31 @@ static void cleanup(data_t *data)
> >         igt_remove_fb(data->drm_fd, &data->fb_test);
> >  }
> >  
> > +static int check_psr2_support(data_t *data, enum pipe pipe, int x)
> 
> I think you can drop int x.
> 
> > +{
> > +       igt_output_t *output;
> > +       igt_display_t *display = &data->display;
> > +
> > +       igt_display_reset(display);
> > +       output = data->output;
> > +       igt_output_set_pipe(output, pipe);
> > +
> > +       prepare(data);
> > +       x = psr_wait_entry(data->debugfs_fd, PSR_MODE_2);
> > +       cleanup(data);
> > +
> > +       return x;
> > +}
> 
> How about checking psr2 support once in fixture:
> 
> ...
> int pipes[IGT_MAX_PIPES];
> int n_pipes = 0;
> ...
> for_each_pipe_with_valid_output(&data.display, pipe, data.output) {
> 	if (check_psr2_support(&data, pipe) {
> 		pipes[n_pipes] = pipe;
> 		n_pipes++;
> 	}
> }
> 	
> Then just iterate pipes array later instead of rechecking for each
> testcase.

Drive-by correction: for_each_pipe_with_single_output.


-- 
Petri Latvala



> 
> > +
> >  igt_main
> >  {
> >         data_t data = {};
> >         int i;
> > +       enum pipe pipe;
> > +       int r;
> >  
> >         igt_fixture {
> >                 drmModeResPtr res;
> > -               int r;
> >  
> >                 data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> >                 data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
> > @@ -888,131 +905,211 @@ igt_main
> >  
> >         /* Verify primary plane selective fetch */
> >         igt_describe("Test that selective fetch works on primary
> > plane");
> > -       igt_subtest_f("primary-%s-sf-dmg-area", op_str(data.op)) {
> > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > -                       data.damage_area_count = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area",
> > op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.damage_area_coun
> > t = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_PRIMARY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> >                 }
> >         }
> >  
> >         /* Verify primary plane selective fetch with big fb */
> >         data.big_fb_test = 1;
> >         igt_describe("Test that selective fetch works on primary
> > plane with big fb");
> > -       igt_subtest_f("primary-%s-sf-dmg-area-big-fb",
> > op_str(data.op)) {
> > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > -                       data.damage_area_count = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area-big-fb",
> > op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.damage_area_coun
> > t = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_PRIMARY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> >                 }
> >         }
> >         data.big_fb_test = 0;
> >  
> >         /* Verify overlay plane selective fetch */
> >         igt_describe("Test that selective fetch works on overlay
> > plane");
> > -       igt_subtest_f("overlay-%s-sf-dmg-area", op_str(data.op)) {
> > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > -                       data.damage_area_count = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf-dmg-area",
> > op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.damage_area_coun
> > t = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> >                 }
> >         }
> >  
> >         /* Verify overlay plane selective fetch */
> >         igt_describe("Test that selective fetch works on cursor
> > plane");
> > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > -               data.damage_area_count = 1;
> > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> 
> No need to iterate damage areas.
> 
> > +                                               data.damage_area_coun
> > t = 1;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> > +               }
> >         }
> >  
> >         data.op = PLANE_MOVE_CONTINUOUS;
> >         igt_describe("Test that selective fetch works on moving
> > cursor plane (no update)");
> > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> 
> Same here
> 
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> > +               }
> >         }
> >  
> >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
> >         igt_describe("Test that selective fetch works on moving
> > cursor plane exceeding partially visible area (no update)");
> > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> 
> Here as well.
> 
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> > +               }
> >         }
> >  
> >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
> >         igt_describe("Test that selective fetch works on moving
> > cursor plane exceeding fully visible area (no update)");
> > -       igt_subtest_f("cursor-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_CURSOR;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> 
> and here.
> 
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_CURSOR;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> > +               }
> >         }
> >  
> >         /* Only for overlay plane */
> >         data.op = PLANE_MOVE;
> >         /* Verify overlay plane move selective fetch */
> >         igt_describe("Test that selective fetch works on moving
> > overlay plane");
> > -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> > -               for (i = POS_TOP_LEFT; i <= POS_BOTTOM_RIGHT ; i++) {
> > -                       data.pos = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                        if (check_psr2_support(&data, pipe, r)) {
> > +                                igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = POS_TOP_LEFT; i <=
> > POS_BOTTOM_RIGHT ; i++) {
> > +                                               data.pos = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                                }
> > +                        }
> >                 }
> >         }
> >  
> >         data.op = PLANE_MOVE_CONTINUOUS;
> >         igt_describe("Test that selective fetch works on moving
> > overlay plane (no update)");
> > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                       prepare(&data);
> > +                                       run(&data);
> > +                                       cleanup(&data);
> > +                               }
> > +                       }
> > +               }
> >         }
> >  
> >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED;
> >         igt_describe("Test that selective fetch works on moving
> > overlay plane partially exceeding visible area (no update)");
> > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                       prepare(&data);
> > +                                       run(&data);
> > +                                       cleanup(&data);
> > +                               }
> > +                       }
> > +               }
> >         }
> >  
> >         data.op = PLANE_MOVE_CONTINUOUS_EXCEED_FULLY;
> >         igt_describe("Test that selective fetch works on moving
> > overlay plane fully exceeding visible area (no update)");
> > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > -               data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -               prepare(&data);
> > -               run(&data);
> > -               cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                       prepare(&data);
> > +                                       run(&data);
> > +                                       cleanup(&data);
> > +                               }
> > +                       }
> > +               }
> >         }
> >  
> >         /* Verify primary plane selective fetch with overplay plane
> > blended */
> >         data.op = OVERLAY_PRIM_UPDATE;
> >         igt_describe("Test that selective fetch works on primary
> > plane "
> >                      "with blended overlay plane");
> > -       igt_subtest_f("%s-sf-dmg-area", op_str(data.op)) {
> > -               for (i = 1; i <= MAX_DAMAGE_AREAS; i++) {
> > -                       data.damage_area_count = i;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_PRIMARY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       for (i = 1; i <=
> > MAX_DAMAGE_AREAS; i++) {
> > +                                               data.damage_area_coun
> > t = i;
> > +                                               data.test_plane_id =
> > DRM_PLANE_TYPE_PRIMARY;
> > +                                               prepare(&data);
> > +                                               run(&data);
> > +                                               cleanup(&data);
> > +                                       }
> > +                               }
> > +                       }
> >                 }
> >         }
> >  
> > @@ -1023,12 +1120,18 @@ igt_main
> >         data.op = PLANE_UPDATE_CONTINUOUS;
> >         data.primary_format = DRM_FORMAT_NV12;
> >         igt_describe("Test that selective fetch works on overlay
> > plane");
> > -       igt_subtest_f("overlay-%s-sf", op_str(data.op)) {
> > -                       data.damage_area_count = 1;
> > -                       data.test_plane_id = DRM_PLANE_TYPE_OVERLAY;
> > -                       prepare(&data);
> > -                       run(&data);
> > -                       cleanup(&data);
> > +       igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op))
> > {
> > +               for_each_pipe_with_valid_output(&data.display, pipe,
> > data.output) {
> > +                       if (check_psr2_support(&data, pipe, r)) {
> > +                               igt_dynamic_f("pipe-%s",
> > kmstest_pipe_name(pipe)) {
> > +                                       data.damage_area_count = 1;
> > +                                       data.test_plane_id =
> > DRM_PLANE_TYPE_OVERLAY;
> > +                                       prepare(&data);
> > +                                       run(&data);
> > +                                       cleanup(&data);
> > +                               }
> > +                       }
> > +               }
> >         }
> >  
> >         igt_fixture {
> 

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

end of thread, other threads:[~2022-09-14  8:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-08 13:14 [igt-dev] [PATCH i-g-t 0/2] Convert PSR2 sf & su test to dynamic Jeevan B
2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 1/2] tests/i915/kms_psr2_su: Convert tests " Jeevan B
2022-09-09 11:23   ` Hogander, Jouni
2022-09-08 13:14 ` [igt-dev] [PATCH i-g-t 2/2] tests/i915/kms_psr2_sf: " Jeevan B
2022-09-09 11:36   ` Hogander, Jouni
2022-09-13 20:42     ` B, Jeevan
2022-09-14  6:19       ` Hogander, Jouni
2022-09-14  7:12   ` Hogander, Jouni
2022-09-14  8:18     ` Petri Latvala
2022-09-08 13:55 ` [igt-dev] ✓ Fi.CI.BAT: success for Convert PSR2 sf & su test " Patchwork
2022-09-08 18:20 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox