i965: Fix partial variable access for geometry shaders in SSO mode.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 10 Dec 2015 02:26:19 +0000 (18:26 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 14 Dec 2015 22:39:38 +0000 (14:39 -0800)
commit9f3917bf372aa19f85875dbe30ca12adc9b67b90
tree0712c3eaa95a7cf0f33592c9a837b1d72fb6a725
parent8c4deb10dfbef683a2052a7bd62450aa76ad8fde
i965: Fix partial variable access for geometry shaders in SSO mode.

Without varying packing, if a VS writes a compound variable, and the GS
only reads part of it, the base location of the variable may not
actually be in the VUE map.

To cope with this, we do lowering in terms of varying slots, add any
constant offsets to the base, and then do the VUE map remapping.  This
ensures we only look up VUE map entries for slots which actually exist.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
src/mesa/drivers/dri/i965/brw_nir.c