diff options
Diffstat (limited to 'intern/cycles/device')
-rw-r--r-- | intern/cycles/device/CMakeLists.txt | 1 | ||||
-rw-r--r-- | intern/cycles/device/device.h | 4 | ||||
-rw-r--r-- | intern/cycles/device/device_optix.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/device/opencl/device_opencl_impl.cpp | 8 |
4 files changed, 9 insertions, 6 deletions
diff --git a/intern/cycles/device/CMakeLists.txt b/intern/cycles/device/CMakeLists.txt index ca366722eb7..466872e0557 100644 --- a/intern/cycles/device/CMakeLists.txt +++ b/intern/cycles/device/CMakeLists.txt @@ -67,6 +67,7 @@ set(LIB cycles_render cycles_kernel cycles_util + ${BLENDER_GL_LIBRARIES} ) if(WITH_CUDA_DYNLOAD) diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h index 115b05e3911..58472f645e0 100644 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@ -180,7 +180,6 @@ class DeviceRequestedFeatures { DeviceRequestedFeatures() { /* TODO(sergey): Find more meaningful defaults. */ - experimental = false; max_nodes_group = 0; nodes_features = 0; use_hair = false; @@ -203,8 +202,7 @@ class DeviceRequestedFeatures { bool modified(const DeviceRequestedFeatures &requested_features) { - return !(experimental == requested_features.experimental && - max_nodes_group == requested_features.max_nodes_group && + return !(max_nodes_group == requested_features.max_nodes_group && nodes_features == requested_features.nodes_features && use_hair == requested_features.use_hair && use_hair_thick == requested_features.use_hair_thick && diff --git a/intern/cycles/device/device_optix.cpp b/intern/cycles/device/device_optix.cpp index 1cc45983565..43b1fb30baf 100644 --- a/intern/cycles/device/device_optix.cpp +++ b/intern/cycles/device/device_optix.cpp @@ -1389,7 +1389,7 @@ class OptiXDevice : public CUDADevice { return false; } } - else if (geom->type == Geometry::MESH) { + else if (geom->type == Geometry::MESH || geom->type == Geometry::VOLUME) { // Build BLAS for triangle primitives Mesh *const mesh = static_cast<Mesh *const>(ob->geometry); if (mesh->num_triangles() == 0) { diff --git a/intern/cycles/device/opencl/device_opencl_impl.cpp b/intern/cycles/device/opencl/device_opencl_impl.cpp index e851749949d..f0683d12f1f 100644 --- a/intern/cycles/device/opencl/device_opencl_impl.cpp +++ b/intern/cycles/device/opencl/device_opencl_impl.cpp @@ -864,6 +864,11 @@ void OpenCLDevice::load_preview_kernels() bool OpenCLDevice::wait_for_availability(const DeviceRequestedFeatures &requested_features) { + if (requested_features.use_baking) { + /* For baking, kernels have already been loaded in load_required_kernels(). */ + return true; + } + if (background) { load_kernel_task_pool.wait_work(); use_preview_kernels = false; @@ -1933,13 +1938,12 @@ void OpenCLDevice::bake(DeviceTask &task, RenderTile &rtile) kernel_set_args(kernel, start_arg_index, sample); enqueue_kernel(kernel, d_w, d_h); + clFinish(cqCommandQueue); rtile.sample = sample + 1; task.update_progress(&rtile, rtile.w * rtile.h); } - - clFinish(cqCommandQueue); } static bool kernel_build_opencl_2(cl_device_id cdDevice) |