[Mesa-dev] [PATCH] Revert "intel/nir: Call nir_lower_io_to_scalar_early"

Dylan Baker dylan at pnwbakers.com
Tue Aug 14 16:25:10 UTC 2018


I don't think this will be picked up by the stable spotting scripts, does it
need a Fixes: tag?

Dylan

Quoting Jason Ekstrand (2018-08-08 12:05:00)
> Commit 4434591bf56a6b0 caused substantially more URB messages in
> geometry and tessellation shaders.  Before we can really enable this
> sort of optimization,  We either need some way of combining them back
> together into vectors or we need to do cross-stage vector element
> elimination without splitting everything into scalars.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107510
> ---
>  src/intel/compiler/brw_nir.c | 17 +++++------------
>  1 file changed, 5 insertions(+), 12 deletions(-)
> 
> diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c
> index 31ffbe613ec..29ad68fdb2a 100644
> --- a/src/intel/compiler/brw_nir.c
> +++ b/src/intel/compiler/brw_nir.c
> @@ -713,18 +713,6 @@ 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[(*consumer)->info.stage];
> -
> -   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);
>  
> @@ -741,7 +729,12 @@ 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[(*consumer)->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 --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180814/0f4bccc0/attachment.sig>


More information about the mesa-dev mailing list