Blender Git Loki
Git Commits -> Revision 50cc0aa
Revision 50cc0aa by Sergey Sharybin (master) July 28, 2017, 10:27 (GMT) |
Depsgraph: Re-use evaluated mesh across frames and remove time dependency from all CoW components This commit is a work forward having less updates during playback, which speeds things up a lot here. The idea is simple: stop update all copy-on-write datablocks (which implies full re-evaluation actually) on frame change and re-use existing evaluated meshes as much as possible. This brings playback speed to 24 fps on the dino test scene here. Performance drops down a lot when armature is animated tho, but that's because of need of tangent space calculation which we can't do much about from just a dependency graph. Hopefully this doesn't make copy-on-write too unstable, quick tests here are surviving fine. |
Commit Details:
Full Hash: 50cc0aa0d136e91208487163efd3744a8e873bcc
Parent Commit: 9323182
Lines Changed: +89, -29
9 Modified Paths:
/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc (+51, -6) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes.h (+2, -1) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.cc (+1, -1) (Diff)
/source/blender/depsgraph/intern/depsgraph.cc (+8, -2) (Diff)
/source/blender/depsgraph/intern/depsgraph.h (+1, -1) (Diff)
/source/blender/depsgraph/intern/depsgraph_build.cc (+1, -5) (Diff)
/source/blender/depsgraph/intern/depsgraph_tag.cc (+11, -10) (Diff)
/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc (+7, -1) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node.cc (+7, -2) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_nodes.h (+2, -1) (Diff)
/source/blender/depsgraph/intern/builder/deg_builder_relations.cc (+1, -1) (Diff)
/source/blender/depsgraph/intern/depsgraph.cc (+8, -2) (Diff)
/source/blender/depsgraph/intern/depsgraph.h (+1, -1) (Diff)
/source/blender/depsgraph/intern/depsgraph_build.cc (+1, -5) (Diff)
/source/blender/depsgraph/intern/depsgraph_tag.cc (+11, -10) (Diff)
/source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc (+7, -1) (Diff)
/source/blender/depsgraph/intern/nodes/deg_node.cc (+7, -2) (Diff)