iris: Don't whack SO dirty bits when finishing a BLORP op
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 18 Jan 2019 08:01:05 +0000 (00:01 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 21 Feb 2019 18:26:11 +0000 (10:26 -0800)
Re-emitting 3DSTATE_SO_BUFFERS can be hazardous, as it could zero
offsets.  Plus, it's just not necessary - BLORP doesn't change these.

src/gallium/drivers/iris/iris_blorp.c

index c372c7f6be5289a0b95fafa57e2818d6f237aa9c..9963985ed97ad70288dcbac3821788a1d1a478a6 100644 (file)
@@ -327,6 +327,8 @@ iris_blorp_exec(struct blorp_batch *blorp_batch,
     */
    // XXX: skip some if (!(batch->flags & BLORP_BATCH_NO_EMIT_DEPTH_STENCIL))
    ice->state.dirty |= ~(IRIS_DIRTY_POLYGON_STIPPLE |
+                         IRIS_DIRTY_SO_BUFFERS |
+                         IRIS_DIRTY_SO_DECL_LIST |
                          IRIS_DIRTY_LINE_STIPPLE);
 
    if (params->dst.enabled) {