Blender Git Loki

Blender Git "depsgraph_refactor" branch commits.

Page: 23 / 59

November 7, 2014, 11:47 (GMT)
Depsgraph: Experiment with time source dependnecy update

Goal is to be able to play animation back for investigating how flush
happens, how object dependencies are being evaluated and all the rest
of the stuff which isn't so visible with the static scene.

Main idea here is to have a relations in the depsgraph between the time
source node and all the nodes which depends on time. We go with the
relations approach in order to make it fast to figure out which nodes
are to be tagged for updated when the time changes. It is faster to
iterate over the time dependencies rather than iterating over the whole
depsgraph,

Now, currently dependency graph's relations links only possible between
operation nodes. For this reason we don't use actual dependency structure
to define relations between time and nodes, but we've got a list of nodes
which depends on time stored in the time source node. This is the most
simple way to deal for now.

Currently we use relation between time and ID nodes, which corresponds
to how current depsgraph works, in the future we'll likely need to make
it relation betteen time source and individual components.

Or maybe even revisit the time flushes..
November 7, 2014, 10:03 (GMT)
Merge branch 'master' into depsgraph_refactor
November 6, 2014, 13:11 (GMT)
Depsgraph: Add dedicated file for all possible object update callbacks

Currently it's quite small, but in the future we'll have all possible depsgraph
update callbacks in there.
November 6, 2014, 12:49 (GMT)
Depsgraph: Add ubernode which evaluates the whole object

This way we mimic old depsgraph behavior where each object is effectively
a single node in the dependency graph which takes care of all the updates.

But actually this node only takes care of the modifiers, expecting that the
constraints and so are solved by the local object transform node.

Not sure how much valid the assumption at this state, but it's something
to aim to.
November 6, 2014, 12:32 (GMT)
Depsgraph: Evaluation callbacks now accepts evaluation context as a parameter

This is how current actual update functions are expected to behave, plus it'll
be needed in the future for such things as copy-on-write and so.
November 6, 2014, 10:36 (GMT)
Depsgraph: Playback doesn't crash now

The time source is expected to be in the root depsgraph node for now,
so we should add it to there instead of the scene node.

This raises some questions:

- Who don't we have Scene ID node in the graph so far?
- Do we really need a time as an operation node, or it's something
more up to the EvaluationContext.

Later one raises the bigger design question: what should we try to
do with the depsgraph and what is we're gonna to solve with the
evaluation context?

The answer here should be: everything which describes the (sub)graph
state should be in the evaluation context. This way this context will
finally become some key which totally corresponds to the (sub)scene
state.
November 6, 2014, 10:25 (GMT)
Depsgraph: Make update for new frame closer to the master as well
November 6, 2014, 10:15 (GMT)
Depsgraph: Remove RNA call to rebuild the DAG

It is now should happen automatically from the scene update,
should be no need in manual tricks now.
November 6, 2014, 10:14 (GMT)
Depsgraph: Make scene evaluation closer to the master

This means BKE_scene_update_tagged() will now do the same callbacks and sound
system updates as the old implementation does and will only replace scene update
with new code.

This is aimed to solve the following issues:

- Adding new objects doesn't abort anymore, this is because old code was
rebuilding the depsgraph from the scene update function in cases DAG is NULL.

Don't see why not to do the same with the new dependency graph for now.

- Callbacks are being executed properly, which should make scripts happy.

Well, nobody uses this branch yet, but it's good thing to do and easy to
support anyway.

- Hopefully rendered viewport will be also happier now because the render engine
update is now called for new depsgraph as well.
November 6, 2014, 10:03 (GMT)
Merge remote-tracking branch 'origin/master' into depsgraph_refactor
November 6, 2014, 09:29 (GMT)
Depsgraph: Solve some compilation issues on my laptop

All the changes seems small but still legit to have so everyone is happy.
November 5, 2014, 18:20 (GMT)
Depsgraph: Don't use smart templated ID pointer casts

Replace smart templated functions which used to cast ID pointers
with explicit id struct member usage.

This makes code easier to follow and understand what exactly is
going on, don't introduce overhead into code. Plus it's helps
with debugging by skipping entering all that internal template
methods things.
November 5, 2014, 17:08 (GMT)
Merge branch 'master' into depsgraph_refactor
October 20, 2014, 09:42 (GMT)
Merge branch 'master' into depsgraph_refactor
October 13, 2014, 14:20 (GMT)
use proper evaluation context instead of enum flag

Depsgraph evaluation would need to have proper evaluation context in the
future anyway, where some COW data might be stored. it was also kind of
weird to have another set of enum flags defining how evaluation should
happen.
October 13, 2014, 13:44 (GMT)
Experiment with a real local object transform calculation

Now moving object with the new DAG appears to work.
October 13, 2014, 13:09 (GMT)
Cleanup: Use generic task scheduler instead of own one

helps to get rid of some of the utility structures which only adds
extra complexity to the code.

Let's keep new depsgraph as clean and small as possible! :)
October 13, 2014, 12:28 (GMT)
Cleanup: Remove transformation matrix classes

Not sure why depsgraph should actually care about transformation,
and for sure it's kinda weird to have wrappers. It's a blender core
and better to avoid using wrappers/abstractions in here.

The idea is to not store data in the depsgraph anyway, but use an
evaluation context for this instead.
October 13, 2014, 09:48 (GMT)
Merge branch 'master' into depsgraph_refactor
October 10, 2014, 14:52 (GMT)
Merge branch 'master' into depsgraph_refactor

Also made sure it compiles here.

Conflicts:
source/blender/blenkernel/intern/scene.c
source/blender/blenlib/BLI_utildefines.h
source/blender/editors/space_info/CMakeLists.txt
source/creator/CMakeLists.txt
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021