From 6997c4c2bde319fdf73ead8a9c9965f6548545eb Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Mon, 26 Aug 2013 22:07:49 +0100 Subject: [PATCH] sna: Promote no COWs assertion to a condition check before operating inplace We can arrive there with a COW and wanting to a CPU mapping, which is unfortunate and requires the indirect path instead. Signed-off-by: Chris Wilson --- src/sna/sna_accel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index d6a8dbf2..9db3f27d 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -2363,6 +2363,7 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable, if (USE_INPLACE && priv->gpu_damage && priv->gpu_bo->tiling == I915_TILING_NONE && + (priv->cow == NULL || (flags & MOVE_WRITE) == 0) && (DAMAGE_IS_ALL(priv->gpu_damage) || sna_damage_contains_box__no_reduce(priv->gpu_damage, ®ion->extents)) && @@ -2371,7 +2372,6 @@ sna_drawable_move_region_to_cpu(DrawablePtr drawable, !__kgem_bo_is_busy(&sna->kgem, priv->gpu_bo))) { DBG(("%s: try to operate inplace (CPU), read? %d, write? %d\n", __FUNCTION__, !!(flags & MOVE_READ), !!(flags & MOVE_WRITE))); - assert(priv->cow == NULL || (flags & MOVE_WRITE) == 0); assert(sna_damage_contains_box(priv->gpu_damage, ®ion->extents) == PIXMAN_REGION_IN); assert(sna_damage_contains_box(priv->cpu_damage, ®ion->extents) == PIXMAN_REGION_OUT);