summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Leino <aleino@nvidia.com>2025-02-27 08:42:26 +0200
committerGitHub <noreply@github.com>2025-02-26 22:42:26 -0800
commit525c2acfe274d2519aef6f4221f5a29b46c3f07a (patch)
tree37bf2593c50f02935bc26775cd01c6b9d45c59d4
parent60c5db5caba089bf879fc958f373137b3e12a2d8 (diff)
Improve entry point lookup function documentation (#6451)
* Document that findEntryPointByName is not applicable if there is no [shader(...)] attribute * Update the user guide to mention findAndCheckEntryPoint for entry points without [shader(...)] attributes * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: Yong He <yonghe@outlook.com>
-rw-r--r--docs/user-guide/02-conventional-features.md1
-rw-r--r--include/slang.h4
2 files changed, 5 insertions, 0 deletions
diff --git a/docs/user-guide/02-conventional-features.md b/docs/user-guide/02-conventional-features.md
index c59999ce3..aaeea4114 100644
--- a/docs/user-guide/02-conventional-features.md
+++ b/docs/user-guide/02-conventional-features.md
@@ -655,6 +655,7 @@ In this example, the `vertexMain` shader indicates that it is meant for the `ver
Rasterization, compute, and ray-tracing pipelines each define their own stages, and new versions of graphics APIs may introduce new stages.
For compatibility with legacy codebases, Slang supports code that leaves off `[shader(...)]` attributes; in these cases application developers must specify the names and stages for their entry points via explicit command-line or API options.
+Such entry points will not be found via `IModule::findEntryPointByName()`. Instead `IModule::findAndCheckEntryPoint()` must be used, and a stage must be specified.
It is recommended that new codebases always use `[shader(...)]` attributes both to simplify their workflow, and to make code more explicit and "self-documenting."
> #### Note ####
diff --git a/include/slang.h b/include/slang.h
index 54647b830..66fd317c6 100644
--- a/include/slang.h
+++ b/include/slang.h
@@ -4361,6 +4361,10 @@ struct IModule : public IComponentType
{
SLANG_COM_INTERFACE(0xc720e64, 0x8722, 0x4d31, {0x89, 0x90, 0x63, 0x8a, 0x98, 0xb1, 0xc2, 0x79})
+ /// Find and an entry point by name.
+ /// Note that this does not work in case the function is not explicitly designated as an entry
+ /// point, e.g. using a `[shader("...")]` attribute. In such cases, consider using
+ /// `IModule::findAndCheckEntryPoint` instead.
virtual SLANG_NO_THROW SlangResult SLANG_MCALL
findEntryPointByName(char const* name, IEntryPoint** outEntryPoint) = 0;