From e685e100705c1a5f4ef84b2bc355aa6b6ed0ab18 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Thu, 24 Oct 2013 07:28:18 +0100 Subject: [PATCH] Revert "sna: Remove the move-to-gpu shortcircuiting for partial GPU, no CPU damage" This reverts commit bccbbf8a68faf7aac274efd289d4916083b1a1e3. --- src/sna/sna_accel.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c index 497e0d19..4edfc13b 100644 --- a/src/sna/sna_accel.c +++ b/src/sna/sna_accel.c @@ -3408,8 +3408,21 @@ create_gpu_bo: if (priv->gpu_damage) { assert(priv->gpu_bo); - if (!priv->cpu_damage) - goto use_gpu_bo; + if (!priv->cpu_damage) { + if (sna_damage_contains_box__no_reduce(priv->gpu_damage, + ®ion.extents)) { + DBG(("%s: region wholly contained within GPU damage\n", + __FUNCTION__)); + 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); + goto use_gpu_bo; + } else { + DBG(("%s: partial GPU damage with no CPU damage, continuing to use GPU\n", + __FUNCTION__)); + priv->cpu = false; + goto done; + } + } ret = sna_damage_contains_box(priv->gpu_damage, ®ion.extents); if (ret == PIXMAN_REGION_IN) {