glsl/linker: link shaders in the opposite order (from fragment to vertex)
authorMarek Olšák <maraeo@gmail.com>
Wed, 12 Jun 2013 00:18:09 +0000 (02:18 +0200)
committerMarek Olšák <maraeo@gmail.com>
Tue, 2 Jul 2013 15:02:14 +0000 (17:02 +0200)
commit284d9549123d7a5417310d359c2c46a4317e47bb
tree21484d5d55b26feeb51d03a1a57d9811e68a0823
parent030ca230e25192307336cb39f1ee414d0392b620
glsl/linker: link shaders in the opposite order (from fragment to vertex)

This ensures that inter-shader outputs and inputs are properly eliminated
across 3 or more shader stages. The behavior is unchanged with 2 or less
shader stages.

For example, elimination of unused FS inputs causes elimination of matching
GS outputs, which causes elimination of the GS inputs that were needed for
evaluation of the eliminated GS outputs, which causes elimination of
matching VS outputs. An unused FS input is all that's needed to trigger
this chain reaction.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/glsl/linker.cpp