Skip to contentSkip to conversation

tests/kms_atomic_multi: new test

RFC PATCH In review Simon Ser 4 participants 7 messages Sep 5, 2019 – Sep 6, 2019 Arm/Amlogic Meson SoC support

lore
Share & tools
lore

Simon Ser

author
#0 lore raw

RFC PATCH 1/1 tests/kms_atomic_multi: new test

This test performs a single atomic commit on multiple CRTCs at once. The goal is to check that a page-flip event for each CRTC is received.

I chose not to integrate this to an existing test, because kms_atomic is basically a single function with lots of options. Integrating this test to kms_atomic would mix up these two and make it difficult to understand the test.

---

This is basically the test I wrote while reviewing the kms_dp_tiled_display series [1]. I'm sending it as an RFC to know if there's any interest in having it merged.

[1]: https://lists.freedesktop.org/archives/igt-dev/2019-August/015724.html

 tests/Makefile.sources   |   1 +
 tests/kms_atomic_multi.c | 149 +++++++++++++++++++++++++++++++++++++++
 tests/meson.build        |   1 +
 3 files changed, 151 insertions(+)
 create mode 100644 tests/kms_atomic_multi.c
tests/Makefile.sources +1 -0
index c02e4d9489f2..e08968d2b0fc 100644
@@ -29,6 +29,7 @@ TESTS_progs = \
 	kms_atomic \
 	kms_atomic_interruptible \
 	kms_atomic_transition \
+	kms_atomic_multi \
 	kms_available_modes_crc \
 	kms_big_fb \
 	kms_busy \
tests/kms_atomic_multi.c new file +149 -0

149 lines not on this page · raw message

tests/meson.build +1 -0
index a7b2b3221304..df00ab4a2f81 100644
@@ -14,6 +14,7 @@ test_progs = [
 	'kms_atomic',
 	'kms_atomic_interruptible',
 	'kms_atomic_transition',
+	'kms_atomic_multi',
 	'kms_available_modes_crc',
 	'kms_big_fb',
 	'kms_busy',

--
2.23.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#1 lore raw
Quoted 102 lines · Simon Ser

This test performs a single atomic commit on multiple CRTCs at once. The goal is to check that a page-flip event for each CRTC is received.

I chose not to integrate this to an existing test, because kms_atomic is basically a single function with lots of options. Integrating this test to kms_atomic would mix up these two and make it difficult to understand the test.

---

This is basically the test I wrote while reviewing the kms_dp_tiled_display series [1]. I'm sending it as an RFC to know if there's any interest in having it merged.

[1]: https://lists.freedesktop.org/archives/igt-dev/2019-August/015724.html

 tests/Makefile.sources   |   1 +
 tests/kms_atomic_multi.c | 149 +++++++++++++++++++++++++++++++++++++++
 tests/meson.build        |   1 +
 3 files changed, 151 insertions(+)
 create mode 100644 tests/kms_atomic_multi.c
tests/Makefile.sources +1 -0
index c02e4d9489f2..e08968d2b0fc 100644
@@ -29,6 +29,7 @@ TESTS_progs = \
 	kms_atomic \
 	kms_atomic_interruptible \
 	kms_atomic_transition \
+	kms_atomic_multi \
 	kms_available_modes_crc \
 	kms_big_fb \
 	kms_busy \
tests/kms_atomic_multi.c new file +62 -0
new file mode 100644
index 000000000000..96212ab9a1e6
@@ -0,0 +1,149 @@
+/*
+ * Copyright © 2018 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <poll.h>
+#include <drm_mode.h>
+#include <drm_fourcc.h>
+#include "igt.h"
+
+struct test_connector {
+	igt_output_t *output;
+	struct igt_fb fb;
+	drmModeConnectorPtr connector;
+	enum pipe pipe;
+	bool page_flip;
+};
+
+struct test_data {
+	int drm_fd;
+	igt_display_t *display;
+	struct test_connector conns[2];
+};
+
+static void create_fb(struct test_data *data, struct test_connector *conn)
+{
+	igt_plane_t *primary;
+	drmModeModeInfo *mode;
+
+	mode = igt_output_get_mode(conn->output);
+	igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
+			      DRM_FORMAT_XBGR8888, LOCAL_DRM_FORMAT_MOD_NONE,
+			      &conn->fb);
+
+	primary = igt_output_get_plane_type(conn->output, DRM_PLANE_TYPE_PRIMARY);
+	igt_assert(primary);
+
+	igt_plane_set_fb(primary, &conn->fb);
+}
+
+static void pick_2_outputs(struct test_data *data)
+{
+	igt_output_t *output;
+	struct test_connector *conn;

tests/kms_atomic_multi.c line 72

Quoted 10 lines
tests/kms_atomic_multi.c new file +10 -0
+	size_t i;
+
+	i = 0;
+	for_each_connected_output(data->display, output) {
+		if (i >= 2)
+			break;
+
+		conn = &data->conns[i];
+		conn->output = output;
+		conn->pipe = i;

That assumes every output can be driven by any pipe. Using for_each_valid_output_on_pipe() should avoid that assumption.

Quoted 7 lines
tests/kms_atomic_multi.c new file +7 -0
+		igt_output_set_pipe(output, conn->pipe);
+		i++;
+	}
+
+	igt_skip_on(i < 2);
+	/* TODO: test_only commit, skip on failure */
+	igt_display_commit_atomic(data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);

tests/kms_atomic_multi.c line 89

Quoted 10 lines
tests/kms_atomic_multi.c new file +10 -0
+}
+
+static void page_flip_handler(int fd, unsigned seq, unsigned tv_sec,
+			      unsigned tv_usec, unsigned crtc_id, void *_data)
+{
+	struct test_data *data = _data;
+	struct test_connector *conn;
+	size_t i;
+
+	for (i = 0; i < sizeof(data->conns) / sizeof(data->conns[0]); i++) {

ARRAY_SIZE()

Quoted 28 lines
tests/kms_atomic_multi.c new file +28 -0
+		conn = &data->conns[i];
+		if (data->display->pipes[conn->pipe].crtc_id == crtc_id) {
+			igt_assert_f(!conn->page_flip,
+				     "Got two page-flips for CRTC %u\n",
+				     crtc_id);
+			conn->page_flip = true;
+			return;
+		}
+	}
+
+	igt_assert_f(0, "Got page-flip event for unexpected CRTC %u\n", crtc_id);
+}
+
+igt_main
+{
+	int ret;
+	struct test_data data = {0};
+	igt_display_t display;
+	struct pollfd pfd = {0};
+	drmEventContext drm_event = {0};
+	int i;
+
+	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);
+		igt_require(display.is_atomic);

