All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner
@ 2023-02-23 15:09 Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 01/51] lib/igt_kms: Add a helper for valid pipe/output constraint Bhanuprakash Modem
                   ` (55 more replies)
  0 siblings, 56 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

Add IGT support for bigjoiner:
* Pipe-D won't support mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Rebase
V3: - Optimizations in helper
V4, V5: - Rebase
V6: - Drop kms_content_protection & kms_multipipe_modeset
    - Fix kms_cdclk
V7: - Add kms_content_protection
V8: - Rebase

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>

Bhanuprakash Modem (51):
  lib/igt_kms: Add a helper for valid pipe/output constraint
  lib/igt_kms: Bigjoiner check in max_bpc constraint
  tests/kms_async_flips: Add support for Bigjoiner
  tests/kms_atomic: Add support for Bigjoiner
  tests/kms_atomic_interruptible: Add support for Bigjoiner
  tests/kms_atomic_transition: Add support for Bigjoiner
  tests/kms_color_helper: Helper to check Bigjoiner constraint
  tests/kms_color: Add support for Bigjoiner
  tests/chamelium/kms_color_chamelium: Add support for Bigjoiner
  tests/kms_content_protection: Add support for Bigjoiner
  tests/kms_concurrent: Add support for Bigjoiner
  tests/kms_cursor_crc: Add support for Bigjoiner
  tests/kms_cursor_edge_walk: Add support for Bigjoiner
  tests/kms_cursor_legacy: Add support for Bigjoiner
  tests/kms_display_modes: Add support for Bigjoiner
  tests/kms_dp_tiled_display: Add support for Bigjoiner
  tests/kms_flip_event_leak: Add support for Bigjoiner
  tests/kms_invalid_mode: Add support for Bigjoiner
  tests/kms_lease: Add support for Bigjoiner
  tests/kms_pipe_crc_basic: Add support for Bigjoiner
  tests/kms_plane: Add support for Bigjoiner
  tests/kms_plane_alpha_blend: Add support for Bigjoiner
  tests/kms_plane_cursor: Add support for Bigjoiner
  tests/kms_plane_lowres: Add support for Bigjoiner
  tests/kms_plane_multiple: Add support for Bigjoiner
  tests/kms_plane_scaling: Add support for Bigjoiner
  tests/kms_prime: Add support for Bigjoiner
  tests/kms_properties: Add support for Bigjoiner
  tests/kms_rmfb: Add support for Bigjoiner
  tests/kms_rotation_crc: Add support for Bigjoiner
  tests/kms_scaling_modes: Add support for Bigjoiner
  tests/kms_sequence: Add support for Bigjoiner
  tests/kms_universal_plane: Add support for Bigjoiner
  tests/kms_vblank: Add support for Bigjoiner
  tests/kms_vrr: Add support for Bigjoiner
  tests/i915/kms_big_fb: Add support for Bigjoiner
  tests/i915/kms_big_joiner: Negative tests for Bigjoiner
  tests/i915/kms_busy: Add support for Bigjoiner
  tests/i915/kms_ccs: Add support for Bigjoiner
  tests/i915/kms_cdclk: Add support for Bigjoiner
  tests/i915/kms_draw_crc: Add support for Bigjoiner
  tests/i915/kms_fence_pin_leak: Add support for Bigjoiner
  tests/i915/kms_flip_scaled_crc: Add support for Bigjoiner
  tests/i915/kms_flip_tiling: Add support for Bigjoiner
  tests/i915/kms_frontbuffer_tracking: Add support for Bigjoiner
  tests/i915/kms_mmap_write_crc: Add support for Bigjoiner
  tests/i915/kms_psr2_sf: Add support for Bigjoiner
  tests/i915/kms_psr2_su: Add support for Bigjoiner
  tests/i915/kms_psr: Add support for Bigjoiner
  tests/i915/kms_psr_stress_test: Add support for Bigjoiner
  tests/i915/kms_pwrite_crc: Add support for Bigjoiner

 lib/igt_kms.c                         |  54 ++++++-
 lib/igt_kms.h                         |   1 +
 tests/chamelium/kms_chamelium_color.c |   9 ++
 tests/i915/kms_big_fb.c               |  13 ++
 tests/i915/kms_big_joiner.c           | 208 +++++++++++-------------
 tests/i915/kms_busy.c                 | 106 ++++++++-----
 tests/i915/kms_ccs.c                  |  18 ++-
 tests/i915/kms_cdclk.c                |  31 ++--
 tests/i915/kms_draw_crc.c             |  10 +-
 tests/i915/kms_fence_pin_leak.c       |   9 ++
 tests/i915/kms_flip_scaled_crc.c      |  14 +-
 tests/i915/kms_flip_tiling.c          |   4 +
 tests/i915/kms_frontbuffer_tracking.c |  16 +-
 tests/i915/kms_mmap_write_crc.c       |   6 +
 tests/i915/kms_psr.c                  |   4 +
 tests/i915/kms_psr2_sf.c              |  55 +++++++
 tests/i915/kms_psr2_su.c              |   7 +
 tests/i915/kms_psr_stress_test.c      |   8 +-
 tests/i915/kms_pwrite_crc.c           |  12 +-
 tests/kms_async_flips.c               |  11 +-
 tests/kms_atomic.c                    |  32 +++-
 tests/kms_atomic_interruptible.c      |  40 +++++
 tests/kms_atomic_transition.c         |  50 +++++-
 tests/kms_color.c                     |   9 +-
 tests/kms_color_helper.c              |  12 ++
 tests/kms_color_helper.h              |   1 +
 tests/kms_concurrent.c                |  10 +-
 tests/kms_content_protection.c        |   6 +-
 tests/kms_cursor_crc.c                |  34 ++++
 tests/kms_cursor_edge_walk.c          |   7 +
 tests/kms_cursor_legacy.c             | 202 +++++++++++++++---------
 tests/kms_display_modes.c             | 104 +++++++-----
 tests/kms_dp_tiled_display.c          |   1 +
 tests/kms_flip_event_leak.c           |  11 +-
 tests/kms_invalid_mode.c              |   6 +
 tests/kms_lease.c                     |   8 +-
 tests/kms_pipe_crc_basic.c            |  24 +++
 tests/kms_plane.c                     |  30 ++--
 tests/kms_plane_alpha_blend.c         |   9 +-
 tests/kms_plane_cursor.c              |   6 +
 tests/kms_plane_lowres.c              |   3 +
 tests/kms_plane_multiple.c            |  15 +-
 tests/kms_plane_scaling.c             | 218 +++++++++++++++++---------
 tests/kms_prime.c                     |  11 +-
 tests/kms_properties.c                |  18 +++
 tests/kms_rmfb.c                      |  10 +-
 tests/kms_rotation_crc.c              |  25 ++-
 tests/kms_scaling_modes.c             |   8 +-
 tests/kms_sequence.c                  |   6 +
 tests/kms_universal_plane.c           |  94 +++++++++--
 tests/kms_vblank.c                    |  54 ++++++-
 tests/kms_vrr.c                       |   6 +
 52 files changed, 1229 insertions(+), 437 deletions(-)

--
2.39.1

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

* [igt-dev] [i-g-t v8 01/51] lib/igt_kms: Add a helper for valid pipe/output constraint
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 02/51] lib/igt_kms: Bigjoiner check in max_bpc constraint Bhanuprakash Modem
                   ` (54 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

Add an IGT helper to check the given pipe/output combo is valid to decide
whether to run/skip the subtest.

Example:
* Pipe-D can't support mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.
* MSO is supported only on PIPE_A/PIPE_B.

This helper is supposed to be a superset of all constraints of pipe/output
combo. But as of now, this helper supports only Bigjoiner.

V2:
- Rename the helper
- Add is_i915 constraint
- Add pre-condition check (igt_output_set_pipe called)
- Update documentaion
- Minor cleanup in Bigjoiner helper

Cc: Petri Latvala <petri.latvala@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
---
 lib/igt_kms.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++---
 lib/igt_kms.h |  1 +
 2 files changed, 47 insertions(+), 3 deletions(-)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 8c7dd85b8..9ae5a70c2 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -5732,6 +5732,7 @@ bool igt_check_bigjoiner_support(igt_display_t *display)
 {
 	uint8_t i, total_pipes = 0, pipes_in_use = 0;
 	enum pipe p;
+	igt_output_t *output;
 	struct {
 		enum pipe idx;
 		drmModeModeInfo *mode;
@@ -5745,9 +5746,7 @@ bool igt_check_bigjoiner_support(igt_display_t *display)
 	 * Get list of pipes in use those were set by igt_output_set_pipe()
 	 * just before calling this function.
 	 */
-	for (i = 0 ; i < display->n_outputs; i++) {
-		igt_output_t *output = &display->outputs[i];
-
+	for_each_connected_output(display, output) {
 		if (output->pending_pipe == PIPE_NONE)
 			continue;
 
@@ -5813,3 +5812,47 @@ bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode)
 
 	return true;
 }
+
+/*
+ * i915_pipe_output_combo_valid:
+ * @display: a pointer to an #igt_display_t structure
+ *
+ * Every individual test must use igt_output_set_pipe() before calling this
+ * helper, so that this function will get all active pipes from connected
+ * outputs (i.e. pending_pipe != PIPE_NONE) and check the selected combo is
+ * valid or not.
+ *
+ * This helper is supposed to be a superset of all constraints of pipe/output
+ * combo.
+ *
+ * Example:
+ *  * Pipe-D can't support mode > 5K
+ *  * To use 8K mode on a pipe then consecutive pipe must be free.
+ *  * MSO is supported only on PIPE_A/PIPE_B.
+ *
+ * Returns: true if a valid pipe/output mode combo found, else false
+ */
+bool i915_pipe_output_combo_valid(igt_display_t *display)
+{
+	int combo = 0;
+	igt_output_t *output;
+
+	if (!is_i915_device(display->drm_fd))
+		return true;
+
+	for_each_connected_output(display, output) {
+		if (output->pending_pipe == PIPE_NONE)
+			continue;
+
+		combo++;
+	}
+
+	igt_assert_f(combo, "At least one pipe/output combo needed.\n");
+
+	/*
+	 * Check the given pipe/output combo is valid for Bigjoiner.
+	 *
+	 * TODO: Update this helper to support other features like MSO.
+	 */
+	return igt_check_bigjoiner_support(display);
+}
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index be5482e08..2b9179251 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -992,5 +992,6 @@ bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
 		igt_output_t *output, int bpc);
 bool igt_check_bigjoiner_support(igt_display_t *display);
 bool igt_parse_mode_string(const char *mode_string, drmModeModeInfo *mode);
+bool i915_pipe_output_combo_valid(igt_display_t *display);
 
 #endif /* __IGT_KMS_H__ */
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 02/51] lib/igt_kms: Bigjoiner check in max_bpc constraint
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 01/51] lib/igt_kms: Add a helper for valid pipe/output constraint Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 03/51] tests/kms_async_flips: Add support for Bigjoiner Bhanuprakash Modem
                   ` (53 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

There is a possibility of commit failure if the selected pipe/output
won't support Bigjoiner or 8K. So we need to handle this case.

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by:  Swati Sharma <swati2.sharma@intel.com>
---
 lib/igt_kms.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lib/igt_kms.c b/lib/igt_kms.c
index 9ae5a70c2..f90ee4360 100644
--- a/lib/igt_kms.c
+++ b/lib/igt_kms.c
@@ -5702,6 +5702,11 @@ bool igt_max_bpc_constraint(igt_display_t *display, enum pipe pipe,
 
 	for_each_connector_mode(output) {
 		igt_output_override_mode(output, &connector->modes[j__]);
+
+		if (is_i915_device(display->drm_fd) &&
+		    !igt_check_bigjoiner_support(display))
+			continue;
+
 		igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
 
 		if (!igt_check_output_bpc_equal(display->drm_fd, pipe,
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 03/51] tests/kms_async_flips: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 01/51] lib/igt_kms: Add a helper for valid pipe/output constraint Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 02/51] lib/igt_kms: Bigjoiner check in max_bpc constraint Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 04/51] tests/kms_atomic: " Bhanuprakash Modem
                   ` (52 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name
V3: - Drop unrelated changes

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

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 55be0bd87..df29a6be3 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -543,9 +543,16 @@ static void run_test(data_t *data, void (*test)(data_t *))
 {
 	igt_output_t *output;
 	enum pipe pipe;
+	igt_display_t *display = &data->display;
+
+	for_each_pipe(display, pipe) {
+		for_each_valid_output_on_pipe(display, pipe, output) {
+			igt_display_reset(display);
+
+			igt_output_set_pipe(output, pipe);
+			if (!i915_pipe_output_combo_valid(display))
+				continue;
 
-	for_each_pipe(&data->display, pipe) {
-		for_each_valid_output_on_pipe(&data->display, pipe, output) {
 			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
 				data->output = output;
 				data->pipe = pipe;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 04/51] tests/kms_atomic: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (2 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 03/51] tests/kms_async_flips: Add support for Bigjoiner Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 05/51] tests/kms_atomic_interruptible: " Bhanuprakash Modem
                   ` (51 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_atomic.c | 32 ++++++++++++++++++++++++++++----
 1 file changed, 28 insertions(+), 4 deletions(-)

diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
index 2a3fb74be..61117a3f9 100644
--- a/tests/kms_atomic.c
+++ b/tests/kms_atomic.c
@@ -1265,6 +1265,10 @@ static void atomic_plane_damage(igt_pipe_t *pipe, igt_plane_t *plane, struct igt
 
 static void atomic_setup(igt_display_t *display, enum pipe pipe, igt_output_t *output, igt_plane_t *primary, struct igt_fb *fb)
 {
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	igt_display_reset(display);
 	igt_output_set_pipe(output, pipe);
 	igt_plane_set_fb(primary, fb);
 
@@ -1293,6 +1297,7 @@ igt_main
 	igt_plane_t *primary = NULL;
 	drmModeModeInfo *mode;
 	struct igt_fb fb;
+	bool valid_config = false;
 
 	igt_fixture {
 		display.drm_fd = drm_open_driver_master(DRIVER_ANY);
@@ -1303,8 +1308,16 @@ igt_main
 		igt_require(display.is_atomic);
 		igt_display_require_output(&display);
 
-		for_each_pipe_with_valid_output(&display, pipe, output)
-			break;
+		for_each_pipe_with_valid_output(&display, pipe, output) {
+			igt_display_reset(&display);
+
+			igt_output_set_pipe(output, pipe);
+			if (i915_pipe_output_combo_valid(&display)) {
+				valid_config = true;
+				break;
+			}
+		}
+		igt_require(valid_config);
 
 		pipe_obj = &display.pipes[pipe];
 		primary = igt_pipe_get_plane_type(pipe_obj, DRM_PLANE_TYPE_PRIMARY);
@@ -1342,9 +1355,13 @@ igt_main
 	igt_subtest("plane-primary-overlay-mutable-zpos") {
 		uint32_t format_primary = DRM_FORMAT_ARGB8888;
 		uint32_t format_overlay = DRM_FORMAT_ARGB1555;
+		igt_plane_t *overlay;
 
-		igt_plane_t *overlay =
-			igt_pipe_get_plane_type(pipe_obj, DRM_PLANE_TYPE_OVERLAY);
+		igt_info("Using (pipe %s + %s) to run the subtest.\n",
+			 kmstest_pipe_name(pipe), igt_output_name(output));
+
+		igt_display_reset(&display);
+		overlay = igt_pipe_get_plane_type(pipe_obj, DRM_PLANE_TYPE_OVERLAY);
 		igt_require(overlay);
 
 		igt_require(igt_plane_has_prop(primary, IGT_PLANE_ZPOS));
@@ -1361,6 +1378,10 @@ igt_main
 	igt_describe("Verify the reported zpos property of planes by making sure "\
 		     "only higher zpos planes cover the lower zpos ones.");
 	igt_subtest("plane-immutable-zpos") {
+		igt_info("Using (pipe %s + %s) to run the subtest.\n",
+			 kmstest_pipe_name(pipe), igt_output_name(output));
+
+		igt_display_reset(&display);
 		igt_output_set_pipe(output, pipe);
 		plane_immutable_zpos(&display, pipe_obj, output);
 	}
@@ -1370,6 +1391,9 @@ igt_main
 	igt_subtest("test-only") {
 		atomic_clear(&display, pipe, primary, output);
 
+		igt_info("Using (pipe %s + %s) to run the subtest.\n",
+			 kmstest_pipe_name(pipe), igt_output_name(output));
+
 		test_only(pipe_obj, primary, output);
 	}
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 05/51] tests/kms_atomic_interruptible: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (3 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 04/51] tests/kms_atomic: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 06/51] tests/kms_atomic_transition: " Bhanuprakash Modem
                   ` (50 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
 tests/kms_atomic_interruptible.c | 40 ++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/tests/kms_atomic_interruptible.c b/tests/kms_atomic_interruptible.c
index f461a15c9..74b2e246a 100644
--- a/tests/kms_atomic_interruptible.c
+++ b/tests/kms_atomic_interruptible.c
@@ -82,11 +82,15 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
 	igt_plane_t *primary, *plane;
 	int block;
 
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	/*
 	 * Make sure we start with everything disabled to force a real modeset.
 	 * igt_display_require only sets sw state, and assumes the first test
 	 * doesn't care about hw state.
 	 */
+	igt_display_reset(display);
 	igt_display_commit2(display, COMMIT_ATOMIC);
 
 	igt_output_set_pipe(output, pipe);
@@ -265,6 +269,21 @@ static void run_plane_test(igt_display_t *display, enum pipe pipe, igt_output_t
 	igt_remove_fb(display->drm_fd, &fb);
 }
 
+static bool pipe_output_combo_valid(igt_display_t *display,
+				    enum pipe pipe, igt_output_t *output)
+{
+	bool ret = true;
+
+	igt_display_reset(display);
+
+	igt_output_set_pipe(output, pipe);
+	if (!i915_pipe_output_combo_valid(display))
+		ret = false;
+	igt_output_set_pipe(output, PIPE_NONE);
+
+	return ret;
+}
+
 igt_main
 {
 	igt_display_t display;
@@ -286,6 +305,9 @@ igt_main
 	igt_describe("Tests the interrupt properties of legacy modeset");
 	igt_subtest_with_dynamic("legacy-setmode") {
 		for_each_pipe_with_valid_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, pipe, output))
+				continue;
+
 			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
 				run_plane_test(&display, pipe, output, test_legacy_modeset, DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -295,6 +317,9 @@ igt_main
 	igt_describe("Tests the interrupt properties of atomic modeset");
 	igt_subtest_with_dynamic("atomic-setmode") {
 		for_each_pipe_with_valid_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, pipe, output))
+				continue;
+
 			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
 				run_plane_test(&display, pipe, output, test_atomic_modeset, DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -304,6 +329,9 @@ igt_main
 	igt_describe("Tests the interrupt properties for DPMS");
 	igt_subtest_with_dynamic("legacy-dpms") {
 		for_each_pipe_with_valid_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, pipe, output))
+				continue;
+
 			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
 				run_plane_test(&display, pipe, output, test_legacy_dpms, DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -313,6 +341,9 @@ igt_main
 	igt_describe("Tests the interrupt properties for pageflip");
 	igt_subtest_with_dynamic("legacy-pageflip") {
 		for_each_pipe_with_valid_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, pipe, output))
+				continue;
+
 			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
 				run_plane_test(&display, pipe, output, test_pageflip, DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -322,6 +353,9 @@ igt_main
 	igt_describe("Tests the interrupt properties for cursor");
 	igt_subtest_with_dynamic("legacy-cursor") {
 		for_each_pipe_with_valid_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, pipe, output))
+				continue;
+
 			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
 				run_plane_test(&display, pipe, output, test_setcursor, DRM_PLANE_TYPE_CURSOR);
 			break;
@@ -331,6 +365,9 @@ igt_main
 	igt_describe("Tests the interrupt properties for primary plane");
 	igt_subtest_with_dynamic("universal-setplane-primary") {
 		for_each_pipe_with_valid_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, pipe, output))
+				continue;
+
 			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
 				run_plane_test(&display, pipe, output, test_setplane, DRM_PLANE_TYPE_PRIMARY);
 			break;
@@ -340,6 +377,9 @@ igt_main
 	igt_describe("Tests the interrupt properties for cursor plane");
 	igt_subtest_with_dynamic("universal-setplane-cursor") {
 		for_each_pipe_with_valid_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, pipe, output))
+				continue;
+
 			igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe))
 				run_plane_test(&display, pipe, output, test_setplane, DRM_PLANE_TYPE_CURSOR);
 			break;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 06/51] tests/kms_atomic_transition: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (4 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 05/51] tests/kms_atomic_interruptible: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 07/51] tests/kms_color_helper: Helper to check Bigjoiner constraint Bhanuprakash Modem
                   ` (49 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
 tests/kms_atomic_transition.c | 50 ++++++++++++++++++++++++++++++++---
 1 file changed, 46 insertions(+), 4 deletions(-)

diff --git a/tests/kms_atomic_transition.c b/tests/kms_atomic_transition.c
index 64e7e7091..f428641fa 100644
--- a/tests/kms_atomic_transition.c
+++ b/tests/kms_atomic_transition.c
@@ -68,6 +68,10 @@ run_primary_test(data_t *data, enum pipe pipe, igt_output_t *output)
 	unsigned flags = DRM_MODE_ATOMIC_TEST_ONLY | DRM_MODE_ATOMIC_ALLOW_MODESET;
 
 	igt_display_reset(&data->display);
+
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	igt_output_set_pipe(output, pipe);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
@@ -487,6 +491,9 @@ run_transition_test(data_t *data, enum pipe pipe, igt_output_t *output,
 	unsigned flags = 0;
 	int ret;
 
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	if (fencing)
 		prepare_fencing(data, pipe);
 	else
@@ -759,8 +766,13 @@ static unsigned set_combinations(data_t *data, unsigned mask, struct igt_fb *fb)
 			if (output->pending_pipe != PIPE_NONE)
 				continue;
 
-			mode = igt_output_get_mode(output);
-			break;
+			igt_output_set_pipe(output, pipe);
+			if (i915_pipe_output_combo_valid(&data->display)) {
+				mode = igt_output_get_mode(output);
+				break;
+			} else {
+				igt_output_set_pipe(output, PIPE_NONE);
+			}
 		}
 
 		if (!mode)
@@ -845,8 +857,17 @@ retry:
 				continue;
 
 			igt_output_set_pipe(output, i);
-			mode = igt_output_get_mode(output);
-			break;
+			if (i915_pipe_output_combo_valid(&data->display)) {
+				mode = igt_output_get_mode(output);
+
+				igt_info("(pipe %s + %s), mode:",
+					 kmstest_pipe_name(i), igt_output_name(output));
+				kmstest_dump_mode(mode);
+
+				break;
+			} else {
+				igt_output_set_pipe(output, PIPE_NONE);
+			}
 		}
 
 		if (mode) {
@@ -984,6 +1005,21 @@ static void run_modeset_transition(data_t *data, int requested_outputs, bool non
 	igt_remove_fb(data->drm_fd, &data->fbs[1]);
 }
 
+static bool pipe_output_combo_valid(igt_display_t *display,
+				    enum pipe pipe, igt_output_t *output)
+{
+	bool ret = true;
+
+	igt_display_reset(display);
+
+	igt_output_set_pipe(output, pipe);
+	if (!i915_pipe_output_combo_valid(display))
+		ret = false;
+	igt_output_set_pipe(output, PIPE_NONE);
+
+	return ret;
+}
+
 static int opt_handler(int opt, int opt_index, void *_data)
 {
 	data_t *data = _data;
@@ -1083,6 +1119,9 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 			if (pipe_count == 2 * count && !data.extended)
 				break;
 
+			if (!pipe_output_combo_valid(&data.display, pipe, output))
+				continue;
+
 			pipe_count++;
 			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output))
 				run_primary_test(&data, pipe, output);
@@ -1112,6 +1151,9 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 				if (pipe_count == 2 * count && !data.extended)
 					break;
 
+				if (!pipe_output_combo_valid(&data.display, pipe, output))
+					continue;
+
 				pipe_count++;
 				igt_dynamic_f("pipe-%s-%s",
 					      kmstest_pipe_name(pipe),
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 07/51] tests/kms_color_helper: Helper to check Bigjoiner constraint
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (5 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 06/51] tests/kms_atomic_transition: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 08/51] tests/kms_color: Add support for Bigjoiner Bhanuprakash Modem
                   ` (48 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

Add a helper to Skip the subtest if a selected pipe/output combo
won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/kms_color_helper.c | 12 ++++++++++++
 tests/kms_color_helper.h |  1 +
 2 files changed, 13 insertions(+)

diff --git a/tests/kms_color_helper.c b/tests/kms_color_helper.c
index 55f3e4099..2f9950f80 100644
--- a/tests/kms_color_helper.c
+++ b/tests/kms_color_helper.c
@@ -24,6 +24,18 @@
 
 #include "kms_color_helper.h"
 
+bool pipe_output_combo_valid(data_t *data, enum pipe pipe)
+{
+	bool ret = true;
+
+	igt_output_set_pipe(data->output, pipe);
+	if (!i915_pipe_output_combo_valid(&data->display))
+		ret = false;
+	igt_output_set_pipe(data->output, PIPE_NONE);
+
+	return ret;
+}
+
 bool
 panel_supports_deep_color(int drm_fd, char *output_name)
 {
diff --git a/tests/kms_color_helper.h b/tests/kms_color_helper.h
index f9242232d..78b97b008 100644
--- a/tests/kms_color_helper.h
+++ b/tests/kms_color_helper.h
@@ -69,6 +69,7 @@ typedef struct {
 	color_t coeffs[];
 } gamma_lut_t;
 
+bool pipe_output_combo_valid(data_t *data, enum pipe pipe);
 bool panel_supports_deep_color(int fd, char *output_name);
 uint64_t get_max_bpc(igt_output_t *output);
 void paint_gradient_rectangles(data_t *data,
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 08/51] tests/kms_color: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (6 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 07/51] tests/kms_color_helper: Helper to check Bigjoiner constraint Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 09/51] tests/chamelium/kms_color_chamelium: " Bhanuprakash Modem
                   ` (47 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/kms_color.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tests/kms_color.c b/tests/kms_color.c
index 455700838..cd03c1354 100644
--- a/tests/kms_color.c
+++ b/tests/kms_color.c
@@ -726,9 +726,13 @@ run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
+	if (!pipe_output_combo_valid(data, p))
+		goto out;
+
 	igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name)
 		igt_assert(test_t(data, data->primary));
 
+out:
 	test_cleanup(data);
 }
 
@@ -756,6 +760,9 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
+	if (!pipe_output_combo_valid(data, p))
+		goto out;
+
 	igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) {
 		bool success = false;
 		int i;
@@ -784,6 +791,7 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
 		igt_assert(success);
 	}
 
+out:
 	test_cleanup(data);
 }
 
@@ -824,7 +832,6 @@ run_deep_color_tests_for_pipe(data_t *data, enum pipe p)
 		igt_display_reset(&data->display);
 		igt_output_set_prop_value(output, IGT_CONNECTOR_MAX_BPC, 10);
 		igt_output_set_pipe(output, p);
-		igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 
 		if (is_i915_device(data->drm_fd) &&
 		    !igt_max_bpc_constraint(&data->display, p, output, 10))
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 09/51] tests/chamelium/kms_color_chamelium: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (7 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 08/51] tests/kms_color: Add support for Bigjoiner Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 10/51] tests/kms_content_protection: " Bhanuprakash Modem
                   ` (46 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Kunal Joshi <kunal1.joshi@intel.com>
---
 tests/chamelium/kms_chamelium_color.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tests/chamelium/kms_chamelium_color.c b/tests/chamelium/kms_chamelium_color.c
index 907f4dd55..b7c84ae4d 100644
--- a/tests/chamelium/kms_chamelium_color.c
+++ b/tests/chamelium/kms_chamelium_color.c
@@ -458,6 +458,9 @@ run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
+	if (!pipe_output_combo_valid(data, p))
+		return;
+
 	igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name)
 		igt_assert(test_t(data, data->primary, data->ports[port_idx]));
 }
@@ -493,6 +496,9 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
+	if (!pipe_output_combo_valid(data, p))
+		return;
+
 	igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name) {
 		bool success = false;
 		int i;
@@ -538,6 +544,9 @@ run_limited_range_ctm_test_for_pipe(data_t *data, enum pipe p,
 	data->drm_format = DRM_FORMAT_XRGB8888;
 	data->mode = igt_output_get_mode(data->output);
 
+	if (!pipe_output_combo_valid(data, p))
+		return;
+
 	igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), data->output->name)
 		igt_assert(test_t(data, data->primary, data->ports[port_idx]));
 }
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 10/51] tests/kms_content_protection: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (8 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 09/51] tests/chamelium/kms_color_chamelium: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-03-17  6:31   ` Karthik B S
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 11/51] tests/kms_concurrent: " Bhanuprakash Modem
                   ` (45 subsequent siblings)
  55 siblings, 1 reply; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/kms_content_protection.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index aa28b7bfd..638e1301a 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -174,7 +174,6 @@ static void modeset_with_fb(const enum pipe pipe, igt_output_t *output,
 	igt_plane_t *primary;
 
 	mode = igt_output_get_mode(output);
-	igt_output_set_pipe(output, pipe);
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_plane_set_fb(primary, &data.red);
@@ -502,6 +501,11 @@ test_content_protection(enum igt_commit_style s, int content_type)
 				continue;
 
 			igt_display_reset(display);
+
+			igt_output_set_pipe(output, pipe);
+			if (!i915_pipe_output_combo_valid(display))
+				continue;
+
 			modeset_with_fb(pipe, output, s);
 
 			if (!output_hdcp_capable(output, content_type))
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 11/51] tests/kms_concurrent: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (9 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 10/51] tests/kms_content_protection: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 12/51] tests/kms_cursor_crc: " Bhanuprakash Modem
                   ` (44 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
 tests/kms_concurrent.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index 6f8ffd4a6..e6d61a84d 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -330,9 +330,17 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
 	igt_describe("Test atomic mode setting concurrently with multiple planes and screen "
 		     "resolution.");
 	igt_subtest_with_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
-		for_each_valid_output_on_pipe(&data->display, pipe, output)
+		for_each_valid_output_on_pipe(&data->display, pipe, output) {
+			igt_display_reset(&data->display);
+
+			igt_output_set_pipe(output, pipe);
+			if (!i915_pipe_output_combo_valid(&data->display))
+				continue;
+
+			igt_output_set_pipe(output, PIPE_NONE);
 			igt_dynamic_f("%s", igt_output_name(output))
 				run_test(data, pipe, output);
+		}
 	}
 }
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 12/51] tests/kms_cursor_crc: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (10 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 11/51] tests/kms_concurrent: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 13/51] tests/kms_cursor_edge_walk: " Bhanuprakash Modem
                   ` (43 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_cursor_crc.c | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 0b5aac30b..962ff27f5 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -700,6 +700,22 @@ static void test_rapid_movement(data_t *data)
 	igt_assert_lt(usec, 0.9 * 400 * 1000000 / data->refresh);
 }
 
