diff options
Diffstat (limited to 'source/slang/slang-ir-util.cpp')
| -rw-r--r-- | source/slang/slang-ir-util.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/source/slang/slang-ir-util.cpp b/source/slang/slang-ir-util.cpp index 69bd2c6c2..c8d76569f 100644 --- a/source/slang/slang-ir-util.cpp +++ b/source/slang/slang-ir-util.cpp @@ -1775,6 +1775,38 @@ UnownedStringSlice getBuiltinFuncName(IRInst* callee) auto decor = getResolvedInstForDecorations(callee)->findDecoration<IRKnownBuiltinDecoration>(); if (!decor) return UnownedStringSlice(); + + // For backward compatibility, convert enum back to string + switch (decor->getName()) + { + case KnownBuiltinDeclName::GeometryStreamAppend: + return UnownedStringSlice::fromLiteral("GeometryStreamAppend"); + case KnownBuiltinDeclName::GeometryStreamRestart: + return UnownedStringSlice::fromLiteral("GeometryStreamRestart"); + case KnownBuiltinDeclName::GetAttributeAtVertex: + return UnownedStringSlice::fromLiteral("GetAttributeAtVertex"); + case KnownBuiltinDeclName::DispatchMesh: + return UnownedStringSlice::fromLiteral("DispatchMesh"); + case KnownBuiltinDeclName::saturated_cooperation: + return UnownedStringSlice::fromLiteral("saturated_cooperation"); + case KnownBuiltinDeclName::saturated_cooperation_using: + return UnownedStringSlice::fromLiteral("saturated_cooperation_using"); + case KnownBuiltinDeclName::IDifferentiable: + return UnownedStringSlice::fromLiteral("IDifferentiable"); + case KnownBuiltinDeclName::IDifferentiablePtr: + return UnownedStringSlice::fromLiteral("IDifferentiablePtr"); + case KnownBuiltinDeclName::NullDifferential: + return UnownedStringSlice::fromLiteral("NullDifferential"); + default: + return UnownedStringSlice(); + } +} + +KnownBuiltinDeclName getBuiltinFuncEnum(IRInst* callee) +{ + auto decor = getResolvedInstForDecorations(callee)->findDecoration<IRKnownBuiltinDecoration>(); + if (!decor) + return KnownBuiltinDeclName::COUNT; // Use COUNT as invalid value return decor->getName(); } |
