[Mesa-dev] [PATCH 4/4] linker: Accurately track gl_uniform_block::stageref

Kenneth Graunke kenneth at whitecape.org
Wed Nov 9 19:44:18 UTC 2016


On Monday, November 7, 2016 9:50:41 PM PST Ian Romanick wrote:
> From: Ian Romanick <ian.d.romanick at intel.com>
> 
> As the linked per-stage shaders are processed, mark any block that has a
> field that is accessed as referenced.  When combining all the linked
> shaders, combine the per-stage stageref masks.
> 
> This fixes a number of GLES CTS tests including
> ESEXT-CTS.geometry_shader.program_resource.program_resource.  However,
> it makes quite a few more fail.  I have diagnosed the failures, but I'm
> not sure whether we or the tests are wrong.  After optimizations are
> applied, all of the tests are of the form:
> 
>     buffer X {
>         float f;
>     } x;
> 
>     void main()
>     {
>         x.f = x.f;
>     }
> 
> The test then queries that x is referenced by that shader stage.  We
> eliminate the assignment of x.f to itself, and that removes the last
> reference to x.  We report that x is not referenced, and the test fails.
> I do not know whether or not we are allowed to eliminate that assignment
> of x.f to itself.
> 
> Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

Thanks for fixing all of this, Ian!

Series is:
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161109/d35ca9e4/attachment-0001.sig>


More information about the mesa-dev mailing list