Re: Compositing managers spec
- From: Lubos Lunak <l lunak suse cz>
- To: wm-spec-list gnome org
- Subject: Re: Compositing managers spec
- Date: Tue, 5 Feb 2008 14:23:47 +0100
On Saturday 02 of February 2008, Carsten Haitzler wrote:
> a lot of apps will update their window by drawing all the parts that
> change. if they do not double-buffer theme selves they will draw directly
> to the front-buffer. this means that to draw a button that goes from light
> red to deep pink and looks pressed-in, it may very easily draw a new base
> color, then draw the lines surrounding the box to make it look indented,
> then redraw the label in the middle. in theory this can easily be half a
> dozen or more damage events for the same region. if the CM simply draws on
> every damage event - u'll get lots of extra compositing going on. if its
> smart it will queue updates and wait until all damage events have been read
> then update. if it gets really smart it may even delay a bit then as more
> damage events may be on their way but not in the buffers yet. it may also
> wait until vsync
>
> sometimes such extra delays that are artificially added beyond draining all
> damage events could lead to bad sync. situations - eg - video players. they
> will update the whole video at once anyway. so for apps hat are "smart"
> about drawing and double-buffer themselves, and care about getting updates
> up ASAP - set a property. for "legacy" or "stupid' apps - the CM can play
> some heuristics games by adding small delays to gathering all damage events
> to make sure it queues up as many as it can for 1 on-screen update to
> improve smoothness of screen updates as much as possible.
There is _NET_WM_SYNC_REQUEST, which is a way to detect when the client has
finished doing a repaint. It is unfortunately bound to ConfigureNotify
events, but I think that's not a real problem in practice.
--
Lubos Lunak
KDE developer
--------------------------------------------------------------
SUSE LINUX, s.r.o. e-mail: l lunak suse cz , l lunak kde org
Lihovarska 1060/12 tel: +420 284 028 972
190 00 Prague 9 fax: +420 284 028 951
Czech Republic http//www.suse.cz
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]