From 4afa9e4080eebbee0752e5f45b2ff16df75cb9b1 Mon Sep 17 00:00:00 2001 From: Zhigang Gong Date: Tue, 28 Jun 2011 14:28:19 +0800 Subject: [PATCH] glamor: Prepare/finish access once if src equal to dst. Signed-off-by: Zhigang Gong --- glamor/glamor_copyarea.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/glamor/glamor_copyarea.c b/glamor/glamor_copyarea.c index b1d8cfcea..cebce218b 100644 --- a/glamor/glamor_copyarea.c +++ b/glamor/glamor_copyarea.c @@ -322,6 +322,7 @@ glamor_copy_n_to_n(DrawablePtr src, goto done; return; } + glamor_report_delayed_fallbacks(src->pScreen); glamor_report_delayed_fallbacks(dst->pScreen); @@ -329,11 +330,12 @@ glamor_copy_n_to_n(DrawablePtr src, glamor_get_drawable_location(src), glamor_get_drawable_location(dst)); if (glamor_prepare_access(dst, GLAMOR_ACCESS_RW)) { - if (glamor_prepare_access(src, GLAMOR_ACCESS_RO)) { + if (dst == src || glamor_prepare_access(src, GLAMOR_ACCESS_RO)) { fbCopyNtoN(src, dst, gc, box, nbox, dx, dy, reverse, upsidedown, bitplane, closure); - glamor_finish_access(src); + if (dst != src) + glamor_finish_access(src); } glamor_finish_access(dst); }