summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-parser.cpp
diff options
context:
space:
mode:
authorDarren Wihandi <65404740+fairywreath@users.noreply.github.com>2025-02-02 15:27:11 -0500
committerGitHub <noreply@github.com>2025-02-02 12:27:11 -0800
commit0a6828572aa4cc1f0f99993e77c321799eb88cca (patch)
treed18f1950074958ff3276e303425eed15067ea2bc /source/slang/slang-parser.cpp
parent2949b786a7f04ad31c113b622039fb5b72bc8622 (diff)
Add support for WGSL subgroup operations (#6213)
* initial work * more work * more work on glsl intrinsics * add subgroup broadcast for glsl * wip add wgsl extension tracking * enable tests, enable extensions and added some todos * format and warning fixes * fix wgsl extension tracker --------- Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'source/slang/slang-parser.cpp')
-rw-r--r--source/slang/slang-parser.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp
index 81619b700..4a9d0a576 100644
--- a/source/slang/slang-parser.cpp
+++ b/source/slang/slang-parser.cpp
@@ -8294,6 +8294,17 @@ static NodeBase* parseGLSLVersionModifier(Parser* parser, void* /*userData*/)
return modifier;
}
+static NodeBase* parseWGSLExtensionModifier(Parser* parser, void* /*userData*/)
+{
+ auto modifier = parser->astBuilder->create<RequiredWGSLExtensionModifier>();
+
+ parser->ReadToken(TokenType::LParent);
+ modifier->extensionNameToken = parser->ReadToken(TokenType::Identifier);
+ parser->ReadToken(TokenType::RParent);
+
+ return modifier;
+}
+
static SlangResult parseSemanticVersion(
Parser* parser,
Token& outToken,
@@ -8854,6 +8865,7 @@ static const SyntaxParseInfo g_parseSyntaxEntries[] = {
_makeParseModifier("__glsl_extension", parseGLSLExtensionModifier),
_makeParseModifier("__glsl_version", parseGLSLVersionModifier),
_makeParseModifier("__spirv_version", parseSPIRVVersionModifier),
+ _makeParseModifier("__wgsl_extension", parseWGSLExtensionModifier),
_makeParseModifier("__cuda_sm_version", parseCUDASMVersionModifier),
_makeParseModifier("__builtin_type", parseBuiltinTypeModifier),