glsl: Don't allow vertex shader input arrays until GLSL 1.50.
authorPaul Berry <stereotype441@gmail.com>
Thu, 11 Jul 2013 22:40:11 +0000 (15:40 -0700)
committerPaul Berry <stereotype441@gmail.com>
Mon, 15 Jul 2013 14:50:47 +0000 (07:50 -0700)
Vertex shader inputs are not allowed to be arrays until GLSL 1.50.  We
were accidentally enabling them for GLSL 1.40 (although we haven't
written any tests for them, so it's not clear whether they actually
work).

NOTE: although this is a simple bug fix, it probably isn't sensible to
cherry-pick it to stable release branches, since its only effect is to
cause incorrectly-written shaders to fail to compile.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/ast_to_hir.cpp

index 01203134d6d6bae8a1891b8b876cfa8adc4441c2..28ccf72887010a57c21c4fd09de604882470c9c6 100644 (file)
@@ -2707,7 +2707,7 @@ ast_declarator_list::hir(exec_list *instructions,
            }
 
            if (!error_emitted && var->type->is_array() &&
-                !state->check_version(140, 0, &loc,
+                !state->check_version(150, 0, &loc,
                                       "vertex shader input / attribute "
                                       "cannot have array type")) {
               error_emitted = true;