From 2f7f48a00752b906d6a2d42cd1bb6fbf0cfeaad6 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 16 Oct 2024 17:17:19 -0700 Subject: Fix entrypoint naming in glsl backend. (#5320) --- source/slang/slang-emit-c-like.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/slang/slang-emit-c-like.cpp b/source/slang/slang-emit-c-like.cpp index 28eb7da04..b113f726e 100644 --- a/source/slang/slang-emit-c-like.cpp +++ b/source/slang/slang-emit-c-like.cpp @@ -1085,7 +1085,19 @@ String CLikeSourceEmitter::generateName(IRInst* inst) // use the appropriate options for glslang to // make it support a non-`main` name. // - return "main"; + // A function may have an entry-point deocration if it + // is declared by the user as an entry-point function. + // However it may not actually be compiled as an entry-point + // when generating code for targets that doesn't support + // multiple entry-points. + // We only want to emit "main" for user-marked entrypoint + // functions that are actually being selected as entrypoint + // for current compilation. We can do so by checking if + // a layout decoration existed on the function. + if (inst->findDecoration()) + { + return "main"; + } } return generateEntryPointNameImpl(entryPointDecor); -- cgit v1.2.3