From fa8c11ebe8f9b1bf2174a5a4dbe92a34c16811c8 Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 12 Jun 2024 09:27:14 -0700 Subject: Add option to preserve shader parameter declaration in output SPIRV. (#4344) * Add option to preserve shader parameter declarations in output. * Add test. --- source/slang/slang-ir-link.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/slang/slang-ir-link.cpp') diff --git a/source/slang/slang-ir-link.cpp b/source/slang/slang-ir-link.cpp index eb660c8a7..5bb485b22 100644 --- a/source/slang/slang-ir-link.cpp +++ b/source/slang/slang-ir-link.cpp @@ -1830,12 +1830,16 @@ LinkedIR linkIR( } } + bool shouldCopyGlobalParams = linkage->m_optionSet.getBoolOption(CompilerOptionName::PreserveParameters); + for (IRModule* irModule : irModules) { for (auto inst : irModule->getGlobalInsts()) { - // Is it (HLSL) `export` clone - if (_isHLSLExported(inst)) + // We need to copy over exported symbols, + // and any global parameters if preserve-params option is set. + if (_isHLSLExported(inst) || + shouldCopyGlobalParams && as(inst)) { auto cloned = cloneValue(context, inst); if (!cloned->findDecorationImpl(kIROp_KeepAliveDecoration)) -- cgit v1.2.3