[Xcb] double buffering

Barton C Massey bart at cs.pdx.edu
Wed Aug 23 15:02:58 PDT 2006

In message <200608231220.20354.hto at arcor.de> you wrote:
> On Tuesday 22 August 2006 05:00, Barton C Massey wrote:
> > Someone in the X community probably needs to build a 
> > library to handle all the various ways double-buffering
> > can be done in a coherent fashion.  Jamey's opinion
> > though, with which I concur, is that this should be a
> > separate fd.o project. 
> Does that mean that there is no "preferred" way for double 
> buffering? So far I see two ways if dbe is deprecated:
> 1) Rely on the composite extension and a composite client to
>    redirect my drawing to off screen storage. Then send
>    damage reports after redrawing. 
> 2) Create background pixmap.

Off the top of my head, I think the "preferred" solution, if
there is one, is to do (1) if possible (server has Composite
and a running compositing agent), fall back to XDBE if (1)
is impossible (so we need the XCB extension), otherwise fall
back to Multi-Buffering if we can (so we need the XCB
extension), otherwise fall back to (2).  The problem with
this solution, of course, is that it's insanely complex,
which is why I think it should be encapsulated in a separate

> Problem: When should I free 
>    the pixmap? Is there a way to create "soft-allocated"
>    pixmaps which the server can claim when it needs space?
>    I cannot find anything in the protocoll.

Beats me.  I would probably just keep the pixmap allocated
as long as the window is allocated---how complicated do you
want to get? :-)

> p.s. is this the wrong mailing list for this discussion?

I think it's fine, although the core X.org folks might have
more insight than we do into some of this...

> I found some related threads which did not really answer
> the question of double buffering:
> "[Xorg] Damage/Composite + direct rendering clients"
> http://lists.freedesktop.org/archives/xorg/2004-May/thread.html#614
> "Does composition render double-buffering useless?"
> http://lists.freedesktop.org/archives/xorg/2006-July/thread.html#16683

Interesting stuff.  Thanks for the refs!


More information about the Xcb mailing list