From c14706e5c900d8fe8f7a2994fe0454b7a2a5ffdf Mon Sep 17 00:00:00 2001 From: Omar Emara Date: Mon, 10 Mar 2025 12:31:00 +0100 Subject: [PATCH] Fix #135647: Compositor viewer doesn't update on render Since the introduction of e53ac805af, viewer and previews were not computed when rendering, because we assumed those would only be useful during interactive compositing. But we received multiple reports that this is broken. So users generally expect rendering to compute viewers and previews. This patch makes a distinction between background rendering and F12 renders, where the latter computes viewer and previews. This should not have significant effect on the render time, because typically viewer results are already computed as part of computing composite results. Pull Request: https://projects.blender.org/blender/blender/pulls/135723 --- source/blender/render/intern/pipeline.cc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source/blender/render/intern/pipeline.cc b/source/blender/render/intern/pipeline.cc index 519b3ade548..af51b702ef2 100644 --- a/source/blender/render/intern/pipeline.cc +++ b/source/blender/render/intern/pipeline.cc @@ -1373,6 +1373,14 @@ static void do_render_compositor(Render *re) /* If we have consistent depsgraph now would be a time to update them. */ } + blender::compositor::OutputTypes needed_outputs = + blender::compositor::OutputTypes::Composite | + blender::compositor::OutputTypes::FileOutput; + if (!G.background) { + needed_outputs |= blender::compositor::OutputTypes::Viewer | + blender::compositor::OutputTypes::Previews; + } + blender::compositor::RenderContext compositor_render_context; LISTBASE_FOREACH (RenderView *, rv, &re->result->views) { COM_execute(re, @@ -1382,8 +1390,7 @@ static void do_render_compositor(Render *re) rv->name, &compositor_render_context, nullptr, - blender::compositor::OutputTypes::Composite | - blender::compositor::OutputTypes::FileOutput); + needed_outputs); } compositor_render_context.save_file_outputs(re->pipeline_scene_eval);