All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors
@ 2023-06-01 13:08 Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 1/7] tests/kms_tiled_display: Get rid of DP stuff Ville Syrjala
                   ` (10 more replies)
  0 siblings, 11 replies; 17+ messages in thread
From: Ville Syrjala @ 2023-06-01 13:08 UTC (permalink / raw)
  To: igt-dev

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

Another rebase of the old series to run the tiled display tests
on any set of connectors. Would help with testing i915 port sync
feature without actually having tiled displays around.

Ville Syrjälä (7):
  tests/kms_tiled_display: Get rid of DP stuff
  tests/kms_tiled_display: Make basic_test() static
  tests/kms_tiled_display: Cleanup the chamelium ifdefs
  tests/kms_tiled_display: Replace the igt_display pointer with a struct
  tests/kms_tiled_display: Limit the difference in the timestamps to one
    scanline
  lib/edid: Add support for making DisplayID tile blocks
  tests/kms_tiled_display: Override the EDID to fake some tiles

 lib/igt_edid.c                                |  76 ++++++
 lib/igt_edid.h                                |  49 ++++
 ...dp_tiled_display.c => kms_tiled_display.c} | 241 +++++++++++++-----
 tests/meson.build                             |   2 +-
 4 files changed, 307 insertions(+), 61 deletions(-)
 rename tests/{kms_dp_tiled_display.c => kms_tiled_display.c} (67%)

-- 
2.39.3

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

* [igt-dev] [PATCH i-g-t v2 1/7] tests/kms_tiled_display: Get rid of DP stuff
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
@ 2023-06-01 13:08 ` Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 2/7] tests/kms_tiled_display: Make basic_test() static Ville Syrjala
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Ville Syrjala @ 2023-06-01 13:08 UTC (permalink / raw)
  To: igt-dev; +Cc: Manasi Navare, Madhumitha Tolakanahalli Pradeep

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

There is nothing DP specific about the tile property. So
remove any mention of DP (and port sync which is an i915
hardware feature). Let's just talk about genlocked CRTCs
and tiled connectors, which is pretty generic.

Cc: Madhumitha Tolakanahalli Pradeep <madhumitha.tolakanahalli.pradeep@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
---
 .../{kms_dp_tiled_display.c => kms_tiled_display.c} | 13 +++----------
 tests/meson.build                                   |  2 +-
 2 files changed, 4 insertions(+), 11 deletions(-)
 rename tests/{kms_dp_tiled_display.c => kms_tiled_display.c} (97%)

diff --git a/tests/kms_dp_tiled_display.c b/tests/kms_tiled_display.c
similarity index 97%
rename from tests/kms_dp_tiled_display.c
rename to tests/kms_tiled_display.c
index 07b803a50540..3bb240fd574a 100644
--- a/tests/kms_dp_tiled_display.c
+++ b/tests/kms_tiled_display.c
@@ -25,7 +25,7 @@
  *      <madhumitha.tolakanahalli.pradeep@intel.com>
  *  Manasi Navare <manasi.d.navare@intel.com>
  *
- * Display Port Tiled Display Test
+ * Tiled display genlocked CRTC test
  * This test parses the tile information of the connectors that have TILE
  * property set, sets up the framebuffer with correct offsets corresponding to
  * the tile offsets and does an atomic modeset with two CRTCs for two
@@ -42,7 +42,7 @@
 #include "drm_fourcc.h"
 #include "igt_edid.h"
 
-IGT_TEST_DESCRIPTION("Test for Transcoder Port Sync for Display Port Tiled Displays");
+IGT_TEST_DESCRIPTION("Test for genlocked CRTCs with tiled displays");
 
 typedef struct {
 	igt_output_t *output;
@@ -122,8 +122,7 @@ static void get_number_of_h_tiles(data_t *data)
 						       res->connectors[i]);
 		igt_assert(connector);
 
