composite manager thoughts

Jim Gettys Jim.Gettys@hp.com
Sat, 27 Dec 2003 06:41:41 -0500


I'm wondering if an X synchronization extension based 
implementation, even without vertical retrace, is a useful
alternative to use of XSync.

Have you tried that alternative?

It may be possible to do a single WM and compositor using
two connections, as well....
                     - Jim

On Thu, 2003-12-25 at 15:54, Keith Packard wrote:
> Around 2 o'clock on Dec 26, Jaymz Julian wrote:
> 
> >  * I would like to see the composite manager split up into a libcompmgr, and a
> >  * main refrence application.
> 
> Seems like a good plan; I've discovered a lot of parallels between 
> xcompmgr and uncover.  Perhaps the library should support both manual and 
> automatic update clients.
> 
> > * Window managers will probably want to do compositing themselves in some
> >   cases, for example, in order to implented the macosx style "genie" minimise
> >   effect correctly.
> 
> Hmm.  One of the things I've discovered is that the basic event processing 
> technique is very different in the compositing mananager -- I tried a lot 
> of things and ended up using XSync (!) as the best performing solution.  
> Window managers generally don't want to use that as they prefer to batch 
> processing of long sequences of events and overlapping event delivery and 
> request processing.
> 
> I don't know if we can get a window manager doing compositing as smoothly; 
> so we may need to design with the possibility that separate compositing 
> manager connections are a necessity.  That doesn't require separate 
> compositing managers, but it may be nice to preserve this.  Some mechanism 
> for cooperation between the window manager and compositing manager would 
> be required to perform some effects; at a minimum, we could have the WM 
> create an appropriate ARGB window and just paint into that.
> 
> > (side note: i added a '-noshadows' flag to my local tree, which i have no
> > short terms plans to commit, since it falls under the definition of
> > "nontrivial functionality change" rather than optimization ;), which makes
> > things a *lot* faster under the current code base - as in, 3x faster, because
> > compositing with a mask is hideously slow right now.  The above would be a
> > much better way to handle both of my shadow issues.  I attached the patch in
> > case anyone is interested to use it, tho, anyhow, but it's for curiosity at
> > best).
> 
> I've also got the 'true' shadow code sitting on my disk; that doesn't 
> create an explicit shadow mask, rather using the alpha value for the 
> window itself, allowing shadows to follow the translucency of the window 
> around shapes.  I was waiting to test server-side convolution before 
> committing that; I expect performance there to be terrible though.
> 
> > I don't have a written down API spec or anything like that yet, obvisouly,
> > because I wanted to test the waters before I put in much work in this
> > direction.  So, I guess this is a "tell me what you think" thing more than a
> > "here is something concrete that i am going to implent" thing.  Flame on!
> 
> I think it would be useful to have a library that could track the top-level
> window geometry; I think that's the hardest part right now that will be 
> shared by any compositing client.  I'm sure there are other bits we could 
> stick in it as well.
> 
> -keith
> 
> 
> 
> _______________________________________________
> Xserver mailing list
> Xserver@pdx.freedesktop.org
> http://pdx.freedesktop.org/cgi-bin/mailman/listinfo/xserver
-- 
Jim Gettys <Jim.Gettys@hp.com>
HP Labs, Cambridge Research Laboratory