[Bf-blender-cvs] [028bce87173] master: Depsgraph: Fix fake dependnecy cycle in proxies

Sergey Sharybin noreply at git.blender.org
Thu May 23 15:30:11 CEST 2019


Commit: 028bce87173e704081517bd7a2a323648e8137ad
Author: Sergey Sharybin
Date:   Thu May 23 10:26:17 2019 +0200
Branches: master
https://developer.blender.org/rB028bce87173e704081517bd7a2a323648e8137ad

Depsgraph: Fix fake dependnecy cycle in proxies

Noticed when was looking into T64764, F7043663.

This is a weird case when proxy group is not a group, but is the
same as linked object.

Remove useless relation which was causing cycle, but had no functional
meaning.

Pair programming session with Brecht.

Reviewers: angavrilov, brecht

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D4928

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

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

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

diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
index ad78e90993d..c8821c3fa0b 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -639,12 +639,14 @@ void DepsgraphRelationBuilder::build_object(Base *base, Object *object)
   }
   /* Proxy object to copy from. */
   if (object->proxy_from != NULL) {
+    /* Object is linked here (comes from the library). */
     build_object(NULL, object->proxy_from);
     ComponentKey ob_transform_key(&object->proxy_from->id, NodeType::TRANSFORM);
     ComponentKey proxy_transform_key(&object->id, NodeType::TRANSFORM);
     add_relation(ob_transform_key, proxy_transform_key, "Proxy Transform");
   }
-  if (object->proxy_group != NULL) {
+  if (object->proxy_group != NULL && object->proxy_group != object->proxy) {
+    /* Object is local here (local in .blend file, users interacts with it). */
     build_object(NULL, object->proxy_group);
     OperationKey proxy_group_eval_key(
         &object->proxy_group->id, NodeType::TRANSFORM, OperationCode::TRANSFORM_EVAL);



More information about the Bf-blender-cvs mailing list