diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2016-04-17 15:59:36 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2016-04-17 16:02:30 +0100 |
commit | 81029be07380090195d165fab91d3e1fe1d84bb9 (patch) | |
tree | 747ac5d1833fa9c6f7906455163fa2b4cf902a87 /src | |
parent | f7f5ef714f79be362edb6a59de4ff02d4c235b5e (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>
Diffstat (limited to 'src')
-rw-r--r-- | src/sna/gen8_render.c | 1 | ||||
-rw-r--r-- | src/sna/gen8_render.h | 1 | ||||
-rw-r--r-- | src/sna/gen9_render.c | 1 | ||||
-rw-r--r-- | src/sna/gen9_render.h | 1 |
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) |