[Mesa-dev] [PATCH 08/11] nir/lower_tex: Report progress

Jason Ekstrand jason at jlekstrand.net
Fri Nov 13 07:38:59 PST 2015


On Nov 13, 2015 5:25 AM, "Iago Toral" <itoral at igalia.com> wrote:
>
> On Wed, 2015-11-11 at 17:26 -0800, Jason Ekstrand wrote:
> > ---
> >  src/glsl/nir/nir.h           |  2 +-
> >  src/glsl/nir/nir_lower_tex.c | 19 +++++++++++++++----
> >  2 files changed, 16 insertions(+), 5 deletions(-)
> >
> > diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h
> > index 41125b1..2299ece 100644
> > --- a/src/glsl/nir/nir.h
> > +++ b/src/glsl/nir/nir.h
> > @@ -1981,7 +1981,7 @@ typedef struct nir_lower_tex_options {
> >     unsigned saturate_r;
> >  } nir_lower_tex_options;
> >
> > -void nir_lower_tex(nir_shader *shader,
> > +bool nir_lower_tex(nir_shader *shader,
> >                     const nir_lower_tex_options *options);
> >
> >  void nir_lower_idiv(nir_shader *shader);
> > diff --git a/src/glsl/nir/nir_lower_tex.c b/src/glsl/nir/nir_lower_tex.c
> > index 8aaa48a..21ed103 100644
> > --- a/src/glsl/nir/nir_lower_tex.c
> > +++ b/src/glsl/nir/nir_lower_tex.c
> > @@ -41,6 +41,7 @@
> >  typedef struct {
> >     nir_builder b;
> >     const nir_lower_tex_options *options;
> > +   bool progress;
> >  } lower_tex_state;
> >
> >  static void
> > @@ -239,15 +240,21 @@ nir_lower_tex_block(nir_block *block, void
*void_state)
> >        /* If we are clamping any coords, we must lower projector first
> >         * as clamping happens *after* projection:
> >         */
> > -      if (lower_txp || sat_mask)
> > +      if (lower_txp || sat_mask) {
> >           project_src(b, tex);
> > +         state->progress = true;
> > +      }
> >
> >        if ((tex->sampler_dim == GLSL_SAMPLER_DIM_RECT) &&
> > -          state->options->lower_rect)
> > +          state->options->lower_rect) {
> >           lower_rect(b, tex);
> > +         state->progress = true;
> > +      }
> >
> > -      if (sat_mask)
> > +      if (sat_mask) {
> >           saturate_src(b, tex, sat_mask);
> > +         state->progress = true;
> > +      }
> >     }
> >
> >     return true;
> > @@ -264,13 +271,17 @@ nir_lower_tex_impl(nir_function_impl *impl,
lower_tex_state *state)
> >                                 nir_metadata_dominance);
> >  }
> >
> > -void
> > +bool
> >  nir_lower_tex(nir_shader *shader, const nir_lower_tex_options *options)
> >  {
> >     lower_tex_state state;
> >     state.options = options;
> > +   state.progress = false;
> > +
> >     nir_foreach_overload(shader, overload) {
> >        if (overload->impl)
> >           nir_lower_tex_impl(overload->impl, &state);
> >     }
> > +
> > +   return state.progress;
> >  }
>
> If we are making this change then we also want to make the call to this
> pass use OPT() instead of OPT_V() in brw_preprocess_nir(), so it is
> consistent with patch 3 in this series.

Good call. Will do.

> With that change,
> Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
>
> Iago
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20151113/c56f6979/attachment-0001.html>


More information about the mesa-dev mailing list