[Mesa-dev] [PATCH] glsl: Allow invariant qualifer in block members in desktop OpenGL.

Samuel Iglesias Gons√°lvez siglesias at igalia.com
Thu Feb 11 07:31:30 UTC 2016


Feedback from Khronos is that 'invariant' should be allowed on block
members for desktop OpenGL. Fix piglit regression added by fe1e89a0:
invariant-qualifier-in-out-block-01.vert

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89330
Signed-off-by: Samuel Iglesias Gons√°lvez <siglesias at igalia.com>
---
 src/compiler/glsl/glsl_parser_extras.cpp | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp
index 20ec89d..ebb4901 100644
--- a/src/compiler/glsl/glsl_parser_extras.cpp
+++ b/src/compiler/glsl/glsl_parser_extras.cpp
@@ -955,15 +955,8 @@ _mesa_ast_process_interface_block(YYLTYPE *locp,
        *
        * "Only variables output from a shader can be candidates for
        * invariance."
-       *
-       * From GLSL 4.40 and GLSL 1.50, section "Interface Blocks":
-       *
-       * "If optional qualifiers are used, they can include interpolation
-       * qualifiers, auxiliary storage qualifiers, and storage qualifiers
-       * and they must declare an input, output, or uniform member
-       * consistent with the interface qualifier of the block"
        */
-      if (qualifier.flags.q.invariant)
+      if (state->es_shader && qualifier.flags.q.invariant)
          _mesa_glsl_error(locp, state,
                           "invariant qualifiers cannot be used "
                           "with interface blocks members");
-- 
2.7.0



More information about the mesa-dev mailing list