Wednesday, June 19, 2013

The Depsgraph Refactor Project

It's official, the great depsgraph refactor is under way at last!
This diagram shows some of the key components or classes of issues that we'll need to be tackling with this system to get it in shape for the types of things we need from it. Orange are for issues that will have direct impact on users (i.e. stuff will now work better and faster), Grey is stuff that is mainly useful for BlenderDevs when writing tools and other stuff.

The Bluish box (i.e. looping over objects-datablocks, and evaluating updates by going downwards from there is a slightly contentious point. IMO we need to do this or else we can't really achieve the generality and granularity objectives - we'd effectively still be stuck in the stone age (where we still end up keeping some ever-bizzare restrictions). The full details of what exactly should replace it though is something that's still heavily WIP, but I do have some preliminary ideas I'm currently toying with.

Within the areas identified, there are particular issues that'll need particular care (see for some examples - again, this will probably need to be fleshed out a bit more in coming weeks). AFAIK, most of the more prickly issues we have seem to be covered by one or more of these aspects (which is cool), provided we figure out how exactly to do them (i.e. figuring out the Localised Data issues are perhaps one of the most critical parts of that).

Depending on how I go for time (i.e. key considerations at this stage include my official research-work commitments in the lab, as well as other stuff that'll probably need to happen before the predicted snowfall for the end of this week), I'll start rolling out some of the early-stage notes and WIP ideas for how to tackle this complex beast in the coming days. I've already got a few of these notes lined up, though there are still missing bits that'll need to be finished off before they can be posted.

For now, refer to the main Wiki Page I've set up to gather up links to all the relevant info about this project:

No comments:

Post a Comment