diff --git a/src/gallium/drivers/zink/zink_state.c b/src/gallium/drivers/zink/zink_state.c index d702c089ea3..bebdd22ab27 100644 --- a/src/gallium/drivers/zink/zink_state.c +++ b/src/gallium/drivers/zink/zink_state.c @@ -659,6 +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; if (ctx->rast_state) { if (screen->info.have_EXT_provoking_vertex && diff --git a/src/gallium/drivers/zink/zink_types.h b/src/gallium/drivers/zink/zink_types.h index 2b64c22c463..bc993ed0193 100644 --- a/src/gallium/drivers/zink/zink_types.h +++ b/src/gallium/drivers/zink/zink_types.h @@ -812,7 +812,8 @@ struct zink_gfx_pipeline_state { /* order matches zink_gfx_output_key */ unsigned force_persample_interp:1; uint32_t rast_samples:6; - uint32_t min_samples:6; + uint32_t multisample: 1; + uint32_t min_samples:5; uint32_t feedback_loop : 1; uint32_t feedback_loop_zs : 1; uint32_t rast_attachment_order : 1; @@ -986,7 +987,8 @@ struct zink_gfx_output_key { struct { unsigned force_persample_interp:1; uint32_t rast_samples:6; - uint32_t min_samples:6; + uint32_t multisample: 1; + uint32_t min_samples:5; uint32_t feedback_loop : 1; uint32_t feedback_loop_zs : 1; uint32_t rast_attachment_order : 1;