OSDN Git Service

Arrays are not allowed as vertex shader inputs in GLSL 1.30 either
authorIan Romanick <ian.d.romanick@intel.com>
Tue, 30 Mar 2010 00:40:11 +0000 (17:40 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 30 Mar 2010 00:42:43 +0000 (17:42 -0700)
ast_to_hir.cpp
tests/attribute-11.glsl

index dd02483..a5fa5e1 100644 (file)
@@ -1155,6 +1155,12 @@ ast_declarator_list::hir(exec_list *instructions,
             *    vectors. Vertex shader inputs can also form arrays of these
             *    types, but not structures."
             *
+            * From page 31 (page 27 of the PDF) of the GLSL 1.30 spec:
+            *
+            *    "Vertex shader inputs can only be float, floating-point
+            *    vectors, matrices, signed and unsigned integers and integer
+            *    vectors. They cannot be arrays or structures."
+            *
             * From page 23 (page 29 of the PDF) of the GLSL 1.20 spec:
             *
             *    "The attribute qualifier can be used only with float,
@@ -1181,7 +1187,7 @@ ast_declarator_list::hir(exec_list *instructions,
               error_emitted = true;
            }
 
-           if (!error_emitted && (state->language_version <= 120)
+           if (!error_emitted && (state->language_version <= 130)
                && var->type->is_array()) {
               _mesa_glsl_error(& loc, state,
                                "vertex shader input / attribute cannot have "
index c1e6901..47cb5a0 100644 (file)
@@ -1,5 +1,5 @@
 #version 130
-/* PASS */
+/* FAIL - attribute cannot have array type in GLSL 1.30 */
 attribute vec4 i[10];
 
 void main()