[Mesa-dev] [PATCH 4/4] glsl: simplify link_assign_uniform_storage() a bit

Timothy Arceri tarceri at itsqueeze.com
Tue May 16 03:13:28 UTC 2017


On 15/05/17 20:55, Samuel Pitoiset wrote:
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>   src/compiler/glsl/link_uniforms.cpp | 17 +++++++++--------
>   1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/src/compiler/glsl/link_uniforms.cpp b/src/compiler/glsl/link_uniforms.cpp
> index c5db1d62cb..b11739ce78 100644
> --- a/src/compiler/glsl/link_uniforms.cpp
> +++ b/src/compiler/glsl/link_uniforms.cpp
> @@ -1238,12 +1238,14 @@ link_assign_uniform_storage(struct gl_context *ctx,
>                                        prog->data->UniformStorage, data);
>   
>      for (unsigned i = 0; i < MESA_SHADER_STAGES; i++) {
> -      if (prog->_LinkedShaders[i] == NULL)
> +      struct gl_linked_shader *shader = prog->_LinkedShaders[i];
> +
> +      if (!shader)
>            continue;

Note you could also use the prog->data->linked_stages mask and replace 
the for/continue with a while loop here.

Either way series:

Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

>   
>         parcel.start_shader((gl_shader_stage)i);
>   
> -      foreach_in_list(ir_instruction, node, prog->_LinkedShaders[i]->ir) {
> +      foreach_in_list(ir_instruction, node, shader->ir) {
>            ir_variable *const var = node->as_variable();
>   
>            if ((var == NULL) || (var->data.mode != ir_var_uniform &&
> @@ -1253,15 +1255,14 @@ link_assign_uniform_storage(struct gl_context *ctx,
>            parcel.set_and_process(var);
>         }
>   
> -      prog->_LinkedShaders[i]->Program->SamplersUsed =
> -         parcel.shader_samplers_used;
> -      prog->_LinkedShaders[i]->shadow_samplers = parcel.shader_shadow_samplers;
> +      shader->Program->SamplersUsed = parcel.shader_samplers_used;
> +      shader->shadow_samplers = parcel.shader_shadow_samplers;
>   
> -      STATIC_ASSERT(sizeof(prog->_LinkedShaders[i]->Program->sh.SamplerTargets) ==
> +      STATIC_ASSERT(sizeof(shader->Program->sh.SamplerTargets) ==
>                       sizeof(parcel.targets));
> -      memcpy(prog->_LinkedShaders[i]->Program->sh.SamplerTargets,
> +      memcpy(shader->Program->sh.SamplerTargets,
>                parcel.targets,
> -             sizeof(prog->_LinkedShaders[i]->Program->sh.SamplerTargets));
> +             sizeof(shader->Program->sh.SamplerTargets));
>      }
>   
>      /* If this is a fallback compile for a cache miss we already have the
> 


More information about the mesa-dev mailing list