----- Original Message ----- > From: Dave Airlie <airl...@redhat.com> > > With the recent changes to interpolation stuff, we can now get the > value > direct from the program instead of just being fail. > > fixes some of the glsl-1.30 interpolation tests with softpipe > > Signed-off-by: Dave Airlie <airl...@redhat.com> > --- > src/mesa/state_tracker/st_program.c | 15 ++++++++++++++- > 1 files changed, 14 insertions(+), 1 deletions(-) > > diff --git a/src/mesa/state_tracker/st_program.c > b/src/mesa/state_tracker/st_program.c > index c419c40..023879d 100644 > --- a/src/mesa/state_tracker/st_program.c > +++ b/src/mesa/state_tracker/st_program.c > @@ -416,6 +416,19 @@ st_get_vp_variant(struct st_context *st, > return vpv; > } > > +static int st_translate_interp(enum glsl_interp_qualifier glsl_qual) > +{ > + switch (glsl_qual) { > + case INTERP_QUALIFIER_NONE: > + case INTERP_QUALIFIER_SMOOTH: > + return TGSI_INTERPOLATE_PERSPECTIVE; > + case INTERP_QUALIFIER_FLAT: > + return TGSI_INTERPOLATE_CONSTANT; > + case INTERP_QUALIFIER_NOPERSPECTIVE: > + return TGSI_INTERPOLATE_LINEAR; > + } > + assert(0);
Please return TGSI_INTERPOLATE_PERSPECTIVE here. Otherwise we'll get warnings and undefined behavior on release builds. Otherwise looks good to me. Jose > +} > > /** > * Translate a Mesa fragment shader into a TGSI shader using extra > info in > @@ -558,7 +571,7 @@ st_translate_fragment_program(struct st_context > *st, > if (attr == FRAG_ATTRIB_PNTC) > interpMode[slot] = TGSI_INTERPOLATE_LINEAR; > else > - interpMode[slot] = TGSI_INTERPOLATE_PERSPECTIVE; > + interpMode[slot] = > st_translate_interp(stfp->Base.InterpQualifier[attr]); > break; > } > } > -- > 1.7.6.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev