diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-07-09 15:17:36 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-07-09 15:42:56 +0300 |
commit | d37929c85b88066ca044050ba520627b6364d93c (patch) | |
tree | 04f908336809794579e76af85806ebb5bcd936c8 /source/blender | |
parent | f84956738ba4e97f30553a675b643f6648afce1d (diff) |
Depsgraph: Force modifier stack update when mesh is copied
Modifier stack might reference arrays from mesh, so if any of sub-data
pointer changed, modifier stack is to be re-evaluated.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index 1eaf53a0afc..7a5d2b4afa4 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -2186,7 +2186,7 @@ void DepsgraphRelationBuilder::build_nested_shapekey(ID *owner, Key *key) void DepsgraphRelationBuilder::build_copy_on_write_relations(IDDepsNode *id_node) { ID *id_orig = id_node->id_orig; - + const ID_Type id_type = GS(id_orig->name); TimeSourceKey time_source_key; OperationKey copy_on_write_key(id_orig, DEG_NODE_TYPE_COPY_ON_WRITE, @@ -2210,6 +2210,9 @@ void DepsgraphRelationBuilder::build_copy_on_write_relations(IDDepsNode *id_node continue; } int rel_flag = DEPSREL_FLAG_NO_FLUSH; + if (id_type == ID_ME && comp_node->type == DEG_NODE_TYPE_GEOMETRY) { + rel_flag &= ~DEPSREL_FLAG_NO_FLUSH; + } /* All entry operations of each component should wait for a proper * copy of ID. */ |