Blender Git Commit Log

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