tests/kms_atomic_multi.c line 127

Quoted 10 lines
tests/kms_atomic_multi.c new file +10 -0
+		data.display = &display;
+
+		pfd.fd = data.drm_fd;
+		pfd.events = POLLIN;
+
+		drm_event.version = 3;
+		drm_event.page_flip_handler2 = page_flip_handler;
+	}
+
+	igt_subtest("2x-flip") {

Are we planning more subtests? I guess 1x,2x,3x,... might be nice?

tests/kms_atomic_multi.c line 140

Quoted 13 lines
tests/kms_atomic_multi.c new file +13 -0
+		pick_2_outputs(&data);
+
+		create_fb(&data, &data.conns[0]);
+		create_fb(&data, &data.conns[1]);
+
+		igt_display_commit_atomic(data.display, DRM_MODE_ATOMIC_NONBLOCK |
+					  DRM_MODE_PAGE_FLIP_EVENT, &data);
+
+		/* TODO: handle two events sent at once */
+		for (i = 0; i < 2; i++) {
+			ret = poll(&pfd, 1, 1000);
+			igt_assert(ret == 1);
+			drmHandleEvent(data.drm_fd, &drm_event);

Not verifying that we didn't get too many events?

I guess it might also be nice to have different subtests for page flips and full modesets.

I guess there is no generic way to force the kernel to modeset a crtc we didn't explicitly include in the request, so can't really test that scenario :(

Quoted 28 lines
tests/kms_atomic_multi.c new file +9 -0
+		}
+	}
+
+	igt_fixture {
+		close(data.drm_fd);
+		kmstest_restore_vt_mode();
+		igt_display_fini(data.display);
+	}
+}
tests/meson.build +1 -1
index a7b2b3221304..df00ab4a2f81 100644
@@ -14,6 +14,7 @@ test_progs = [
 	'kms_atomic',
 	'kms_atomic_interruptible',
 	'kms_atomic_transition',
+	'kms_atomic_multi',
 	'kms_available_modes_crc',
 	'kms_big_fb',
 	'kms_busy',
--

2.23.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

Signature · 6 lines
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
author
#2 lore raw

Thanks for the review!

Quoted 170 lines · Ville Syrjälä
Quoted 102 lines · Simon Ser

This test performs a single atomic commit on multiple CRTCs at once. The goal is to check that a page-flip event for each CRTC is received.

I chose not to integrate this to an existing test, because kms_atomic is basically a single function with lots of options. Integrating this test to kms_atomic would mix up these two and make it difficult to understand the test.

---

This is basically the test I wrote while reviewing the kms_dp_tiled_display series [1]. I'm sending it as an RFC to know if there's any interest in having it merged.

[1]: https://lists.freedesktop.org/archives/igt-dev/2019-August/015724.html

 tests/Makefile.sources   |   1 +
 tests/kms_atomic_multi.c | 149 +++++++++++++++++++++++++++++++++++++++
 tests/meson.build        |   1 +
 3 files changed, 151 insertions(+)
 create mode 100644 tests/kms_atomic_multi.c
tests/Makefile.sources +1 -0
index c02e4d9489f2..e08968d2b0fc 100644
@@ -29,6 +29,7 @@ TESTS_progs = \
 	kms_atomic \
 	kms_atomic_interruptible \
 	kms_atomic_transition \
+	kms_atomic_multi \
 	kms_available_modes_crc \
 	kms_big_fb \
 	kms_busy \
tests/kms_atomic_multi.c new file +62 -0
new file mode 100644
index 000000000000..96212ab9a1e6
@@ -0,0 +1,149 @@
+/*
+ * Copyright © 2018 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <poll.h>
+#include <drm_mode.h>
+#include <drm_fourcc.h>
+#include "igt.h"
+
+struct test_connector {
+	igt_output_t *output;
+	struct igt_fb fb;
+	drmModeConnectorPtr connector;
+	enum pipe pipe;
+	bool page_flip;
+};
+
+struct test_data {
+	int drm_fd;
+	igt_display_t *display;
+	struct test_connector conns[2];
+};
+
+static void create_fb(struct test_data *data, struct test_connector *conn)
+{
+	igt_plane_t *primary;
+	drmModeModeInfo *mode;
+
+	mode = igt_output_get_mode(conn->output);
+	igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
+			      DRM_FORMAT_XBGR8888, LOCAL_DRM_FORMAT_MOD_NONE,
+			      &conn->fb);
+
+	primary = igt_output_get_plane_type(conn->output, DRM_PLANE_TYPE_PRIMARY);
+	igt_assert(primary);
+
+	igt_plane_set_fb(primary, &conn->fb);
+}
+
+static void pick_2_outputs(struct test_data *data)
+{
+	igt_output_t *output;
+	struct test_connector *conn;

tests/kms_atomic_multi.c line 72

Quoted 10 lines
tests/kms_atomic_multi.c new file +10 -0
+	size_t i;
+
+	i = 0;
+	for_each_connected_output(data->display, output) {
+		if (i >= 2)
+			break;
+
+		conn = &data->conns[i];
+		conn->output = output;
+		conn->pipe = i;

That assumes every output can be driven by any pipe. Using for_each_valid_output_on_pipe() should avoid that assumption.

Quoted 7 lines
tests/kms_atomic_multi.c new file +7 -0
+		igt_output_set_pipe(output, conn->pipe);
+		i++;
+	}
+
+	igt_skip_on(i < 2);
+	/* TODO: test_only commit, skip on failure */
+	igt_display_commit_atomic(data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);

tests/kms_atomic_multi.c line 89

Quoted 10 lines
tests/kms_atomic_multi.c new file +10 -0
+}
+
+static void page_flip_handler(int fd, unsigned seq, unsigned tv_sec,
+			      unsigned tv_usec, unsigned crtc_id, void *_data)
+{
+	struct test_data *data = _data;
+	struct test_connector *conn;
+	size_t i;
+
+	for (i = 0; i < sizeof(data->conns) / sizeof(data->conns[0]); i++) {

ARRAY_SIZE()

Quoted 32 lines
tests/kms_atomic_multi.c new file +32 -0
+		conn = &data->conns[i];
+		if (data->display->pipes[conn->pipe].crtc_id == crtc_id) {
+			igt_assert_f(!conn->page_flip,
+				     "Got two page-flips for CRTC %u\n",
+				     crtc_id);
+			conn->page_flip = true;
+			return;
+		}
+	}
+
+	igt_assert_f(0, "Got page-flip event for unexpected CRTC %u\n", crtc_id);
+}
+
+igt_main
+{
+	int ret;
+	struct test_data data = {0};
+	igt_display_t display;
+	struct pollfd pfd = {0};
+	drmEventContext drm_event = {0};
+	int i;
+
+	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);
+		igt_require(display.is_atomic);
+		data.display = &display;
+
+		pfd.fd = data.drm_fd;
+		pfd.events = POLLIN;
Quoted 8 lines

