glsl: Allow elimination of uniform block members
authorIan Romanick <ian.d.romanick@intel.com>
Sat, 15 Dec 2012 22:49:53 +0000 (14:49 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Fri, 25 Jan 2013 14:07:36 +0000 (09:07 -0500)
commit32f322925592e9eeda6a5624c7320232fc170c03
treee4bba72caf2c2a3412f00cb00305ab7ba2969dc6
parent514f8c7ec7cc1ab18be93cebb5b9bf970b1955a9
glsl: Allow elimination of uniform block members

glGetActiveUniform is not supposed to report block members that are not
active even if they are included in the layout of the block.  The block
layout is determined from the GLSL_TYPE_INTERFACE that defines the
block, so eliminating the ir_variables that correspond to the individual
fields is safe.

Fixes gles3conform test
uniform_buffer_object_getuniformindices_for_for_nonexistent_or_not_active_uniform_names.

This also fixes the assertion failures (added in the previous commit) in
gles3conform uniform_buffer_object_index_of_not_active_block,
uniform_buffer_object_inherit_and_override_layouts, and
uniform_buffer_object_repeat_global_scope_layouts.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
src/glsl/opt_dead_code.cpp