Depsgraph: Remove hacky workaround for copy-on-write tagging flushing updates to...
authorSergey Sharybin <sergey.vfx@gmail.com>
Wed, 19 Jul 2017 07:40:34 +0000 (09:40 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Wed, 19 Jul 2017 13:20:06 +0000 (15:20 +0200)
Wasn't working reliably,m and it's somewhat dangerous anyway. Seed something smarter.

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

index db7d2a4323b9f52dff7550ae4bf68490ea8e2c37..561d21bc40b482483ff64391cf7be6a7f0562003 100644 (file)
@@ -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
 
index 3717e62ef7efe6796b32b7ee53e23800d61b96e1..861e7ec2650c4db18b439711748861261c1649d8 100644 (file)
@@ -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();
 
index 84b3d33f4946266f95f7303d69603355a275a832..7467264f61278078336f7bd56ce20955fcbd6c0c 100644 (file)
@@ -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;
        }
index 8a1fadd9c6c46fb974ff25badb6b001037b7eadd..de90f5db397dadc6f49c466c0f03f44fa30d892b 100644 (file)
@@ -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 */