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

Chris Wilson ickle at kemper.freedesktop.org
Fri Feb 22 04:14:28 PST 2013


 src/sna/gen7_render.c |    6 ++++--
 src/sna/sna_accel.c   |   12 +++++-------
 2 files changed, 9 insertions(+), 9 deletions(-)

New commits:
commit b129b434f98b9d875e44af206f6901de9bf28334
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Feb 22 12:10:20 2013 +0000

    sna: Optimise mmap of GPU bo for read-read operations
    
    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 b9e37f1..81fe165 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -1626,11 +1626,9 @@ skip_inplace_map:
 	}
 
 	if (priv->gpu_damage && priv->cpu_damage == NULL &&
-	    ((flags & MOVE_ASYNC_HINT) == 0 ||
-	     !__kgem_bo_is_busy(&sna->kgem, priv->gpu_bo)) &&
-	    priv->gpu_bo->tiling == I915_TILING_NONE) {
-		kgem_bo_submit(&sna->kgem, priv->gpu_bo);
-
+	    priv->gpu_bo->tiling == I915_TILING_NONE &&
+	    ((flags & (MOVE_WRITE | MOVE_ASYNC_HINT)) == 0 ||
+	     !__kgem_bo_is_busy(&sna->kgem, priv->gpu_bo))) {
 		DBG(("%s: try to operate inplace (CPU)\n", __FUNCTION__));
 
 		assert(!priv->mapped);
commit 19bd005056a2083de64753681b96716996e4237d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Feb 22 12:05:04 2013 +0000

    sna: Avoid migrating and making the GPU bo busy prior to mmapping it
    
    References: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/1131134
    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 802fd19..b9e37f1 100644
--- a/src/sna/sna_accel.c
+++ b/src/sna/sna_accel.c
@@ -1625,11 +1625,10 @@ skip_inplace_map:
 		priv->mapped = false;
 	}
 
-	if (priv->gpu_damage &&
+	if (priv->gpu_damage && priv->cpu_damage == NULL &&
 	    ((flags & MOVE_ASYNC_HINT) == 0 ||
 	     !__kgem_bo_is_busy(&sna->kgem, priv->gpu_bo)) &&
-	    priv->gpu_bo->tiling == I915_TILING_NONE &&
-	    sna_pixmap_move_to_gpu(pixmap, MOVE_READ)) {
+	    priv->gpu_bo->tiling == I915_TILING_NONE) {
 		kgem_bo_submit(&sna->kgem, priv->gpu_bo);
 
 		DBG(("%s: try to operate inplace (CPU)\n", __FUNCTION__));
@@ -1653,7 +1652,8 @@ skip_inplace_map:
 			}
 
 			kgem_bo_sync__cpu_full(&sna->kgem,
-					       priv->gpu_bo, flags & MOVE_WRITE);
+					       priv->gpu_bo,
+					       flags & MOVE_WRITE);
 			assert_pixmap_damage(pixmap);
 			DBG(("%s: operate inplace (CPU)\n", __FUNCTION__));
 			return true;
commit afb77ffadedf6c6f9321dde1d650004714accdc4
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Feb 22 10:48:06 2013 +0000

    sna/gen7: Skip CLEAR_PARAMS for the null depthbuffer
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index 8a08839..d9bb18d 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -692,9 +692,11 @@ gen7_emit_null_depth_buffer(struct sna *sna)
 	OUT_BATCH(0);
 	OUT_BATCH(0);
 
+#if 0
 	OUT_BATCH(GEN7_3DSTATE_CLEAR_PARAMS | (3 - 2));
 	OUT_BATCH(0);
 	OUT_BATCH(0);
+#endif
 }
 
 static void
commit 1a7262e5308c9ab416ed87226ed27a9fc84f0ef9
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Feb 22 10:30:49 2013 +0000

    sna/gen7: Only a pipeline stall is required for the CA pass
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/gen7_render.c b/src/sna/gen7_render.c
index f05d6f9..8a08839 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1063,7 +1063,7 @@ static bool gen7_magic_ca_pass(struct sna *sna,
 	DBG(("%s: CA fixup (%d -> %d)\n", __FUNCTION__,
 	     sna->render.vertex_start, sna->render.vertex_index));
 
-	gen7_emit_pipe_invalidate(sna);
+	gen7_emit_pipe_stall(sna);
 
 	gen7_emit_cc(sna,
 		     GEN7_BLEND(gen7_get_blend(PictOpAdd, true,
@@ -1304,7 +1304,7 @@ static int gen7_get_rectangles__flush(struct sna *sna,
 	if (sna->render.vertex_offset) {
 		gen4_vertex_flush(sna);
 		if (gen7_magic_ca_pass(sna, op)) {
-			gen7_emit_pipe_invalidate(sna);
+			gen7_emit_pipe_stall(sna);
 			gen7_emit_cc(sna, GEN7_BLEND(op->u.gen7.flags));
 			gen7_emit_wm(sna, GEN7_KERNEL(op->u.gen7.flags));
 		}


More information about the xorg-commit mailing list