+static bool valid_pipe_output_combo(data_t *data)
+{
+	bool ret = false;
+	igt_display_t *display = &data->display;
+
+	igt_display_reset(display);
+	igt_output_set_pipe(data->output, data->pipe);
+
+	if (i915_pipe_output_combo_valid(display))
+		ret = true;
+
+	igt_output_set_pipe(data->output, PIPE_NONE);
+
+	return ret;
+}
+
 static void run_size_tests(data_t *data, int w, int h)
 {
 	enum pipe pipe;
@@ -752,6 +768,9 @@ static void run_size_tests(data_t *data, int w, int h)
 			for_each_pipe_with_single_output(&data->display, pipe, data->output) {
 				data->pipe = pipe;
 
+				if (!valid_pipe_output_combo(data))
+					continue;
+
 				if (require_cursor_size(data, w, h)) {
 					igt_info("Cursor size %dx%d not supported by driver\n", w, h);
 					continue;
@@ -785,6 +804,9 @@ static void run_tests_on_pipe(data_t *data)
 		for_each_pipe_with_single_output(&data->display, pipe, data->output) {
 			data->pipe = pipe;
 
+			if (!valid_pipe_output_combo(data))
+				continue;
+
 			igt_dynamic_f("pipe-%s-%s",
 				      kmstest_pipe_name(pipe),
 				      data->output->name)
@@ -799,6 +821,9 @@ static void run_tests_on_pipe(data_t *data)
 		for_each_pipe_with_single_output(&data->display, pipe, data->output) {
 			data->pipe = pipe;
 
+			if (!valid_pipe_output_combo(data))
+				continue;
+
 			igt_dynamic_f("pipe-%s-%s",
 				      kmstest_pipe_name(pipe),
 				      data->output->name)
@@ -813,6 +838,9 @@ static void run_tests_on_pipe(data_t *data)
 		for_each_pipe_with_single_output(&data->display, pipe, data->output) {
 			data->pipe = pipe;
 
+			if (!valid_pipe_output_combo(data))
+				continue;
+
 			igt_dynamic_f("pipe-%s-%s",
 				      kmstest_pipe_name(pipe),
 				      data->output->name)
@@ -831,6 +859,9 @@ static void run_tests_on_pipe(data_t *data)
 			data->pipe = pipe;
 			data->flags = TEST_DPMS;
 
+			if (!valid_pipe_output_combo(data))
+				continue;
+
 			igt_dynamic_f("pipe-%s-%s",
 				      kmstest_pipe_name(pipe),
 				      data->output->name)
@@ -846,6 +877,9 @@ static void run_tests_on_pipe(data_t *data)
 			data->pipe = pipe;
 			data->flags = TEST_SUSPEND;
 
+			if (!valid_pipe_output_combo(data))
+				continue;
+
 			igt_dynamic_f("pipe-%s-%s",
 				      kmstest_pipe_name(pipe),
 				      data->output->name)
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 13/51] tests/kms_cursor_edge_walk: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (11 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 12/51] tests/kms_cursor_crc: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 14/51] tests/kms_cursor_legacy: " Bhanuprakash Modem
                   ` (42 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_cursor_edge_walk.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/tests/kms_cursor_edge_walk.c b/tests/kms_cursor_edge_walk.c
index 304c0ea8f..5f423a18f 100644
--- a/tests/kms_cursor_edge_walk.c
+++ b/tests/kms_cursor_edge_walk.c
@@ -373,6 +373,13 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 					    data.pipe != active_pipes[last_pipe])
 						continue;
 
+					igt_display_reset(&data.display);
+					igt_output_set_pipe(data.output, data.pipe);
+					if (!i915_pipe_output_combo_valid(&data.display))
+						continue;
+
+					igt_output_set_pipe(data.output, PIPE_NONE);
+
 					igt_dynamic_f("pipe-%s-%s",
 						      kmstest_pipe_name(data.pipe),
 						      data.output->name)
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 14/51] tests/kms_cursor_legacy: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (12 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 13/51] tests/kms_cursor_edge_walk: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-03-16  9:44   ` [igt-dev] [i-g-t V9 " Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 15/51] tests/kms_display_modes: " Bhanuprakash Modem
                   ` (41 subsequent siblings)
  55 siblings, 1 reply; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

As many 2x tests are currently running on Pipe-A & B only, those
tests will always SKIP if there is any 8K supported panel in the
config. Instead of Skipping the test, add some intelligence to
the subtest to identify the valid pipe/output combo to execute
the subtest.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_cursor_legacy.c | 202 +++++++++++++++++++++++---------------
 1 file changed, 124 insertions(+), 78 deletions(-)

diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
index feea1ac83..097d8d307 100644
--- a/tests/kms_cursor_legacy.c
+++ b/tests/kms_cursor_legacy.c
@@ -177,31 +177,21 @@ static void stress(igt_display_t *display,
 	munmap(results, PAGE_SIZE);
 }
 
-static igt_output_t *set_fb_on_crtc(igt_display_t *display, enum pipe pipe, struct igt_fb *fb_info)
+static void set_fb_on_crtc(igt_display_t *display, enum pipe pipe,
+			   igt_output_t *output, struct igt_fb *fb_info)
 {
-	igt_output_t *output;
-
-	for_each_valid_output_on_pipe(display, pipe, output) {
-		drmModeModeInfoPtr mode;
-		igt_plane_t *primary;
-
-		if (output->pending_pipe != PIPE_NONE)
-			continue;
-
-		igt_output_set_pipe(output, pipe);
-		mode = igt_output_get_mode(output);
+	drmModeModeInfoPtr mode;
+	igt_plane_t *primary;
 
-		igt_create_pattern_fb(display->drm_fd,
-			      mode->hdisplay, mode->vdisplay,
-			      DRM_FORMAT_XRGB8888, I915_TILING_NONE, fb_info);
+	igt_output_set_pipe(output, pipe);
+	mode = igt_output_get_mode(output);
 
-		primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
-		igt_plane_set_fb(primary, fb_info);
+	igt_create_pattern_fb(display->drm_fd,
+		      mode->hdisplay, mode->vdisplay,
+		      DRM_FORMAT_XRGB8888, I915_TILING_NONE, fb_info);
 
-		return output;
-	}
-
-	return NULL;
+	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+	igt_plane_set_fb(primary, fb_info);
 }
 
 static	igt_plane_t
@@ -236,36 +226,44 @@ static void populate_cursor_args(igt_display_t *display, enum pipe pipe,
 	arg[1] = *arg;
 }
 
-static enum pipe find_connected_pipe(igt_display_t *display, bool second)
+static enum pipe
+find_connected_pipe(igt_display_t *display, bool second, igt_output_t **output)
 {
-	enum pipe pipe, first = PIPE_NONE;
-	igt_output_t *output;
-	igt_output_t *first_output = NULL;
+	enum pipe pipe;
+	bool first_output = false;
 	bool found = false;
 
 	if (!second) {
 		igt_pipe_crc_free(pipe_crc);
 		pipe_crc = NULL;
-
-		/* Clear display, events will be eaten by commit.. */
-		igt_display_reset(display);
 	}
 
-	for_each_pipe_with_valid_output(display, pipe, output) {
-		if (first == pipe || output == first_output)
-			continue;
+	/* Clear display, events will be eaten by commit.. */
+	igt_display_reset(display);
 
-		if (second) {
-			first = pipe;
-			first_output = output;
-			second = false;
-			continue;
-		}
+	for_each_pipe(display, pipe) {
+		for_each_valid_output_on_pipe(display, pipe, *output) {
+			if((*output)->pending_pipe != PIPE_NONE)
+				continue;
 
-		found = true;
-		break;
+			igt_output_set_pipe(*output, pipe);
+			if (i915_pipe_output_combo_valid(display)) {
+				found = true;
+
+				if (second) {
+					first_output = true;
+					second = false;
+					found = false;
+				}
+				break;
+			}
+			igt_output_set_pipe(*output, PIPE_NONE);
+		}
+		if (found)
+			break;
 	}
 
+	igt_display_reset(display);
 	if (first_output)
 		igt_require_f(found, "No second valid output found\n");
 	else
@@ -429,10 +427,9 @@ static void flip(igt_display_t *display,
 	results = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	igt_assert(results != MAP_FAILED);
 
-	igt_display_reset(display);
-
-	flip_pipe = find_connected_pipe(display, !!flip_pipe);
-	cursor_pipe = find_connected_pipe(display, !!cursor_pipe);
+	flip_pipe = find_connected_pipe(display, !!flip_pipe, &output);
+	cursor_pipe = find_connected_pipe(display, !!cursor_pipe, &output2);
+	igt_skip_on(!output || !output2);
 
 	igt_info("Using pipe %s for page flip, pipe %s for cursor\n",
 		  kmstest_pipe_name(flip_pipe), kmstest_pipe_name(cursor_pipe));
@@ -446,15 +443,15 @@ static void flip(igt_display_t *display,
 					DRM_PLANE_TYPE_OVERLAY));
 	}
 
-	igt_require((output = set_fb_on_crtc(display, flip_pipe, &fb_info)));
+	set_fb_on_crtc(display, flip_pipe, output, &fb_info);
 	if (flip_pipe != cursor_pipe) {
-		igt_require((output2 = set_fb_on_crtc(display, cursor_pipe, &fb_info2)));
+		set_fb_on_crtc(display, cursor_pipe, output2, &fb_info2);
 
 		if (try_commit(display)) {
 			override_output_modes(display, output, output2);
 
-			igt_require((output = set_fb_on_crtc(display, flip_pipe, &fb_info)));
-			igt_require((output2 = set_fb_on_crtc(display, cursor_pipe, &fb_info2)));
+			set_fb_on_crtc(display, flip_pipe, output, &fb_info);
+			set_fb_on_crtc(display, cursor_pipe, output2, &fb_info2);
 		}
 	}
 
@@ -546,7 +543,7 @@ static void basic_flip_cursor(igt_display_t *display,
 	struct drm_event_vblank vbl;
 	struct igt_fb fb_info, cursor_fb, cursor_fb2, argb_fb;
 	unsigned vblank_start;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	uint64_t ahnd = 0;
 	igt_spin_t *spin;
 	int i, miss1 = 0, miss2 = 0, delta;
@@ -562,7 +559,13 @@ static void basic_flip_cursor(igt_display_t *display,
 	if (mode >= flip_test_atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888, 0, 1., 1., 1., &cursor_fb);
 	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
@@ -717,7 +720,7 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
 	struct igt_fb fb_info, cursor_fb, cursor_fb2, argb_fb;
 	unsigned vblank_start;
 	int target, cpu;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	volatile unsigned long *shared;
 	cpu_set_t mask, oldmask;
 	igt_output_t *output;
@@ -726,7 +729,13 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
 	if (mode >= flip_test_atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888, 0, 1., 1., 1., &cursor_fb);
 	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
@@ -845,12 +854,18 @@ static void nonblocking_modeset_vs_cursor(igt_display_t *display, int loops)
 {
 	struct igt_fb fb_info, cursor_fb;
 	igt_output_t *output;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	struct drm_mode_cursor arg[2];
 	igt_plane_t *primary, *cursor = NULL;
 
 	igt_require(display->is_atomic);
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888, 0, 1., 1., 1., &cursor_fb);
 	cursor = set_cursor_on_pipe(display, pipe, &cursor_fb);
@@ -937,8 +952,7 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 {
 	struct drm_mode_cursor arg1[2], arg2[2];
 	struct igt_fb fb_info, fb2_info, cursor_fb;
-	enum pipe pipe = find_connected_pipe(display, false);
-	enum pipe pipe2 = find_connected_pipe(display, true);
+	enum pipe pipe, pipe2;
 	igt_output_t *output, *output2;
 	bool enabled = false;
 	volatile unsigned long *shared;
@@ -954,22 +968,28 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 		igt_require(drmGetCap(display->drm_fd, DRM_CAP_CRTC_IN_VBLANK_EVENT, &val) == 0);
 	}
 
+	if (atomic)
+		igt_require(display->is_atomic);
+
 	shared = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	igt_assert(shared != MAP_FAILED);
 
-	igt_fail_on(modeset && !atomic);
+	pipe = find_connected_pipe(display, false, &output);
+	pipe2 = find_connected_pipe(display, true, &output2);
+	igt_skip_on(!output || !output2);
 
-	if (atomic)
-		igt_require(display->is_atomic);
+	igt_info("Using pipe %s & %s and pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output),
+		 kmstest_pipe_name(pipe2), igt_output_name(output2));
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
-	igt_require((output2 = set_fb_on_crtc(display, pipe2, &fb2_info)));
+	set_fb_on_crtc(display, pipe, output, &fb_info);
+	set_fb_on_crtc(display, pipe2, output2, &fb2_info);
 
 	if (try_commit(display)) {
 		override_output_modes(display, output, output2);
 
-		igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
-		igt_require((output2 = set_fb_on_crtc(display, pipe2, &fb2_info)));
+		set_fb_on_crtc(display, pipe, output, &fb_info);
+		set_fb_on_crtc(display, pipe2, output2, &fb2_info);
 	}
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888, 0, 1., 1., 1., &cursor_fb);
@@ -1122,7 +1142,7 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
 	unsigned vblank_start, vblank_last;
 	volatile unsigned long *shared;
 	long target;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	igt_output_t *output;
 	uint32_t vrefresh;
 	int fail_count;
@@ -1134,7 +1154,13 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
 	shared = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	igt_assert(shared != MAP_FAILED);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 	vrefresh = igt_output_get_mode(output)->vrefresh;
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888, 0, 1., 1., 1., &cursor_fb);
@@ -1226,10 +1252,7 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool
 	struct igt_fb fb_info[2], cursor_fb;
 	volatile unsigned long *shared;
 	int target[2];
-	enum pipe pipe[2] = {
-		find_connected_pipe(display, false),
-		find_connected_pipe(display, true)
-	};
+	enum pipe pipe[2];
 	igt_output_t *outputs[2];
 	igt_plane_t *cursors[2];
 
@@ -1239,14 +1262,22 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool
 	if (atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((outputs[0] = set_fb_on_crtc(display, pipe[0], &fb_info[0])));
-	igt_require((outputs[1] = set_fb_on_crtc(display, pipe[1], &fb_info[1])));
+	pipe[0] = find_connected_pipe(display, false, &outputs[0]);
+	pipe[1] = find_connected_pipe(display, true, &outputs[1]);
+	igt_skip_on(!outputs[0] || !outputs[1]);
+
+	igt_info("Using pipe %s & %s and pipe %s & %s\n",
+		 kmstest_pipe_name(pipe[0]), igt_output_name(outputs[0]),
+		 kmstest_pipe_name(pipe[1]), igt_output_name(outputs[1]));
+
+	set_fb_on_crtc(display, pipe[0], outputs[0], &fb_info[0]);
+	set_fb_on_crtc(display, pipe[1], outputs[1], &fb_info[1]);
 
 	if (try_commit(display)) {
 		override_output_modes(display, outputs[0], outputs[1]);
 
-		igt_require((outputs[0] = set_fb_on_crtc(display, pipe[0], &fb_info[0])));
-		igt_require((outputs[1] = set_fb_on_crtc(display, pipe[1], &fb_info[1])));
+		set_fb_on_crtc(display, pipe[0], outputs[0], &fb_info[0]);
+		set_fb_on_crtc(display, pipe[1], outputs[1], &fb_info[1]);
 	}
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888, 0, 1., 1., 1., &cursor_fb);
@@ -1347,7 +1378,7 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic)
 	struct drm_event_vblank vbl;
 	struct igt_fb fb_info, cursor_fb;
 	unsigned vblank_start;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	igt_crc_t crcs[3];
 	igt_output_t *output;
 	igt_plane_t *cursor;
@@ -1355,7 +1386,13 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic)
 	if (atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888, 0, 1., 1., 1., &cursor_fb);
 	populate_cursor_args(display, pipe, arg, &cursor_fb);
@@ -1412,9 +1449,9 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
 	struct drm_event_vblank vbl;
 	struct igt_fb fb_info[2], cursor_fb;
 	unsigned vblank_start;
-	enum pipe pipe = find_connected_pipe(display, false);
-	igt_pipe_t *pipe_connected = &display->pipes[pipe];
-	igt_plane_t *plane_primary = igt_pipe_get_plane_type(pipe_connected, DRM_PLANE_TYPE_PRIMARY);
+	enum pipe pipe;
+	igt_pipe_t *pipe_connected;
+	igt_plane_t *plane_primary;
 	igt_crc_t crcs[2], test_crc;
 	uint64_t ahnd;
 	igt_output_t *output;
@@ -1426,7 +1463,16 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
 	if (atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info[0])));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	pipe_connected = &display->pipes[pipe];
+	plane_primary = igt_pipe_get_plane_type(pipe_connected, DRM_PLANE_TYPE_PRIMARY);
+
+	set_fb_on_crtc(display, pipe, output, &fb_info[0]);
 	igt_create_color_pattern_fb(display->drm_fd, fb_info[0].width, fb_info[0].height,
 				    DRM_FORMAT_XRGB8888, I915_FORMAT_MOD_X_TILED, .1, .1, .1, &fb_info[1]);
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 15/51] tests/kms_display_modes: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (13 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 14/51] tests/kms_cursor_legacy: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-03-20 10:24   ` B, Jeevan
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 16/51] tests/kms_dp_tiled_display: " Bhanuprakash Modem
                   ` (40 subsequent siblings)
  55 siblings, 1 reply; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

As many 2x tests are currently running on Pipe-A & B only, those
tests will always SKIP if there is any 8K supported panel in the
config. Instead of Skipping the test, add some intelligence to
the subtest to identify the valid pipe/output combo to execute
the subtest.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/kms_display_modes.c | 104 +++++++++++++++++++++++---------------
 1 file changed, 62 insertions(+), 42 deletions(-)

diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c
index e4191811e..02fee317d 100644
--- a/tests/kms_display_modes.c
+++ b/tests/kms_display_modes.c
@@ -34,31 +34,26 @@ typedef struct {
 	int n_pipes;
 } data_t;
 
-static void run_extendedmode_basic(data_t *data, int pipe1, int pipe2)
+static void run_extendedmode_basic(data_t *data,
+				   enum pipe pipe1, igt_output_t *output1,
+				   enum pipe pipe2, igt_output_t *output2)
 {
 	struct igt_fb fb, fbs[2];
 	drmModeModeInfo *mode[2];
-	igt_output_t *output, *extended_output[2];
 	igt_display_t *display = &data->display;
 	igt_plane_t *plane[2];
 	igt_pipe_crc_t *pipe_crc[2] = { 0 };
 	igt_crc_t ref_crc[2], crc[2];
-	int count = 0, width, height;
+	int width, height;
 	cairo_t *cr;
 
-	for_each_connected_output(display, output) {
-		extended_output[count] = output;
-		count++;
+	igt_display_reset(display);
 
-		if (count > 1)
-			break;
-	}
-
-	igt_output_set_pipe(extended_output[0], pipe1);
-	igt_output_set_pipe(extended_output[1], pipe2);
+	igt_output_set_pipe(output1, pipe1);
+	igt_output_set_pipe(output2, pipe2);
 
-	mode[0] = igt_output_get_mode(extended_output[0]);
-	mode[1] = igt_output_get_mode(extended_output[1]);
+	mode[0] = igt_output_get_mode(output1);
+	mode[1] = igt_output_get_mode(output2);
 
 	pipe_crc[0] = igt_pipe_crc_new(data->drm_fd, pipe1, IGT_PIPE_CRC_SOURCE_AUTO);
 	pipe_crc[1] = igt_pipe_crc_new(data->drm_fd, pipe2, IGT_PIPE_CRC_SOURCE_AUTO);
@@ -115,8 +110,8 @@ static void run_extendedmode_basic(data_t *data, int pipe1, int pipe2)
 	igt_pipe_crc_free(pipe_crc[0]);
 	igt_pipe_crc_free(pipe_crc[1]);
 
-	igt_output_set_pipe(extended_output[0], PIPE_NONE);
-	igt_output_set_pipe(extended_output[1], PIPE_NONE);
+	igt_output_set_pipe(output1, PIPE_NONE);
+	igt_output_set_pipe(output2, PIPE_NONE);
 
 	igt_plane_set_fb(igt_pipe_get_plane_type(&display->pipes[pipe1],
 			  DRM_PLANE_TYPE_PRIMARY), NULL);
@@ -129,43 +124,68 @@ static void run_extendedmode_basic(data_t *data, int pipe1, int pipe2)
 	igt_assert_crc_equal(&crc[1], &ref_crc[1]);
 }
 
+#define for_each_connected_output_local(display, output)		\
+	for (int j__ = 0;  assert(igt_can_fail()), j__ < (display)->n_outputs; j__++)	\
+		for_each_if ((((output) = &(display)->outputs[j__]), \
+			      igt_output_is_connected((output))))
+
+#define for_each_valid_output_on_pipe_local(display, pipe, output) \
+	for_each_connected_output_local((display), (output)) \
+		for_each_if (igt_pipe_connector_valid((pipe), (output)))
+
+static void run_extendedmode_test(data_t *data) {
+	enum pipe pipe1, pipe2;
+	igt_output_t *output1, *output2;
+	igt_display_t *display = &data->display;
+
+	igt_display_reset(display);
+
+	for_each_pipe(display, pipe1) {
+		for_each_valid_output_on_pipe(display, pipe1, output1) {
+			for_each_pipe(display, pipe2) {
+				if (pipe1 == pipe2)
+					continue;
+
+				for_each_valid_output_on_pipe_local(display, pipe2, output2) {
+					if (output1 == output2)
+						continue;
+
+					igt_display_reset(display);
+
+					igt_output_set_pipe(output1, pipe1);
+					igt_output_set_pipe(output2, pipe2);
+
+					if (!i915_pipe_output_combo_valid(display))
+						continue;
+
+					igt_dynamic_f("pipe-%s-%s-pipe-%s-%s",
+						      kmstest_pipe_name(pipe1),
+						      igt_output_name(output1),
+						      kmstest_pipe_name(pipe2),
+						      igt_output_name(output2))
+						run_extendedmode_basic(data,
+								pipe1, output1,
+								pipe2, output2);
+				}
+			}
+		}
+	}
+}
+
 igt_main
 {
 	data_t data;
-	int valid_output = 0, i, j = 0;
-	igt_output_t *output;
-	int pipe[IGT_MAX_PIPES];
 
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
 		kmstest_set_vt_graphics_mode();
 		igt_display_require(&data.display, data.drm_fd);
-
-		for_each_connected_output(&data.display, output) {
-			valid_output++;
-
-			if (valid_output > 1)
-				break;
-		}
-
-		data.n_pipes = 0;
-		for_each_pipe(&data.display, i) {
-			data.n_pipes++;
-			pipe[j] = i;
-			j++;
-		}
-
-		igt_require_f(valid_output > 1, "No valid second output found\n");
+		igt_display_require_output(&data.display);
 	}
 
 	igt_describe("Test for validating display extended mode with a pair of connected displays");
-	igt_subtest_with_dynamic("extended-mode-basic") {
-		for (i = 0; i < data.n_pipes - 1; i++) {
-			igt_dynamic_f("pipe-%s%s", kmstest_pipe_name(pipe[i]),
-					kmstest_pipe_name(pipe[i+1]));
-			run_extendedmode_basic(&data, pipe[i], pipe[i+1]);
-		}
-	}
+	igt_subtest_with_dynamic("extended-mode-basic")
+		run_extendedmode_test(&data);
 
 	igt_fixture {
 		igt_display_fini(&data.display);
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 16/51] tests/kms_dp_tiled_display: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (14 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 15/51] tests/kms_display_modes: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 17/51] tests/kms_flip_event_leak: " Bhanuprakash Modem
                   ` (39 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

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

diff --git a/tests/kms_dp_tiled_display.c b/tests/kms_dp_tiled_display.c
index bb6380500..07b803a50 100644
--- a/tests/kms_dp_tiled_display.c
+++ b/tests/kms_dp_tiled_display.c
@@ -272,6 +272,7 @@ static void setup_mode(data_t *data)
 		igt_require(found);
 		igt_output_override_mode(output, mode);
 	}
+	igt_require(i915_pipe_output_combo_valid(data->display));
 	igt_display_commit_atomic(data->display, DRM_MODE_ATOMIC_ALLOW_MODESET,
 				  NULL);
 }
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 17/51] tests/kms_flip_event_leak: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (15 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 16/51] tests/kms_dp_tiled_display: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 18/51] tests/kms_invalid_mode: " Bhanuprakash Modem
                   ` (38 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/kms_flip_event_leak.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/tests/kms_flip_event_leak.c b/tests/kms_flip_event_leak.c
index 56ff2af28..75206ee6b 100644
--- a/tests/kms_flip_event_leak.c
+++ b/tests/kms_flip_event_leak.c
@@ -48,10 +48,6 @@ static void test(data_t *data, enum pipe pipe, igt_output_t *output)
 	struct igt_fb fb[2];
 	int fd, ret;
 
-	igt_display_reset(&data->display);
-	/* select the pipe we want to use */
-	igt_output_set_pipe(output, pipe);
-
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	mode = igt_output_get_mode(output);
 
@@ -104,9 +100,14 @@ igt_main
 		igt_display_require_output(&data.display);
 	}
 
-
 	igt_subtest_with_dynamic("basic") {
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
+			igt_display_reset(&data.display);
+
+			igt_output_set_pipe(output, pipe);
+			if (!i915_pipe_output_combo_valid(&data.display))
+				continue;
+
 			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
 				test(&data, pipe, output);
 			}
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 18/51] tests/kms_invalid_mode: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (16 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 17/51] tests/kms_flip_event_leak: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 19/51] tests/kms_lease: " Bhanuprakash Modem
                   ` (37 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
 tests/kms_invalid_mode.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/kms_invalid_mode.c b/tests/kms_invalid_mode.c
index 40042d4e8..86f529e88 100644
--- a/tests/kms_invalid_mode.c
+++ b/tests/kms_invalid_mode.c
@@ -301,6 +301,12 @@ igt_main
 	for (int i = 0; i < ARRAY_SIZE(subtests); i++) {
 		igt_subtest_with_dynamic(subtests[i].name) {
 			for_each_pipe_with_valid_output(&data.display, pipe, output) {
+				igt_display_reset(&data.display);
+
+				igt_output_set_pipe(output, pipe);
+				if (!i915_pipe_output_combo_valid(&data.display))
+					continue;
+
 				igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(pipe)) {
 					data.output = output;
 					data.pipe = pipe;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 19/51] tests/kms_lease: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (17 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 18/51] tests/kms_invalid_mode: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 20/51] tests/kms_pipe_crc_basic: " Bhanuprakash Modem
                   ` (36 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_lease.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index 6bd5bc157..51d9e2167 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -1216,10 +1216,14 @@ igt_main
 			igt_describe(f->desc);
 			igt_subtest_with_dynamic_f("%s", f->name) {
 				for_each_pipe_with_valid_output(display, data.pipe, output) {
+					igt_display_reset(display);
+
+					igt_output_set_pipe(output, data.pipe);
+					if (!i915_pipe_output_combo_valid(display))
+						continue;
+
 					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
 						      igt_output_name(output)) {
-						igt_display_reset(display);
-						igt_display_commit(display);
 						data.crtc_id = display->pipes[data.pipe].crtc_id;
 						data.connector_id = output->id;
 						data.plane_id =
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 20/51] tests/kms_pipe_crc_basic: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (18 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 19/51] tests/kms_lease: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 21/51] tests/kms_plane: " Bhanuprakash Modem
                   ` (35 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_pipe_crc_basic.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
index b0b8665b3..65afc9f60 100644
--- a/tests/kms_pipe_crc_basic.c
+++ b/tests/kms_pipe_crc_basic.c
@@ -287,6 +287,21 @@ static void test_disable_crc_after_crtc(data_t *data, enum pipe pipe,
 	igt_remove_fb(data->drm_fd, &data->fb);
 }
 
+static bool pipe_output_combo_valid(igt_display_t *display,
+				    enum pipe pipe, igt_output_t *output)
+{
+	bool ret = true;
+
+	igt_display_reset(display);
+
+	igt_output_set_pipe(output, pipe);
+	if (!i915_pipe_output_combo_valid(display))
+		ret = false;
+	igt_output_set_pipe(output, PIPE_NONE);
+
+	return ret;
+}
+
 data_t data = {0, };
 
 static int opt_handler(int opt, int opt_index, void *_data)
@@ -360,6 +375,9 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 				if (simulation_constraint(pipe))
 					continue;
 
+				if(!pipe_output_combo_valid(&data.display, pipe, output))
+					continue;
+
 				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
 					if (tests[i].flags & TEST_SUSPEND) {
 						test_read_crc(&data, pipe, output, 0);
@@ -391,6 +409,9 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 			if (simulation_constraint(pipe))
 				continue;
 
+			if(!pipe_output_combo_valid(&data.display, pipe, output))
+				continue;
+
 			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
 				test_disable_crc_after_crtc(&data, pipe, output);
 		}
@@ -402,6 +423,9 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 			if (simulation_constraint(pipe))
 				continue;
 
+			if(!pipe_output_combo_valid(&data.display, pipe, output))
+				continue;
+
 			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
 				test_compare_crc(&data, pipe, output);
 		}
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 21/51] tests/kms_plane: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (19 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 20/51] tests/kms_pipe_crc_basic: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 22/51] tests/kms_plane_alpha_blend: " Bhanuprakash Modem
                   ` (34 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name
V3: - Rebase

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

diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 164dacf40..a79802f6b 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -56,6 +56,7 @@ typedef struct {
 typedef struct {
 	int drm_fd;
 	igt_display_t display;
+	igt_output_t *output;
 	igt_pipe_crc_t *pipe_crc;
 	const color_t *colors;
 	int num_colors;
@@ -274,11 +275,11 @@ static void
 test_plane_position(data_t *data, enum pipe pipe)
 {
 	int n_planes = data->display.pipes[pipe].n_planes;
-	igt_output_t *output;
+	igt_output_t *output = data->output;
 	igt_crc_t reference_crc;
 
-	output = igt_get_single_output_for_pipe(&data->display, pipe);
-	igt_require(output);
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
 
 	test_init(data, pipe);
 	test_grab_crc(data, output, pipe, &green, data->flags, &reference_crc);
@@ -383,11 +384,11 @@ test_plane_panning(data_t *data, enum pipe pipe)
 {
 	bool mode_found = false;
 	uint64_t mem_size = 0;
-	igt_output_t *output;
+	igt_output_t *output = data->output;
 	igt_crc_t ref_crc;
 
-	output = igt_get_single_output_for_pipe(&data->display, pipe);
-	igt_require(output);
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
 
 	test_init(data, pipe);
 
@@ -1076,7 +1077,7 @@ test_pixel_formats(data_t *data, enum pipe pipe)
 	igt_plane_t *primary;
 	drmModeModeInfo *mode;
 	bool result;
-	igt_output_t *output;
+	igt_output_t *output = data->output;
 	igt_plane_t *plane;
 
 	if (data->extended) {
@@ -1087,10 +1088,10 @@ test_pixel_formats(data_t *data, enum pipe pipe)
 		data->num_colors = ARRAY_SIZE(colors_reduced);
 	}
 
-	test_init(data, pipe);
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
 
-	output = igt_get_single_output_for_pipe(&data->display, pipe);
-	igt_require(output);
+	test_init(data, pipe);
 
 	mode = igt_output_get_mode(output);
 
@@ -1134,7 +1135,14 @@ static void run_test(data_t *data, void (*test)(data_t *, enum pipe))
 	enum pipe pipe;
 	int count = 0;
 
-	for_each_pipe(&data->display, pipe) {
+	for_each_pipe_with_single_output(&data->display, pipe, data->output) {
+		igt_display_reset(&data->display);
+
+		igt_output_set_pipe(data->output, pipe);
+		if (!i915_pipe_output_combo_valid(&data->display))
+			continue;
+
+		igt_output_set_pipe(data->output, PIPE_NONE);
 		igt_dynamic_f("pipe-%s-planes", kmstest_pipe_name(pipe))
 			test(data, pipe);
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 22/51] tests/kms_plane_alpha_blend: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (20 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 21/51] tests/kms_plane: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 23/51] tests/kms_plane_cursor: " Bhanuprakash Modem
                   ` (33 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name
V3: - Rebase

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by:  Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_alpha_blend.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c
index b8ead9472..0d03e178a 100644
--- a/tests/kms_plane_alpha_blend.c
+++ b/tests/kms_plane_alpha_blend.c
@@ -175,9 +175,6 @@ static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe)
 	int w, h;
 	igt_plane_t *primary = igt_pipe_get_plane_type(&display->pipes[pipe], DRM_PLANE_TYPE_PRIMARY);
 
-	igt_display_reset(display);
-	igt_output_set_pipe(output, pipe);
-
 	/* create the pipe_crc object for this pipe */
 	igt_pipe_crc_free(data->pipe_crc);
 	data->pipe_crc = igt_pipe_crc_new(data->gfx_fd, pipe,
@@ -655,6 +652,12 @@ static void run_subtests(data_t *data)
 				    pipe != active_pipes[last_pipe])
 					continue;
 
+				igt_display_reset(&data->display);
+
+				igt_output_set_pipe(output, pipe);
+				if (!i915_pipe_output_combo_valid(&data->display))
+					continue;
+
 				prepare_crtc(data, output, pipe);
 				if (!pipe_check(data, pipe, subtests[i].blend, subtests[i].must_multiply))
 					continue;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 23/51] tests/kms_plane_cursor: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (21 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 22/51] tests/kms_plane_alpha_blend: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 24/51] tests/kms_plane_lowres: " Bhanuprakash Modem
                   ` (32 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Ananya Sharma <ananya.sharma@intel.com>
---
 tests/kms_plane_cursor.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/kms_plane_cursor.c b/tests/kms_plane_cursor.c
index 9b27586c1..9e317cbfc 100644
--- a/tests/kms_plane_cursor.c
+++ b/tests/kms_plane_cursor.c
@@ -85,6 +85,12 @@ static void test_init(data_t *data, enum pipe pipe_id, igt_output_t *output)
 	data->overlay = igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_OVERLAY);
 	data->cursor = igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_CURSOR);
 
+	igt_output_set_pipe(data->output, data->pipe_id);
+	igt_require(i915_pipe_output_combo_valid(display));
+
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(data->pipe_id), igt_output_name(data->output));
+
 	igt_require_pipe_crc(data->drm_fd);
 	data->pipe_crc = igt_pipe_crc_new(data->drm_fd, data->pipe_id,
 					  IGT_PIPE_CRC_SOURCE_AUTO);
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 24/51] tests/kms_plane_lowres: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (22 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 23/51] tests/kms_plane_cursor: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 25/51] tests/kms_plane_multiple: " Bhanuprakash Modem
                   ` (31 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

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

diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
index 6dfc147c2..958d3ec6f 100644
--- a/tests/kms_plane_lowres.c
+++ b/tests/kms_plane_lowres.c
@@ -277,6 +277,9 @@ static void run_test(data_t *data, uint64_t modifier)
 			igt_display_reset(&data->display);
 			igt_output_set_pipe(data->output, data->pipe);
 
+			if (!i915_pipe_output_combo_valid(&data->display))
+				continue;
+
 			data->pipe_crc = igt_pipe_crc_new(data->drm_fd, data->pipe,
 							  IGT_PIPE_CRC_SOURCE_AUTO);
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 25/51] tests/kms_plane_multiple: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (23 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 24/51] tests/kms_plane_lowres: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 26/51] tests/kms_plane_scaling: " Bhanuprakash Modem
                   ` (30 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

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

diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 756590159..7dd9d586d 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -103,6 +103,7 @@ get_reference_crc(data_t *data, igt_output_t *output, enum pipe pipe,
 	igt_plane_t *primary;
 	int ret;
 
+	igt_display_reset(&data->display);
 	igt_output_set_pipe(output, pipe);
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
@@ -290,6 +291,9 @@ test_plane_position_with_output(data_t *data, enum pipe pipe,
 	bool loop_forever;
 	char info[256];
 
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	if (opt.iterations == LOOP_FOREVER) {
 		loop_forever = true;
 		sprintf(info, "forever");
@@ -373,12 +377,17 @@ static void run_test(data_t *data, uint64_t modifier)
 {
 	enum pipe pipe;
 	igt_output_t *output;
+	igt_display_t *display = &data->display;
 
-	if (!igt_display_has_format_mod(&data->display, DRM_FORMAT_XRGB8888, modifier))
+	if (!igt_display_has_format_mod(display, DRM_FORMAT_XRGB8888, modifier))
 		return;
 
-	for_each_pipe_with_valid_output(&data->display, pipe, output) {
-		igt_display_reset(&data->display);
+	for_each_pipe_with_valid_output(display, pipe, output) {
+		igt_display_reset(display);
+
+		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
 
 		igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
 			test_plane_position(data, pipe, output, modifier);
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 26/51] tests/kms_plane_scaling: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (24 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 25/51] tests/kms_plane_multiple: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-03-17  5:09   ` [igt-dev] [i-g-t V9 " Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 27/51] tests/kms_prime: " Bhanuprakash Modem
                   ` (29 subsequent siblings)
  55 siblings, 1 reply; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

As many 2x tests are currently running on Pipe-A & B only, those
tests will always SKIP if there is any 8K supported panel in the
config. Instead of Skipping the test, add some intelligence to
the subtest to identify the valid pipe/output combo to execute
the subtest.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 218 +++++++++++++++++++++++++-------------
 1 file changed, 145 insertions(+), 73 deletions(-)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 74554915f..782318206 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -611,30 +611,45 @@ static void test_scaler_with_pixel_format_pipe(data_t *d, int width, int height,
 	}
 }
 
-static void find_connected_pipe(igt_display_t *display, bool second, enum pipe *pipe, igt_output_t **output)
+static enum pipe
+find_connected_pipe(igt_display_t *display, bool second, igt_output_t **output)
 {
-	enum pipe first = PIPE_NONE;
-	igt_output_t *first_output = NULL;
+	enum pipe pipe;
+	bool first_output = false;
 	bool found = false;
 
-	for_each_pipe_with_valid_output(display, *pipe, *output) {
-		if (first == *pipe || *output == first_output)
-			continue;
+	igt_display_reset(display);
 
-		if (second) {
-			first = *pipe;
-			first_output = *output;
-			second = false;
-			continue;
-		}
+	for_each_pipe(display, pipe) {
+		for_each_valid_output_on_pipe(display, pipe, *output) {
+			if((*output)->pending_pipe != PIPE_NONE)
+				continue;
 
-		return;
+			igt_output_set_pipe(*output, pipe);
+			if (i915_pipe_output_combo_valid(display)) {
+				found = true;
+
+				if (second) {
+					first_output = true;
+					second = false;
+					found = false;
+				}
+				break;
+			}
+			igt_output_set_pipe(*output, PIPE_NONE);
+		}
+		if (found)
+			break;
 	}
 
+	igt_display_reset(display);
+
 	if (first_output)
 		igt_require_f(found, "No second valid output found\n");
 	else
 		igt_require_f(found, "No valid outputs found\n");
+
+	return pipe;
 }
 
 static void
@@ -821,13 +836,16 @@ static void test_scaler_with_multi_pipe_plane(data_t *d)
 	enum pipe pipe1, pipe2;
 	int ret1, ret2;
 
-	cleanup_crtc(d);
-
-	find_connected_pipe(display, false, &pipe1, &output1);
-	find_connected_pipe(display, true, &pipe2, &output2);
+	cleanup_fbs(d);
 
+	pipe1 = find_connected_pipe(display, false, &output1);
+	pipe2 = find_connected_pipe(display, true, &output2);
 	igt_skip_on(!output1 || !output2);
 
+	igt_info("Using (pipe %s + %s) and (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe1), igt_output_name(output1),
+		 kmstest_pipe_name(pipe2), igt_output_name(output2));
+
 	igt_output_set_pipe(output1, pipe1);
 	igt_output_set_pipe(output2, pipe2);
 
@@ -963,6 +981,22 @@ static void invalid_parameter_tests(data_t *d)
 	}
 }
 
+static bool
+pipe_output_combo_valid(igt_display_t *display,
+			enum pipe pipe, igt_output_t *output)
+{
+	bool ret = true;
+
+	igt_display_reset(display);
+
+	igt_output_set_pipe(output, pipe);
+	if (!i915_pipe_output_combo_valid(display))
+		ret = false;
+	igt_output_set_pipe(output, PIPE_NONE);
+
+	return ret;
+}
+
 static int opt_handler(int opt, int opt_index, void *_data)
 {
 	data_t *data = _data;
@@ -1004,17 +1038,22 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		for (int index = 0; index < ARRAY_SIZE(scaler_with_pixel_format_tests); index++) {
 			igt_describe(scaler_with_pixel_format_tests[index].describe);
 			igt_subtest_with_dynamic(scaler_with_pixel_format_tests[index].name) {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
-					drmModeModeInfo *mode;
-
-					mode = igt_output_get_mode(output);
-
-					test_scaler_with_pixel_format_pipe(&data,
-							get_width(mode, scaler_with_pixel_format_tests[index].sf),
-							get_height(mode, scaler_with_pixel_format_tests[index].sf),
-							scaler_with_pixel_format_tests[index].is_upscale,
-							pipe, output);
+				for_each_pipe(&data.display, pipe) {
+					for_each_valid_output_on_pipe(&data.display, pipe, output) {
+						if (!pipe_output_combo_valid(&data.display, pipe, output))
+							continue;
+
+						igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+							drmModeModeInfo *mode = igt_output_get_mode(output);
+
+							test_scaler_with_pixel_format_pipe(&data,
+								get_width(mode, scaler_with_pixel_format_tests[index].sf),
+								get_height(mode, scaler_with_pixel_format_tests[index].sf),
+								scaler_with_pixel_format_tests[index].is_upscale,
+								pipe, output);
+						}
+						break;
+					}
 				}
 			}
 		}
@@ -1022,17 +1061,22 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		for (int index = 0; index < ARRAY_SIZE(scaler_with_rotation_tests); index++) {
 			igt_describe(scaler_with_rotation_tests[index].describe);
 			igt_subtest_with_dynamic(scaler_with_rotation_tests[index].name) {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
-					drmModeModeInfo *mode;
-
-					mode = igt_output_get_mode(output);
-
-					test_scaler_with_rotation_pipe(&data,
-							get_width(mode, scaler_with_rotation_tests[index].sf),
-							get_height(mode, scaler_with_rotation_tests[index].sf),
-							scaler_with_rotation_tests[index].is_upscale,
-							pipe, output);
+				for_each_pipe(&data.display, pipe) {
+					for_each_valid_output_on_pipe(&data.display, pipe, output) {
+						if (!pipe_output_combo_valid(&data.display, pipe, output))
+							continue;
+
+						igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+							drmModeModeInfo *mode = igt_output_get_mode(output);
+
+							test_scaler_with_rotation_pipe(&data,
+								get_width(mode, scaler_with_rotation_tests[index].sf),
+								get_height(mode, scaler_with_rotation_tests[index].sf),
+								scaler_with_rotation_tests[index].is_upscale,
+								pipe, output);
+						}
+						break;
+					}
 				}
 			}
 		}
@@ -1040,85 +1084,113 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		for (int index = 0; index < ARRAY_SIZE(scaler_with_modifiers_tests); index++) {
 			igt_describe(scaler_with_modifiers_tests[index].describe);
 			igt_subtest_with_dynamic(scaler_with_modifiers_tests[index].name) {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
-					drmModeModeInfo *mode;
-
-					mode = igt_output_get_mode(output);
-
-					test_scaler_with_modifier_pipe(&data,
-							get_width(mode, scaler_with_rotation_tests[index].sf),
-							get_height(mode, scaler_with_rotation_tests[index].sf),
-							scaler_with_rotation_tests[index].is_upscale,
-							pipe, output);
+				for_each_pipe(&data.display, pipe) {
+					for_each_valid_output_on_pipe(&data.display, pipe, output) {
+						if (!pipe_output_combo_valid(&data.display, pipe, output))
+							continue;
+
+						igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+							drmModeModeInfo *mode = igt_output_get_mode(output);
+
+							test_scaler_with_modifier_pipe(&data,
+								get_width(mode, scaler_with_rotation_tests[index].sf),
+								get_height(mode, scaler_with_rotation_tests[index].sf),
+								scaler_with_rotation_tests[index].is_upscale,
+								pipe, output);
+						}
+						break;
+					}
 				}
 			}
 		}
 
 		igt_describe("Tests scaling with clipping and clamping, pixel formats.");
 		igt_subtest_with_dynamic("plane-scaler-with-clipping-clamping-pixel-formats") {
-			for_each_pipe_with_single_output(&data.display, pipe, output) {
-				drmModeModeInfo *mode;
+			for_each_pipe(&data.display, pipe) {
+				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					if (!pipe_output_combo_valid(&data.display, pipe, output))
+						continue;
 
-				mode = igt_output_get_mode(output);
+					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+						drmModeModeInfo *mode = igt_output_get_mode(output);
 
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output))
-					test_scaler_with_pixel_format_pipe(&data, mode->hdisplay + 100,
+						test_scaler_with_pixel_format_pipe(&data, mode->hdisplay + 100,
 							mode->vdisplay + 100, false, pipe, output);
+					}
+					break;
+				}
 			}
 		}
 
 		igt_describe("Tests scaling with clipping and clamping, rotation.");
 		igt_subtest_with_dynamic("plane-scaler-with-clipping-clamping-rotation") {
-			for_each_pipe_with_single_output(&data.display, pipe, output) {
-				drmModeModeInfo *mode;
+			for_each_pipe(&data.display, pipe) {
+				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					if (!pipe_output_combo_valid(&data.display, pipe, output))
+						continue;
 
-				mode = igt_output_get_mode(output);
+					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+						drmModeModeInfo *mode = igt_output_get_mode(output);
 
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output))
-					test_scaler_with_rotation_pipe(&data, mode->hdisplay + 100,
+						test_scaler_with_rotation_pipe(&data, mode->hdisplay + 100,
 							mode->vdisplay + 100, false, pipe, output);
+					}
+					break;
+				}
 			}
 		}
 
 		igt_describe("Tests scaling with clipping and clamping, modifiers.");
 		igt_subtest_with_dynamic("plane-scaler-with-clipping-clamping-modifiers") {
-			for_each_pipe_with_single_output(&data.display, pipe, output) {
-				drmModeModeInfo *mode;
-
-				mode = igt_output_get_mode(output);
-
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output))
-					test_scaler_with_modifier_pipe(&data, mode->hdisplay + 100,
+			for_each_pipe(&data.display, pipe) {
+				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					if (!pipe_output_combo_valid(&data.display, pipe, output))
+						continue;
+
+					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+						drmModeModeInfo *mode = igt_output_get_mode(output);
+						test_scaler_with_modifier_pipe(&data, mode->hdisplay + 100,
 							mode->vdisplay + 100, false, pipe, output);
+					}
+					break;
+				}
 			}
 		}
 
 		for (int index = 0; index < ARRAY_SIZE(scaler_with_2_planes_tests); index++) {
 			igt_describe(scaler_with_2_planes_tests[index].describe);
 			igt_subtest_with_dynamic(scaler_with_2_planes_tests[index].name) {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
-					drmModeModeInfo *mode;
+			for_each_pipe(&data.display, pipe) {
+				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					if (!pipe_output_combo_valid(&data.display, pipe, output))
+						continue;
 
-					mode = igt_output_get_mode(output);
+					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+						drmModeModeInfo *mode = igt_output_get_mode(output);
 
-					test_planes_scaling_combo(&data,
+						test_planes_scaling_combo(&data,
 							get_width(mode, scaler_with_2_planes_tests[index].sf_plane1),
 							get_height(mode, scaler_with_2_planes_tests[index].sf_plane1),
 							get_width(mode, scaler_with_2_planes_tests[index].sf_plane2),
 							get_height(mode, scaler_with_2_planes_tests[index].sf_plane2),
 							pipe, output, scaler_with_2_planes_tests[index].test_type);
+					}
+					break;
 				}
 			}
+			}
 		}
 
 		igt_describe("Negative test for number of scalers per pipe.");
 		igt_subtest_with_dynamic("invalid-num-scalers") {
-			for_each_pipe_with_valid_output(&data.display, pipe, output)
+			for_each_pipe_with_valid_output(&data.display, pipe, output) {
+				if (!pipe_output_combo_valid(&data.display, pipe, output))
+					continue;
+
 				igt_dynamic_f("pipe-%s-%s-invalid-num-scalers",
 					       kmstest_pipe_name(pipe), igt_output_name(output))
 					test_invalid_num_scalers(&data, pipe, output);
+			}
 		}
 	}
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 27/51] tests/kms_prime: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (25 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 26/51] tests/kms_plane_scaling: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 28/51] tests/kms_properties: " Bhanuprakash Modem
                   ` (28 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Ananya Sharma <ananya.sharma@intel.com>
---
 tests/kms_prime.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/tests/kms_prime.c b/tests/kms_prime.c
index ad199915b..255fa1742 100644
--- a/tests/kms_prime.c
+++ b/tests/kms_prime.c
@@ -89,14 +89,17 @@ static igt_output_t *setup_display(int importer_fd, igt_display_t *display,
 	bool found = false;
 
 	for_each_pipe_with_valid_output(display, *pipe, output) {
-		found = true;
-		break;
+		igt_display_reset(display);
+
+		igt_output_set_pipe(output, *pipe);
+		if (i915_pipe_output_combo_valid(display)) {
+			found = true;
+			break;
+		}
 	}
 
 	igt_require_f(found, "No valid connector/pipe found\n");
 
-	igt_display_reset(display);
-	igt_output_set_pipe(output, *pipe);
 	return output;
 }
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 28/51] tests/kms_properties: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (26 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 27/51] tests/kms_prime: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 29/51] tests/kms_rmfb: " Bhanuprakash Modem
                   ` (27 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_properties.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/tests/kms_properties.c b/tests/kms_properties.c
index 2958efaca..2fe8dfa66 100644
--- a/tests/kms_properties.c
+++ b/tests/kms_properties.c
@@ -241,6 +241,12 @@ static void plane_properties(igt_display_t *display, bool atomic)
 		found = false;
 
 		for_each_valid_output_on_pipe(display, pipe, output) {
+			igt_display_reset(display);
+
+			igt_output_set_pipe(output, pipe);
+			if (!i915_pipe_output_combo_valid(display))
+				continue;
+
 			found_any = found = true;
 
 			run_plane_property_tests(display, pipe, output, atomic);
@@ -264,6 +270,12 @@ static void crtc_properties(igt_display_t *display, bool atomic)
 		found = false;
 
 		for_each_valid_output_on_pipe(display, pipe, output) {
+			igt_display_reset(display);
+
+			igt_output_set_pipe(output, pipe);
+			if (!i915_pipe_output_combo_valid(display))
+				continue;
+
 			found_any_valid_pipe = found = true;
 
 			run_crtc_property_tests(display, pipe, output, atomic);
@@ -290,6 +302,12 @@ static void connector_properties(igt_display_t *display, bool atomic)
 			if (!igt_pipe_connector_valid(pipe, output))
 				continue;
 
+			igt_display_reset(display);
+
+			igt_output_set_pipe(output, pipe);
+			if (!i915_pipe_output_combo_valid(display))
+				continue;
+
 			found = true;
 			run_connector_property_tests(display, pipe, output, atomic);
 			break;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 29/51] tests/kms_rmfb: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (27 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 28/51] tests/kms_properties: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 30/51] tests/kms_rotation_crc: " Bhanuprakash Modem
                   ` (26 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_rmfb.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c
index 7e43e1bd2..50df42953 100644
--- a/tests/kms_rmfb.c
+++ b/tests/kms_rmfb.c
@@ -155,8 +155,15 @@ run_rmfb_test(struct rmfb_data *data, bool reopen)
 {
 	igt_output_t *output;
 	enum pipe pipe;
+	igt_display_t *display = &data->display;
+
+	for_each_pipe_with_single_output(display, pipe, output) {
+		igt_display_reset(display);
+
+		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
 
-	for_each_pipe_with_single_output(&data->display, pipe, output) {
 		igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe),
 			      igt_output_name(output))
 			test_rmfb(data, output, pipe, reopen);
@@ -192,7 +199,6 @@ igt_main
 		igt_describe(tests[i].description);
 		igt_subtest_with_dynamic(tests[i].name) {
 			run_rmfb_test(&data, tests[i].reopen);
-
 		}
 	}
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 30/51] tests/kms_rotation_crc: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (28 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 29/51] tests/kms_rmfb: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 31/51] tests/kms_scaling_modes: " Bhanuprakash Modem
                   ` (25 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/kms_rotation_crc.c | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/tests/kms_rotation_crc.c b/tests/kms_rotation_crc.c
index 72c20d5a4..295aed762 100644
--- a/tests/kms_rotation_crc.c
+++ b/tests/kms_rotation_crc.c
@@ -215,6 +215,8 @@ static void prepare_crtc(data_t *data, igt_output_t *output, enum pipe pipe,
 	cleanup_crtc(data);
 
 	igt_output_set_pipe(output, pipe);
+	igt_require(i915_pipe_output_combo_valid(display));
+
 	igt_plane_set_rotation(plane, IGT_ROTATION_0);
 
 	/* create the pipe_crc object for this pipe */
@@ -479,6 +481,7 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 	igt_output_t *output;
 	enum pipe pipe;
 	int pipe_count = 0, connected_outputs = 0;
+	bool found = false;
 
 	if (is_amdgpu_device(data->gfx_fd))
 		igt_require(plane_type != DRM_PLANE_TYPE_OVERLAY &&
@@ -496,6 +499,13 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 		igt_plane_t *plane;
 		int i, j, c;
 
+		igt_display_reset(display);
+
+		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
+
+		found = true;
 		mode = igt_output_get_mode(output);
 
 		/*
@@ -586,6 +596,7 @@ static void test_plane_rotation(data_t *data, int plane_type, bool test_bad_form
 			igt_pipe_crc_stop(data->pipe_crc);
 		}
 	}
+	igt_require_f(found, "No valid pipe/output combo found.\n");
 }
 
 typedef struct {
@@ -804,12 +815,22 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
 		{IGT_ROTATION_270, .2f, .4f, I915_FORMAT_MOD_Y_TILED },
 		{IGT_ROTATION_270, .2f, .4f, I915_FORMAT_MOD_Yf_TILED },
 	};
+	bool found = false;
+
+	igt_display_require_output(display);
 
 	for_each_valid_output_on_pipe(display, pipe, output) {
 		int i, j, k, l, flipsw, fliphw;
+
+		igt_display_reset(display);
+
 		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
+
+		found = true;
+
 		mode = igt_output_get_mode(output);
-		igt_display_require_output(display);
 		igt_display_commit2(display, COMMIT_ATOMIC);
 
 		p[0].plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
@@ -952,6 +973,8 @@ static void test_multi_plane_rotation(data_t *data, enum pipe pipe)
 			igt_remove_fb(data->gfx_fd, &planeconfigs[c].fbs[d][MULTIPLANE_ROTATED]);
 		}
 	}
+
+	igt_require_f(found, "No valid pipe/output combo found.\n");
 }
 
 static void test_plane_rotation_exhaust_fences(data_t *data,
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 31/51] tests/kms_scaling_modes: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (29 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 30/51] tests/kms_rotation_crc: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 32/51] tests/kms_sequence: " Bhanuprakash Modem
                   ` (24 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_scaling_modes.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tests/kms_scaling_modes.c b/tests/kms_scaling_modes.c
index 039e4a8d9..cf6377122 100644
--- a/tests/kms_scaling_modes.c
+++ b/tests/kms_scaling_modes.c
@@ -93,13 +93,17 @@ static void test_scaling_mode(data_t *data, uint32_t flags)
 	enum pipe pipe;
 
 	for_each_pipe_with_valid_output(display, pipe, output) {
+		igt_display_reset(display);
+
 		if (!has_scaling_mode(output))
 			continue;
 
+		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
+
 		igt_dynamic_f("%s-pipe-%s", output->name, kmstest_pipe_name(pipe))
 			test_scaling_mode_on_output(display, pipe, output, flags);
-
-		igt_display_reset(display);
 	}
 }
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 32/51] tests/kms_sequence: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (30 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 31/51] tests/kms_scaling_modes: " Bhanuprakash Modem
@ 2023-02-23 15:09 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 33/51] tests/kms_universal_plane: " Bhanuprakash Modem
                   ` (23 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:09 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
 tests/kms_sequence.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/kms_sequence.c b/tests/kms_sequence.c
index c72857a39..c8a3d6bbd 100644
--- a/tests/kms_sequence.c
+++ b/tests/kms_sequence.c
@@ -285,6 +285,12 @@ igt_main
 				     "drmCrtcQueueSequence");
 			igt_subtest_with_dynamic_f("%s-%s", f->name, m->name) {
 				for_each_pipe_with_valid_output(&data.display, p, output) {
+					igt_display_reset(&data.display);
+
+					igt_output_set_pipe(output, p);
+					if (!i915_pipe_output_combo_valid(&data.display))
+						continue;
+
 					igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p)) {
 						data.pipe = p;
 						data.output = output;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 33/51] tests/kms_universal_plane: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (31 preceding siblings ...)
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 32/51] tests/kms_sequence: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 34/51] tests/kms_vblank: " Bhanuprakash Modem
                   ` (22 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Ananya Sharma <ananya.sharma@intel.com>
---
 tests/kms_universal_plane.c | 94 +++++++++++++++++++++++++++++++++----
 1 file changed, 84 insertions(+), 10 deletions(-)

diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c
index dd8fa1937..2a9eb021f 100644
--- a/tests/kms_universal_plane.c
+++ b/tests/kms_universal_plane.c
@@ -381,6 +381,9 @@ sanity_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 
 	igt_require_pipe(&data->display, pipe);
 
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	igt_output_set_pipe(output, pipe);
 	mode = igt_output_get_mode(output);
 
@@ -494,6 +497,9 @@ pageflip_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 
 	igt_require_pipe(&data->display, pipe);
 
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	igt_output_set_pipe(output, pipe);
 
 	pageflip_test_init(&test, output, pipe);
@@ -604,6 +610,9 @@ cursor_leak_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 	igt_require(display->has_cursor_plane);
 	igt_require_intel(data->drm_fd);
 
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	igt_output_set_pipe(output, pipe);
 	mode = igt_output_get_mode(output);
 
@@ -731,6 +740,9 @@ pageflip_win_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 	igt_skip_on(is_i915_device(data->drm_fd) && data->display_ver < 9);
 	igt_require_pipe(&data->display, pipe);
 
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	igt_output_set_pipe(output, pipe);
 
 	gen9_test_init(&test, output, pipe);
@@ -766,6 +778,22 @@ pageflip_win_test_pipe(data_t *data, enum pipe pipe, igt_output_t *output)
 	gen9_test_fini(&test, output);
 }
 
