[Bf-blender-cvs] [80904de4856] id_override_static: Cleanup while attempting to fix auto-override detection in DEG.

Bastien Montagne noreply at git.blender.org
Fri Nov 10 17:22:00 CET 2017


Commit: 80904de48562cb3fbc377586520ad2c5020458fe
Author: Bastien Montagne
Date:   Fri Nov 10 17:12:11 2017 +0100
Branches: id_override_static
https://developer.blender.org/rB80904de48562cb3fbc377586520ad2c5020458fe

Cleanup while attempting to fix auto-override detection in DEG.

Not sure why that piece of code stopped working, but now this operation
is pretty much never evaluated... Will have to either dig deeper in DEG
or ask Sergey about it, but not a crucial issue for now.

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

M	source/blender/depsgraph/intern/builder/deg_builder_nodes.cc

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

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 872ce13803d..bb793733867 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -212,14 +212,16 @@ IDDepsNode *DepsgraphNodeBuilder::add_id_node(ID *id, bool do_tag)
 
 	if (is_idnode_created) {
 		if (id->override != NULL && (id->flag & LIB_AUTOOVERRIDE) != 0) {
+			printf("new idnode for overriding ID %s, adding overide_generator component...\n", id->name);
 			ComponentDepsNode *comp_node = id_node->add_component(DEG_NODE_TYPE_PARAMETERS, "override_generator");
-			comp_node->owner = id_node;
 
-			/* TDOD We most certainly do not want to run this on every deg evaluation! Especially not during animation? */
+			/* TODO We most certainly do not want to run this on every deg evaluation! Especially not during animation? */
 			/* Ideally, putting this in some kind of queue (only one entry per ID in whole queue) and consuming it in a
 			 * low-priority background thread would be ideal, but we need to ensure IDs remain valid for the thread? */
+			/* However currently, operation is essentially a NOP most of the time
+			 * (uses a delay to only actually run at most every 200ms or so). */
 			add_operation_node(comp_node, function_bind(BKE_override_operations_create, id, false),
-			                   DEG_OPCODE_OPERATION, "override_generator", 0);
+			                   DEG_OPCODE_PARAMETERS_EVAL, "override_generator", -1);
 		}
 	}



More information about the Bf-blender-cvs mailing list