[Bf-blender-cvs] [56b1b9d] depsgraph_refactor: Depsgraph: Solve assert failure in cases when there is a dependency cycle
Sergey Sharybin
noreply at git.blender.org
Thu Jan 8 15:05:05 CET 2015
Commit: 56b1b9d56b971730c95836d03fe9a9c0fb697afa
Author: Sergey Sharybin
Date: Thu Jan 8 19:03:37 2015 +0500
Branches: depsgraph_refactor
https://developer.blender.org/rB56b1b9d56b971730c95836d03fe9a9c0fb697afa
Depsgraph: Solve assert failure in cases when there is a dependency cycle
Also make pose update working with legacy depsgraph.
TODO: We need some proper dependency cycle checker and solver.
===================================================================
M source/blender/blenkernel/intern/object_update.c
M source/blender/depsgraph/intern/depsgraph_eval.cpp
===================================================================
diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c
index 7f6fc91..b7d784b 100644
--- a/source/blender/blenkernel/intern/object_update.c
+++ b/source/blender/blenkernel/intern/object_update.c
@@ -200,7 +200,9 @@ void BKE_object_handle_data_update(EvaluationContext *eval_ctx,
}
else {
// XXX: standard evaluation is now handled by our new nodes, so this case is not needed anymore
- //BKE_pose_where_is(scene, ob);
+ if (DEG_depsgraph_use_legacy()) {
+ BKE_pose_where_is(scene, ob);
+ }
}
break;
diff --git a/source/blender/depsgraph/intern/depsgraph_eval.cpp b/source/blender/depsgraph/intern/depsgraph_eval.cpp
index c8ba33b..05e0707 100644
--- a/source/blender/depsgraph/intern/depsgraph_eval.cpp
+++ b/source/blender/depsgraph/intern/depsgraph_eval.cpp
@@ -249,6 +249,11 @@ static void schedule_children(TaskPool *pool,
OperationDepsNode *child = (OperationDepsNode *)rel->to;
BLI_assert(child->type == DEPSNODE_TYPE_OPERATION);
+ if (child->scheduled) {
+ /* Happens */
+ continue;
+ }
+
if (child->flag & DEPSOP_FLAG_NEEDS_UPDATE) {
IDDepsNode *id_child = child->owner->owner;
More information about the Bf-blender-cvs
mailing list