glsl/linker: outputs in the same location must share auxiliary storage
authorIago Toral Quiroga <itoral@igalia.com>
Thu, 19 Oct 2017 14:33:49 +0000 (16:33 +0200)
committerIago Toral Quiroga <itoral@igalia.com>
Thu, 26 Oct 2017 06:40:14 +0000 (08:40 +0200)
commitab40acb45341d8cea011ba7330626ffc6e3238ad
treeedd9de6ead3198d667f3a2a8308f628fa59a0af5
parent0b565f715d24d74d844f0708e3ed17ad1ee14faf
glsl/linker: outputs in the same location must share auxiliary storage

From ARB_enhanced_layouts:

"[...]when location aliasing, the aliases sharing the location
  must have the same underlying numerical type (floating-point or
  integer) and the same auxiliary storage and
  interpolation qualification.[...]"

Add code to the linker to validate that aliased locations do
have the same aux storage.

Fixes:
KHR-GL45.enhanced_layouts.varying_location_aliasing_with_mixed_auxiliary_storage

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
src/compiler/glsl/link_varyings.cpp