Mesa (master): Revert "iris: Hack up a SKL/Gen9LP PS push constant fifo depth workaround"

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Oct 7 16:09:21 UTC 2019


Module: Mesa
Branch: master
Commit: bd46dfa889d40fc3ce26d4848493953438b62cee
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bd46dfa889d40fc3ce26d4848493953438b62cee

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Mon Oct  7 09:08:41 2019 -0700

Revert "iris: Hack up a SKL/Gen9LP PS push constant fifo depth workaround"

This reverts commit 4f857423b3c095516e553b976b41969c2b9721fa.

It caused GPU hangs on all affected platforms, in e.g.
Piglit bin/stencil-twoside -auto -fbo.

---

 src/gallium/drivers/iris/iris_state.c | 23 -----------------------
 1 file changed, 23 deletions(-)

diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c
index 9db8263920b..b66eee791d1 100644
--- a/src/gallium/drivers/iris/iris_state.c
+++ b/src/gallium/drivers/iris/iris_state.c
@@ -5539,29 +5539,6 @@ iris_upload_render_state(struct iris_context *ice,
 {
    bool use_predicate = ice->state.predicate == IRIS_PREDICATE_STATE_USE_BIT;
 
-   UNUSED const struct gen_device_info *devinfo = &batch->screen->devinfo;
-
-   /* The Skylake PRM's Workarounds section (#878) says:
-    *
-    *   "Push constant buffer corruption possible. WA: Insert 2 zero-length
-    *    PushConst_PS before every intended PushConst_PS update, issue a
-    *    NULLPRIM after each of the zero len PC update to make sure CS commits
-    *    them."
-    *
-    * This workaround is attempting to solve a pixel shader push constant
-    * synchronization issue.
-    *
-    * An unpublished WA suggests re-emitting 3DSTATE_PUSH_CONSTANT_ALLOC_PS
-    * for every 500 or so 3DSTATE_CONSTANT_PS packets.  Since our counting
-    * methods may not be reliable due to context-switching and pre-emption,
-    * we instead choose to approximate this behavior by re-emitting the
-    * packet on the first regular draw of the batch.
-    */
-   if (GEN_GEN == 9 && !batch->contains_draw &&
-       (devinfo->is_skylake || gen_device_info_is_9lp(devinfo))) {
-      iris_alloc_push_constants(batch);
-   }
-
    /* Always pin the binder.  If we're emitting new binding table pointers,
     * we need it.  If not, we're probably inheriting old tables via the
     * context, and need it anyway.  Since true zero-bindings cases are




More information about the mesa-commit mailing list