When converting a uniform array reference to a pull constant load, the
`reladdr` expression itself may have its own `reladdr`, arbitrarily
deeply. This arises from expressions like:
a[b[x]] where a, b are uniform arrays (or lowered const arrays),
and x is not a constant.
Just iterate the lowering to pull constants until we stop seeing these
nested. For most shaders, there will be only one pass through this loop.
Fixes the piglit test:
tests/spec/glsl-1.20/linker/double-indirect-1.shader_test
Signed-off-by: Chris Forbes <chrisf@ijw.co.nz>
Cc: "10.3 10.4" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
|
||
|---|---|---|
| .. | ||
| egl | ||
| gallium | ||
| gbm | ||
| getopt | ||
| glsl | ||
| glx | ||
| gtest | ||
| hgl | ||
| loader | ||
| mapi | ||
| mesa | ||
| util | ||
| Makefile.am | ||
| SConscript | ||