Sergey Sharybin
b4b1397ad9
Depsgraph: Don't cast ID_Type to short
2017-08-28 11:43:36 +02:00
Sergey Sharybin
a679457263
Fix T51907: New Depsgraph - Camera constraint is not evaluated properly
...
This is more a workaround for until we've got proper visibility flush, which
will likely happen in blender2.8 branch.
2017-08-24 14:35:48 +02:00
Sergey Sharybin
9f40153094
Fix T52209: New Depsgraph - animated follow curve constraint sometimes freaks out when the curve has a parent
2017-08-22 16:27:33 +02:00
Sergey Sharybin
f3e02eb32e
Depsgraph: Cleanup, make code friendlier to be edited in columns
2017-08-22 16:24:58 +02:00
Sergey Sharybin
c80ab62aee
Depsgraph: Remove placeholder for path evaluation
...
Wasn't used in years, if it really needs to be dedicated operation it needs to
be revisited anyway.
2017-08-22 16:12:01 +02:00
Sergey Sharybin
1155fc94fd
Fix T52454: Crash in DEG_graph_on_visible_update when activating scene layer
...
Most likely needs in 2.79 final release.
2017-08-22 12:53:34 +02:00
Campbell Barton
ccb8e78d6c
Cleanup: whitespace
2017-08-12 13:43:40 +10:00
Sergey Sharybin
90b3dba515
Fix T52255: New Depsgraph - Constraint and Drivers not working together when the driver references itself
2017-08-08 15:27:25 +02:00
Sergey Sharybin
126830b56c
Depsgraph: Cleanup, make it easier to debug on laptop
2017-08-08 15:27:25 +02:00
Sergey Sharybin
4d67034076
Fix T52134: New depsgraph crashes when evaluating several psys on from object
2017-07-21 11:12:34 +02:00
Sergey Sharybin
1e21778261
Fix T51977: New depsgraph removes the grass in victor scene
...
For now just make new depsgraph do similar updates to the old one.
See bug report for more detailed information about what was going on.
2017-07-07 16:38:56 +02:00
Sergey Sharybin
481cf2982b
Depsgraph: Cleanup, indentation
2017-06-14 12:01:52 +02:00
Sergey Sharybin
bbd0d43417
Depsgraph: Remove unused ID node removal
2017-06-14 10:10:52 +02:00
Sergey Sharybin
6becdf5d00
Depsgraph: Pass function bindings by const reference
...
Avoids using copy-constructor invoked every time we pass function
to the builder functions.
Should lower number of CPU ticks spent during DEG construction.
2017-06-13 15:10:29 +02:00
Sergey Sharybin
90bc882068
Depsgraph: Remove root node concept
...
Was rather weird and only used for time source. It is simpler to make depsgraph
to keep track of time source directly.
No need to introduce extra entitites without actual need.
2017-06-13 14:13:55 +02:00
Sergey Sharybin
85fafccb4c
Depsgraph: Remove residue from partial updates support
2017-06-12 16:55:04 +02:00
Sergey Sharybin
1ba6ef25b6
Depsgraph: Add utility function to get depsgraph from node handle
...
The idea is to use this function for modifiers' updateDepsgraph functions
instead of doing direct scene->depsgraph access.
2017-06-12 14:41:46 +02:00
Sergey Sharybin
987ec1d030
Depsgraph: Remove outdated comment
2017-06-12 14:25:05 +02:00
Campbell Barton
46c073e4ac
Cleanup: cmake indentation, missing include
2017-06-09 06:45:21 +10:00
Sergey Sharybin
a3bb309275
Depsgraph: Remove modifiers operation code
...
Was internally a no-op operation, which only caused extra work
to be done during depsgrpah traversal and evaluation, without
making any measurable improvement.
2017-06-07 14:08:11 +02:00
Sergey Sharybin
b31e84a4b3
Depsgraph: Remove unused operation codes
2017-06-07 12:53:38 +02:00
Sergey Sharybin
8be55193c9
Depsgraph: Remove dead/unused operation codes
2017-06-07 12:47:19 +02:00
Sergey Sharybin
58a434b372
Depsgraph: Only use extern "C" when really needed
2017-06-06 12:14:39 +02:00
Campbell Barton
0d8bf4bf94
Cleanup: style
2017-06-02 15:38:04 +10:00
Sergey Sharybin
e5d8b04abe
Depsgraph: Cleanup, line wraps after shortening API
2017-06-01 16:22:35 +02:00
Sergey Sharybin
df7d38c111
Depsgraph: Remove operation types enum
...
Was only used to indicate entry/exit operation of component,
which is now done explicitly. No reason to keep something which
is unused and confusing.
2017-06-01 16:22:35 +02:00
Sergey Sharybin
a72daea36e
Depsgraph: use explicit marking of component entry/exit operations
...
This isn't used too often, and haivng such API will let us to skip
specifying operation type for all oeprations.
2017-06-01 16:22:35 +02:00
Sergey Sharybin
3a7361ec39
Depsgraph: Cleanup, use DEG_NODE_CLASS prefix for node classes
2017-06-01 16:22:35 +02:00
Sergey Sharybin
6799fb387d
Depsgraph: Cleanup, use DEG_NODE_TYPE prefix for depsgraph node types
2017-06-01 16:22:35 +02:00
Sergey Sharybin
5bda458bce
Depsgraph: Remove unused argument from time source query
2017-06-01 16:22:35 +02:00
Sergey Sharybin
a4925b05a7
Depsgraph: Remove subgraph nodes
...
Those were never finished nor used. Again, starting from clean
state before we go into more complicated details.
2017-06-01 16:22:35 +02:00
Sergey Sharybin
d492ae8893
Depsgraph: Remove dead code
...
Was never used or worked on in ages, if any of this code is
needed in the future it'll need to be redone anyway.
2017-06-01 16:22:35 +02:00
Sergey Sharybin
a13aa12d7c
Depsgraph: Remove dead code from add_time_source()
...
This was never finished or done or used, no reason to keep it.
Better to simplify things before adding complexity of overrides
and copy-on-write.
2017-06-01 16:22:35 +02:00
Sergey Sharybin
a6bb98aef9
Depsgraph: Cleanup, get rid of relation type
...
It was never actually used apart from being stored at a construciton time.
This caused some redundancy and ncertanty about which relation type to use
during construciton (often existing types were not close enough to particular
use case).
2017-06-01 16:22:35 +02:00
Sergey Sharybin
a481908232
Task scheduler: Optimize subsequent pushing bunch of tasks
...
The idea is to accumulate all new tasks in a thread local queue
first without doing any thread synchronization (aka, locks and
conditional variables) and move those tasks to a scheduler queue
once they are all ready. This way we avoid per-task-pool lock
and only have one lock per bunch of tasks.
This is particularly handy when scheduling new dependency graph
node children. Brings FPS of cached simulation from the linked
below file from ~30 to ~50.
See documentation for BLI_task_pool_delayed_push_{begin, end}
and for TaskThreadLocalStorage::do_delayed_push.
Fixes T50027: Rigidbody playback and simulation performance regression with new depsgraph
Thanks Bastien for the review!
2017-05-31 15:44:08 +02:00
Sergey Sharybin
d1d359b792
Depsgraph: Fix missing relations for objects which are indirectly linked
...
This is a corresponding part of 7dda3cf .
2017-05-30 17:42:38 +02:00
Sergey Sharybin
f92fc950c2
Depsgraph: Remove extra modifiers callback loop
...
Seems to be a copy-paste error from code above.
2017-05-30 17:38:22 +02:00
Sergey Sharybin
34cb934343
Depsgraph: Fix object being tagged for data update when it shouldn't
2017-05-30 14:36:50 +02:00
Sergey Sharybin
71dcead790
Move GHash/GSet/LinkList iterators to BLI files
...
Those are not depsgraph or C++ specific and can be used by everyone.
2017-05-30 12:48:06 +02:00
Sergey Sharybin
31bc9beeac
Depsgraph: Use own implementation of stack rather than the one from STL
...
This way we always have predictable behavior, especially from the
performance point of view. Additionally, if some bottleneck is found
in stack implementation it'll be easier for us to address.
2017-05-30 11:41:29 +02:00
Sergey Sharybin
15692c8cfe
Move hash_combine utility function to a more generic place
...
This way everyone can benefit from it, not only dependency graph.
2017-05-30 11:09:44 +02:00
Sergey Sharybin
24676b535a
Fix T49981: When camera is on inactive layer, it does not evaluate constraints
...
Second round of fix, was broken by 843be91 .
2017-05-17 10:22:40 +02:00
Sergey Sharybin
8eeb610832
Depsgraph: Fix/workaround crahs when fcu->rna_path is NULL
2017-05-11 16:28:21 +02:00
Bastien Montagne
42c346028f
Fix missing relation in new DEG between World and its NodeTree.
...
Was preventing update in 3DView etc. when changing something in the
World's NodeTree, especially annoying in blender2.8 branch (since legacy
depsgraph has been removed there), but also affecting master.
2017-05-10 20:35:59 +02:00
Sergey Sharybin
143d7ad40f
Revert "Depsgraph: Link from material to object shading"
...
The change was initially needed for Blender 2.8 branch but the actual
function was reverted in there. So no reason to keep dead unused
placeholder in the dependency graph.
This reverts commit fd69ba2255 .
2017-05-02 15:31:49 +02:00
Sergey Sharybin
968d86afc3
Depsgraph: Use proper scene to get frame from for pose constraints evaluaiton
...
Spotted by Luca, thanks!
2017-04-18 11:31:45 +02:00
Sergey Sharybin
f921442a44
Depsghraph: Remove unused function
2017-04-05 15:36:17 +02:00
Sergey Sharybin
6c42079b78
Depsgraph: Correction for the previous local view commit
...
Need to flush layers from components back to ID node.
2017-03-31 17:08:18 +02:00
Sergey Sharybin
843be91002
Depsgraph: Fix missing updates when in local view
...
This area is a subject of reconsideration, so for now used simplest
way possible -- ensure depsgraph's nodes have proper layer flags
when going in and out of local mode.
2017-03-30 14:42:55 +02:00
Sergey Sharybin
8e58e197fd
Ашч T50995: Wrong freestyle render with new depgraph
...
The iossue was caused by 0371ef1/
2017-03-24 16:33:26 +01:00