sna: Fix offset for combining damage

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2012-05-03 17:35:10 +01:00
parent 1376c81dbf
commit 19fd24a4db
2 changed files with 6 additions and 2 deletions

View File

@ -36,7 +36,8 @@ static inline void sna_damage_combine(struct sna_damage **l,
struct sna_damage *r,
int dx, int dy)
{
*l = _sna_damage_combine(*l, r, dx, dy);
assert(!DAMAGE_IS_ALL(*l));
*l = _sna_damage_combine(*l, DAMAGE_PTR(r), dx, dy);
}
fastcall struct sna_damage *_sna_damage_add(struct sna_damage *damage,

View File

@ -1869,6 +1869,7 @@ sna_render_composite_redirect(struct sna *sna,
t->real_bo = op->dst.bo;
t->real_damage = op->damage;
if (op->damage) {
assert(!DAMAGE_IS_ALL(op->damage));
t->damage = sna_damage_create();
op->damage = &t->damage;
}
@ -1899,8 +1900,10 @@ sna_render_composite_redirect_done(struct sna *sna,
&t->box, 1);
}
if (t->damage) {
DBG(("%s: combining damage, offset=(%d, %d)\n",
__FUNCTION__, t->box.x1, t->box.y1));
sna_damage_combine(t->real_damage, t->damage,
-t->box.x1, -t->box.y1);
t->box.x1, t->box.y1);
__sna_damage_destroy(t->damage);
}