https://intel-gfx-ci.01.org/CI/CI_DRM_1738/fi-ctg-l9400/html/fi-ctg-l9400@CI_DRM_1738/igt@kms_flip@basic-flip-vs-wf_vblank.html Variance in vblanks larger than expected? Maybe a test bug? (kms_flip:8525) CRITICAL: Test assertion failure function check_state, file kms_flip.c:699: (kms_flip:8525) CRITICAL: Failed assertion: fabs((usec_diff - usec_interflip) / usec_interflip) <= 0.005 (kms_flip:8525) CRITICAL: Last errno: 25, Inappropriate ioctl for device (kms_flip:8525) CRITICAL: inconsistent flip ts/seq: last 388.578513/13071, current 388.779752/13081 Subtest basic-flip-vs-wf_vblank failed. **** DEBUG **** (kms_flip:8525) DEBUG: Test requirement passed: (flags & TEST_HANG) == 0 || !is_wedged(drm_fd) (kms_flip:8525) DEBUG: Test requirement passed: modes (kms_flip:8525) INFO: Beginning basic-flip-vs-wf_vblank on pipe A, connector LVDS-1 (kms_flip:8525) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1440, height=900, format=0x34325258, tiling=0x0, size=0) (kms_flip:8525) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=2, pitch=5760) (kms_flip:8525) igt-fb-DEBUG: igt_create_fb_with_bo_size(width=1440, height=900, format=0x34325258, tiling=0x0, size=0) (kms_flip:8525) igt-fb-DEBUG: igt_create_fb_with_bo_size(handle=3, pitch=5760) (kms_flip:8525) igt-kms-INFO: 1440x900 50 1440 1464 1480 1600 900 903 909 926 0xa 0x48 74080 (kms_flip:8525) DEBUG: name = flip last_ts = 0.000000 last_received_ts = 0.000000 last_seq = 0 current_ts = 388.578513 current_received_ts = 388.578108 current_seq = 13071 count = 0 seq_step = 1 (kms_flip:8525) DEBUG: name = vblank last_ts = 0.000000 last_received_ts = 0.000000 last_seq = 0 current_ts = 388.759632 current_received_ts = 388.759119 current_seq = 13080 count = 0 seq_step = 10 (kms_flip:8525) DEBUG: name = flip last_ts = 388.578513 last_received_ts = 388.578108 last_seq = 13071 current_ts = 388.779752 current_received_ts = 388.779347 current_seq = 13081 count = 1 seq_step = 1 (kms_flip:8525) CRITICAL: Test assertion failure function check_state, file kms_flip.c:699: (kms_flip:8525) CRITICAL: Failed assertion: fabs((usec_diff - usec_interflip) / usec_interflip) <= 0.005 (kms_flip:8525) CRITICAL: Last errno: 25, Inappropriate ioctl for device (kms_flip:8525) CRITICAL: inconsistent flip ts/seq: last 388.578513/13071, current 388.779752/13081 **** END ****
Reference to Chris' patch: https://patchwork.freedesktop.org/series/14114/
The problem on this machine seems to be that the clock is about .6% off, whereas the test will accept a deviation up to .5%. I also have a VLV machine with DSI that suffers from a similar problem. I think for internal panels the best solution might be for the kernel to fix up the reported clock for the fixed mode. Not sure what we'd do about the EDID though, assuming the the panel has one and the difference in the clocks would be large enough to be visible in the EDID timings. And of course not all modes coming from the EDID even have actual detailed timing descriptors.
Yeah, I'm just sending a patch to detect the "clock error" and teach BAT to skip this test (adding another test to kms_setmode to actually complain about the mismatch). Since userspace is using the dotclock to calculate the MscRate (oh, the merriment with dynamic refresh) we should think of someway to remove the discrepancy between the modeline and actual hardware value. At the very basic level, could we fixup the mode as reported via GetCrtc?
The modeline is inconsistent. Closing for BAT as we skip over this inconsistency, will address in a separate non-BAT test with kms_setmode.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.