Indeed, will fix.
On Tue, Jul 15, 2014 at 10:24 PM, Ilia Mirkin <imir...@alum.mit.edu> wrote: > On Sat, Jul 12, 2014 at 9:51 PM, Chris Forbes <chr...@ijw.co.nz> wrote: >> Previously this was a block index with special semantics for -1. >> With ARB_gpu_shader5, this need not be a compile-time constant, so >> allow any rvalue here and convert the -1 to a NULL pointer. >> >> Signed-off-by: Chris Forbes <chr...@ijw.co.nz> >> --- >> src/glsl/lower_ubo_reference.cpp | 15 ++++++++------- >> 1 file changed, 8 insertions(+), 7 deletions(-) >> >> diff --git a/src/glsl/lower_ubo_reference.cpp >> b/src/glsl/lower_ubo_reference.cpp >> index 85e9c7d..c49ae34 100644 >> --- a/src/glsl/lower_ubo_reference.cpp >> +++ b/src/glsl/lower_ubo_reference.cpp >> @@ -57,7 +57,7 @@ public: >> void *mem_ctx; >> struct gl_shader *shader; >> struct gl_uniform_buffer_variable *ubo_var; >> - unsigned uniform_block; >> + ir_rvalue *uniform_block; >> bool progress; >> }; >> >> @@ -145,10 +145,10 @@ lower_ubo_reference_visitor::handle_rvalue(ir_rvalue >> **rvalue) >> interface_field_name(mem_ctx, (char *) >> var->get_interface_type()->name, >> deref); >> >> - this->uniform_block = -1; >> + this->uniform_block = NULL; >> for (unsigned i = 0; i < shader->NumUniformBlocks; i++) { >> if (strcmp(field_name, shader->UniformBlocks[i].Name) == 0) { >> - this->uniform_block = i; >> + this->uniform_block = new(mem_ctx) ir_constant(i); >> >> struct gl_uniform_block *block = &shader->UniformBlocks[i]; >> >> @@ -159,7 +159,7 @@ lower_ubo_reference_visitor::handle_rvalue(ir_rvalue >> **rvalue) >> } >> } >> >> - assert(this->uniform_block != (unsigned) -1); >> + assert(this->uniform_block); >> >> ir_rvalue *offset = new(mem_ctx) ir_constant(0u); >> unsigned const_offset = 0; >> @@ -277,11 +277,12 @@ ir_expression * >> lower_ubo_reference_visitor::ubo_load(const glsl_type *type, >> ir_rvalue *offset) >> { >> + ir_rvalue * block_ref = this->uniform_block->clone(mem_ctx, NULL); > > ir_value *block_ref = ... > > I think is the more common way to write this. (i.e. remove the space > after the * ). > >> return new(mem_ctx) >> ir_expression(ir_binop_ubo_load, >> - type, >> - new(mem_ctx) ir_constant(this->uniform_block), >> - offset); >> + type, >> + block_ref, >> + offset); >> >> } >> >> -- >> 2.0.1 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev