diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-07 00:09:46 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2014-02-07 00:10:22 +0400 |
commit | 0f8ad228c38a26f467c3ea5f2932f04247986f9f (patch) | |
tree | ade5ecf450acd3281598db9bb74325aff7f94ef2 /intern/cycles | |
parent | 135e4e69a18220034820a4586be44960be89a639 (diff) |
Fix T38526: crash using blackbody node on background with multiple importance sampling.
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/render/scene.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/render/scene.cpp index da790b6fcc9..71f5a9dafed 100644 --- a/intern/cycles/render/scene.cpp +++ b/intern/cycles/render/scene.cpp @@ -136,7 +136,7 @@ void Scene::device_update(Device *device_, Progress& progress) * - Image manager uploads images used by shaders. * - Camera may be used for adapative subdivison. * - Displacement shader must have all shader data available. - * - Light manager needs final mesh data to compute emission CDF. + * - Light manager needs lookup tables and final mesh data to compute emission CDF. */ image_manager->set_pack_images(device->info.pack_images); @@ -171,6 +171,16 @@ void Scene::device_update(Device *device_, Progress& progress) if(progress.get_cancel()) return; + progress.set_status("Updating Film"); + film->device_update(device, &dscene, this); + + if(progress.get_cancel()) return; + + progress.set_status("Updating Lookup Tables"); + lookup_tables->device_update(device, &dscene); + + if(progress.get_cancel()) return; + progress.set_status("Updating Meshes"); mesh_manager->device_update(device, &dscene, this, progress); @@ -186,21 +196,11 @@ void Scene::device_update(Device *device_, Progress& progress) if(progress.get_cancel()) return; - progress.set_status("Updating Film"); - film->device_update(device, &dscene, this); - - if(progress.get_cancel()) return; - progress.set_status("Updating Integrator"); integrator->device_update(device, &dscene, this); if(progress.get_cancel()) return; - progress.set_status("Updating Lookup Tables"); - lookup_tables->device_update(device, &dscene); - - if(progress.get_cancel()) return; - progress.set_status("Updating Device", "Writing constant memory"); device->const_copy_to("__data", &dscene.data, sizeof(dscene.data)); } |