From 0c52eed863522b4dbac2704e8c88b5c009e886e7 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 20 Oct 2021 14:47:04 +0200 Subject: 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 --- intern/cycles/integrator/path_trace_work_gpu.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'intern/cycles/integrator') 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(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; -- cgit v1.2.3