diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index e81b2f3..8af5a1e 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -374,9 +374,13 @@ void SVMCompiler::find_dependencies(set& dependencies, ShaderNode *node = (input->link)? input->link->parent: NULL; if(node && done.find(node) == done.end() && node != skip_node) { - foreach(ShaderInput *in, node->inputs) - if(!node_skip_input(node, in)) - find_dependencies(dependencies, done, in, skip_node); + foreach(ShaderInput *in, node->inputs) { + if(!node_skip_input(node, in)) { + if(dependencies.find(node) == dependencies.end()) { + find_dependencies(dependencies, done, in, skip_node); + } + } + } dependencies.insert(node); }