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>
This commit is contained in:
Chris Wilson 2016-04-17 15:59:36 +01:00
parent f7f5ef714f
commit 81029be073
4 changed files with 4 additions and 0 deletions

View File

@ -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);

View File

@ -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)

View File

@ -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);

View File

@ -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)