Mesa (main): zink: call bind_last_vertex_stage() when binding vs

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jul 20 13:38:07 UTC 2022


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

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Mon Jul 18 12:32:04 2022 -0400

zink: call bind_last_vertex_stage() when binding vs

ensure all the necessary updates are flagged

cc: mesa-stable

Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17639>

---

 src/gallium/drivers/zink/zink_program.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c
index 730026bd25c..dfee6ff1d95 100644
--- a/src/gallium/drivers/zink/zink_program.c
+++ b/src/gallium/drivers/zink/zink_program.c
@@ -1008,8 +1008,8 @@ zink_bind_vs_state(struct pipe_context *pctx,
    struct zink_context *ctx = zink_context(pctx);
    if (!cso && !ctx->gfx_stages[PIPE_SHADER_VERTEX])
       return;
-   void *prev = ctx->gfx_stages[PIPE_SHADER_VERTEX];
    bind_stage(ctx, PIPE_SHADER_VERTEX, cso);
+   bind_last_vertex_stage(ctx);
    if (cso) {
       struct zink_shader *zs = cso;
       ctx->shader_reads_drawid = BITSET_TEST(zs->nir->info.system_values_read, SYSTEM_VALUE_DRAW_ID);
@@ -1018,9 +1018,6 @@ zink_bind_vs_state(struct pipe_context *pctx,
       ctx->shader_reads_drawid = false;
       ctx->shader_reads_basevertex = false;
    }
-   if (ctx->last_vertex_stage == prev)
-      ctx->last_vertex_stage = cso;
-
 }
 
 /* if gl_SampleMask[] is written to, we have to ensure that we get a shader with the same sample count:



More information about the mesa-commit mailing list