-		if (connector->connection == DRM_MODE_CONNECTED &&
-		    connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
+		if (connector->connection == DRM_MODE_CONNECTED) {
 			get_connector_tile_props(data, connector, &tile);
 
 			data->num_h_tiles = tile.num_h_tile;
@@ -147,12 +146,6 @@ static void get_connectors(data_t *data)
 
 		igt_assert(conns[count].connector);
 
-		if (conns[count].connector->connector_type !=
-		    DRM_MODE_CONNECTOR_DisplayPort) {
-			drmModeFreeConnector(conns[count].connector);
-			continue;
-		}
-
 		get_connector_tile_props(data, conns[count].connector,
 					 &conns[count].tile);
 
diff --git a/tests/meson.build b/tests/meson.build
index f71be1dbe5f9..f908ae885973 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -29,7 +29,6 @@ test_progs = [
 	'kms_dither',
 	'kms_display_modes',
 	'kms_dp_aux_dev',
-	'kms_dp_tiled_display',
 	'kms_flip',
 	'kms_flip_event_leak',
 	'kms_force_connector_basic',
@@ -57,6 +56,7 @@ test_progs = [
 	'kms_sequence',
 	'kms_setmode',
 	'kms_sysfs_edid_timing',
+	'kms_tiled_display',
 	'kms_tv_load_detect',
 	'kms_universal_plane',
 	'kms_vblank',
-- 
2.39.3

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

* [igt-dev] [PATCH i-g-t v2 2/7] tests/kms_tiled_display: Make basic_test() static
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 1/7] tests/kms_tiled_display: Get rid of DP stuff Ville Syrjala
@ 2023-06-01 13:08 ` Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 3/7] tests/kms_tiled_display: Cleanup the chamelium ifdefs Ville Syrjala
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Ville Syrjala @ 2023-06-01 13:08 UTC (permalink / raw)
  To: igt-dev

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

MAke basic_test() static since it's not needed anywhere else.

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

diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c
index 3bb240fd574a..ad98462012db 100644
--- a/tests/kms_tiled_display.c
+++ b/tests/kms_tiled_display.c
@@ -70,9 +70,6 @@ typedef struct {
 
 } data_t;
 
-void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *pfd,
-		igt_display_t *display);
-
 #ifdef HAVE_CHAMELIUM
 static void test_with_chamelium(data_t *data, igt_display_t *display);
 #endif
@@ -422,8 +419,8 @@ static void test_with_chamelium(data_t *data, igt_display_t *display)
 }
 #endif
 
-void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *pfd,
-		igt_display_t *display)
+static void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *pfd,
+		       igt_display_t *display)
 {
 		int ret;
 
-- 
2.39.3

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

* [igt-dev] [PATCH i-g-t v2 3/7] tests/kms_tiled_display: Cleanup the chamelium ifdefs
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 1/7] tests/kms_tiled_display: Get rid of DP stuff Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 2/7] tests/kms_tiled_display: Make basic_test() static Ville Syrjala
@ 2023-06-01 13:08 ` Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 4/7] tests/kms_tiled_display: Replace the igt_display pointer with a struct Ville Syrjala
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Ville Syrjala @ 2023-06-01 13:08 UTC (permalink / raw)
  To: igt-dev

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

Clean up the mess around the chmelium ifdes a bit.

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

diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c
index ad98462012db..75cda62db28e 100644
--- a/tests/kms_tiled_display.c
+++ b/tests/kms_tiled_display.c
@@ -61,19 +61,14 @@ typedef struct {
 	enum igt_commit_style commit;
 	struct timeval first_ts;
 
-	#ifdef HAVE_CHAMELIUM
+#ifdef HAVE_CHAMELIUM
 	struct chamelium *chamelium;
 	struct chamelium_port **ports;
 	int port_count;
 	struct chamelium_edid *edids[IGT_CUSTOM_EDID_COUNT];
-	#endif
-
+#endif
 } data_t;
 
-#ifdef HAVE_CHAMELIUM
-static void test_with_chamelium(data_t *data, igt_display_t *display);
-#endif
-
 static int drm_property_is_tile(drmModePropertyPtr prop)
 {
 	return (strcmp(prop->name, "TILE") ? 0 : 1) &&
@@ -473,9 +468,9 @@ igt_main
 		test_cleanup(&data);
 	}
 
-	#ifdef HAVE_CHAMELIUM
-        igt_describe("Make sure the Tiled CRTCs are synchronized and we get "
-                     "page flips for all tiled CRTCs in one vblank (executes on chamelium).");
+#ifdef HAVE_CHAMELIUM
+	igt_describe("Make sure the Tiled CRTCs are synchronized and we get "
+		     "page flips for all tiled CRTCs in one vblank (executes on chamelium).");
 	igt_subtest_f("basic-test-pattern-with-chamelium") {
 		int i;
 
@@ -487,7 +482,8 @@ igt_main
 					      data.ports[i], data.ports,
 					      data.port_count);
 	}
-	#endif
+#endif
+
 	igt_fixture {
 		free(data.conns);
 		kmstest_restore_vt_mode();
-- 
2.39.3

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

* [igt-dev] [PATCH i-g-t v2 4/7] tests/kms_tiled_display: Replace the igt_display pointer with a struct
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
                   ` (2 preceding siblings ...)
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 3/7] tests/kms_tiled_display: Cleanup the chamelium ifdefs Ville Syrjala
@ 2023-06-01 13:08 ` Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 5/7] tests/kms_tiled_display: Limit the difference in the timestamps to one scanline Ville Syrjala
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Ville Syrjala @ 2023-06-01 13:08 UTC (permalink / raw)
  To: igt-dev

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

No point in storing a pointer when we can just store the struct itself.
The lifetime is the same.

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

diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c
index 75cda62db28e..5a75caf77d27 100644
--- a/tests/kms_tiled_display.c
+++ b/tests/kms_tiled_display.c
@@ -56,7 +56,7 @@ typedef struct {
 	int drm_fd;
 	int num_h_tiles;
 	igt_fb_t fb_test_pattern;
-	igt_display_t *display;
+	igt_display_t display;
 	data_connector_t *conns;
 	enum igt_commit_style commit;
 	struct timeval first_ts;
@@ -132,8 +132,8 @@ static void get_connectors(data_t *data)
 	igt_output_t *output;
 	data_connector_t *conns = data->conns;
 
-	for_each_connected_output(data->display, output) {
-		conns[count].connector = drmModeGetConnector(data->display->drm_fd,
+	for_each_connected_output(&data->display, output) {
+		conns[count].connector = drmModeGetConnector(data->display.drm_fd,
 							     output->id);
 
 		igt_assert(conns[count].connector);
@@ -178,11 +178,11 @@ static void reset_mode(data_t *data)
 	data_connector_t *conns = data->conns;
 
 	for (count = 0; count < data->num_h_tiles; count++) {
-		output = igt_output_from_connector(data->display,
+		output = igt_output_from_connector(&data->display,
 						   conns[count].connector);
 		igt_output_set_pipe(output, PIPE_NONE);
 	}
-	igt_display_commit2(data->display, data->commit);
+	igt_display_commit2(&data->display, data->commit);
 }
 
 static void test_cleanup(data_t *data)
@@ -197,7 +197,7 @@ static void test_cleanup(data_t *data)
 		}
 	}
 	igt_remove_fb(data->drm_fd, &data->fb_test_pattern);
-	igt_display_commit2(data->display, data->commit);
+	igt_display_commit2(&data->display, data->commit);
 	memset(conns, 0, sizeof(data_connector_t) * data->num_h_tiles);
 }
 static void setup_mode(data_t *data)
@@ -217,10 +217,10 @@ static void setup_mode(data_t *data)
 	reset_mode(data);
 
 	for (count = 0; count < data->num_h_tiles; count++) {
-		output = igt_output_from_connector(data->display,
+		output = igt_output_from_connector(&data->display,
 						   conns[count].connector);
 
-		for_each_pipe(data->display, pipe) {
+		for_each_pipe(&data->display, pipe) {
 			pipe_in_use = false;
 			found = false;
 
@@ -257,9 +257,8 @@ 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);
+	igt_require(i915_pipe_output_combo_valid(&data->display));
+	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
 }
 
 static void setup_framebuffer(data_t *data)
@@ -317,7 +316,7 @@ static data_connector_t *conn_for_crtc(data_t *data, unsigned int crtc_id)
 	for (int i = 0; i < data->num_h_tiles; i++) {
 		data_connector_t *conn = &data->conns[i];
 
-		if (data->display->pipes[conn->pipe].crtc_id == crtc_id)
+		if (data->display.pipes[conn->pipe].crtc_id == crtc_id)
 			return conn;
 	}
 
@@ -375,13 +374,13 @@ static bool got_all_page_flips(data_t *data)
 }
 
 #ifdef HAVE_CHAMELIUM
-static void test_with_chamelium(data_t *data, igt_display_t *display)
+static void test_with_chamelium(data_t *data)
 {
 	int i, count = 0;
 	uint8_t htile = 2, vtile = 1;
 	struct edid **edid;
 
-	data->chamelium = chamelium_init(data->drm_fd, display);
+	data->chamelium = chamelium_init(data->drm_fd, &data->display);
 	igt_require(data->chamelium);
 	data->ports = chamelium_get_ports
 		(data->chamelium, &data->port_count);
@@ -402,7 +401,7 @@ static void test_with_chamelium(data_t *data, igt_display_t *display)
 				data->ports[i], data->edids[i]);
 			chamelium_plug(data->chamelium,
 				       data->ports[i]);
-			chamelium_wait_for_conn_status_change(data->display,
+			chamelium_wait_for_conn_status_change(&data->display,
 							      data->chamelium,
 							      data->ports[i],
 							      DRM_MODE_CONNECTED);
@@ -414,8 +413,7 @@ static void test_with_chamelium(data_t *data, igt_display_t *display)
 }
 #endif
 
-static void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *pfd,
-		       igt_display_t *display)
+static void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *pfd)
 {
 		int ret;
 
@@ -431,7 +429,7 @@ static void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *
 		setup_mode(data);
 		setup_framebuffer(data);
 		timerclear(&data->first_ts);
-		igt_display_commit_atomic(data->display,
+		igt_display_commit_atomic(&data->display,
 			DRM_MODE_ATOMIC_NONBLOCK |
 			DRM_MODE_PAGE_FLIP_EVENT, data);
 		while (!got_all_page_flips(data)) {
@@ -443,28 +441,27 @@ static void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *
 
 igt_main
 {
-	igt_display_t display;
 	data_t data = {0};
 	struct pollfd pfd = {0};
 	drmEventContext drm_event = {0};
 	igt_fixture {
 		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
 		kmstest_set_vt_graphics_mode();
-		igt_display_require(&display, data.drm_fd);
-		igt_display_reset(&display);
-		data.display = &display;
+		igt_display_require(&data.display, data.drm_fd);
+		igt_display_reset(&data.display);
+
 		pfd.fd = data.drm_fd;
 		pfd.events = POLLIN;
 		drm_event.version = 3;
 		drm_event.page_flip_handler2 = page_flip_handler;
-		data.commit = data.display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY;
+		data.commit = data.display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY;
 		igt_require(data.commit == COMMIT_ATOMIC);
 	}
 
 	igt_describe("Make sure the Tiled CRTCs are synchronized and we get "
 		     "page flips for all tiled CRTCs in one vblank.");
 	igt_subtest("basic-test-pattern") {
-		basic_test(&data, &drm_event, &pfd, &display);
+		basic_test(&data, &drm_event, &pfd);
 		test_cleanup(&data);
 	}
 
@@ -474,11 +471,11 @@ igt_main
 	igt_subtest_f("basic-test-pattern-with-chamelium") {
 		int i;
 
-		test_with_chamelium(&data, &display);
-		basic_test(&data, &drm_event, &pfd, &display);
+		test_with_chamelium(&data);
+		basic_test(&data, &drm_event, &pfd);
 		test_cleanup(&data);
 		for (i = 0; i < data.port_count; i++)
-			chamelium_reset_state(data.display, data.chamelium,
+			chamelium_reset_state(&data.display, data.chamelium,
 					      data.ports[i], data.ports,
 					      data.port_count);
 	}
@@ -487,7 +484,7 @@ igt_main
 	igt_fixture {
 		free(data.conns);
 		kmstest_restore_vt_mode();
-		igt_display_fini(data.display);
+		igt_display_fini(&data.display);
 		close(data.drm_fd);
 	}
 }
-- 
2.39.3

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

* [igt-dev] [PATCH i-g-t v2 5/7] tests/kms_tiled_display: Limit the difference in the timestamps to one scanline
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
                   ` (3 preceding siblings ...)
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 4/7] tests/kms_tiled_display: Replace the igt_display pointer with a struct Ville Syrjala
@ 2023-06-01 13:08 ` Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 6/7] lib/edid: Add support for making DisplayID tile blocks Ville Syrjala
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Ville Syrjala @ 2023-06-01 13:08 UTC (permalink / raw)
  To: igt-dev

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

The 10 usec limit is rather abitrary. Let's choose another (perhaps a
bit less) arbitrary value of single scanline. The timestamp could be off
by some significant fraction of a scanline anyway since that's often the
precision the hardware gives us for tracking the scanout position.

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

diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c
index 5a75caf77d27..7f579bacb3d5 100644
--- a/tests/kms_tiled_display.c
+++ b/tests/kms_tiled_display.c
@@ -60,6 +60,7 @@ typedef struct {
 	data_connector_t *conns;
 	enum igt_commit_style commit;
 	struct timeval first_ts;
+	int linetime_us;
 
 #ifdef HAVE_CHAMELIUM
 	struct chamelium *chamelium;
@@ -200,6 +201,12 @@ static void test_cleanup(data_t *data)
 	igt_display_commit2(&data->display, data->commit);
 	memset(conns, 0, sizeof(data_connector_t) * data->num_h_tiles);
 }
+
+static int mode_linetime_us(const drmModeModeInfo *mode)
+{
+	return 1000 * mode->htotal / mode->clock;
+}
+
 static void setup_mode(data_t *data)
 {
 	int count = 0, prev = 0, i = 0;
@@ -256,6 +263,7 @@ static void setup_mode(data_t *data)
 		}
 		igt_require(found);
 		igt_output_override_mode(output, mode);
+		data->linetime_us = mode_linetime_us(mode);
 	}
 	igt_require(i915_pipe_output_combo_valid(&data->display));
 	igt_display_commit_atomic(&data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
@@ -323,6 +331,11 @@ static data_connector_t *conn_for_crtc(data_t *data, unsigned int crtc_id)
 	return NULL;
 }
 
+static float timeval_float(const struct timeval *tv)
+{
+	return tv->tv_sec + tv->tv_usec / 1000000.0f;
+}
+
 static void page_flip_handler(int fd, unsigned int seq,
 			      unsigned int tv_sec, unsigned int tv_usec,
 			      unsigned int crtc_id, void *_data)
@@ -345,8 +358,8 @@ static void page_flip_handler(int fd, unsigned int seq,
 	igt_assert_f(!conn->got_page_flip, "Got two page-flips for CRTC %u\n",
 		     crtc_id);
 
-	igt_debug("Page Flip Event received from CRTC:%d at %u:%u\n", crtc_id,
-		  tv_sec, tv_usec);
+	igt_debug("Page Flip Event received from CRTC:%d at %.6f\n",
+		  crtc_id, timeval_float(&current_ts));
 
 	conn->got_page_flip = true;
 
@@ -354,11 +367,12 @@ static void page_flip_handler(int fd, unsigned int seq,
 	usec = diff.tv_sec * 1000000 + diff.tv_usec;
 
 	/*
-	 * For seamless tear-free display, the page flip event timestamps
-	 * from all the tiles should not differ by more than 10us.
+	 * We arbitrarily choose to say that the difference
+	 * should be no more than a single scanline.
 	 */
-	igt_fail_on_f(labs(usec) >= 10, "Delayed page flip event from CRTC:%d at %u:%u\n",
-		      crtc_id, tv_sec, tv_usec);
+	igt_fail_on_f(labs(usec) > data->linetime_us,
+		      "Mistimed page flip event from CRTC:%d at %.6f (diff %ld usec, max %d usec)\n",
+		      crtc_id, timeval_float(&current_ts), usec, data->linetime_us);
 }
 
 static bool got_all_page_flips(data_t *data)
-- 
2.39.3

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

* [igt-dev] [PATCH i-g-t v2 6/7] lib/edid: Add support for making DisplayID tile blocks
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
                   ` (4 preceding siblings ...)
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 5/7] tests/kms_tiled_display: Limit the difference in the timestamps to one scanline Ville Syrjala
@ 2023-06-01 13:08 ` Ville Syrjala
  2023-06-01 14:29   ` Juha-Pekka Heikkila
  2023-06-01 16:13   ` [igt-dev] [PATCH i-g-t v3 " Ville Syrjala
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 7/7] tests/kms_tiled_display: Override the EDID to fake some tiles Ville Syrjala
                   ` (4 subsequent siblings)
  10 siblings, 2 replies; 17+ messages in thread
From: Ville Syrjala @ 2023-06-01 13:08 UTC (permalink / raw)
  To: igt-dev

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

We want to test tiled display support without actually having tiled
displays. To that end we will want to construct fake tile infromation
and append it to the EDID.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_edid.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_edid.h | 49 ++++++++++++++++++++++++++++++++
 2 files changed, 125 insertions(+)

diff --git a/lib/igt_edid.c b/lib/igt_edid.c
index 68dc4f75478b..387b479b4db7 100644
--- a/lib/igt_edid.c
+++ b/lib/igt_edid.c
@@ -578,3 +578,79 @@ void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
 	cea->dtd_start = 4 + data_blocks_size;
 	cea->misc = flags | num_native_dtds;
 }
+
+void *dispid_block_tiled(void *ptr,
+			 int num_htiles, int num_vtiles,
+			 int htile, int vtile,
+			 int hsize, int vsize,
+			 const char *topology_id)
+{
+	struct dispid_block_header *block = ptr;
+	struct dispid_tiled_block *tiled = (void*)(block + 1);
+	size_t len;
+
+	block->tag = 0x12;
+	block->rev = 0;
+	block->num_bytes = sizeof(*tiled);
+
+	num_htiles--;
+	num_vtiles--;
+	hsize--;
+	vsize--;
+
+	tiled->tile_caps =
+		DISPID_MULTI_TILE_AT_TILE_LOCATION |
+		DISPID_SINGLE_TILE_AT_TILE_LOCATION;
+
+	tiled->topo[0] = (num_htiles & 0xf) << 4 |
+		(num_vtiles & 0xf) << 0;
+
+	tiled->topo[1] = (htile & 0xf) << 4 |
+		(vtile & 0xf) << 0;
+
+	tiled->topo[2] = (num_htiles >> 4) << 6 |
+		(num_vtiles >> 4) << 4 |
+		(htile >> 4) << 2 |
+		(vtile >> 4) << 0;
+
+	tiled->tile_size[0] = hsize;
+	tiled->tile_size[1] = hsize >> 8;
+	tiled->tile_size[2] = vsize;
+	tiled->tile_size[3] = vsize >> 8;
+
+	len = min(strlen(topology_id), sizeof(tiled->topology_id));
+	memcpy(tiled->topology_id, topology_id, len);
+
+	return tiled + 1;
+}
+
+void *edid_ext_dispid(struct edid_ext *ext)
+{
+	struct edid_dispid *dispid = &ext->data.dispid;
+
+	edid_ext_set_displayid(ext);
+
+	return dispid;
+}
+
+void *dispid_init(void *ptr)
+{
+	struct dispid_header *dispid = ptr;
+
+	dispid->rev = 0x10;
+	dispid->prod_id = 0x3;
+	dispid->ext_count = 0;
+
+	return dispid + 1;
+}
+
+void *dispid_done(struct dispid_header *dispid, void *ptr)
+{
+	int bytes = ptr - (void *)dispid;
+
+	dispid->num_bytes = bytes - sizeof(*dispid);
+
+	*(uint8_t *)ptr = compute_checksum((void*)dispid, bytes + 1);
+
+	return ptr + 1;
+}
diff --git a/lib/igt_edid.h b/lib/igt_edid.h
index 85a9ef5e1a25..02645345f0d0 100644
--- a/lib/igt_edid.h
+++ b/lib/igt_edid.h
@@ -303,6 +303,44 @@ struct edid_cea {
 	uint8_t checksum;
 } __attribute__((packed));
 
+enum dispid_tile_caps {
+	DISPID_SINGLE_PHYSICAL_ENCLOSURE = 1 << 7,
+	DISPID_BEZEL_INFORMATION_PRESENT = 1 << 6,
+	DISPID_MULTI_TILE_UNKNOWN = 0 << 3,
+	DISPID_MULTI_TILE_AT_TILE_LOCATION = 1 << 3,
+	DISPID_SINGLE_TILE_UNKNOWN = 0 << 0,
+	DISPID_SINGLE_TILE_AT_TILE_LOCATION = 1 << 0,
+	DISPID_SINGLE_TILE_SCALED_FULLSCREEN = 2 << 0,
+	DISPID_SINGLE_TILE_CLONED_TO_ALL_TILES = 3 << 0,
+};
+
+struct dispid_header {
+	uint8_t rev;
+	uint8_t num_bytes;
+	uint8_t prod_id;
+	uint8_t ext_count;
+} __attribute__((packed));
+
+struct dispid_block_header {
+	uint8_t tag;
+	uint8_t rev;
+	uint8_t num_bytes;
+} __attribute__((packed));
+
+struct dispid_tiled_block {
+	uint8_t tile_caps;
+	uint8_t topo[3];
+	uint8_t tile_size[4];
+	uint8_t tile_pixel_bezel[5];
+	uint8_t topology_id[9];
+} __attribute__((packed));
+
+struct edid_dispid {
+	struct dispid_header header;
+	char data[122];
+	uint8_t checksum;
+} __attribute__((packed));
+
 enum edid_ext_tag {
 	EDID_EXT_CEA = 0x02,
 	EDID_EXT_DISPLAYID = 0x70,
@@ -329,6 +367,7 @@ struct edid_ext {
 	union {
 		struct edid_cea cea;
 		struct edid_tile tile;
+		struct edid_dispid dispid;
 	} data;
 } __attribute__((packed));
 
@@ -408,4 +447,14 @@ void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
 		      uint8_t num_native_dtds, uint8_t flags);
 
 void edid_ext_set_displayid(struct edid_ext *ext);
+
+void *edid_ext_dispid(struct edid_ext *ext);
+void *dispid_init(void *ptr);
+void *dispid_done(struct dispid_header *dispid, void *ptr);
+void *dispid_block_tiled(void *ptr,
+			 int num_htiles, int num_vtiles,
+			 int htile, int vtile,
+			 int hsize, int vsize,
+			 const char *topology_id);
+
 #endif
-- 
2.39.3

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

* [igt-dev] [PATCH i-g-t v2 7/7] tests/kms_tiled_display: Override the EDID to fake some tiles
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
                   ` (5 preceding siblings ...)
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 6/7] lib/edid: Add support for making DisplayID tile blocks Ville Syrjala
@ 2023-06-01 13:08 ` Ville Syrjala
  2023-06-01 14:29   ` Juha-Pekka Heikkila
  2023-06-01 15:28 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Run tiled display tests on any set of connectors (rev3) Patchwork
                   ` (3 subsequent siblings)
  10 siblings, 1 reply; 17+ messages in thread
From: Ville Syrjala @ 2023-06-01 13:08 UTC (permalink / raw)
  To: igt-dev

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

Pretend we have a tiled display if we don't actually have one.

We don't actually know whether the kernel will sync up the displays,
but let's assume it does.

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

diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c
index 7f579bacb3d5..d9baf98786a4 100644
--- a/tests/kms_tiled_display.c
+++ b/tests/kms_tiled_display.c
@@ -111,8 +111,8 @@ static void get_number_of_h_tiles(data_t *data)
 	for (int i = 0; !data->num_h_tiles && i < res->count_connectors; i++) {
 		drmModeConnectorPtr connector;
 
-		connector = drmModeGetConnectorCurrent(data->drm_fd,
-						       res->connectors[i]);
+		connector = drmModeGetConnector(data->drm_fd,
+						res->connectors[i]);
 		igt_assert(connector);
 
 		if (connector->connection == DRM_MODE_CONNECTED) {
@@ -427,6 +427,119 @@ static void test_with_chamelium(data_t *data)
 }
 #endif
 
+static void edid_fill_tile_block(struct edid_ext *ext,
+				 int tile, int num_tiles,
+				 int hdisplay, int vdisplay)
+{
+	struct dispid_header *dispid;
+	void *ptr;
+
+	dispid = ptr = edid_ext_dispid(ext);
+
+	ptr = dispid_init(ptr);
+	ptr = dispid_block_tiled(ptr, num_tiles, 1,
+				 tile, 0,
+				 hdisplay, vdisplay,
+				 "IGT-TILES");
+	ptr = dispid_done(dispid, ptr);
+}
+
+static struct edid *
+edid_with_tile(const struct edid *old_edid,
+	       const drmModeModeInfo *mode,
+	       int tile, int num_tiles)
+{
+	struct edid *edid = malloc(edid_get_size(old_edid) + EDID_BLOCK_SIZE);
+
+	memcpy(edid, old_edid, edid_get_size(old_edid));
+	edid->extensions_len++;
+
+	edid_fill_tile_block((struct edid_ext *)&edid[edid->extensions_len],
+			     tile, num_tiles, mode->hdisplay, mode->vdisplay);
+
+	edid_update_checksum(edid);
+
+	return edid;
+}
+
+static void force_edid_with_tile(data_t *data,
+				 igt_output_t *output,
+				 const drmModeModeInfo *mode,
+				 int tile, int num_tiles)
+{
+	struct edid *edid;
+	drmModePropertyBlobPtr blob;
+	uint64_t blob_id;
+
+	kmstest_get_property(data->drm_fd, output->id,
+			     DRM_MODE_OBJECT_CONNECTOR, "EDID",
+			     NULL, &blob_id, NULL);
+
+	blob = drmModeGetPropertyBlob(data->drm_fd, blob_id);
+	edid = edid_with_tile(blob->data, mode, tile, num_tiles);
+	drmModeFreePropertyBlob(blob);
+
+	kmstest_force_edid(data->drm_fd, output->config.connector, edid);
+
+	free(edid);
+}
+
+static bool mode_equal(const drmModeModeInfo *a,
+		       const drmModeModeInfo *b)
+{
+	return a->hdisplay == b->hdisplay &&
+		a->hsync_start == b->hsync_start &&
+		a->hsync_end == b->hsync_end &&
+		a->htotal == b->htotal &&
+		a->vdisplay == b->vdisplay &&
+		a->vsync_start == b->vsync_start &&
+		a->vsync_end == b->vsync_end &&
+		a->vtotal == b->vtotal &&
+		a->clock == b->clock &&
+		a->flags == b->flags &&
+		a->hskew == b->hskew &&
+		a->vscan == b->vscan;
+}
+
+static void override_edid(data_t *data)
+{
+	drmModeModeInfo common_mode = {};
+	igt_output_t *outputs[8] = {};
+	igt_output_t *output;
+	int num_outputs = 0;
+	int num_tiles = 0;
+	drmModeResPtr res;
+
+	igt_require(data->display.n_pipes >= 2);
+
+	for_each_connected_output(&data->display, output) {
+		drmModeModeInfo *mode = igt_output_get_mode(output);
+
+		if (!common_mode.hdisplay)
+			common_mode = *mode;
+
+		if (mode_equal(&common_mode, mode)) {
+			outputs[num_outputs] = output;
+			if (++num_outputs >= ARRAY_SIZE(outputs))
+				break;
+		}
+	}
+
+	igt_require(num_outputs >= 2);
+
+	num_tiles = min(num_outputs, data->display.n_pipes);
+
+	/* disable everything so that we are sure to get a full modeset */
+	res = drmModeGetResources(data->drm_fd);
+	igt_require(res);
+	kmstest_unset_all_crtcs(data->drm_fd, res);
+	drmModeFreeResources(res);
+
+	for (int i = 0; i < num_tiles; i++)
+		force_edid_with_tile(data, outputs[i],
+				     &common_mode, i, num_tiles);
+}
+
 static void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *pfd)
 {
 		int ret;
@@ -470,6 +583,17 @@ igt_main
 		drm_event.page_flip_handler2 = page_flip_handler;
 		data.commit = data.display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY;
 		igt_require(data.commit == COMMIT_ATOMIC);
+
+		get_number_of_h_tiles(&data);
+		igt_debug("Number of real horizontal tiles: %d\n", data.num_h_tiles);
+
+		if (data.num_h_tiles == 0) {
+			override_edid(&data);
+			get_number_of_h_tiles(&data);
+
+			igt_debug("Number of fake horizontal tiles: %d\n", data.num_h_tiles);
+		}
+		igt_require(data.num_h_tiles > 0);
 	}
 
 	igt_describe("Make sure the Tiled CRTCs are synchronized and we get "
-- 
2.39.3

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

* Re: [igt-dev] [PATCH i-g-t v2 6/7] lib/edid: Add support for making DisplayID tile blocks
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 6/7] lib/edid: Add support for making DisplayID tile blocks Ville Syrjala
@ 2023-06-01 14:29   ` Juha-Pekka Heikkila
  2023-06-01 16:13   ` [igt-dev] [PATCH i-g-t v3 " Ville Syrjala
  1 sibling, 0 replies; 17+ messages in thread
From: Juha-Pekka Heikkila @ 2023-06-01 14:29 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 1.6.2023 16.08, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We want to test tiled display support without actually having tiled
> displays. To that end we will want to construct fake tile infromation
> and append it to the EDID.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   lib/igt_edid.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++
>   lib/igt_edid.h | 49 ++++++++++++++++++++++++++++++++
>   2 files changed, 125 insertions(+)
> 
> diff --git a/lib/igt_edid.c b/lib/igt_edid.c
> index 68dc4f75478b..387b479b4db7 100644
> --- a/lib/igt_edid.c
> +++ b/lib/igt_edid.c
> @@ -578,3 +578,79 @@ void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
>   	cea->dtd_start = 4 + data_blocks_size;
>   	cea->misc = flags | num_native_dtds;
>   }
> +

These functions should have some small comment on top of them on what 
they do. Code it self I didn't spot any issue with.

/Juha-Pekka

> +void *dispid_block_tiled(void *ptr,
> +			 int num_htiles, int num_vtiles,
> +			 int htile, int vtile,
> +			 int hsize, int vsize,
> +			 const char *topology_id)
> +{
> +	struct dispid_block_header *block = ptr;
> +	struct dispid_tiled_block *tiled = (void*)(block + 1);
> +	size_t len;
> +
> +	block->tag = 0x12;
> +	block->rev = 0;
> +	block->num_bytes = sizeof(*tiled);
> +
> +	num_htiles--;
> +	num_vtiles--;
> +	hsize--;
> +	vsize--;
> +
> +	tiled->tile_caps =
> +		DISPID_MULTI_TILE_AT_TILE_LOCATION |
> +		DISPID_SINGLE_TILE_AT_TILE_LOCATION;
> +
> +	tiled->topo[0] = (num_htiles & 0xf) << 4 |
> +		(num_vtiles & 0xf) << 0;
> +
> +	tiled->topo[1] = (htile & 0xf) << 4 |
> +		(vtile & 0xf) << 0;
> +
> +	tiled->topo[2] = (num_htiles >> 4) << 6 |
> +		(num_vtiles >> 4) << 4 |
> +		(htile >> 4) << 2 |
> +		(vtile >> 4) << 0;
> +
> +	tiled->tile_size[0] = hsize;
> +	tiled->tile_size[1] = hsize >> 8;
> +	tiled->tile_size[2] = vsize;
> +	tiled->tile_size[3] = vsize >> 8;
> +
> +	len = min(strlen(topology_id), sizeof(tiled->topology_id));
> +	memcpy(tiled->topology_id, topology_id, len);
> +
> +	return tiled + 1;
> +}
> +
> +void *edid_ext_dispid(struct edid_ext *ext)
> +{
> +	struct edid_dispid *dispid = &ext->data.dispid;
> +
> +	edid_ext_set_displayid(ext);
> +
> +	return dispid;
> +}
> +
> +void *dispid_init(void *ptr)
> +{
> +	struct dispid_header *dispid = ptr;
> +
> +	dispid->rev = 0x10;
> +	dispid->prod_id = 0x3;
> +	dispid->ext_count = 0;
> +
> +	return dispid + 1;
> +}
> +
> +void *dispid_done(struct dispid_header *dispid, void *ptr)
> +{
> +	int bytes = ptr - (void *)dispid;
> +
> +	dispid->num_bytes = bytes - sizeof(*dispid);
> +
> +	*(uint8_t *)ptr = compute_checksum((void*)dispid, bytes + 1);
> +
> +	return ptr + 1;
> +}
> diff --git a/lib/igt_edid.h b/lib/igt_edid.h
> index 85a9ef5e1a25..02645345f0d0 100644
> --- a/lib/igt_edid.h
> +++ b/lib/igt_edid.h
> @@ -303,6 +303,44 @@ struct edid_cea {
>   	uint8_t checksum;
>   } __attribute__((packed));
>   
> +enum dispid_tile_caps {
> +	DISPID_SINGLE_PHYSICAL_ENCLOSURE = 1 << 7,
> +	DISPID_BEZEL_INFORMATION_PRESENT = 1 << 6,
> +	DISPID_MULTI_TILE_UNKNOWN = 0 << 3,
> +	DISPID_MULTI_TILE_AT_TILE_LOCATION = 1 << 3,
> +	DISPID_SINGLE_TILE_UNKNOWN = 0 << 0,
> +	DISPID_SINGLE_TILE_AT_TILE_LOCATION = 1 << 0,
> +	DISPID_SINGLE_TILE_SCALED_FULLSCREEN = 2 << 0,
> +	DISPID_SINGLE_TILE_CLONED_TO_ALL_TILES = 3 << 0,
> +};
> +
> +struct dispid_header {
> +	uint8_t rev;
> +	uint8_t num_bytes;
> +	uint8_t prod_id;
> +	uint8_t ext_count;
> +} __attribute__((packed));
> +
> +struct dispid_block_header {
> +	uint8_t tag;
> +	uint8_t rev;
> +	uint8_t num_bytes;
> +} __attribute__((packed));
> +
> +struct dispid_tiled_block {
> +	uint8_t tile_caps;
> +	uint8_t topo[3];
> +	uint8_t tile_size[4];
> +	uint8_t tile_pixel_bezel[5];
> +	uint8_t topology_id[9];
> +} __attribute__((packed));
> +
> +struct edid_dispid {
> +	struct dispid_header header;
> +	char data[122];
> +	uint8_t checksum;
> +} __attribute__((packed));
> +
>   enum edid_ext_tag {
>   	EDID_EXT_CEA = 0x02,
>   	EDID_EXT_DISPLAYID = 0x70,
> @@ -329,6 +367,7 @@ struct edid_ext {
>   	union {
>   		struct edid_cea cea;
>   		struct edid_tile tile;
> +		struct edid_dispid dispid;
>   	} data;
>   } __attribute__((packed));
>   
> @@ -408,4 +447,14 @@ void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
>   		      uint8_t num_native_dtds, uint8_t flags);
>   
>   void edid_ext_set_displayid(struct edid_ext *ext);
> +
> +void *edid_ext_dispid(struct edid_ext *ext);
> +void *dispid_init(void *ptr);
> +void *dispid_done(struct dispid_header *dispid, void *ptr);
> +void *dispid_block_tiled(void *ptr,
> +			 int num_htiles, int num_vtiles,
> +			 int htile, int vtile,
> +			 int hsize, int vsize,
> +			 const char *topology_id);
> +
>   #endif

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

* Re: [igt-dev] [PATCH i-g-t v2 7/7] tests/kms_tiled_display: Override the EDID to fake some tiles
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 7/7] tests/kms_tiled_display: Override the EDID to fake some tiles Ville Syrjala
@ 2023-06-01 14:29   ` Juha-Pekka Heikkila
  2023-06-01 16:14     ` Ville Syrjälä
  0 siblings, 1 reply; 17+ messages in thread
From: Juha-Pekka Heikkila @ 2023-06-01 14:29 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

On 1.6.2023 16.08, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Pretend we have a tiled display if we don't actually have one.
> 
> We don't actually know whether the kernel will sync up the displays,
> but let's assume it does.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   tests/kms_tiled_display.c | 128 +++++++++++++++++++++++++++++++++++++-
>   1 file changed, 126 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c
> index 7f579bacb3d5..d9baf98786a4 100644
> --- a/tests/kms_tiled_display.c
> +++ b/tests/kms_tiled_display.c
> @@ -111,8 +111,8 @@ static void get_number_of_h_tiles(data_t *data)
>   	for (int i = 0; !data->num_h_tiles && i < res->count_connectors; i++) {
>   		drmModeConnectorPtr connector;
>   
> -		connector = drmModeGetConnectorCurrent(data->drm_fd,
> -						       res->connectors[i]);
> +		connector = drmModeGetConnector(data->drm_fd,
> +						res->connectors[i]);
>   		igt_assert(connector);
>   
>   		if (connector->connection == DRM_MODE_CONNECTED) {
> @@ -427,6 +427,119 @@ static void test_with_chamelium(data_t *data)
>   }
>   #endif
>   
> +static void edid_fill_tile_block(struct edid_ext *ext,
> +				 int tile, int num_tiles,
> +				 int hdisplay, int vdisplay)
> +{
> +	struct dispid_header *dispid;
> +	void *ptr;
> +
> +	dispid = ptr = edid_ext_dispid(ext);
> +
> +	ptr = dispid_init(ptr);
> +	ptr = dispid_block_tiled(ptr, num_tiles, 1,
> +				 tile, 0,
> +				 hdisplay, vdisplay,
> +				 "IGT-TILES");
> +	ptr = dispid_done(dispid, ptr);
> +}
> +
> +static struct edid *
> +edid_with_tile(const struct edid *old_edid,
> +	       const drmModeModeInfo *mode,
> +	       int tile, int num_tiles)
> +{
> +	struct edid *edid = malloc(edid_get_size(old_edid) + EDID_BLOCK_SIZE);
> +
> +	memcpy(edid, old_edid, edid_get_size(old_edid));
> +	edid->extensions_len++;
> +
> +	edid_fill_tile_block((struct edid_ext *)&edid[edid->extensions_len],
> +			     tile, num_tiles, mode->hdisplay, mode->vdisplay);
> +
> +	edid_update_checksum(edid);
> +
> +	return edid;
> +}
> +
> +static void force_edid_with_tile(data_t *data,
> +				 igt_output_t *output,
> +				 const drmModeModeInfo *mode,
> +				 int tile, int num_tiles)
> +{
> +	struct edid *edid;
> +	drmModePropertyBlobPtr blob;
> +	uint64_t blob_id;
> +
> +	kmstest_get_property(data->drm_fd, output->id,
> +			     DRM_MODE_OBJECT_CONNECTOR, "EDID",
> +			     NULL, &blob_id, NULL);
> +
> +	blob = drmModeGetPropertyBlob(data->drm_fd, blob_id);
> +	edid = edid_with_tile(blob->data, mode, tile, num_tiles);
> +	drmModeFreePropertyBlob(blob);
> +
> +	kmstest_force_edid(data->drm_fd, output->config.connector, edid);
> +
> +	free(edid);
> +}
> +
> +static bool mode_equal(const drmModeModeInfo *a,
> +		       const drmModeModeInfo *b)
> +{
> +	return a->hdisplay == b->hdisplay &&
> +		a->hsync_start == b->hsync_start &&
> +		a->hsync_end == b->hsync_end &&
> +		a->htotal == b->htotal &&
> +		a->vdisplay == b->vdisplay &&
> +		a->vsync_start == b->vsync_start &&
> +		a->vsync_end == b->vsync_end &&
> +		a->vtotal == b->vtotal &&
> +		a->clock == b->clock &&
> +		a->flags == b->flags &&
> +		a->hskew == b->hskew &&
> +		a->vscan == b->vscan;
> +}
> +
> +static void override_edid(data_t *data)
> +{
> +	drmModeModeInfo common_mode = {};
> +	igt_output_t *outputs[8] = {};
> +	igt_output_t *output;
> +	int num_outputs = 0;
> +	int num_tiles = 0;
> +	drmModeResPtr res;
> +
> +	igt_require(data->display.n_pipes >= 2);
> +
> +	for_each_connected_output(&data->display, output) {
> +		drmModeModeInfo *mode = igt_output_get_mode(output);
> +
> +		if (!common_mode.hdisplay)
> +			common_mode = *mode;
> +
> +		if (mode_equal(&common_mode, mode)) {
> +			outputs[num_outputs] = output;
> +			if (++num_outputs >= ARRAY_SIZE(outputs))
> +				break;
> +		}
> +	}
> +
> +	igt_require(num_outputs >= 2);
> +
> +	num_tiles = min(num_outputs, data->display.n_pipes);
> +
> +	/* disable everything so that we are sure to get a full modeset */
> +	res = drmModeGetResources(data->drm_fd);
> +	igt_require(res);
> +	kmstest_unset_all_crtcs(data->drm_fd, res);
> +	drmModeFreeResources(res);
> +
> +	for (int i = 0; i < num_tiles; i++)
> +		force_edid_with_tile(data, outputs[i],
> +				     &common_mode, i, num_tiles);
> +}
> +
>   static void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *pfd)
>   {
>   		int ret;
> @@ -470,6 +583,17 @@ igt_main
>   		drm_event.page_flip_handler2 = page_flip_handler;
>   		data.commit = data.display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY;
>   		igt_require(data.commit == COMMIT_ATOMIC);
> +
> +		get_number_of_h_tiles(&data);
> +		igt_debug("Number of real horizontal tiles: %d\n", data.num_h_tiles);
> +
> +		if (data.num_h_tiles == 0) {
> +			override_edid(&data);
> +			get_number_of_h_tiles(&data);
> +
> +			igt_debug("Number of fake horizontal tiles: %d\n", data.num_h_tiles);
> +		}
> +		igt_require(data.num_h_tiles > 0);

I wonder does it make sense to run this with 1 tile only? Anyway code 
look all ok on the series. Patches 1..5 and 7 are

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On patch 6 I think will need to document those functions since they're 
public functions in lib.

/Juha-Pekka


>   	}
>   
>   	igt_describe("Make sure the Tiled CRTCs are synchronized and we get "

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

* [igt-dev] ✓ Fi.CI.BAT: success for kms: Run tiled display tests on any set of connectors (rev3)
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
                   ` (6 preceding siblings ...)
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 7/7] tests/kms_tiled_display: Override the EDID to fake some tiles Ville Syrjala
@ 2023-06-01 15:28 ` Patchwork
  2023-06-01 16:56 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Run tiled display tests on any set of connectors (rev4) Patchwork
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2023-06-01 15:28 UTC (permalink / raw)
  To: Ville Syrjala; +Cc: igt-dev

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

== Series Details ==

Series: kms: Run tiled display tests on any set of connectors (rev3)
URL   : https://patchwork.freedesktop.org/series/96027/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13215 -> IGTPW_9093
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (37 -> 36)
------------------------------

  Additional (1): bat-dg1-5 
  Missing    (2): fi-kbl-soraka bat-mtlp-6 

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

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

### IGT changes ###

#### Issues hit ####

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

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

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

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

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

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-apl-guc:         [PASS][6] -> [DMESG-FAIL][7] ([i915#5334])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@gt_lrc:
    - bat-rpls-1:         [PASS][8] -> [INCOMPLETE][9] ([i915#4983])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@guc:
    - bat-rpls-2:         [PASS][10] -> [DMESG-WARN][11] ([i915#7852])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/bat-rpls-2/igt@i915_selftest@live@guc.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/bat-rpls-2/igt@i915_selftest@live@guc.html

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

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

  * igt@kms_chamelium_hpd@vga-hpd-fast:
    - bat-dg1-5:          NOTRUN -> [SKIP][14] ([i915#7828]) +8 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/bat-dg1-5/igt@kms_chamelium_hpd@vga-hpd-fast.html

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

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

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

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

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

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

  
#### Possible fixes ####

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-hsw-4770:        [SKIP][21] ([fdo#109271]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/fi-hsw-4770/igt@i915_pm_rpm@basic-pci-d3-state.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/fi-hsw-4770/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@i915_pm_rpm@basic-rte:
    - fi-hsw-4770:        [FAIL][23] ([i915#7364]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/fi-hsw-4770/igt@i915_pm_rpm@basic-rte.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/fi-hsw-4770/igt@i915_pm_rpm@basic-rte.html

  * igt@i915_selftest@live@gt_mocs:
    - bat-rpls-2:         [DMESG-FAIL][25] ([i915#7059]) -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/bat-rpls-2/igt@i915_selftest@live@gt_mocs.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/bat-rpls-2/igt@i915_selftest@live@gt_mocs.html

  * igt@i915_selftest@live@requests:
    - {bat-mtlp-8}:       [DMESG-FAIL][27] ([i915#8497]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/bat-mtlp-8/igt@i915_selftest@live@requests.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/bat-mtlp-8/igt@i915_selftest@live@requests.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059
  [i915#7364]: https://gitlab.freedesktop.org/drm/intel/issues/7364
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7852]: https://gitlab.freedesktop.org/drm/intel/issues/7852
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8497]: https://gitlab.freedesktop.org/drm/intel/issues/8497


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7317 -> IGTPW_9093

  CI-20190529: 20190529
  CI_DRM_13215: 89016ff511ceed03fbfabdb1c4700bb2c87c0b88 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_9093: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/index.html
  IGT_7317: c902b72df45aa49faa38205bc5be3c748d33a3e0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


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

+igt@kms_tiled_display@basic-test-pattern
+igt@kms_tiled_display@basic-test-pattern-with-chamelium
-igt@kms_dp_tiled_display@basic-test-pattern
-igt@kms_dp_tiled_display@basic-test-pattern-with-chamelium

== Logs ==

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

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

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

* [igt-dev] [PATCH i-g-t v3 6/7] lib/edid: Add support for making DisplayID tile blocks
  2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 6/7] lib/edid: Add support for making DisplayID tile blocks Ville Syrjala
  2023-06-01 14:29   ` Juha-Pekka Heikkila
@ 2023-06-01 16:13   ` Ville Syrjala
  2023-06-01 16:43     ` Juha-Pekka Heikkila
  1 sibling, 1 reply; 17+ messages in thread
From: Ville Syrjala @ 2023-06-01 16:13 UTC (permalink / raw)
  To: igt-dev

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

We want to test tiled display support without actually having tiled
displays. To that end we will want to construct fake tile infromation
and append it to the EDID.

v2: Document the functiosn (Juha-Pekka)

Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 lib/igt_edid.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++
 lib/igt_edid.h |  49 ++++++++++++++++++++
 2 files changed, 169 insertions(+)

diff --git a/lib/igt_edid.c b/lib/igt_edid.c
index 68dc4f75478b..80dcea11275d 100644
--- a/lib/igt_edid.c
+++ b/lib/igt_edid.c
@@ -578,3 +578,123 @@ void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
 	cea->dtd_start = 4 + data_blocks_size;
 	cea->misc = flags | num_native_dtds;
 }
