diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-01-19 17:08:58 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-01-19 17:23:21 +0300 |
commit | 7fd4c440ec2207eb80be13bf14eefa940e39d43e (patch) | |
tree | 79aba07d072455e95ff3467b1e227ff7ee82b51b /intern/cycles/render/scene.cpp | |
parent | 18ae259cc4b60a670f4bf5cbd621bbe420c0c24b (diff) |
Fix T43311: using displacement shader crashes blender
Issue was caused by wrong order of scene device update, which could
lead to missing object flags in shader kernel.
This patch solves a bit more than that making sure objects flags are
always properly updated, so adding/removing volume BSDF will properly
reflect on viewport where camera might become being in volume and so.
Diffstat (limited to 'intern/cycles/render/scene.cpp')
-rw-r--r-- | intern/cycles/render/scene.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/render/scene.cpp index ee7cef1950b..bb7c03cbe6d 100644 --- a/intern/cycles/render/scene.cpp +++ b/intern/cycles/render/scene.cpp @@ -170,8 +170,8 @@ void Scene::device_update(Device *device_, Progress& progress) if(progress.get_cancel() || device->have_error()) return; - progress.set_status("Updating Meshes"); - mesh_manager->device_update(device, &dscene, this, progress); + progress.set_status("Updating Meshes Flags"); + mesh_manager->device_update_flags(device, &dscene, this, progress); if(progress.get_cancel() || device->have_error()) return; @@ -180,6 +180,11 @@ void Scene::device_update(Device *device_, Progress& progress) if(progress.get_cancel() || device->have_error()) return; + progress.set_status("Updating Meshes"); + mesh_manager->device_update(device, &dscene, this, progress); + + if(progress.get_cancel() || device->have_error()) return; + progress.set_status("Updating Hair Systems"); curve_system_manager->device_update(device, &dscene, this, progress); |