Cycles/OpenCL: Compile Kernels During Scene Update
authorJeroen Bakker <j.bakker@atmind.nl>
Wed, 13 Mar 2019 11:31:48 +0000 (12:31 +0100)
committerJeroen Bakker <j.bakker@atmind.nl>
Fri, 15 Mar 2019 15:18:21 +0000 (16:18 +0100)
commit2f6257fd7fe305e3b226a8b505eb614bbeaf762a
treefba47f34d5bc5f10d50be92e5dd8b14fa9ecc9a9
parent62377431114411c50ededadf98fda284ec4061c5
Cycles/OpenCL: Compile Kernels During Scene Update

The main goals of this change is faster starting when using foreground
rendering.

This patch will build kernels in parallel to the update process of
the scene. When these optimized kernels are not available (yet) an AO
kernel will be used.

These AO kernels are fast to compile (3-7 seconds) and can be
reused by all scenes. When the final kernels become available we
will switch to these kernels.

In background mode the AO kernels will not be used.
Some kernels are being used during Scene update (displace, background
light). When these kernels are being used the process can halt until
these become available.

Reviewed By: brecht, #cycles

Maniphest Tasks: T61752

Differential Revision: https://developer.blender.org/D4428
13 files changed:
intern/cycles/blender/blender_session.cpp
intern/cycles/blender/blender_session.h
intern/cycles/device/device.h
intern/cycles/device/device_multi.cpp
intern/cycles/device/opencl/opencl.h
intern/cycles/device/opencl/opencl_split.cpp
intern/cycles/device/opencl/opencl_util.cpp
intern/cycles/kernel/kernel_types.h
intern/cycles/render/session.cpp
intern/cycles/render/session.h
intern/cycles/util/util_progress.h
intern/cycles/util/util_task.cpp
intern/cycles/util/util_task.h