summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-spirv.cpp
diff options
context:
space:
mode:
authorDietrich Geisler <dag368@cornell.edu>2020-07-20 14:53:23 -0400
committerGitHub <noreply@github.com>2020-07-20 11:53:23 -0700
commit115920406ebd747e02e1e6a8e4595f7d88eef0d9 (patch)
treea230b6358b35569da5f588d733643198ff38293f /source/slang/slang-emit-spirv.cpp
parent975c5db3f0a71bc93369a321318e7d3b43001ff5 (diff)
Multiple Entry Point Backend (#1437)
* Multiple Entry Point Backend This PR introduces changes to the IR linking, emitting, and options for multiple entry points. Specifically, this PR updates several locations to support a (potentially empty) list of entry points, adding list infrastructure and looping over entry points as appropriate. * Formatting change * Updated unknown target case to not require an entry point * Formatting and list consts updates Co-authored-by: Tim Foley <tfoleyNV@users.noreply.github.com>
Diffstat (limited to 'source/slang/slang-emit-spirv.cpp')
-rw-r--r--source/slang/slang-emit-spirv.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index 0ca523ecf..915d963c0 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -1115,19 +1115,21 @@ struct SPIRVEmitContext
SlangResult emitSPIRVFromIR(
BackEndCompileRequest* compileRequest,
IRModule* irModule,
- IRFunc* irEntryPoint,
+ const List<IRFunc*>& irEntryPoints,
List<uint8_t>& spirvOut)
{
SLANG_UNUSED(compileRequest);
SLANG_UNUSED(irModule);
- SLANG_UNUSED(irEntryPoint);
spirvOut.clear();
SPIRVEmitContext context;
context.m_irModule = irModule;
context.emitFrontMatter();
- context.ensureInst(irEntryPoint);
+ for (auto irEntryPoint : irEntryPoints)
+ {
+ context.ensureInst(irEntryPoint);
+ }
context.emitPhysicalLayout();
spirvOut.addRange(