[Bf-blender-cvs] [50c129760d0] master: Fix Cycles showing empty tiles while they are being denoised.

Brecht Van Lommel noreply at git.blender.org
Thu Nov 2 15:24:02 CET 2017


Commit: 50c129760d0a32802a8b83a1d977a80c42210c00
Author: Brecht Van Lommel
Date:   Thu Nov 2 15:05:57 2017 +0100
Branches: master
https://developer.blender.org/rB50c129760d0a32802a8b83a1d977a80c42210c00

Fix Cycles showing empty tiles while they are being denoised.

===================================================================

M	intern/cycles/blender/blender_session.cpp
M	source/blender/render/intern/source/external_engine.c

===================================================================

diff --git a/intern/cycles/blender/blender_session.cpp b/intern/cycles/blender/blender_session.cpp
index 73383ad5080..d9301125641 100644
--- a/intern/cycles/blender/blender_session.cpp
+++ b/intern/cycles/blender/blender_session.cpp
@@ -330,20 +330,20 @@ void BlenderSession::do_write_update_render_tile(RenderTile& rtile, bool do_upda
 	BL::RenderLayer b_rlay = *b_single_rlay;
 
 	if(do_update_only) {
-		/* update only needed */
+		/* Sample would be zero at initial tile update, which is only needed
+		 * to tag tile form blender side as IN PROGRESS for proper highlight
+		 * no buffers should be sent to blender yet. For denoise we also
+		 * keep showing the noisy buffers until denoise is done. */
+		bool merge = (rtile.sample != 0) && (rtile.task != RenderTile::DENOISE);
 
-		if(rtile.sample != 0) {
-			/* sample would be zero at initial tile update, which is only needed
-			 * to tag tile form blender side as IN PROGRESS for proper highlight
-			 * no buffers should be sent to blender yet
-			 */
+		if(merge) {
 			update_render_result(b_rr, b_rlay, rtile);
 		}
 
-		end_render_result(b_engine, b_rr, true, highlight, false);
+		end_render_result(b_engine, b_rr, true, highlight, merge);
 	}
 	else {
-		/* write result */
+		/* Write final render result. */
 		write_render_result(b_rr, b_rlay, rtile);
 		end_render_result(b_engine, b_rr, false, false, true);
 	}
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index b1cd23d0827..8764abf9674 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -273,7 +273,7 @@ void RE_engine_end_result(RenderEngine *engine, RenderResult *result, int cancel
 		RenderPart *pa = get_part_from_result(re, result);
 
 		if (pa) {
-			pa->status = (merge_results)? PART_STATUS_MERGED: PART_STATUS_RENDERED;
+			pa->status = (!cancel && merge_results)? PART_STATUS_MERGED: PART_STATUS_RENDERED;
 		}
 		else if (re->result->do_exr_tile) {
 			/* if written result does not match any tile and we are using save



More information about the Bf-blender-cvs mailing list