panvk: Apply sample mask in single-sample mode

Per Vulkan spec, the pipeline sample mask applies to all rasterization
sample counts, including single-sample. Drop the msaa-conditional clamp
that forced the sample mask to UINT16_MAX when rasterizationSamples == 1
and just use vk_dynamic_graphics_state's value directly. The default
when no static pSampleMask is provided is already all-ones, so existing
behaviour is preserved for pipelines that don't set the mask.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40882>
This commit is contained in:
Christian Gmeiner 2026-05-06 13:44:08 +02:00 committed by Marge Bot
parent 3afc792dc8
commit fd2d3992ce
2 changed files with 2 additions and 3 deletions

View file

@ -2033,7 +2033,7 @@ prepare_dcd(struct panvk_cmd_buffer *cmdbuf,
if (dcd1_dirty) {
struct mali_dcd_flags_1_packed dcd1;
pan_pack(&dcd1, DCD_FLAGS_1, cfg) {
cfg.sample_mask = msaa ? dyns->ms.sample_mask : UINT16_MAX;
cfg.sample_mask = dyns->ms.sample_mask;
cfg.render_target_mask = rt_written;
}

View file

@ -331,8 +331,7 @@ panvk_draw_prepare_fs_rsd(struct panvk_cmd_buffer *cmdbuf,
}
cfg.multisample_misc.multisample_enable = msaa;
cfg.multisample_misc.sample_mask =
msaa ? dyns->ms.sample_mask : UINT16_MAX;
cfg.multisample_misc.sample_mask = dyns->ms.sample_mask;
cfg.multisample_misc.depth_function =
test_z ? translate_compare_func(ds->depth.compare_op)