[Mesa-dev] [PATCH v2] nir: delete magic number

Timothy Arceri tarcer at itsqueeze.com
Thu Feb 9 00:29:39 UTC 2017


On Wed, 2017-02-08 at 15:54 -0800, Jason Ekstrand wrote:
> On Wed, Feb 8, 2017 at 2:20 PM, Elie Tournier <tournier.elie at gmail.co
> m> wrote:
> > Signed-off-by: Elie Tournier <tournier.elie at gmail.com>
> > ---
> >  src/compiler/nir/nir_opt_loop_unroll.c | 10 +++++++++-
> >  1 file changed, 9 insertions(+), 1 deletion(-)
> > 
> > diff --git a/src/compiler/nir/nir_opt_loop_unroll.c
> > b/src/compiler/nir/nir_opt_loop_unroll.c
> > index 37cbced43d..035a030239 100644
> > --- a/src/compiler/nir/nir_opt_loop_unroll.c
> > +++ b/src/compiler/nir/nir_opt_loop_unroll.c
> > @@ -26,6 +26,14 @@
> >  #include "nir_control_flow.h"
> >  #include "nir_loop_analyze.h"
> > 
> > +
> > +/* This limit is chosen fairly arbitrarily.  The GLSL IR limit is
> > 25.
> > + * However, due to slight differences in the way the two IRs count
> > + * instructions, some loops that would unroll with GLSL IR fail to
> > unroll
> > + * if we set this to 25 so we set it to 26.
> 
> Ok, I lied in my comment.  It's not 25, it's 32.  Tim, can you
> explain the discrepancy?

Max iteration is 32 this is number of instructions, in GLSL IR it was
node and the magic number was 5. There is no 1:1 mapping 25 was picked
because it seemed to give about the same results.


> --Jason
>  
> > + */
> > +#define LOOP_UNROLL_LIMIT 26
> > +
> >  /* Prepare this loop for unrolling by first converting to lcssa
> > and then
> >   * converting the phis from the loops first block and the block
> > that follows
> >   * the loop into regs.  Partially converting out of SSA allows us
> > to unroll
> > @@ -460,7 +468,7 @@ is_loop_small_enough_to_unroll(nir_shader
> > *shader, nir_loop_info *li)
> >        return true;
> > 
> >     bool loop_not_too_large =
> > -      li->num_instructions * li->trip_count <= max_iter * 26;
> > +      li->num_instructions * li->trip_count <= max_iter *
> > LOOP_UNROLL_LIMIT;
> > 
> >     return loop_not_too_large;
> >  }
> > --
> > 2.11.0
> > 
> > 
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list