[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