From e2d7bd199e67250e5bc1b18d8f1151df81c5c39f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 15 Mar 2024 15:24:33 +0100 Subject: [PATCH] Fix #119427: UI: The Metadata is gone for the rendered image This is a regression since d579ac2b3f Ensure that the image buffers used by render passes have metadata at the end of render, similarly to how stamping happens. This solves the reported issue, and makes the metadata behave consistently, independent on how the image buffer is accessed. Thanks Philipp Oeser for investigation and pin-pointing the bad commit! Pull Request: https://projects.blender.org/blender/blender/pulls/119503 --- source/blender/render/intern/pipeline.cc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/source/blender/render/intern/pipeline.cc b/source/blender/render/intern/pipeline.cc index ebe4a65c13d..93b3b20b0de 100644 --- a/source/blender/render/intern/pipeline.cc +++ b/source/blender/render/intern/pipeline.cc @@ -1328,6 +1328,23 @@ static void do_render_compositor(Render *re) } } +static void renderresult_set_passes_metadata(Render *re) +{ + RenderResult *render_result = re->result; + + BLI_rw_mutex_lock(&re->resultmutex, THREAD_LOCK_WRITE); + + LISTBASE_FOREACH (RenderLayer *, render_layer, &render_result->layers) { + LISTBASE_FOREACH_BACKWARD (RenderPass *, render_pass, &render_layer->passes) { + if (render_pass->ibuf) { + BKE_imbuf_stamp_info(render_result, render_pass->ibuf); + } + } + } + + BLI_rw_mutex_unlock(&re->resultmutex); +} + static void renderresult_stampinfo(Render *re) { RenderResult rres; @@ -1525,6 +1542,8 @@ static void do_render_full_pipeline(Render *re) BKE_render_result_stamp_info(re->scene, ob_camera_eval, re->result, false); } + renderresult_set_passes_metadata(re); + /* stamp image info here */ if ((re->r.stamp & R_STAMP_ALL) && (re->r.stamp & R_STAMP_DRAW)) { renderresult_stampinfo(re);