Difference between CompositeRedirectManual and CompositeRedirectAutomatic

Adam Jackson ajax at nwnk.net
Thu May 25 16:32:15 PDT 2006


On Thursday 25 May 2006 15:05, Carlos Eduardo Rodrigues Diógenes wrote:
> Hi,
>
> Can someone explaim what is the difference between
> CompositeRedirectManual and CompositeRedirectAutomatic? I read the
> CompositeExt protocol, but from the informations there I can't
> realize/understand the differences.

In normal uncomposited X rendering, window drawables have their storage 
physically allocated in the front buffer (ie, the pixels scanned out on 
screen).  This is managed through relatively straightforward clip list 
management; when a window is partially occluded, those bits are lost, and 
when they are subsequently exposed the application has to redraw them.

When a compmgr enables automatic redirection for a subtree, the server's 
rendering algorithm changes.  Window drawables are pulled out of the front 
buffer and into backing pixmaps; rendering to these pixmaps is done 
unclipped, and a list of damage is accumulated; this damage is periodically 
(at BlockHandler time) flushed to the front buffer.

Alternatively, the compmgr can enable manual redirection.  Windows are still 
redirected to offscreen pixmaps, but the server does not internally track 
damage for them, nor automatically flush updates to the screen.  Instead, the 
compmgr registers damage listeners for each window it's interested in using 
the X Damage extension to the protocol, and is responsible for periodically 
updating the screen itself.

Automatic redirection is also used internally when the visuals differ between 
parent and child windows.  You can mostly ignore this case for now.

- ajax
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg/attachments/20060525/c2fff95e/attachment.pgp>


More information about the xorg mailing list