i965: Move multiply by 4 for VS ATTR setup into the scalar backend.
The vec4 backend will want to count in units of vec4s, not scalar components. The simplest solution is to move the multiplication by 4 into the scalar backend. This also improves consistency with how we count varyings. Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
@@ -2251,7 +2251,7 @@ fs_visitor::nir_emit_vs_intrinsic(const fs_builder &bld,
|
||||
}
|
||||
|
||||
case nir_intrinsic_load_input: {
|
||||
fs_reg src = fs_reg(ATTR, instr->const_index[0], dest.type);
|
||||
fs_reg src = fs_reg(ATTR, nir_intrinsic_base(instr) * 4, dest.type);
|
||||
unsigned first_component = nir_intrinsic_component(instr);
|
||||
unsigned num_components = instr->num_components;
|
||||
enum brw_reg_type type = dest.type;
|
||||
|
@@ -279,7 +279,7 @@ brw_nir_lower_vs_inputs(nir_shader *nir,
|
||||
int attr = nir_intrinsic_base(intrin);
|
||||
int slot = _mesa_bitcount_64(nir->info.inputs_read &
|
||||
BITFIELD64_MASK(attr));
|
||||
nir_intrinsic_set_base(intrin, 4 * slot);
|
||||
nir_intrinsic_set_base(intrin, slot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user