glsl: Support transform feedback of varying structs.
authorPaul Berry <stereotype441@gmail.com>
Tue, 29 Jan 2013 15:34:52 +0000 (07:34 -0800)
committerPaul Berry <stereotype441@gmail.com>
Mon, 4 Feb 2013 18:36:47 +0000 (10:36 -0800)
commit99b78337e38308480ee491493b045179f10ed579
tree1dc5e072f1a84a9a96dc1ada1a8ba0a2063cea6a
parent53febac02c382fa163a9ad7280fc5f4d2707a665
glsl: Support transform feedback of varying structs.

Since transform feedback needs to be able to access individual fields
of varying structs, we can no longer match up the arguments to
glTransformFeedbackVaryings() with variables in the vertex shader.

Instead, we build up a hashtable which records information about each
possible name that is a candidate for transform feedback, and then
match up the arguments to glTransformFeedbackVaryings() with the
contents of that hashtable.

Populating the hashtable uses the program_resource_visitor
infrastructure, so the logic is shared with how we handle uniforms.

NOTE: This is a candidate for the 9.1 branch.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/glsl/link_varyings.cpp
src/glsl/link_varyings.h