Fix Cycles showing empty tiles while they are being denoised.
This commit is contained in:
		@@ -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);
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user