Page MenuHome

Depsgraph: Initial implementation of active dependency graph concept

Authored by Sergey Sharybin (sergey) on May 31 2018, 2:49 PM.



The idea of active dependency graph is to allow it to write evaluated
data back to original datablock. This will simplify porting tools to
a copy-on-write concept. Basically, reading all "scalar" values can
be done from original datablock (for example, object location, bone
matrix). Those values will have animation and drivers applied on them.

Reading such evaluated data as mesh with all modifiers applied must
be explicitly done by reading from evaluated version of datablock.

There is likely missing bits of synchronization still, main focus for
now was to verify duplication of object works fine.

Diff Detail

rB Blender
simple_cow (branched from blender2.8)
Build Status
Buildable 1715
Build 1715: arc lint + arc unit

Event Timeline

  • Depsgraph: Remove unused flags
  • Depsgraph: Fixes to prevent object duplicate to jump

Additionally solved crash opening Spring animation file.

Tested on simple pose library, seems to work well!

Seems fine so far.

BKE_animsys_eval_driver contains code to write back the invalid flag to the original driver, that can only run for the active depsgraph now. Maybe there's more places like that, I just remembered it from changing that code this morning.

It was committed now.