[Bf-blender-cvs] [5daec72808d] cycles-x: Fix empty result on cancel in Cycles X

Sergey Sharybin noreply at git.blender.org
Thu Sep 9 18:26:07 CEST 2021


Commit: 5daec72808dae87f5b408751e4252e38ac5fd486
Author: Sergey Sharybin
Date:   Thu Sep 9 18:15:04 2021 +0200
Branches: cycles-x
https://developer.blender.org/rB5daec72808dae87f5b408751e4252e38ac5fd486

Fix empty result on cancel in Cycles X

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

M	intern/cycles/integrator/render_scheduler.cpp

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

diff --git a/intern/cycles/integrator/render_scheduler.cpp b/intern/cycles/integrator/render_scheduler.cpp
index 9ef8a795afb..d996aefa766 100644
--- a/intern/cycles/integrator/render_scheduler.cpp
+++ b/intern/cycles/integrator/render_scheduler.cpp
@@ -227,9 +227,19 @@ void RenderScheduler::render_work_reschedule_on_cancel(RenderWork &render_work)
   /* Un-schedule samples: they will not be rendered and should not be counted. */
   state_.num_rendered_samples -= render_work.path_trace.num_samples;
 
+  const bool has_rendered_samples = get_num_rendered_samples() != 0;
+
+  /* Reset all fields of the previous work, canelling things like adaptive sampling filtering and
+   * denoising.
+   * However, need to preserve write requests, since those will not be possible to recover and
+   * writes are only to happen once. */
+  const bool tile_write = render_work.tile.write;
+  const bool full_write = render_work.full.write;
+
   render_work = RenderWork();
 
-  const bool has_rendered_samples = get_num_rendered_samples() != 0;
+  render_work.tile.write = tile_write;
+  render_work.full.write = full_write;
 
   /* Do not write tile if it has zero samples it it, treat it similarly to all other tiles which
    * got cancelled. */



More information about the Bf-blender-cvs mailing list