[Nouveau] [Bug 35930] flickering in many OpenGL applications with composition manager

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Aug 23 04:25:21 PDT 2011


https://bugs.freedesktop.org/show_bug.cgi?id=35930

Francisco Jerez <currojerez at riseup.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #31 from Francisco Jerez <currojerez at riseup.net> 2011-08-23 04:25:20 PDT ---
(In reply to comment #29)
> I think there's a fundamental problem with simply exchanging the buffers for a
> redirected window's backing pixmap: There's no synchronization between the app
> and the compositing manager (CM), so by the time the CM composites the window
> contents after a flip, the app might have already flipped again and started
> rendering to the buffer the CM is using for compositing. I think this is the
> cause of the flickering.
> 
Exactly.

> It might be possible to fix this (at least as long as there aren't several
> clients trying to get at the window contents via the Composite extension...)
> with triple buffering, but I wonder if it's really worth the complexity. (E.g.
> exchanging buffers isn't possible anyway with the majority of window managers,
> which reparent client windows)

I was considering another solution, but I've been too busy in the last couple
of months to put it into practice. Basically, the X server could make sure that
at any given time all clients agree on the role of any buffers that are being
shared by several clients, by blocking their GetBuffers requests at the right
time, IOW no two clients would ever see the same buffer in two different slots
at the same moment. AFAICT this can be made to work for an arbitrary number of
clients getting at the same window at the same time.

Maxim, I've pushed your patch as a temporary solution until I (or somebody else
with more time) get around to fixing this synchronization problem in the X
server.

-- 
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