My guess is that there is a path with a missing sync point, like this one:
diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index 69a151c..be73e27 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -4861,6 +4861,13 @@ sna_copy_boxes(DrawablePtr src, DrawablePtr dst, GCPtr gc, } }
+ RegionTranslate(region, src_dx, src_dy); + ret = sna_drawable_move_region_to_cpu(&src_pixmap->drawable, + region, MOVE_READ); + RegionTranslate(region, -src_dx, -src_dy); + if (!ret) + goto fallback; + if (alu != GXcopy) { PixmapPtr tmp; struct kgem_bo *src_bo;
My guess is that there is a path with a missing sync point, like this one:
diff --git a/src/sna/ sna_accel. c b/src/sna/ sna_accel. c sna_accel. c sna_accel. c boxes(DrawableP tr src, DrawablePtr dst, GCPtr gc,
index 69a151c..be73e27 100644
--- a/src/sna/
+++ b/src/sna/
@@ -4861,6 +4861,13 @@ sna_copy_
}
}
+ RegionTranslate (region, src_dx, src_dy); move_region_ to_cpu( &src_pixmap- >drawable, (region, -src_dx, -src_dy);
+ ret = sna_drawable_
+ region, MOVE_READ);
+ RegionTranslate
+ if (!ret)
+ goto fallback;
+
if (alu != GXcopy) {
PixmapPtr tmp;
struct kgem_bo *src_bo;