+
+/**
+ * dispid_block_tiled:
+ * @ptr: The DisplayID data block
+ * @num_htiles: Total number of horizontal tiles
+ * @num_vtiles: Total number of vertical tiles
+ * @htile: Horizontal tile location
+ * @vtile: Vertical tile location
+ * @hsize: Horizontal size
+ * @vsize: Vertical size
+ * @topology_id: Tiled display topology ID
+ *
+ * Fill a DisplayID tiled display topology data block
+ *
+ * Returns:
+ * A pointer to the next data block
+ */
+void *dispid_block_tiled(void *ptr,
+			 int num_htiles, int num_vtiles,
+			 int htile, int vtile,
+			 int hsize, int vsize,
+			 const char *topology_id)
+{
+	struct dispid_block_header *block = ptr;
+	struct dispid_tiled_block *tiled = (void*)(block + 1);
+	size_t len;
+
+	block->tag = 0x12;
+	block->rev = 0;
+	block->num_bytes = sizeof(*tiled);
+
+	num_htiles--;
+	num_vtiles--;
+	hsize--;
+	vsize--;
+
+	tiled->tile_caps =
+		DISPID_MULTI_TILE_AT_TILE_LOCATION |
+		DISPID_SINGLE_TILE_AT_TILE_LOCATION;
+
+	tiled->topo[0] = (num_htiles & 0xf) << 4 |
+		(num_vtiles & 0xf) << 0;
+
+	tiled->topo[1] = (htile & 0xf) << 4 |
+		(vtile & 0xf) << 0;
+
+	tiled->topo[2] = (num_htiles >> 4) << 6 |
+		(num_vtiles >> 4) << 4 |
+		(htile >> 4) << 2 |
+		(vtile >> 4) << 0;
+
+	tiled->tile_size[0] = hsize;
+	tiled->tile_size[1] = hsize >> 8;
+	tiled->tile_size[2] = vsize;
+	tiled->tile_size[3] = vsize >> 8;
+
+	len = min(strlen(topology_id), sizeof(tiled->topology_id));
+	memcpy(tiled->topology_id, topology_id, len);
+
+	return tiled + 1;
+}
+
+/**
+ * edid_ext_dispid:
+ * @ext: EDID extension block
+ *
+ * Mark the EDID extentions block as DisplayID.
+
+ * Returns:
+ * A pointer to the contained DisplayID.
+ */
+void *edid_ext_dispid(struct edid_ext *ext)
+{
+	struct edid_dispid *dispid = &ext->data.dispid;
+
+	edid_ext_set_displayid(ext);
+
+	return dispid;
+}
+
+/**
+ * dispid_init:
+ * @ptr: Pointer to the DisplayID
+ *
+ * Initialize the DisplayID header.
+ *
+ * Returns:
+ * A pointer to the first data block.
+ */
+void *dispid_init(void *ptr)
+{
+	struct dispid_header *dispid = ptr;
+
+	dispid->rev = 0x10;
+	dispid->prod_id = 0x3;
+	dispid->ext_count = 0;
+
+	return dispid + 1;
+}
+
+/**
+ * dispid_done:
+ * @dispid: Pointer to the DisplayID
+ * @ptr: Pointer to the end of the DisplayID (the checksum byte)
+ *
+ * Finalize the DisplayID (fill the number of bytes and checksum).
+ *
+ * Returns:
+ * A pointer just past the end of the DisplayID.
+ */
+void *dispid_done(struct dispid_header *dispid, void *ptr)
+{
+	int bytes = ptr - (void *)dispid;
+
+	dispid->num_bytes = bytes - sizeof(*dispid);
+
+	*(uint8_t *)ptr = compute_checksum((void*)dispid, bytes + 1);
+
+	return ptr + 1;
+}
diff --git a/lib/igt_edid.h b/lib/igt_edid.h
index 85a9ef5e1a25..02645345f0d0 100644
--- a/lib/igt_edid.h
+++ b/lib/igt_edid.h
@@ -303,6 +303,44 @@ struct edid_cea {
 	uint8_t checksum;
 } __attribute__((packed));
 
