st/glsl: refactor st_link_nir()
authorTimothy Arceri <tarceri@itsqueeze.com>
Wed, 2 Jan 2019 23:03:05 +0000 (10:03 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Sun, 6 Jan 2019 23:54:20 +0000 (10:54 +1100)
commit17fac393988774c3977d341b9290530f90bb7ef2
tree1bbfdff0da29c99647c89a36aedb1a07b77e1000
parent8847370424b12fc83a069eb80cfde76b348a7aec
st/glsl: refactor st_link_nir()

The functional change here is moving the nir_lower_io_to_scalar_early()
calls inside st_nir_link_shaders() and moving the st_nir_opts() call
after the call to nir_lower_io_arrays_to_elements().

This fixes a bug with the following piglit test due to the current code
not cleaning up dead code after we lower arrays. This was causing an
assert in the new duplicate varyings link time opt introduced in
70be9afccb23.

tests/spec/glsl-1.10/execution/vsfs-unused-array-member.shader_test

Moving the nir_lower_io_to_scalar_early() calls also allows us to tidy
up the code a little and merge some loops.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/state_tracker/st_glsl_to_nir.cpp