[Mesa-dev] [PATCH 5/5] i965: Remove the emit_linterp() helper.
Kenneth Graunke
kenneth at whitecape.org
Thu Jul 14 17:37:42 UTC 2016
On Thursday, July 14, 2016 8:23:23 AM PDT Matt Turner wrote:
> On Thu, Jul 14, 2016 at 12:57 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> > Rather than computing the barycentric mode each time we emit a LINTERP,
> > we can simply compute it once, as soon as we know we're doing non-flat
> > interpolation.
> >
> > At that point, emit_linterp() doesn't do much, so fold it into the
> > call sites and drop it.
> >
> > Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> > ---
> > src/mesa/drivers/dri/i965/brw_fs.cpp | 26 ++++++++------------------
> > src/mesa/drivers/dri/i965/brw_fs.h | 3 ---
> > 2 files changed, 8 insertions(+), 21 deletions(-)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> > index 1f6ff59..d4e5e86 100644
> > --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> > @@ -1104,18 +1104,6 @@ centroid_to_pixel(enum brw_barycentric_mode bary)
> > return (enum brw_barycentric_mode) ((unsigned) bary - 1);
> > }
> >
> > -fs_inst *
> > -fs_visitor::emit_linterp(const fs_reg &attr, const fs_reg &interp,
> > - glsl_interp_qualifier interpolation_mode,
> > - bool is_centroid, bool is_sample)
> > -{
> > - brw_barycentric_mode barycoord_mode =
> > - barycentric_mode(interpolation_mode, is_centroid, is_sample);
> > -
> > - return bld.emit(FS_OPCODE_LINTERP, attr,
> > - this->delta_xy[barycoord_mode], interp);
> > -}
> > -
> > void
> > fs_visitor::emit_general_interpolation(fs_reg *attr, const char *name,
> > const glsl_type *type,
> > @@ -1179,6 +1167,9 @@ fs_visitor::emit_general_interpolation(fs_reg *attr, const char *name,
> > }
> > } else {
> > /* Smooth/noperspective interpolation case. */
> > + enum brw_barycentric_mode bary =
> > + barycentric_mode(interpolation_mode, mod_centroid, mod_sample);
> > +
> > for (unsigned int i = 0; i < type->vector_elements; i++) {
> > fs_reg interp(interp_reg(*location, i));
> > if (devinfo->needs_unlit_centroid_workaround && mod_centroid) {
> > @@ -1190,23 +1181,22 @@ fs_visitor::emit_general_interpolation(fs_reg *attr, const char *name,
> > bld.emit(FS_OPCODE_MOV_DISPATCH_TO_FLAGS);
> >
> > fs_inst *inst;
> > - inst = emit_linterp(*attr, interp, interpolation_mode,
> > - false, false);
> > + inst = bld.emit(FS_OPCODE_LINTERP, *attr,
> > + delta_xy[centroid_to_pixel(bary)], interp);
> > inst->predicate = BRW_PREDICATE_NORMAL;
> > inst->predicate_inverse = true;
> > if (devinfo->has_pln)
> > inst->no_dd_clear = true;
> >
> > - inst = emit_linterp(*attr, interp, interpolation_mode,
> > - mod_centroid, mod_sample);
> > + inst = bld.emit(FS_OPCODE_LINTERP, *attr,
> > + delta_xy[bary], interp);
>
> I think this will fit on one line.
I wish, but it hits 81 :(
> This series is put together very well. Nice work. It is:
>
> Reviewed-by: Matt Turner <mattst88 at gmail.com>
Thanks!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160714/8ebfb74c/attachment.sig>
More information about the mesa-dev
mailing list