I also got myself some benchmark data! I wrote a python script to which generates a shader_test file with 5000 back-to-back random integer division operations. The compiler takes a long time to compile the shader but, running it with shader_time, I see about a 2x improvement with my pass.
On Thu, Sep 13, 2018 at 2:41 PM Jason Ekstrand <[email protected]> wrote: > Shader-db results on Sky Lake: > > total instructions in shared programs: 15105795 -> 15111403 (0.04%) > instructions in affected programs: 72774 -> 78382 (7.71%) > helped: 0 > HURT: 265 > > Note that hurt here actually means helped because we're getting rid of > integer quotient operations (which are a send on some platforms!) and > replacing them with fairly cheap ALU ops. > --- > src/intel/compiler/brw_nir.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c > index b38c3ba383d..4de0a6c44d4 100644 > --- a/src/intel/compiler/brw_nir.c > +++ b/src/intel/compiler/brw_nir.c > @@ -569,6 +569,7 @@ brw_nir_optimize(nir_shader *nir, const struct > brw_compiler *compiler, > OPT(nir_opt_cse); > OPT(nir_opt_peephole_select, 0); > OPT(nir_opt_intrinsics); > + OPT(nir_opt_idiv_const, 0); > OPT(nir_opt_algebraic); > OPT(nir_opt_constant_folding); > OPT(nir_opt_dead_cf); > @@ -675,7 +676,8 @@ brw_preprocess_nir(const struct brw_compiler > *compiler, nir_shader *nir) > */ > nir_lower_int64(nir, nir_lower_imul64 | > nir_lower_isign64 | > - nir_lower_divmod64); > + nir_lower_divmod64 | > + nir_lower_imul_high64); > > nir = brw_nir_optimize(nir, compiler, is_scalar, true); > > -- > 2.17.1 > >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