+static bool
+pipe_output_combo_valid(igt_display_t *display,
+			enum pipe pipe, igt_output_t *output)
+{
+	bool ret = true;
+
+	igt_display_reset(display);
+
+	igt_output_set_pipe(output, pipe);
+	if (!i915_pipe_output_combo_valid(display))
+		ret = false;
+	igt_output_set_pipe(output, PIPE_NONE);
+
+	return ret;
+}
+
 static void
 run_tests_for_pipe(data_t *data, enum pipe pipe)
 {
@@ -784,34 +812,79 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
 
 	igt_describe("Check the switching between different primary plane fbs with CRTC off");
 	igt_subtest_f("universal-plane-pipe-%s-functional",
-		      kmstest_pipe_name(pipe))
-		for_each_valid_output_on_pipe(&data->display, pipe, output)
+		      kmstest_pipe_name(pipe)) {
+		bool found = false;
+
+		for_each_valid_output_on_pipe(&data->display, pipe, output) {
+			if (!pipe_output_combo_valid(&data->display, pipe, output))
+				continue;
+
+			found = true;
 			functional_test_pipe(data, pipe, output);
+		}
+		igt_require_f(found, "No valid pipe/output combo found.\n");
+	}
 
 	igt_describe("Test for scale-up or scale-down using universal plane API without covering CRTC");
 	igt_subtest_f("universal-plane-pipe-%s-sanity",
-		      kmstest_pipe_name(pipe))
-		for_each_valid_output_on_pipe(&data->display, pipe, output)
+		      kmstest_pipe_name(pipe)) {
+		bool found = false;
+
+		for_each_valid_output_on_pipe(&data->display, pipe, output) {
+			if (!pipe_output_combo_valid(&data->display, pipe, output))
+				continue;
+
+			found = true;
 			sanity_test_pipe(data, pipe, output);
+		}
+		igt_require_f(found, "No valid pipe/output combo found.\n");
+	}
 
 	igt_describe("Check pageflips while primary plane is disabled before IOCTL or between IOCTL"
 			" and pageflip execution");
 	igt_subtest_f("disable-primary-vs-flip-pipe-%s",
-		      kmstest_pipe_name(pipe))
-		for_each_valid_output_on_pipe(&data->display, pipe, output)
+		      kmstest_pipe_name(pipe)) {
+		bool found = false;
+
+		for_each_valid_output_on_pipe(&data->display, pipe, output) {
+			if (!pipe_output_combo_valid(&data->display, pipe, output))
+				continue;
+
+			found = true;
 			pageflip_test_pipe(data, pipe, output);
+		}
+		igt_require_f(found, "No valid pipe/output combo found.\n");
+	}
 
 	igt_describe("Check for cursor leaks after performing cursor operations");
 	igt_subtest_f("cursor-fb-leak-pipe-%s",
-		      kmstest_pipe_name(pipe))
-		for_each_valid_output_on_pipe(&data->display, pipe, output)
+		      kmstest_pipe_name(pipe)) {
+		bool found = false;
+
+		for_each_valid_output_on_pipe(&data->display, pipe, output) {
+			if (!pipe_output_combo_valid(&data->display, pipe, output))
+				continue;
+
+			found = true;
 			cursor_leak_test_pipe(data, pipe, output);
+		}
+		igt_require_f(found, "No valid pipe/output combo found.\n");
+	}
 
 	igt_describe("Check if pageflip succeeds in windowed setting");
 	igt_subtest_f("universal-plane-pageflip-windowed-pipe-%s",
-		      kmstest_pipe_name(pipe))
-		for_each_valid_output_on_pipe(&data->display, pipe, output)
+		      kmstest_pipe_name(pipe)) {
+		bool found = false;
+
+		for_each_valid_output_on_pipe(&data->display, pipe, output) {
+			if (!pipe_output_combo_valid(&data->display, pipe, output))
+				continue;
+
+			found = true;
 			pageflip_win_test_pipe(data, pipe, output);
+		}
+		igt_require_f(found, "No valid pipe/output combo found.\n");
+	}
 }
 
 static data_t data;
