glsl: Allow 'in' and 'out' when 'layout' is also available
authorIan Romanick <ian.d.romanick@intel.com>
Sat, 8 Jan 2011 00:53:07 +0000 (16:53 -0800)
committerIan Romanick <ian.d.romanick@intel.com>
Thu, 13 Jan 2011 21:35:50 +0000 (13:35 -0800)
All of the extensions that add the 'layout' keyword also enable (and
required) the use of 'in' and 'out' with shader globals.

This is related to (piglit) bugzilla #31804.

NOTE: This is a candidate for the 7.9 and 7.10 branches.

src/glsl/ast_to_hir.cpp

index a833be18f315f1e51aa0210a1f66072ddffb84a1..d70978c838b604d45413acfbd9532a13612c2a8a 100644 (file)
@@ -2088,9 +2088,12 @@ ast_declarator_list::hir(exec_list *instructions,
        *
        *     Local variables can only use the qualifier const."
        *
-       * This is relaxed in GLSL 1.30.
+       * This is relaxed in GLSL 1.30.  It is also relaxed by any extension
+       * that adds the 'layout' keyword.
        */
-      if (state->language_version < 130) {
+      if ((state->language_version < 130)
+         && !state->ARB_explicit_attrib_location_enable
+         && !state->ARB_fragment_coord_conventions_enable) {
         if (this->type->qualifier.flags.q.out) {
            _mesa_glsl_error(& loc, state,
                             "`out' qualifier in declaration of `%s' "