[Mesa-dev] Re-linking warnings and optimization
Brian Paul
brianp at vmware.com
Thu May 15 06:14:32 PDT 2014
On 05/14/2014 06:28 PM, Kenneth Graunke wrote:
> Hi all,
>
> Here's a series of patches which implements warnings related to re-linking
> shader programs:
>
> 1. If you draw with a shader that needs re-linking, it gives you a warning.
> Most likely you simply forgot, and will be surprised by the results.
> Occasionally you might have meant to do that.
>
> 2. If you call LinkProgram when it doesn't need re-linking, it gives you
> a low severity performance warning, since you asked GL to do pointless
> work.
>
> Then, the patch series relaxes some "need to relink" conditions (if you
> bind attributes to the same values). More could be done here.
>
> With those in place, one unreleased game I was looking at issues piles of
> warnings about unnecessary linking, and then later issues piles of draw-time
> warnings about the need to re-link. I really don't know what's going on
> there.
>
> Finally, I made LinkProgram bail entirely when unnecessarily. The game
> and Piglit seem fine with this, so I think my tracking is OK. But, I'm
> not sure if we really want to do it.
>
> I'm also not super excited about the extra draw time overhead - especially
> checking for shader recompiles.
Reviewed-by: Brian Paul <brianp at vmware.com>
The series looks good to me. I think it's great to have extra sanity
checking like this to help find bugs or inefficient API usage.
As far as draw-time overhead, I wonder if some of this should be
predicated on whether we're using a debug context (a context created
with the GLX_CONTEXT_DEBUG_BIT_ARB flag). We could also have an env var
to force GLX_CONTEXT_DEBUG_BIT_ARB to true for testing purposes.
-Brian
More information about the mesa-dev
mailing list