Blender Git Commit Log

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)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021