summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-autodiff.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2023-01-10 17:01:24 -0500
committerGitHub <noreply@github.com>2023-01-10 14:01:24 -0800
commit20262684bcbb707d16669b2670039df870b65ca8 (patch)
tree65eac7f67497cfac63542a8d15006e47595f8cf3 /source/slang/slang-ir-autodiff.cpp
parent2f422087ed04940f6b6b351605e61d48ce1989ce (diff)
Small fixes around repro loading/autodiff (#2585)
* #include an absolute path didn't work - because paths were taken to always be relative. * Work around for some issue seen with a repro. * Small improvement in doing IDifferentable check.
Diffstat (limited to 'source/slang/slang-ir-autodiff.cpp')
-rw-r--r--source/slang/slang-ir-autodiff.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/source/slang/slang-ir-autodiff.cpp b/source/slang/slang-ir-autodiff.cpp
index 53e2ed0be..94417ea00 100644
--- a/source/slang/slang-ir-autodiff.cpp
+++ b/source/slang/slang-ir-autodiff.cpp
@@ -309,10 +309,15 @@ IRInst* AutoDiffSharedContext::findDifferentiableInterface()
// TODO: This seems like a particularly dangerous way to look for an interface.
// See if we can lower IDifferentiable to a separate IR inst.
//
- if (globalInst->getOp() == kIROp_InterfaceType &&
- as<IRInterfaceType>(globalInst)->findDecoration<IRNameHintDecoration>()->getName() == "IDifferentiable")
+ if (auto intf = as<IRInterfaceType>(globalInst))
{
- return globalInst;
+ if (auto decor = intf->findDecoration<IRNameHintDecoration>())
+ {
+ if (decor->getName() == toSlice("IDifferentiable"))
+ {
+ return globalInst;
+ }
+ }
}
}
}