From 26b5f4c45e8f2467fe5b41013e42a516fc01cb0f Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 14 May 2021 18:31:50 -0400 Subject: [PATCH] zink: flag the gfx pipeline dirty and unset pipeline shader module on shader change there's no need to leave this until the module updating when the info is known much earlier Reviewed-by: Hoe Hao Cheng Part-of: --- src/gallium/drivers/zink/zink_program.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_program.c b/src/gallium/drivers/zink/zink_program.c index bb205f729c9..c5163e80c5f 100644 --- a/src/gallium/drivers/zink/zink_program.c +++ b/src/gallium/drivers/zink/zink_program.c @@ -881,8 +881,12 @@ bind_stage(struct zink_context *ctx, enum pipe_shader_type stage, ctx->compute_stage = shader; if (shader) zink_select_launch_grid(ctx); - } else + } else { ctx->gfx_stages[stage] = shader; + ctx->gfx_pipeline_state.combined_dirty = true; + if (!shader) + ctx->gfx_pipeline_state.modules[stage] = VK_NULL_HANDLE; + } ctx->dirty_shader_stages |= 1 << stage; if (shader && shader->nir->info.num_inlinable_uniforms) ctx->shader_has_inlinable_uniforms_mask |= 1 << stage;