[Bf-blender-cvs] [0bdc814dae7] cycles-x: Fix wrong number of integrator kernels

Sergey Sharybin noreply at git.blender.org
Wed Apr 28 19:22:16 CEST 2021


Commit: 0bdc814dae712747e50da50b4f8bb6ae519d031b
Author: Sergey Sharybin
Date:   Wed Apr 28 19:03:10 2021 +0200
Branches: cycles-x
https://developer.blender.org/rB0bdc814dae712747e50da50b4f8bb6ae519d031b

Fix wrong number of integrator kernels

The value was off-by-one, causing buffer overflow on accessing the queue
counters.

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

M	intern/cycles/integrator/path_trace_work_gpu.cpp
M	intern/cycles/kernel/kernel_types.h

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

diff --git a/intern/cycles/integrator/path_trace_work_gpu.cpp b/intern/cycles/integrator/path_trace_work_gpu.cpp
index d01215b70f6..3590a788529 100644
--- a/intern/cycles/integrator/path_trace_work_gpu.cpp
+++ b/intern/cycles/integrator/path_trace_work_gpu.cpp
@@ -213,7 +213,7 @@ bool PathTraceWorkGPU::enqueue_path_iteration()
 
   /* Find kernel to execute, with max number of queued paths. */
   int max_num_queued = 0;
-  DeviceKernel kernel = DEVICE_KERNEL_INTEGRATOR_NUM;
+  DeviceKernel kernel = DEVICE_KERNEL_NUM;
 
   for (int i = 0; i < DEVICE_KERNEL_INTEGRATOR_NUM; i++) {
     if (queue_counter->num_queued[i] > max_num_queued) {
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index fb1d03f0a3d..9c919571437 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -1558,7 +1558,6 @@ typedef enum DeviceKernel {
   DEVICE_KERNEL_INTEGRATOR_SHADE_VOLUME,
   DEVICE_KERNEL_INTEGRATOR_SHADE_SHADOW,
   DEVICE_KERNEL_INTEGRATOR_MEGAKERNEL,
-  DEVICE_KERNEL_INTEGRATOR_NUM = DEVICE_KERNEL_INTEGRATOR_MEGAKERNEL,
 
   DEVICE_KERNEL_INTEGRATOR_QUEUED_PATHS_ARRAY,
   DEVICE_KERNEL_INTEGRATOR_QUEUED_SHADOW_PATHS_ARRAY,
@@ -1583,4 +1582,8 @@ typedef enum DeviceKernel {
   DEVICE_KERNEL_NUM,
 } DeviceKernel;
 
+enum {
+  DEVICE_KERNEL_INTEGRATOR_NUM = DEVICE_KERNEL_INTEGRATOR_MEGAKERNEL + 1,
+};
+
 CCL_NAMESPACE_END



More information about the Bf-blender-cvs mailing list