diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-02-21 20:04:02 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-02-21 20:04:02 +0300 |
commit | d6b5ee99fed2d579f0b561e98cf5eaca4304fea6 (patch) | |
tree | 98eeee99566a3727a7db3effccd855a835d18952 /intern | |
parent | 1de1cedf4c2fe3dc460267ea3134f17df508b7d9 (diff) | |
parent | f1304c973f5eef5169e09d30c0dba82cc7e4c4a1 (diff) |
Merge branch 'blender2.7'
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/blender/blender_object.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/device/opencl/opencl_split.cpp | 1 | ||||
-rw-r--r-- | intern/cycles/render/session.cpp | 9 |
3 files changed, 8 insertions, 4 deletions
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index 37fea2417ba..e55023c5400 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -461,7 +461,7 @@ Object *BlenderSync::sync_object(BL::Depsgraph& b_depsgraph, uint motion_steps; - if(scene->need_motion() == Scene::MOTION_BLUR) { + if(need_motion == Scene::MOTION_BLUR) { motion_steps = object_motion_steps(b_parent, b_ob); mesh->motion_steps = motion_steps; if(motion_steps && object_use_deform_motion(b_parent, b_ob)) { diff --git a/intern/cycles/device/opencl/opencl_split.cpp b/intern/cycles/device/opencl/opencl_split.cpp index 8c8c93b75a2..be408e92520 100644 --- a/intern/cycles/device/opencl/opencl_split.cpp +++ b/intern/cycles/device/opencl/opencl_split.cpp @@ -591,6 +591,7 @@ bool OpenCLDevice::load_kernels(const DeviceRequestedFeatures& requested_feature denoising_program = OpenCLProgram(this, "denoising", "filter.cl", ""); denoising_program.add_kernel(ustring("filter_divide_shadow")); denoising_program.add_kernel(ustring("filter_get_feature")); + denoising_program.add_kernel(ustring("filter_write_feature")); denoising_program.add_kernel(ustring("filter_detect_outliers")); denoising_program.add_kernel(ustring("filter_combine_halves")); denoising_program.add_kernel(ustring("filter_construct_transform")); diff --git a/intern/cycles/render/session.cpp b/intern/cycles/render/session.cpp index 3283427011e..c6fe5d7c5f2 100644 --- a/intern/cycles/render/session.cpp +++ b/intern/cycles/render/session.cpp @@ -666,16 +666,19 @@ DeviceRequestedFeatures Session::get_requested_device_features() /* This features are not being tweaked as often as shaders, * so could be done selective magic for the viewport as well. */ + bool use_motion = scene->need_motion() == Scene::MotionType::MOTION_BLUR; requested_features.use_hair = false; requested_features.use_object_motion = false; - requested_features.use_camera_motion = scene->camera->use_motion(); + requested_features.use_camera_motion = use_motion && scene->camera->use_motion(); foreach(Object *object, scene->objects) { Mesh *mesh = object->mesh; if(mesh->num_curves()) { requested_features.use_hair = true; } - requested_features.use_object_motion |= object->use_motion() | mesh->use_motion_blur; - requested_features.use_camera_motion |= mesh->use_motion_blur; + if (use_motion) { + requested_features.use_object_motion |= object->use_motion() | mesh->use_motion_blur; + requested_features.use_camera_motion |= mesh->use_motion_blur; + } #ifdef WITH_OPENSUBDIV if(mesh->subdivision_type != Mesh::SUBDIVISION_NONE) { requested_features.use_patch_evaluation = true; |