Module: vkd3d Branch: master Commit: ee994e95dd06d00cbf16fe4ca550c1f6bf1dd015 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/ee994e95dd06d00cbf16fe4ca550c1...
Author: Giovanni Mascellani gmascellani@codeweavers.com Date: Mon Feb 5 12:12:02 2024 +0100
vkd3d-shader/spirv: Convert the swizzle according to the source bit width.
Fixes: 1f536238a89dc6bccb411c2db32d7b2010cc8fd7
---
libs/vkd3d-shader/spirv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c index d4333e6d..3cc20b5c 100644 --- a/libs/vkd3d-shader/spirv.c +++ b/libs/vkd3d-shader/spirv.c @@ -7082,7 +7082,7 @@ static void spirv_compiler_emit_mov(struct spirv_compiler *compiler, }
write_mask32 = data_type_is_64_bit(dst->reg.data_type) ? vsir_write_mask_32_from_64(dst->write_mask) : dst->write_mask; - swizzle32 = data_type_is_64_bit(dst->reg.data_type) ? vsir_swizzle_32_from_64(src->swizzle) : src->swizzle; + swizzle32 = data_type_is_64_bit(src->reg.data_type) ? vsir_swizzle_32_from_64(src->swizzle) : src->swizzle; component_count = vsir_write_mask_component_count(write_mask32); if (component_count != 1 && component_count != VKD3D_VEC4_SIZE && dst_reg_info.write_mask == VKD3DSP_WRITEMASK_ALL)