From de83628070614ec37349c9f334ed72a54a6889da Mon Sep 17 00:00:00 2001 From: Yong He Date: Fri, 30 Aug 2024 12:03:23 -0700 Subject: Support specialization constants. (#4963) * Support specialization constants. * Fix. * Fix. * Fix. * Fix. * Make sure specialization constants have names. * Clean up and support the dxc [vk::constant_id] syntax. * Fix. * Fix. * Fix. --- source/slang/slang-parser.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-parser.cpp') diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp index b3a18f8a8..04ada006c 100644 --- a/source/slang/slang-parser.cpp +++ b/source/slang/slang-parser.cpp @@ -8190,7 +8190,7 @@ namespace Slang CASE(push_constant, PushConstantAttribute) CASE(shaderRecordNV, ShaderRecordAttribute) CASE(shaderRecordEXT, ShaderRecordAttribute) - CASE(constant_id, GLSLConstantIDLayoutModifier) + CASE(constant_id, VkConstantIdAttribute) CASE(std140, GLSLStd140Modifier) CASE(std430, GLSLStd430Modifier) CASE(scalar, GLSLScalarModifier) @@ -8228,6 +8228,11 @@ namespace Slang parser->diagnose(modifier->loc, Diagnostics::missingLayoutBindingModifier); } } + else if (auto specConstAttr = as(modifier)) + { + parser->ReadToken(TokenType::OpAssign); + specConstAttr->location = (int)getIntegerLiteralValue(parser->ReadToken(TokenType::IntegerLiteral)); + } listBuilder.add(modifier); } -- cgit v1.2.3