summaryrefslogtreecommitdiffstats
path: root/src/glsl/linker.cpp
diff options
context:
space:
mode:
authorTimothy Arceri <t_arceri@yahoo.com.au>2015-02-24 17:28:51 +1100
committerTimothy Arceri <t_arceri@yahoo.com.au>2015-03-06 07:26:57 +1100
commit1a96d9ef1c2821df7e49f6bf685d26c264167933 (patch)
tree02922be290e928dc787320ea1b6fc533167bb888 /src/glsl/linker.cpp
parentc5a56a63f9fe94eaddea358b2fd67a1b7abe9ab0 (diff)
downloadexternal_mesa3d-1a96d9ef1c2821df7e49f6bf685d26c264167933.zip
external_mesa3d-1a96d9ef1c2821df7e49f6bf685d26c264167933.tar.gz
external_mesa3d-1a96d9ef1c2821df7e49f6bf685d26c264167933.tar.bz2
glsl: let interface linking code validate its arrays
Currently intrastage arrays are validated twice for interface blocks. Reviewed-by: Mark Janes <mark.a.janes@intel.com>
Diffstat (limited to 'src/glsl/linker.cpp')
-rw-r--r--src/glsl/linker.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 590f364..0c44677 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -762,7 +762,8 @@ cross_validate_globals(struct gl_shader_program *prog,
/* Check if types match. Interface blocks have some special
* rules so we handle those elsewhere.
*/
- if (var->type != existing->type) {
+ if (var->type != existing->type &&
+ !var->is_interface_instance()) {
if (!validate_intrastage_arrays(prog, var, existing)) {
if (var->type->is_record() && existing->type->is_record()
&& existing->type->record_compare(var->type)) {