Composite and Shared Memory?

Deron Johnson Deron.Johnson at Sun.COM
Sun Nov 14 10:45:07 PST 2004


I agree with Owen. I played around with putting the composite backing
pixmap in shared memory it it was indeed complicated and it didn't
work quite right. Keith and I discussed this and we decided that
the lightpipe approach of performing the copy was simple and not
too expensive.

In the long term, I would like to see OpenGL support interprocess
shared texture and have the DDX render directly into the texture.
In this situation there would be no need to have a backing pixmap
in shared memory.

Owen Taylor wrote:
> On Sun, 2004-11-14 at 11:00 +0100, Amir Bukhari wrote:
> 
>>it will be valuable if we could replace the off-screen Pixmap, which
>>Composite created when Window redirect, with one we create at client
>>side. this give us the ability to use Shared Memory Pixmap as
>>off-screen, so we didn't need to copy the redirected window pixmap to
>>our shared memory pixmap each time Damage occure.
>>is it that possible to do currently or it must be there new change in
>>Composite?
> 
> 
> How does this work in conjunction with resizing windows? As soon as the
> window is resized (larger), the X server is going to need a new Pixmap.
> 
> In the case of a combination window manager and compositing
> manager, for override redirect windows, you could have a
> "CompositeConfigureWindow" that along with the width/height took a 
> Pixmap to use as long as the window stayed that size.
> 
> But that would be moderately complex to implement, and is the short
> term inefficiency really worth that complexity? 
> 
> If you look at a GTK+ app redrawing with luminocity (I assume that
> Looking Glass is similar), there's a lot of copying going on
> 
>  GTK+  draws => Temporary double buffer
>                          ||
>                          \/
>                 Offscreen redirected pixmap
>                          ||
>                          \/
>                       ShmPixmap ----------- ShmPixmap
>                                                 ||
>                                                 \/
>                                            OpenGL texture
>                                                 ||
>                                                 \/
>                                      Texture in card / AGP memory
> 
> Just dropping *one* of these four copies isn't enough to make an
> OpenGL CM production ready. If we want hardware acceleration for
> drawing *within* windows (and that includes traditional OpenGL
> clients and Xvideo) then anything that involves pulling image
> data back into main system memory (like a ShmPixmap) needs to be
> avoided.
> 
> Regards,
> 						Owen
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> xorg mailing list
> xorg at freedesktop.org
> http://freedesktop.org/mailman/listinfo/xorg





More information about the xorg mailing list