zink: limit minSampleShading to a maxium value of 1.0

This is required by the spec and fixes

  VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786

when running

  spec@arb_stencil_texturing@glblitframebuffer corrupts state@gl_texture_2d_multisample_array

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29625>
This commit is contained in:
Gert Wollny
2024-06-08 21:30:49 +02:00
committed by Marge Bot
parent a1d8837bad
commit 6a9596be56
+2 -2
View File
@@ -137,7 +137,7 @@ zink_create_gfx_pipeline(struct zink_screen *screen,
ms_state.minSampleShading = 1.0;
} else if (state->min_samples > 0) {
ms_state.sampleShadingEnable = VK_TRUE;
ms_state.minSampleShading = (float)(state->rast_samples + 1) / (state->min_samples + 1);
ms_state.minSampleShading = MIN2((float)(state->rast_samples + 1) / (state->min_samples + 1), 1.0f);
}
VkPipelineViewportStateCreateInfo viewport_state = {0};
@@ -515,7 +515,7 @@ zink_create_gfx_pipeline_output(struct zink_screen *screen, struct zink_gfx_pipe
ms_state.minSampleShading = 1.0;
} else if (state->min_samples > 0) {
ms_state.sampleShadingEnable = VK_TRUE;
ms_state.minSampleShading = (float)(state->rast_samples + 1) / (state->min_samples + 1);
ms_state.minSampleShading = MIN2((float)(state->rast_samples + 1) / (state->min_samples + 1), 1.0f);
}
VkDynamicState dynamicStateEnables[30] = {