Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2014-02-07 00:09:46 +0400
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2014-02-07 00:10:22 +0400
commit0f8ad228c38a26f467c3ea5f2932f04247986f9f (patch)
treeade5ecf450acd3281598db9bb74325aff7f94ef2 /intern
parent135e4e69a18220034820a4586be44960be89a639 (diff)
Fix T38526: crash using blackbody node on background with multiple importance sampling.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/render/scene.cpp22
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));
}