glsl: Pack integer and double varyings as flat even if interpolation mode is none

v2: Also update varying_matches::compute_packing_class().  Suggested by
Timothy Arceri.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96358
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Cc: "12.0" <mesa-stable@lists.freedesktop.org>
Cc: Gregory Hainaut <gregory.hainaut@gmail.com>
Cc: Ilia Mirkin <imirkin@alum.mit.edu>
This commit is contained in:
Ian Romanick
2016-06-14 14:38:04 -07:00
parent 73a6a4ce49
commit 3119871bd9
3 changed files with 15 additions and 6 deletions

View File

@@ -1611,7 +1611,8 @@ varying_matches::compute_packing_class(const ir_variable *var)
unsigned packing_class = var->data.centroid | (var->data.sample << 1) |
(var->data.patch << 2);
packing_class *= 4;
packing_class += var->data.interpolation;
packing_class += var->is_interpolation_flat()
? unsigned(INTERP_QUALIFIER_FLAT) : var->data.interpolation;
return packing_class;
}