@@ -829,6 +902,7 @@ igt_main
 
 		igt_require_pipe_crc(data.drm_fd);
 		igt_display_require(&data.display, data.drm_fd);
+		igt_display_require_output(&data.display);
 	}
 
 	for_each_pipe_static(pipe) {
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 34/51] tests/kms_vblank: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (32 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 33/51] tests/kms_universal_plane: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 35/51] tests/kms_vrr: " Bhanuprakash Modem
                   ` (21 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_vblank.c | 54 ++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 52 insertions(+), 2 deletions(-)

diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c
index 5bd3fefe1..f6863af0c 100644
--- a/tests/kms_vblank.c
+++ b/tests/kms_vblank.c
@@ -175,6 +175,22 @@ static void run_test(data_t *data, void (*testfunc)(data_t *, int, int))
 	cleanup_crtc(data, fd, output);
 }
 
+static bool
+pipe_output_combo_valid(igt_display_t *display,
+			enum pipe pipe, igt_output_t *output)
+{
+	bool ret = true;
+
+	igt_display_reset(display);
+
+	igt_output_set_pipe(output, pipe);
+	if (!i915_pipe_output_combo_valid(display))
+		ret = false;
+	igt_output_set_pipe(output, PIPE_NONE);
+
+	return ret;
+}
+
 static void crtc_id_subtest(data_t *data, int fd)
 {
 	igt_display_t *display = &data->display;
@@ -188,6 +204,15 @@ static void crtc_id_subtest(data_t *data, int fd)
 		uint64_t val;
 		union drm_wait_vblank vbl;
 
+		igt_display_reset(display);
+
+		igt_output_set_pipe(output, p);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
+
+		igt_info("Using (pipe %s + %s) to run the subtest.\n",
+			 kmstest_pipe_name(p), igt_output_name(output));
+
 		crtc_id = display->pipes[p].crtc_id;
 		if (drmGetCap(display->drm_fd, DRM_CAP_CRTC_IN_VBLANK_EVENT, &val) == 0)
 			expected_crtc_id = crtc_id;
@@ -449,10 +474,18 @@ static void run_subtests_for_pipe(data_t *data)
 			igt_subtest_f("pipe-%s-%s-%s",
 				      kmstest_pipe_name(data->pipe),
 				      f->name, m->name) {
+				int found = 0;
+
 				for_each_valid_output_on_pipe(&data->display, data->pipe, data->output) {
+					if (!pipe_output_combo_valid(&data->display, data->pipe, data->output))
+						continue;
+
 					data->flags = m->flags | NOHANG;
 					run_test(data, f->func);
+
+					found++;
 				}
+				igt_require_f(found, "No valid pipe/output combo found.\n");
 			}
 
 			/* Skip the -hang version if NOHANG flag is set */
@@ -464,13 +497,20 @@ static void run_subtests_for_pipe(data_t *data)
 				      kmstest_pipe_name(data->pipe),
 				      f->name, m->name) {
 				igt_hang_t hang;
+				int found = 0;
 
 				hang = igt_allow_hang(data->display.drm_fd, 0, 0);
 				for_each_valid_output_on_pipe(&data->display, data->pipe, data->output) {
+					if (!pipe_output_combo_valid(&data->display, data->pipe, data->output))
+						continue;
+
 					data->flags = m->flags;
 					run_test(data, f->func);
+
+					found++;
 				}
 				igt_disallow_hang(data->display.drm_fd, hang);
+				igt_require_f(found, "No valid pipe/output combo found.\n");
 			}
 		}
 	}
@@ -482,12 +522,22 @@ static void invalid_subtest(data_t *data, int fd)
 	unsigned long valid_flags;
 	igt_display_t* display = &data->display;
 	enum pipe pipe = 0;
-	igt_output_t* output = igt_get_single_output_for_pipe(display, pipe);
+	igt_output_t *output;
+
+	igt_display_reset(display);
+
+	output = igt_get_single_output_for_pipe(display, pipe);
+	igt_require(output);
 
 	data->pipe = pipe;
 	data->output = output;
+
 	igt_output_set_pipe(output, pipe);
-	igt_display_require_output_on_pipe(display, pipe);
+	igt_require(i915_pipe_output_combo_valid(display));
+
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	prepare_crtc(data, fd, output);
 
 	/* First check all is well with a simple query */
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 35/51] tests/kms_vrr: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (33 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 34/51] tests/kms_vblank: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 36/51] tests/i915/kms_big_fb: " Bhanuprakash Modem
                   ` (20 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_vrr.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index 68c4f2646..d2d79c4eb 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -474,6 +474,12 @@ run_vrr_test(data_t *data, test_t test, uint32_t flags)
 
 		for_each_pipe(&data->display, pipe) {
 			if (igt_pipe_connector_valid(pipe, output)) {
+				igt_display_reset(&data->display);
+
+				igt_output_set_pipe(output, pipe);
+				if (!i915_pipe_output_combo_valid(&data->display))
+					continue;
+
 				igt_dynamic_f("pipe-%s-%s",
 					      kmstest_pipe_name(pipe), output->name)
 					test(data, pipe, output, flags);
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 36/51] tests/i915/kms_big_fb: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (34 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 35/51] tests/kms_vrr: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 37/51] tests/i915/kms_big_joiner: Negative tests " Bhanuprakash Modem
                   ` (19 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_big_fb.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/tests/i915/kms_big_fb.c b/tests/i915/kms_big_fb.c
index 0beba0e18..a29a05a28 100644
--- a/tests/i915/kms_big_fb.c
+++ b/tests/i915/kms_big_fb.c
@@ -406,6 +406,9 @@ static bool test_pipe(data_t *data)
 	igt_plane_t *primary;
 	bool ret = false;
 
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(data->pipe), igt_output_name(data->output));
+
 	if (data->format == DRM_FORMAT_C8 &&
 	    !igt_pipe_obj_has_prop(&data->display.pipes[data->pipe],
 				   IGT_CRTC_GAMMA_LUT))
@@ -481,6 +484,10 @@ max_hw_stride_async_flip_test(data_t *data)
 	igt_crc_t compare_crc, async_crc;
 
 	igt_require(data->display.is_atomic);
+
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(data->pipe), igt_output_name(data->output));
+
 	igt_output_set_pipe(data->output, data->pipe);
 
 	primary = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY);
@@ -592,6 +599,12 @@ static void test_scanout(data_t *data)
 		    data->format, data->modifier);
 
 	for_each_pipe_with_valid_output(&data->display, data->pipe, data->output) {
+		igt_display_reset(&data->display);
+
+		igt_output_set_pipe(data->output, data->pipe);
+		if (!i915_pipe_output_combo_valid(&data->display))
+			continue;
+
 		if (data->async_flip_test) {
 			if (max_hw_stride_async_flip_test(data))
 				return;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 37/51] tests/i915/kms_big_joiner: Negative tests for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (35 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 36/51] tests/i915/kms_big_fb: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 38/51] tests/i915/kms_busy: Add support " Bhanuprakash Modem
                   ` (18 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

Add negative tests to validate Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

Kernel should reject the commit/modeset if above conditions won't met.

V2:
- Fix redundant negative tests
V3:
- Drop duplicate logic
V4:
- Fix the CRASH in CI

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Karthik B S <karthik.b.s@intel.com>
---
 tests/i915/kms_big_joiner.c | 208 ++++++++++++++++--------------------
 1 file changed, 91 insertions(+), 117 deletions(-)

diff --git a/tests/i915/kms_big_joiner.c b/tests/i915/kms_big_joiner.c
index 71b2526d6..8be60ea11 100644
--- a/tests/i915/kms_big_joiner.c
+++ b/tests/i915/kms_big_joiner.c
@@ -37,119 +37,47 @@ typedef struct {
 	int n_pipes;
 	enum pipe pipe1;
 	enum pipe pipe2;
-	struct output_data {
-		uint32_t id;
-		int mode_number;
-	} big_joiner_output[2];
+	uint32_t big_joiner_output[2];
 } data_t;
 
 static void test_invalid_modeset(data_t *data)
 {
-	drmModeModeInfo *mode;
+	igt_output_t *output;
 	igt_display_t *display = &data->display;
-	igt_output_t *output, *big_joiner_output = NULL, *second_output = NULL;
 	int ret;
-	igt_pipe_t *pipe;
-	igt_plane_t *plane;
-
-	igt_display_reset(display);
-
-	for_each_connected_output(display, output) {
-		mode = &output->config.connector->modes[0];
-
-		if (data->big_joiner_output[0].id == output->id) {
-			big_joiner_output = output;
-		} else if (second_output == NULL) {
-			second_output = output;
-		}
-	}
 
-	igt_output_set_pipe(big_joiner_output, data->pipe1);
-
-	mode = &big_joiner_output->config.connector->modes[data->big_joiner_output[0].mode_number];
-	igt_output_override_mode(big_joiner_output, mode);
-
-	pipe = &display->pipes[data->pipe1];
-	plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
+	igt_info("Bigjoiner test on ");
+	for_each_connected_output(display, output){
+		enum pipe p = output->pending_pipe;
+		drmModeModeInfo *mode;
+		igt_pipe_t *pipe;
+		igt_plane_t *plane;
 
-	igt_plane_set_fb(plane, &data->fb);
-	igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay);
-	igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
+		if (p == PIPE_NONE)
+			continue;
 
-	igt_display_commit2(display, COMMIT_ATOMIC);
-
-	igt_output_set_pipe(second_output, data->pipe2);
+		mode = igt_output_get_mode(output);
+		igt_info("pipe:%s, output:%s, mode:", kmstest_pipe_name(p), igt_output_name(output));
+		kmstest_dump_mode(mode);
 
-	mode = igt_output_get_mode(second_output);
+		pipe = &display->pipes[p];
+		plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
 
-	pipe = &display->pipes[data->pipe2];
-	plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
+		igt_plane_set_fb(plane, &data->fb);
+		igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay);
+		igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
+	}
 
-	igt_plane_set_fb(plane, &data->fb);
-	igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay);
-	igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
+	igt_assert(!igt_check_bigjoiner_support(display));
 
 	/* This commit is expectd to fail as this pipe is being used for big joiner */
 	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY |
 					    DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
-	igt_assert_lt(ret, 0);
-
-	igt_output_set_pipe(big_joiner_output, PIPE_NONE);
-	igt_output_set_pipe(second_output, PIPE_NONE);
-
-	pipe = &display->pipes[data->pipe1];
-	plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
-
-	/*
-	 * Do not explicitly set the plane of the second output to NULL,
-	 * as it is the adjacent pipe to the big joiner output and
-	 * setting the big joiner plane to NULL will take care of this.
-	 */
-	igt_plane_set_fb(plane, NULL);
-	igt_display_commit2(display, COMMIT_ATOMIC);
-	igt_output_override_mode(big_joiner_output, NULL);
-
-	igt_output_set_pipe(second_output, data->pipe2);
-
-	mode = igt_output_get_mode(second_output);
-
-	pipe = &display->pipes[data->pipe2];
-	plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
-
-	igt_plane_set_fb(plane, &data->fb);
-	igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay);
-	igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
 
+	igt_display_reset(&data->display);
 	igt_display_commit2(display, COMMIT_ATOMIC);
 
-	igt_output_set_pipe(big_joiner_output, data->pipe1);
-
-	mode = &big_joiner_output->config.connector->modes[data->big_joiner_output[0].mode_number];
-	igt_output_override_mode(big_joiner_output, mode);
-
-	pipe = &display->pipes[data->pipe1];
-	plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
-
-	igt_plane_set_fb(plane, &data->fb);
-	igt_fb_set_size(&data->fb, plane, mode->hdisplay, mode->vdisplay);
-	igt_plane_set_size(plane, mode->hdisplay, mode->vdisplay);
-
-	/* This commit is expected to fail as the adjacent pipe is already in use*/
-	ret = igt_display_try_commit_atomic(display, DRM_MODE_ATOMIC_TEST_ONLY |
-					    DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 	igt_assert_lt(ret, 0);
-
-	igt_output_set_pipe(big_joiner_output, PIPE_NONE);
-	igt_output_set_pipe(second_output, PIPE_NONE);
-	igt_plane_set_fb(plane, NULL);
-
-	pipe = &display->pipes[data->pipe2];
-	plane = igt_pipe_get_plane_type(pipe, DRM_PLANE_TYPE_PRIMARY);
-	igt_plane_set_fb(plane, NULL);
-
-	igt_display_commit2(display, COMMIT_ATOMIC);
-
-	igt_output_override_mode(big_joiner_output, NULL);
 }
 
 static void test_basic_modeset(data_t *data)
