glsl: Don't remove XFB-only varyings.
authorKenneth Graunke <kenneth@whitecape.org>
Sun, 3 Apr 2016 07:48:03 +0000 (00:48 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 11 Apr 2016 02:03:06 +0000 (19:03 -0700)
commit26c56e24e700d0ab4c6499fea28328045b5e4b32
tree983001d652f07e5100e05b5630818d8652dd7083
parentce84a92df54c738d2c248716f0f673247d50e1a7
glsl: Don't remove XFB-only varyings.

Consider the case of linking a program with both a vertex and fragment
shader.  The VS may compute output varyings that are intended for
transform feedback, and not read by the fragment shader.

In this case, var->data.is_unmatched_generic_inout will be true,
but we still cannot eliminate the varyings.  We need to also check
!var->data.is_xfb_only.

Fixes failures in ES31-CTS.gpu_shader5.fma_precision_*, which happen
to use transform feedback in a way we apparently hadn't seen before.

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
src/compiler/glsl/link_varyings.cpp