[igt-dev] [PATCH i-g-t v1] igt/kms_flip: Use actual vblank_interval instead of expected.

Stanislav Lisovskiy
2019-06-28T12:17:42Z

If we are not currently failing at calibration stage, when we
detect that actual vblank interval takes longer than expected
according to the modeline, then we should not fail here as well.

Vblank interval can be different from expected one depending on
clocking used.

Probably we need to have some criteria how much vblank interval
is allowed to be different, however currently we don't fail in
calibration_ts but simply print that it is different, while
later during *-vs-vblank-race we do, even though the reason is
the same.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103060
Signed-off-by: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>
---
tests/kms_flip.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 2a158d97..a47938cd 100755
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -417,7 +417,6 @@ static double mode_frame_time(const struct test_output *o)

static double actual_frame_time(const struct test_output *o)
{
- igt_assert(o->flags & TEST_CHECK_TS);
return o->vblank_interval;
}

@@ -740,8 +739,8 @@ static unsigned int run_test_step(struct test_output *o)
* we waited for two vblanks, so verify that
* we were blocked for ~1-2 frames.
*/
- igt_assert_f(end - start > 0.9 * mode_frame_time(o) &&
- end - start < 2.1 * mode_frame_time(o),
+ igt_assert_f(end - start > 0.9 * actual_frame_time(o) &&
+ end - start < 2.1 * actual_frame_time(o),
"wait for two vblanks took %lu usec (frame time %f usec)\n",
end - start, mode_frame_time(o));
join_vblank_wait_thread();
@@ -1545,8 +1544,8 @@ igt_main
"single-buffer-flip-vs-dpms-off-vs-modeset" },
{ 30, TEST_FLIP | TEST_NO_2X_OUTPUT | TEST_DPMS_OFF_OTHERS , "dpms-off-confusion" },
{ 0, TEST_ENOENT | TEST_NOEVENT, "nonexisting-fb" },
- { 10, TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE, "dpms-vs-vblank-race" },
- { 10, TEST_MODESET | TEST_VBLANK_RACE, "modeset-vs-vblank-race" },
+ { 10, TEST_DPMS_OFF | TEST_DPMS | TEST_VBLANK_RACE | TEST_CHECK_TS, "dpms-vs-vblank-race" },
+ { 10, TEST_MODESET | TEST_VBLANK_RACE | TEST_CHECK_TS, "modeset-vs-vblank-race" },
{ 0, TEST_BO_TOOBIG | TEST_NO_2X_OUTPUT, "bo-too-big" },
{ 10, TEST_FLIP | TEST_SUSPEND, "flip-vs-suspend" },
};
--
2.17.1