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