diff options
author | Kenneth Graunke <[email protected]> | 2018-10-24 14:45:00 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-02-21 10:26:09 -0800 |
commit | a3e813c5afbd2f6a50f7ba7d2984acbffd13dfa7 (patch) | |
tree | 33ef0c63e0467d7189cc4837aba9b299aa2b9778 /src/gallium | |
parent | 927c4a21bd6982f653a8987494f37fc36a8295e6 (diff) |
iris: SO_DECL_LIST fix
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/iris/iris_state.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index d16f68a1d1c..be7ca83d4b3 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -2472,6 +2472,14 @@ iris_set_stream_output_targets(struct pipe_context *ctx, if (ice->state.streamout_active != active) { ice->state.streamout_active = active; ice->state.dirty |= IRIS_DIRTY_STREAMOUT; + + /* We only emit 3DSTATE_SO_DECL_LIST when streamout is active, because + * it's a non-pipelined command. If we're switching streamout on, we + * may have missed emitting it earlier, so do so now. (We're already + * taking a stall to update 3DSTATE_SO_BUFFERS anyway...) + */ + if (active) + ice->state.dirty |= IRIS_DIRTY_SO_DECL_LIST; } for (int i = 0; i < 4; i++) { |