OS: Gentoo Linux
xf86-video-intel: latest git
Xorg: latest git
Dell Inspiron 3537
Upon switching from next-20160615 to next-20160617,
I noticed that moving the cursor randomly causes its movement to jitter in a lag-behind/catch-up fashion (most noticeable when dragging windows as this applies the effect to the whole window, thus causing it not to move fluently).
Upon some bisecting I have found that this is caused by the following commit in linux-next:
ee042aa40b66d18d465206845b0752c6a617ba3f - drm/i915: Use atomic commits for legacy page_flips
Upon reverting this commit the issue is no longer present.
Another intriguing fact is that in some applications (ex. Games) which bind the mouse input - the movement is fine.
// Dmesg/Xorg.0.log not attached yet as those do not seem to contain any relevant data.
Identifier "Intel Graphics"
Option "TearFree" "1"
Option "TripleBuffer" "1"
Option "DRI" "3"
Option "Present" "1"
Option "Accel" "1"
Option "AccelMethod" "SNA"
i915 options: default
Write a bunch of quick hacks which all blew up in testing (just wanted to confirm that my hunch about the stalls was right).
Proper fix I think needs the following bits:
- address the FIXME in intel_atomic_commit_tail about when commit_hw_done() should be called. We need to make sure that this is before any of the expensive vblank waits, which needs the separate worker as described in the comments.
- in wait_for_depencies don't stall for flip_done for legacy cursor updates
This essentially gets us halfway there to faster-than-vrefresh updates. The other bits needed would just be the correct flip_done signalling, and switching the wait_for_vblank (before cleanup_planes) over to wait_for_flip.
Typing this down since I'm going on vacation soon and probably won't be able to fix this all up.
Created attachment 124666 [details] [review]
Another attempt at not excessively stalling
Author: Chris Wilson <email@example.com>
Date: Fri Jun 24 13:44:03 2016 +0100
Revert "drm/i915: Use atomic commits for legacy page_flips"
This reverts commit ee042aa40b66d18d465206845b0752c6a617ba3f.
Be prepared for next time!
Closing resolved+fixed. Commit causing the failure reverted by commit: 527b6abe.