glsl: Update call_link_visitor to update max_ifc_array_access.
authorPaul Berry <stereotype441@gmail.com>
Tue, 24 Sep 2013 18:52:50 +0000 (11:52 -0700)
committerPaul Berry <stereotype441@gmail.com>
Wed, 9 Oct 2013 23:49:46 +0000 (16:49 -0700)
commit45e46b2e371e59f11f19b9169aa79ce2b1dffd6f
treedec88ba9d03ee4df41d5c6720e94a1e7daa891f4
parente226669eea47e2075c1188e5c61e0ba479ff8d47
glsl: Update call_link_visitor to update max_ifc_array_access.

When multiple shaders of the same type access an interface block
containing an unsized array, we need to set the array size based on
the maximum array element accessed across all the shaders.  This is
similar to what we already do with unsized arrays occurring outside of
interface blocks.

Note: one corner case is not yet addressed by these patches: the case
where one compilation unit defines an interface block containing
unsized arrays and another compilation unit defines the same interface
block containing sized arrays.

Fixes piglit test:
- spec/glsl-1.50/execution/unsized-in-named-interface-block-multiple

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/glsl/link_functions.cpp