[Mesa-dev] [PATCH 0/5] glsl: Clean up linker error checking.
Jordan Justen
jljusten at gmail.com
Sun Jul 28 11:33:20 PDT 2013
Reviewed-by: Jordan Justen <jordan.l.justen at intel.com>
On Sat, Jul 27, 2013 at 3:59 PM, Paul Berry <stereotype441 at gmail.com> wrote:
> I recently discovered a bug in my geometry shader branch wherein we
> were responding to certain kinds of link errors by calling
> linker_error(), but the program was still linking successfully. The
> root cause turned out to be that during the first half of the
> execution of link_shaders(), it was not sufficient to call
> linker_error()--the code had to also tell link_shaders() (through
> boolean return values) that the link had failed. During the second
> half link_shaders(), calling linker_error() was sufficient.
>
> This patch series cleans things up so that calling linker_error() is
> always sufficient to make the link fail, regardless of where execution
> is in link_shaders(). The cleanup happens in patch 3/5.
>
> In the process of making this fix, I also discovered one case where we
> were flagging the link error by returning false to link_shaders(), but
> we weren't calling linker_error(). As a result, the link would fail
> (as it should) but there would be no error message in the log. That
> is fixed in patch 2/5.
>
> Patch 1/5 removes some dead code which would have otherwise made the
> clean-up harder to follow. Patch 4/5 improves an error message that
> was previously vague because we were calling linker_error() from a
> point where we didn't have much information. Finally, patch 5/5
> removes some redundant code.
>
> [PATCH 1/5] glsl: Remove bogus check on return value of link_uniform_blocks().
> [PATCH 2/5] glsl: Add error message for intrastage interface block mismatch.
> [PATCH 3/5] glsl: Use a consistent technique for tracking link success/failure.
> [PATCH 4/5] glsl: Improve error message for interstage interface block mismatch.
> [PATCH 5/5] glsl: Remove redundant writes to prog->LinkStatus
> _______________________________________________
> 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