No subject


Wed May 18 13:14:05 PDT 2011


scheduling/completion is supposed to work, it could be that you're hitting a
limitation of the current nouveau ddx when pageflipping is enabled for
bufferswaps:

<http://cgit.freedesktop.org/nouveau/xf86-video-nouveau/tree/src/nouveau_dri2.c#n272>

-> For page-flipped bufferswaps, which are on by default, the current ddx
doesn't wait for swap completion before it notifies x / mesa of it. Instead it
over-optimistically assumes that the swap completes at the very moment it is
scheduled, which is almost never the case.

-> Mesa would start to render to what it thinks is the post-swap backbuffer,
but in reality it is the current pre-swap frontbuffer. Unless they have some
other unorthodox synchronization mechanism in place to prevent that. You'd see
many of the symptoms described here if i'm correct. And a pause of 30 msecs
after each bufferswap as described would fix the issue in many cases.

Iow, the ddx implementation isn't yet ready to do this properly for
page-flipped fullscreen swaps, as they happen with video games and quite often
with desktop compositor.

You could try if adding the option "Pageflip" "off" in xorg.conf fixes the
problems for now, until proper implementation is there.

As far as i can see, the current ddx code has a few more issues there -- it
does do stuff differently in some cases than how it is meant to be done for the
dri2 swapbuffers and timestamping implementation.

-mario

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Nouveau mailing list