aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2018-10-24 14:45:00 -0700
committerKenneth Graunke <[email protected]>2019-02-21 10:26:09 -0800
commita3e813c5afbd2f6a50f7ba7d2984acbffd13dfa7 (patch)
tree33ef0c63e0467d7189cc4837aba9b299aa2b9778 /src/gallium
parent927c4a21bd6982f653a8987494f37fc36a8295e6 (diff)
iris: SO_DECL_LIST fix
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/iris/iris_state.c8
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++) {