[Bf-blender-cvs] [0c52eed8635] master: Cycles: more accurately count main paths for adding work tiles

Brecht Van Lommel noreply at git.blender.org
Wed Oct 20 17:50:41 CEST 2021


Commit: 0c52eed863522b4dbac2704e8c88b5c009e886e7
Author: Brecht Van Lommel
Date:   Wed Oct 20 14:47:04 2021 +0200
Branches: master
https://developer.blender.org/rB0c52eed863522b4dbac2704e8c88b5c009e886e7

Cycles: more accurately count main paths for adding work tiles

Easy now thanks to the main and shadow path decoupling. Doesn't help
in an benchmark scene except Spring, where it reduces render time by
maybe 2-3%.

Ref T87836

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

M	intern/cycles/integrator/path_trace_work_gpu.cpp

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

diff --git a/intern/cycles/integrator/path_trace_work_gpu.cpp b/intern/cycles/integrator/path_trace_work_gpu.cpp
index f898f3fce81..2c71b1cf876 100644
--- a/intern/cycles/integrator/path_trace_work_gpu.cpp
+++ b/intern/cycles/integrator/path_trace_work_gpu.cpp
@@ -731,7 +731,6 @@ void PathTraceWorkGPU::enqueue_work_tiles(DeviceKernel kernel,
 
 int PathTraceWorkGPU::num_active_main_paths_paths()
 {
-  /* TODO: this is wrong, does not account for duplicates with shadow! */
   IntegratorQueueCounter *queue_counter = integrator_queue_counter_.data();
 
   int num_paths = 0;
@@ -739,7 +738,10 @@ int PathTraceWorkGPU::num_active_main_paths_paths()
     DCHECK_GE(queue_counter->num_queued[i], 0)
         << "Invalid number of queued states for kernel "
         << device_kernel_as_string(static_cast<DeviceKernel>(i));
-    num_paths += queue_counter->num_queued[i];
+
+    if (!kernel_is_shadow_path((DeviceKernel)i)) {
+      num_paths += queue_counter->num_queued[i];
+    }
   }
 
   return num_paths;



More information about the Bf-blender-cvs mailing list