summaryrefslogtreecommitdiff
path: root/source/slang/slang-check-shader.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-11-29 18:17:33 -0800
committerGitHub <noreply@github.com>2022-11-29 18:17:33 -0800
commitf52b4de3b29ee27213b7d60fb620a0d5d50b49f9 (patch)
treed4570c53045bca8e9411e884b0905d9384430a58 /source/slang/slang-check-shader.cpp
parentf5581786a1891cedb165adb1afe71fe34f26e030 (diff)
Allow `no_diff` modifier on parameters (#2538)
Diffstat (limited to 'source/slang/slang-check-shader.cpp')
-rw-r--r--source/slang/slang-check-shader.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/slang/slang-check-shader.cpp b/source/slang/slang-check-shader.cpp
index a84e40768..3a64f3c8f 100644
--- a/source/slang/slang-check-shader.cpp
+++ b/source/slang/slang-check-shader.cpp
@@ -583,6 +583,17 @@ namespace Slang
return varDecl->getName();
}
+ Type* getParamType(ASTBuilder* astBuilder, DeclRef<VarDeclBase> const& paramDeclRef)
+ {
+ auto paramType = getType(astBuilder, paramDeclRef);
+ if (paramDeclRef.getDecl()->findModifier<NoDiffModifier>())
+ {
+ auto modifierVal = static_cast<Val*>(astBuilder->getOrCreate<NoDiffModifierVal>());
+ paramType = astBuilder->getModifiedType(paramType, 1, &modifierVal);
+ }
+ return paramType;
+ }
+
void Module::_collectShaderParams()
{
auto moduleDecl = m_moduleDecl;