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-12-07 13:17:34 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-12-07 13:37:44 +0300
commitfff5df8108255b6579f802d769e6951e5dd96492 (patch)
treee45383aa281647d4bd5a0135de1a9b8f9371f3f6 /source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
parent89121253dbecaefc6bc9bf020b556292132288e6 (diff)
Depsgraph: Make data allocation dependency more robust
This fix aims to fix crash/assert failure related on wrong evaluation order which happens when there is a cyclic dependency involved. The rationality of this change is that we can allow use of uninitialized scalar value, but memory is better be allocated. This might not be ideal still, but worth a try.
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.cc11
1 files changed, 8 insertions, 3 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 8003fd5d313..ef021c09824 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
@@ -518,7 +518,8 @@ void DepsgraphRelationBuilder::build_rig(Object *object)
/* Pose requires the B-Bone shape. */
add_relation(bone_segments_key,
pose_done_key,
- "PoseEval Result-Bone Link");
+ "PoseEval Result-Bone Link",
+ DEPSREL_FLAG_GODMODE);
add_relation(bone_segments_key,
pose_cleanup_key,
"Cleanup dependency");
@@ -575,7 +576,10 @@ void DepsgraphRelationBuilder::build_proxy_rig(Object *object)
add_relation(bone_ready_key, bone_done_key, "Ready -> Done");
add_relation(
bone_done_key, pose_cleanup_key, "Bone Done -> Pose Cleanup");
- add_relation(bone_done_key, pose_done_key, "Bone Done -> Pose Done");
+ add_relation(bone_done_key,
+ pose_done_key,
+ "Bone Done -> Pose Done",
+ DEPSREL_FLAG_GODMODE);
/* Make sure bone in the proxy is not done before it's FROM is done. */
if (pchan->bone && pchan->bone->segments > 1) {
@@ -585,7 +589,8 @@ void DepsgraphRelationBuilder::build_proxy_rig(Object *object)
DEG_OPCODE_BONE_SEGMENTS);
add_relation(from_bone_segments_key,
bone_done_key,
- "Bone Segments -> Bone Done");
+ "Bone Segments -> Bone Done",
+ DEPSREL_FLAG_GODMODE);
}
else {
add_relation(from_bone_done_key,