tests/kms_atomic_multi.c line 127

Quoted 6 lines
tests/kms_atomic_multi.c new file +6 -0
+
+		drm_event.version = 3;
+		drm_event.page_flip_handler2 = page_flip_handler;
+	}
+
+	igt_subtest("2x-flip") {

Are we planning more subtests? I guess 1x,2x,3x,... might be nice?

Indeed

Quoted 7 lines
Quoted 7 lines
tests/kms_atomic_multi.c new file +7 -0
+		pick_2_outputs(&data);
+
+		create_fb(&data, &data.conns[0]);
+		create_fb(&data, &data.conns[1]);
+
+		igt_display_commit_atomic(data.display, DRM_MODE_ATOMIC_NONBLOCK |
+					  DRM_MODE_PAGE_FLIP_EVENT, &data);
Quoted 8 lines

tests/kms_atomic_multi.c line 140

Quoted 6 lines
tests/kms_atomic_multi.c new file +6 -0
+
+		/* TODO: handle two events sent at once */
+		for (i = 0; i < 2; i++) {
+			ret = poll(&pfd, 1, 1000);
+			igt_assert(ret == 1);
+			drmHandleEvent(data.drm_fd, &drm_event);

Not verifying that we didn't get too many events?

This is done in page_flip_handler

Quoted 2 lines

I guess it might also be nice to have different subtests for page flips and full modesets.

Yeah, I plan on expanding this test with more subtests

Quoted 3 lines

I guess there is no generic way to force the kernel to modeset a crtc we didn't explicitly include in the request, so can't really test that scenario :(

Hmm, not sure I get this scenario. How could we modeset a CRTC not included in the atomic request? Can you elaborate?

Quoted 24 lines
Quoted 24 lines
tests/kms_atomic_multi.c new file +9 -0
+		}
+	}
+
+	igt_fixture {
+		close(data.drm_fd);
+		kmstest_restore_vt_mode();
+		igt_display_fini(data.display);
+	}
+}
tests/meson.build +1 -1
index a7b2b3221304..df00ab4a2f81 100644
@@ -14,6 +14,7 @@ test_progs = [
 	'kms_atomic',
 	'kms_atomic_interruptible',
 	'kms_atomic_transition',
+	'kms_atomic_multi',
 	'kms_available_modes_crc',
 	'kms_big_fb',
 	'kms_busy',
--

2.23.0

Quoted 4 lines
Quoted 4 lines

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#3 lore raw
Quoted 205 lines · Simon

Thanks for the review!

Quoted 170 lines · Ville Syrjälä
Quoted 102 lines · Simon Ser

This test performs a single atomic commit on multiple CRTCs at once. The goal is to check that a page-flip event for each CRTC is received.

I chose not to integrate this to an existing test, because kms_atomic is basically a single function with lots of options. Integrating this test to kms_atomic would mix up these two and make it difficult to understand the test.

---

This is basically the test I wrote while reviewing the kms_dp_tiled_display series [1]. I'm sending it as an RFC to know if there's any interest in having it merged.

[1]: https://lists.freedesktop.org/archives/igt-dev/2019-August/015724.html

 tests/Makefile.sources   |   1 +
 tests/kms_atomic_multi.c | 149 +++++++++++++++++++++++++++++++++++++++
 tests/meson.build        |   1 +
 3 files changed, 151 insertions(+)
 create mode 100644 tests/kms_atomic_multi.c
tests/Makefile.sources +1 -0
index c02e4d9489f2..e08968d2b0fc 100644
@@ -29,6 +29,7 @@ TESTS_progs = \
 	kms_atomic \
 	kms_atomic_interruptible \
 	kms_atomic_transition \
+	kms_atomic_multi \
 	kms_available_modes_crc \
 	kms_big_fb \
 	kms_busy \
tests/kms_atomic_multi.c new file +62 -0
new file mode 100644
index 000000000000..96212ab9a1e6
@@ -0,0 +1,149 @@
+/*
+ * Copyright © 2018 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#include <poll.h>
+#include <drm_mode.h>
+#include <drm_fourcc.h>
+#include "igt.h"
+
+struct test_connector {
+	igt_output_t *output;
+	struct igt_fb fb;
+	drmModeConnectorPtr connector;
+	enum pipe pipe;
+	bool page_flip;
+};
+
+struct test_data {
+	int drm_fd;
+	igt_display_t *display;
+	struct test_connector conns[2];
+};
+
+static void create_fb(struct test_data *data, struct test_connector *conn)
+{
+	igt_plane_t *primary;
+	drmModeModeInfo *mode;
+
+	mode = igt_output_get_mode(conn->output);
+	igt_create_pattern_fb(data->drm_fd, mode->hdisplay, mode->vdisplay,
+			      DRM_FORMAT_XBGR8888, LOCAL_DRM_FORMAT_MOD_NONE,
+			      &conn->fb);
+
+	primary = igt_output_get_plane_type(conn->output, DRM_PLANE_TYPE_PRIMARY);
+	igt_assert(primary);
+
+	igt_plane_set_fb(primary, &conn->fb);
+}
+
+static void pick_2_outputs(struct test_data *data)
+{
+	igt_output_t *output;
+	struct test_connector *conn;

tests/kms_atomic_multi.c line 72

Quoted 10 lines
tests/kms_atomic_multi.c new file +10 -0
+	size_t i;
+
+	i = 0;
+	for_each_connected_output(data->display, output) {
+		if (i >= 2)
+			break;
+
+		conn = &data->conns[i];
+		conn->output = output;
+		conn->pipe = i;

That assumes every output can be driven by any pipe. Using for_each_valid_output_on_pipe() should avoid that assumption.

Quoted 7 lines
tests/kms_atomic_multi.c new file +7 -0
+		igt_output_set_pipe(output, conn->pipe);
+		i++;
+	}
+
+	igt_skip_on(i < 2);
+	/* TODO: test_only commit, skip on failure */
+	igt_display_commit_atomic(data->display, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);

tests/kms_atomic_multi.c line 89

Quoted 10 lines
tests/kms_atomic_multi.c new file +10 -0
+}
+
+static void page_flip_handler(int fd, unsigned seq, unsigned tv_sec,
+			      unsigned tv_usec, unsigned crtc_id, void *_data)
+{
+	struct test_data *data = _data;
+	struct test_connector *conn;
+	size_t i;
+
+	for (i = 0; i < sizeof(data->conns) / sizeof(data->conns[0]); i++) {

ARRAY_SIZE()

Quoted 32 lines
tests/kms_atomic_multi.c new file +32 -0
+		conn = &data->conns[i];
+		if (data->display->pipes[conn->pipe].crtc_id == crtc_id) {
+			igt_assert_f(!conn->page_flip,
+				     "Got two page-flips for CRTC %u\n",
+				     crtc_id);
+			conn->page_flip = true;
+			return;
+		}
+	}
+
+	igt_assert_f(0, "Got page-flip event for unexpected CRTC %u\n", crtc_id);
+}
+
+igt_main
+{
+	int ret;
+	struct test_data data = {0};
+	igt_display_t display;
+	struct pollfd pfd = {0};
+	drmEventContext drm_event = {0};
+	int i;
+
+	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);
+		igt_require(display.is_atomic);
+		data.display = &display;
+
+		pfd.fd = data.drm_fd;
+		pfd.events = POLLIN;
Quoted 8 lines

