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

Chris Wilson ickle at kemper.freedesktop.org
Wed Oct 23 23:35:20 PDT 2013


 man/intel.man       |   10 ++++++++++
 src/sna/sna_accel.c |   16 ++++++++++++++--
 2 files changed, 24 insertions(+), 2 deletions(-)

New commits:
commit 638d4f60285709b6efc04cef72d4b530460e3239
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Tue Oct 22 14:22:14 2013 +0100

    sna: Remove the move-to-gpu shortcircuiting for partial GPU, no CPU damage
    
    Otherwise we may not correctly undo COW or pending move-to-gpu updates.
    
    v2: goto move_to_gpu instead for correcting the damage handling.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70821
    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 4edfc13..a1de360 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -3419,8 +3419,7 @@ create_gpu_bo:
 			} else {
 				DBG(("%s: partial GPU damage with no CPU damage, continuing to use GPU\n",
 				     __FUNCTION__));
-				priv->cpu = false;
-				goto done;
+				goto move_to_gpu;
 			}
 		}
 
commit e685e100705c1a5f4ef84b2bc355aa6b6ed0ab18
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Oct 24 07:28:18 2013 +0100

    Revert "sna: Remove the move-to-gpu shortcircuiting for partial GPU, no CPU damage"
    
    This reverts commit bccbbf8a68faf7aac274efd289d4916083b1a1e3.

diff --git a/src/sna/sna_accel.c b/src/sna/sna_accel.c
index 497e0d1..4edfc13 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,
+							       &region.extents)) {
+				DBG(("%s: region wholly contained within GPU damage\n",
+				     __FUNCTION__));
+				assert(sna_damage_contains_box(priv->gpu_damage, &region.extents) == PIXMAN_REGION_IN);
+				assert(sna_damage_contains_box(priv->cpu_damage, &region.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, &region.extents);
 		if (ret == PIXMAN_REGION_IN) {
commit bd20791e8e4a9b8aa8e8dfe1cc76e91a471f5c67
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Oct 23 16:15:35 2013 +0100

    man: Describe the TearFree option
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/man/intel.man b/man/intel.man
index cd217b1..d1ec01c 100644
--- a/man/intel.man
+++ b/man/intel.man
@@ -134,6 +134,16 @@ disable render acceleration and only use the BLT engine.
 .IP
 Default: use UXA (render acceleration)
 .TP
+.BI "Option \*qTearFree\*q \*q" boolean \*q
+Disable or enable TearFree updates. This option forces X to perform all
+rendering to a backbuffer prior to updating the actual display. That update
+is then performed synchronously with the vertical refresh of the display so
+that the entire update is complete before the display starts its refresh.
+That is only one frame is ever visible, preventing an unsightly tear between
+two visible differing frames.
+.IP
+Default: TearFree is disabled.
+.TP
 .BI "Option \*qReprobeOutputs\*q \*q" boolean \*q
 Disable or enable rediscovery of connected displays during server startup.
 As the kernel driver loads it scans for connected displays and configures a


More information about the xorg-commit mailing list