+enum dispid_tile_caps {
+	DISPID_SINGLE_PHYSICAL_ENCLOSURE = 1 << 7,
+	DISPID_BEZEL_INFORMATION_PRESENT = 1 << 6,
+	DISPID_MULTI_TILE_UNKNOWN = 0 << 3,
+	DISPID_MULTI_TILE_AT_TILE_LOCATION = 1 << 3,
+	DISPID_SINGLE_TILE_UNKNOWN = 0 << 0,
+	DISPID_SINGLE_TILE_AT_TILE_LOCATION = 1 << 0,
+	DISPID_SINGLE_TILE_SCALED_FULLSCREEN = 2 << 0,
+	DISPID_SINGLE_TILE_CLONED_TO_ALL_TILES = 3 << 0,
+};
+
+struct dispid_header {
+	uint8_t rev;
+	uint8_t num_bytes;
+	uint8_t prod_id;
+	uint8_t ext_count;
+} __attribute__((packed));
+
+struct dispid_block_header {
+	uint8_t tag;
+	uint8_t rev;
+	uint8_t num_bytes;
+} __attribute__((packed));
+
+struct dispid_tiled_block {
+	uint8_t tile_caps;
+	uint8_t topo[3];
+	uint8_t tile_size[4];
+	uint8_t tile_pixel_bezel[5];
+	uint8_t topology_id[9];
+} __attribute__((packed));
+
+struct edid_dispid {
+	struct dispid_header header;
+	char data[122];
+	uint8_t checksum;
+} __attribute__((packed));
+
 enum edid_ext_tag {
 	EDID_EXT_CEA = 0x02,
 	EDID_EXT_DISPLAYID = 0x70,
@@ -329,6 +367,7 @@ struct edid_ext {
 	union {
 		struct edid_cea cea;
 		struct edid_tile tile;
+		struct edid_dispid dispid;
 	} data;
 } __attribute__((packed));
 
@@ -408,4 +447,14 @@ void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
 		      uint8_t num_native_dtds, uint8_t flags);
 
 void edid_ext_set_displayid(struct edid_ext *ext);