@@ -163,7 +91,7 @@ static void test_basic_modeset(data_t *data)
 	igt_display_reset(display);
 
 	for_each_connected_output(display, output) {
-		if (data->big_joiner_output[0].id == output->id) {
+		if (data->big_joiner_output[0] == output->id) {
 			big_joiner_output = output;
 			break;
 		}
@@ -171,7 +99,9 @@ static void test_basic_modeset(data_t *data)
 
 	igt_output_set_pipe(big_joiner_output, data->pipe1);
 
-	mode = &big_joiner_output->config.connector->modes[data->big_joiner_output[0].mode_number];
+	igt_sort_connector_modes(big_joiner_output->config.connector,
+				 sort_drm_modes_by_res_dsc);
+	mode = &big_joiner_output->config.connector->modes[0];
 	igt_output_override_mode(big_joiner_output, mode);
 
 	pipe = &display->pipes[data->pipe1];
@@ -200,7 +130,7 @@ static void test_dual_display(data_t *data)
 	igt_display_reset(display);
 
 	for_each_connected_output(display, output) {
-		if (data->big_joiner_output[count].id == output->id) {
+		if (data->big_joiner_output[count] == output->id) {
 			big_joiner_output[count] = output;
 			count++;
 		}
@@ -213,7 +143,9 @@ static void test_dual_display(data_t *data)
 	igt_output_set_pipe(big_joiner_output[1], data->pipe2);
 
 	/* Set up first big joiner output on Pipe A*/
-	mode = &big_joiner_output[0]->config.connector->modes[data->big_joiner_output[0].mode_number];
+	igt_sort_connector_modes(big_joiner_output[0]->config.connector,
+				 sort_drm_modes_by_res_dsc);
+	mode = &big_joiner_output[0]->config.connector->modes[0];
 	igt_output_override_mode(big_joiner_output[0], mode);
 
 	pipe = &display->pipes[data->pipe1];
@@ -224,7 +156,9 @@ static void test_dual_display(data_t *data)
 	igt_plane_set_size(plane1, mode->hdisplay, mode->vdisplay);
 
 	/* Set up second big joiner output on Pipe C*/
-	mode = &big_joiner_output[1]->config.connector->modes[data->big_joiner_output[1].mode_number];
+	igt_sort_connector_modes(big_joiner_output[1]->config.connector,
+				 sort_drm_modes_by_res_dsc);
+	mode = &big_joiner_output[1]->config.connector->modes[0];
 	igt_output_override_mode(big_joiner_output[1], mode);
 
 	pipe = &display->pipes[data->pipe2];
@@ -261,19 +195,15 @@ igt_main
 		igt_require(data.display.is_atomic);
 
 		for_each_connected_output(&data.display, output) {
-			if (count < 2) {
-				for (i = 0; i < output->config.connector->count_modes; i++) {
-					mode = &output->config.connector->modes[i];
-					if (mode->hdisplay > MAX_HDISPLAY_PER_PIPE) {
-						data.big_joiner_output[count].mode_number = i;
-						data.big_joiner_output[count].id = output->id;
-						count++;
-
-						width = max(width, mode->hdisplay);
-						height = max(height, mode->vdisplay);
-						break;
-					}
-				}
+			igt_sort_connector_modes(output->config.connector,
+						 sort_drm_modes_by_res_dsc);
+
+			mode = &output->config.connector->modes[0];
+			if (mode->hdisplay > MAX_HDISPLAY_PER_PIPE) {
+				data.big_joiner_output[count++] = output->id;
+
+				width = max(width, mode->hdisplay);
+				height = max(height, mode->vdisplay);
 			}
 			valid_output++;
 		}
@@ -303,14 +233,58 @@ igt_main
 	igt_describe("Verify if the modeset on the adjoining pipe is rejected "
 		     "when the pipe is active with a big joiner modeset");
 	igt_subtest_with_dynamic("invalid-modeset") {
-		igt_require_f(valid_output > 1, "No valid Second output found\n");
-		for (i = 0; i < data.n_pipes - 1; i++) {
-			data.pipe1 = pipe_seq[i];
-			data.pipe2 = pipe_seq[i + 1];
-			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe_seq[i]),
-						    kmstest_pipe_name(pipe_seq[i + 1]))
+		data.pipe1 = pipe_seq[j - 1];
+
+		igt_display_reset(&data.display);
+		for_each_connected_output(&data.display, output) {
+			if (data.big_joiner_output[0] != output->id)
+				continue;
+
+			igt_sort_connector_modes(output->config.connector,
+						 sort_drm_modes_by_res_dsc);
+
+			igt_output_set_pipe(output, data.pipe1);
+			igt_output_override_mode(output, &output->config.connector->modes[0]);
+
+			igt_dynamic_f("pipe-%s-%s",
+				      kmstest_pipe_name(data.pipe1),
+				      igt_output_name(output))
 				test_invalid_modeset(&data);
 		}
+
+		if(valid_output > 1) {
+			for (i = 0; i < data.n_pipes - 1; i++) {
+				igt_output_t *first_output = NULL, *second_output = NULL;
+
+				data.pipe1 = pipe_seq[i];
+				data.pipe2 = pipe_seq[i + 1];
+
+				igt_display_reset(&data.display);
+				for_each_connected_output(&data.display, output) {
+					igt_sort_connector_modes(output->config.connector,
+								 sort_drm_modes_by_res_dsc);
+
+					if (data.big_joiner_output[0] == output->id) {
+						first_output = output;
+						igt_output_set_pipe(output, data.pipe1);
+						igt_output_override_mode(output, &output->config.connector->modes[0]);
+					} else if (second_output == NULL) {
+						second_output = output;
+						igt_output_set_pipe(output, data.pipe2);
+						igt_output_override_mode(output, &output->config.connector->modes[0]);
+
+						break;
+					}
+				}
+
+				igt_dynamic_f("pipe-%s-%s-pipe-%s-%s",
+					      kmstest_pipe_name(data.pipe1),
+					      igt_output_name(first_output),
+					      kmstest_pipe_name(data.pipe2),
+					      igt_output_name(second_output))
+					test_invalid_modeset(&data);
+			}
+		}
 	}
 
 	igt_describe("Verify simultaneous modeset on 2 big joiner outputs");
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 38/51] tests/i915/kms_busy: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (36 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 37/51] tests/i915/kms_big_joiner: Negative tests " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 39/51] tests/i915/kms_ccs: " Bhanuprakash Modem
                   ` (17 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
 tests/i915/kms_busy.c | 106 ++++++++++++++++++++++++++++--------------
 1 file changed, 71 insertions(+), 35 deletions(-)

diff --git a/tests/i915/kms_busy.c b/tests/i915/kms_busy.c
index b06426123..20d3058fb 100644
--- a/tests/i915/kms_busy.c
+++ b/tests/i915/kms_busy.c
@@ -32,15 +32,12 @@ IGT_TEST_DESCRIPTION("Basic check of KMS ABI with busy framebuffers.");
 
 static bool all_pipes = false;
 
-static igt_output_t *
-set_fb_on_crtc(igt_display_t *dpy, int pipe, struct igt_fb *fb)
+static void
+set_fb_on_crtc(igt_display_t *dpy, int pipe,
+	       igt_output_t *output, struct igt_fb *fb)
 {
 	drmModeModeInfoPtr mode;
 	igt_plane_t *primary;
-	igt_output_t *output;
-
-	output = igt_get_single_output_for_pipe(dpy, pipe);
-	igt_require(output);
 
 	igt_output_set_pipe(output, pipe);
 	mode = igt_output_get_mode(output);
@@ -51,8 +48,6 @@ set_fb_on_crtc(igt_display_t *dpy, int pipe, struct igt_fb *fb)
 
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_plane_set_fb(primary, fb);
-
-	return output;
 }
 
 static void do_cleanup_display(igt_display_t *dpy)
@@ -136,18 +131,23 @@ static void flip_to_fb(igt_display_t *dpy, int pipe,
 	put_ahnd(ahnd);
 }
 
-static void test_flip(igt_display_t *dpy, int pipe, bool modeset)
+static void test_flip(igt_display_t *dpy, int pipe,
+		      igt_output_t *output, bool modeset)
 {
 	struct igt_fb fb[2];
 	int warmup[] = { 0, 1, 0, -1 };
 	struct timespec tv = {};
-	igt_output_t *output;
 	int timeout;
 
 	if (modeset)
 		igt_require(dpy->is_atomic);
 
-	output = set_fb_on_crtc(dpy, pipe, &fb[0]);
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	igt_display_reset(dpy);
+
+	set_fb_on_crtc(dpy, pipe, output, &fb[0]);
 	igt_display_commit2(dpy, COMMIT_LEGACY);
 
 	igt_create_pattern_fb(dpy->drm_fd,
@@ -224,13 +224,18 @@ static void test_atomic_commit_hang(igt_display_t *dpy, igt_plane_t *primary,
 }
 
 static void test_hang(igt_display_t *dpy,
-		      enum pipe pipe, bool modeset, bool hang_newfb)
+		      enum pipe pipe, igt_output_t *output,
+		      bool modeset, bool hang_newfb)
 {
 	struct igt_fb fb[2];
-	igt_output_t *output;
 	igt_plane_t *primary;
 
-	output = set_fb_on_crtc(dpy, pipe, &fb[0]);
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	igt_display_reset(dpy);
+
+	set_fb_on_crtc(dpy, pipe, output, &fb[0]);
 	igt_display_commit2(dpy, COMMIT_ATOMIC);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
@@ -265,16 +270,22 @@ static void test_hang(igt_display_t *dpy,
 	igt_remove_fb(dpy->drm_fd, &fb[0]);
 }
 
-static void test_pageflip_modeset_hang(igt_display_t *dpy, enum pipe pipe)
+static void
+test_pageflip_modeset_hang(igt_display_t *dpy,
+			   igt_output_t *output, enum pipe pipe)
 {
 	struct igt_fb fb;
 	struct drm_event_vblank ev;
-	igt_output_t *output;
 	igt_plane_t *primary;
 	igt_spin_t *t;
 	uint64_t ahnd = get_reloc_ahnd(dpy->drm_fd, 0);
 
-	output = set_fb_on_crtc(dpy, pipe, &fb);
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	igt_display_reset(dpy);
+
+	set_fb_on_crtc(dpy, pipe, output, &fb);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
 	igt_display_commit2(dpy, dpy->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
@@ -299,6 +310,22 @@ static void test_pageflip_modeset_hang(igt_display_t *dpy, enum pipe pipe)
 	igt_remove_fb(dpy->drm_fd, &fb);
 }
 
+static bool
+pipe_output_combo_valid(igt_display_t *dpy,
+			igt_output_t *output, enum pipe pipe)
+{
+	bool ret = true;
+
+	igt_display_reset(dpy);
+
+	igt_output_set_pipe(output, pipe);
+	if (!i915_pipe_output_combo_valid(dpy))
+		ret = false;
+	igt_output_set_pipe(output, PIPE_NONE);
+
+	return ret;
+}
+
 static int opt_handler(int opt, int opt_index, void *data)
 {
 	switch (opt) {
@@ -346,7 +373,8 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 {
 	igt_display_t display = { .drm_fd = -1, .n_pipes = IGT_MAX_PIPES };
 
-	enum pipe active_pipes[IGT_MAX_PIPES];
+	enum pipe pipe, active_pipes[IGT_MAX_PIPES];
+	igt_output_t *output;
 	uint32_t last_pipe = 0;
 	int i;
 	struct {
@@ -367,8 +395,6 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	int fd;
 
 	igt_fixture {
-		enum pipe pipe;
-
 		fd = drm_open_driver_master(DRIVER_INTEL);
 
 		igt_require_gem(fd);
@@ -391,63 +417,72 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 
 	igt_describe("Test for basic check of KMS ABI with busy framebuffers.");
 	igt_subtest_with_dynamic("basic") { /* just run on the first pipe */
-		enum pipe pipe;
+		for_each_pipe_with_single_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, output, pipe))
+				continue;
 
-		for_each_pipe(&display, pipe) {
 			igt_dynamic("flip")
-				test_flip(&display, pipe, false);
+				test_flip(&display, pipe, output, false);
 			igt_dynamic("modeset")
-				test_flip(&display, pipe, true);
+				test_flip(&display, pipe, output, true);
 			break;
 		}
 	}
 
 	igt_subtest_with_dynamic("basic-hang") {
-		enum pipe pipe;
 		igt_hang_t hang = igt_allow_hang(display.drm_fd, 0, 0);
 		errno = 0;
 
-		for_each_pipe(&display, pipe) {
+		for_each_pipe_with_single_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, output, pipe))
+				continue;
+
 			if (!all_pipes && pipe != active_pipes[0] &&
 					  pipe != active_pipes[last_pipe])
 				continue;
 
 			igt_dynamic_f("flip-pipe-%s", kmstest_pipe_name(pipe))
-				test_flip(&display, pipe, false);
+				test_flip(&display, pipe, output, false);
 			igt_dynamic_f("modeset-pipe-%s", kmstest_pipe_name(pipe))
-				test_flip(&display, pipe, true);
+				test_flip(&display, pipe, output, true);
 		}
 
 		igt_disallow_hang(display.drm_fd, hang);
 	}
 
 	igt_subtest_with_dynamic("extended-pageflip-modeset-hang-oldfb") {
-		enum pipe pipe;
 		igt_hang_t hang = igt_allow_hang(display.drm_fd, 0, 0);
 		errno = 0;
 
-		for_each_pipe(&display, pipe) {
+		for_each_pipe_with_single_output(&display, pipe, output) {
+			if (!pipe_output_combo_valid(&display, output, pipe))
+				continue;
+
 			if (!all_pipes && pipe != active_pipes[0] &&
 					  pipe != active_pipes[last_pipe])
 				continue;
 
 			igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe))
-				test_pageflip_modeset_hang(&display, pipe);
+				test_pageflip_modeset_hang(&display, output, pipe);
 		}
 
 		igt_disallow_hang(display.drm_fd, hang);
 	}
 
 	for (i = 0; i < sizeof(tests) / sizeof (tests[0]); i++) {
+		igt_fixture
+			igt_require(display.is_atomic);
+
 		igt_subtest_with_dynamic(tests[i].name) {
-			enum pipe pipe;
 			igt_hang_t hang;
 			errno = 0;
 
-			igt_require(display.is_atomic);
 			hang = igt_allow_hang(display.drm_fd, 0, 0);
 
-			for_each_pipe(&display, pipe) {
+			for_each_pipe_with_single_output(&display, pipe, output) {
+				if (!pipe_output_combo_valid(&display, output, pipe))
+					continue;
+
 				if (!all_pipes && pipe != active_pipes[0] &&
 						  pipe != active_pipes[last_pipe])
 					continue;
@@ -456,7 +491,8 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 					if (tests[i].reset)
 						igt_set_module_param_int(display.drm_fd, "force_reset_modeset_test", 1);
 
-					test_hang(&display, pipe, tests[i].modeset, tests[i].hang_newfb);
+					test_hang(&display, pipe, output,
+						  tests[i].modeset, tests[i].hang_newfb);
 
 					if (tests[i].reset)
 						igt_set_module_param_int(display.drm_fd, "force_reset_modeset_test", 0);
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 39/51] tests/i915/kms_ccs: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (37 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 38/51] tests/i915/kms_busy: Add support " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 40/51] tests/i915/kms_cdclk: " Bhanuprakash Modem
                   ` (16 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

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

diff --git a/tests/i915/kms_ccs.c b/tests/i915/kms_ccs.c
index 9be3fa252..40f052785 100644
--- a/tests/i915/kms_ccs.c
+++ b/tests/i915/kms_ccs.c
@@ -590,12 +590,21 @@ static int test_ccs(data_t *data)
 static void test_output(data_t *data, const int testnum)
 {
 	igt_fixture {
+		bool found = false;
+
 		data->flags = tests[testnum].flags;
 
-		data->output = igt_get_single_output_for_pipe(&data->display,
-							      data->pipe);
-		igt_require(data->output);
-		igt_output_set_pipe(data->output, data->pipe);
+		for_each_valid_output_on_pipe(&data->display, data->pipe, data->output) {
+			igt_display_reset(&data->display);
+
+			igt_output_set_pipe(data->output, data->pipe);
+			if (i915_pipe_output_combo_valid(&data->display)) {
+				found = true;
+				break;
+			}
+
+		}
+		igt_require_f(found, "No valid pipe/output combo found.\n");
 	}
 
 	for (int i = 0; i < ARRAY_SIZE(ccs_modifiers); i++) {
@@ -611,7 +620,6 @@ static void test_output(data_t *data, const int testnum)
 		igt_subtest_f("pipe-%s-%s-%s", kmstest_pipe_name(data->pipe),
 			      tests[testnum].testname, ccs_modifiers[i].str) {
 			int valid_tests = 0;
-			igt_require(data->output);
 
 			if (data->flags == TEST_RANDOM)
 				igt_info("Testing with seed %d\n", data->seed);
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 40/51] tests/i915/kms_cdclk: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (38 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 39/51] tests/i915/kms_ccs: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 41/51] tests/i915/kms_draw_crc: " Bhanuprakash Modem
                   ` (15 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name
V3: - Fix "mode-transition-all-outputs"

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/i915/kms_cdclk.c | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

diff --git a/tests/i915/kms_cdclk.c b/tests/i915/kms_cdclk.c
index 991a7c507..f1a46a7d4 100644
--- a/tests/i915/kms_cdclk.c
+++ b/tests/i915/kms_cdclk.c
@@ -257,15 +257,23 @@ static void test_mode_transition_on_all_outputs(data_t *data)
 	for_each_connected_output(&data->display, output)
 		valid_outputs++;
 
+	i = 0;
 	for_each_connected_output(display, output) {
 		mode = igt_output_get_mode(output);
 		igt_assert(mode);
 
-		igt_output_set_pipe(output, PIPE_NONE);
-
 		width = max(width, mode->hdisplay);
 		height = max(height, mode->vdisplay);
+
+		mode_hi = get_highres_mode(output);
+		igt_require(mode_hi != NULL);
+
+		igt_output_set_pipe(output, i);
+		igt_output_override_mode(output, mode_hi);
+		i++;
 	}
+	igt_require(i915_pipe_output_combo_valid(display));
+	igt_display_reset(display);
 
 	igt_create_pattern_fb(data->drm_fd, width, height, DRM_FORMAT_XRGB8888,
 			      DRM_FORMAT_MOD_LINEAR, &fb);
@@ -332,13 +340,18 @@ static void run_cdclk_test(data_t *data, uint32_t flags)
 	enum pipe pipe;
 
 	for_each_pipe_with_valid_output(display, pipe, output) {
-		igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name)
-			if (igt_pipe_connector_valid(pipe, output)) {
-				if (flags & TEST_PLANESCALING)
-					test_plane_scaling(data, pipe, output);
-				if (flags & TEST_MODETRANSITION)
-					test_mode_transition(data, pipe, output);
-			}
+		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(display)) {
+			igt_output_set_pipe(output, PIPE_NONE);
+			continue;
+		}
+
+		igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), output->name) {
+			if (flags & TEST_PLANESCALING)
+				test_plane_scaling(data, pipe, output);
+			if (flags & TEST_MODETRANSITION)
+				test_mode_transition(data, pipe, output);
+		}
 	}
 }
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 41/51] tests/i915/kms_draw_crc: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (39 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 40/51] tests/i915/kms_cdclk: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 42/51] tests/i915/kms_fence_pin_leak: " Bhanuprakash Modem
                   ` (14 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
 tests/i915/kms_draw_crc.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/tests/i915/kms_draw_crc.c b/tests/i915/kms_draw_crc.c
index 701de8ecb..3a3cd99a0 100644
--- a/tests/i915/kms_draw_crc.c
+++ b/tests/i915/kms_draw_crc.c
@@ -59,16 +59,14 @@ static void find_modeset_params(void)
 {
 	enum pipe pipe;
 
-	igt_display_reset(&display);
-	igt_display_commit(&display);
-
 	for_each_pipe_with_valid_output(&display, pipe, output) {
-		igt_output_set_pipe(output, pipe);
+		igt_display_reset(&display);
 
-		mode = igt_output_get_mode(output);
-		if (!mode)
+		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(&display))
 			continue;
 
+		mode = igt_output_get_mode(output);
 		pipe_crc = igt_pipe_crc_new(drm_fd, pipe, IGT_PIPE_CRC_SOURCE_AUTO);
 		/*Only one pipe/output is enough*/
 		break;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 42/51] tests/i915/kms_fence_pin_leak: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (40 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 41/51] tests/i915/kms_draw_crc: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 43/51] tests/i915/kms_flip_scaled_crc: " Bhanuprakash Modem
                   ` (13 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Ananya Sharma <ananya.sharma@intel.com>
---
 tests/i915/kms_fence_pin_leak.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/tests/i915/kms_fence_pin_leak.c b/tests/i915/kms_fence_pin_leak.c
index 1972a699b..63657a742 100644
--- a/tests/i915/kms_fence_pin_leak.c
+++ b/tests/i915/kms_fence_pin_leak.c
@@ -124,6 +124,9 @@ static void run_single_test(data_t *data, enum pipe pipe, igt_output_t *output)
 	struct igt_fb fb[2];
 	int i;
 
+	igt_info("Using (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
 	igt_output_set_pipe(output, pipe);
 
 	mode = igt_output_get_mode(output);
@@ -196,6 +199,12 @@ static void run_test(data_t *data)
 	enum pipe p;
 
 	for_each_pipe_with_valid_output(display, p, output) {
+		igt_display_reset(display);
+
+		igt_output_set_pipe(output, p);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
+
 		run_single_test(data, p, output);
 
 		return; /* one time ought to be enough */
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 43/51] tests/i915/kms_flip_scaled_crc: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (41 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 42/51] tests/i915/kms_fence_pin_leak: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 44/51] tests/i915/kms_flip_tiling: " Bhanuprakash Modem
                   ` (12 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name
V3: - Fix dangling pointer

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/i915/kms_flip_scaled_crc.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/tests/i915/kms_flip_scaled_crc.c b/tests/i915/kms_flip_scaled_crc.c
index 10465ca75..7f7a59b93 100644
--- a/tests/i915/kms_flip_scaled_crc.c
+++ b/tests/i915/kms_flip_scaled_crc.c
@@ -648,8 +648,13 @@ igt_main
 			for_each_pipe(&data.display, pipe) {
 				bool found = false;
 				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					igt_display_reset(&data.display);
+
 					modetoset = find_mode(&data, output);
-					if (modetoset) {
+					igt_output_set_pipe(output, pipe);
+					igt_output_override_mode(output, modetoset);
+
+					if (modetoset && i915_pipe_output_combo_valid(&data.display)) {
 						found = true;
 						igt_dynamic_f("pipe-%s-valid-mode", kmstest_pipe_name(pipe))
 							run_tests(&data, index, pipe, output, modetoset);
@@ -658,6 +663,13 @@ igt_main
 				}
 				if (!found) {
 					for_each_valid_output_on_pipe(&data.display, pipe, output) {
+						igt_display_reset(&data.display);
+
+						igt_output_set_pipe(output, pipe);
+						if (!i915_pipe_output_combo_valid(&data.display))
+							continue;
+
+						modetoset = NULL;
 						igt_dynamic_f("pipe-%s-default-mode", kmstest_pipe_name(pipe))
 							run_tests(&data, index, pipe, output, modetoset);
 					}
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 44/51] tests/i915/kms_flip_tiling: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (42 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 43/51] tests/i915/kms_flip_scaled_crc: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 45/51] tests/i915/kms_frontbuffer_tracking: " Bhanuprakash Modem
                   ` (11 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name
V3: - Remove unwanted prints

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_flip_tiling.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tests/i915/kms_flip_tiling.c b/tests/i915/kms_flip_tiling.c
index 1183feb63..4cc063f63 100644
--- a/tests/i915/kms_flip_tiling.c
+++ b/tests/i915/kms_flip_tiling.c
@@ -195,8 +195,12 @@ igt_main
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
 			igt_plane_t *plane;
 
+			igt_display_reset(&data.display);
 			pipe_crc_free(&data);
+
 			igt_output_set_pipe(output, pipe);
+			if (!i915_pipe_output_combo_valid(&data.display))
+				continue;
 
 			plane = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 45/51] tests/i915/kms_frontbuffer_tracking: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (43 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 44/51] tests/i915/kms_flip_tiling: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 46/51] tests/i915/kms_mmap_write_crc: " Bhanuprakash Modem
                   ` (10 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

As many 2x tests are currently running on Pipe-A & B only, those
tests will always SKIP if there is any 8K supported panel in the
config. Instead of Skipping the test, add some intelligence to
the subtest to identify the valid pipe/output combo to execute
the subtest.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Nidhi Gupta <nidhi1.gupta@intel.com>
---
 tests/i915/kms_frontbuffer_tracking.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/tests/i915/kms_frontbuffer_tracking.c b/tests/i915/kms_frontbuffer_tracking.c
index 5b47999e8..650e14a77 100644
--- a/tests/i915/kms_frontbuffer_tracking.c
+++ b/tests/i915/kms_frontbuffer_tracking.c
@@ -403,15 +403,23 @@ static bool find_connector(bool edp_only, bool pipe_a,
 		if (pipe_a && pipe != PIPE_A)
 			continue;
 
-		if (output == forbidden_output || pipe == forbidden_pipe)
+		if (output == forbidden_output || pipe == forbidden_pipe) {
+			igt_output_set_pipe(output, pipe);
+			igt_output_override_mode(output, connector_get_mode(output));
+
 			continue;
+		}
 
 		if (c->connector_type == DRM_MODE_CONNECTOR_eDP && opt.no_edp)
 			continue;
 
-		*ret_output = output;
-		*ret_pipe = pipe;
-		return true;
+		igt_output_set_pipe(output, pipe);
+		igt_output_override_mode(output, connector_get_mode(output));
+		if (i915_pipe_output_combo_valid(&drm.display)) {
+			*ret_output = output;
+			*ret_pipe = pipe;
+			return true;
+		}
 	}
 
 	return false;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 46/51] tests/i915/kms_mmap_write_crc: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (44 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 45/51] tests/i915/kms_frontbuffer_tracking: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 47/51] tests/i915/kms_psr2_sf: " Bhanuprakash Modem
                   ` (9 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/i915/kms_mmap_write_crc.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/i915/kms_mmap_write_crc.c b/tests/i915/kms_mmap_write_crc.c
index 96ddac116..4f7a86bf4 100644
--- a/tests/i915/kms_mmap_write_crc.c
+++ b/tests/i915/kms_mmap_write_crc.c
@@ -277,6 +277,12 @@ igt_main_args("n", NULL, NULL, opt_handler, NULL)
 
 	igt_subtest_with_dynamic("main") {
 		for_each_pipe_with_valid_output(&data.display, pipe, output) {
+			igt_display_reset(&data.display);
+
+			igt_output_set_pipe(output, pipe);
+			if (!i915_pipe_output_combo_valid(&data.display))
+				continue;
+
 			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe),
 				      igt_output_name(output)) {
 				data.output = output;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 47/51] tests/i915/kms_psr2_sf: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (45 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 46/51] tests/i915/kms_mmap_write_crc: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 48/51] tests/i915/kms_psr2_su: " Bhanuprakash Modem
                   ` (8 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_psr2_sf.c | 55 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/tests/i915/kms_psr2_sf.c b/tests/i915/kms_psr2_sf.c
index 2d761d311..51a36a469 100644
--- a/tests/i915/kms_psr2_sf.c
+++ b/tests/i915/kms_psr2_sf.c
@@ -870,6 +870,22 @@ static int check_psr2_support(data_t *data)
 	return status;
 }
 
+static bool
+pipe_output_combo_valid(igt_display_t *display,
+			enum pipe pipe, igt_output_t *output)
+{
+	bool ret = true;
+
+	igt_display_reset(display);
+
+	igt_output_set_pipe(output, pipe);
+	if (!i915_pipe_output_combo_valid(display))
+		ret = false;
+	igt_output_set_pipe(output, PIPE_NONE);
+
+	return ret;
+}
+
 igt_main
 {
 	data_t data = {};
@@ -930,6 +946,9 @@ igt_main
 	igt_describe("Test that selective fetch works on primary plane");
 	igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -956,6 +975,9 @@ igt_main
 	igt_describe("Test that selective fetch works on primary plane with big fb");
 	igt_subtest_with_dynamic_f("primary-%s-sf-dmg-area-big-fb", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -982,6 +1004,9 @@ igt_main
 	igt_describe("Test that selective fetch works on overlay plane");
 	igt_subtest_with_dynamic_f("overlay-%s-sf-dmg-area", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1008,6 +1033,9 @@ igt_main
 	igt_describe("Test that selective fetch works on cursor plane");
 	igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1030,6 +1058,9 @@ igt_main
 	igt_describe("Test that selective fetch works on moving cursor plane (no update)");
 	igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1052,6 +1083,9 @@ igt_main
 	igt_describe("Test that selective fetch works on moving cursor plane exceeding partially visible area (no update)");
 	igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1074,6 +1108,9 @@ igt_main
 	igt_describe("Test that selective fetch works on moving cursor plane exceeding fully visible area (no update)");
 	igt_subtest_with_dynamic_f("cursor-%s-sf", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1098,6 +1135,9 @@ igt_main
 	igt_describe("Test that selective fetch works on moving overlay plane");
 	igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1123,6 +1163,9 @@ igt_main
 	igt_describe("Test that selective fetch works on moving overlay plane (no update)");
 	igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1145,6 +1188,9 @@ igt_main
 	igt_describe("Test that selective fetch works on moving overlay plane partially exceeding visible area (no update)");
 	igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1167,6 +1213,9 @@ igt_main
 	igt_describe("Test that selective fetch works on moving overlay plane fully exceeding visible area (no update)");
 	igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1191,6 +1240,9 @@ igt_main
 		     "with blended overlay plane");
 	igt_subtest_with_dynamic_f("%s-sf-dmg-area", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
@@ -1221,6 +1273,9 @@ igt_main
 	igt_describe("Test that selective fetch works on overlay plane");
 	igt_subtest_with_dynamic_f("overlay-%s-sf", op_str(data.op)) {
 		for (i = 0; i < n_pipes; i++) {
+			if (!pipe_output_combo_valid(&data.display, pipes[i], outputs[i]))
+				continue;
+
 			for (j = FEATURE_NONE; j < FEATURE_COUNT; j++) {
 				if (j != FEATURE_NONE && !(coexist_features[i] & j))
 					continue;
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 48/51] tests/i915/kms_psr2_su: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (46 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 47/51] tests/i915/kms_psr2_sf: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 49/51] tests/i915/kms_psr: " Bhanuprakash Modem
                   ` (7 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_psr2_su.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/tests/i915/kms_psr2_su.c b/tests/i915/kms_psr2_su.c
index 84dc30c3b..3e0a78f24 100644
--- a/tests/i915/kms_psr2_su.c
+++ b/tests/i915/kms_psr2_su.c
@@ -104,7 +104,11 @@ static void setup_output(data_t *data)
 		if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
+		igt_display_reset(display);
 		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
+
 		data->output = output;
 		data->mode = igt_output_get_mode(output);
 
@@ -116,6 +120,9 @@ static void display_init(data_t *data)
 {
 	igt_display_require(&data->display, data->drm_fd);
 	setup_output(data);
+
+	igt_require_f(data->output, "No available output found\n");
+	igt_require_f(data->mode, "No available mode found on %s\n", data->output->name);
 }
 
 static void display_fini(data_t *data)
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 49/51] tests/i915/kms_psr: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (47 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 48/51] tests/i915/kms_psr2_su: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 50/51] tests/i915/kms_psr_stress_test: " Bhanuprakash Modem
                   ` (6 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_psr.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tests/i915/kms_psr.c b/tests/i915/kms_psr.c
index 59f38e20e..c92902343 100644
--- a/tests/i915/kms_psr.c
+++ b/tests/i915/kms_psr.c
@@ -102,7 +102,11 @@ static void setup_output(data_t *data)
 		if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
+		igt_display_reset(display);
 		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
+
 		data->crtc_id = output->config.crtc->crtc_id;
 		data->output = output;
 		data->mode = igt_output_get_mode(output);
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 50/51] tests/i915/kms_psr_stress_test: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (48 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 49/51] tests/i915/kms_psr: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 51/51] tests/i915/kms_pwrite_crc: " Bhanuprakash Modem
                   ` (5 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
---
 tests/i915/kms_psr_stress_test.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/tests/i915/kms_psr_stress_test.c b/tests/i915/kms_psr_stress_test.c
index daac41d44..26e222a27 100644
--- a/tests/i915/kms_psr_stress_test.c
+++ b/tests/i915/kms_psr_stress_test.c
@@ -72,7 +72,13 @@ static void setup_output(data_t *data)
 		if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
 			continue;
 
+		igt_display_reset(display);
 		igt_output_set_pipe(output, pipe);
+		if (!i915_pipe_output_combo_valid(display)) {
+			igt_output_set_pipe(output, PIPE_NONE);
+			continue;
+		}
+
 		data->output = output;
 		data->mode = igt_output_get_mode(output);
 
@@ -374,4 +380,4 @@ igt_main
 		close(data.debugfs_fd);
 		close(data.drm_fd);
 	}
-}
\ No newline at end of file
+}
-- 
2.39.1

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

* [igt-dev] [i-g-t v8 51/51] tests/i915/kms_pwrite_crc: Add support for Bigjoiner
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (49 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 50/51] tests/i915/kms_psr_stress_test: " Bhanuprakash Modem
@ 2023-02-23 15:10 ` Bhanuprakash Modem
  2023-02-23 16:33 ` [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for Bigjoiner (rev21) Patchwork
                   ` (4 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-02-23 15:10 UTC (permalink / raw)
  To: igt-dev

This patch will add a check to Skip the subtest if a selected pipe/output
combo won't support Bigjoiner or 8K mode.

Example:
* Pipe-D wont support a mode > 5K
* To use 8K mode on a pipe then consecutive pipe must be available & free.

V2: - Use updated helper name
V3: - Fix the usage of pipe & output

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/i915/kms_pwrite_crc.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/tests/i915/kms_pwrite_crc.c b/tests/i915/kms_pwrite_crc.c
index c84a184d8..3278d876d 100644
--- a/tests/i915/kms_pwrite_crc.c
+++ b/tests/i915/kms_pwrite_crc.c
@@ -110,6 +110,7 @@ static void prepare_crtc(data_t *data)
 	igt_output_t *output = data->output;
 	drmModeModeInfo *mode;
 
+	igt_display_reset(display);
 	/* select the pipe we want to use */
 	igt_output_set_pipe(output, data->pipe);
 
@@ -156,12 +157,13 @@ static void cleanup_crtc(data_t *data)
 static void run_test(data_t *data)
 {
 	igt_display_t *display = &data->display;
-	igt_output_t *output;
-	enum pipe pipe;
 
-	for_each_pipe_with_valid_output(display, pipe, output) {
-		data->output = output;
-		data->pipe = pipe;
+	for_each_pipe_with_valid_output(display, data->pipe, data->output) {
+		igt_display_reset(display);
+
+		igt_output_set_pipe(data->output, data->pipe);
+		if (!i915_pipe_output_combo_valid(display))
+			continue;
 
 		prepare_crtc(data);
 		test(data);
-- 
2.39.1

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

* [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for Bigjoiner (rev21)
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (50 preceding siblings ...)
  2023-02-23 15:10 ` [igt-dev] [i-g-t v8 51/51] tests/i915/kms_pwrite_crc: " Bhanuprakash Modem
@ 2023-02-23 16:33 ` Patchwork
  2023-02-23 20:22 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
                   ` (3 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Patchwork @ 2023-02-23 16:33 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

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

== Series Details ==

Series: Add IGT support for Bigjoiner (rev21)
URL   : https://patchwork.freedesktop.org/series/108183/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12773 -> IGTPW_8522
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (37 -> 39)
------------------------------

  Additional (3): fi-kbl-soraka bat-adlp-6 fi-pnv-d510 
  Missing    (1): fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@debugfs_test@basic-hwmon:
    - bat-adlp-6:         NOTRUN -> [SKIP][1] ([i915#7456])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adlp-6/igt@debugfs_test@basic-hwmon.html

  * igt@dmabuf@all-tests@dma_fence:
    - fi-pnv-d510:        NOTRUN -> [DMESG-FAIL][2] ([i915#8143])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-pnv-d510/igt@dmabuf@all-tests@dma_fence.html

  * igt@dmabuf@all-tests@sanitycheck:
    - fi-pnv-d510:        NOTRUN -> [ABORT][3] ([i915#8143])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-pnv-d510/igt@dmabuf@all-tests@sanitycheck.html

  * igt@gem_huc_copy@huc-copy:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#2190])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_swapping@basic:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#4613]) +3 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html

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

  * igt@gem_tiled_pread_basic:
    - bat-adlp-6:         NOTRUN -> [SKIP][7] ([i915#3282])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adlp-6/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_rps@basic-api:
    - bat-adlp-6:         NOTRUN -> [SKIP][8] ([i915#6621])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adlp-6/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-kbl-soraka:      NOTRUN -> [DMESG-FAIL][9] ([i915#5334] / [i915#7872])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@gt_pm:
    - fi-kbl-soraka:      NOTRUN -> [DMESG-FAIL][10] ([i915#1886])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@hangcheck:
    - fi-kbl-soraka:      NOTRUN -> [INCOMPLETE][11] ([i915#7913])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-kbl-soraka/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@migrate:
    - bat-atsm-1:         [PASS][12] -> [DMESG-FAIL][13] ([i915#7699])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/bat-atsm-1/igt@i915_selftest@live@migrate.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-atsm-1/igt@i915_selftest@live@migrate.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         NOTRUN -> [DMESG-FAIL][14] ([i915#6997])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-rpls-2/igt@i915_selftest@live@slpc.html
    - bat-adln-1:         NOTRUN -> [DMESG-FAIL][15] ([i915#6997])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adln-1/igt@i915_selftest@live@slpc.html

  * igt@kms_chamelium_frames@hdmi-crc-fast:
    - fi-kbl-soraka:      NOTRUN -> [SKIP][16] ([fdo#109271]) +16 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-kbl-soraka/igt@kms_chamelium_frames@hdmi-crc-fast.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-rpls-2:         NOTRUN -> [SKIP][17] ([i915#7828])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-rpls-2/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
    - bat-adln-1:         NOTRUN -> [SKIP][18] ([i915#7828])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adln-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_chamelium_hpd@dp-hpd-fast:
    - bat-adlp-6:         NOTRUN -> [SKIP][19] ([i915#7828]) +8 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adlp-6/igt@kms_chamelium_hpd@dp-hpd-fast.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - bat-adlp-6:         NOTRUN -> [SKIP][20] ([i915#4103]) +1 similar issue
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adlp-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-adlp-6:         NOTRUN -> [SKIP][21] ([fdo#109285])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adlp-6/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
    - bat-dg2-11:         NOTRUN -> [SKIP][22] ([i915#5354]) +2 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html

  * igt@kms_pipe_crc_basic@suspend-read-crc:
    - bat-rpls-2:         NOTRUN -> [SKIP][23] ([i915#1845])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-rpls-2/igt@kms_pipe_crc_basic@suspend-read-crc.html

  * igt@kms_psr@primary_page_flip:
    - fi-pnv-d510:        NOTRUN -> [SKIP][24] ([fdo#109271]) +37 similar issues
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-pnv-d510/igt@kms_psr@primary_page_flip.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - bat-adlp-6:         NOTRUN -> [SKIP][25] ([i915#3555] / [i915#4579])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adlp-6/igt@kms_setmode@basic-clone-single-crtc.html

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

  * igt@prime_vgem@basic-userptr:
    - bat-adlp-6:         NOTRUN -> [SKIP][27] ([fdo#109295] / [i915#3301] / [i915#3708])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adlp-6/igt@prime_vgem@basic-userptr.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@gt_lrc:
    - bat-adln-1:         [INCOMPLETE][28] ([i915#7609]) -> [PASS][29]
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/bat-adln-1/igt@i915_selftest@live@gt_lrc.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-adln-1/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-2:         [ABORT][30] ([i915#4983]) -> [PASS][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/bat-rpls-2/igt@i915_selftest@live@reset.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/bat-rpls-2/igt@i915_selftest@live@reset.html

  * igt@kms_busy@basic@flip:
    - fi-bsw-n3050:       [SKIP][32] ([fdo#109271]) -> [PASS][33] +1 similar issue
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/fi-bsw-n3050/igt@kms_busy@basic@flip.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/fi-bsw-n3050/igt@kms_busy@basic@flip.html

  
  [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
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [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#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
  [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
  [i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
  [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#8143]: https://gitlab.freedesktop.org/drm/intel/issues/8143


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7170 -> IGTPW_8522

  CI-20190529: 20190529
  CI_DRM_12773: f6ae81bcb627d2c528675f0207a052868ca2857e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8522: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/index.html
  IGT_7170: e6d15f2d2f299ce70206a40609bebf661f7fdc65 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✗ Fi.CI.IGT: failure for Add IGT support for Bigjoiner (rev21)
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (51 preceding siblings ...)
  2023-02-23 16:33 ` [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for Bigjoiner (rev21) Patchwork
@ 2023-02-23 20:22 ` Patchwork
  2023-03-17  4:12 ` [igt-dev] ✗ Fi.CI.BUILD: failure for Add IGT support for Bigjoiner (rev23) Patchwork
                   ` (2 subsequent siblings)
  55 siblings, 0 replies; 62+ messages in thread
From: Patchwork @ 2023-02-23 20:22 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

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

== Series Details ==

Series: Add IGT support for Bigjoiner (rev21)
URL   : https://patchwork.freedesktop.org/series/108183/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_12773_full -> IGTPW_8522_full
====================================================

Summary
-------

  **FAILURE**

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

Participating hosts (11 -> 10)
------------------------------

  Missing    (1): shard-rkl0 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_plane@plane-position-hole-dpms:
    - shard-tglu-9:       NOTRUN -> [SKIP][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_plane@plane-position-hole-dpms.html

  
#### Suppressed ####

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

  * igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_ccs:
    - {shard-rkl}:        NOTRUN -> [SKIP][2] +8 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_ccs@pipe-c-bad-aux-stride-y_tiled_ccs.html

  * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
    - {shard-rkl}:        [SKIP][3] ([i915#4070] / [i915#6768]) -> [SKIP][4] +2 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-6/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_mc_ccs:
    - {shard-rkl}:        [SKIP][5] ([i915#4070] / [i915#533] / [i915#6768]) -> [SKIP][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-6/igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_mc_ccs.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_rc_ccs:
    - {shard-rkl}:        [SKIP][7] ([i915#1845] / [i915#4098]) -> [SKIP][8] +8 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-4/igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_rc_ccs.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_ccs@pipe-d-bad-aux-stride-y_tiled_gen12_rc_ccs.html

  * igt@kms_ccs@pipe-d-random-ccs-data-4_tiled_dg2_rc_ccs:
    - {shard-rkl}:        [SKIP][9] ([i915#4098]) -> [SKIP][10] +5 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-2/igt@kms_ccs@pipe-d-random-ccs-data-4_tiled_dg2_rc_ccs.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_ccs@pipe-d-random-ccs-data-4_tiled_dg2_rc_ccs.html

  * igt@kms_display_modes@extended-mode-basic:
    - {shard-rkl}:        [SKIP][11] ([fdo#109274]) -> [SKIP][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-4/igt@kms_display_modes@extended-mode-basic.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_plane@plane-position-covered:
    - {shard-tglu}:       NOTRUN -> [SKIP][13]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-6/igt@kms_plane@plane-position-covered.html

  
New tests
---------

  New tests have been introduced between CI_DRM_12773_full and IGTPW_8522_full:

### New IGT tests (13) ###

  * igt@kms_display_modes@extended-mode-basic@pipe-a-hdmi-a-1-pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-a-hdmi-a-1-pipe-c-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-a-hdmi-a-2-pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-a-hdmi-a-2-pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-b-hdmi-a-1-pipe-a-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-b-hdmi-a-1-pipe-c-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-b-hdmi-a-2-pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-b-hdmi-a-2-pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-c-hdmi-a-1-pipe-a-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-c-hdmi-a-1-pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-c-hdmi-a-2-pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-c-hdmi-a-2-pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_hdr@invalid-metadata-sizes@pipe-a-edp-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@debugfs_test@basic-hwmon:
    - shard-tglu-10:      NOTRUN -> [SKIP][14] ([i915#7456])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@debugfs_test@basic-hwmon.html

  * igt@fbdev@info:
    - shard-tglu-9:       NOTRUN -> [SKIP][15] ([i915#2582])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@fbdev@info.html

  * igt@feature_discovery@display-4x:
    - shard-tglu-10:      NOTRUN -> [SKIP][16] ([i915#1839])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@feature_discovery@display-4x.html

  * igt@feature_discovery@psr2:
    - shard-tglu-9:       NOTRUN -> [SKIP][17] ([i915#658])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@feature_discovery@psr2.html

  * igt@gem_basic@multigpu-create-close:
    - shard-tglu-9:       NOTRUN -> [SKIP][18] ([i915#7697])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@gem_basic@multigpu-create-close.html

  * igt@gem_ccs@block-copy-inplace:
    - shard-tglu-10:      NOTRUN -> [SKIP][19] ([i915#3555] / [i915#5325])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gem_ccs@block-copy-inplace.html

  * igt@gem_exec_balancer@parallel-ordering:
    - shard-tglu-10:      NOTRUN -> [FAIL][20] ([i915#6117])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gem_exec_balancer@parallel-ordering.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-tglu-10:      NOTRUN -> [FAIL][21] ([i915#2842])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-none@bcs0:
    - shard-tglu-9:       NOTRUN -> [FAIL][22] ([i915#2842]) +4 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@gem_exec_fair@basic-none@bcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [PASS][23] -> [FAIL][24] ([i915#2842]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-glk7/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk9/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_gttfill@multigpu-basic:
    - shard-tglu-10:      NOTRUN -> [SKIP][25] ([i915#7697]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gem_exec_gttfill@multigpu-basic.html

  * igt@gem_huc_copy@huc-copy:
    - shard-glk:          NOTRUN -> [SKIP][26] ([fdo#109271] / [i915#2190])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk1/igt@gem_huc_copy@huc-copy.html

  * igt@gem_lmem_evict@dontneed-evict-race:
    - shard-tglu-10:      NOTRUN -> [SKIP][27] ([i915#7582])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gem_lmem_evict@dontneed-evict-race.html

  * igt@gem_lmem_swapping@random-engines:
    - shard-tglu-9:       NOTRUN -> [SKIP][28] ([i915#4613])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@gem_lmem_swapping@random-engines.html

  * igt@gem_lmem_swapping@verify-random-ccs:
    - shard-tglu-10:      NOTRUN -> [SKIP][29] ([i915#4613]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gem_lmem_swapping@verify-random-ccs.html

  * igt@gem_pwrite@basic-exhaustion:
    - shard-tglu-9:       NOTRUN -> [WARN][30] ([i915#2658])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@gem_pwrite@basic-exhaustion.html
    - shard-glk:          NOTRUN -> [WARN][31] ([i915#2658])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk2/igt@gem_pwrite@basic-exhaustion.html

  * igt@gem_pxp@create-regular-context-2:
    - shard-tglu-10:      NOTRUN -> [SKIP][32] ([i915#4270]) +2 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gem_pxp@create-regular-context-2.html

  * igt@gem_pxp@reject-modify-context-protection-off-2:
    - shard-tglu-9:       NOTRUN -> [SKIP][33] ([i915#4270])
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@gem_pxp@reject-modify-context-protection-off-2.html

  * igt@gem_softpin@evict-snoop:
    - shard-tglu-9:       NOTRUN -> [SKIP][34] ([fdo#109312])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@gem_softpin@evict-snoop.html

  * igt@gem_softpin@evict-snoop-interruptible:
    - shard-tglu-10:      NOTRUN -> [SKIP][35] ([fdo#109312])
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gem_softpin@evict-snoop-interruptible.html

  * igt@gem_userptr_blits@vma-merge:
    - shard-tglu-9:       NOTRUN -> [FAIL][36] ([i915#3318])
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@gem_userptr_blits@vma-merge.html

  * igt@gen7_exec_parse@basic-allocation:
    - shard-tglu-10:      NOTRUN -> [SKIP][37] ([fdo#109289]) +3 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gen7_exec_parse@basic-allocation.html

  * igt@gen9_exec_parse@allowed-single:
    - shard-glk:          [PASS][38] -> [ABORT][39] ([i915#5566])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-glk5/igt@gen9_exec_parse@allowed-single.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk2/igt@gen9_exec_parse@allowed-single.html

  * igt@gen9_exec_parse@basic-rejected:
    - shard-tglu-9:       NOTRUN -> [SKIP][40] ([i915#2527] / [i915#2856]) +1 similar issue
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@gen9_exec_parse@basic-rejected.html

  * igt@gen9_exec_parse@basic-rejected-ctx-param:
    - shard-tglu-10:      NOTRUN -> [SKIP][41] ([i915#2527] / [i915#2856])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@gen9_exec_parse@basic-rejected-ctx-param.html

  * igt@i915_hwmon@hwmon-write:
    - shard-tglu-10:      NOTRUN -> [SKIP][42] ([i915#7707])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@i915_hwmon@hwmon-write.html

  * igt@i915_module_load@resize-bar:
    - shard-tglu-10:      NOTRUN -> [SKIP][43] ([i915#6412])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@i915_module_load@resize-bar.html

  * igt@i915_pm_backlight@fade-with-dpms:
    - shard-tglu-9:       NOTRUN -> [SKIP][44] ([i915#7561])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@i915_pm_backlight@fade-with-dpms.html

  * igt@i915_pm_freq_mult@media-freq@gt0:
    - shard-tglu-10:      NOTRUN -> [SKIP][45] ([i915#6590])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@i915_pm_freq_mult@media-freq@gt0.html

  * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a:
    - shard-tglu-10:      NOTRUN -> [FAIL][46] ([i915#3825])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html

  * igt@i915_pm_rpm@dpms-non-lpsp:
    - shard-tglu-9:       NOTRUN -> [SKIP][47] ([fdo#111644] / [i915#1397])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@i915_pm_rpm@dpms-non-lpsp.html

  * igt@i915_pm_rpm@system-suspend-modeset:
    - shard-tglu-9:       NOTRUN -> [SKIP][48] ([i915#3547])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@i915_pm_rpm@system-suspend-modeset.html

  * igt@i915_query@query-topology-known-pci-ids:
    - shard-tglu-10:      NOTRUN -> [SKIP][49] ([fdo#109303])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@i915_query@query-topology-known-pci-ids.html

  * igt@i915_suspend@basic-s3-without-i915:
    - shard-tglu-10:      NOTRUN -> [INCOMPLETE][50] ([i915#7443])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_atomic@plane-primary-overlay-mutable-zpos:
    - shard-tglu-10:      NOTRUN -> [SKIP][51] ([i915#404])
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html

  * igt@kms_big_fb@4-tiled-16bpp-rotate-270:
    - shard-tglu-10:      NOTRUN -> [SKIP][52] ([i915#5286]) +4 similar issues
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_big_fb@4-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@x-tiled-16bpp-rotate-270:
    - shard-tglu-10:      NOTRUN -> [SKIP][53] ([fdo#111614]) +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_big_fb@x-tiled-16bpp-rotate-270.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0:
    - shard-tglu-10:      NOTRUN -> [SKIP][54] ([fdo#111615]) +2 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-0.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][55] ([fdo#109271] / [i915#3886]) +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk3/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-yf_tiled_ccs:
    - shard-tglu-9:       NOTRUN -> [SKIP][56] ([fdo#111615] / [i915#1845] / [i915#7651]) +2 similar issues
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_ccs@pipe-a-bad-aux-stride-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs:
    - shard-tglu-10:      NOTRUN -> [SKIP][57] ([i915#3689] / [i915#6095]) +3 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_ccs@pipe-a-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_ccs:
    - shard-tglu-10:      NOTRUN -> [SKIP][58] ([i915#3689]) +10 similar issues
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_ccs@pipe-b-missing-ccs-buffer-y_tiled_ccs.html

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
    - shard-tglu-10:      NOTRUN -> [SKIP][59] ([i915#3689] / [i915#3886])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_ccs@pipe-c-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-bad-pixel-format-yf_tiled_ccs:
    - shard-tglu-10:      NOTRUN -> [SKIP][60] ([fdo#111615] / [i915#3689]) +5 similar issues
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_ccs@pipe-d-bad-pixel-format-yf_tiled_ccs.html

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc:
    - shard-tglu-10:      NOTRUN -> [SKIP][61] ([i915#6095]) +5 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs_cc.html

  * igt@kms_chamelium_color@ctm-0-50:
    - shard-tglu-9:       NOTRUN -> [SKIP][62] ([fdo#111827]) +1 similar issue
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_chamelium_color@ctm-0-50.html

  * igt@kms_chamelium_color@ctm-limited-range:
    - shard-tglu-10:      NOTRUN -> [SKIP][63] ([fdo#111827])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_chamelium_color@ctm-limited-range.html

  * igt@kms_chamelium_hpd@dp-hpd-after-suspend:
    - shard-tglu-9:       NOTRUN -> [SKIP][64] ([i915#7828]) +3 similar issues
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html

  * igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode:
    - shard-tglu-10:      NOTRUN -> [SKIP][65] ([i915#7828]) +4 similar issues
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode.html

  * igt@kms_color@ctm-max:
    - shard-tglu-9:       NOTRUN -> [SKIP][66] ([i915#3546])
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_color@ctm-max.html

  * igt@kms_cursor_crc@cursor-onscreen-512x170:
    - shard-tglu-10:      NOTRUN -> [SKIP][67] ([fdo#109279] / [i915#3359])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_cursor_crc@cursor-onscreen-512x170.html

  * igt@kms_cursor_crc@cursor-sliding-256x85:
    - shard-tglu-9:       NOTRUN -> [SKIP][68] ([i915#1845]) +15 similar issues
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_cursor_crc@cursor-sliding-256x85.html

  * igt@kms_cursor_crc@cursor-suspend:
    - shard-tglu-9:       NOTRUN -> [SKIP][69] ([i915#1845] / [i915#7651]) +43 similar issues
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_cursor_crc@cursor-suspend.html

  * igt@kms_cursor_legacy@cursorb-vs-flipa-legacy:
    - shard-tglu-10:      NOTRUN -> [SKIP][70] ([fdo#109274]) +4 similar issues
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_cursor_legacy@cursorb-vs-flipa-legacy.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-apl:          [PASS][71] -> [FAIL][72] ([i915#2346])
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size:
    - shard-tglu-10:      NOTRUN -> [SKIP][73] ([i915#4103])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html

  * igt@kms_dp_tiled_display@basic-test-pattern:
    - shard-tglu-9:       NOTRUN -> [SKIP][74] ([i915#426])
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_dp_tiled_display@basic-test-pattern.html

  * igt@kms_dsc@dsc-with-bpc:
    - shard-tglu-10:      NOTRUN -> [SKIP][75] ([i915#3840])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_dsc@dsc-with-bpc.html

  * igt@kms_flip@2x-flip-vs-modeset:
    - shard-tglu-10:      NOTRUN -> [SKIP][76] ([fdo#109274] / [i915#3637]) +6 similar issues
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_flip@2x-flip-vs-modeset.html

  * igt@kms_flip@2x-flip-vs-panning-vs-hang:
    - shard-tglu-9:       NOTRUN -> [SKIP][77] ([fdo#109274] / [i915#3637]) +1 similar issue
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_flip@2x-flip-vs-panning-vs-hang.html

  * igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][78] -> [FAIL][79] ([i915#2122])
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-glk1/igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a1-hdmi-a2.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk6/igt@kms_flip@2x-plain-flip-ts-check@ab-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@flip-vs-panning-interruptible:
    - shard-tglu-9:       NOTRUN -> [SKIP][80] ([i915#3637]) +2 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_flip@flip-vs-panning-interruptible.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode:
    - shard-tglu-10:      NOTRUN -> [SKIP][81] ([i915#2587] / [i915#2672]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-upscaling@pipe-a-valid-mode.html

  * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling:
    - shard-tglu-9:       NOTRUN -> [SKIP][82] ([i915#3555]) +8 similar issues
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling.html

  * igt@kms_force_connector_basic@force-load-detect:
    - shard-tglu-9:       NOTRUN -> [SKIP][83] ([fdo#109285])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render:
    - shard-tglu-10:      NOTRUN -> [SKIP][84] ([fdo#109280]) +26 similar issues
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc:
    - shard-tglu-10:      NOTRUN -> [SKIP][85] ([fdo#110189]) +19 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-mmap-wc.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite:
    - shard-apl:          NOTRUN -> [SKIP][86] ([fdo#109271]) +11 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-apl7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - shard-tglu-10:      NOTRUN -> [SKIP][87] ([i915#5439])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-pwrite:
    - shard-tglu-9:       NOTRUN -> [SKIP][88] ([i915#1849]) +33 similar issues
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_frontbuffer_tracking@psr-2p-primscrn-cur-indfb-draw-pwrite.html

  * igt@kms_hdr@static-toggle-dpms:
    - shard-tglu-10:      NOTRUN -> [SKIP][89] ([i915#3555]) +7 similar issues
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_hdr@static-toggle-dpms.html

  * igt@kms_panel_fitting@legacy:
    - shard-tglu-10:      NOTRUN -> [SKIP][90] ([i915#6301])
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_panel_fitting@legacy.html

  * igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1:
    - shard-glk:          NOTRUN -> [FAIL][91] ([i915#7862]) +1 similar issue
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk2/igt@kms_plane_alpha_blend@alpha-basic@pipe-c-hdmi-a-1.html

  * igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant:
    - shard-tglu-9:       NOTRUN -> [SKIP][92] ([i915#7128] / [i915#7294])
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_plane_alpha_blend@coverage-vs-premult-vs-constant.html

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-hdmi-a-1:
    - shard-tglu-10:      NOTRUN -> [SKIP][93] ([i915#5176]) +3 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-25@pipe-c-hdmi-a-1.html

  * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5:
    - shard-tglu-9:       NOTRUN -> [SKIP][94] ([i915#6953] / [i915#8152])
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25:
    - shard-tglu-9:       NOTRUN -> [SKIP][95] ([i915#3555] / [i915#6953])
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_plane_scaling@planes-upscale-factor-0-25.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf:
    - shard-tglu-10:      NOTRUN -> [SKIP][96] ([i915#658]) +1 similar issue
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-sf.html

  * igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
    - shard-apl:          NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#658])
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-apl6/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html

  * igt@kms_psr2_su@page_flip-nv12:
    - shard-glk:          NOTRUN -> [SKIP][98] ([fdo#109271] / [i915#658])
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk4/igt@kms_psr2_su@page_flip-nv12.html

  * igt@kms_psr@cursor_plane_move:
    - shard-tglu-9:       NOTRUN -> [SKIP][99] ([fdo#110189]) +5 similar issues
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@kms_psr@cursor_plane_move.html

  * igt@kms_rotation_crc@primary-4-tiled-reflect-x-180:
    - shard-tglu-10:      NOTRUN -> [SKIP][100] ([i915#5289])
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@kms_rotation_crc@primary-4-tiled-reflect-x-180.html

  * igt@kms_scaling_modes@scaling-mode-full-aspect:
    - shard-glk:          NOTRUN -> [SKIP][101] ([fdo#109271]) +49 similar issues
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk1/igt@kms_scaling_modes@scaling-mode-full-aspect.html

  * igt@kms_setmode@basic@pipe-a-vga-1:
    - shard-snb:          NOTRUN -> [FAIL][102] ([i915#5465]) +1 similar issue
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-snb4/igt@kms_setmode@basic@pipe-a-vga-1.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-glk:          NOTRUN -> [SKIP][103] ([fdo#109271] / [i915#2437])
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk7/igt@kms_writeback@writeback-pixel-formats.html

  * igt@perf@gen8-unprivileged-single-ctx-counters:
    - shard-tglu-9:       NOTRUN -> [SKIP][104] ([fdo#109289])
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@perf@gen8-unprivileged-single-ctx-counters.html

  * igt@perf@stress-open-close:
    - shard-glk:          [PASS][105] -> [ABORT][106] ([i915#5213])
   [105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-glk6/igt@perf@stress-open-close.html
   [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk7/igt@perf@stress-open-close.html

  * igt@prime_vgem@basic-userptr:
    - shard-tglu-10:      NOTRUN -> [SKIP][107] ([fdo#109295] / [i915#3301])
   [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@prime_vgem@basic-userptr.html

  * igt@sysfs_timeslice_duration@invalid@bcs0:
    - shard-snb:          NOTRUN -> [SKIP][108] ([fdo#109271]) +37 similar issues
   [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-snb1/igt@sysfs_timeslice_duration@invalid@bcs0.html

  * igt@v3d/v3d_mmap@mmap-bo:
    - shard-tglu-9:       NOTRUN -> [SKIP][109] ([fdo#109315] / [i915#2575])
   [109]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@v3d/v3d_mmap@mmap-bo.html

  * igt@v3d/v3d_perfmon@create-perfmon-invalid-counters:
    - shard-tglu-10:      NOTRUN -> [SKIP][110] ([fdo#109315] / [i915#2575]) +3 similar issues
   [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@v3d/v3d_perfmon@create-perfmon-invalid-counters.html

  * igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem:
    - shard-tglu-9:       NOTRUN -> [SKIP][111] ([i915#2575]) +3 similar issues
   [111]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-9/igt@vc4/vc4_purgeable_bo@access-purgeable-bo-mem.html

  * igt@vc4/vc4_purgeable_bo@mark-purgeable-twice:
    - shard-tglu-10:      NOTRUN -> [SKIP][112] ([i915#2575]) +4 similar issues
   [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-10/igt@vc4/vc4_purgeable_bo@mark-purgeable-twice.html

  
#### Possible fixes ####

  * igt@drm_read@short-buffer-wakeup:
    - {shard-rkl}:        [SKIP][113] ([i915#4098]) -> [PASS][114]
   [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-3/igt@drm_read@short-buffer-wakeup.html
   [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@drm_read@short-buffer-wakeup.html

  * igt@fbdev@nullptr:
    - {shard-tglu}:       [SKIP][115] ([i915#2582]) -> [PASS][116]
   [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-tglu-6/igt@fbdev@nullptr.html
   [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-5/igt@fbdev@nullptr.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - {shard-rkl}:        [FAIL][117] ([i915#2842]) -> [PASS][118] +3 similar issues
   [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-2/igt@gem_exec_fair@basic-none@vcs0.html
   [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-5/igt@gem_exec_fair@basic-none@vcs0.html

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

  * igt@gem_exec_reloc@basic-cpu-read-noreloc:
    - {shard-rkl}:        [SKIP][121] ([i915#3281]) -> [PASS][122] +1 similar issue
   [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-3/igt@gem_exec_reloc@basic-cpu-read-noreloc.html
   [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-5/igt@gem_exec_reloc@basic-cpu-read-noreloc.html

  * igt@gem_pwrite_snooped:
    - {shard-rkl}:        [SKIP][123] ([i915#3282]) -> [PASS][124] +1 similar issue
   [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-4/igt@gem_pwrite_snooped.html
   [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-5/igt@gem_pwrite_snooped.html

  * igt@gen9_exec_parse@cmd-crossing-page:
    - {shard-rkl}:        [SKIP][125] ([i915#2527]) -> [PASS][126] +2 similar issues
   [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-6/igt@gen9_exec_parse@cmd-crossing-page.html
   [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-5/igt@gen9_exec_parse@cmd-crossing-page.html

  * igt@i915_pm_dc@dc5-psr:
    - {shard-rkl}:        [SKIP][127] ([i915#658]) -> [PASS][128]
   [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-2/igt@i915_pm_dc@dc5-psr.html
   [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@i915_pm_dc@dc5-psr.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [SKIP][129] ([fdo#109271]) -> [PASS][130]
   [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-apl3/igt@i915_pm_dc@dc9-dpms.html
   [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-apl1/igt@i915_pm_dc@dc9-dpms.html

  * igt@i915_pm_rc6_residency@rc6-idle@vcs0:
    - {shard-dg1}:        [FAIL][131] ([i915#3591]) -> [PASS][132]
   [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html
   [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-dg1-18/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html

  * igt@i915_pm_rpm@modeset-lpsp-stress-no-wait:
    - {shard-rkl}:        [SKIP][133] ([i915#1397]) -> [PASS][134]
   [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-3/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html
   [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@i915_pm_rpm@modeset-lpsp-stress-no-wait.html

  * igt@i915_pm_rpm@pm-tiling:
    - {shard-rkl}:        [SKIP][135] ([fdo#109308]) -> [PASS][136] +1 similar issue
   [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-4/igt@i915_pm_rpm@pm-tiling.html
   [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@i915_pm_rpm@pm-tiling.html

  * igt@kms_big_fb@y-tiled-16bpp-rotate-90:
    - {shard-tglu}:       [SKIP][137] ([i915#1845] / [i915#7651]) -> [PASS][138] +4 similar issues
   [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-tglu-6/igt@kms_big_fb@y-tiled-16bpp-rotate-90.html
   [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-5/igt@kms_big_fb@y-tiled-16bpp-rotate-90.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          [FAIL][139] ([i915#2346]) -> [PASS][140] +1 similar issue
   [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-glk2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_fbcon_fbt@psr:
    - {shard-rkl}:        [SKIP][141] ([fdo#110189] / [i915#3955]) -> [PASS][142]
   [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-2/igt@kms_fbcon_fbt@psr.html
   [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_fbcon_fbt@psr.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1:
    - shard-apl:          [FAIL][143] ([i915#79]) -> [PASS][144]
   [143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-apl7/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html
   [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-apl2/igt@kms_flip@flip-vs-expired-vblank-interruptible@b-dp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@b-dp1:
    - shard-apl:          [ABORT][145] -> [PASS][146] +1 similar issue
   [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-apl6/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html
   [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-apl4/igt@kms_flip@flip-vs-suspend-interruptible@b-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt:
    - {shard-rkl}:        [SKIP][147] ([i915#1849] / [i915#4098]) -> [PASS][148] +15 similar issues
   [147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt.html
   [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render:
    - {shard-tglu}:       [SKIP][149] ([i915#1849]) -> [PASS][150] +1 similar issue
   [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html
   [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-tglu-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_psr@cursor_blt:
    - {shard-rkl}:        [SKIP][151] ([i915#1072]) -> [PASS][152] +1 similar issue
   [151]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-5/igt@kms_psr@cursor_blt.html
   [152]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_psr@cursor_blt.html

  * igt@kms_universal_plane@disable-primary-vs-flip-pipe-a:
    - {shard-rkl}:        [SKIP][153] ([i915#1845] / [i915#4070] / [i915#4098]) -> [PASS][154]
   [153]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-2/igt@kms_universal_plane@disable-primary-vs-flip-pipe-a.html
   [154]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_universal_plane@disable-primary-vs-flip-pipe-a.html

  * igt@kms_vblank@pipe-a-ts-continuation-idle:
    - {shard-rkl}:        [SKIP][155] ([i915#1845] / [i915#4098]) -> [PASS][156] +23 similar issues
   [155]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-2/igt@kms_vblank@pipe-a-ts-continuation-idle.html
   [156]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-6/igt@kms_vblank@pipe-a-ts-continuation-idle.html

  * igt@perf@gen12-mi-rpc:
    - {shard-rkl}:        [SKIP][157] ([fdo#109289]) -> [PASS][158]
   [157]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-5/igt@perf@gen12-mi-rpc.html
   [158]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-2/igt@perf@gen12-mi-rpc.html

  * igt@prime_vgem@basic-write:
    - {shard-rkl}:        [SKIP][159] ([fdo#109295] / [i915#3291] / [i915#3708]) -> [PASS][160] +1 similar issue
   [159]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-rkl-3/igt@prime_vgem@basic-write.html
   [160]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-rkl-5/igt@prime_vgem@basic-write.html

  * igt@sysfs_heartbeat_interval@precise@rcs0:
    - {shard-dg1}:        [FAIL][161] ([i915#1755]) -> [PASS][162] +3 similar issues
   [161]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12773/shard-dg1-16/igt@sysfs_heartbeat_interval@precise@rcs0.html
   [162]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/shard-dg1-14/igt@sysfs_heartbeat_interval@precise@rcs0.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#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109303]: https://bugs.freedesktop.org/show_bug.cgi?id=109303
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [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#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#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [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#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [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#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#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#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
  [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#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
  [i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [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#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
  [i915#3825]: https://gitlab.freedesktop.org/drm/intel/issues/3825
  [i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3936]: https://gitlab.freedesktop.org/drm/intel/issues/3936
  [i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#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#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [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#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [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#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5431]: https://gitlab.freedesktop.org/drm/intel/issues/5431
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5465]: https://gitlab.freedesktop.org/drm/intel/issues/5465
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6117]: https://gitlab.freedesktop.org/drm/intel/issues/6117
  [i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
  [i915#6247]: https://gitlab.freedesktop.org/drm/intel/issues/6247
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [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#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#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128
  [i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178
  [i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294
  [i915#7443]: https://gitlab.freedesktop.org/drm/intel/issues/7443
  [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7582]: https://gitlab.freedesktop.org/drm/intel/issues/7582
  [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7862]: https://gitlab.freedesktop.org/drm/intel/issues/7862
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7957]: https://gitlab.freedesktop.org/drm/intel/issues/7957
  [i915#8152]: https://gitlab.freedesktop.org/drm/intel/issues/8152
  [i915#8155]: https://gitlab.freedesktop.org/drm/intel/issues/8155


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7170 -> IGTPW_8522
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_12773: f6ae81bcb627d2c528675f0207a052868ca2857e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8522: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8522/index.html
  IGT_7170: e6d15f2d2f299ce70206a40609bebf661f7fdc65 @ 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_8522/index.html

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

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

* [igt-dev] [i-g-t V9 14/51] tests/kms_cursor_legacy: Add support for Bigjoiner
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 14/51] tests/kms_cursor_legacy: " Bhanuprakash Modem
@ 2023-03-16  9:44   ` Bhanuprakash Modem
  0 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-03-16  9:44 UTC (permalink / raw)
  To: igt-dev

As many 2x tests are currently running on Pipe-A & B only, those
tests will always SKIP if there is any 8K supported panel in the
config. Instead of Skipping the test, add some intelligence to
the subtest to identify the valid pipe/output combo to execute
the subtest.

V2: - Use updated helper name

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
 tests/kms_cursor_legacy.c | 199 +++++++++++++++++++++++---------------
 1 file changed, 121 insertions(+), 78 deletions(-)

diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
index a8862bdfb..5f4300908 100644
--- a/tests/kms_cursor_legacy.c
+++ b/tests/kms_cursor_legacy.c
@@ -177,31 +177,21 @@ static void stress(igt_display_t *display,
 	munmap(results, PAGE_SIZE);
 }
 
-static igt_output_t *set_fb_on_crtc(igt_display_t *display, enum pipe pipe, struct igt_fb *fb_info)
+static void set_fb_on_crtc(igt_display_t *display, enum pipe pipe,
+			   igt_output_t *output, struct igt_fb *fb_info)
 {
-	igt_output_t *output;
-
-	for_each_valid_output_on_pipe(display, pipe, output) {
-		drmModeModeInfoPtr mode;
-		igt_plane_t *primary;
-
-		if (output->pending_pipe != PIPE_NONE)
-			continue;
-
-		igt_output_set_pipe(output, pipe);
-		mode = igt_output_get_mode(output);
+	drmModeModeInfoPtr mode;
+	igt_plane_t *primary;
 
-		igt_create_pattern_fb(display->drm_fd,
-			      mode->hdisplay, mode->vdisplay,
-			      DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, fb_info);
+	igt_output_set_pipe(output, pipe);
+	mode = igt_output_get_mode(output);
 
-		primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
-		igt_plane_set_fb(primary, fb_info);
+	igt_create_pattern_fb(display->drm_fd,
+		      mode->hdisplay, mode->vdisplay,
+		      DRM_FORMAT_XRGB8888, DRM_FORMAT_MOD_LINEAR, fb_info);
 
-		return output;
-	}
-
-	return NULL;
+	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
+	igt_plane_set_fb(primary, fb_info);
 }
 
 static	igt_plane_t
@@ -236,36 +226,44 @@ static void populate_cursor_args(igt_display_t *display, enum pipe pipe,
 	arg[1] = *arg;
 }
 
-static enum pipe find_connected_pipe(igt_display_t *display, bool second)
+static enum pipe
+find_connected_pipe(igt_display_t *display, bool second, igt_output_t **output)
 {
-	enum pipe pipe, first = PIPE_NONE;
-	igt_output_t *output;
-	igt_output_t *first_output = NULL;
+	enum pipe pipe;
+	bool first_output = false;
 	bool found = false;
 
 	if (!second) {
 		igt_pipe_crc_free(pipe_crc);
 		pipe_crc = NULL;
-
-		/* Clear display, events will be eaten by commit.. */
-		igt_display_reset(display);
 	}
 
-	for_each_pipe_with_valid_output(display, pipe, output) {
-		if (first == pipe || output == first_output)
-			continue;
+	/* Clear display, events will be eaten by commit.. */
+	igt_display_reset(display);
 
-		if (second) {
-			first = pipe;
-			first_output = output;
-			second = false;
-			continue;
-		}
+	for_each_pipe(display, pipe) {
+		for_each_valid_output_on_pipe(display, pipe, *output) {
+			if((*output)->pending_pipe != PIPE_NONE)
+				continue;
 
-		found = true;
-		break;
+			igt_output_set_pipe(*output, pipe);
+			if (i915_pipe_output_combo_valid(display)) {
+				found = true;
+
+				if (second) {
+					first_output = true;
+					second = false;
+					found = false;
+				}
+				break;
+			}
+			igt_output_set_pipe(*output, PIPE_NONE);
+		}
+		if (found)
+			break;
 	}
 
+	igt_display_reset(display);
 	if (first_output)
 		igt_require_f(found, "No second valid output found\n");
 	else
@@ -429,10 +427,9 @@ static void flip(igt_display_t *display,
 	results = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	igt_assert(results != MAP_FAILED);
 
-	igt_display_reset(display);
-
-	flip_pipe = find_connected_pipe(display, !!flip_pipe);
-	cursor_pipe = find_connected_pipe(display, !!cursor_pipe);
+	flip_pipe = find_connected_pipe(display, !!flip_pipe, &output);
+	cursor_pipe = find_connected_pipe(display, !!cursor_pipe, &output2);
+	igt_skip_on(!output || !output2);
 
 	igt_info("Using pipe %s for page flip, pipe %s for cursor\n",
 		  kmstest_pipe_name(flip_pipe), kmstest_pipe_name(cursor_pipe));
@@ -446,15 +443,15 @@ static void flip(igt_display_t *display,
 					DRM_PLANE_TYPE_OVERLAY));
 	}
 
-	igt_require((output = set_fb_on_crtc(display, flip_pipe, &fb_info)));
+	set_fb_on_crtc(display, flip_pipe, output, &fb_info);
 	if (flip_pipe != cursor_pipe) {
-		igt_require((output2 = set_fb_on_crtc(display, cursor_pipe, &fb_info2)));
+		set_fb_on_crtc(display, cursor_pipe, output2, &fb_info2);
 
 		if (try_commit(display)) {
 			override_output_modes(display, output, output2);
 
-			igt_require((output = set_fb_on_crtc(display, flip_pipe, &fb_info)));
-			igt_require((output2 = set_fb_on_crtc(display, cursor_pipe, &fb_info2)));
+			set_fb_on_crtc(display, flip_pipe, output, &fb_info);
+			set_fb_on_crtc(display, cursor_pipe, output2, &fb_info2);
 		}
 	}
 
@@ -548,7 +545,7 @@ static void basic_flip_cursor(igt_display_t *display,
 	struct drm_event_vblank vbl;
 	struct igt_fb fb_info, cursor_fb, cursor_fb2, argb_fb;
 	unsigned vblank_start;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	uint64_t ahnd = 0;
 	igt_spin_t *spin;
 	int i, miss1 = 0, miss2 = 0, delta;
@@ -564,7 +561,13 @@ static void basic_flip_cursor(igt_display_t *display,
 	if (mode >= flip_test_atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
@@ -720,7 +723,7 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
 	struct igt_fb fb_info, cursor_fb, cursor_fb2, argb_fb;
 	unsigned vblank_start;
 	int target, cpu;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	volatile unsigned long *shared;
 	cpu_set_t mask, oldmask;
 	igt_output_t *output;
@@ -729,7 +732,13 @@ static void flip_vs_cursor(igt_display_t *display, enum flip_test mode, int nloo
 	if (mode >= flip_test_atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
@@ -849,12 +858,18 @@ static void nonblocking_modeset_vs_cursor(igt_display_t *display, int loops)
 {
 	struct igt_fb fb_info, cursor_fb;
 	igt_output_t *output;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	struct drm_mode_cursor arg[2];
 	igt_plane_t *primary, *cursor = NULL;
 
 	igt_require(display->is_atomic);
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
@@ -942,8 +957,7 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 {
 	struct drm_mode_cursor arg1[2], arg2[2];
 	struct igt_fb fb_info, fb2_info, cursor_fb;
-	enum pipe pipe = find_connected_pipe(display, false);
-	enum pipe pipe2 = find_connected_pipe(display, true);
+	enum pipe pipe, pipe2;
 	igt_output_t *output, *output2;
 	bool enabled = false;
 	volatile unsigned long *shared;
@@ -959,22 +973,28 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 		igt_require(drmGetCap(display->drm_fd, DRM_CAP_CRTC_IN_VBLANK_EVENT, &val) == 0);
 	}
 
+	if (atomic)
+		igt_require(display->is_atomic);
+
 	shared = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	igt_assert(shared != MAP_FAILED);
 
-	igt_fail_on(modeset && !atomic);
+	pipe = find_connected_pipe(display, false, &output);
+	pipe2 = find_connected_pipe(display, true, &output2);
+	igt_skip_on(!output || !output2);
 
-	if (atomic)
-		igt_require(display->is_atomic);
+	igt_info("Using pipe %s & %s and pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output),
+		 kmstest_pipe_name(pipe2), igt_output_name(output2));
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
-	igt_require((output2 = set_fb_on_crtc(display, pipe2, &fb2_info)));
+	set_fb_on_crtc(display, pipe, output, &fb_info);
+	set_fb_on_crtc(display, pipe2, output2, &fb2_info);
 
 	if (try_commit(display)) {
 		override_output_modes(display, output, output2);
 
-		igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
-		igt_require((output2 = set_fb_on_crtc(display, pipe2, &fb2_info)));
+		set_fb_on_crtc(display, pipe, output, &fb_info);
+		set_fb_on_crtc(display, pipe2, output2, &fb2_info);
 	}
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
@@ -1128,7 +1148,7 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
 	unsigned vblank_start, vblank_last;
 	volatile unsigned long *shared;
 	long target;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	igt_output_t *output;
 	uint32_t vrefresh;
 	int fail_count;
@@ -1140,7 +1160,13 @@ static void cursor_vs_flip(igt_display_t *display, enum flip_test mode, int nloo
 	shared = mmap(NULL, PAGE_SIZE, PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
 	igt_assert(shared != MAP_FAILED);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 	vrefresh = igt_output_get_mode(output)->vrefresh;
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
@@ -1233,10 +1259,7 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool
 	struct igt_fb fb_info[2], cursor_fb;
 	volatile unsigned long *shared;
 	int target[2];
-	enum pipe pipe[2] = {
-		find_connected_pipe(display, false),
-		find_connected_pipe(display, true)
-	};
+	enum pipe pipe[2];
 	igt_output_t *outputs[2];
 	igt_plane_t *cursors[2];
 
@@ -1246,14 +1269,22 @@ static void two_screens_cursor_vs_flip(igt_display_t *display, int nloops, bool
 	if (atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((outputs[0] = set_fb_on_crtc(display, pipe[0], &fb_info[0])));
-	igt_require((outputs[1] = set_fb_on_crtc(display, pipe[1], &fb_info[1])));
+	pipe[0] = find_connected_pipe(display, false, &outputs[0]);
+	pipe[1] = find_connected_pipe(display, true, &outputs[1]);
+	igt_skip_on(!outputs[0] || !outputs[1]);
+
+	igt_info("Using pipe %s & %s and pipe %s & %s\n",
+		 kmstest_pipe_name(pipe[0]), igt_output_name(outputs[0]),
+		 kmstest_pipe_name(pipe[1]), igt_output_name(outputs[1]));
+
+	set_fb_on_crtc(display, pipe[0], outputs[0], &fb_info[0]);
+	set_fb_on_crtc(display, pipe[1], outputs[1], &fb_info[1]);
 
 	if (try_commit(display)) {
 		override_output_modes(display, outputs[0], outputs[1]);
 
-		igt_require((outputs[0] = set_fb_on_crtc(display, pipe[0], &fb_info[0])));
-		igt_require((outputs[1] = set_fb_on_crtc(display, pipe[1], &fb_info[1])));
+		set_fb_on_crtc(display, pipe[0], outputs[0], &fb_info[0]);
+		set_fb_on_crtc(display, pipe[1], outputs[1], &fb_info[1]);
 	}
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
@@ -1355,7 +1386,7 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic)
 	struct drm_event_vblank vbl;
 	struct igt_fb fb_info, cursor_fb;
 	unsigned vblank_start;
-	enum pipe pipe = find_connected_pipe(display, false);
+	enum pipe pipe;
 	igt_crc_t crcs[3];
 	igt_output_t *output;
 	igt_plane_t *cursor;
@@ -1363,7 +1394,13 @@ static void flip_vs_cursor_crc(igt_display_t *display, bool atomic)
 	if (atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info)));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info);
 
 	igt_create_color_fb(display->drm_fd, 64, 64, DRM_FORMAT_ARGB8888,
 			    DRM_FORMAT_MOD_LINEAR, 1., 1., 1., &cursor_fb);
@@ -1421,9 +1458,8 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
 	struct drm_event_vblank vbl;
 	struct igt_fb fb_info[2], cursor_fb;
 	unsigned vblank_start;
-	enum pipe pipe = find_connected_pipe(display, false);
-	igt_pipe_t *pipe_connected = &display->pipes[pipe];
-	igt_plane_t *plane_primary = igt_pipe_get_plane_type(pipe_connected, DRM_PLANE_TYPE_PRIMARY);
+	enum pipe pipe;
+	igt_plane_t *plane_primary;
 	igt_crc_t crcs[2], test_crc;
 	uint64_t ahnd;
 	igt_output_t *output;
@@ -1435,7 +1471,14 @@ static void flip_vs_cursor_busy_crc(igt_display_t *display, bool atomic)
 	if (atomic)
 		igt_require(display->is_atomic);
 
-	igt_require((output = set_fb_on_crtc(display, pipe, &fb_info[0])));
+	pipe = find_connected_pipe(display, false, &output);
+	igt_require(output);
+
+	igt_info("Using pipe %s & %s\n",
+		 kmstest_pipe_name(pipe), igt_output_name(output));
+
+	set_fb_on_crtc(display, pipe, output, &fb_info[0]);
+	plane_primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
 	igt_create_color_pattern_fb(display->drm_fd, fb_info[0].width, fb_info[0].height,
 				    DRM_FORMAT_XRGB8888, I915_FORMAT_MOD_X_TILED, .1, .1, .1, &fb_info[1]);
 
-- 
2.39.1

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

* [igt-dev] ✗ Fi.CI.BUILD: failure for Add IGT support for Bigjoiner (rev23)
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (52 preceding siblings ...)
  2023-02-23 20:22 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2023-03-17  4:12 ` Patchwork
  2023-03-17  6:03 ` [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for Bigjoiner (rev24) Patchwork
  2023-03-17  7:28 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  55 siblings, 0 replies; 62+ messages in thread
From: Patchwork @ 2023-03-17  4:12 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

== Series Details ==

Series: Add IGT support for Bigjoiner (rev23)
URL   : https://patchwork.freedesktop.org/series/108183/
State : failure

== Summary ==

Applying: lib/igt_kms: Add a helper for valid pipe/output constraint
Applying: lib/igt_kms: Bigjoiner check in max_bpc constraint
Applying: tests/kms_async_flips: Add support for Bigjoiner
Applying: tests/kms_atomic: Add support for Bigjoiner
Applying: tests/kms_atomic_interruptible: Add support for Bigjoiner
Applying: tests/kms_atomic_transition: Add support for Bigjoiner
Applying: tests/kms_color_helper: Helper to check Bigjoiner constraint
Applying: tests/kms_color: Add support for Bigjoiner
Applying: tests/chamelium/kms_color_chamelium: Add support for Bigjoiner
Applying: tests/kms_content_protection: Add support for Bigjoiner
Applying: tests/kms_concurrent: Add support for Bigjoiner
Applying: tests/kms_cursor_crc: Add support for Bigjoiner
Applying: tests/kms_cursor_edge_walk: Add support for Bigjoiner
Applying: tests/kms_cursor_legacy: Add support for Bigjoiner
Applying: tests/kms_display_modes: Add support for Bigjoiner
Applying: tests/kms_dp_tiled_display: Add support for Bigjoiner
Applying: tests/kms_flip_event_leak: Add support for Bigjoiner
Applying: tests/kms_invalid_mode: Add support for Bigjoiner
Applying: tests/kms_lease: Add support for Bigjoiner
Applying: tests/kms_pipe_crc_basic: Add support for Bigjoiner
Applying: tests/kms_plane: Add support for Bigjoiner
Applying: tests/kms_plane_alpha_blend: Add support for Bigjoiner
Applying: tests/kms_plane_cursor: Add support for Bigjoiner
Applying: tests/kms_plane_lowres: Add support for Bigjoiner
Applying: tests/kms_plane_multiple: Add support for Bigjoiner
Applying: tests/kms_plane_scaling: Add support for Bigjoiner
Using index info to reconstruct a base tree...
M	tests/kms_plane_scaling.c
Falling back to patching base and 3-way merge...
Auto-merging tests/kms_plane_scaling.c
CONFLICT (content): Merge conflict in tests/kms_plane_scaling.c
Patch failed at 0026 tests/kms_plane_scaling: Add support for Bigjoiner
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".


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

* [igt-dev] [i-g-t V9 26/51] tests/kms_plane_scaling: Add support for Bigjoiner
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 26/51] tests/kms_plane_scaling: " Bhanuprakash Modem
@ 2023-03-17  5:09   ` Bhanuprakash Modem
  0 siblings, 0 replies; 62+ messages in thread
From: Bhanuprakash Modem @ 2023-03-17  5:09 UTC (permalink / raw)
  To: igt-dev

As many 2x tests are currently running on Pipe-A & B only, those
tests will always SKIP if there is any 8K supported panel in the
config. Instead of Skipping the test, add some intelligence to
the subtest to identify the valid pipe/output combo to execute
the subtest.

V2: - Use updated helper name
V3: - Rebase

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Swati Sharma <swati2.sharma@intel.com>
---
 tests/kms_plane_scaling.c | 212 +++++++++++++++++++++++++-------------
 1 file changed, 142 insertions(+), 70 deletions(-)

diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 3a6904afb..e18c56989 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -627,30 +627,45 @@ static void test_scaler_with_pixel_format_pipe(data_t *d, int width, int height,
 	}
 }

-static void find_connected_pipe(igt_display_t *display, bool second, enum pipe *pipe, igt_output_t **output)
+static enum pipe
+find_connected_pipe(igt_display_t *display, bool second, igt_output_t **output)
 {
-	enum pipe first = PIPE_NONE;
-	igt_output_t *first_output = NULL;
+	enum pipe pipe;
+	bool first_output = false;
 	bool found = false;

-	for_each_pipe_with_valid_output(display, *pipe, *output) {
-		if (first == *pipe || *output == first_output)
-			continue;
+	igt_display_reset(display);

-		if (second) {
-			first = *pipe;
-			first_output = *output;
-			second = false;
-			continue;
-		}
+	for_each_pipe(display, pipe) {
+		for_each_valid_output_on_pipe(display, pipe, *output) {
+			if((*output)->pending_pipe != PIPE_NONE)
+				continue;
+
+			igt_output_set_pipe(*output, pipe);
+			if (i915_pipe_output_combo_valid(display)) {
+				found = true;

-		return;
+				if (second) {
+					first_output = true;
+					second = false;
+					found = false;
+				}
+				break;
+			}
+			igt_output_set_pipe(*output, PIPE_NONE);
+		}
+		if (found)
+			break;
 	}

+	igt_display_reset(display);
+
 	if (first_output)
 		igt_require_f(found, "No second valid output found\n");
 	else
 		igt_require_f(found, "No valid outputs found\n");
+
+	return pipe;
 }

 static void
@@ -837,13 +852,16 @@ static void test_scaler_with_multi_pipe_plane(data_t *d)
 	enum pipe pipe1, pipe2;
 	int ret1, ret2;

-	cleanup_crtc(d);
-
-	find_connected_pipe(display, false, &pipe1, &output1);
-	find_connected_pipe(display, true, &pipe2, &output2);
+	cleanup_fbs(d);

+	pipe1 = find_connected_pipe(display, false, &output1);
+	pipe2 = find_connected_pipe(display, true, &output2);
 	igt_skip_on(!output1 || !output2);

+	igt_info("Using (pipe %s + %s) and (pipe %s + %s) to run the subtest.\n",
+		 kmstest_pipe_name(pipe1), igt_output_name(output1),
+		 kmstest_pipe_name(pipe2), igt_output_name(output2));
+
 	igt_output_set_pipe(output1, pipe1);
 	igt_output_set_pipe(output2, pipe2);

@@ -1051,6 +1069,22 @@ static void i915_max_source_size_test(data_t *d, enum pipe pipe, igt_output_t *o
 	cleanup_fbs(d);
 }

+static bool
+pipe_output_combo_valid(igt_display_t *display,
+			enum pipe pipe, igt_output_t *output)
+{
+	bool ret = true;
+
+	igt_display_reset(display);
+
+	igt_output_set_pipe(output, pipe);
+	if (!i915_pipe_output_combo_valid(display))
+		ret = false;
+	igt_output_set_pipe(output, PIPE_NONE);
+
+	return ret;
+}
+
 static int opt_handler(int opt, int opt_index, void *_data)
 {
 	data_t *data = _data;
@@ -1092,17 +1126,22 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		for (int index = 0; index < ARRAY_SIZE(scaler_with_pixel_format_tests); index++) {
 			igt_describe(scaler_with_pixel_format_tests[index].describe);
 			igt_subtest_with_dynamic(scaler_with_pixel_format_tests[index].name) {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
-					drmModeModeInfo *mode;
+				for_each_pipe(&data.display, pipe) {
+					for_each_valid_output_on_pipe(&data.display, pipe, output) {
+						if (!pipe_output_combo_valid(&data.display, pipe, output))
+							continue;

-					mode = igt_output_get_mode(output);
+						igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+							drmModeModeInfo *mode = igt_output_get_mode(output);

-					test_scaler_with_pixel_format_pipe(&data,
-							get_width(mode, scaler_with_pixel_format_tests[index].sf),
-							get_height(mode, scaler_with_pixel_format_tests[index].sf),
-							scaler_with_pixel_format_tests[index].is_upscale,
-							pipe, output);
+							test_scaler_with_pixel_format_pipe(&data,
+								get_width(mode, scaler_with_pixel_format_tests[index].sf),
+								get_height(mode, scaler_with_pixel_format_tests[index].sf),
+								scaler_with_pixel_format_tests[index].is_upscale,
+								pipe, output);
+						}
+						break;
+					}
 				}
 			}
 		}
@@ -1110,17 +1149,22 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		for (int index = 0; index < ARRAY_SIZE(scaler_with_rotation_tests); index++) {
 			igt_describe(scaler_with_rotation_tests[index].describe);
 			igt_subtest_with_dynamic(scaler_with_rotation_tests[index].name) {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
-					drmModeModeInfo *mode;
+				for_each_pipe(&data.display, pipe) {
+					for_each_valid_output_on_pipe(&data.display, pipe, output) {
+						if (!pipe_output_combo_valid(&data.display, pipe, output))
+							continue;

-					mode = igt_output_get_mode(output);
+						igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+							drmModeModeInfo *mode = igt_output_get_mode(output);

-					test_scaler_with_rotation_pipe(&data,
-							get_width(mode, scaler_with_rotation_tests[index].sf),
-							get_height(mode, scaler_with_rotation_tests[index].sf),
-							scaler_with_rotation_tests[index].is_upscale,
-							pipe, output);
+							test_scaler_with_rotation_pipe(&data,
+								get_width(mode, scaler_with_rotation_tests[index].sf),
+								get_height(mode, scaler_with_rotation_tests[index].sf),
+								scaler_with_rotation_tests[index].is_upscale,
+								pipe, output);
+						}
+						break;
+					}
 				}
 			}
 		}
@@ -1128,77 +1172,101 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		for (int index = 0; index < ARRAY_SIZE(scaler_with_modifiers_tests); index++) {
 			igt_describe(scaler_with_modifiers_tests[index].describe);
 			igt_subtest_with_dynamic(scaler_with_modifiers_tests[index].name) {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
-					drmModeModeInfo *mode;
+				for_each_pipe(&data.display, pipe) {
+					for_each_valid_output_on_pipe(&data.display, pipe, output) {
+						if (!pipe_output_combo_valid(&data.display, pipe, output))
+							continue;

-					mode = igt_output_get_mode(output);
+						igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+							drmModeModeInfo *mode = igt_output_get_mode(output);

-					test_scaler_with_modifier_pipe(&data,
-							get_width(mode, scaler_with_rotation_tests[index].sf),
-							get_height(mode, scaler_with_rotation_tests[index].sf),
-							scaler_with_rotation_tests[index].is_upscale,
-							pipe, output);
+							test_scaler_with_modifier_pipe(&data,
+								get_width(mode, scaler_with_rotation_tests[index].sf),
+								get_height(mode, scaler_with_rotation_tests[index].sf),
+								scaler_with_rotation_tests[index].is_upscale,
+								pipe, output);
+						}
+						break;
+					}
 				}
 			}
 		}

 		igt_describe("Tests scaling with clipping and clamping, pixel formats.");
 		igt_subtest_with_dynamic("plane-scaler-with-clipping-clamping-pixel-formats") {
-			for_each_pipe_with_single_output(&data.display, pipe, output) {
-				drmModeModeInfo *mode;
+			for_each_pipe(&data.display, pipe) {
+				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					if (!pipe_output_combo_valid(&data.display, pipe, output))
+						continue;

-				mode = igt_output_get_mode(output);
+					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+						drmModeModeInfo *mode = igt_output_get_mode(output);

-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output))
-					test_scaler_with_pixel_format_pipe(&data, mode->hdisplay + 100,
+						test_scaler_with_pixel_format_pipe(&data, mode->hdisplay + 100,
 							mode->vdisplay + 100, false, pipe, output);
+					}
+					break;
+				}
 			}
 		}

 		igt_describe("Tests scaling with clipping and clamping, rotation.");
 		igt_subtest_with_dynamic("plane-scaler-with-clipping-clamping-rotation") {
-			for_each_pipe_with_single_output(&data.display, pipe, output) {
-				drmModeModeInfo *mode;
+			for_each_pipe(&data.display, pipe) {
+				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					if (!pipe_output_combo_valid(&data.display, pipe, output))
+						continue;

-				mode = igt_output_get_mode(output);
+					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+						drmModeModeInfo *mode = igt_output_get_mode(output);

-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output))
-					test_scaler_with_rotation_pipe(&data, mode->hdisplay + 100,
+						test_scaler_with_rotation_pipe(&data, mode->hdisplay + 100,
 							mode->vdisplay + 100, false, pipe, output);
+					}
+					break;
+				}
 			}
 		}

 		igt_describe("Tests scaling with clipping and clamping, modifiers.");
 		igt_subtest_with_dynamic("plane-scaler-with-clipping-clamping-modifiers") {
-			for_each_pipe_with_single_output(&data.display, pipe, output) {
-				drmModeModeInfo *mode;
-
-				mode = igt_output_get_mode(output);
+			for_each_pipe(&data.display, pipe) {
+				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					if (!pipe_output_combo_valid(&data.display, pipe, output))
+						continue;

-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output))
-					test_scaler_with_modifier_pipe(&data, mode->hdisplay + 100,
+					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+						drmModeModeInfo *mode = igt_output_get_mode(output);
+						test_scaler_with_modifier_pipe(&data, mode->hdisplay + 100,
 							mode->vdisplay + 100, false, pipe, output);
+					}
+					break;
+				}
 			}
 		}

 		for (int index = 0; index < ARRAY_SIZE(scaler_with_2_planes_tests); index++) {
 			igt_describe(scaler_with_2_planes_tests[index].describe);
 			igt_subtest_with_dynamic(scaler_with_2_planes_tests[index].name) {
-			for_each_pipe_with_single_output(&data.display, pipe, output)
-				igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
-					drmModeModeInfo *mode;
+			for_each_pipe(&data.display, pipe) {
+				for_each_valid_output_on_pipe(&data.display, pipe, output) {
+					if (!pipe_output_combo_valid(&data.display, pipe, output))
+						continue;

-					mode = igt_output_get_mode(output);
+					igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), igt_output_name(output)) {
+						drmModeModeInfo *mode = igt_output_get_mode(output);

-					test_planes_scaling_combo(&data,
+						test_planes_scaling_combo(&data,
 							get_width(mode, scaler_with_2_planes_tests[index].sf_plane1),
 							get_height(mode, scaler_with_2_planes_tests[index].sf_plane1),
 							get_width(mode, scaler_with_2_planes_tests[index].sf_plane2),
 							get_height(mode, scaler_with_2_planes_tests[index].sf_plane2),
 							pipe, output, scaler_with_2_planes_tests[index].test_type);
+					}
+					break;
 				}
 			}
+			}
 		}

 		for (int index = 0; index < ARRAY_SIZE(i915_paramtests); index++) {
@@ -1227,12 +1295,16 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 		}

 		igt_describe("Negative test for number of scalers per pipe.");
-			igt_subtest_with_dynamic("invalid-num-scalers") {
-				for_each_pipe_with_valid_output(&data.display, pipe, output)
-					igt_dynamic_f("pipe-%s-%s-invalid-num-scalers",
-						       kmstest_pipe_name(pipe), igt_output_name(output))
-						test_invalid_num_scalers(&data, pipe, output);
+		igt_subtest_with_dynamic("invalid-num-scalers") {
+			for_each_pipe_with_valid_output(&data.display, pipe, output) {
+				if (!pipe_output_combo_valid(&data.display, pipe, output))
+					continue;
+
+				igt_dynamic_f("pipe-%s-%s-invalid-num-scalers",
+					       kmstest_pipe_name(pipe), igt_output_name(output))
+					test_invalid_num_scalers(&data, pipe, output);
 			}
+		}
 	}

 	igt_subtest_group
--
2.40.0

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

* [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for Bigjoiner (rev24)
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (53 preceding siblings ...)
  2023-03-17  4:12 ` [igt-dev] ✗ Fi.CI.BUILD: failure for Add IGT support for Bigjoiner (rev23) Patchwork
@ 2023-03-17  6:03 ` Patchwork
  2023-03-17  7:28 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  55 siblings, 0 replies; 62+ messages in thread
From: Patchwork @ 2023-03-17  6:03 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

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

== Series Details ==

Series: Add IGT support for Bigjoiner (rev24)
URL   : https://patchwork.freedesktop.org/series/108183/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12872 -> IGTPW_8630
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (35 -> 36)
------------------------------

  Additional (2): bat-atsm-1 fi-pnv-d510 
  Missing    (1): fi-snb-2520m 

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

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

### IGT changes ###

#### Issues hit ####

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

  * igt@gem_mmap@basic:
    - bat-atsm-1:         NOTRUN -> [SKIP][2] ([i915#4083])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-atsm-1/igt@gem_mmap@basic.html

  * igt@gem_sync@basic-each:
    - bat-atsm-1:         NOTRUN -> [FAIL][3] ([i915#8062]) +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-atsm-1/igt@gem_sync@basic-each.html

  * igt@gem_tiled_fence_blits@basic:
    - bat-atsm-1:         NOTRUN -> [SKIP][4] ([i915#4077]) +2 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-atsm-1/igt@gem_tiled_fence_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - bat-atsm-1:         NOTRUN -> [SKIP][5] ([i915#4079]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-atsm-1/igt@gem_tiled_pread_basic.html

  * igt@i915_hangman@error-state-basic:
    - bat-atsm-1:         NOTRUN -> [ABORT][6] ([i915#8060])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-atsm-1/igt@i915_hangman@error-state-basic.html

  * igt@i915_selftest@live@execlists:
    - fi-bsw-nick:        [PASS][7] -> [ABORT][8] ([i915#7911] / [i915#7913])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/fi-bsw-nick/igt@i915_selftest@live@execlists.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/fi-bsw-nick/igt@i915_selftest@live@execlists.html

  * igt@i915_selftest@live@hangcheck:
    - bat-dg2-11:         [PASS][9] -> [ABORT][10] ([i915#7913] / [i915#7979])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/bat-dg2-11/igt@i915_selftest@live@hangcheck.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-dg2-11/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-1:         [PASS][11] -> [DMESG-FAIL][12] ([i915#6367] / [i915#7996])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/bat-rpls-1/igt@i915_selftest@live@slpc.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-rpls-1/igt@i915_selftest@live@slpc.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-dg1-5:          NOTRUN -> [SKIP][13] ([i915#7828])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-dg1-5/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
    - bat-adln-1:         NOTRUN -> [SKIP][14] ([i915#7828])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-adln-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_psr@primary_page_flip:
    - fi-pnv-d510:        NOTRUN -> [SKIP][15] ([fdo#109271]) +38 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/fi-pnv-d510/igt@kms_psr@primary_page_flip.html

  
#### Possible fixes ####

  * igt@dmabuf@all-tests@dma_fence:
    - bat-adln-1:         [FAIL][16] ([i915#8064]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/bat-adln-1/igt@dmabuf@all-tests@dma_fence.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-adln-1/igt@dmabuf@all-tests@dma_fence.html

  * igt@dmabuf@all-tests@sanitycheck:
    - bat-adln-1:         [ABORT][18] ([i915#8144]) -> [PASS][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/bat-adln-1/igt@dmabuf@all-tests@sanitycheck.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-adln-1/igt@dmabuf@all-tests@sanitycheck.html

  * igt@i915_selftest@live@hangcheck:
    - bat-dg1-5:          [ABORT][20] ([i915#4983]) -> [PASS][21]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-dg1-5/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@migrate:
    - bat-dg2-11:         [DMESG-WARN][22] ([i915#7699]) -> [PASS][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/bat-dg2-11/igt@i915_selftest@live@migrate.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/bat-dg2-11/igt@i915_selftest@live@migrate.html

  * igt@kms_busy@basic@flip:
    - fi-bsw-n3050:       [SKIP][24] ([fdo#109271]) -> [PASS][25] +1 similar issue
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/fi-bsw-n3050/igt@kms_busy@basic@flip.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/fi-bsw-n3050/igt@kms_busy@basic@flip.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7979]: https://gitlab.freedesktop.org/drm/intel/issues/7979
  [i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996
  [i915#8060]: https://gitlab.freedesktop.org/drm/intel/issues/8060
  [i915#8062]: https://gitlab.freedesktop.org/drm/intel/issues/8062
  [i915#8064]: https://gitlab.freedesktop.org/drm/intel/issues/8064
  [i915#8144]: https://gitlab.freedesktop.org/drm/intel/issues/8144


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7202 -> IGTPW_8630

  CI-20190529: 20190529
  CI_DRM_12872: f65e171596ef70c076fe02be596de29e83cfc8a3 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8630: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/index.html
  IGT_7202: b4ec7dac375eed2dda89c64d4de94c4c9205b601 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


Testlist changes
----------------

-igt@perf@gen12-group-concurrent-oa-buffer-read
-igt@perf@gen12-group-exclusive-stream-ctx-handle
-igt@perf@gen12-group-exclusive-stream-sample-oa
-igt@perf@gen12-invalid-class-instance

== Logs ==

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

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

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

* Re: [igt-dev] [i-g-t v8 10/51] tests/kms_content_protection: Add support for Bigjoiner
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 10/51] tests/kms_content_protection: " Bhanuprakash Modem
@ 2023-03-17  6:31   ` Karthik B S
  2023-03-17  6:33     ` Modem, Bhanuprakash
  0 siblings, 1 reply; 62+ messages in thread
From: Karthik B S @ 2023-03-17  6:31 UTC (permalink / raw)
  To: Bhanuprakash Modem, igt-dev


On 2/23/2023 8:39 PM, Bhanuprakash Modem wrote:
> This patch will add a check to Skip the subtest if a selected pipe/output
> combo won't support Bigjoiner or 8K mode.
>
> Example:
> * Pipe-D wont support a mode > 5K
> * To use 8K mode on a pipe then consecutive pipe must be available & free.

Please add the revision history details.

With this added,

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

>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
>   tests/kms_content_protection.c | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
> index aa28b7bfd..638e1301a 100644
> --- a/tests/kms_content_protection.c
> +++ b/tests/kms_content_protection.c
> @@ -174,7 +174,6 @@ static void modeset_with_fb(const enum pipe pipe, igt_output_t *output,
>   	igt_plane_t *primary;
>   
>   	mode = igt_output_get_mode(output);
> -	igt_output_set_pipe(output, pipe);
>   
>   	primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
>   	igt_plane_set_fb(primary, &data.red);
> @@ -502,6 +501,11 @@ test_content_protection(enum igt_commit_style s, int content_type)
>   				continue;
>   
>   			igt_display_reset(display);
> +
> +			igt_output_set_pipe(output, pipe);
> +			if (!i915_pipe_output_combo_valid(display))
> +				continue;
> +
>   			modeset_with_fb(pipe, output, s);
>   
>   			if (!output_hdcp_capable(output, content_type))

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

* Re: [igt-dev] [i-g-t v8 10/51] tests/kms_content_protection: Add support for Bigjoiner
  2023-03-17  6:31   ` Karthik B S
@ 2023-03-17  6:33     ` Modem, Bhanuprakash
  0 siblings, 0 replies; 62+ messages in thread
From: Modem, Bhanuprakash @ 2023-03-17  6:33 UTC (permalink / raw)
  To: Karthik B S, igt-dev

HI Karthik,

On Fri-17-03-2023 12:01 pm, Karthik B S wrote:
> 
> On 2/23/2023 8:39 PM, Bhanuprakash Modem wrote:
>> This patch will add a check to Skip the subtest if a selected pipe/output
>> combo won't support Bigjoiner or 8K mode.
>>
>> Example:
>> * Pipe-D wont support a mode > 5K
>> * To use 8K mode on a pipe then consecutive pipe must be available & 
>> free.
> 
> Please add the revision history details.

Thanks for the review, will add those details while pushing the patch.

- Bhanu

> 
> With this added,
> 
> Reviewed-by: Karthik B S <karthik.b.s@intel.com>
> 
>>
>> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
>> ---
>>   tests/kms_content_protection.c | 6 +++++-
>>   1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/kms_content_protection.c 
>> b/tests/kms_content_protection.c
>> index aa28b7bfd..638e1301a 100644
>> --- a/tests/kms_content_protection.c
>> +++ b/tests/kms_content_protection.c
>> @@ -174,7 +174,6 @@ static void modeset_with_fb(const enum pipe pipe, 
>> igt_output_t *output,
>>       igt_plane_t *primary;
>>       mode = igt_output_get_mode(output);
>> -    igt_output_set_pipe(output, pipe);
>>       primary = igt_output_get_plane_type(output, 
>> DRM_PLANE_TYPE_PRIMARY);
>>       igt_plane_set_fb(primary, &data.red);
>> @@ -502,6 +501,11 @@ test_content_protection(enum igt_commit_style s, 
>> int content_type)
>>                   continue;
>>               igt_display_reset(display);
>> +
>> +            igt_output_set_pipe(output, pipe);
>> +            if (!i915_pipe_output_combo_valid(display))
>> +                continue;
>> +
>>               modeset_with_fb(pipe, output, s);
>>               if (!output_hdcp_capable(output, content_type))

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

* [igt-dev] ✓ Fi.CI.IGT: success for Add IGT support for Bigjoiner (rev24)
  2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
                   ` (54 preceding siblings ...)
  2023-03-17  6:03 ` [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for Bigjoiner (rev24) Patchwork
@ 2023-03-17  7:28 ` Patchwork
  55 siblings, 0 replies; 62+ messages in thread
From: Patchwork @ 2023-03-17  7:28 UTC (permalink / raw)
  To: Modem, Bhanuprakash; +Cc: igt-dev

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

== Series Details ==

Series: Add IGT support for Bigjoiner (rev24)
URL   : https://patchwork.freedesktop.org/series/108183/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12872_full -> IGTPW_8630_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (8 -> 7)
------------------------------

  Missing    (1): shard-rkl0 

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

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

### IGT changes ###

#### Suppressed ####

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

  * igt@kms_ccs@pipe-c-crc-primary-rotation-180-4_tiled_dg2_mc_ccs:
    - {shard-rkl}:        [SKIP][1] ([i915#4098]) -> [SKIP][2] +5 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-2/igt@kms_ccs@pipe-c-crc-primary-rotation-180-4_tiled_dg2_mc_ccs.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@kms_ccs@pipe-c-crc-primary-rotation-180-4_tiled_dg2_mc_ccs.html

  * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs:
    - {shard-rkl}:        [SKIP][3] ([i915#4070] / [i915#533] / [i915#6768]) -> [SKIP][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-6/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs.html

  * igt@kms_ccs@pipe-d-missing-ccs-buffer-y_tiled_gen12_rc_ccs:
    - {shard-rkl}:        [SKIP][5] ([i915#1845] / [i915#4098]) -> [SKIP][6] +6 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-4/igt@kms_ccs@pipe-d-missing-ccs-buffer-y_tiled_gen12_rc_ccs.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@kms_ccs@pipe-d-missing-ccs-buffer-y_tiled_gen12_rc_ccs.html

  * igt@kms_display_modes@extended-mode-basic:
    - {shard-tglu}:       [SKIP][7] ([fdo#109274]) -> [SKIP][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-tglu-6/igt@kms_display_modes@extended-mode-basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-tglu-8/igt@kms_display_modes@extended-mode-basic.html

  * igt@kms_plane@plane-position-hole-dpms:
    - {shard-rkl}:        NOTRUN -> [SKIP][9] +7 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-4/igt@kms_plane@plane-position-hole-dpms.html

  * {igt@kms_plane_scaling@i915-max-src-size}:
    - {shard-tglu}:       NOTRUN -> [SKIP][10]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-tglu-9/igt@kms_plane_scaling@i915-max-src-size.html

  * {igt@xe_vm@userptr-invalid}:
    - {shard-dg1}:        NOTRUN -> [SKIP][11] +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-dg1-15/igt@xe_vm@userptr-invalid.html

  
New tests
---------

  New tests have been introduced between CI_DRM_12872_full and IGTPW_8630_full:

### New IGT tests (12) ###

  * igt@kms_display_modes@extended-mode-basic@pipe-a-hdmi-a-1-pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-a-hdmi-a-1-pipe-c-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-a-hdmi-a-2-pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-a-hdmi-a-2-pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-b-hdmi-a-1-pipe-a-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-b-hdmi-a-1-pipe-c-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-b-hdmi-a-2-pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-b-hdmi-a-2-pipe-c-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-c-hdmi-a-1-pipe-a-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-c-hdmi-a-1-pipe-b-hdmi-a-2:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-c-hdmi-a-2-pipe-a-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@kms_display_modes@extended-mode-basic@pipe-c-hdmi-a-2-pipe-b-hdmi-a-1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - shard-glk:          NOTRUN -> [FAIL][12] ([i915#2842])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk6/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-glk:          [PASS][13] -> [FAIL][14] ([i915#2842])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-glk8/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk4/igt@gem_exec_fair@basic-pace-share@rcs0.html

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

  * igt@gem_mmap_gtt@fault-concurrent-y:
    - shard-snb:          [PASS][16] -> [ABORT][17] ([i915#5161])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-snb2/igt@gem_mmap_gtt@fault-concurrent-y.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-snb4/igt@gem_mmap_gtt@fault-concurrent-y.html

  * igt@gem_userptr_blits@dmabuf-sync:
    - shard-glk:          NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#3323])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk5/igt@gem_userptr_blits@dmabuf-sync.html

  * igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip:
    - shard-glk:          NOTRUN -> [SKIP][19] ([fdo#109271]) +72 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk3/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-180-hflip-async-flip.html

  * igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#3886])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk7/igt@kms_ccs@pipe-b-crc-primary-basic-y_tiled_gen12_rc_ccs_cc.html

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

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - shard-apl:          NOTRUN -> [SKIP][22] ([fdo#109271]) +45 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-apl1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-apl:          [PASS][23] -> [FAIL][24] ([i915#2346])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-apl7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][25] -> [FAIL][26] ([i915#79])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html

  * igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1:
    - shard-glk:          [PASS][27] -> [FAIL][28] ([i915#2122])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-glk6/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk1/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-dp1:
    - shard-apl:          [PASS][29] -> [ABORT][30] ([i915#180])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-apl1/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-apl7/igt@kms_flip@flip-vs-suspend-interruptible@c-dp1.html

  * igt@kms_psr2_su@frontbuffer-xrgb8888:
    - shard-apl:          NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#658])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-apl1/igt@kms_psr2_su@frontbuffer-xrgb8888.html

  * igt@kms_writeback@writeback-pixel-formats:
    - shard-apl:          NOTRUN -> [SKIP][32] ([fdo#109271] / [i915#2437])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-apl3/igt@kms_writeback@writeback-pixel-formats.html

  
#### Possible fixes ####

  * igt@drm_read@short-buffer-block:
    - {shard-rkl}:        [SKIP][33] ([i915#4098]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-5/igt@drm_read@short-buffer-block.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@drm_read@short-buffer-block.html

  * igt@fbdev@eof:
    - {shard-tglu}:       [SKIP][35] ([i915#2582]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-tglu-10/igt@fbdev@eof.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-tglu-8/igt@fbdev@eof.html

  * igt@fbdev@info:
    - {shard-rkl}:        [SKIP][37] ([i915#2582]) -> [PASS][38] +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-4/igt@fbdev@info.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@fbdev@info.html

  * {igt@gem_barrier_race@remote-request@rcs0}:
    - shard-glk:          [ABORT][39] ([i915#8211]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-glk3/igt@gem_barrier_race@remote-request@rcs0.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk4/igt@gem_barrier_race@remote-request@rcs0.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - {shard-rkl}:        [FAIL][41] ([i915#6268]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-4/igt@gem_ctx_exec@basic-nohangcheck.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-1/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_eio@in-flight-contexts-1us:
    - {shard-rkl}:        [TIMEOUT][43] ([i915#3063]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-2/igt@gem_eio@in-flight-contexts-1us.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-3/igt@gem_eio@in-flight-contexts-1us.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
    - shard-apl:          [FAIL][45] ([i915#2842]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-apl4/igt@gem_exec_fair@basic-none-solo@rcs0.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-apl3/igt@gem_exec_fair@basic-none-solo@rcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          [FAIL][47] ([i915#2842]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-glk2/igt@gem_exec_fair@basic-throttle@rcs0.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk5/igt@gem_exec_fair@basic-throttle@rcs0.html
    - {shard-rkl}:        [FAIL][49] ([i915#2842]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-6/igt@gem_exec_fair@basic-throttle@rcs0.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-4/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_reloc@basic-gtt-read:
    - {shard-rkl}:        [SKIP][51] ([i915#3281]) -> [PASS][52] +5 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-4/igt@gem_exec_reloc@basic-gtt-read.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-5/igt@gem_exec_reloc@basic-gtt-read.html

  * igt@gem_exec_suspend@basic-s3-devices@smem:
    - {shard-rkl}:        [FAIL][53] ([i915#5115]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-4/igt@gem_exec_suspend@basic-s3-devices@smem.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-2/igt@gem_exec_suspend@basic-s3-devices@smem.html

  * igt@gem_pwrite_snooped:
    - {shard-rkl}:        [SKIP][55] ([i915#3282]) -> [PASS][56] +6 similar issues
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-4/igt@gem_pwrite_snooped.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-5/igt@gem_pwrite_snooped.html

  * igt@gem_workarounds@suspend-resume-fd:
    - {shard-rkl}:        [FAIL][57] ([fdo#103375]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-4/igt@gem_workarounds@suspend-resume-fd.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-2/igt@gem_workarounds@suspend-resume-fd.html

  * igt@gen9_exec_parse@basic-rejected-ctx-param:
    - {shard-rkl}:        [SKIP][59] ([i915#2527]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-2/igt@gen9_exec_parse@basic-rejected-ctx-param.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-5/igt@gen9_exec_parse@basic-rejected-ctx-param.html

  * igt@i915_pm_dc@dc5-psr:
    - {shard-rkl}:        [SKIP][61] ([i915#658]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-5/igt@i915_pm_dc@dc5-psr.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@i915_pm_dc@dc5-psr.html

  * igt@i915_pm_dc@dc6-dpms:
    - {shard-rkl}:        [SKIP][63] ([i915#3361]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-5/igt@i915_pm_dc@dc6-dpms.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-1/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_rpm@drm-resources-equal:
    - {shard-rkl}:        [SKIP][65] ([fdo#109308]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-4/igt@i915_pm_rpm@drm-resources-equal.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@i915_pm_rpm@drm-resources-equal.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - {shard-dg1}:        [SKIP][67] ([i915#1397]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-dg1-14/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-dg1-16/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@i915_pm_sseu@full-enable:
    - {shard-rkl}:        [SKIP][69] ([i915#4387]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-6/igt@i915_pm_sseu@full-enable.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-5/igt@i915_pm_sseu@full-enable.html

  * igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_rc_ccs:
    - {shard-rkl}:        [SKIP][71] ([i915#1845] / [i915#4098]) -> [PASS][72] +20 similar issues
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-1/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_rc_ccs.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@kms_ccs@pipe-b-random-ccs-data-y_tiled_gen12_rc_ccs.html

  * igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs:
    - {shard-tglu}:       [SKIP][73] ([i915#1845] / [i915#7651]) -> [PASS][74] +27 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-tglu-9/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-tglu-3/igt@kms_ccs@pipe-d-random-ccs-data-y_tiled_gen12_rc_ccs.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-apl:          [FAIL][75] ([i915#2346]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-apl4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-glk:          [FAIL][77] ([i915#2346]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-glk3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_fbcon_fbt@psr-suspend:
    - {shard-rkl}:        [SKIP][79] ([i915#3955]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-4/igt@kms_fbcon_fbt@psr-suspend.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@kms_fbcon_fbt@psr-suspend.html

  * igt@kms_flip@flip-vs-suspend@a-dp1:
    - shard-apl:          [ABORT][81] ([i915#180]) -> [PASS][82] +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-apl4/igt@kms_flip@flip-vs-suspend@a-dp1.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-apl6/igt@kms_flip@flip-vs-suspend@a-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt:
    - {shard-tglu}:       [SKIP][83] ([i915#1849]) -> [PASS][84] +15 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-tglu-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-plflip-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move:
    - {shard-rkl}:        [SKIP][85] ([i915#1849] / [i915#4098]) -> [PASS][86] +18 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html

  * igt@kms_plane@pixel-format@pipe-b-planes:
    - {shard-rkl}:        [SKIP][87] ([i915#1849]) -> [PASS][88] +4 similar issues
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-5/igt@kms_plane@pixel-format@pipe-b-planes.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@kms_plane@pixel-format@pipe-b-planes.html

  * igt@kms_plane@plane-position-hole-dpms@pipe-a-planes:
    - {shard-tglu}:       [SKIP][89] ([i915#1849] / [i915#3558]) -> [PASS][90] +3 similar issues
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-tglu-10/igt@kms_plane@plane-position-hole-dpms@pipe-a-planes.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-tglu-1/igt@kms_plane@plane-position-hole-dpms@pipe-a-planes.html

  * igt@kms_psr@sprite_mmap_cpu:
    - {shard-rkl}:        [SKIP][91] ([i915#1072]) -> [PASS][92] +2 similar issues
   [91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-1/igt@kms_psr@sprite_mmap_cpu.html
   [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@kms_psr@sprite_mmap_cpu.html

  * igt@kms_universal_plane@disable-primary-vs-flip-pipe-a:
    - {shard-tglu}:       [SKIP][93] ([fdo#109274]) -> [PASS][94] +3 similar issues
   [93]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-tglu-10/igt@kms_universal_plane@disable-primary-vs-flip-pipe-a.html
   [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-tglu-5/igt@kms_universal_plane@disable-primary-vs-flip-pipe-a.html

  * igt@kms_universal_plane@disable-primary-vs-flip-pipe-b:
    - {shard-rkl}:        [SKIP][95] ([i915#1845] / [i915#4070] / [i915#4098]) -> [PASS][96]
   [95]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-2/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html
   [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-6/igt@kms_universal_plane@disable-primary-vs-flip-pipe-b.html

  * igt@kms_vblank@pipe-d-wait-forked-busy:
    - {shard-tglu}:       [SKIP][97] ([i915#1845]) -> [PASS][98] +33 similar issues
   [97]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-tglu-10/igt@kms_vblank@pipe-d-wait-forked-busy.html
   [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-tglu-4/igt@kms_vblank@pipe-d-wait-forked-busy.html

  * igt@perf@gen12-mi-rpc:
    - {shard-rkl}:        [SKIP][99] ([fdo#109289]) -> [PASS][100]
   [99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-5/igt@perf@gen12-mi-rpc.html
   [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-4/igt@perf@gen12-mi-rpc.html

  * igt@perf@mi-rpc:
    - {shard-rkl}:        [SKIP][101] ([i915#2434]) -> [PASS][102]
   [101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-rkl-3/igt@perf@mi-rpc.html
   [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-rkl-5/igt@perf@mi-rpc.html

  * igt@prime_vgem@basic-fence-flip:
    - {shard-tglu}:       [SKIP][103] ([fdo#109295]) -> [PASS][104]
   [103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12872/shard-tglu-10/igt@prime_vgem@basic-fence-flip.html
   [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/shard-tglu-5/igt@prime_vgem@basic-fence-flip.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#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [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#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#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [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#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2433]: https://gitlab.freedesktop.org/drm/intel/issues/2433
  [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2532]: https://gitlab.freedesktop.org/drm/intel/issues/2532
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [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#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
  [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#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [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#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3639]: https://gitlab.freedesktop.org/drm/intel/issues/3639
  [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#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938
  [i915#3952]: https://gitlab.freedesktop.org/drm/intel/issues/3952
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#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#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4854]: https://gitlab.freedesktop.org/drm/intel/issues/4854
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4881]: https://gitlab.freedesktop.org/drm/intel/issues/4881
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5115]: https://gitlab.freedesktop.org/drm/intel/issues/5115
  [i915#5161]: https://gitlab.freedesktop.org/drm/intel/issues/5161
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [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#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [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#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6355]: https://gitlab.freedesktop.org/drm/intel/issues/6355
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [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#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128
  [i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#7949]: https://gitlab.freedesktop.org/drm/intel/issues/7949
  [i915#7957]: https://gitlab.freedesktop.org/drm/intel/issues/7957
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#7984]: https://gitlab.freedesktop.org/drm/intel/issues/7984
  [i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150
  [i915#8152]: https://gitlab.freedesktop.org/drm/intel/issues/8152
  [i915#8154]: https://gitlab.freedesktop.org/drm/intel/issues/8154
  [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211
  [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
  [i915#8253]: https://gitlab.freedesktop.org/drm/intel/issues/8253
  [i915#8282]: https://gitlab.freedesktop.org/drm/intel/issues/8282


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7202 -> IGTPW_8630
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_12872: f65e171596ef70c076fe02be596de29e83cfc8a3 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8630: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8630/index.html
  IGT_7202: b4ec7dac375eed2dda89c64d4de94c4c9205b601 @ 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_8630/index.html

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

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

* Re: [igt-dev] [i-g-t v8 15/51] tests/kms_display_modes: Add support for Bigjoiner
  2023-02-23 15:09 ` [igt-dev] [i-g-t v8 15/51] tests/kms_display_modes: " Bhanuprakash Modem
@ 2023-03-20 10:24   ` B, Jeevan
  0 siblings, 0 replies; 62+ messages in thread
From: B, Jeevan @ 2023-03-20 10:24 UTC (permalink / raw)
  To: Modem, Bhanuprakash, igt-dev

LGTM

> -----Original Message-----
> From: igt-dev <igt-dev-bounces@lists.freedesktop.org> On Behalf Of
> Bhanuprakash Modem
> Sent: Thursday, February 23, 2023 8:40 PM
> To: igt-dev@lists.freedesktop.org
> Subject: [igt-dev] [i-g-t v8 15/51] tests/kms_display_modes: Add support for
> Bigjoiner
> 
> As many 2x tests are currently running on Pipe-A & B only, those tests will always
> SKIP if there is any 8K supported panel in the config. Instead of Skipping the test,
> add some intelligence to the subtest to identify the valid pipe/output combo to
> execute the subtest.
> 
> V2: - Use updated helper name
> 
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Jeevan B <jeevan.b@intel.com>
> ---
>  tests/kms_display_modes.c | 104 +++++++++++++++++++++++---------------
>  1 file changed, 62 insertions(+), 42 deletions(-)
> 
> diff --git a/tests/kms_display_modes.c b/tests/kms_display_modes.c index
> e4191811e..02fee317d 100644
> --- a/tests/kms_display_modes.c
> +++ b/tests/kms_display_modes.c
> @@ -34,31 +34,26 @@ typedef struct {
>  	int n_pipes;
>  } data_t;
> 
> -static void run_extendedmode_basic(data_t *data, int pipe1, int pipe2)
> +static void run_extendedmode_basic(data_t *data,
> +				   enum pipe pipe1, igt_output_t *output1,
> +				   enum pipe pipe2, igt_output_t *output2)
>  {
>  	struct igt_fb fb, fbs[2];
>  	drmModeModeInfo *mode[2];
> -	igt_output_t *output, *extended_output[2];
>  	igt_display_t *display = &data->display;
>  	igt_plane_t *plane[2];
>  	igt_pipe_crc_t *pipe_crc[2] = { 0 };
>  	igt_crc_t ref_crc[2], crc[2];
> -	int count = 0, width, height;
> +	int width, height;
>  	cairo_t *cr;
> 
> -	for_each_connected_output(display, output) {
> -		extended_output[count] = output;
> -		count++;
> +	igt_display_reset(display);
> 
> -		if (count > 1)
> -			break;
> -	}
> -
> -	igt_output_set_pipe(extended_output[0], pipe1);
> -	igt_output_set_pipe(extended_output[1], pipe2);
> +	igt_output_set_pipe(output1, pipe1);
> +	igt_output_set_pipe(output2, pipe2);
> 
> -	mode[0] = igt_output_get_mode(extended_output[0]);
> -	mode[1] = igt_output_get_mode(extended_output[1]);
> +	mode[0] = igt_output_get_mode(output1);
> +	mode[1] = igt_output_get_mode(output2);
> 
>  	pipe_crc[0] = igt_pipe_crc_new(data->drm_fd, pipe1,
> IGT_PIPE_CRC_SOURCE_AUTO);
>  	pipe_crc[1] = igt_pipe_crc_new(data->drm_fd, pipe2,
> IGT_PIPE_CRC_SOURCE_AUTO); @@ -115,8 +110,8 @@ static void
> run_extendedmode_basic(data_t *data, int pipe1, int pipe2)
>  	igt_pipe_crc_free(pipe_crc[0]);
>  	igt_pipe_crc_free(pipe_crc[1]);
> 
> -	igt_output_set_pipe(extended_output[0], PIPE_NONE);
> -	igt_output_set_pipe(extended_output[1], PIPE_NONE);
> +	igt_output_set_pipe(output1, PIPE_NONE);
> +	igt_output_set_pipe(output2, PIPE_NONE);
> 
>  	igt_plane_set_fb(igt_pipe_get_plane_type(&display->pipes[pipe1],
>  			  DRM_PLANE_TYPE_PRIMARY), NULL);
> @@ -129,43 +124,68 @@ static void run_extendedmode_basic(data_t *data,
> int pipe1, int pipe2)
>  	igt_assert_crc_equal(&crc[1], &ref_crc[1]);  }
> 
> +#define for_each_connected_output_local(display, output)		\
> +	for (int j__ = 0;  assert(igt_can_fail()), j__ < (display)->n_outputs; j__++)
> 	\
> +		for_each_if ((((output) = &(display)->outputs[j__]), \
> +			      igt_output_is_connected((output))))
> +
> +#define for_each_valid_output_on_pipe_local(display, pipe, output) \
> +	for_each_connected_output_local((display), (output)) \
> +		for_each_if (igt_pipe_connector_valid((pipe), (output)))
> +
> +static void run_extendedmode_test(data_t *data) {
> +	enum pipe pipe1, pipe2;
> +	igt_output_t *output1, *output2;
> +	igt_display_t *display = &data->display;
> +
> +	igt_display_reset(display);
> +
> +	for_each_pipe(display, pipe1) {
> +		for_each_valid_output_on_pipe(display, pipe1, output1) {
> +			for_each_pipe(display, pipe2) {
> +				if (pipe1 == pipe2)
> +					continue;
> +
> +				for_each_valid_output_on_pipe_local(display,
> pipe2, output2) {
> +					if (output1 == output2)
> +						continue;
> +
> +					igt_display_reset(display);
> +
> +					igt_output_set_pipe(output1, pipe1);
> +					igt_output_set_pipe(output2, pipe2);
> +
> +					if
> (!i915_pipe_output_combo_valid(display))
> +						continue;
> +
> +					igt_dynamic_f("pipe-%s-%s-pipe-%s-
> %s",
> +						      kmstest_pipe_name(pipe1),
> +						      igt_output_name(output1),
> +						      kmstest_pipe_name(pipe2),
> +						      igt_output_name(output2))
> +
> 	run_extendedmode_basic(data,
> +								pipe1,
> output1,
> +								pipe2,
> output2);
> +				}
> +			}
> +		}
> +	}
> +}
> +
>  igt_main
>  {
>  	data_t data;
> -	int valid_output = 0, i, j = 0;
> -	igt_output_t *output;
> -	int pipe[IGT_MAX_PIPES];
> 
>  	igt_fixture {
>  		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
>  		kmstest_set_vt_graphics_mode();
>  		igt_display_require(&data.display, data.drm_fd);
> -
> -		for_each_connected_output(&data.display, output) {
> -			valid_output++;
> -
> -			if (valid_output > 1)
> -				break;
> -		}
> -
> -		data.n_pipes = 0;
> -		for_each_pipe(&data.display, i) {
> -			data.n_pipes++;
> -			pipe[j] = i;
> -			j++;
> -		}
> -
> -		igt_require_f(valid_output > 1, "No valid second output
> found\n");
> +		igt_display_require_output(&data.display);
>  	}
> 
>  	igt_describe("Test for validating display extended mode with a pair of
> connected displays");
> -	igt_subtest_with_dynamic("extended-mode-basic") {
> -		for (i = 0; i < data.n_pipes - 1; i++) {
> -			igt_dynamic_f("pipe-%s%s",
> kmstest_pipe_name(pipe[i]),
> -					kmstest_pipe_name(pipe[i+1]));
> -			run_extendedmode_basic(&data, pipe[i], pipe[i+1]);
> -		}
> -	}
> +	igt_subtest_with_dynamic("extended-mode-basic")
> +		run_extendedmode_test(&data);
> 
>  	igt_fixture {
>  		igt_display_fini(&data.display);
> --
> 2.39.1

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

end of thread, other threads:[~2023-03-20 10:25 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-23 15:09 [igt-dev] [i-g-t v8 00/51] Add IGT support for Bigjoiner Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 01/51] lib/igt_kms: Add a helper for valid pipe/output constraint Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 02/51] lib/igt_kms: Bigjoiner check in max_bpc constraint Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 03/51] tests/kms_async_flips: Add support for Bigjoiner Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 04/51] tests/kms_atomic: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 05/51] tests/kms_atomic_interruptible: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 06/51] tests/kms_atomic_transition: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 07/51] tests/kms_color_helper: Helper to check Bigjoiner constraint Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 08/51] tests/kms_color: Add support for Bigjoiner Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 09/51] tests/chamelium/kms_color_chamelium: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 10/51] tests/kms_content_protection: " Bhanuprakash Modem
2023-03-17  6:31   ` Karthik B S
2023-03-17  6:33     ` Modem, Bhanuprakash
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 11/51] tests/kms_concurrent: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 12/51] tests/kms_cursor_crc: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 13/51] tests/kms_cursor_edge_walk: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 14/51] tests/kms_cursor_legacy: " Bhanuprakash Modem
2023-03-16  9:44   ` [igt-dev] [i-g-t V9 " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 15/51] tests/kms_display_modes: " Bhanuprakash Modem
2023-03-20 10:24   ` B, Jeevan
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 16/51] tests/kms_dp_tiled_display: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 17/51] tests/kms_flip_event_leak: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 18/51] tests/kms_invalid_mode: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 19/51] tests/kms_lease: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 20/51] tests/kms_pipe_crc_basic: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 21/51] tests/kms_plane: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 22/51] tests/kms_plane_alpha_blend: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 23/51] tests/kms_plane_cursor: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 24/51] tests/kms_plane_lowres: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 25/51] tests/kms_plane_multiple: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 26/51] tests/kms_plane_scaling: " Bhanuprakash Modem
2023-03-17  5:09   ` [igt-dev] [i-g-t V9 " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 27/51] tests/kms_prime: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 28/51] tests/kms_properties: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 29/51] tests/kms_rmfb: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 30/51] tests/kms_rotation_crc: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 31/51] tests/kms_scaling_modes: " Bhanuprakash Modem
2023-02-23 15:09 ` [igt-dev] [i-g-t v8 32/51] tests/kms_sequence: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 33/51] tests/kms_universal_plane: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 34/51] tests/kms_vblank: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 35/51] tests/kms_vrr: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 36/51] tests/i915/kms_big_fb: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 37/51] tests/i915/kms_big_joiner: Negative tests " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 38/51] tests/i915/kms_busy: Add support " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 39/51] tests/i915/kms_ccs: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 40/51] tests/i915/kms_cdclk: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 41/51] tests/i915/kms_draw_crc: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 42/51] tests/i915/kms_fence_pin_leak: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 43/51] tests/i915/kms_flip_scaled_crc: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 44/51] tests/i915/kms_flip_tiling: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 45/51] tests/i915/kms_frontbuffer_tracking: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 46/51] tests/i915/kms_mmap_write_crc: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 47/51] tests/i915/kms_psr2_sf: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 48/51] tests/i915/kms_psr2_su: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 49/51] tests/i915/kms_psr: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 50/51] tests/i915/kms_psr_stress_test: " Bhanuprakash Modem
2023-02-23 15:10 ` [igt-dev] [i-g-t v8 51/51] tests/i915/kms_pwrite_crc: " Bhanuprakash Modem
2023-02-23 16:33 ` [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for Bigjoiner (rev21) Patchwork
2023-02-23 20:22 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2023-03-17  4:12 ` [igt-dev] ✗ Fi.CI.BUILD: failure for Add IGT support for Bigjoiner (rev23) Patchwork
2023-03-17  6:03 ` [igt-dev] ✓ Fi.CI.BAT: success for Add IGT support for Bigjoiner (rev24) Patchwork
2023-03-17  7:28 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

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