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://bugs.freedesktop.org/show_bug.cgi?id=71734 > > 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.daen...@amd.com> -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev