From 5c3e96f25724f17c59643270dbf5fd3d38104b26 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Tue, 2 Apr 2024 15:52:43 -0700 Subject: [PATCH] d3d12: Fix var splitting pass writemasks Part-of: --- src/gallium/drivers/d3d12/d3d12_nir_passes.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/d3d12/d3d12_nir_passes.c b/src/gallium/drivers/d3d12/d3d12_nir_passes.c index ac3453422e9..3f76705d1a6 100644 --- a/src/gallium/drivers/d3d12/d3d12_nir_passes.c +++ b/src/gallium/drivers/d3d12/d3d12_nir_passes.c @@ -891,10 +891,10 @@ split_varying_accesses(nir_builder *b, nir_intrinsic_instr *intr, unsigned orig_write_mask = nir_intrinsic_write_mask(intr); nir_def *sub_value = nir_channels(b, intr->src[1].ssa, mask_num_channels << first_channel); - first_channel += var_state->subvars[subvar].num_components; - unsigned new_write_mask = (orig_write_mask >> first_channel) & mask_num_channels; nir_build_store_deref(b, &new_path->def, sub_value, new_write_mask, nir_intrinsic_access(intr)); + + first_channel += var_state->subvars[subvar].num_components; } else { /* The load path only handles splitting dvec3/dvec4 */ assert(subvar == 0 || subvar == 1);