Sergey Sharybin
f921442a44
Depsghraph: Remove unused function
2017-04-05 15:36:17 +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
Sergey Sharybin
0434053f13
Depsgraph: Fixed crash with curve bevel indirect dupligroups
...
Need to expand all object's dupli-groups, not only the dupli-groups
of objects directly linked to the scene.
2017-03-16 15:35:21 +01:00
Sergey Sharybin
af1d9ecd40
Fix strict compiler warning in the previous commit
2017-03-15 12:48:07 +01:00
Sergey Sharybin
9ad252d157
Fix T50938: Cache not being reset when changing simulation settings with new depsgraph
...
The thing i'm really starting to hate is the requirement to specify both
operation code and node type. Seems to be duplicated enums without real
need for that.
2017-03-15 11:10:42 +01:00
Sergey Sharybin
a90622ce93
Fix T50331: New Dependency Graph - "frame" python driver expression not working
2017-01-31 12:17:55 +01:00
Bastien Montagne
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
Sergey Sharybin
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
Sergey Sharybin
c441eb27ea
Depsgraph: Add relation from node tree to material it's coming from
2017-01-26 16:49:24 +01:00
Sergey Sharybin
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
Sergey Sharybin
3c3c52a74b
Depsgraph: Remove owner node argument which was simply passed around
2017-01-26 16:29:09 +01:00
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
605695de61
Depsgraph: Fix duplicated operation node when two objects are sharing same armature
2017-01-24 17:15:39 +01:00
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
69e8e34d96
Depsgraph: avoid more transitive relations for rigid body simulation
2016-12-05 16:30:30 +01:00
Sergey Sharybin
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
Sergey Sharybin
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
Alexander Gavrilov
60dae91db8
Fix depsgraph: hair collision is actually enabled, so add the relations.
2016-12-05 13:36:30 +03:00
Sergey Sharybin
25c534f20a
Fix T49981: New Depsgraph - When camera is on inactive layer, it does not evaluate constraints
2016-11-21 14:37:23 +01:00
Sergey Sharybin
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
Sergey Sharybin
b3c8ee891a
Depsgraph: use more explicit parenthesis
2016-11-21 11:05:56 +01:00
Sergey Sharybin
ba7c11aa05
Depsgraph: Fix residue of debug-only code
2016-11-18 17:48:01 +01:00
Bastien Montagne
b859fef670
Fix copy/paste typo in new depsgraph object geometry builder (found by coverity).
2016-11-18 11:55:28 +01:00
Sergey Sharybin
d294509dd8
Depsgrpah: Fix missing animation update in movie clips
2016-11-17 16:37:25 +01:00
Sergey Sharybin
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
Sergey Sharybin
1f8762bb8e
Fix T50060: New depsgraph does not update mask animation
2016-11-17 15:29:22 +01:00
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
2a838c71d9
Depsgraph: Add missing NULL pointer check
2016-11-11 15:28:34 +01:00
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
b1743cda5a
Depsgraph: Fix typo in text on curve relation builder
2016-11-11 14:41:02 +01:00
Sergey Sharybin
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
Sergey Sharybin
915c74a33b
Depsgraph: Add some data builder logic to corresponding function
2016-11-11 14:24:47 +01:00
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
65a1fd975c
Depsgraph: Move key implementation from header to dedicated file
2016-11-07 11:04:49 +01:00
Sergey Sharybin
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
Sergey Sharybin
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
Sergey Sharybin
d872aeaf51
Depsgraph: Cleanup, operation has name, not description
...
Hopefully should make things more clear here.
2016-11-07 11:04:49 +01:00
Sergey Sharybin
f8d9a56aa1
Depsgraph: Use const char for component API
2016-11-07 11:04:49 +01:00
Sergey Sharybin
4ef45ba775
Depsgraph: Remove some includes which seems unused
2016-11-07 11:04:49 +01:00