[PATCH v2 1/6] Revert "composite: Convert compWindowUpdate to use TraverseTree"

Daniel Stone daniel at fooishbar.org
Fri Dec 31 07:07:13 PST 2010


On Fri, Dec 31, 2010 at 04:49:34PM +0200, ville.syrjala at nokia.com wrote:
> From: Ville Syrjälä <ville.syrjala at nokia.com>
> 
> TraverseTree visits the parent before the children. When performing
> the automatic redirection updates, the children must be visited before
> the parent.
> 
> If there are automatically redirected windows on multiple levels of the
> tree, updating the parents before the children would cause the parent
> updates to use stale data for areas covered by the children. Also
> updating the damaged children would re-damage the parent, which would
> cause additional walks over the tree.
> 
> In the worst case with an unbroken chain of automatically redirected
> subwindows, all of which are damaged, only the leaf window would be
> properly updated on the first round. Then it's parent would be properly
> updated on the second round, and so on. And on every round all of the
> ancestor windows would be updated as well, but with stale data.
> So with N damaged windows you would end up with (N^2+N)/2 updates,
> instead of the expected N.
> 
> This reverts commit 648c8871c92727d7b6b16859f27f12266a06a16e.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala at nokia.com>

Reviewed-by: Daniel Stone <daniel at fooishbar.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.x.org/archives/xorg-devel/attachments/20101231/cfb9a1fd/attachment-0001.pgp>


More information about the xorg-devel mailing list