[Mesa-dev] [PATCH V2] glsl: remove unnecessary check

Ian Romanick idr at freedesktop.org
Sat Jul 19 19:30:58 PDT 2014


On 07/19/2014 03:24 AM, Timothy Arceri wrote:
> On Sat, 2014-07-19 at 14:20 +1000, Timothy Arceri wrote:
>> On Sat, 2014-07-19 at 12:25 +1000, Timothy Arceri wrote:
>>> This code does nothing useful as the next recursive call on the array element
>>> will override any null values if the element is a record anyway. The code is
>>> also not doing what the comment says as its trying to set the record type
>>> pointer for only the first element of the array not the first leaf field 
>>> of the record.
>>
>> It's been a while since I wrote this patch so I decided to double check
>> it. For a second I thought I should have maybe left the null assignment
>> in the array loop, so that if record_type was already passed it wouldn't
>> be passed to each array element but that's what happens to each element
>> anyway if record_type is null.
>>
>> For example:
>>
>> struct S1 { 
>>    vec4 v;
>>    float f;
>> };
>>
>> struct S { 
>>    S1 s1[3];
>>    S1 s2;
>> };
>>
>> uniform Ubo { 
>>    S s;
>> };
>>
>>
>> Without my patch:
>>
>> s.s1[0].v == record_type: S
>> s.s1[1].v == record_type: S1
>> s.s1[2].v == record_type: S1
>> s.s1[0].f == record_type: null
>> s.s1[1].f == record_type: null
>> s.s1[2].f == record_type: null
>> s.s2.v == record_type: S1
>> s.s2.f == record_type: null
>>
>> With my patch:
>>
>> s.s1[0].v == record_type: S
>> s.s1[1].v == record_type: S
>> s.s1[2].v == record_type: S
>> s.s1[0].f == record_type: null
>> s.s1[1].f == record_type: null
>> s.s1[2].f == record_type: null
>> s.s2.v == record_type: S1
>> s.s2.v == record_type: null
>>
> 
> Ok it looks like that code path is just plain broken either way.
> 
> I've opened a bug [1] and attached a piglit patch that triggers the
> issue the test probably needs some work to make it a little more
> thorough before submitting to the piglit list.

I've been digging around in this area... and I have a pretty sizable
patch series coming in the next day or two.  I'll compare what you have
with what I have.  There are a *LOT* of bugs in the UBO code.

> [1] https://bugs.freedesktop.org/show_bug.cgi?id=81528
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list