ProcDamageCreate emits a damage event - why?
Erkki Seppala
erkki.seppala at vincit.fi
Wed Mar 23 04:24:22 PDT 2011
Hello,
I'm investigating an issue where applications receive damage events when
they create a new damage object. The code in question is this:
static int
ProcDamageCreate (ClientPtr client)
{
..
if (pDrawable->type == DRAWABLE_WINDOW)
{
pRegion = &((WindowPtr) pDrawable)->borderClip;
DamageDamageRegion(pDrawable, pRegion);
}
return Success;
}
and the relevant commit message for this 7-year old change by Keith at:
http://webcvs.freedesktop.org/xserver/xserver/damageext/damageext.c?r1=1.4&r2=1.5&pathrev=MAIN
is this:
* damageext/damageext.c: (ProcDamageCreate):
Add borderClip to damage on creation so that clients
needn't guess.
So what kind of guessing are we talking about here? What is the downside
of removing this initial damage event? The downside with the current
code is that it can lead to some excess work when no damage has
occurred. (I wonder if the behavior can changed, though, if some
applications already depend on it.)
The documentation at
http://cgit.freedesktop.org/xorg/proto/damageproto/plain/damageproto.txt
is somewhat sparse..
More information about the xorg-devel
mailing list