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

Chris Wilson ickle at kemper.freedesktop.org
Mon Oct 7 03:57:26 PDT 2013


 src/sna/gen7_render.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

New commits:
commit 55e0f4502657078a666761277bbac56a98b3780c
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Oct 7 11:56:23 2013 +0100

    sna/gen7: Rename debug option ALWAYS_FLUSH to ALWAYS_INVALIDATE
    
    This allows us to distinguish between the texture cache invalidation
    stage versus the opportunistic flushing, and test either.
    
    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 6d5c687..4b60f53 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -45,6 +45,7 @@
 #include "gen4_source.h"
 #include "gen4_vertex.h"
 
+#define ALWAYS_INVALIDATE 0
 #define ALWAYS_FLUSH 0
 #define ALWAYS_STALL 0
 
@@ -1111,7 +1112,7 @@ gen7_emit_state(struct sna *sna,
 	if (ALWAYS_STALL)
 		need_stall = true;
 
-	if (ALWAYS_FLUSH || kgem_bo_is_dirty(op->src.bo) || kgem_bo_is_dirty(op->mask.bo)) {
+	if (ALWAYS_INVALIDATE || kgem_bo_is_dirty(op->src.bo) || kgem_bo_is_dirty(op->mask.bo)) {
 		gen7_emit_pipe_invalidate(sna);
 		kgem_clear_dirty(&sna->kgem);
 		assert(op->dst.bo->exec);
@@ -1119,7 +1120,7 @@ gen7_emit_state(struct sna *sna,
 		sna->render_state.gen7.emit_flush = false;
 		need_stall = false;
 	}
-	if (sna->render_state.gen7.emit_flush && GEN7_READS_DST(op->u.gen7.flags)) {
+	if (ALWAYS_FLUSH || (sna->render_state.gen7.emit_flush && GEN7_READS_DST(op->u.gen7.flags))) {
 		gen7_emit_pipe_flush(sna, need_stall);
 		need_stall = false;
 	}
commit eda87254937509502efacabaa6029a584f67764e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Mon Oct 7 11:54:59 2013 +0100

    sna/gen7: Tweak flushing
    
    We pre-emptively flush the render cache before reads as that seems to
    improve performance. Now try not flushing if we don't subsequently need
    to read from the render cache.
    
    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 9fac7b0f..6d5c687 100644
--- a/src/sna/gen7_render.c
+++ b/src/sna/gen7_render.c
@@ -1119,7 +1119,7 @@ gen7_emit_state(struct sna *sna,
 		sna->render_state.gen7.emit_flush = false;
 		need_stall = false;
 	}
-	if (sna->render_state.gen7.emit_flush) {
+	if (sna->render_state.gen7.emit_flush && GEN7_READS_DST(op->u.gen7.flags)) {
 		gen7_emit_pipe_flush(sna, need_stall);
 		need_stall = false;
 	}


More information about the xorg-commit mailing list