[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