From 3b27632abc65d2a07ce1e3302e6a0c6de4016638 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 21 Jul 2022 12:59:19 -0400 Subject: [PATCH] zink: stop modifying samplerview swizzle on base struct this gets (stupidly?) checked in mesa/st, so changing it might trigger erroneous asserts Reviewed-by: Dave Airlie Part-of: --- src/gallium/drivers/zink/zink_context.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c index 7ebfbaa2d26..885a31d0c69 100644 --- a/src/gallium/drivers/zink/zink_context.c +++ b/src/gallium/drivers/zink/zink_context.c @@ -941,15 +941,16 @@ zink_create_sampler_view(struct pipe_context *pctx, struct pipe_resource *pres, */ if (zink_format_is_voidable_rgba_variant(state->format)) { const struct util_format_description *desc = util_format_description(state->format); - sampler_view->base.swizzle_r = zink_clamp_void_swizzle(desc, sampler_view->base.swizzle_r); - sampler_view->base.swizzle_g = zink_clamp_void_swizzle(desc, sampler_view->base.swizzle_g); - sampler_view->base.swizzle_b = zink_clamp_void_swizzle(desc, sampler_view->base.swizzle_b); - sampler_view->base.swizzle_a = zink_clamp_void_swizzle(desc, sampler_view->base.swizzle_a); + ivci.components.r = zink_component_mapping(zink_clamp_void_swizzle(desc, sampler_view->base.swizzle_r)); + ivci.components.g = zink_component_mapping(zink_clamp_void_swizzle(desc, sampler_view->base.swizzle_g)); + ivci.components.b = zink_component_mapping(zink_clamp_void_swizzle(desc, sampler_view->base.swizzle_b)); + ivci.components.a = zink_component_mapping(zink_clamp_void_swizzle(desc, sampler_view->base.swizzle_a)); + } else { + ivci.components.r = zink_component_mapping(sampler_view->base.swizzle_r); + ivci.components.g = zink_component_mapping(sampler_view->base.swizzle_g); + ivci.components.b = zink_component_mapping(sampler_view->base.swizzle_b); + ivci.components.a = zink_component_mapping(sampler_view->base.swizzle_a); } - ivci.components.r = zink_component_mapping(sampler_view->base.swizzle_r); - ivci.components.g = zink_component_mapping(sampler_view->base.swizzle_g); - ivci.components.b = zink_component_mapping(sampler_view->base.swizzle_b); - ivci.components.a = zink_component_mapping(sampler_view->base.swizzle_a); } assert(ivci.format);