[PATCH] damageext: Make DamageSubtract actually work for raw-rects mode

Eric Anholt eric at anholt.net
Tue Jul 14 16:58:41 PDT 2015


Adam Jackson <ajax at redhat.com> writes:

> I swear this has come up before, but I have no idea why this isn't
> implemented.  This basically makes the raw mode unusable since you can
> never subtract damage, your only recourse is to destroy the old damage
> and make a new one as the old one saturates in area.  I can't see a good
> reason to leave it broken.

We report the new rectangles arriving, regardless:

    case DamageReportRawRegion:
        RegionUnion(&pDamage->damage, &pDamage->damage, pDamageRegion);
        (*pDamage->damageReport) (pDamage, pDamageRegion, pDamage->closure);

The question I have is why we're bothering to track pDamage->damage for
RawRegion.  It was introduced in:

commit 454cb0802eec3c2c2cdbcc17971bced868462b83
Author: Maarten Maathuis <madman2003 at gmail.com>
Date:   Fri Aug 29 22:28:02 2008 +0200

    damage: DamageReportRawRegion should set pDamage->damage
    
    - I found no evidence in the protocol, that it should be differently from all the other modes.
    - It seems to have been like this from day 1.
    - If anyone has evidence to the contrary, please enlighten me.

but I don't see any reason for it.

The point of RawRectangles is that you don't need to do any subtraction
stuff because the client is just processing the rects as they come in.
I think we should clarify the spec that Subtract is pointless for
RawRectangles.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.x.org/archives/xorg-devel/attachments/20150714/61359b8a/attachment.sig>


More information about the xorg-devel mailing list