[Bf-blender-cvs] [15fbf32d8f8] cycles-x: Cycles X: restore support for render progress bar percentage

Brecht Van Lommel noreply at git.blender.org
Wed Sep 15 19:25:42 CEST 2021


Commit: 15fbf32d8f8dbeb70b65a1adaf01310c690c27e0
Author: Brecht Van Lommel
Date:   Wed Sep 15 13:25:50 2021 +0200
Branches: cycles-x
https://developer.blender.org/rB15fbf32d8f8dbeb70b65a1adaf01310c690c27e0

Cycles X: restore support for render progress bar percentage

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

M	intern/cycles/integrator/path_trace.cpp
M	intern/cycles/integrator/path_trace.h
M	intern/cycles/render/session.cpp

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

diff --git a/intern/cycles/integrator/path_trace.cpp b/intern/cycles/integrator/path_trace.cpp
index edec956e45d..5ffde894e5f 100644
--- a/intern/cycles/integrator/path_trace.cpp
+++ b/intern/cycles/integrator/path_trace.cpp
@@ -203,7 +203,7 @@ void PathTrace::render_pipeline(RenderWork render_work)
   write_tile_buffer(render_work);
   update_display(render_work);
 
-  progress_update_if_needed();
+  progress_update_if_needed(render_work);
 
   process_full_buffer_from_disk(render_work);
 }
@@ -815,10 +815,14 @@ void PathTrace::read_full_buffer_from_disk()
   }
 }
 
-void PathTrace::progress_update_if_needed()
+void PathTrace::progress_update_if_needed(const RenderWork &render_work)
 {
   if (progress_ != nullptr) {
-    progress_->add_samples(0, get_num_samples_in_buffer());
+    const int2 tile_size = get_render_tile_size();
+    const int num_samples_added = tile_size.x * tile_size.y * render_work.path_trace.num_samples;
+    const int current_sample = render_work.path_trace.start_sample +
+                               render_work.path_trace.num_samples;
+    progress_->add_samples(num_samples_added, current_sample);
   }
 
   if (progress_update_cb) {
diff --git a/intern/cycles/integrator/path_trace.h b/intern/cycles/integrator/path_trace.h
index 7d9c965f067..3e92a819f31 100644
--- a/intern/cycles/integrator/path_trace.h
+++ b/intern/cycles/integrator/path_trace.h
@@ -224,7 +224,7 @@ class PathTrace {
   void read_full_buffer_from_disk();
 
   /* Run the progress_update_cb callback if it is needed. */
-  void progress_update_if_needed();
+  void progress_update_if_needed(const RenderWork &render_work);
 
   /* Pointer to a device which is configured to be used for path tracing. If multiple devices
    * are configured this is a `MultiDevice`. */
diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp
index 71cb3d1eb82..98a5e017ab6 100644
--- a/intern/cycles/render/session.cpp
+++ b/intern/cycles/render/session.cpp
@@ -411,12 +411,8 @@ void Session::do_delayed_reset()
 
   /* Progress. */
   progress.reset_sample();
-
-  /* TODO(sergey): Progress report needs to be worked on. */
-#if 0
-  bool show_progress = params.background || tile_manager_.get_num_effective_samples() != INT_MAX;
-  progress.set_total_pixel_samples(show_progress ? tile_manager_.state.total_pixel_samples : 0);
-#endif
+  progress.set_total_pixel_samples(delayed_reset_.params.width * delayed_reset_.params.height *
+                                   delayed_reset_.samples);
 
   if (!params.background) {
     progress.set_start_time();



More information about the Bf-blender-cvs mailing list