[Intel-gfx] [PATCH i-g-t] tests/kms_cursor_legacy: Remove strict vblank checking on 2x-*-vs-cursor tests.

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Wed Oct 18 10:43:25 UTC 2017


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 at linux.intel.com>
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



More information about the Intel-gfx mailing list