There is no guarantee that on 2 screens the vblanks are in any way synchronized, so it's best to stop checking them, since doing an update involving multiple pipes may incur an arbitrary amount of delay. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101634 --- tests/kms_cursor_legacy.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c index 5720dbef90d3..fc00a0e688f2 100644 --- a/tests/kms_cursor_legacy.c +++ b/tests/kms_cursor_legacy.c @@ -887,7 +887,6 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool struct drm_mode_cursor arg[2], arg2[2]; struct drm_event_vblank vbl; struct igt_fb fb_info, fb2_info, cursor_fb; - unsigned vblank_start; enum pipe pipe = find_connected_pipe(display, false); enum pipe pipe2 = find_connected_pipe(display, true); igt_output_t *output, *output2; @@ -917,20 +916,15 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY); - vblank_start = get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS); - igt_assert_eq(get_vblank(display->drm_fd, pipe, 0), vblank_start); do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[0]); do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg2[0]); - igt_assert_eq(get_vblank(display->drm_fd, pipe, 0), vblank_start); while (nloops--) { - /* Start with a synchronous query to align with the vblank */ - vblank_start = get_vblank(display->drm_fd, pipe, DRM_VBLANK_NEXTONMISS); do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[nloops & 1]); - if (!modeset) + if (!modeset) { flip_nonblocking(display, pipe, false, &fb_info); - else { + } else { /* * There are 2 design issues that prevent us from doing * the test we would like here: @@ -951,19 +945,14 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool igt_display_commit_atomic(display, DRM_MODE_ATOMIC_ALLOW_MODESET | DRM_MODE_ATOMIC_NONBLOCK, NULL); } - igt_assert_eq(get_vblank(display->drm_fd, pipe, 0), vblank_start); - do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[nloops & 1]); if (!modeset) { do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg2[nloops & 1]); do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg[nloops & 1]); do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg2[nloops & 1]); - igt_assert_eq(get_vblank(display->drm_fd, pipe, 0), vblank_start); - igt_set_timeout(1, "Stuck page flip"); igt_ignore_warn(read(display->drm_fd, &vbl, sizeof(vbl))); - igt_assert_eq(get_vblank(display->drm_fd, pipe, 0), vblank_start + 1); igt_reset_timeout(); } else { do_ioctl(display->drm_fd, DRM_IOCTL_MODE_CURSOR, &arg2[nloops & 1]); -- 2.14.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx