xf86-video-intel: 2 commits - src/sna/gen8_render.c src/sna/gen8_render.h src/sna/gen9_render.c src/sna/gen9_render.h src/sna/kgem.h
Chris Wilson
ickle at kemper.freedesktop.org
Sun Apr 17 15:02:45 UTC 2016
src/sna/gen8_render.c | 1 +
src/sna/gen8_render.h | 1 +
src/sna/gen9_render.c | 1 +
src/sna/gen9_render.h | 1 +
src/sna/kgem.h | 2 +-
5 files changed, 5 insertions(+), 1 deletion(-)
New commits:
commit 81029be07380090195d165fab91d3e1fe1d84bb9
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sun Apr 17 15:59:36 2016 +0100
sna/gen8+: Flush pipecontrols when forcing a pipeline stall
In order to actually stall the pipeline completely and to wait for
earlier flushes to complete, we have to set a flag in the pipecontrol.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c
index 0947576..f979ba8 100644
--- a/src/sna/gen8_render.c
+++ b/src/sna/gen8_render.c
@@ -1201,6 +1201,7 @@ gen8_emit_pipe_stall(struct sna *sna)
{
OUT_BATCH(GEN8_PIPE_CONTROL | (6 - 2));
OUT_BATCH(PIPE_CONTROL_CS_STALL |
+ PIPE_CONTROL_FLUSH |
PIPE_CONTROL_STALL_AT_SCOREBOARD);
OUT_BATCH64(0);
OUT_BATCH64(0);
diff --git a/src/sna/gen8_render.h b/src/sna/gen8_render.h
index eb4928e..e6a8dc5 100644
--- a/src/sna/gen8_render.h
+++ b/src/sna/gen8_render.h
@@ -335,6 +335,7 @@
#define PIPE_CONTROL_IS_FLUSH (1 << 11)
#define PIPE_CONTROL_TC_FLUSH (1 << 10)
#define PIPE_CONTROL_NOTIFY_ENABLE (1 << 8)
+#define PIPE_CONTROL_FLUSH (1 << 7)
#define PIPE_CONTROL_GLOBAL_GTT (1 << 2)
#define PIPE_CONTROL_LOCAL_PGTT (0 << 2)
#define PIPE_CONTROL_STALL_AT_SCOREBOARD (1 << 1)
diff --git a/src/sna/gen9_render.c b/src/sna/gen9_render.c
index 3c1f07a..7b41cdb 100644
--- a/src/sna/gen9_render.c
+++ b/src/sna/gen9_render.c
@@ -1211,6 +1211,7 @@ gen9_emit_pipe_stall(struct sna *sna)
{
OUT_BATCH(GEN9_PIPE_CONTROL | (6 - 2));
OUT_BATCH(PIPE_CONTROL_CS_STALL |
+ PIPE_CONTROL_FLUSH |
PIPE_CONTROL_STALL_AT_SCOREBOARD);
OUT_BATCH64(0);
OUT_BATCH64(0);
diff --git a/src/sna/gen9_render.h b/src/sna/gen9_render.h
index e8fafb5..e3cb3f9 100644
--- a/src/sna/gen9_render.h
+++ b/src/sna/gen9_render.h
@@ -344,6 +344,7 @@
#define PIPE_CONTROL_IS_FLUSH (1 << 11)
#define PIPE_CONTROL_TC_FLUSH (1 << 10)
#define PIPE_CONTROL_NOTIFY_ENABLE (1 << 8)
+#define PIPE_CONTROL_FLUSH (1 << 7)
#define PIPE_CONTROL_GLOBAL_GTT (1 << 2)
#define PIPE_CONTROL_LOCAL_PGTT (0 << 2)
#define PIPE_CONTROL_STALL_AT_SCOREBOARD (1 << 1)
commit f7f5ef714f79be362edb6a59de4ff02d4c235b5e
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Sun Apr 17 14:24:26 2016 +0100
sna: Tweak flushing before adding a new bo into a batch
Try to reduce the frequency we flush between operations, to only
consider known-idle bo.
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
diff --git a/src/sna/kgem.h b/src/sna/kgem.h
index c62e51c..cd07756 100644
--- a/src/sna/kgem.h
+++ b/src/sna/kgem.h
@@ -422,7 +422,7 @@ static inline void kgem_set_mode(struct kgem *kgem,
kgem_submit(kgem);
#endif
- if (kgem->nreloc && bo->exec == NULL && kgem_ring_is_idle(kgem, kgem->ring)) {
+ if (kgem->nreloc && bo->rq == NULL && kgem_ring_is_idle(kgem, kgem->ring)) {
DBG(("%s: flushing before new bo\n", __FUNCTION__));
_kgem_submit(kgem);
}
More information about the xorg-commit
mailing list