glsl/linker: Subdivide the first phase of varying assignment.
authorPaul Berry <stereotype441@gmail.com>
Tue, 4 Dec 2012 23:55:59 +0000 (15:55 -0800)
committerPaul Berry <stereotype441@gmail.com>
Fri, 14 Dec 2012 18:49:08 +0000 (10:49 -0800)
commiteb989e37cb7ed2e3268959bdd869dc305177e468
tree48ecb29e4addbbb5735961813ff0e8513045150e
parent25ed3bef9b84c06cda06c9e77ff733d1ba863bf5
glsl/linker: Subdivide the first phase of varying assignment.

This patch further subdivides the loop that assigns varying locations
into two phases: one phase to match up the varyings between shader
stages, and one phase to assign them varying locations.

In between the two phases the matched varyings are stored in a new
data structure called varying_matches.  This will free us to be able
to assign varying locations in any order, which will pave the way for
packing varyings.

Note that the new varying_matches::assign_locations() function returns
the number of varying slots that were used; this return value will be
used in a future patch.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/glsl/linker.cpp