Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-05-29 13:48:59 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-05-29 13:50:04 +0300
commitb0278b24868d7cd6326577fcbae5ace13a0e9200 (patch)
treed5fab531bc4241fa8c3aaffefdd2873d53b8e26b
parentd6b340b99962f90fa5c5af405ef5317da529085e (diff)
Depsgraph: Fix IDs being remapped in original compositor
Happens with files from T65223. Caused by CoW scene still pointing to the original compositor. Happens when scene was referenced for parameters only.
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc
index b092799e692..64f841d56fc 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes_scene.cc
@@ -47,6 +47,17 @@ void DepsgraphNodeBuilder::build_scene_parameters(Scene *scene)
}
add_operation_node(&scene->id, NodeType::PARAMETERS, OperationCode::SCENE_EVAL);
add_operation_node(&scene->id, NodeType::PARAMETERS, OperationCode::PARAMETERS_EVAL);
+ /* NOTE: This is a bit overkill and can potentially pull a bit too much into the graph, but:
+ *
+ * - We definitely need an ID node for the scene's compositor, othetrwise re-mapping will no
+ * happen correct and we will risk remapping pointers in the main database.
+ * - Alternatively, we should discard compositor tree, but this might cause other headache like
+ * drivers which are coming from the tree.
+ *
+ * Would be nice to find some reliable way of ignoring compositor here, but it's already pulled
+ * in when building scene from view layer, so this particular case does not make things
+ * marginally worse. */
+ build_scene_compositor(scene);
}
void DepsgraphNodeBuilder::build_scene_compositor(Scene *scene)