[Bf-blender-cvs] [328208a] master: Cycles: Fix shader update bug introduced by recent commits

Sergey Sharybin noreply at git.blender.org
Wed Nov 25 12:06:03 CET 2015


Commit: 328208a6a646448246f002a2aa144633c67197e7
Author: Sergey Sharybin
Date:   Wed Nov 25 16:04:45 2015 +0500
Branches: master
https://developer.blender.org/rB328208a6a646448246f002a2aa144633c67197e7

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.

===================================================================

M	intern/cycles/render/svm.cpp

===================================================================

diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp
index a4c7e7e..b8a5b4d 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);
 				}
 			}




More information about the Bf-blender-cvs mailing list