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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to