From 5969541123dbfe1ac339284911a83af712fdcc25 Mon Sep 17 00:00:00 2001 From: antonino Date: Thu, 27 Apr 2023 15:55:39 +0200 Subject: [PATCH] zink: set when pipeline dirty flag when multisample changes Sets `gfx_pipeline_state.dirty` appropriately when `gfx_pipeline_state.multisample` changes Fixes: 14d58926099 ("zink: add to multisample field to `zink_gfx_pipeline_state`") Part-of: --- src/gallium/drivers/zink/zink_state.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_state.c b/src/gallium/drivers/zink/zink_state.c index bebdd22..1853005 100644 --- a/src/gallium/drivers/zink/zink_state.c +++ b/src/gallium/drivers/zink/zink_state.c @@ -659,7 +659,7 @@ zink_bind_rasterizer_state(struct pipe_context *pctx, void *cso) bool half_pixel_center = ctx->rast_state ? ctx->rast_state->base.half_pixel_center : true; float line_width = ctx->rast_state ? ctx->rast_state->base.line_width : 1.0; ctx->rast_state = cso; - ctx->gfx_pipeline_state.multisample = !ctx->rast_state || ctx->rast_state->base.multisample; + bool multisample = !ctx->rast_state || ctx->rast_state->base.multisample; if (ctx->rast_state) { if (screen->info.have_EXT_provoking_vertex && @@ -711,6 +711,10 @@ zink_bind_rasterizer_state(struct pipe_context *pctx, void *cso) zink_set_fs_base_key(ctx)->force_persample_interp = ctx->rast_state->base.force_persample_interp; ctx->gfx_pipeline_state.dirty = true; } + if (ctx->gfx_pipeline_state.multisample != multisample) { + ctx->gfx_pipeline_state.multisample = multisample; + ctx->gfx_pipeline_state.dirty |= !screen->have_full_ds3; + } ctx->gfx_pipeline_state.force_persample_interp = ctx->rast_state->base.force_persample_interp; if (ctx->rast_state->base.half_pixel_center != half_pixel_center) -- 2.7.4