[Bf-blender-cvs] [2cae58524c] master: Cycles: Improve memory usage of CPU split kernel by using smaller global size

Mai Lavelle noreply at git.blender.org
Fri Mar 17 06:54:49 CET 2017


Commit: 2cae58524cccd9bea0c5b876c21bc8177bd23a43
Author: Mai Lavelle
Date:   Fri Mar 17 01:31:11 2017 -0400
Branches: master
https://developer.blender.org/rB2cae58524cccd9bea0c5b876c21bc8177bd23a43

Cycles: Improve memory usage of CPU split kernel by using smaller global size

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

M	intern/cycles/device/device_cpu.cpp
M	intern/cycles/device/device_split_kernel.cpp

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

diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp
index 273c3b4893..2fc2745a3a 100644
--- a/intern/cycles/device/device_cpu.cpp
+++ b/intern/cycles/device/device_cpu.cpp
@@ -856,8 +856,7 @@ int2 CPUSplitKernel::split_kernel_local_size()
 }
 
 int2 CPUSplitKernel::split_kernel_global_size(device_memory& /*kg*/, device_memory& /*data*/, DeviceTask *task) {
-	/* TODO(mai): this needs investigation but cpu gives incorrect render if global size doesnt match tile size */
-	return task->requested_tile_size;
+	return make_int2(64, 1);
 }
 
 uint64_t CPUSplitKernel::state_buffer_size(device_memory& kernel_globals, device_memory& /*data*/, size_t num_threads) {
diff --git a/intern/cycles/device/device_split_kernel.cpp b/intern/cycles/device/device_split_kernel.cpp
index 8925ef47b2..7a4d8c419b 100644
--- a/intern/cycles/device/device_split_kernel.cpp
+++ b/intern/cycles/device/device_split_kernel.cpp
@@ -142,6 +142,7 @@ bool DeviceSplitKernel::path_trace(DeviceTask *task,
 
 	/* Number of elements in the global state buffer */
 	int num_global_elements = global_size[0] * global_size[1];
+	assert(num_global_elements % WORK_POOL_SIZE == 0);
 
 	/* Allocate all required global memory once. */
 	if(first_tile) {




More information about the Bf-blender-cvs mailing list