[igt-dev] [PATCH] tests/kms_cursor_legacy: Fix assertion failure due to vblank mismatch

Nischala Yelchuri nischala.yelchuri at intel.com
Wed Mar 13 20:16:35 UTC 2019


For the !modeset case, after a pageflip is performed on both crtc's,
vblank counter is advanced by 1 when compared to its original value.

For the modeset case, when pageflips and modesets are interleaved,
vblank counter does not always advance by 1 as nonblocking modeset
could fail, in which case we do not need vblank_matches.

v2: Remove the assert statement instead of changing the condition

Cc: Maarten Lankhorst <maarten.lankhorst at intel.com>
Signed-off-by: Nischala Yelchuri <nischala.yelchuri at intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105454
---
 tests/kms_cursor_legacy.c | 8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
index d6987eea..9febf6e9 100644
--- a/tests/kms_cursor_legacy.c
+++ b/tests/kms_cursor_legacy.c
@@ -859,7 +859,7 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 	enum pipe pipe = find_connected_pipe(display, false);
 	enum pipe pipe2 = find_connected_pipe(display, true);
 	igt_output_t *output, *output2;
-	bool vblank_matches, enabled = false;
+	bool enabled = false;
 	volatile unsigned long *shared;
 	unsigned flags = 0, vblank_start;
 	struct drm_event_vblank vbl;
@@ -963,7 +963,6 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 		flip_nonblocking(display, pipe2, atomic, &fb2_info, (void*)(ptrdiff_t)vblank_start);
 	}
 
-	vblank_matches = false;
 	while (nloops) {
 		shared[1] = nloops & 1;
 
@@ -978,9 +977,6 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 		if (!modeset)
 			igt_assert_eq(vbl.sequence, vblank_start + 1);
 
-		if (vblank_start && vbl.sequence == vblank_start + 1)
-			vblank_matches = true;
-
 		/* Do not requeue on the last 2 events. */
 		if (nloops <= 2) {
 			nloops--;
@@ -1013,8 +1009,6 @@ static void two_screens_flip_vs_cursor(igt_display_t *display, int nloops, bool
 		}
 	}
 
-	igt_assert_f(vblank_matches, "During modeset at least 1 page flip needs to match!\n");
-
 done:
 	shared[0] = 1;
 	igt_waitchildren();
-- 
2.17.1



More information about the igt-dev mailing list