summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-04-17 15:59:36 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2016-04-17 16:02:30 +0100
commit81029be07380090195d165fab91d3e1fe1d84bb9 (patch)
tree747ac5d1833fa9c6f7906455163fa2b4cf902a87
parentf7f5ef714f79be362edb6a59de4ff02d4c235b5e (diff)
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@chris-wilson.co.uk>
-rw-r--r--src/sna/gen8_render.c1
-rw-r--r--src/sna/gen8_render.h1
-rw-r--r--src/sna/gen9_render.c1
-rw-r--r--src/sna/gen9_render.h1
4 files changed, 4 insertions, 0 deletions
diff --git a/src/sna/gen8_render.c b/src/sna/gen8_render.c
index 0947576c..f979ba82 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 eb4928e7..e6a8dc55 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 3c1f07ab..7b41cdbd 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 e8fafb5e..e3cb3f93 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)