[Mesa-dev] [PATCH 5/8] i965: create a brw_shader_gather_info() helper

Eduardo Lima Mitev elima at igalia.com
Thu Sep 14 07:29:11 UTC 2017


On 09/13/2017 01:37 AM, Timothy Arceri wrote:
> This will help us call gather info at a later point and allow us
> to do some linking in nir.
> ---
>  src/mesa/drivers/dri/i965/brw_program.c | 20 +++++++++++++-------
>  src/mesa/drivers/dri/i965/brw_program.h |  3 +++
>  2 files changed, 16 insertions(+), 7 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_program.c b/src/mesa/drivers/dri/i965/brw_program.c
> index 9303dc85b9e..2d3fcd24647 100644
> --- a/src/mesa/drivers/dri/i965/brw_program.c
> +++ b/src/mesa/drivers/dri/i965/brw_program.c
> @@ -107,6 +107,19 @@ brw_create_nir(struct brw_context *brw,
>     NIR_PASS(progress, nir, nir_lower_system_values);
>     NIR_PASS_V(nir, brw_nir_lower_uniforms, is_scalar);
>  
> +   brw_shader_gather_info(nir, prog);
> +
> +   if (shader_prog) {
> +      NIR_PASS_V(nir, nir_lower_samplers, shader_prog);
> +      NIR_PASS_V(nir, nir_lower_atomics, shader_prog);
> +   }
> +
> +   return nir;
> +}
> +
> +void
> +brw_shader_gather_info(nir_shader *nir, struct gl_program *prog)
> +{
>     nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
>  
>     /* Copy the info we just generated back into the gl_program */
> @@ -115,13 +128,6 @@ brw_create_nir(struct brw_context *brw,
>     prog->info = nir->info;
>     prog->info.name = prog_name;
>     prog->info.label = prog_label;
> -
> -   if (shader_prog) {
> -      NIR_PASS_V(nir, nir_lower_samplers, shader_prog);
> -      NIR_PASS_V(nir, nir_lower_atomics, shader_prog);
> -   }
> -
> -   return nir;
>  }
>  
>  static unsigned
> diff --git a/src/mesa/drivers/dri/i965/brw_program.h b/src/mesa/drivers/dri/i965/brw_program.h
> index e62b7d366c8..c52193c691c 100644
> --- a/src/mesa/drivers/dri/i965/brw_program.h
> +++ b/src/mesa/drivers/dri/i965/brw_program.h
> @@ -25,6 +25,7 @@
>  #define BRW_PROGRAM_H
>  
>  #include "compiler/brw_compiler.h"
> +#include "nir.h"
>  
>  #ifdef __cplusplus
>  extern "C" {
> @@ -38,6 +39,8 @@ struct nir_shader *brw_create_nir(struct brw_context *brw,
>                                    gl_shader_stage stage,
>                                    bool is_scalar);
>  
> +void brw_shader_gather_info(nir_shader *nir, struct gl_program *prog);
> +
>

This new helper needs some documentation comment I think. Without the
context of this patch or this series, it is not evident what info is
gathered and for what purpose.

>  void brw_setup_tex_for_precompile(struct brw_context *brw,
>                                    struct brw_sampler_prog_key_data *tex,
>                                    struct gl_program *prog);
> 



More information about the mesa-dev mailing list