[Mesa-dev] [Mesa-stable] [PATCH v2] glsl: fix names in lower_constant_arrays_to_uniforms

Chris Forbes chrisf at ijw.co.nz
Mon Mar 23 00:16:10 PDT 2015


Looks good to me. I should have considered this cross-stage case when
I fixed the first part of this bug...

Do you have a piglit test which hits this?

Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

On Mon, Mar 23, 2015 at 8:12 PM, Tapani Pälli <tapani.palli at intel.com> wrote:
> Patch changes lowering pass to use unique name for each uniform
> so that arrays from different stages cannot end up having same
> name.
>
> v2: instead of global counter, use pointer to achieve
>     unique name (Kenneth Graunke)
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89590
> Cc: 10.5 10.4 <mesa-stable at lists.freedesktop.org>
> ---
>  configure.ac                                | 2 +-
>  src/glsl/lower_const_arrays_to_uniforms.cpp | 4 +---
>  2 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 08378f5..19d4c06 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -68,7 +68,7 @@ AC_SUBST([OSMESA_VERSION])
>  dnl Versions for external dependencies
>  LIBDRM_REQUIRED=2.4.38
>  LIBDRM_RADEON_REQUIRED=2.4.56
> -LIBDRM_INTEL_REQUIRED=2.4.60
> +LIBDRM_INTEL_REQUIRED=2.4.59
>  LIBDRM_NVVIEUX_REQUIRED=2.4.33
>  LIBDRM_NOUVEAU_REQUIRED="2.4.33 libdrm >= 2.4.41"
>  LIBDRM_FREEDRENO_REQUIRED=2.4.57
> diff --git a/src/glsl/lower_const_arrays_to_uniforms.cpp b/src/glsl/lower_const_arrays_to_uniforms.cpp
> index 2243f47..44967dc 100644
> --- a/src/glsl/lower_const_arrays_to_uniforms.cpp
> +++ b/src/glsl/lower_const_arrays_to_uniforms.cpp
> @@ -49,7 +49,6 @@ public:
>     {
>        instructions = insts;
>        progress = false;
> -      index = 0;
>     }
>
>     bool run()
> @@ -63,7 +62,6 @@ public:
>  private:
>     exec_list *instructions;
>     bool progress;
> -   unsigned index;
>  };
>
>  void
> @@ -82,7 +80,7 @@ lower_const_array_visitor::handle_rvalue(ir_rvalue **rvalue)
>
>     void *mem_ctx = ralloc_parent(con);
>
> -   char *uniform_name = ralloc_asprintf(mem_ctx, "constarray__%d", index++);
> +   char *uniform_name = ralloc_asprintf(mem_ctx, "constarray__%p", dra);
>
>     ir_variable *uni =
>        new(mem_ctx) ir_variable(con->type, uniform_name, ir_var_uniform);
> --
> 2.1.0
>
> _______________________________________________
> mesa-stable mailing list
> mesa-stable at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-stable


More information about the mesa-dev mailing list