From c551bb32d16c7abe27a5c2ee65c441c27fac9821 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Mon, 29 Aug 2022 15:50:54 +0200 Subject: [PATCH] zink: clamp miplodbias when creating sampler The Vulkan spec states that it's illegal to pass a mipLodBias larger than maxSamplerLodBias, but the gallium value here hasn't been clamped. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7140 Cc: mesa-stable Reviewed-by: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/ci/zink-tu-a630-fails.txt | 1 - src/gallium/drivers/zink/zink_context.c | 5 ++++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/ci/zink-tu-a630-fails.txt b/src/gallium/drivers/zink/ci/zink-tu-a630-fails.txt index 70654ce212d..7e0d984e138 100644 --- a/src/gallium/drivers/zink/ci/zink-tu-a630-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-tu-a630-fails.txt @@ -1,4 +1,3 @@ -GTF-GL46.gtf21.GL3Tests.texture_lod_bias.texture_lod_bias_all,Fail GTF-GL46.gtf30.GL3Tests.framebuffer_blit.framebuffer_blit_functionality_multisampled_to_singlesampled_blit,Fail GTF-GL46.gtf30.GL3Tests.sgis_texture_lod.sgis_texture_lod_basic_lod_selection,Fail GTF-GL46.gtf32.GL3Tests.draw_elements_base_vertex.draw_elements_base_vertex_invalid_mode,Fail diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 2d80cff0d3d..d0afcd72c4d 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -369,7 +369,10 @@ zink_create_sampler_state(struct pipe_context *pctx, } else { sci.addressModeU = sci.addressModeV = sci.addressModeW = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE; } - sci.mipLodBias = state->lod_bias; + + sci.mipLodBias = CLAMP(state->lod_bias, + -screen->info.props.limits.maxSamplerLodBias, + screen->info.props.limits.maxSamplerLodBias); need_custom |= wrap_needs_border_color(state->wrap_s); need_custom |= wrap_needs_border_color(state->wrap_t);