Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-11-16 18:11:24 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-11-16 18:29:46 +0300
commit33ac6c25b9942f40a33382aeb57c73482cd07b27 (patch)
treea91323be26669a6ed2aa23452e8ffd1e0e769ac8 /source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
parent91aa81b61dd0df29c23ca05fc4104c0f4117e8a6 (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.cc5
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. */