From 1d1af825bb4fcfd7c4a54b65292734ba244e096d Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Tue, 29 Jan 2013 02:47:48 +0000 Subject: 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 --- src/cairo-xlib-render-compositor.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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; -- cgit v1.2.3