+
+void *edid_ext_dispid(struct edid_ext *ext);
+void *dispid_init(void *ptr);
+void *dispid_done(struct dispid_header *dispid, void *ptr);
+void *dispid_block_tiled(void *ptr,
+			 int num_htiles, int num_vtiles,
+			 int htile, int vtile,
+			 int hsize, int vsize,
+			 const char *topology_id);
+
 #endif
-- 
2.39.3

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

* Re: [igt-dev] [PATCH i-g-t v2 7/7] tests/kms_tiled_display: Override the EDID to fake some tiles
  2023-06-01 14:29   ` Juha-Pekka Heikkila
@ 2023-06-01 16:14     ` Ville Syrjälä
  0 siblings, 0 replies; 17+ messages in thread
From: Ville Syrjälä @ 2023-06-01 16:14 UTC (permalink / raw)
  To: Juha-Pekka Heikkila; +Cc: igt-dev

On Thu, Jun 01, 2023 at 05:29:32PM +0300, Juha-Pekka Heikkila wrote:
> On 1.6.2023 16.08, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Pretend we have a tiled display if we don't actually have one.
> > 
> > We don't actually know whether the kernel will sync up the displays,
> > but let's assume it does.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >   tests/kms_tiled_display.c | 128 +++++++++++++++++++++++++++++++++++++-
> >   1 file changed, 126 insertions(+), 2 deletions(-)
> > 
> > diff --git a/tests/kms_tiled_display.c b/tests/kms_tiled_display.c
> > index 7f579bacb3d5..d9baf98786a4 100644
> > --- a/tests/kms_tiled_display.c
> > +++ b/tests/kms_tiled_display.c
> > @@ -111,8 +111,8 @@ static void get_number_of_h_tiles(data_t *data)
> >   	for (int i = 0; !data->num_h_tiles && i < res->count_connectors; i++) {
> >   		drmModeConnectorPtr connector;
> >   
> > -		connector = drmModeGetConnectorCurrent(data->drm_fd,
> > -						       res->connectors[i]);
> > +		connector = drmModeGetConnector(data->drm_fd,
> > +						res->connectors[i]);
> >   		igt_assert(connector);
> >   
> >   		if (connector->connection == DRM_MODE_CONNECTED) {
> > @@ -427,6 +427,119 @@ static void test_with_chamelium(data_t *data)
> >   }
> >   #endif
> >   
> > +static void edid_fill_tile_block(struct edid_ext *ext,
> > +				 int tile, int num_tiles,
> > +				 int hdisplay, int vdisplay)
> > +{
> > +	struct dispid_header *dispid;
> > +	void *ptr;
> > +
> > +	dispid = ptr = edid_ext_dispid(ext);
> > +
> > +	ptr = dispid_init(ptr);
> > +	ptr = dispid_block_tiled(ptr, num_tiles, 1,
> > +				 tile, 0,
> > +				 hdisplay, vdisplay,
> > +				 "IGT-TILES");
> > +	ptr = dispid_done(dispid, ptr);
> > +}
> > +
> > +static struct edid *
> > +edid_with_tile(const struct edid *old_edid,
> > +	       const drmModeModeInfo *mode,
> > +	       int tile, int num_tiles)
> > +{
> > +	struct edid *edid = malloc(edid_get_size(old_edid) + EDID_BLOCK_SIZE);
> > +
> > +	memcpy(edid, old_edid, edid_get_size(old_edid));
> > +	edid->extensions_len++;
> > +
> > +	edid_fill_tile_block((struct edid_ext *)&edid[edid->extensions_len],
> > +			     tile, num_tiles, mode->hdisplay, mode->vdisplay);
> > +
> > +	edid_update_checksum(edid);
> > +
> > +	return edid;
> > +}
> > +
> > +static void force_edid_with_tile(data_t *data,
> > +				 igt_output_t *output,
> > +				 const drmModeModeInfo *mode,
> > +				 int tile, int num_tiles)
> > +{
> > +	struct edid *edid;
> > +	drmModePropertyBlobPtr blob;
> > +	uint64_t blob_id;
> > +
> > +	kmstest_get_property(data->drm_fd, output->id,
> > +			     DRM_MODE_OBJECT_CONNECTOR, "EDID",
> > +			     NULL, &blob_id, NULL);
> > +
> > +	blob = drmModeGetPropertyBlob(data->drm_fd, blob_id);
> > +	edid = edid_with_tile(blob->data, mode, tile, num_tiles);
> > +	drmModeFreePropertyBlob(blob);
> > +
> > +	kmstest_force_edid(data->drm_fd, output->config.connector, edid);
> > +
> > +	free(edid);
> > +}
> > +
> > +static bool mode_equal(const drmModeModeInfo *a,
> > +		       const drmModeModeInfo *b)
> > +{
> > +	return a->hdisplay == b->hdisplay &&
> > +		a->hsync_start == b->hsync_start &&
> > +		a->hsync_end == b->hsync_end &&
> > +		a->htotal == b->htotal &&
> > +		a->vdisplay == b->vdisplay &&
> > +		a->vsync_start == b->vsync_start &&
> > +		a->vsync_end == b->vsync_end &&
> > +		a->vtotal == b->vtotal &&
> > +		a->clock == b->clock &&
> > +		a->flags == b->flags &&
> > +		a->hskew == b->hskew &&
> > +		a->vscan == b->vscan;
> > +}
> > +
> > +static void override_edid(data_t *data)
> > +{
> > +	drmModeModeInfo common_mode = {};
> > +	igt_output_t *outputs[8] = {};
> > +	igt_output_t *output;
> > +	int num_outputs = 0;
> > +	int num_tiles = 0;
> > +	drmModeResPtr res;
> > +
> > +	igt_require(data->display.n_pipes >= 2);
> > +
> > +	for_each_connected_output(&data->display, output) {
> > +		drmModeModeInfo *mode = igt_output_get_mode(output);
> > +
> > +		if (!common_mode.hdisplay)
> > +			common_mode = *mode;
> > +
> > +		if (mode_equal(&common_mode, mode)) {
> > +			outputs[num_outputs] = output;
> > +			if (++num_outputs >= ARRAY_SIZE(outputs))
> > +				break;
> > +		}
> > +	}
> > +
> > +	igt_require(num_outputs >= 2);
> > +
> > +	num_tiles = min(num_outputs, data->display.n_pipes);
> > +
> > +	/* disable everything so that we are sure to get a full modeset */
> > +	res = drmModeGetResources(data->drm_fd);
> > +	igt_require(res);
> > +	kmstest_unset_all_crtcs(data->drm_fd, res);
> > +	drmModeFreeResources(res);
> > +
> > +	for (int i = 0; i < num_tiles; i++)
> > +		force_edid_with_tile(data, outputs[i],
> > +				     &common_mode, i, num_tiles);
> > +}
> > +
> >   static void basic_test(data_t *data, drmEventContext *drm_event, struct pollfd *pfd)
> >   {
> >   		int ret;
> > @@ -470,6 +583,17 @@ igt_main
> >   		drm_event.page_flip_handler2 = page_flip_handler;
> >   		data.commit = data.display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY;
> >   		igt_require(data.commit == COMMIT_ATOMIC);
> > +
> > +		get_number_of_h_tiles(&data);
> > +		igt_debug("Number of real horizontal tiles: %d\n", data.num_h_tiles);
> > +
> > +		if (data.num_h_tiles == 0) {
> > +			override_edid(&data);
> > +			get_number_of_h_tiles(&data);
> > +
> > +			igt_debug("Number of fake horizontal tiles: %d\n", data.num_h_tiles);
> > +		}
> > +		igt_require(data.num_h_tiles > 0);
> 
> I wonder does it make sense to run this with 1 tile only?

Maybe just to make the sure the test doesn't totally bitrot at times
when there are only CI machines with one display hooked up. Otherwise
I suppose it does nothing particularly useful.

> Anyway code 
> look all ok on the series. Patches 1..5 and 7 are
> 
> Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> 
> On patch 6 I think will need to document those functions since they're 
> public functions in lib.
> 
> /Juha-Pekka
> 
> 
> >   	}
> >   
> >   	igt_describe("Make sure the Tiled CRTCs are synchronized and we get "

-- 
Ville Syrjälä
Intel

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

* Re: [igt-dev] [PATCH i-g-t v3 6/7] lib/edid: Add support for making DisplayID tile blocks
  2023-06-01 16:13   ` [igt-dev] [PATCH i-g-t v3 " Ville Syrjala
@ 2023-06-01 16:43     ` Juha-Pekka Heikkila
  0 siblings, 0 replies; 17+ messages in thread
From: Juha-Pekka Heikkila @ 2023-06-01 16:43 UTC (permalink / raw)
  To: Ville Syrjala, igt-dev

Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>

On 1.6.2023 19.13, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> We want to test tiled display support without actually having tiled
> displays. To that end we will want to construct fake tile infromation
> and append it to the EDID.
> 
> v2: Document the functiosn (Juha-Pekka)
> 
> Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   lib/igt_edid.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++
>   lib/igt_edid.h |  49 ++++++++++++++++++++
>   2 files changed, 169 insertions(+)
> 
> diff --git a/lib/igt_edid.c b/lib/igt_edid.c
> index 68dc4f75478b..80dcea11275d 100644
> --- a/lib/igt_edid.c
> +++ b/lib/igt_edid.c
> @@ -578,3 +578,123 @@ void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
>   	cea->dtd_start = 4 + data_blocks_size;
>   	cea->misc = flags | num_native_dtds;
>   }
> +
> +/**
> + * dispid_block_tiled:
> + * @ptr: The DisplayID data block
> + * @num_htiles: Total number of horizontal tiles
> + * @num_vtiles: Total number of vertical tiles
> + * @htile: Horizontal tile location
> + * @vtile: Vertical tile location
> + * @hsize: Horizontal size
> + * @vsize: Vertical size
> + * @topology_id: Tiled display topology ID
> + *
> + * Fill a DisplayID tiled display topology data block
> + *
> + * Returns:
> + * A pointer to the next data block
> + */
> +void *dispid_block_tiled(void *ptr,
> +			 int num_htiles, int num_vtiles,
> +			 int htile, int vtile,
> +			 int hsize, int vsize,
> +			 const char *topology_id)
> +{
> +	struct dispid_block_header *block = ptr;
> +	struct dispid_tiled_block *tiled = (void*)(block + 1);
> +	size_t len;
> +
> +	block->tag = 0x12;
> +	block->rev = 0;
> +	block->num_bytes = sizeof(*tiled);
> +
> +	num_htiles--;
> +	num_vtiles--;
> +	hsize--;
> +	vsize--;
> +
> +	tiled->tile_caps =
> +		DISPID_MULTI_TILE_AT_TILE_LOCATION |
> +		DISPID_SINGLE_TILE_AT_TILE_LOCATION;
> +
> +	tiled->topo[0] = (num_htiles & 0xf) << 4 |
> +		(num_vtiles & 0xf) << 0;
> +
> +	tiled->topo[1] = (htile & 0xf) << 4 |
> +		(vtile & 0xf) << 0;
> +
> +	tiled->topo[2] = (num_htiles >> 4) << 6 |
> +		(num_vtiles >> 4) << 4 |
> +		(htile >> 4) << 2 |
> +		(vtile >> 4) << 0;
> +
> +	tiled->tile_size[0] = hsize;
> +	tiled->tile_size[1] = hsize >> 8;
> +	tiled->tile_size[2] = vsize;
> +	tiled->tile_size[3] = vsize >> 8;
> +
> +	len = min(strlen(topology_id), sizeof(tiled->topology_id));
> +	memcpy(tiled->topology_id, topology_id, len);
> +
> +	return tiled + 1;
> +}
> +
> +/**
> + * edid_ext_dispid:
> + * @ext: EDID extension block
> + *
> + * Mark the EDID extentions block as DisplayID.
> +
> + * Returns:
> + * A pointer to the contained DisplayID.
> + */
> +void *edid_ext_dispid(struct edid_ext *ext)
> +{
> +	struct edid_dispid *dispid = &ext->data.dispid;
> +
> +	edid_ext_set_displayid(ext);
> +
> +	return dispid;
> +}
> +
> +/**
> + * dispid_init:
> + * @ptr: Pointer to the DisplayID
> + *
> + * Initialize the DisplayID header.
> + *
> + * Returns:
> + * A pointer to the first data block.
> + */
> +void *dispid_init(void *ptr)
> +{
> +	struct dispid_header *dispid = ptr;
> +
> +	dispid->rev = 0x10;
> +	dispid->prod_id = 0x3;
> +	dispid->ext_count = 0;
> +
> +	return dispid + 1;
> +}
> +
> +/**
> + * dispid_done:
> + * @dispid: Pointer to the DisplayID
> + * @ptr: Pointer to the end of the DisplayID (the checksum byte)
> + *
> + * Finalize the DisplayID (fill the number of bytes and checksum).
> + *
> + * Returns:
> + * A pointer just past the end of the DisplayID.
> + */
> +void *dispid_done(struct dispid_header *dispid, void *ptr)
> +{
> +	int bytes = ptr - (void *)dispid;
> +
> +	dispid->num_bytes = bytes - sizeof(*dispid);
> +
> +	*(uint8_t *)ptr = compute_checksum((void*)dispid, bytes + 1);
> +
> +	return ptr + 1;
> +}
> diff --git a/lib/igt_edid.h b/lib/igt_edid.h
> index 85a9ef5e1a25..02645345f0d0 100644
> --- a/lib/igt_edid.h
> +++ b/lib/igt_edid.h
> @@ -303,6 +303,44 @@ struct edid_cea {
>   	uint8_t checksum;
>   } __attribute__((packed));
>   
> +enum dispid_tile_caps {
> +	DISPID_SINGLE_PHYSICAL_ENCLOSURE = 1 << 7,
> +	DISPID_BEZEL_INFORMATION_PRESENT = 1 << 6,
> +	DISPID_MULTI_TILE_UNKNOWN = 0 << 3,
> +	DISPID_MULTI_TILE_AT_TILE_LOCATION = 1 << 3,
> +	DISPID_SINGLE_TILE_UNKNOWN = 0 << 0,
> +	DISPID_SINGLE_TILE_AT_TILE_LOCATION = 1 << 0,
> +	DISPID_SINGLE_TILE_SCALED_FULLSCREEN = 2 << 0,
> +	DISPID_SINGLE_TILE_CLONED_TO_ALL_TILES = 3 << 0,
> +};
> +
> +struct dispid_header {
> +	uint8_t rev;
> +	uint8_t num_bytes;
> +	uint8_t prod_id;
> +	uint8_t ext_count;
> +} __attribute__((packed));
> +
> +struct dispid_block_header {
> +	uint8_t tag;
> +	uint8_t rev;
> +	uint8_t num_bytes;
> +} __attribute__((packed));
> +
> +struct dispid_tiled_block {
> +	uint8_t tile_caps;
> +	uint8_t topo[3];
> +	uint8_t tile_size[4];
> +	uint8_t tile_pixel_bezel[5];
> +	uint8_t topology_id[9];
> +} __attribute__((packed));
> +
> +struct edid_dispid {
> +	struct dispid_header header;
> +	char data[122];
> +	uint8_t checksum;
> +} __attribute__((packed));
> +
>   enum edid_ext_tag {
>   	EDID_EXT_CEA = 0x02,
>   	EDID_EXT_DISPLAYID = 0x70,
> @@ -329,6 +367,7 @@ struct edid_ext {
>   	union {
>   		struct edid_cea cea;
>   		struct edid_tile tile;
> +		struct edid_dispid dispid;
>   	} data;
>   } __attribute__((packed));
>   
> @@ -408,4 +447,14 @@ void edid_ext_set_cea(struct edid_ext *ext, size_t data_blocks_size,
>   		      uint8_t num_native_dtds, uint8_t flags);
>   
>   void edid_ext_set_displayid(struct edid_ext *ext);
> +
> +void *edid_ext_dispid(struct edid_ext *ext);
> +void *dispid_init(void *ptr);
> +void *dispid_done(struct dispid_header *dispid, void *ptr);
> +void *dispid_block_tiled(void *ptr,
> +			 int num_htiles, int num_vtiles,
> +			 int htile, int vtile,
> +			 int hsize, int vsize,
> +			 const char *topology_id);
> +
>   #endif

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

* [igt-dev] ✓ Fi.CI.BAT: success for kms: Run tiled display tests on any set of connectors (rev4)
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
                   ` (7 preceding siblings ...)
  2023-06-01 15:28 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Run tiled display tests on any set of connectors (rev3) Patchwork
@ 2023-06-01 16:56 ` Patchwork
  2023-06-03 13:46 ` [igt-dev] ✓ Fi.CI.IGT: success for kms: Run tiled display tests on any set of connectors (rev3) Patchwork
  2023-06-03 16:46 ` [igt-dev] ✓ Fi.CI.IGT: success for kms: Run tiled display tests on any set of connectors (rev4) Patchwork
  10 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2023-06-01 16:56 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

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

== Series Details ==

Series: kms: Run tiled display tests on any set of connectors (rev4)
URL   : https://patchwork.freedesktop.org/series/96027/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13216 -> IGTPW_9094
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

Participating hosts (37 -> 36)
------------------------------

  Missing    (1): fi-kbl-8809g 

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_backlight@basic-brightness@edp-1:
    - bat-rplp-1:         NOTRUN -> [ABORT][1] ([i915#7077])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-rplp-1/igt@i915_pm_backlight@basic-brightness@edp-1.html

  * igt@i915_selftest@live@requests:
    - bat-rpls-1:         [PASS][2] -> [ABORT][3] ([i915#4983] / [i915#7911] / [i915#7920])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/bat-rpls-1/igt@i915_selftest@live@requests.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-rpls-1/igt@i915_selftest@live@requests.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         NOTRUN -> [DMESG-WARN][4] ([i915#6367])
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-rpls-2/igt@i915_selftest@live@slpc.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - bat-rpls-2:         NOTRUN -> [ABORT][5] ([i915#6687])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-rpls-2/igt@i915_suspend@basic-s2idle-without-i915.html

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

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1:
    - bat-dg2-8:          [PASS][7] -> [FAIL][8] ([i915#7932])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-dg2-8/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-1.html

  * igt@kms_psr@primary_mmap_gtt:
    - bat-rplp-1:         NOTRUN -> [SKIP][9] ([i915#1072]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-rplp-1/igt@kms_psr@primary_mmap_gtt.html

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

  
#### Possible fixes ####

  * igt@core_auth@basic-auth:
    - {bat-mtlp-8}:       [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/bat-mtlp-8/igt@core_auth@basic-auth.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-mtlp-8/igt@core_auth@basic-auth.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-hsw-4770:        [SKIP][13] ([fdo#109271]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/fi-hsw-4770/igt@i915_pm_rpm@basic-pci-d3-state.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/fi-hsw-4770/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@i915_pm_rpm@basic-rte:
    - fi-hsw-4770:        [FAIL][15] ([i915#7364]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/fi-hsw-4770/igt@i915_pm_rpm@basic-rte.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/fi-hsw-4770/igt@i915_pm_rpm@basic-rte.html

  * igt@i915_selftest@live@gt_pm:
    - bat-rpls-2:         [DMESG-FAIL][17] ([i915#4258] / [i915#7913]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/bat-rpls-2/igt@i915_selftest@live@gt_pm.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-rpls-2/igt@i915_selftest@live@gt_pm.html

  * igt@i915_selftest@live@hangcheck:
    - bat-dg2-8:          [DMESG-FAIL][19] ([i915#6998] / [i915#7913]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/bat-dg2-8/igt@i915_selftest@live@hangcheck.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-dg2-8/igt@i915_selftest@live@hangcheck.html

  * igt@i915_selftest@live@requests:
    - {bat-mtlp-6}:       [DMESG-FAIL][21] ([i915#8497]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/bat-mtlp-6/igt@i915_selftest@live@requests.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-mtlp-6/igt@i915_selftest@live@requests.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-2:         [ABORT][23] ([i915#4983] / [i915#7461] / [i915#7913] / [i915#8347]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/bat-rpls-2/igt@i915_selftest@live@reset.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-rpls-2/igt@i915_selftest@live@reset.html

  
#### Warnings ####

  * igt@kms_psr@cursor_plane_move:
    - bat-rplp-1:         [ABORT][25] ([i915#8434]) -> [SKIP][26] ([i915#1072])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/bat-rplp-1/igt@kms_psr@cursor_plane_move.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/bat-rplp-1/igt@kms_psr@cursor_plane_move.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
  [i915#6998]: https://gitlab.freedesktop.org/drm/intel/issues/6998
  [i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077
  [i915#7364]: https://gitlab.freedesktop.org/drm/intel/issues/7364
  [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
  [i915#7911]: https://gitlab.freedesktop.org/drm/intel/issues/7911
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#7920]: https://gitlab.freedesktop.org/drm/intel/issues/7920
  [i915#7932]: https://gitlab.freedesktop.org/drm/intel/issues/7932
  [i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347
  [i915#8434]: https://gitlab.freedesktop.org/drm/intel/issues/8434
  [i915#8497]: https://gitlab.freedesktop.org/drm/intel/issues/8497


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7317 -> IGTPW_9094

  CI-20190529: 20190529
  CI_DRM_13216: 192fe33ac4d87d2bd3bd7c677f6ff48588ec0990 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_9094: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/index.html
  IGT_7317: c902b72df45aa49faa38205bc5be3c748d33a3e0 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

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

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for kms: Run tiled display tests on any set of connectors (rev3)
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
                   ` (8 preceding siblings ...)
  2023-06-01 16:56 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Run tiled display tests on any set of connectors (rev4) Patchwork
@ 2023-06-03 13:46 ` Patchwork
  2023-06-03 16:46 ` [igt-dev] ✓ Fi.CI.IGT: success for kms: Run tiled display tests on any set of connectors (rev4) Patchwork
  10 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2023-06-03 13:46 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

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

== Series Details ==

Series: kms: Run tiled display tests on any set of connectors (rev3)
URL   : https://patchwork.freedesktop.org/series/96027/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13215_full -> IGTPW_9093_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/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_9093_full:

### IGT changes ###

#### Possible regressions ####

  * igt@kms_tiled_display@basic-test-pattern (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][1] +1 similar issue
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-dg1-18/igt@kms_tiled_display@basic-test-pattern.html
    - {shard-tglu}:       NOTRUN -> [SKIP][2] +1 similar issue
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-tglu-9/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium (NEW):
    - {shard-rkl}:        NOTRUN -> [SKIP][3] +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-rkl-4/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  
New tests
---------

  New tests have been introduced between CI_DRM_13215_full and IGTPW_9093_full:

### New IGT tests (2) ###

  * igt@kms_tiled_display@basic-test-pattern:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

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

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

  * igt@gen9_exec_parse@allowed-single:
    - shard-apl:          [PASS][6] -> [ABORT][7] ([i915#5566])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-apl3/igt@gen9_exec_parse@allowed-single.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl3/igt@gen9_exec_parse@allowed-single.html

  * igt@i915_pm_dc@dc9-dpms:
    - shard-apl:          [PASS][8] -> [SKIP][9] ([fdo#109271])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-apl2/igt@i915_pm_dc@dc9-dpms.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl2/igt@i915_pm_dc@dc9-dpms.html

  * igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#3886])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl4/igt@kms_ccs@pipe-a-bad-aux-stride-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc:
    - shard-glk:          NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#3886]) +2 similar issues
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-glk7/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-y_tiled_gen12_rc_ccs_cc.html

  * igt@kms_content_protection@atomic@pipe-a-dp-1:
    - shard-apl:          NOTRUN -> [TIMEOUT][12] ([i915#7173])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl6/igt@kms_content_protection@atomic@pipe-a-dp-1.html

  * igt@kms_content_protection@uevent:
    - shard-glk:          NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#4579]) +3 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-glk8/igt@kms_content_protection@uevent.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          [PASS][14] -> [FAIL][15] ([i915#2346])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-glk6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-apl:          [PASS][16] -> [FAIL][17] ([i915#2346])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl6/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff:
    - shard-apl:          NOTRUN -> [SKIP][18] ([fdo#109271]) +36 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear:
    - shard-glk:          NOTRUN -> [SKIP][19] ([fdo#109271]) +46 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-glk2/igt@kms_frontbuffer_tracking@fbcpsr-tiling-linear.html

  * igt@kms_plane_scaling@invalid-num-scalers@pipe-c-dp-1-invalid-num-scalers:
    - shard-apl:          NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#4579])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl1/igt@kms_plane_scaling@invalid-num-scalers@pipe-c-dp-1-invalid-num-scalers.html

  * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-5@pipe-b-vga-1:
    - shard-snb:          NOTRUN -> [SKIP][21] ([fdo#109271] / [i915#4579]) +11 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-snb6/igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-5@pipe-b-vga-1.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-vga-1:
    - shard-snb:          NOTRUN -> [SKIP][22] ([fdo#109271]) +14 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-snb4/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-25@pipe-a-vga-1.html

  * igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf:
    - shard-glk:          NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#658]) +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-glk2/igt@kms_psr2_sf@cursor-plane-move-continuous-exceed-fully-sf.html

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

  * igt@kms_writeback@writeback-fb-id:
    - shard-glk:          NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#2437])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-glk6/igt@kms_writeback@writeback-fb-id.html

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

  
#### Possible fixes ####

  * igt@core_hotunplug@unbind-rebind:
    - shard-snb:          [ABORT][27] ([i915#4528] / [i915#8213]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-snb5/igt@core_hotunplug@unbind-rebind.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-snb5/igt@core_hotunplug@unbind-rebind.html

  * igt@gem_ctx_exec@basic-nohangcheck:
    - {shard-tglu}:       [FAIL][29] ([i915#6268]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-tglu-4/igt@gem_ctx_exec@basic-nohangcheck.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-tglu-4/igt@gem_ctx_exec@basic-nohangcheck.html

  * igt@gem_eio@reset-stress:
    - {shard-dg1}:        [FAIL][31] ([i915#5784]) -> [PASS][32] +1 similar issue
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-dg1-14/igt@gem_eio@reset-stress.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-dg1-15/igt@gem_eio@reset-stress.html

  * igt@gem_exec_fair@basic-pace-share@rcs0:
    - shard-apl:          [FAIL][33] ([i915#2842]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-apl2/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl1/igt@gem_exec_fair@basic-pace-share@rcs0.html
    - {shard-tglu}:       [FAIL][35] ([i915#2842]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-tglu-9/igt@gem_exec_fair@basic-pace-share@rcs0.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-tglu-3/igt@gem_exec_fair@basic-pace-share@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-glk:          [FAIL][37] ([i915#2842]) -> [PASS][38] +3 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-glk4/igt@gem_exec_fair@basic-pace@vcs0.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-glk3/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_workarounds@suspend-resume-context:
    - shard-apl:          [ABORT][39] ([i915#180]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-apl1/igt@gem_workarounds@suspend-resume-context.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl7/igt@gem_workarounds@suspend-resume-context.html

  * igt@i915_pm_dc@dc6-dpms:
    - {shard-tglu}:       [FAIL][41] ([i915#3989] / [i915#454]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-tglu-10/igt@i915_pm_dc@dc6-dpms.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-tglu-4/igt@i915_pm_dc@dc6-dpms.html

  * igt@i915_pm_rc6_residency@rc6-idle@vecs0:
    - {shard-dg1}:        [FAIL][43] ([i915#3591]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-dg1-15/igt@i915_pm_rc6_residency@rc6-idle@vecs0.html

  * igt@i915_pm_rpm@dpms-lpsp:
    - {shard-rkl}:        [SKIP][45] ([i915#1397]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-rkl-2/igt@i915_pm_rpm@dpms-lpsp.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-rkl-7/igt@i915_pm_rpm@dpms-lpsp.html

  * igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait:
    - {shard-dg1}:        [SKIP][47] ([i915#1397]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-dg1-19/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-dg1-16/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html

  * igt@i915_selftest@live@gt_heartbeat:
    - shard-glk:          [DMESG-FAIL][49] ([i915#5334]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-glk2/igt@i915_selftest@live@gt_heartbeat.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-glk1/igt@i915_selftest@live@gt_heartbeat.html

  * igt@kms_cursor_legacy@single-move@pipe-b:
    - {shard-rkl}:        [INCOMPLETE][51] ([i915#8011]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-rkl-7/igt@kms_cursor_legacy@single-move@pipe-b.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-rkl-2/igt@kms_cursor_legacy@single-move@pipe-b.html

  * igt@perf_pmu@busy@bcs0:
    - shard-apl:          [DMESG-WARN][53] -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-apl3/igt@perf_pmu@busy@bcs0.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl7/igt@perf_pmu@busy@bcs0.html

  * igt@perf_pmu@busy@rcs0:
    - shard-apl:          [ABORT][55] -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-apl3/igt@perf_pmu@busy@rcs0.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-apl7/igt@perf_pmu@busy@rcs0.html

  
#### Warnings ####

  * igt@kms_hdmi_inject@inject-audio:
    - shard-snb:          [SKIP][57] ([fdo#109271]) -> [FAIL][58] ([IGT#3])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13215/shard-snb1/igt@kms_hdmi_inject@inject-audio.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/shard-snb4/igt@kms_hdmi_inject@inject-audio.html

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

  [IGT#3]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/3
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [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#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [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#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [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#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
  [i915#3063]: https://gitlab.freedesktop.org/drm/intel/issues/3063
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#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#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989
  [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#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4275]: https://gitlab.freedesktop.org/drm/intel/issues/4275
  [i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4936]: https://gitlab.freedesktop.org/drm/intel/issues/4936
  [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#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5465]: https://gitlab.freedesktop.org/drm/intel/issues/5465
  [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7173]: https://gitlab.freedesktop.org/drm/intel/issues/7173
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [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#7941]: https://gitlab.freedesktop.org/drm/intel/issues/7941
  [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975
  [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
  [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228
  [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
  [i915#8411]: https://gitlab.freedesktop.org/drm/intel/issues/8411
  [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
  [i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7317 -> IGTPW_9093
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_13215: 89016ff511ceed03fbfabdb1c4700bb2c87c0b88 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_9093: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9093/index.html
  IGT_7317: c902b72df45aa49faa38205bc5be3c748d33a3e0 @ 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_9093/index.html

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

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

* [igt-dev] ✓ Fi.CI.IGT: success for kms: Run tiled display tests on any set of connectors (rev4)
  2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
                   ` (9 preceding siblings ...)
  2023-06-03 13:46 ` [igt-dev] ✓ Fi.CI.IGT: success for kms: Run tiled display tests on any set of connectors (rev3) Patchwork
@ 2023-06-03 16:46 ` Patchwork
  10 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2023-06-03 16:46 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: igt-dev

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

== Series Details ==

Series: kms: Run tiled display tests on any set of connectors (rev4)
URL   : https://patchwork.freedesktop.org/series/96027/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13216_full -> IGTPW_9094_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

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

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

  Additional (1): shard-rkl0 

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@kms_tiled_display@basic-test-pattern (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][1] +1 similar issue
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-dg1-19/igt@kms_tiled_display@basic-test-pattern.html
    - {shard-tglu}:       NOTRUN -> [SKIP][2] +1 similar issue
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-tglu-9/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium (NEW):
    - {shard-rkl}:        NOTRUN -> [SKIP][3] +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-rkl-7/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html

  
#### Suppressed ####

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

  * igt@gem_exec_balancer@noheartbeat:
    - {shard-dg1}:        NOTRUN -> [SKIP][4]
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-dg1-17/igt@gem_exec_balancer@noheartbeat.html

  
New tests
---------

  New tests have been introduced between CI_DRM_13216_full and IGTPW_9094_full:

### New IGT tests (2) ###

  * igt@kms_tiled_display@basic-test-pattern:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_tiled_display@basic-test-pattern-with-chamelium:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  

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

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

### IGT changes ###

#### Issues hit ####

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

  * igt@gem_lmem_swapping@heavy-verify-random-ccs:
    - shard-apl:          NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#4613]) +2 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl4/igt@gem_lmem_swapping@heavy-verify-random-ccs.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-apl:          [PASS][8] -> [ABORT][9] ([i915#5566])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-apl2/igt@gen9_exec_parse@allowed-all.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl1/igt@gen9_exec_parse@allowed-all.html

  * igt@i915_pipe_stress@stress-xrgb8888-untiled:
    - shard-apl:          NOTRUN -> [FAIL][10] ([i915#7036])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl6/igt@i915_pipe_stress@stress-xrgb8888-untiled.html

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#3886]) +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl4/igt@kms_ccs@pipe-b-crc-primary-rotation-180-y_tiled_gen12_mc_ccs.html

  * igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs:
    - shard-apl:          NOTRUN -> [SKIP][12] ([fdo#109271]) +66 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl3/igt@kms_ccs@pipe-d-bad-pixel-format-y_tiled_gen12_mc_ccs.html

  * igt@kms_cursor_crc@cursor-onscreen-32x32:
    - shard-apl:          NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#4579]) +4 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl7/igt@kms_cursor_crc@cursor-onscreen-32x32.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions:
    - shard-glk:          [PASS][14] -> [FAIL][15] ([i915#2346]) +1 similar issue
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html

  * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
    - shard-apl:          [PASS][16] -> [FAIL][17] ([i915#2346]) +1 similar issue
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1:
    - shard-apl:          [PASS][18] -> [FAIL][19] ([i915#79])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-apl3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl2/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-dp1.html

  * igt@kms_flip@wf_vblank-ts-check-interruptible@a-hdmi-a1:
    - shard-glk:          [PASS][20] -> [FAIL][21] ([i915#2122])
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-glk8/igt@kms_flip@wf_vblank-ts-check-interruptible@a-hdmi-a1.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-glk8/igt@kms_flip@wf_vblank-ts-check-interruptible@a-hdmi-a1.html

  * igt@kms_plane_scaling@plane-upscale-with-modifiers-factor-0-25@pipe-a-vga-1:
    - shard-snb:          NOTRUN -> [SKIP][22] ([fdo#109271]) +20 similar issues
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-snb5/igt@kms_plane_scaling@plane-upscale-with-modifiers-factor-0-25@pipe-a-vga-1.html

  * igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1:
    - shard-snb:          NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#4579]) +9 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-snb2/igt@kms_plane_scaling@planes-downscale-factor-0-5-unity-scaling@pipe-b-vga-1.html

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

  * igt@kms_tiled_display@basic-test-pattern (NEW):
    - shard-glk:          NOTRUN -> [SKIP][25] ([fdo#109271]) +2 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-glk4/igt@kms_tiled_display@basic-test-pattern.html

  * igt@kms_vblank@pipe-b-accuracy-idle:
    - shard-glk:          [PASS][26] -> [FAIL][27] ([i915#43])
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-glk1/igt@kms_vblank@pipe-b-accuracy-idle.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-glk6/igt@kms_vblank@pipe-b-accuracy-idle.html

  
#### Possible fixes ####

  * igt@gem_busy@close-race:
    - shard-apl:          [ABORT][28] ([i915#6016]) -> [PASS][29]
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-apl2/igt@gem_busy@close-race.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl6/igt@gem_busy@close-race.html

  * igt@gem_exec_fair@basic-none@vcs0:
    - {shard-rkl}:        [FAIL][30] ([i915#2842]) -> [PASS][31] +1 similar issue
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-rkl-3/igt@gem_exec_fair@basic-none@vcs0.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-rkl-4/igt@gem_exec_fair@basic-none@vcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-glk:          [FAIL][32] ([i915#2842]) -> [PASS][33] +2 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-glk1/igt@gem_exec_fair@basic-pace@vcs0.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-glk4/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_softpin@noreloc-s3:
    - shard-apl:          [ABORT][34] ([i915#180] / [i915#8213]) -> [PASS][35]
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-apl7/igt@gem_softpin@noreloc-s3.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-apl4/igt@gem_softpin@noreloc-s3.html

  * igt@i915_pm_rc6_residency@rc6-idle@bcs0:
    - {shard-dg1}:        [FAIL][36] ([i915#3591]) -> [PASS][37]
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-dg1-14/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-dg1-19/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html

  * igt@i915_pm_rpm@dpms-mode-unset-lpsp:
    - {shard-rkl}:        [SKIP][38] ([i915#1397]) -> [PASS][39]
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-rkl-2/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-rkl-7/igt@i915_pm_rpm@dpms-mode-unset-lpsp.html

  * igt@i915_selftest@live@gt_heartbeat:
    - shard-glk:          [DMESG-FAIL][40] ([i915#5334]) -> [PASS][41]
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-glk7/igt@i915_selftest@live@gt_heartbeat.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-glk6/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_suspend@basic-s3-without-i915:
    - {shard-rkl}:        [FAIL][42] ([fdo#103375]) -> [PASS][43]
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-rkl-6/igt@i915_suspend@basic-s3-without-i915.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-rkl-7/igt@i915_suspend@basic-s3-without-i915.html

  * igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip:
    - {shard-rkl}:        [FAIL][44] ([i915#3743]) -> [PASS][45]
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-rkl-7/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-rkl-4/igt@kms_big_fb@y-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html

  * igt@kms_cursor_legacy@single-move@pipe-b:
    - {shard-dg1}:        [INCOMPLETE][46] ([i915#8011] / [i915#8347]) -> [PASS][47]
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-dg1-19/igt@kms_cursor_legacy@single-move@pipe-b.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-dg1-17/igt@kms_cursor_legacy@single-move@pipe-b.html

  * igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1:
    - shard-snb:          [FAIL][48] ([i915#79]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-snb1/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-snb1/igt@kms_flip@flip-vs-expired-vblank@a-hdmi-a1.html

  
#### Warnings ####

  * igt@kms_hdmi_inject@inject-audio:
    - shard-snb:          [SKIP][50] ([fdo#109271]) -> [FAIL][51] ([IGT#3])
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13216/shard-snb2/igt@kms_hdmi_inject@inject-audio.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/shard-snb2/igt@kms_hdmi_inject@inject-audio.html

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

  [IGT#3]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/issues/3
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109283]: https://bugs.freedesktop.org/show_bug.cgi?id=109283
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [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
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [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#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [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#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#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#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [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#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
  [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#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#43]: https://gitlab.freedesktop.org/drm/intel/issues/43
  [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
  [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
  [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
  [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#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
  [i915#6016]: https://gitlab.freedesktop.org/drm/intel/issues/6016
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [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#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7036]: https://gitlab.freedesktop.org/drm/intel/issues/7036
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [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#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
  [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213
  [i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347
  [i915#8381]: https://gitlab.freedesktop.org/drm/intel/issues/8381
  [i915#8411]: https://gitlab.freedesktop.org/drm/intel/issues/8411
  [i915#8414]: https://gitlab.freedesktop.org/drm/intel/issues/8414
  [i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502


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

  * CI: CI-20190529 -> None
  * IGT: IGT_7317 -> IGTPW_9094
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_13216: 192fe33ac4d87d2bd3bd7c677f6ff48588ec0990 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_9094: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9094/index.html
  IGT_7317: c902b72df45aa49faa38205bc5be3c748d33a3e0 @ 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_9094/index.html

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

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

end of thread, other threads:[~2023-06-03 16:46 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-01 13:08 [igt-dev] [PATCH i-g-t v2 0/7] kms: Run tiled display tests on any set of connectors Ville Syrjala
2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 1/7] tests/kms_tiled_display: Get rid of DP stuff Ville Syrjala
2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 2/7] tests/kms_tiled_display: Make basic_test() static Ville Syrjala
2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 3/7] tests/kms_tiled_display: Cleanup the chamelium ifdefs Ville Syrjala
2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 4/7] tests/kms_tiled_display: Replace the igt_display pointer with a struct Ville Syrjala
2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 5/7] tests/kms_tiled_display: Limit the difference in the timestamps to one scanline Ville Syrjala
2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 6/7] lib/edid: Add support for making DisplayID tile blocks Ville Syrjala
2023-06-01 14:29   ` Juha-Pekka Heikkila
2023-06-01 16:13   ` [igt-dev] [PATCH i-g-t v3 " Ville Syrjala
2023-06-01 16:43     ` Juha-Pekka Heikkila
2023-06-01 13:08 ` [igt-dev] [PATCH i-g-t v2 7/7] tests/kms_tiled_display: Override the EDID to fake some tiles Ville Syrjala
2023-06-01 14:29   ` Juha-Pekka Heikkila
2023-06-01 16:14     ` Ville Syrjälä
2023-06-01 15:28 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Run tiled display tests on any set of connectors (rev3) Patchwork
2023-06-01 16:56 ` [igt-dev] ✓ Fi.CI.BAT: success for kms: Run tiled display tests on any set of connectors (rev4) Patchwork
2023-06-03 13:46 ` [igt-dev] ✓ Fi.CI.IGT: success for kms: Run tiled display tests on any set of connectors (rev3) Patchwork
2023-06-03 16:46 ` [igt-dev] ✓ Fi.CI.IGT: success for kms: Run tiled display tests on any set of connectors (rev4) 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.