Uniform names (even for hidden uniforms) are required to be unique; some parts of the compiler assume they can be looked up by name.
Fixes the piglit test: tests/spec/glsl-1.20/linker/array-initializers-1 Signed-off-by: Chris Forbes <chr...@ijw.co.nz> Cc: "10.4" <mesa-sta...@lists.freedesktop.org> --- src/glsl/lower_const_arrays_to_uniforms.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/glsl/lower_const_arrays_to_uniforms.cpp b/src/glsl/lower_const_arrays_to_uniforms.cpp index b3c0ee2..700e903 100644 --- a/src/glsl/lower_const_arrays_to_uniforms.cpp +++ b/src/glsl/lower_const_arrays_to_uniforms.cpp @@ -49,6 +49,7 @@ public: { instructions = insts; progress = false; + index = 0; } bool run() @@ -62,6 +63,7 @@ public: private: exec_list *instructions; bool progress; + unsigned index; }; void @@ -76,8 +78,10 @@ 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++); + ir_variable *uni = - new(mem_ctx) ir_variable(con->type, "constarray", ir_var_uniform); + new(mem_ctx) ir_variable(con->type, uniform_name, ir_var_uniform); uni->constant_initializer = con; uni->constant_value = con; uni->data.has_initializer = true; -- 2.1.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev