[Bug 105720] screen corruption using SNA and TearFree on Intel GeminiLake
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Tue Apr 3 18:32:17 UTC 2018
https://bugs.freedesktop.org/show_bug.cgi?id=105720
--- Comment #34 from Chris Wilson <chris at chris-wilson.co.uk> ---
Created attachment 138556
--> https://bugs.freedesktop.org/attachment.cgi?id=138556&action=edit
Reorder vblank/flip event handler
I do wonder if "sna: Defer submission of the next shadow frame until halfway
through" wasn't that far off the truth. Please try the attached diff (3 patches
rolled into one), surmised by
sna: Reorder vblank/flip event handling to avoid TearFree recursion
TearFree wants to grab the most recently used scanout for rendering the
next frame into. If the flip event was still pending, we would then
query the drm event buffer for any pending completions, but this would
proceed to execute all the other events before the flip events as well.
Since we they were out of sequence, we pushed them into a buffer to
execute afterwards, however we forgot the side effects of the flip
handlers, for example see commit af36a4ab78cc ("sna: Defer submission
of the next shadow frame until halfway through") and that there may have
been events read from drm into a local buffer inside sna_mode_wakeup()
that haven't been processed yet.
Eliminate the need for calling sna_mode_wakeup() by ensuring that all
flip events have been completed first before handing the vblank
callbacks and potential drawing, ensuring the correct ordering.
References: https://bugs.freedesktop.org/show_bug.cgi?id=105720
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
--
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-gfx-bugs/attachments/20180403/cd6ac519/attachment.html>
More information about the intel-gfx-bugs
mailing list