xf86-video-intel: src/sna/gen7_render.c src/sna/sna_display.c src/sna/sna_dri.c

Chris Wilson ickle at kemper.freedesktop.org
Wed Jan 23 10:06:03 PST 2013


 src/sna/gen7_render.c |    5 ++---
 src/sna/sna_display.c |    2 +-
 src/sna/sna_dri.c     |    7 +++++--
 3 files changed, 8 insertions(+), 6 deletions(-)

New commits:
commit ea8148b24d48db4f46205817db8a55dd6ea1a4b3
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Wed Jan 23 17:47:12 2013 +0000

    sna/dri: Prefer to use the BLT ring for vsync'ed copies on IVB+
    
    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 0766075..fa36ce6 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -2564,12 +2564,11 @@ static inline bool prefer_blt_copy(struct sna *sna,
 				   struct kgem_bo *dst_bo,
 				   unsigned flags)
 {
-	if (flags & COPY_SYNC)
-		return false;
-
 	if (sna->kgem.ring == KGEM_BLT)
 		return true;
 
+	assert((flags & COPY_SYNC) == 0);
+
 	if (src_bo == dst_bo && can_switch_to_blt(sna, dst_bo, flags))
 		return true;
 
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index e1c0279..6955536 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -2847,7 +2847,7 @@ static bool sna_emit_wait_for_scanline_gen6(struct sna *sna,
 
 	assert(y1 >= 0);
 	assert(y2 > y1);
-	assert(sna->kgem.mode);
+	assert(sna->kgem.mode == KGEM_RENDER);
 
 	/* Always program one less than the desired value */
 	if (--y1 < 0)
diff --git a/src/sna/sna_dri.c b/src/sna/sna_dri.c
index b48894e..086332c 100644
--- a/src/sna/sna_dri.c
+++ b/src/sna/sna_dri.c
@@ -513,8 +513,11 @@ static void sna_dri_select_mode(struct sna *sna, struct kgem_bo *dst, struct kge
 		return;
 
 	if (sync) {
-		DBG(("%s: sync, force RENDER ring\n", __FUNCTION__));
-		kgem_set_mode(&sna->kgem, KGEM_RENDER, dst);
+		DBG(("%s: sync, force %s ring\n", __FUNCTION__,
+		     sna->kgem.gen >= 070 ? "BLT" : "RENDER"));
+		kgem_set_mode(&sna->kgem,
+			      sna->kgem.gen >= 070 ? KGEM_BLT : KGEM_RENDER,
+			      dst);
 		return;
 	}
 


More information about the xorg-commit mailing list