summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-emit-spirv.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-12-19 07:07:31 -0800
committerGitHub <noreply@github.com>2024-12-19 23:07:31 +0800
commit16f617f944655edf3631dc78bb13c504b53d2771 (patch)
tree1b342b185bd93d8d5c30b22060457b017f609386 /source/slang/slang-emit-spirv.cpp
parenta427c5807a3c5d541686d2d382265ecc09bdb95d (diff)
Report error when generated spirv is empty. (#5899)
* Report error when generated spirv is empty. * format code --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
Diffstat (limited to 'source/slang/slang-emit-spirv.cpp')
-rw-r--r--source/slang/slang-emit-spirv.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index 92fa507e0..63ebfcf6e 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -7964,6 +7964,8 @@ SlangResult emitSPIRVFromIR(
{
spirvOut.clear();
+ bool symbolsEmitted = false;
+
auto sink = codeGenContext->getSink();
#if 0
@@ -8008,6 +8010,7 @@ SlangResult emitSPIRVFromIR(
if (shouldPreserveParams && as<IRGlobalParam>(inst))
{
context.ensureInst(inst);
+ symbolsEmitted = true;
}
if (generateWholeProgram)
{
@@ -8016,6 +8019,7 @@ SlangResult emitSPIRVFromIR(
if (func->findDecoration<IRDownstreamModuleExportDecoration>())
{
context.ensureInst(inst);
+ symbolsEmitted = true;
}
}
}
@@ -8046,8 +8050,14 @@ SlangResult emitSPIRVFromIR(
for (auto irEntryPoint : irEntryPoints)
{
context.ensureInst(irEntryPoint);
+ symbolsEmitted = true;
}
+ if (!symbolsEmitted)
+ {
+ sink->diagnose(irModule->getModuleInst(), Diagnostics::outputSpvIsEmpty);
+ return SLANG_FAIL;
+ }
// Move forward delcared pointers to the end.
do