[Bf-blender-cvs] [c2ffea7f129] blender2.8: Depsgraph: Remove hacky workaround for copy-on-write tagging flushing updates to everything

Sergey Sharybin noreply at git.blender.org
Wed Jul 19 17:33:58 CEST 2017


Commit: c2ffea7f129f8ba47c2547ca02fd27b0a2a44981
Author: Sergey Sharybin
Date:   Wed Jul 19 09:40:34 2017 +0200
Branches: blender2.8
https://developer.blender.org/rBc2ffea7f129f8ba47c2547ca02fd27b0a2a44981

Depsgraph: Remove hacky workaround for copy-on-write tagging flushing updates to everything

Wasn't working reliably,m and it's somewhat dangerous anyway. Seed something smarter.

===================================================================

M	source/blender/depsgraph/intern/depsgraph_tag.cc
M	source/blender/depsgraph/intern/eval/deg_eval_flush.cc
M	source/blender/depsgraph/intern/nodes/deg_node_operation.cc
M	source/blender/depsgraph/intern/nodes/deg_node_operation.h

===================================================================

diff --git a/source/blender/depsgraph/intern/depsgraph_tag.cc b/source/blender/depsgraph/intern/depsgraph_tag.cc
index db7d2a4323b..561d21bc40b 100644
--- a/source/blender/depsgraph/intern/depsgraph_tag.cc
+++ b/source/blender/depsgraph/intern/depsgraph_tag.cc
@@ -227,7 +227,6 @@ void id_tag_update_copy_on_write(Depsgraph *graph, IDDepsNode *id_node)
 	        id_node->find_component(DEG_NODE_TYPE_COPY_ON_WRITE);
 	OperationDepsNode *cow_node = cow_comp->get_entry_operation();
 	cow_node->tag_update(graph);
-	cow_node->flag |= DEPSOP_FLAG_SKIP_FLUSH;
 }
 #endif
 
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc
index 3717e62ef7e..861e7ec2650 100644
--- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc
+++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc
@@ -105,10 +105,8 @@ void deg_graph_flush_updates(Main *bmain, Depsgraph *graph)
 	 */
 	GSET_FOREACH_BEGIN(OperationDepsNode *, op_node, graph->entry_tags)
 	{
-		if ((op_node->flag & DEPSOP_FLAG_SKIP_FLUSH) == 0) {
-			queue.push_back(op_node);
-			op_node->scheduled = true;
-		}
+		queue.push_back(op_node);
+		op_node->scheduled = true;
 	}
 	GSET_FOREACH_END();
 
diff --git a/source/blender/depsgraph/intern/nodes/deg_node_operation.cc b/source/blender/depsgraph/intern/nodes/deg_node_operation.cc
index 84b3d33f494..7467264f612 100644
--- a/source/blender/depsgraph/intern/nodes/deg_node_operation.cc
+++ b/source/blender/depsgraph/intern/nodes/deg_node_operation.cc
@@ -76,9 +76,6 @@ string OperationDepsNode::full_identifier() const
 
 void OperationDepsNode::tag_update(Depsgraph *graph)
 {
-	if (flag & DEPSOP_FLAG_SKIP_FLUSH) {
-		flag &= ~DEPSOP_FLAG_SKIP_FLUSH;
-	}
 	if (flag & DEPSOP_FLAG_NEEDS_UPDATE) {
 		return;
 	}
diff --git a/source/blender/depsgraph/intern/nodes/deg_node_operation.h b/source/blender/depsgraph/intern/nodes/deg_node_operation.h
index 8a1fadd9c6c..de90f5db397 100644
--- a/source/blender/depsgraph/intern/nodes/deg_node_operation.h
+++ b/source/blender/depsgraph/intern/nodes/deg_node_operation.h
@@ -50,11 +50,6 @@ typedef enum eDepsOperation_Flag {
 	 * implications...
 	 */
 	DEPSOP_FLAG_USES_PYTHON        = (1 << 2),
-
-	/* Special flag which indicates that update tag sohuld not be flushed
-	 * up to the dependent nodes.
-	 */
-	DEPSOP_FLAG_SKIP_FLUSH         = (1 << 3),
 } eDepsOperation_Flag;
 
 /* Atomic Operation - Base type for all operations */




More information about the Bf-blender-cvs mailing list