[Bf-blender-cvs] [b350edc2075] blender2.8: Depsgraph: Add missing relation from proxy group

Sergey Sharybin noreply at git.blender.org
Thu Jun 21 16:00:12 CEST 2018


Commit: b350edc20750929ee132e5b78fa25221e893ffc3
Author: Sergey Sharybin
Date:   Thu Jun 21 15:56:06 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBb350edc20750929ee132e5b78fa25221e893ffc3

Depsgraph: Add missing relation from proxy group

Transform evaluation does depend on that matrix, but relation was never
in dependency graph. It was not even in the old dependency graph, which
makes me wonder how this thing worked reliably to begin with.

Should fix flickering issue in the render farm.

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

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

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

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
index 127a3f45929..3354f85bf27 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
@@ -538,10 +538,10 @@ void DepsgraphNodeBuilder::build_object(int base_index,
 		build_gpencil(object->gpd);
 	}
 	/* Proxy object to copy from. */
-	if (object->proxy_from) {
+	if (object->proxy_from != NULL) {
 		build_object(-1, object->proxy_from, DEG_ID_LINKED_INDIRECTLY);
 	}
-	if (object->proxy_group) {
+	if (object->proxy_group != NULL) {
 		build_object(-1, object->proxy_group, DEG_ID_LINKED_INDIRECTLY);
 	}
 	/* Object dupligroup. */
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index ff3c9f9e426..0c7e13197a6 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -596,8 +596,12 @@ void DepsgraphRelationBuilder::build_object(Base *base, Object *object)
 		ComponentKey proxy_transform_key(&object->id, DEG_NODE_TYPE_TRANSFORM);
 		add_relation(ob_transform_key, proxy_transform_key, "Proxy Transform");
 	}
-	if (object->proxy_group) {
+	if (object->proxy_group != NULL) {
 		build_object(NULL, object->proxy_group);
+		OperationKey proxy_group_ubereval_key(&object->proxy_group->id,
+		                                      DEG_NODE_TYPE_TRANSFORM,
+		                                      DEG_OPCODE_TRANSFORM_OBJECT_UBEREVAL);
+		add_relation(proxy_group_ubereval_key, final_transform_key, "Proxy Group Transform");
 	}
 	/* Object dupligroup. */
 	if (object->dup_group != NULL) {



More information about the Bf-blender-cvs mailing list