<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body>
<p>
<div>
<b><a class="bz_bug_link
bz_status_NEW "
title="NEW - screen corruption using SNA and TearFree on Intel GeminiLake"
href="https://bugs.freedesktop.org/show_bug.cgi?id=105720#c35">Comment # 35</a>
on <a class="bz_bug_link
bz_status_NEW "
title="NEW - screen corruption using SNA and TearFree on Intel GeminiLake"
href="https://bugs.freedesktop.org/show_bug.cgi?id=105720">bug 105720</a>
from <span class="vcard"><a class="email" href="mailto:clinton.a.taylor@intel.com" title="Clinton Taylor <clinton.a.taylor@intel.com>"> <span class="fn">Clinton Taylor</span></a>
</span></b>
<pre>(In reply to Chris Wilson from <a href="show_bug.cgi?id=105720#c34">comment #34</a>)
<span class="quote">> Created <span class=""><a href="attachment.cgi?id=138556" name="attach_138556" title="Reorder vblank/flip event handler">attachment 138556</a> <a href="attachment.cgi?id=138556&action=edit" title="Reorder vblank/flip event handler">[details]</a></span> <a href='page.cgi?id=splinter.html&bug=105720&attachment=138556'>[review]</a> [review]
> 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: <a class="bz_bug_link
bz_status_NEW "
title="NEW - screen corruption using SNA and TearFree on Intel GeminiLake"
href="show_bug.cgi?id=105720">https://bugs.freedesktop.org/show_bug.cgi?id=105720</a>
> Signed-off-by: Chris Wilson <<a href="mailto:chris@chris-wilson.co.uk">chris@chris-wilson.co.uk</a>></span >
Issue still occurs with this patch</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
</ul>
</body>
</html>