[Bf-blender-cvs] [ef94415060d] blender2.8: Depsgraph: Fix threading conflict between node animation and shading update

Sergey Sharybin noreply at git.blender.org
Thu May 3 12:55:16 CEST 2018


Commit: ef94415060dc35be9ea0c2c0cb3b8033c592fde7
Author: Sergey Sharybin
Date:   Thu May 3 12:41:03 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBef94415060dc35be9ea0c2c0cb3b8033c592fde7

Depsgraph: Fix threading conflict between node animation and shading update

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

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 8eb4d502410..45e05c6f928 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc
@@ -169,6 +169,16 @@ static bool object_particles_depends_on_time(Object *object)
 	return false;
 }
 
+static bool check_id_has_anim_component(ID *id)
+{
+	AnimData *adt = BKE_animdata_from_id(id);
+	if (adt == NULL) {
+		return false;
+	}
+	return (adt->action != NULL) ||
+	       (!BLI_listbase_is_empty(&adt->nla_tracks));
+}
+
 /* **** General purpose functions ****  */
 
 DepsgraphRelationBuilder::DepsgraphRelationBuilder(Main *bmain,
@@ -1886,6 +1896,11 @@ void DepsgraphRelationBuilder::build_nodetree(bNodeTree *ntree)
 	                                    DEG_NODE_TYPE_SHADING_PARAMETERS,
 	                                    DEG_OPCODE_MATERIAL_UPDATE);
 	add_relation(shading_parameters_key, shading_update_key, "NTree Shading Parameters");
+
+	if (check_id_has_anim_component(&ntree->id)) {
+		ComponentKey animation_key(&ntree->id, DEG_NODE_TYPE_ANIMATION);
+		add_relation(shading_parameters_key, animation_key, "NTree Shading Parameters");
+	}
 }
 
 /* Recursively build graph for material */



More information about the Bf-blender-cvs mailing list