Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-11-25 14:04:45 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-11-25 14:05:57 +0300
commit328208a6a646448246f002a2aa144633c67197e7 (patch)
treea312b2f6df38506bdf493679ad02a712abdbe912 /intern
parent00afa0252879cec373e8ee5949b1bf05b194462f (diff)
Cycles: Fix shader update bug introduced by recent commits
Seems set_intersection() requires passing explicit comparator if non-default one is used for the sets. A bit weird, but can't really find another explanation here about whats' going on here.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/render/svm.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp
index a4c7e7ef969..b8a5b4d44e0 100644
--- a/intern/cycles/render/svm.cpp
+++ b/intern/cycles/render/svm.cpp
@@ -528,9 +528,11 @@ void SVMCompiler::generate_multi_closure(ShaderNode *root_node,
find_dependencies(cl1deps, done, cl1in);
find_dependencies(cl2deps, done, cl2in);
+ ShaderNodeIDComparator node_id_comp;
set_intersection(cl1deps.begin(), cl1deps.end(),
cl2deps.begin(), cl2deps.end(),
- std::inserter(shareddeps, shareddeps.begin()));
+ std::inserter(shareddeps, shareddeps.begin()),
+ node_id_comp);
/* it's possible some nodes are not shared between this mix node
* inputs, but still needed to be always executed, this mainly
@@ -542,10 +544,12 @@ void SVMCompiler::generate_multi_closure(ShaderNode *root_node,
find_dependencies(rootdeps, done, in, node);
set_intersection(rootdeps.begin(), rootdeps.end(),
cl1deps.begin(), cl1deps.end(),
- std::inserter(shareddeps, shareddeps.begin()));
+ std::inserter(shareddeps, shareddeps.begin()),
+ node_id_comp);
set_intersection(rootdeps.begin(), rootdeps.end(),
cl2deps.begin(), cl2deps.end(),
- std::inserter(shareddeps, shareddeps.begin()));
+ std::inserter(shareddeps, shareddeps.begin()),
+ node_id_comp);
}
}