tests/kms_atomic_multi.c line 127

Quoted 6 lines
tests/kms_atomic_multi.c new file +6 -0
+
+		drm_event.version = 3;
+		drm_event.page_flip_handler2 = page_flip_handler;
+	}
+
+	igt_subtest("2x-flip") {

Are we planning more subtests? I guess 1x,2x,3x,... might be nice?

Indeed

Quoted 7 lines
Quoted 7 lines
tests/kms_atomic_multi.c new file +7 -0
+		pick_2_outputs(&data);
+
+		create_fb(&data, &data.conns[0]);
+		create_fb(&data, &data.conns[1]);
+
+		igt_display_commit_atomic(data.display, DRM_MODE_ATOMIC_NONBLOCK |
+					  DRM_MODE_PAGE_FLIP_EVENT, &data);
Quoted 8 lines

tests/kms_atomic_multi.c line 140

Quoted 6 lines
tests/kms_atomic_multi.c new file +6 -0
+
+		/* TODO: handle two events sent at once */
+		for (i = 0; i < 2; i++) {
+			ret = poll(&pfd, 1, 1000);
+			igt_assert(ret == 1);
+			drmHandleEvent(data.drm_fd, &drm_event);

Not verifying that we didn't get too many events?

This is done in page_flip_handler

Quoted 2 lines

I guess it might also be nice to have different subtests for page flips and full modesets.

Quoted 8 lines

Yeah, I plan on expanding this test with more subtests

Quoted 3 lines

I guess there is no generic way to force the kernel to modeset a crtc we didn't explicitly include in the request, so can't really test that scenario :(

Hmm, not sure I get this scenario. How could we modeset a CRTC not included in the atomic request? Can you elaborate?

Current scenarios are:
- cdclk frequency needs to be changed
- ran out of FDI bandwidth on IVB and need to reduce the other pipe's contribution

Future scenarios I want to get fixed:
- ran out of MST link bandwidth and need to reduce other pipes' contributions

Quoted 29 lines
Quoted 29 lines
Quoted 29 lines
tests/kms_atomic_multi.c new file +9 -0
+		}
+	}
+
+	igt_fixture {
+		close(data.drm_fd);
+		kmstest_restore_vt_mode();
+		igt_display_fini(data.display);
+	}
+}
tests/meson.build +1 -1
index a7b2b3221304..df00ab4a2f81 100644
@@ -14,6 +14,7 @@ test_progs = [
 	'kms_atomic',
 	'kms_atomic_interruptible',
 	'kms_atomic_transition',
+	'kms_atomic_multi',
 	'kms_available_modes_crc',
 	'kms_big_fb',
 	'kms_busy',
--

2.23.0

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

Signature · 6 lines
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#4 lore raw

[igt-dev] ✓ Fi.CI.BAT: success for tests/kms_atomic_multi: new test

In reply to Simon Ser
== Series Details ==

== Series Details ==

Series: tests/kms_atomic_multi: new test
URL : https://patchwork.freedesktop.org/series/66288/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6838 -> IGTPW_3422
====================================================

Summary
-------

**SUCCESS**

No regressions found.

External URL: https://patchwork.freedesktop.org/api/1.0/series/66288/revisions/1/mbox/

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

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

### IGT changes ###

#### Issues hit ####

* igt@gem_ctx_switch@legacy-render:
- fi-bxt-dsi: [PASS][1] -> [INCOMPLETE][2] ([fdo#103927] / [fdo#111381])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/fi-bxt-dsi/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-bxt-dsi/igt@[email protected]

#### Possible fixes ####

* igt@gem_mmap_gtt@basic:
- fi-glk-dsi: [INCOMPLETE][3] ([fdo#103359] / [k.org#198133]) -> [PASS][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/fi-glk-dsi/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-glk-dsi/igt@[email protected]

* igt@kms_busy@basic-flip-c:
- fi-skl-6770hq: [SKIP][5] ([fdo#109271] / [fdo#109278]) -> [PASS][6] +2 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/fi-skl-6770hq/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-skl-6770hq/igt@[email protected]

* igt@kms_chamelium@dp-edid-read:
- fi-kbl-7500u: [WARN][7] ([fdo#109483]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/fi-kbl-7500u/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-kbl-7500u/igt@[email protected]

* igt@kms_flip@basic-flip-vs-dpms:
- fi-skl-6770hq: [SKIP][9] ([fdo#109271]) -> [PASS][10] +23 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/fi-skl-6770hq/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-skl-6770hq/igt@[email protected]

* igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy: [DMESG-WARN][11] ([fdo#102614]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/fi-hsw-peppy/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-hsw-peppy/igt@[email protected]
- fi-icl-u2: [FAIL][13] ([fdo#103167]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/fi-icl-u2/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-icl-u2/igt@[email protected]

* igt@vgem_basic@debugfs:
- fi-icl-u3: [DMESG-WARN][15] ([fdo#107724]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/fi-icl-u3/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-icl-u3/igt@[email protected]

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

[fdo#102614]: https://bugs.freedesktop.org/show_bug.cgi?id=102614
[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109483]: https://bugs.freedesktop.org/show_bug.cgi?id=109483
[fdo#111381]: https://bugs.freedesktop.org/show_bug.cgi?id=111381
[k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133

Participating hosts (53 -> 46)
------------------------------

Additional (1): fi-pnv-d510
Missing (8): fi-ilk-m540 fi-tgl-u fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus

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

* CI: CI-20190529 -> None
* IGT: IGT_5171 -> IGTPW_3422

CI-20190529: 20190529
CI_DRM_6838: 8e907b7591b620dba402c7ada493a31ca0320c99 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_3422: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/
IGT_5171: 1911564805fe454919e8a5846534a0c1ef376a33 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Testlist changes ==

+igt@kms_atomic_multi@2x-flip

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#5 lore raw

[igt-dev] ✓ Fi.CI.IGT: success for tests/kms_atomic_multi: new test

In reply to Simon Ser
== Series Details ==

== Series Details ==

Series: tests/kms_atomic_multi: new test
URL : https://patchwork.freedesktop.org/series/66288/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6838_full -> IGTPW_3422_full
====================================================

Summary
-------

**SUCCESS**

No regressions found.

External URL: https://patchwork.freedesktop.org/api/1.0/series/66288/revisions/1/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

* {igt@kms_atomic_multi@2x-flip} (NEW):
- shard-iclb: NOTRUN -> [SKIP][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb4/igt@[email protected]

New tests
---------

New tests have been introduced between CI_DRM_6838_full and IGTPW_3422_full:

### New IGT tests (1) ###

* igt@kms_atomic_multi@2x-flip:
- Statuses : 2 pass(s) 4 skip(s)
- Exec time: [0.0, 0.26] s

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

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

### IGT changes ###

#### Issues hit ####

* igt@gem_ctx_shared@q-in-order-bsd2:
- shard-iclb: [PASS][2] -> [SKIP][3] ([fdo#109276]) +13 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb1/igt@[email protected]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb5/igt@[email protected]

* igt@gem_eio@suspend:
- shard-hsw: [PASS][4] -> [FAIL][5] ([fdo#111550])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw8/igt@[email protected]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw7/igt@[email protected]

* igt@gem_exec_schedule@preempt-other-bsd:
- shard-iclb: [PASS][6] -> [SKIP][7] ([fdo#111325]) +6 similar issues
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb8/igt@[email protected]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb1/igt@[email protected]

* igt@gem_exec_suspend@basic-s3:
- shard-hsw: [PASS][8] -> [FAIL][9] ([fdo#103375]) +4 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw7/igt@[email protected]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw7/igt@[email protected]

* igt@gem_workarounds@suspend-resume:
- shard-apl: [PASS][10] -> [DMESG-WARN][11] ([fdo#108566]) +6 similar issues
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-apl8/igt@[email protected]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl4/igt@[email protected]

* igt@i915_pm_rpm@gem-pread:
- shard-hsw: [PASS][12] -> [FAIL][13] ([fdo#111548]) +7 similar issues
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw7/igt@[email protected]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw7/igt@[email protected]

* igt@kms_cursor_legacy@cursor-vs-flip-atomic:
- shard-hsw: [PASS][14] -> [FAIL][15] ([fdo#103355])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw8/igt@[email protected]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw1/igt@[email protected]

* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-glk: [PASS][16] -> [FAIL][17] ([fdo#105363])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-glk5/igt@[email protected]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-glk3/igt@[email protected]

* igt@kms_flip@flip-vs-suspend:
- shard-iclb: [PASS][18] -> [INCOMPLETE][19] ([fdo#107713] / [fdo#109507])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb3/igt@[email protected]
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb3/igt@[email protected]

* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
- shard-iclb: [PASS][20] -> [FAIL][21] ([fdo#103167]) +1 similar issue
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

* igt@kms_psr@psr2_cursor_mmap_cpu:
- shard-iclb: [PASS][22] -> [SKIP][23] ([fdo#109441])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb8/igt@kms_psr@psr2_cursor_mmap_cpu.html

* igt@kms_setmode@basic:
- shard-hsw: [PASS][24] -> [FAIL][25] ([fdo#99912])
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw7/igt@[email protected]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw4/igt@[email protected]

* igt@perf_pmu@render-node-busy-rcs0:
- shard-apl: [PASS][26] -> [FAIL][27] ([fdo#111545])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-apl3/igt@[email protected]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl1/igt@[email protected]

#### Possible fixes ####

* igt@gem_ctx_shared@exec-single-timeline-bsd:
- shard-iclb: [SKIP][28] ([fdo#110841]) -> [PASS][29]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb1/igt@[email protected]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb8/igt@[email protected]

* igt@gem_exec_async@concurrent-writes-bsd:
- shard-iclb: [SKIP][30] ([fdo#111325]) -> [PASS][31] +2 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb4/igt@[email protected]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb6/igt@[email protected]

* igt@gem_exec_schedule@reorder-wide-bsd1:
- shard-iclb: [SKIP][32] ([fdo#109276]) -> [PASS][33] +12 similar issues
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb6/igt@[email protected]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb2/igt@[email protected]

* igt@i915_pm_rpm@modeset-stress-extra-wait:
- shard-hsw: [FAIL][34] ([fdo#111548]) -> [PASS][35] +4 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw2/igt@[email protected]
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw2/igt@[email protected]

* igt@kms_big_fb@x-tiled-16bpp-rotate-180:
- shard-apl: [INCOMPLETE][36] ([fdo#103927]) -> [PASS][37] +3 similar issues
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-apl7/igt@[email protected]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl7/igt@[email protected]

* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move:
- shard-iclb: [FAIL][38] ([fdo#103167]) -> [PASS][39] +3 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb7/igt@[email protected]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb6/igt@[email protected]

* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
- shard-snb: [FAIL][40] ([fdo#103375]) -> [PASS][41] +2 similar issues
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-snb7/igt@[email protected]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-snb2/igt@[email protected]

* igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
- shard-hsw: [FAIL][42] ([fdo#103375]) -> [PASS][43] +4 similar issues
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw2/igt@[email protected]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw6/igt@[email protected]

* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- shard-kbl: [INCOMPLETE][44] ([fdo#103665]) -> [PASS][45]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-kbl3/igt@[email protected]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-kbl1/igt@[email protected]
- shard-apl: [DMESG-WARN][46] ([fdo#108566]) -> [PASS][47] +2 similar issues
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-apl4/igt@[email protected]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl4/igt@[email protected]

* igt@kms_plane_alpha_blend@pipe-c-coverage-7efc:
- shard-iclb: [INCOMPLETE][48] ([fdo#107713]) -> [PASS][49] +1 similar issue
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb7/igt@[email protected]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb6/igt@[email protected]

* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [SKIP][50] ([fdo#109642] / [fdo#111068]) -> [PASS][51]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb5/igt@[email protected]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb2/igt@[email protected]

* igt@kms_psr@psr2_cursor_render:
- shard-iclb: [SKIP][52] ([fdo#109441]) -> [PASS][53]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb8/igt@kms_psr@psr2_cursor_render.html
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb2/igt@kms_psr@psr2_cursor_render.html

* igt@kms_setmode@basic:
- shard-kbl: [FAIL][54] ([fdo#99912]) -> [PASS][55]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-kbl2/igt@[email protected]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-kbl7/igt@[email protected]

* igt@perf_pmu@busy-idle-vcs0:
- shard-apl: [FAIL][56] ([fdo#111545]) -> [PASS][57] +1 similar issue
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-apl3/igt@[email protected]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl5/igt@[email protected]

#### Warnings ####

* igt@gem_mocs_settings@mocs-settings-bsd2:
- shard-iclb: [SKIP][58] ([fdo#109276]) -> [FAIL][59] ([fdo#111330]) +1 similar issue
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-iclb6/igt@[email protected]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb2/igt@[email protected]

* igt@i915_pm_rpm@modeset-lpsp:
- shard-hsw: [FAIL][60] ([fdo#111548]) -> [SKIP][61] ([fdo#109271])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw2/igt@[email protected]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw1/igt@[email protected]

* igt@i915_pm_rpm@modeset-pc8-residency-stress:
- shard-hsw: [SKIP][62] ([fdo#109271]) -> [FAIL][63] ([fdo#111548]) +1 similar issue
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw5/igt@[email protected]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw7/igt@[email protected]

* igt@perf_pmu@cpu-hotplug:
- shard-hsw: [TIMEOUT][64] ([fdo#111546]) -> [INCOMPLETE][65] ([fdo#103540])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6838/shard-hsw2/igt@[email protected]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw1/igt@[email protected]

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

[fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
[fdo#103355]: https://bugs.freedesktop.org/show_bug.cgi?id=103355
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
[fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
[fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109507]: https://bugs.freedesktop.org/show_bug.cgi?id=109507
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
[fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
[fdo#111545]: https://bugs.freedesktop.org/show_bug.cgi?id=111545
[fdo#111546]: https://bugs.freedesktop.org/show_bug.cgi?id=111546
[fdo#111548]: https://bugs.freedesktop.org/show_bug.cgi?id=111548
[fdo#111550]: https://bugs.freedesktop.org/show_bug.cgi?id=111550
[fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912

Participating hosts (10 -> 6)
------------------------------

Missing (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005

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

* CI: CI-20190529 -> None
* IGT: IGT_5171 -> IGTPW_3422
* Piglit: piglit_4509 -> None

CI-20190529: 20190529
CI_DRM_6838: 8e907b7591b620dba402c7ada493a31ca0320c99 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_3422: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/
IGT_5171: 1911564805fe454919e8a5846534a0c1ef376a33 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#6 lore raw
In reply to Simon Ser
Quoted 8 lines · Simon Ser

This test performs a single atomic commit on multiple CRTCs at once. The goal is to check that a page-flip event for each CRTC is received.

I chose not to integrate this to an existing test, because kms_atomic is basically a single function with lots of options. Integrating this test to kms_atomic would mix up these two and make it difficult to understand the test.

Hey,

This series introduces new undocumented tests:

kms_atomic_multi
kms_atomic_multi@2x-flip

Can you document them as per the requirement in the [CONTRIBUTING.md]?

[Documentation] has more details on how to do this.

Here are few examples:
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/0316695d03aa46108296b27f3982ec93200c7a6e
https://gitlab.freedesktop.org/drm/igt-gpu-tools/commit/443cc658e1e6b492ee17bf4f4d891029eb7a205d

Thanks in advance!

[CONTRIBUTING.md]: https://gitlab.freedesktop.org/drm/igt-gpu-tools/blob/master/CONTRIBUTING.md#L19
[Documentation]: https://drm.pages.freedesktop.org/igt-gpu-tools/igt-gpu-tools-Core.html#igt-describe

Signature · 6 lines
Cheers,
Arek
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev