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

Emil Velikov emil.l.velikov at gmail.com
Mon Oct 19 03:33:42 PDT 2015


On 18 October 2015 at 13:45, Timothy Arceri <t_arceri at yahoo.com.au> wrote:
> 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.
>
Got it. Thanks

-Emil


More information about the mesa-dev mailing list