composite manager thoughts

Jaymz Julian jaymz@artificial-stupidity.net
Sun, 28 Dec 2003 04:47:08 +1100


On Thu, Dec 25, 2003 at 12:54:26PM -0800, Keith Packard wrote:
> 
> > * 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.

Actually, they may not be as far removed as you'd think, based on that 
paragraph - when I was at computerbank fixing a bunch of software to
work on very low end (we had kword and kwin running fast on a p100.  a shame
it fell into politics before we got to attack kdesktop/kpanel), one of the 
major usability improvments was adding the Xsync() calls that people had
left out, because they thought it would give them better performance.  It's
the old rule, better *interactive* performance is often completly unreleated
To better *bulk* performance - on a high end machine, of course, you get the
event right now, but on a heavily loaded machine (such as one doing a lot of
compositing ;)), the mouse/key event you just did gets deffered as "not 
important", and sure your system is fast, but it *feels* like shit.

This is also probably why, on my laptop, there is a very noticable delay
between me clicking on the window title bar, and the window starting to drag -
because it is bulking up the events.  This is a *bad thing*.

Anyhow, I agree with you that the window manager isn't the place to do this - 
I just don't think that will stop window manager authors from doing it 
anyhow.  But maybe I'm just being cynical

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

looking forward to seeing it.  performance can be fixed :). (note the smiley,
btw - this was not a serious statement)

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

hrm, you could be riGht there

	-- jj

--
Jaymz Julian aka A Life in Hell / Warriors of the Wasteland / Unreal
Coder, Visionary, Fat Ass.
"Hannibal is a serial killer. He only likes to kill and eat people. 
 Very few people have `I want to be killed and eaten' on their cards, 
 so Hannibal is out of a job." - http://cards.sf.net