[Bf-blender-cvs] [bcc3cc8] strand_nodes: Revert "Remove redundant dependency declaration from pynodes, which creates a circular dependency."

Lukas Tönne noreply at git.blender.org
Sat Jul 23 17:29:31 CEST 2016


Commit: bcc3cc8c8fd6468486654334ec0dd56f2b3e095c
Author: Lukas Tönne
Date:   Sat Jul 23 14:30:40 2016 +0200
Branches: strand_nodes
https://developer.blender.org/rBbcc3cc8c8fd6468486654334ec0dd56f2b3e095c

Revert "Remove redundant dependency declaration from pynodes, which creates a circular dependency."

This reverts commit ca85cb436db7dc9ff5e8df3172987b09f5a071c4.

Reverting the commit will break depsgraph updates for regular bvm functions again, but is necessary
for making shader updates working. The problem here is that the update operations for _dependent_
data (bvm functions, shaders, etc.) should not actually be part of the node tree, but of the
respective dependent data components! So the previous method of invalidating shaders as part
of the node tree operations is incorrect and the operation should be moved to some other place.
Perhaps we need a dedicated depsnode for the bvm function cache, since there is no single "owner"
of these functions that could take care of invalidation in the depsgraph.

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

M	release/scripts/nodes/common_nodes.py

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

diff --git a/release/scripts/nodes/common_nodes.py b/release/scripts/nodes/common_nodes.py
index 9504b64..95a251f 100644
--- a/release/scripts/nodes/common_nodes.py
+++ b/release/scripts/nodes/common_nodes.py
@@ -44,6 +44,9 @@ def enum_property_value_prop(name):
 
 class NodeTreeBase():
     def bvm_compile_dependencies(self, depsnode):
+        # own changes require recompile
+        depsnode.add_nodetree_relation(self, 'PARAMETERS')
+
         for node in self.nodes:
             node.compile_dependencies(depsnode)




More information about the Bf-blender-cvs mailing list