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