glsl: fix names in lower_constant_arrays_to_uniforms

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@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89590
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Cc: 10.5 10.4 <mesa-stable@lists.freedesktop.org>
This commit is contained in:
Tapani Pälli 2015-03-23 09:12:35 +02:00
parent a6d4a108d2
commit 3cf99701ba

View file

@ -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);