summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/link_varyings.cpp
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2016-06-14 14:38:04 -0700
committerIan Romanick <[email protected]>2016-07-05 16:58:27 -0700
commit3119871bd9558e5881466b70a4c366d2f83bba82 (patch)
treebadc9fd39f6832a0fbcd8ae973b42cd6d5d3067d /src/compiler/glsl/link_varyings.cpp
parent73a6a4ce4975016d4f86d644b31d30bb6d3a38f8 (diff)
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 <[email protected]> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96358 Reviewed-by: Kenneth Graunke <[email protected]> Cc: "12.0" <[email protected]> Cc: Gregory Hainaut <[email protected]> Cc: Ilia Mirkin <[email protected]>
Diffstat (limited to 'src/compiler/glsl/link_varyings.cpp')
-rw-r--r--src/compiler/glsl/link_varyings.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp
index 473626b7a16..76d0be1c61d 100644
--- a/src/compiler/glsl/link_varyings.cpp
+++ b/src/compiler/glsl/link_varyings.cpp
@@ -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;
}