Module: Mesa Branch: master Commit: 079f348a5cd1c53b5bc51510acd789800814bd8f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=079f348a5cd1c53b5bc51510acd789800814bd8f
Author: Mike Blumenkrantz <[email protected]> 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 <[email protected]> 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 _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
