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);