diff options
-rw-r--r-- | src/sna/sna_dri2.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/sna/sna_dri2.c b/src/sna/sna_dri2.c index f2f2c1d3..4ee76627 100644 --- a/src/sna/sna_dri2.c +++ b/src/sna/sna_dri2.c @@ -1421,25 +1421,30 @@ sna_dri2_copy_region(DrawablePtr draw, PixmapPtr pixmap = get_drawable_pixmap(draw); struct sna *sna = to_sna_from_pixmap(pixmap); - DBG(("%s: pixmap=%ld, src=%u (refs=%d/%d, flush=%d, attach=%d) , dst=%u (refs=%d/%d, flush=%d, attach=%d)\n", + DBG(("%s: pixmap=%ld, src=%u (attach=%d, refs=%d/%d, flush=%d, stale=%d) , dst=%u (attach=%d, refs=%d/%d, flush=%d, stale=%d)\n", __FUNCTION__, pixmap->drawable.serialNumber, get_private(src)->bo->handle, + src->attachment, get_private(src)->refcnt, get_private(src)->bo->refcnt, get_private(src)->bo->flush, - src->attachment, + get_private(src)->stale, get_private(dst)->bo->handle, + dst->attachment, get_private(dst)->refcnt, get_private(dst)->bo->refcnt, get_private(dst)->bo->flush, - dst->attachment)); + get_private(dst)->stale)); assert(src != dst); assert(get_private(src)->refcnt); assert(get_private(dst)->refcnt); + if (get_private(src)->stale) + return; + assert(get_private(src)->bo != get_private(dst)->bo); assert(get_private(src)->bo->refcnt); |