iris: SO_DECL_LIST fix
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 24 Oct 2018 21:45:00 +0000 (14:45 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:09 +0000 (10:26 -0800)
src/gallium/drivers/iris/iris_state.c

index d16f68a1d1cef523c9216ed293f20fad1d41eac6..be7ca83d4b32e57ffd1b370ed190719bc493b0ce 100644 (file)
@@ -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++) {