[Mesa-dev] [PATCH 3/2] intel/nir: Call nir_lower_io_to_scalar_early

Nils Wallménius nils.wallmenius at gmail.com
Tue Jul 31 16:55:25 UTC 2018


Hi, sorry for the drive-by but a comment in line below

Den tis 31 juli 2018 16:09Jason Ekstrand <jason at jlekstrand.net> skrev:

> Shader-db results on Kaby Lake:
>
>     total instructions in shared programs: 15166953 -> 15073611 (-0.62%)
>     instructions in affected programs: 2390284 -> 2296942 (-3.91%)
>     helped: 16469
>     HURT: 505
>
>     total loops in shared programs: 4954 -> 4951 (-0.06%)
>     loops in affected programs: 3 -> 0
>     helped: 3
>     HURT: 0
> ---
>  src/intel/compiler/brw_nir.c | 17 ++++++++++++-----
>  1 file changed, 12 insertions(+), 5 deletions(-)
>
> diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c
> index 99ef6bec77f..a6e3e502cdd 100644
> --- a/src/intel/compiler/brw_nir.c
> +++ b/src/intel/compiler/brw_nir.c
> @@ -713,6 +713,18 @@ brw_nir_link_shaders(const struct brw_compiler
> *compiler,
>     nir_validate_shader(*producer);
>     nir_validate_shader(*consumer);
>
> +   const bool p_is_scalar =
> +      compiler->scalar_stage[(*producer)->info.stage];
> +   const bool c_is_scalar =
> +      compiler->scalar_stage[(*producer)->info.stage];
>

Shouldn't the above index be s/producer/consumer/ ? else both booleans are
the same.

BR
Nils

+
> +   if (p_is_scalar && c_is_scalar) {
> +      NIR_PASS_V(*producer, nir_lower_io_to_scalar_early,
> nir_var_shader_out);
> +      NIR_PASS_V(*consumer, nir_lower_io_to_scalar_early,
> nir_var_shader_in);
> +      *producer = brw_nir_optimize(*producer, compiler, p_is_scalar);
> +      *consumer = brw_nir_optimize(*consumer, compiler, c_is_scalar);
> +   }
> +
>     NIR_PASS_V(*producer, nir_remove_dead_variables, nir_var_shader_out);
>     NIR_PASS_V(*consumer, nir_remove_dead_variables, nir_var_shader_in);
>
> @@ -729,12 +741,7 @@ brw_nir_link_shaders(const struct brw_compiler
> *compiler,
>        NIR_PASS_V(*consumer, nir_lower_indirect_derefs,
>                   brw_nir_no_indirect_mask(compiler,
> (*consumer)->info.stage));
>
> -      const bool p_is_scalar =
> -         compiler->scalar_stage[(*producer)->info.stage];
>        *producer = brw_nir_optimize(*producer, compiler, p_is_scalar);
> -
> -      const bool c_is_scalar =
> -         compiler->scalar_stage[(*producer)->info.stage];
>        *consumer = brw_nir_optimize(*consumer, compiler, c_is_scalar);
>     }
>  }
> --
> 2.17.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180731/6dfbbdb4/attachment.html>


More information about the mesa-dev mailing list