Fix Cycles showing empty tiles while they are being denoised.

This commit is contained in:
2017-11-02 15:05:57 +01:00
parent 25f2abf314
commit 50c129760d
2 changed files with 9 additions and 9 deletions

View File

@@ -330,20 +330,20 @@ void BlenderSession::do_write_update_render_tile(RenderTile& rtile, bool do_upda
BL::RenderLayer b_rlay = *b_single_rlay; BL::RenderLayer b_rlay = *b_single_rlay;
if(do_update_only) { if(do_update_only) {
/* update only needed */ /* Sample would be zero at initial tile update, which is only needed
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 * to tag tile form blender side as IN PROGRESS for proper highlight
* no buffers should be sent to blender yet * 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(merge) {
update_render_result(b_rr, b_rlay, rtile); 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 { else {
/* write result */ /* Write final render result. */
write_render_result(b_rr, b_rlay, rtile); write_render_result(b_rr, b_rlay, rtile);
end_render_result(b_engine, b_rr, false, false, true); end_render_result(b_engine, b_rr, false, false, true);
} }

View File

@@ -273,7 +273,7 @@ void RE_engine_end_result(RenderEngine *engine, RenderResult *result, int cancel
RenderPart *pa = get_part_from_result(re, result); RenderPart *pa = get_part_from_result(re, result);
if (pa) { 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) { else if (re->result->do_exr_tile) {
/* if written result does not match any tile and we are using save /* if written result does not match any tile and we are using save