Blender Git Loki
Git Commits -> Revision 8a027ce
Revision 8a027ce by Lukas Toenne (strand_nodes) July 29, 2016, 14:34 (GMT) |
Fix for frequent unnecessary shader recompilation during hair editing. The depsgraph component node for invalidating the strand shader was located in the GEOMETRY component of the object. This component by default gets tagged along with every other object part during editing. Only standardized way of avoiding this would be putting it in a different datablock, but the shader is very much tied to the particular object due to the displacement function from its node tree. For now the solution is a new component GEOMETRY_SHADER, which does not get tagged when the ID node is tagged. It still gets regular updates from node tree changes. This seems to be the least invasive way of avoiding unnecessary performance drops, and can be removed and replaced easily later on without disrupting other code work. |
Commit Details:
Full Hash: 8a027ce573f4c372dfa26dfdf4b3ae673906ce4f
Parent Commit: 8407771
Lines Changed: +26, -7
7 Modified Paths:
/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc (+1, -1) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.cc (+1, -1) (Diff)
/source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc (+2, -0) (Diff)
/source/blender/depsgraph/intern/depsgraph_types.h (+2, -0) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node.cc (+10, -5) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.cc (+6, -0) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.h (+4, -0) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.cc (+1, -1) (Diff)
/source/blender/depsgraph/intern/debug/deg_debug_graphviz.cc (+2, -0) (Diff)
/source/blender/depsgraph/intern/depsgraph_types.h (+2, -0) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node.cc (+10, -5) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.cc (+6, -0) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node_component.h (+4, -0) (Diff)