Mesa (master): zink: flag previous vertex stages as dirty when toggling a later stage
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Jan 29 15:46:06 UTC 2021
Module: Mesa
Branch: master
Commit: 079f348a5cd1c53b5bc51510acd789800814bd8f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=079f348a5cd1c53b5bc51510acd789800814bd8f
Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date: Sun Jan 24 10:46:53 2021 -0500
zink: flag previous vertex stages as dirty when toggling a later stage
this ensures that the correct variant is used for streamout and halfz
Reviewed-by: Erik Faye-Lund <erik.faye-lund at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8682>
---
src/gallium/drivers/zink/zink_program.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c
index 021866b8087..bf45e0ad518 100644
--- a/src/gallium/drivers/zink/zink_program.c
+++ b/src/gallium/drivers/zink/zink_program.c
@@ -629,7 +629,11 @@ static void
zink_bind_gs_state(struct pipe_context *pctx,
void *cso)
{
- bind_stage(zink_context(pctx), PIPE_SHADER_GEOMETRY, cso);
+ struct zink_context *ctx = zink_context(pctx);
+ if (!!ctx->gfx_stages[PIPE_SHADER_GEOMETRY] != !!cso)
+ ctx->dirty_shader_stages |= BITFIELD_BIT(PIPE_SHADER_VERTEX) |
+ BITFIELD_BIT(PIPE_SHADER_TESS_EVAL);
+ bind_stage(ctx, PIPE_SHADER_GEOMETRY, cso);
}
static void *
@@ -669,7 +673,10 @@ static void
zink_bind_tes_state(struct pipe_context *pctx,
void *cso)
{
- bind_stage(zink_context(pctx), PIPE_SHADER_TESS_EVAL, cso);
+ struct zink_context *ctx = zink_context(pctx);
+ if (!!ctx->gfx_stages[PIPE_SHADER_TESS_EVAL] != !!cso)
+ ctx->dirty_shader_stages |= BITFIELD_BIT(PIPE_SHADER_VERTEX);
+ bind_stage(ctx, PIPE_SHADER_TESS_EVAL, cso);
}
static void
More information about the mesa-commit
mailing list