Blender Git Commit Log

Git Commits -> Revision 86a57b0

Revision 86a57b0 by Sergey Sharybin (master)
May 9, 2016, 10:42 (GMT)
Depsgraph: Store node input/output links in a vector rather than in set

Set is much slower to iterate through (due to cache misses and such) and
the only advantage of using set is faster removal of link. However, we are
iterating links much much more often than removing them, and even when we
are removing links we don't really need to remove link from nodes which it
connects -- we don't support partial depsgraph updates, so removing links
from nodes on destruction is a waste of time.

If we ever want to support partial updates we can have dedicated function
to remove link from nodes it connects.

This gives a surprising increase of fps from 42 to 56 with test file from
Mr. J.P.Bouza (blenrig_for_debugging.blend). Surprising because old DEG is
actually slower here (52 fps). Didn't see any regressions (and don't see
why they will happen), so let's ask our riggers and animators to perform
further speed tests ;)

Commit Details:

Full Hash: 86a57b04bfa6730298dc8fafe0545f6929ee64a6
Parent Commit: 5dbeea9
Lines Changed: +23, -22

4 Modified Paths:

/source/blender/depsgraph/intern/depsgraph.cc (+16, -6) (Diff)
/source/blender/depsgraph/intern/depsgraph_eval.cc (+2, -6) (Diff)
/source/blender/depsgraph/intern/depsnode.cc (+4, -9) (Diff)
/source/blender/depsgraph/intern/depsnode.h (+1, -1) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021