a1820afa30
Depsgraph: Add some extra debug prints on eval
2017-02-03 14:05:59 +01:00
a90622ce93
Fix T50331: New Dependency Graph - "frame" python driver expression not working
2017-01-31 12:17:55 +01:00
b5682a6fdd
Cleanup: use 'cb_flag', not 'cd_flag' for library_query callbacks.
...
`cd_flag` tends to be used for CustomData flags in mesh area, while for
library_query those are rather callback flags...
2017-01-31 10:41:25 +01:00
67bef6bcf6
Depsgraph: Fix typo in assert
2017-01-26 17:22:54 +01:00
fd69ba2255
Depsgraph: Link from material to object shading
...
This is a ground work for the upcoming changes in Blender 2.8 branch
where we need to do special actions to reconstruct shaders when
material changes.
2017-01-26 17:01:37 +01:00
c441eb27ea
Depsgraph: Add relation from node tree to material it's coming from
2017-01-26 16:49:24 +01:00
331f721725
Depsgraph: Remove owner argument from relations builder as well
...
The idea was to link something to a parent, but the point is:
we must not pass owner deep and then have any parent-type-related
logic implemented in the "children".
2017-01-26 16:36:37 +01:00
3c3c52a74b
Depsgraph: Remove owner node argument which was simply passed around
2017-01-26 16:29:09 +01:00
e29a6f739d
Fix T50512: Linked Backround scene with animation not updating with new depsgraph
...
Was missing relations for the set scenes.
Perhaps not ideal solution, but should be good enough for now.
2017-01-25 12:30:29 +01:00
e4de6e87e1
Depsgraph: Do ID tag outside of build_scene
...
Otherwise it was possible to get ID tags cleared in the middle
of DEG construction when there are set scenes used.
2017-01-25 12:28:27 +01:00
605695de61
Depsgraph: Fix duplicated operation node when two objects are sharing same armature
2017-01-24 17:15:39 +01:00
3bd94b9f45
Depsgraph: Bone parent should also include armature transform relation
...
It is required to have world-space bone position, which consists of armature
object transform and local bone transform.
2016-12-09 13:05:39 +01:00
0371ef16ee
Depsgraph: Only re-schedule objects which are on visible layers
...
Otherwise it's possible to cause infinite update loop in Cycles viewport.
Gets a bit messy logic, need to revisit this..
2016-12-06 14:48:48 +01:00
7471f09f2b
Depsgraph: Use HIGH priority for scheduled tasks
...
This kind of keeps threads "warmer" and should in theory give better
cache coherency bringing some %% of speedup. It was already tested
few months ago and it gave few % speedup in barber shop, but was
reverted due to some bone popping. The popping is now fixed so it
should be fine to use new scheduling policy.
2016-12-05 16:31:34 +01:00
69e8e34d96
Depsgraph: avoid more transitive relations for rigid body simulation
2016-12-05 16:30:30 +01:00
d1d7217692
Depsgraph: Rigid body simulation doesn't need explicit time relation
...
It'll be dependent on time via Time Source -> Rebuild RB World chain.
2016-12-05 16:03:10 +01:00
2cb5dffc8d
Depsgraph: Avoid transitive relation from local transform to final
...
There is always an uber eval node on the way. so we can avoid creating
some relations here in order to speed up both construction time and
evaluation.
2016-12-05 15:59:31 +01:00
60dae91db8
Fix depsgraph: hair collision is actually enabled, so add the relations.
2016-12-05 13:36:30 +03:00
f2b57c3532
Depsgraph: Fix matrix_world driver source
...
Reported by Dalai in IRC, thanks!
2016-11-23 11:09:05 +01:00
25c534f20a
Fix T49981: New Depsgraph - When camera is on inactive layer, it does not evaluate constraints
2016-11-21 14:37:23 +01:00
5eab3b079f
Depsgraph: Fix infinite viewport object update in CYcles render mode
...
The issue was caused by wrong object re-tag needed to have proper dependnecies
update for OpenSubdiv.
2016-11-21 12:00:09 +01:00
b3c8ee891a
Depsgraph: use more explicit parenthesis
2016-11-21 11:05:56 +01:00
ba7c11aa05
Depsgraph: Fix residue of debug-only code
2016-11-18 17:48:01 +01:00
b859fef670
Fix copy/paste typo in new depsgraph object geometry builder (found by coverity).
2016-11-18 11:55:28 +01:00
d294509dd8
Depsgrpah: Fix missing animation update in movie clips
2016-11-17 16:37:25 +01:00
4dbd61cc64
Depsgraph: Move scene builder function to own file
...
This way it's much easier to grasp what the graph actually contains.
2016-11-17 15:44:32 +01:00
1f8762bb8e
Fix T50060: New depsgraph does not update mask animation
2016-11-17 15:29:22 +01:00
0a08d8c892
Depsgraph: Use utility macro to iterate over linked list
...
This will be compiled into same exact code, just saves us from
doing annoying type casts all over the place.
2016-11-17 15:11:55 +01:00
0c322c3000
Depsgraph: Move rig builder functions to own files
...
Those routines are rather big and started to be annoying to have
one big file.
Should be no functional changes.
2016-11-17 14:41:16 +01:00
445274fc4f
Depsgraph: Fix typo in previous optimization commit
...
Was a residue from another experiment, caused infinite loop when
reporting dependency cycles.
2016-11-15 14:22:17 +01:00
4ee08e9533
Atomics: Make naming more obvious about which value is being returned
2016-11-15 12:16:26 +01:00
7d33d4439f
Fix T49994: Setting dupligroup which uses indirect relation will crash
...
Did similar trick to old dependency graph: tag invisible relations for update.
Might need some re-consideration, see the comment.
This should solve our issues with powerlib addon here in the studio.
2016-11-11 16:16:27 +01:00
2a838c71d9
Depsgraph: Add missing NULL pointer check
2016-11-11 15:28:34 +01:00
24d89a1f77
Depsgraph: Fix missing DONE flag in relations builder
...
Was causing relations be build twice in certain cases.
2016-11-11 15:20:17 +01:00
7dda3cf830
Fix T49993: Indirectly used taper/bevel crashes new dependency graph
...
New dependency graph expects strict separation between nodes and relations builder,
meaning, if we try to create relation with an object which is not in the graph yet
we'll have an error in depsgraph.
Now, so far object nodes were created from bases of the current scene, which caused
missing objects in graph in certain cases.
Didn't find better approach than to simply ensure object nodes exists when we know
they'll be used by relation builder.
2016-11-11 14:52:05 +01:00
b1743cda5a
Depsgraph: Fix typo in text on curve relation builder
2016-11-11 14:41:02 +01:00
653541ea78
Depsgraph: Fix missing ID node tag
...
Might have caused nodes created multiple times for the same object.
2016-11-11 14:26:11 +01:00
915c74a33b
Depsgraph: Add some data builder logic to corresponding function
2016-11-11 14:24:47 +01:00
9eeca9e7cd
Depsgraph: cleanup, no functional changes
2016-11-11 13:54:02 +01:00
f0d53ac109
Depsgraph: Fix another issue which seems to be a bug
...
Similar to a previous commit.
Doing separately for an easy of bisect.
2016-11-10 15:49:33 +01:00
aef66a6be0
Depsgraph: Fix wrong relation from IK solver to pole target
...
Copy paste error...
How to avoid those?
2016-11-10 15:46:22 +01:00
1d01a1a269
Depsgraph: Disable timing profile
2016-11-07 12:50:45 +01:00
Martijn Berger
f51f215bc3
fix building depsgraph after recent changes
2016-11-07 12:32:00 +01:00
37947ed552
Depsgraph: Do not rely on indirectly included cstring
...
Also add comment why exactly cstring is needed.
2016-11-07 12:09:42 +01:00
21350b73df
Despgraph: Optimize cycles detection algorithm
...
The idea is simple: when falling back to one of the nodes which was partially
handled we "resume" checking outgoing relations from the index which we stopped.
This gives about 15-20% depsgraph construction time save.
2016-11-07 11:04:49 +01:00
4c30a9ee42
Depsgraph: Speedup initial rig build time
...
We don't need to sort bone channels, it's all taken care about
by the depsgraph itself.
Gives up to 30% initial rig construction time speedup.
2016-11-07 11:04:49 +01:00
65a1fd975c
Depsgraph: Move key implementation from header to dedicated file
2016-11-07 11:04:49 +01:00
109be7ed39
Depsgraph: Move class implementation from header to implementation files
...
This is more proper way to go:
- Avoids re-compilation of all dependent files when implementation changes
without changed API,
- Linker should have much simpler time now de-duplicating and getting rid
of redundant implementations.
2016-11-07 11:04:49 +01:00
287197c4e3
Depsgraph: Fully switch from string to const char*
...
This brings up to 10-20% depsgraph build time improvement in the layout
files from the studio repository.
2016-11-07 11:04:49 +01:00
c9eca0c6c9
Depsgraph: Add extra name tag for operation nodes
...
The idea here is to address issue that name on it's own is not
always unique: for example, when adding driver operations the
name used for nodes is the RNA path (and multiple drivers can
write to different array indices of the path). Basically, now
it's possible to pass extra integer value to distinguish
operations in such cases.
So now we've already switched from sprintf() to construct unique
operation name to pass RNA path and array index.
There should be no functional changes yet, but this work is
required for further work about replacing string with const
char*.
2016-11-07 11:04:49 +01:00