i965: Make brw_type_for_base_type return the element type for arrays.
authorEric Anholt <eric@anholt.net>
Wed, 9 Nov 2011 03:26:38 +0000 (19:26 -0800)
committerEric Anholt <eric@anholt.net>
Wed, 9 Nov 2011 20:59:19 +0000 (12:59 -0800)
commite19dfc75b67e263437bd08b161c15b34582ccb2f
tree5213043187b9aa2769a0b0b34e65f43b54016ee7
parenta00c5a71cd95d340f9ba54a0360f654414d627d2
i965: Make brw_type_for_base_type return the element type for arrays.

Previously, brw_type_for_base_type returned UD for array variables,
similar to structures.  For structures, each field may have a different
type, so every field access must explicitly override the register's type
with that field's type.  We chose to return UD in this case since it was
the least common, so errors would be more obvious.

For arrays, it makes far more sense to return the type corresponding to
an element of the array.  This allows normal array access to work
without the hassle of explicitly overriding the register's type.

This should obsolete a bunch of type overrides throughout the code.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/brw_shader.cpp