This fixes 1256 tests on BDW. Tested-by: Mark Janes <mark.a.ja...@intel.com>
Kenneth Graunke <kenn...@whitecape.org> writes: > Matrix vertex attributes have their columns padded out to vec4s, which > I was failing to account for. Scalar NIR expects them to be packed, > however. > > Cc: mesa-sta...@lists.freedesktop.org > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > I still need to write proper Piglit tests for this. We have basically a > single > test for matrix vertex attributes, and that's a mat4 (which worked). > > But I figure we probably shouldn't hold up the bugfix on that. > > diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > index caf1300..37b1ed7 100644 > --- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > +++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp > @@ -91,12 +91,19 @@ fs_visitor::nir_setup_inputs(nir_shader *shader) > * So, we need to copy from fs_reg(ATTR, var->location) to > * offset(nir_inputs, var->data.driver_location). > */ > - unsigned components = var->type->without_array()->components(); > + const glsl_type *const t = var->type->without_array(); > + const unsigned components = t->components(); > + const unsigned cols = t->matrix_columns; > + const unsigned elts = t->vector_elements; > unsigned array_length = var->type->is_array() ? var->type->length : > 1; > for (unsigned i = 0; i < array_length; i++) { > - for (unsigned j = 0; j < components; j++) { > - bld.MOV(retype(offset(input, bld, components * i + j), type), > - offset(fs_reg(ATTR, var->data.location + i, type), > bld, j)); > + for (unsigned j = 0; j < cols; j++) { > + for (unsigned k = 0; k < elts; k++) { > + bld.MOV(offset(retype(input, type), bld, > + components * i + elts * j + k), > + offset(fs_reg(ATTR, var->data.location + i, type), > + bld, 4 * j + k)); > + } > } > } > break; > -- > 2.4.4 > > _______________________________________________ > mesa-stable mailing list > mesa-sta...@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-stable _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev