From a3e813c5afbd2f6a50f7ba7d2984acbffd13dfa7 Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 24 Oct 2018 14:45:00 -0700 Subject: [PATCH] iris: SO_DECL_LIST fix --- src/gallium/drivers/iris/iris_state.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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++) { -- 2.30.2