diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-11-16 18:11:24 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-11-16 18:29:46 +0300 |
commit | 33ac6c25b9942f40a33382aeb57c73482cd07b27 (patch) | |
tree | a91323be26669a6ed2aa23452e8ffd1e0e769ac8 /source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc | |
parent | 91aa81b61dd0df29c23ca05fc4104c0f4117e8a6 (diff) |
Fix T56673: Tara.blend from Blender cloud crashes on load
The issue was caused by dependency cycle solver killing relation
which was guaranteed various things: i.e. copy-on-write component
orders and pose evaluation order (which must first run pose init
function).
Now it is possible to prevent such relations from being ignored.
This is not a complete fix, but is enough to make this specific
rig to work. Ideally, we also need to run copy-on-write operation
prior to anything else.
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc index 331b476be2c..d9f07955123 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc @@ -385,6 +385,7 @@ void DepsgraphRelationBuilder::build_rig(Object *object) } /* Links between operations for each bone. */ LISTBASE_FOREACH (bPoseChannel *, pchan, &object->pose->chanbase) { + DepsRelation *relation; OperationKey bone_local_key(&object->id, DEG_NODE_TYPE_BONE, pchan->name, @@ -403,7 +404,9 @@ void DepsgraphRelationBuilder::build_rig(Object *object) DEG_OPCODE_BONE_DONE); pchan->flag &= ~POSE_DONE; /* Pose init to bone local. */ - add_relation(pose_init_key, bone_local_key, "Pose Init - Bone Local"); + relation = add_relation( + pose_init_key, bone_local_key, "Pose Init - Bone Local"); + relation->flag |= DEPSREL_FLAG_GODMODE; /* Local to pose parenting operation. */ add_relation(bone_local_key, bone_pose_key, "Bone Local - Bone Pose"); /* Parent relation. */ |