diff options
Diffstat (limited to 'intern/cycles/device/opencl/opencl_base.cpp')
-rw-r--r-- | intern/cycles/device/opencl/opencl_base.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/intern/cycles/device/opencl/opencl_base.cpp b/intern/cycles/device/opencl/opencl_base.cpp index 1e8fd26b5e9..025a61c8e27 100644 --- a/intern/cycles/device/opencl/opencl_base.cpp +++ b/intern/cycles/device/opencl/opencl_base.cpp @@ -212,6 +212,11 @@ bool OpenCLDeviceBase::load_kernels(const DeviceRequestedFeatures& requested_fea /* Call actual class to fill the vector with its programs. */ load_kernels(requested_features, programs); + /* Parallel compilation is supported by Cycles, but currently all OpenCL frameworks + * serialize the calls internally, so it's not much use right now. + * Note: When enabling parallel compilation, use_stdout in the OpenCLProgram constructor + * should be set to false as well. */ +#if 0 TaskPool task_pool; foreach(OpenCLProgram *program, programs) { task_pool.push(function_bind(&OpenCLProgram::load, program)); @@ -225,6 +230,11 @@ bool OpenCLDeviceBase::load_kernels(const DeviceRequestedFeatures& requested_fea return false; } } +#else + foreach(OpenCLProgram *program, programs) { + program->load(); + } +#endif return true; } |