XDamage extension over-reports window damage

Jonathan Lennox lennox at cs.columbia.edu
Wed Feb 2 17:43:25 PST 2005


On Wednesday, February 2 2005, "Keith Packard" wrote to "Jonathan Lennox, Keith Packard, xorg at lists.freedesktop.org" saying:

> 
> Around 16 o'clock on Feb 2, Jonathan Lennox wrote:
> 
> > Thus, for damage to windows, I clip the region of damage reports, based on
> > the window's clipList or NotClippedByChildren regions and the relevant GC's
> > subWindowMode.
> 
> These clip lists correspond to the area of the window's pixmap covered by 
> the window, and so they work in the presense of the Composite extension.

Great!  I thought that was the case, but I wasn't sure.

> > I'm not positive this is correct for the two render damage operations
> > (damageComposite and damageGlyphs),
> 
> There's a subWindowMode in the Picture matching that in the GC, making 
> these exactly comparable.

Also great.  It's pDst's subWindowMode that's relevant, right?

> > or for calls to DamageDamageRegion made outside of miext/damage/damage.c.
> 
> There aren't a lot of those, and I think it's probably better to just 
> leave them alone for now.

Okay, that's easy enough.

> An enumeration might be useful so we could 
> track where it's being used.

In monolithic 6.8.1's Xserver, it's just used in composite/compalloc.c,
composite/compwindow.c (twice), and damageext/damageext.c.  None of these
would likely gain much from being clipped, I don't think.

> > I'm also not certain what happens for windows with a backing store.
> 
> That's why the existing Damage code doesn't use the clipList region.  
> The current backing store code needs to be discarded and replaced with 
> Composite both so that it's more efficient and also so that it matches the 
> semantics required by the X specification.
> 
> I think for now we'll have to just use the existing mess when windows have 
> backing store.  We can eliminate that code when we replace the backing 
> store code with a Composite-based implementation.

Okay, I'll just disable the clip if (((WindowPtr)pDrawable)->backingStore !=
NotUseful).

I'll send a revised patch tomorrow.

-- 
Jonathan Lennox
lennox at cs.columbia.edu



More information about the xorg mailing list