[Soc-2013-dev] Weekly Report #7 Depsgraph Refactor

Joshua Leung aligorith at gmail.com
Fri Aug 2 17:12:05 CEST 2013


== This Week ==
In Short: I completely threw out my initial design (and the parts of
code that implemented that), and implemented a new design on top of
the framework built earlier. This new approach is easier to develop,
fits better with our evaluation needs, and (at this stage) looks close
to soon being ready for integration work to begin.

Details:
Over the weekend, after mulling over a few issues I'd been running
into trying to figure out how to get the graph building code to work
with the initial design (ID Nodes + ID Group Nodes, with additional
sub-nodes within those for bones/etc.), I finally came to the
conclusion that a different approach was needed. Among other issues I
discovered when trying to adapt the existing code was that with the
approach I'd been trying earlier, it would be quite difficult to be
able to specify that something depended on the final geometry or
transform results of another datablock.
Bones/properties/drivers/constraints were well covered (though still a
bit clunky), but obtaining final geometry and transform results (two
of the major "products" of evaluating stuff like modifier and
constraint stacks) were quite tricky to define links to.

So, on Sunday afternoon, I started ripping out the parts of the code
related to the node-types from the old design, and replacing these
with defines/code for the new design. By late Monday, this new system
was nearly fully in-place. If nothing else, this exercise shows that
the core infrastructure/framework stuff I set up should hold up to us
needing to make any further reshuffles like this in future if need be.

I've updated design overview - consisting of a bunch of diagrams
which, together should probably be able to explain what's going on -
onto the wiki (linked from the wiki page for my project). Direct Link:
 http://wiki.blender.org/index.php/File:DepsgraphRefactor-DesignOverview-02.pdf

== Next Week ==
* Finish off graph building code. There are still a few issues to
resolve there, but this time it should all work a lot better
* Tidy up a few loose ends

At this stage, I'm optimistically hopeful that all of this will be
ready to start integrating into Blender in about 1-2 weeks time


More information about the Soc-2013-dev mailing list