[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