[Mesa-dev] [PATCH] mesa: Fix setup of LocalParams array.
eric at anholt.net
Wed Nov 20 16:36:05 PST 2013
Brian Paul <brianp at vmware.com> writes:
> On 11/18/2013 08:57 PM, Michel Dänzer wrote:
>> On Mon, 2013-11-18 at 17:27 -0800, Eric Anholt wrote:
>>> i965 passed piglit, but swrast and gallium both segfaulted without this.
>>> i965 happened to work because it never ran _mesa_load_state_parameters()
>>> on the new program before the test called glProgramLocalParameter(), which
>>> was allocating a LocalParams array for the fallback path.
>>> Bugzilla: https://urldefense.proofpoint.com/v1/url?u=https://bugs.freedesktop.org/show_bug.cgi?id%3D71734&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=lGQMzzTgII0I7jefp2FHq7WtZ%2BTLs8wadB%2BiIj9xpBY%3D%0A&m=FenPOzPz5K8JDnRydKK56aJb%2BU7r2jCyOZTQMlqq2j4%3D%0A&s=8886af736bc500974e0e754724be78536b9c6bcd1893c367bae2467c70ed6d08
>>> v2: Since v1 threw away old localparams data, leaked old LocalParams
>>> memory, only fixed fragment programs, and I was dubious of my previous
>>> invariants already (nothing but program_parse.y will generate
>>> LocalParams, and only that one path of program_parse.y will), just
>>> late-allocate localparams at the other point of dereferencing them.
>>> This adds overhead to _mesa_load_state_parameter, which is
>>> uncomfortable, but I'm pretty sure that giant switch statement is
>>> super slow already.
>> Fixes the piglit crashes with radeonsi, thanks Eric.
>> Tested-by: Michel Dänzer <michel.daenzer at amd.com>
> Can you push this today, Eric?
I was giving a chance for review, but both of you have taken a look, so
I went ahead and pushed.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 835 bytes
Desc: not available
More information about the mesa-dev