[Intel-gfx] [PATCH igt 17/24] igt/kms_flip: Warn if the setup between iterations misses a vblank

Chris Wilson chris at chris-wilson.co.uk
Mon Aug 14 20:18:41 UTC 2017


During the kms_flip test we repeat the test over a short period of time,
and the setup of each iteration should not itself be inducing a vblank
miss. Warn if we do encounter any missed vblanks during the event setup.

Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 tests/kms_flip.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index d701886e..4ea68d4b 100644
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -736,6 +736,19 @@ static unsigned int run_test_step(struct test_output *o)
 	if (o->flags & TEST_FB_BAD_TILING)
 		new_fb_id = o->fb_ids[o->current_fb_id];
 
+	if (o->vblank_state.count > 0) {
+		drmVBlank vbl;
+
+		memset(&vbl, 0, sizeof(vbl));
+		vbl.request.type = kmstest_get_vbl_flag(o->pipe);
+		vbl.request.type |= DRM_VBLANK_RELATIVE;
+
+		do_or_die(drmWaitVBlank(drm_fd, &vbl));
+		if (vbl.reply.sequence != o->vblank_state.last_seq)
+			igt_warn("vblank drift since last iteration! expected %x found %x\n",
+				 o->vblank_state.last_seq, vbl.reply.sequence);
+	}
+
 	if (do_vblank && (o->flags & TEST_EINVAL) && o->vblank_state.count > 0)
 		igt_assert(do_wait_for_vblank(o, o->pipe, target_seq, &vbl_reply)
 		       == -EINVAL);
-- 
2.13.3



More information about the Intel-gfx mailing list