glsl: add the tessellation extension to the list for the "layout" qualifier
authorMarek Olšák <marek.olsak@amd.com>
Mon, 15 Jun 2015 23:32:28 +0000 (01:32 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 22 Jul 2015 22:59:27 +0000 (00:59 +0200)
This is technically not needed, but it makes the compiler return a better
error message if tessellation is used with GLSL < 1.50.

Instead of:
    error: syntax error, unexpected NEW_IDENTIFIER, expecting $end
It returns:
    error: #version 150 layout qualifier `triangles' used

And the tessellation spec says:
    OpenGL 3.2 and GLSL 1.50 are required.
So it makes perfect sense.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/glsl_lexer.ll

index ac4e2b70cc740e0f04fc747094e3a962fba13234..fe0083fe74584b3522fdf3988f8f97a7a5b951cc 100644 (file)
@@ -426,7 +426,8 @@ layout              {
                      || yyextra->ARB_uniform_buffer_object_enable
                      || yyextra->ARB_fragment_coord_conventions_enable
                       || yyextra->ARB_shading_language_420pack_enable
-                      || yyextra->ARB_compute_shader_enable) {
+                      || yyextra->ARB_compute_shader_enable
+                      || yyextra->ARB_tessellation_shader_enable) {
                      return LAYOUT_TOK;
                   } else {
                      void *mem_ctx = yyextra;