From b790ba2ec9ead51227d85fc8630bc7505eb7d7b3 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Fri, 6 Apr 2012 15:38:02 +0100 Subject: [PATCH] sna: Correct the damage offset for redirected rendering Reported-by: Clemens Eisserer Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48385 Signed-off-by: Chris Wilson --- src/sna/sna_damage.c | 9 ++++----- src/sna/sna_render.c | 3 +-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/sna/sna_damage.c b/src/sna/sna_damage.c index 9c646d86..f2d682d5 100644 --- a/src/sna/sna_damage.c +++ b/src/sna/sna_damage.c @@ -945,8 +945,11 @@ struct sna_damage *_sna_damage_is_all(struct sna_damage *damage, { DBG(("%s(%d, %d)%s?\n", __FUNCTION__, width, height, damage->dirty ? "*" : "")); - assert(damage->mode == DAMAGE_ADD); + DBG(("%s: (%d, %d), (%d, %d)\n", __FUNCTION__, + damage->extents.x1, damage->extents.y1, + damage->extents.x2, damage->extents.y2)); + assert(damage->mode == DAMAGE_ADD); assert(damage->extents.x1 == 0 && damage->extents.y1 == 0 && damage->extents.x2 == width && @@ -962,10 +965,6 @@ struct sna_damage *_sna_damage_is_all(struct sna_damage *damage, return damage; } - DBG(("%s: (%d, %d), (%d, %d)\n", __FUNCTION__, - damage->extents.x1, damage->extents.y1, - damage->extents.x2, damage->extents.y2)); - assert(damage->extents.x1 == 0 && damage->extents.y1 == 0 && damage->extents.x2 == width && diff --git a/src/sna/sna_render.c b/src/sna/sna_render.c index d774a349..8af80f27 100644 --- a/src/sna/sna_render.c +++ b/src/sna/sna_render.c @@ -1878,8 +1878,7 @@ sna_render_composite_redirect_done(struct sna *sna, } if (t->damage) { sna_damage_combine(t->real_damage, t->damage, - t->box.x1 - op->dst.x, - t->box.y1 - op->dst.y); + -t->box.x1, -t->box.y1); __sna_damage_destroy(t->damage); }