summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2017-05-03 16:56:15 -0700
committerJason Ekstrand <[email protected]>2017-05-09 15:07:47 -0700
commit5e832302dcd10ab2d7f50b2f991129d8969273cb (patch)
tree6ef865f2e112d95bf7b52859fb2fdc10d2ef3e0d
parent36764b6923620f3e3c5f547b12d1201e1498c9c6 (diff)
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 <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/intel/compiler/brw_fs_nir.cpp2
-rw-r--r--src/intel/compiler/brw_nir.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp
index 2ea94ab6939..d90eaad32ba 100644
--- a/src/intel/compiler/brw_fs_nir.cpp
+++ b/src/intel/compiler/brw_fs_nir.cpp
@@ -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;
diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c
index f5b66121176..2c44d8f1828 100644
--- a/src/intel/compiler/brw_nir.c
+++ b/src/intel/compiler/brw_nir.c
@@ -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);
}
}
}