diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2013-01-29 02:47:48 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2013-01-29 02:47:48 +0000 |
commit | 1d1af825bb4fcfd7c4a54b65292734ba244e096d (patch) | |
tree | 1a4986f51c448f9daab848292163481575622212 | |
parent | 3c18bae20ee2fea24d75f6986390ef8157d0207d (diff) |
xlib/shm: Tighten mark-active to the actual CopyArea on the ShmPixmap
Along the draw_image_boxes() upload path, we were actually marking the
ShmPixmap as still active for the subsequent drawing operation - which
could in theory never be submitted...
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | src/cairo-xlib-render-compositor.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cairo-xlib-render-compositor.c b/src/cairo-xlib-render-compositor.c index 3540d1fd..94abe9ee 100644 --- a/src/cairo-xlib-render-compositor.c +++ b/src/cairo-xlib-render-compositor.c @@ -168,6 +168,7 @@ copy_image_boxes (void *_dst, int x2 = _cairo_fixed_integer_part (boxes->chunks.base[0].p2.x); int y2 = _cairo_fixed_integer_part (boxes->chunks.base[0].p2.y); + _cairo_xlib_shm_surface_mark_active (&image->base); XCopyArea (dst->dpy, src, dst->drawable, gc, x1 + dx, y1 + dy, x2 - x1, y2 - y1, @@ -201,6 +202,7 @@ copy_image_boxes (void *_dst, } XSetClipRectangles (dst->dpy, gc, 0, 0, rects, j, Unsorted); + _cairo_xlib_shm_surface_mark_active (&image->base); XCopyArea (dst->dpy, src, dst->drawable, gc, 0, 0, image->width, image->height, -dx, -dy); XSetClipMask (dst->dpy, gc, None); @@ -209,7 +211,6 @@ copy_image_boxes (void *_dst, free (rects); } - _cairo_xlib_shm_surface_mark_active (&image->base); _cairo_xlib_surface_put_gc (dst->display, dst, gc); release (dst); return CAIRO_STATUS_SUCCESS; |