Oops, yes.
On Wed, Jul 31, 2013 at 9:45 AM, Paul Berry <stereotype...@gmail.com> wrote: > On 14 July 2013 02:39, Chris Forbes <chr...@ijw.co.nz> wrote: >> >> This patch ensures that integers will pass through unscathed. Doing >> (useless) computations on them is risky, especially when their bit >> patterns correspond to values like inf or nan. >> >> [V1-2]: Signed-off-by: Olivier Galibert <galibert at pobox.com> >> Signed-off-by: Chris Forbes <chr...@ijw.co.nz> >> --- >> src/mesa/drivers/dri/i965/brw_clip_util.c | 57 >> ++++++++++++++++++------------- >> 1 file changed, 34 insertions(+), 23 deletions(-) >> >> diff --git a/src/mesa/drivers/dri/i965/brw_clip_util.c >> b/src/mesa/drivers/dri/i965/brw_clip_util.c >> index 56c9ccd..a168b32 100644 >> --- a/src/mesa/drivers/dri/i965/brw_clip_util.c >> +++ b/src/mesa/drivers/dri/i965/brw_clip_util.c >> @@ -246,8 +246,8 @@ void brw_clip_interp_vertex( struct brw_clip_compile >> *c, >> int varying = c->vue_map.slot_to_varying[slot]; >> GLuint delta = brw_vue_slot_to_offset(slot); >> >> - /* HPOS is already handled above */ >> - if (varying == VARYING_SLOT_POS) >> + /* HPOS, NDC already handled above */ >> + if (varying == VARYING_SLOT_POS || varying == BRW_VARYING_SLOT_NDC) >> continue; > > > Was this hunk supposed to go in patch 4/5? > > With that fixed, this patch is: > > Reviewed-by: Paul Berry <stereotype...@gmail.com> > >> >> >> >> @@ -269,28 +269,39 @@ void brw_clip_interp_vertex( struct brw_clip_compile >> *c, >> * header), so interpolate: >> * >> * New = attr0 + t*attr1 - t*attr0 >> + * >> + * Unless the attribute is flat shaded -- in which case just >> copy >> + * from one of the sources (doesn't matter which; already copied >> from pv) >> */ >> - struct brw_reg tmp = get_tmp(c); >> - struct brw_reg t = >> - c->key.interpolation_mode[slot] == >> INTERP_QUALIFIER_NOPERSPECTIVE ? >> - t_nopersp : t0; >> - >> - brw_MUL(p, >> - vec4(brw_null_reg()), >> - deref_4f(v1_ptr, delta), >> - t); >> - >> - brw_MAC(p, >> - tmp, >> - negate(deref_4f(v0_ptr, delta)), >> - t); >> - >> - brw_ADD(p, >> - deref_4f(dest_ptr, delta), >> - deref_4f(v0_ptr, delta), >> - tmp); >> - >> - release_tmp(c, tmp); >> + GLuint interp = c->key.interpolation_mode[slot]; >> + >> + if (interp != INTERP_QUALIFIER_FLAT) { >> + struct brw_reg tmp = get_tmp(c); >> + struct brw_reg t = >> + interp == INTERP_QUALIFIER_NOPERSPECTIVE ? t_nopersp : t0; >> + >> + brw_MUL(p, >> + vec4(brw_null_reg()), >> + deref_4f(v1_ptr, delta), >> + t); >> + >> + brw_MAC(p, >> + tmp, >> + negate(deref_4f(v0_ptr, delta)), >> + t); >> + >> + brw_ADD(p, >> + deref_4f(dest_ptr, delta), >> + deref_4f(v0_ptr, delta), >> + tmp); >> + >> + release_tmp(c, tmp); >> + } >> + else { >> + brw_MOV(p, >> + deref_4f(dest_ptr, delta), >> + deref_4f(v0_ptr, delta)); >> + } >> } >> } >> >> -- >> 1.8.3.2 >> >> _______________________________________________ >> 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