From 3c7254ffb65d4f1e07f0b5aaa52b392149226768 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 18 Apr 2018 17:34:18 +0200 Subject: [PATCH] Depsgraph: Fix missing bases array update view_layer_object_copy test was broken. This is a quick fix for now, can be optimized further later. --- source/blender/depsgraph/intern/depsgraph_build.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/blender/depsgraph/intern/depsgraph_build.cc b/source/blender/depsgraph/intern/depsgraph_build.cc index c7f53b51374..f071fd04c5e 100644 --- a/source/blender/depsgraph/intern/depsgraph_build.cc +++ b/source/blender/depsgraph/intern/depsgraph_build.cc @@ -272,6 +272,19 @@ void DEG_graph_tag_relations_update(Depsgraph *graph) { DEG::Depsgraph *deg_graph = reinterpret_cast(graph); deg_graph->need_update = true; + /* NOTE: When relations are updated, it's quite possible that + * we've got new bases in the scene. This means, we need to + * re-create flat array of bases in view layer. + * + * TODO(sergey): Try to make it so we don't flush updates + * to the whole depsgraph. + */ + { + DEG::IDDepsNode *id_node = deg_graph->find_id_node(°_graph->scene->id); + if (id_node != NULL) { + id_node->tag_update(deg_graph); + } + } } /* Create or update relations in the specified graph. */