Module: Mesa Branch: main Commit: a10828f88643534d7c652ca96d687b14d3038e7f URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=a10828f88643534d7c652ca96d687b14d3038e7f
Author: Karol Herbst <[email protected]> Date: Tue Sep 19 14:44:26 2023 +0200 zink: support samplers with unnormalized_coords Signed-off-by: Karol Herbst <[email protected]> Reviewed-by: Mike Blumenkrantz <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24839> --- src/gallium/drivers/zink/zink_context.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 08d70ce26f4..07496013da8 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -392,6 +392,7 @@ zink_create_sampler_state(struct pipe_context *pctx, const struct pipe_sampler_state *state) { struct zink_screen *screen = zink_screen(pctx->screen); + struct zink_context *zink = zink_context(pctx); bool need_custom = false; bool need_clamped_border_color = false; VkSamplerCreateInfo sci = {0}; @@ -400,7 +401,10 @@ zink_create_sampler_state(struct pipe_context *pctx, sci.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; if (screen->info.have_EXT_non_seamless_cube_map && !state->seamless_cube_map) sci.flags |= VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT; - assert(!state->unnormalized_coords); + if (state->unnormalized_coords) { + assert(zink->flags & PIPE_CONTEXT_COMPUTE_ONLY); + sci.unnormalizedCoordinates = state->unnormalized_coords; + } sci.magFilter = zink_filter(state->mag_img_filter); if (sci.unnormalizedCoordinates) sci.minFilter = sci.magFilter;
