This patch is no good. The bug is real but this patch is insufficient. I've got another one running through CI which I should be posting shortly.
On Tue, Jul 31, 2018 at 6:38 AM Jason Ekstrand <ja...@jlekstrand.net> wrote: > Otherwise, only the first vec4 of a matrix or other complex type will > get marked as flat and we'll interpolate the others. This was caught by > a dEQP test which started failing because it did a SSO vs. non-SSO > comparison. Previously, we did the interpolation wrong consistently in > both versions. However, with one of Tim Arceri's NIR linkingpatches, we > started splitting the matrix input into vectors at link time in the > non-SSO version and it started getting correctly interpolated which > didn't match the broken SSO version. As of this commit, they both get > correctly interpolated. > > Fixes: e61cc87c757f8bc "i965/fs: Add a flat_inputs field to prog_data" > --- > src/intel/compiler/brw_fs.cpp | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp > index 7ddbd285fe2..55cd5c6e72a 100644 > --- a/src/intel/compiler/brw_fs.cpp > +++ b/src/intel/compiler/brw_fs.cpp > @@ -6886,8 +6886,10 @@ brw_compute_flat_inputs(struct brw_wm_prog_data > *prog_data, > continue; > > /* flat shading */ > - if (var->data.interpolation == INTERP_MODE_FLAT) > - prog_data->flat_inputs |= (1 << input_index); > + if (var->data.interpolation == INTERP_MODE_FLAT) { > + unsigned slots = glsl_count_attribute_slots(var->type, false); > + prog_data->flat_inputs |= (((1 << slots) - 1) << input_index); > + } > } > } > > -- > 2.17.1 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev