diff --git a/src/front/glsl/lex.rs b/src/front/glsl/lex.rs index e054217a70..3400e06266 100644 --- a/src/front/glsl/lex.rs +++ b/src/front/glsl/lex.rs @@ -71,6 +71,7 @@ impl<'a> Iterator for Lexer<'a> { "out" => TokenValue::Out, "uniform" => TokenValue::Uniform, "buffer" => TokenValue::Buffer, + "shared" => TokenValue::Shared, "flat" => TokenValue::Interpolation(crate::Interpolation::Flat), "noperspective" => TokenValue::Interpolation(crate::Interpolation::Linear), "smooth" => TokenValue::Interpolation(crate::Interpolation::Perspective), diff --git a/src/front/glsl/parser/types.rs b/src/front/glsl/parser/types.rs index 0d1e0441f1..dcde9bacbd 100644 --- a/src/front/glsl/parser/types.rs +++ b/src/front/glsl/parser/types.rs @@ -120,6 +120,7 @@ impl<'source> ParsingContext<'source> { | TokenValue::In | TokenValue::Out | TokenValue::Uniform + | TokenValue::Shared | TokenValue::Buffer | TokenValue::Restrict | TokenValue::StorageAccess(_) @@ -152,6 +153,9 @@ impl<'source> ParsingContext<'source> { TokenValue::Uniform => TypeQualifier::StorageQualifier( StorageQualifier::StorageClass(StorageClass::Uniform), ), + TokenValue::Shared => TypeQualifier::StorageQualifier( + StorageQualifier::StorageClass(StorageClass::WorkGroup), + ), TokenValue::Buffer => TypeQualifier::StorageQualifier( StorageQualifier::StorageClass(StorageClass::Storage { access: crate::StorageAccess::default(), diff --git a/src/front/glsl/token.rs b/src/front/glsl/token.rs index 0aa6a6d709..2303627944 100644 --- a/src/front/glsl/token.rs +++ b/src/front/glsl/token.rs @@ -106,6 +106,7 @@ pub enum TokenValue { Uniform, Buffer, Const, + Shared, Restrict, StorageAccess(crate::StorageAccess),