glsl: fix 'shared' layout qualifier related regressions
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Thu, 12 Nov 2015 15:14:07 +0000 (16:14 +0100)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Fri, 13 Nov 2015 07:04:49 +0000 (08:04 +0100)
Commit 8b28b35 added 'shared' as a keyword for compute shaders
but it broke the existing 'shared' layout qualifier support for
uniform and shader storage blocks.

This patch fixes 578 dEQP-GLES31.functional.ssbo.* tests.

v2:
- Move SHARED to interface_block_layout_qualifier (Timothy)
- Don't remove "shared" case insensitive check (Timothy)
- Remove the clearing of shared_storage flag (Timothy)

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
src/glsl/glsl_parser.yy

index 31e254a4fd39312398bd8ceab7d3f80a99964d0e..adf6a05acce7c4e5cdda4a907dcef66eb283da55 100644 (file)
@@ -1652,6 +1652,11 @@ interface_block_layout_qualifier:
       memset(& $$, 0, sizeof($$));
       $$.flags.q.packed = 1;
    }
+   | SHARED
+   {
+      memset(& $$, 0, sizeof($$));
+      $$.flags.q.shared = 1;
+   }
    ;
 
 subroutine_qualifier: