xf86-video-intel: src/sna/sna_accel.c
Chris Wilson
ickle at kemper.freedesktop.org
Sun Apr 1 11:44:48 PDT 2012
src/sna/sna_accel.c | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)
New commits:
commit 0b2651dc04cef8f9692b2557684f044b4980700f
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sun Apr 1 19:43:15 2012 +0100
sna: Apply composite offset to damage for spans fast paths
Reported-by: Jiri Slaby <jirislaby at gmail.com>
References: https://bugs.freedesktop.org/show_bug.cgi?id=47597
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 20d9166..9829ada 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -6665,8 +6665,12 @@ spans_fallback:
gc->ops = (GCOps *)&sna_gc_ops;
assert_pixmap_contains_box(data.pixmap, &data.region.extents);
- if (data.damage)
+ if (data.damage) {
+ if (data.dx | data.dy)
+ pixman_region_translate(&data.region, data.dx, data.dy);
+ assert_pixmap_contains_box(data.pixmap, &data.region.extents);
sna_damage_add(data.damage, &data.region);
+ }
RegionUninit(&data.region);
return;
}
@@ -7579,8 +7583,12 @@ spans_fallback:
}
gc->ops = (GCOps *)&sna_gc_ops;
- if (data.damage)
+ if (data.damage) {
+ if (data.dx | data.dy)
+ pixman_region_translate(&data.region, data.dx, data.dy);
+ assert_pixmap_contains_box(data.pixmap, &data.region.extents);
sna_damage_add(data.damage, &data.region);
+ }
RegionUninit(&data.region);
return;
}
@@ -8299,8 +8307,12 @@ sna_poly_arc(DrawablePtr drawable, GCPtr gc, int n, xArc *arc)
gc->ops = (GCOps *)&sna_gc_ops;
fill.done(data.sna, &fill);
- if (data.damage)
+ if (data.damage) {
+ if (data.dx | data.dy)
+ pixman_region_translate(&data.region, data.dx, data.dy);
+ assert_pixmap_contains_box(data.pixmap, &data.region.extents);
sna_damage_add(data.damage, &data.region);
+ }
RegionUninit(&data.region);
return;
}
@@ -8645,8 +8657,12 @@ sna_poly_fill_polygon(DrawablePtr draw, GCPtr gc,
}
gc->ops = (GCOps *)&sna_gc_ops;
- if (data.damage)
+ if (data.damage) {
+ if (data.dx | data.dy)
+ pixman_region_translate(&data.region, data.dx, data.dy);
+ assert_pixmap_contains_box(data.pixmap, &data.region.extents);
sna_damage_add(data.damage, &data.region);
+ }
RegionUninit(&data.region);
return;
}
@@ -10207,8 +10223,12 @@ sna_poly_fill_arc(DrawablePtr draw, GCPtr gc, int n, xArc *arc)
}
gc->ops = (GCOps *)&sna_gc_ops;
- if (data.damage)
+ if (data.damage) {
+ if (data.dx | data.dy)
+ pixman_region_translate(&data.region, data.dx, data.dy);
+ assert_pixmap_contains_box(data.pixmap, &data.region.extents);
sna_damage_add(data.damage, &data.region);
+ }
RegionUninit(&data.region);
return;
}
More information about the xorg-commit
mailing list