From 65f5f1559f401808e6b25a4765d51dc59397d87f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Tue, 16 Apr 2024 16:54:55 +0200 Subject: [PATCH] ac/nir/ngg: Fix packing 16-bit MS outputs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: 9f36fba9beafa3d1487b595f5c2b3f659cd94591 Signed-off-by: Timur Kristóf Reviewed-by: Georg Lehmann Part-of: --- src/amd/common/ac_nir_lower_ngg.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/amd/common/ac_nir_lower_ngg.c b/src/amd/common/ac_nir_lower_ngg.c index 4059be04896..47f34b062b4 100644 --- a/src/amd/common/ac_nir_lower_ngg.c +++ b/src/amd/common/ac_nir_lower_ngg.c @@ -3908,15 +3908,14 @@ ms_store_arrayed_output(nir_builder *b, } u_foreach_bit(comp, write_mask_32) { - nir_def *val = nir_channel(b, store_val, comp); unsigned idx = io_sem.location * 4 + comp + component_offset; + nir_def *val = nir_channel(b, store_val, comp); + nir_def *v = nir_load_var(b, s->out_variables[idx]); if (lo_16b) { - nir_def *v = nir_channel(b, nir_load_var(b, s->out_variables[idx]), comp + component_offset); nir_def *var_hi = nir_unpack_32_2x16_split_y(b, v); val = nir_pack_32_2x16_split(b, val, var_hi); } else if (hi_16b) { - nir_def *v = nir_channel(b, nir_load_var(b, s->out_variables[idx]), comp + component_offset); nir_def *var_lo = nir_unpack_32_2x16_split_x(b, v); val = nir_pack_32_2x16_split(b, var_lo, val); }