[Bf-blender-cvs] [b1946e7f7ad] master: Depsgraph: Report overall number of cycles detected
Sergey Sharybin
noreply at git.blender.org
Wed Feb 21 10:29:35 CET 2018
Commit: b1946e7f7ad2c9a308060f4f1a06f82cdcb4c8a5
Author: Sergey Sharybin
Date: Tue Feb 20 17:16:41 2018 +0100
Branches: master
https://developer.blender.org/rBb1946e7f7ad2c9a308060f4f1a06f82cdcb4c8a5
Depsgraph: Report overall number of cycles detected
Handy to quickly see if a fix fixed any of the cycles in a real rig,
or whether it's introduced new ones.
===================================================================
M source/blender/depsgraph/intern/builder/deg_builder_cycle.cc
===================================================================
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_cycle.cc b/source/blender/depsgraph/intern/builder/deg_builder_cycle.cc
index e30b9b44490..c9fa35bd551 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_cycle.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_cycle.cc
@@ -87,6 +87,7 @@ void deg_graph_detect_cycles(Depsgraph *graph)
BLI_Stack *traversal_stack = BLI_stack_new(sizeof(StackEntry),
"DEG detect cycles stack");
+ int num_cycles = 0;
foreach (OperationDepsNode *node, graph->operations) {
bool has_inlinks = false;
foreach (DepsRelation *rel, node->inlinks) {
@@ -136,6 +137,7 @@ void deg_graph_detect_cycles(Depsgraph *graph)
}
/* TODO(sergey): So called russian roulette cycle solver. */
rel->flag |= DEPSREL_FLAG_CYCLIC;
+ ++num_cycles;
}
else if (to_state == NODE_NOT_VISITED) {
StackEntry new_entry;
@@ -157,6 +159,10 @@ void deg_graph_detect_cycles(Depsgraph *graph)
}
BLI_stack_free(traversal_stack);
+
+ if (num_cycles != 0) {
+ printf("Detected %d dependency cycles\n", num_cycles);
+ }
}
} // namespace DEG
More information about the Bf-blender-cvs
mailing list