diff options
Diffstat (limited to 'source/slang/slang-ir-metadata.cpp')
| -rw-r--r-- | source/slang/slang-ir-metadata.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/slang/slang-ir-metadata.cpp b/source/slang/slang-ir-metadata.cpp index 641c272a2..030fde157 100644 --- a/source/slang/slang-ir-metadata.cpp +++ b/source/slang/slang-ir-metadata.cpp @@ -42,8 +42,18 @@ static void _insertBinding(List<ShaderBindingRange>& ranges, LayoutResourceKind void collectMetadata(const IRModule* irModule, ArtifactPostEmitMetadata& outMetadata) { // Scan the instructions looking for global resource declarations + // and exported functions. for (const auto& inst : irModule->getGlobalInsts()) { + if (auto func = as<IRFunc>(inst)) + { + if (func->findDecoration<IRDownstreamModuleExportDecoration>()) + { + auto name = func->findDecoration<IRExportDecoration>()->getMangledName(); + outMetadata.m_exportedFunctionMangledNames.add(name); + } + } + auto param = as<IRGlobalParam>(inst); if (!param) continue; |
