From 9f77c202868b1b44fa35c1b689a56b1ef2ac4ac0 Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Fri, 1 Mar 2019 10:59:37 +0100 Subject: Fix T62053: Composite rendering more images than needed Reviewers: brecht Maniphest Tasks: T62053 Differential Revision: https://developer.blender.org/D4432 --- source/blender/render/intern/source/pipeline.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'source/blender/render') diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index b41c4973e8b..2620d2293b3 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -1242,18 +1242,20 @@ static void ntree_render_scenes(Render *re) /* now foreach render-result node tagged we do a full render */ /* results are stored in a way compisitor will find it */ + GSet *scenes_rendered = BLI_gset_ptr_new(__func__); for (node = re->scene->nodetree->nodes.first; node; node = node->next) { if (node->type == CMP_NODE_R_LAYERS && (node->flag & NODE_MUTED) == 0) { if (node->id && node->id != (ID *)re->scene) { Scene *scene = (Scene *)node->id; - - if (render_scene_has_layers_to_render(scene, false)) { + if (!BLI_gset_haskey(scenes_rendered, scene) && render_scene_has_layers_to_render(scene, false)) { render_scene(re, scene, cfra); + BLI_gset_add(scenes_rendered, scene); nodeUpdate(restore_scene->nodetree, node); } } } } + BLI_gset_free(scenes_rendered, NULL); } /* bad call... need to think over proper method still */ -- cgit v1.2.3