From b879de6246d3f2e66e9c7e326db93e5ff390159f Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 11 Jun 2014 14:08:31 +0100 Subject: [PATCH] sna: Recheck source bo after migrating dst (in case of src == dst) Signed-off-by: Chris Wilson --- src/sna/sna_blt.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/sna/sna_blt.c b/src/sna/sna_blt.c index 958d4f97..f3a9cc2c 100644 --- a/src/sna/sna_blt.c +++ b/src/sna/sna_blt.c @@ -2789,8 +2789,13 @@ fill: tmp->dst.bo = sna_drawable_use_bo(dst->pDrawable, hint, &dst_box, &tmp->damage); - if (tmp->dst.bo && hint & REPLACES) - kgem_bo_undo(&sna->kgem, tmp->dst.bo); + if (tmp->dst.bo && hint & REPLACES) { + struct sna_pixmap *priv = sna_pixmap(tmp->dst.pixmap); + kgem_bo_pair_undo(&sna->kgem, priv->gpu_bo, priv->cpu_bo); + } + + if (tmp->dst.pixmap == src_pixmap) + bo = __sna_render_pixmap_bo(sna, src_pixmap, &src_box, true); ret = false; if (bo) {