[Mesa-dev] [PATCH 1/2] glsl: Make a local variable to avoid restating this array lookup.

Ian Romanick idr at freedesktop.org
Wed Jun 5 12:16:32 PDT 2013


With the change suggested by Tapani,

Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

On 05/31/2013 12:37 PM, Eric Anholt wrote:
> ---
>   src/glsl/link_uniforms.cpp | 13 +++++++------
>   1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp
> index ad63668..54d54cf 100644
> --- a/src/glsl/link_uniforms.cpp
> +++ b/src/glsl/link_uniforms.cpp
> @@ -640,7 +640,9 @@ link_assign_uniform_locations(struct gl_shader_program *prog)
>       */
>      count_uniform_size uniform_size(prog->UniformHash);
>      for (unsigned i = 0; i < MESA_SHADER_TYPES; i++) {
> -      if (prog->_LinkedShaders[i] == NULL)
> +      struct gl_shader *sh = prog->_LinkedShaders[i];
> +
> +      if (sh == NULL)
>   	 continue;
>
>         /* Uniforms that lack an initializer in the shader code have an initial
> @@ -655,13 +657,13 @@ link_assign_uniform_locations(struct gl_shader_program *prog)
>         memset(prog->_LinkedShaders[i]->SamplerUnits, 0,
>                sizeof(prog->_LinkedShaders[i]->SamplerUnits));
>
> -      link_update_uniform_buffer_variables(prog->_LinkedShaders[i]);
> +      link_update_uniform_buffer_variables(sh);
>
>         /* Reset various per-shader target counts.
>          */
>         uniform_size.start_shader();
>
> -      foreach_list(node, prog->_LinkedShaders[i]->ir) {
> +      foreach_list(node, sh->ir) {
>   	 ir_variable *const var = ((ir_instruction *) node)->as_variable();
>
>   	 if ((var == NULL) || (var->mode != ir_var_uniform))
> @@ -678,9 +680,8 @@ link_assign_uniform_locations(struct gl_shader_program *prog)
>   	 uniform_size.process(var);
>         }
>
> -      prog->_LinkedShaders[i]->num_samplers = uniform_size.num_shader_samplers;
> -      prog->_LinkedShaders[i]->num_uniform_components =
> -	 uniform_size.num_shader_uniform_components;
> +      sh->num_samplers = uniform_size.num_shader_samplers;
> +      sh->num_uniform_components = uniform_size.num_shader_uniform_components;
>      }
>
>      const unsigned num_user_uniforms = uniform_size.num_active_uniforms;
>



More information about the mesa-dev mailing list