[Mesa-dev] [PATCH] glsl: fix SSBO regression

Timothy Arceri t_arceri at yahoo.com.au
Sun Oct 18 05:45:56 PDT 2015


On Sun, 2015-10-18 at 11:34 +0100, Emil Velikov wrote:
> Hi Timothy,
> 
> On 17 October 2015 at 23:19, Timothy Arceri <t_arceri at yahoo.com.au>
> wrote:
> > Fixes regression cased by bb5aeb854915ba67abc56257f830d002c956439e
> > 
> > We don't care about the swizzle when building the name so just skip
> > over it.
> > ---
> > 
> >  New piglit test: http://patchwork.freedesktop.org/patch/62111/
> > 
> >  src/glsl/lower_ubo_reference.cpp | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/src/glsl/lower_ubo_reference.cpp
> > b/src/glsl/lower_ubo_reference.cpp
> > index 1fbb09d..35469bf 100644
> > --- a/src/glsl/lower_ubo_reference.cpp
> > +++ b/src/glsl/lower_ubo_reference.cpp
> > @@ -238,6 +238,8 @@ interface_field_name(void *mem_ctx, char
> > *base_name, ir_rvalue *d,
> >        case ir_type_swizzle: {
> >           ir_swizzle *s = (ir_swizzle *) ir;
> >           ir = s->val->as_dereference();
> > +         /* Skip swizzle in the next pass */
> > +         d = ir;
> Wouldn't the ir_type_dereference_array case, above, need a similar
> fix ?

Hi Emil,

No. This first loop filters out the things we don't care about such as
swizzles and block members but we care about the array ir as its used
to build the name.

If its the memebr thats the array and not the block then case
ir_type_dereference_record will filter it out anyway as we are walking
backwards over the ir.

Tim

> 
> -Emil


More information about the mesa-dev mailing list