* [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test @ 2019-09-05 14:35 Simon Ser 2019-09-05 14:51 ` Ville Syrjälä ` (3 more replies) 0 siblings, 4 replies; 7+ messages in thread From: Simon Ser @ 2019-09-05 14:35 UTC (permalink / raw) To: igt-dev 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. Signed-off-by: Simon Ser <simon.ser@intel.com> --- 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 diff --git a/tests/Makefile.sources b/tests/Makefile.sources index c02e4d9489f2..e08968d2b0fc 100644 --- a/tests/Makefile.sources +++ b/tests/Makefile.sources @@ -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 \ diff --git a/tests/kms_atomic_multi.c b/tests/kms_atomic_multi.c new file mode 100644 index 000000000000..96212ab9a1e6 --- /dev/null +++ b/tests/kms_atomic_multi.c @@ -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; + 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; + 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); +} + +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++) { + 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; + + drm_event.version = 3; + drm_event.page_flip_handler2 = page_flip_handler; + } + + igt_subtest("2x-flip") { + 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); + } + } + + igt_fixture { + close(data.drm_fd); + kmstest_restore_vt_mode(); + igt_display_fini(data.display); + } +} diff --git a/tests/meson.build b/tests/meson.build index a7b2b3221304..df00ab4a2f81 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -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 igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test 2019-09-05 14:35 [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test Simon Ser @ 2019-09-05 14:51 ` Ville Syrjälä 2019-09-06 14:15 ` Ser, Simon 2019-09-05 15:08 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork ` (2 subsequent siblings) 3 siblings, 1 reply; 7+ messages in thread From: Ville Syrjälä @ 2019-09-05 14:51 UTC (permalink / raw) To: Simon Ser; +Cc: igt-dev On Thu, Sep 05, 2019 at 05:35:30PM +0300, Simon Ser wrote: > 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. > > Signed-off-by: Simon Ser <simon.ser@intel.com> > --- > > 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 > > diff --git a/tests/Makefile.sources b/tests/Makefile.sources > index c02e4d9489f2..e08968d2b0fc 100644 > --- a/tests/Makefile.sources > +++ b/tests/Makefile.sources > @@ -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 \ > diff --git a/tests/kms_atomic_multi.c b/tests/kms_atomic_multi.c > new file mode 100644 > index 000000000000..96212ab9a1e6 > --- /dev/null > +++ b/tests/kms_atomic_multi.c > @@ -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; > + 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. > + 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); > +} > + > +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() > + 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; > + > + 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? > + 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 :( > + } > + } > + > + igt_fixture { > + close(data.drm_fd); > + kmstest_restore_vt_mode(); > + igt_display_fini(data.display); > + } > +} > diff --git a/tests/meson.build b/tests/meson.build > index a7b2b3221304..df00ab4a2f81 100644 > --- a/tests/meson.build > +++ b/tests/meson.build > @@ -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 > igt-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/igt-dev -- Ville Syrjälä Intel _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test 2019-09-05 14:51 ` Ville Syrjälä @ 2019-09-06 14:15 ` Ser, Simon 2019-09-06 14:44 ` Ville Syrjälä 0 siblings, 1 reply; 7+ messages in thread From: Ser, Simon @ 2019-09-06 14:15 UTC (permalink / raw) To: ville.syrjala; +Cc: igt-dev Thanks for the review! On Thu, 2019-09-05 at 17:51 +0300, Ville Syrjälä wrote: > On Thu, Sep 05, 2019 at 05:35:30PM +0300, Simon Ser wrote: > > 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. > > > > Signed-off-by: Simon Ser <simon.ser@intel.com> > > --- > > > > 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 > > > > diff --git a/tests/Makefile.sources b/tests/Makefile.sources > > index c02e4d9489f2..e08968d2b0fc 100644 > > --- a/tests/Makefile.sources > > +++ b/tests/Makefile.sources > > @@ -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 \ > > diff --git a/tests/kms_atomic_multi.c b/tests/kms_atomic_multi.c > > new file mode 100644 > > index 000000000000..96212ab9a1e6 > > --- /dev/null > > +++ b/tests/kms_atomic_multi.c > > @@ -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; > > + 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. > > > + 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); > > +} > > + > > +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() > > > + 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; > > + > > + 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 > > + 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? This is done in page_flip_handler > 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 > 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? > > + } > > + } > > + > > + igt_fixture { > > + close(data.drm_fd); > > + kmstest_restore_vt_mode(); > > + igt_display_fini(data.display); > > + } > > +} > > diff --git a/tests/meson.build b/tests/meson.build > > index a7b2b3221304..df00ab4a2f81 100644 > > --- a/tests/meson.build > > +++ b/tests/meson.build > > @@ -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 > > igt-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/igt-dev _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test 2019-09-06 14:15 ` Ser, Simon @ 2019-09-06 14:44 ` Ville Syrjälä 0 siblings, 0 replies; 7+ messages in thread From: Ville Syrjälä @ 2019-09-06 14:44 UTC (permalink / raw) To: Ser, Simon; +Cc: igt-dev On Fri, Sep 06, 2019 at 02:15:10PM +0000, Ser, Simon wrote: > Thanks for the review! > > On Thu, 2019-09-05 at 17:51 +0300, Ville Syrjälä wrote: > > On Thu, Sep 05, 2019 at 05:35:30PM +0300, Simon Ser wrote: > > > 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. > > > > > > Signed-off-by: Simon Ser <simon.ser@intel.com> > > > --- > > > > > > 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 > > > > > > diff --git a/tests/Makefile.sources b/tests/Makefile.sources > > > index c02e4d9489f2..e08968d2b0fc 100644 > > > --- a/tests/Makefile.sources > > > +++ b/tests/Makefile.sources > > > @@ -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 \ > > > diff --git a/tests/kms_atomic_multi.c b/tests/kms_atomic_multi.c > > > new file mode 100644 > > > index 000000000000..96212ab9a1e6 > > > --- /dev/null > > > +++ b/tests/kms_atomic_multi.c > > > @@ -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; > > > + 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. > > > > > + 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); > > > +} > > > + > > > +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() > > > > > + 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; > > > + > > > + 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 > > > > + 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? > > This is done in page_flip_handler > > > 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 > > > 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 > > > > + } > > > + } > > > + > > > + igt_fixture { > > > + close(data.drm_fd); > > > + kmstest_restore_vt_mode(); > > > + igt_display_fini(data.display); > > > + } > > > +} > > > diff --git a/tests/meson.build b/tests/meson.build > > > index a7b2b3221304..df00ab4a2f81 100644 > > > --- a/tests/meson.build > > > +++ b/tests/meson.build > > > @@ -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 > > > igt-dev@lists.freedesktop.org > > > https://lists.freedesktop.org/mailman/listinfo/igt-dev -- Ville Syrjälä Intel _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_atomic_multi: new test 2019-09-05 14:35 [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test Simon Ser 2019-09-05 14:51 ` Ville Syrjälä @ 2019-09-05 15:08 ` Patchwork 2019-09-05 18:47 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2019-09-06 6:15 ` [igt-dev] [PATCH RFC i-g-t] " Arkadiusz Hiler 3 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2019-09-05 15:08 UTC (permalink / raw) To: Simon Ser; +Cc: igt-dev == 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@gem_ctx_switch@legacy-render.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-bxt-dsi/igt@gem_ctx_switch@legacy-render.html #### 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@gem_mmap_gtt@basic.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-glk-dsi/igt@gem_mmap_gtt@basic.html * 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@kms_busy@basic-flip-c.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-skl-6770hq/igt@kms_busy@basic-flip-c.html * 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@kms_chamelium@dp-edid-read.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-kbl-7500u/igt@kms_chamelium@dp-edid-read.html * 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@kms_flip@basic-flip-vs-dpms.html [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-skl-6770hq/igt@kms_flip@basic-flip-vs-dpms.html * 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@kms_frontbuffer_tracking@basic.html [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-hsw-peppy/igt@kms_frontbuffer_tracking@basic.html - 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@kms_frontbuffer_tracking@basic.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html * 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@vgem_basic@debugfs.html [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/fi-icl-u3/igt@vgem_basic@debugfs.html {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 igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 7+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_atomic_multi: new test 2019-09-05 14:35 [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test Simon Ser 2019-09-05 14:51 ` Ville Syrjälä 2019-09-05 15:08 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork @ 2019-09-05 18:47 ` Patchwork 2019-09-06 6:15 ` [igt-dev] [PATCH RFC i-g-t] " Arkadiusz Hiler 3 siblings, 0 replies; 7+ messages in thread From: Patchwork @ 2019-09-05 18:47 UTC (permalink / raw) To: Simon Ser; +Cc: igt-dev == 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@kms_atomic_multi@2x-flip.html 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@gem_ctx_shared@q-in-order-bsd2.html [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb5/igt@gem_ctx_shared@q-in-order-bsd2.html * 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@gem_eio@suspend.html [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw7/igt@gem_eio@suspend.html * 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@gem_exec_schedule@preempt-other-bsd.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb1/igt@gem_exec_schedule@preempt-other-bsd.html * 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@gem_exec_suspend@basic-s3.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw7/igt@gem_exec_suspend@basic-s3.html * 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@gem_workarounds@suspend-resume.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl4/igt@gem_workarounds@suspend-resume.html * 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@i915_pm_rpm@gem-pread.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw7/igt@i915_pm_rpm@gem-pread.html * 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@kms_cursor_legacy@cursor-vs-flip-atomic.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw1/igt@kms_cursor_legacy@cursor-vs-flip-atomic.html * 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@kms_flip@flip-vs-expired-vblank-interruptible.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-glk3/igt@kms_flip@flip-vs-expired-vblank-interruptible.html * 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@kms_flip@flip-vs-suspend.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb3/igt@kms_flip@flip-vs-suspend.html * 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@kms_setmode@basic.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw4/igt@kms_setmode@basic.html * 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@perf_pmu@render-node-busy-rcs0.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl1/igt@perf_pmu@render-node-busy-rcs0.html #### 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@gem_ctx_shared@exec-single-timeline-bsd.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb8/igt@gem_ctx_shared@exec-single-timeline-bsd.html * 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@gem_exec_async@concurrent-writes-bsd.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb6/igt@gem_exec_async@concurrent-writes-bsd.html * 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@gem_exec_schedule@reorder-wide-bsd1.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb2/igt@gem_exec_schedule@reorder-wide-bsd1.html * 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@i915_pm_rpm@modeset-stress-extra-wait.html [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw2/igt@i915_pm_rpm@modeset-stress-extra-wait.html * 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@kms_big_fb@x-tiled-16bpp-rotate-180.html [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl7/igt@kms_big_fb@x-tiled-16bpp-rotate-180.html * 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@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move.html [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-move.html * 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@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-snb2/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html * 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@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c.html * 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@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html - 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@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl4/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html * 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@kms_plane_alpha_blend@pipe-c-coverage-7efc.html [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb6/igt@kms_plane_alpha_blend@pipe-c-coverage-7efc.html * 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@kms_psr2_su@frontbuffer.html [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb2/igt@kms_psr2_su@frontbuffer.html * 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@kms_setmode@basic.html [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-kbl7/igt@kms_setmode@basic.html * 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@perf_pmu@busy-idle-vcs0.html [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-apl5/igt@perf_pmu@busy-idle-vcs0.html #### 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@gem_mocs_settings@mocs-settings-bsd2.html [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-iclb2/igt@gem_mocs_settings@mocs-settings-bsd2.html * 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@i915_pm_rpm@modeset-lpsp.html [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw1/igt@i915_pm_rpm@modeset-lpsp.html * 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@i915_pm_rpm@modeset-pc8-residency-stress.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw7/igt@i915_pm_rpm@modeset-pc8-residency-stress.html * 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@perf_pmu@cpu-hotplug.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3422/shard-hsw1/igt@perf_pmu@cpu-hotplug.html {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 igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test 2019-09-05 14:35 [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test Simon Ser ` (2 preceding siblings ...) 2019-09-05 18:47 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork @ 2019-09-06 6:15 ` Arkadiusz Hiler 3 siblings, 0 replies; 7+ messages in thread From: Arkadiusz Hiler @ 2019-09-06 6:15 UTC (permalink / raw) To: Simon Ser; +Cc: igt-dev On Thu, Sep 05, 2019 at 05:35:30PM +0300, Simon Ser wrote: > 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. > > Signed-off-by: Simon Ser <simon.ser@intel.com> 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 -- Cheers, Arek _______________________________________________ igt-dev mailing list igt-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/igt-dev ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-09-06 14:44 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-09-05 14:35 [igt-dev] [PATCH RFC i-g-t] tests/kms_atomic_multi: new test Simon Ser 2019-09-05 14:51 ` Ville Syrjälä 2019-09-06 14:15 ` Ser, Simon 2019-09-06 14:44 ` Ville Syrjälä 2019-09-05 15:08 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork 2019-09-05 18:47 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 2019-09-06 6:15 ` [igt-dev] [PATCH RFC i-g-t] " Arkadiusz Hiler
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.