xf86-video-intel: 2 commits - src/sna/sna_accel.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Jun 13 13:45:37 PDT 2014


 src/sna/sna_accel.c |   20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

New commits:
commit 15485602d8451bcf6c2e979ccbd9cdc11111bcce
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 13 20:30:25 2014 +0100

    sna: Use the right is-clipped hint
    
    The region here has yet to be clipped, and so the only valid is-clipped
    hint is from the flags computed from the PolyRect extents. Make sure we
    use those when determining whether it is valid to discard damage.
    
    Fixes regression from
    commit ad0390068832ad4727371902fe41a85a53de1894 [2.99.903]
    Author: Chris Wilson <chris at chris-wilson.co.uk>
    Date:   Tue Sep 24 10:00:03 2013 +0100
    
    	sna: Separate out copy preferrence from operating in place decision
    
    Reported-by: Nick Bowler <nbowler at draconx.ca>
    Tested-by: Nick Bowler <nbowler at draconx.ca>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79992
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 13fe6ed..ce04ca0 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -14382,16 +14382,15 @@ sna_poly_fill_rect(DrawablePtr draw, GCPtr gc, int n, xRectangle *rect)
 			RegionTranslate(&region, dx, dy);
 		}
 
-		if (region_subsumes_drawable(&region, &pixmap->drawable)) {
-			discard_cpu_damage(sna, priv);
-			hint |= IGNORE_CPU | REPLACES;
-		} else {
-			if ((flags & 2) == 0)
-				hint |= IGNORE_CPU;
-			if (priv->cpu_damage &&
-			    region_subsumes_damage(&region, priv->cpu_damage)) {
+		if ((flags & 2) == 0) {
+			hint |= IGNORE_CPU;
+			if (region_subsumes_drawable(&region, &pixmap->drawable)) {
 				discard_cpu_damage(sna, priv);
-				hint |= IGNORE_CPU;
+				hint |= REPLACES;
+			} else {
+				if (priv->cpu_damage &&
+				    region_subsumes_damage(&region, priv->cpu_damage))
+					discard_cpu_damage(sna, priv);
 			}
 		}
 		if (priv->cpu_damage == NULL) {
commit b082a07a69ba5490fba47766c4f608b1cdf2427e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Jun 13 18:56:57 2014 +0100

    sna: Only discard the CPU bo if we have a GPU bo to transfer the damage to
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=79992
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 72c16d3..13fe6ed 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -6005,7 +6005,8 @@ static void discard_cpu_damage(struct sna *sna, struct sna_pixmap *priv)
 	sna_damage_destroy(&priv->cpu_damage);
 	list_del(&priv->flush_list);
 
-	sna_pixmap_free_cpu(sna, priv, priv->cpu);
+	if (priv->gpu_bo && sna_pixmap_free_cpu(sna, priv, priv->cpu))
+		sna_damage_all(&priv->gpu_damage, priv->pixmap);
 	priv->cpu = false;
 }
 


More information about the xorg-commit mailing list