Skip to content
Snippets Groups Projects
Commit d7cff8f7 authored by Brecht Van Lommel's avatar Brecht Van Lommel
Browse files

Fix T39114: cycles lamp ray visibility not working.

Thanks to Thomas for finding the cause.
parent d7824e43
Branches
Tags
No related merge requests found
...@@ -137,6 +137,8 @@ void Scene::device_update(Device *device_, Progress& progress) ...@@ -137,6 +137,8 @@ void Scene::device_update(Device *device_, Progress& progress)
* - Camera may be used for adapative subdivison. * - Camera may be used for adapative subdivison.
* - Displacement shader must have all shader data available. * - Displacement shader must have all shader data available.
* - Light manager needs lookup tables and final mesh data to compute emission CDF. * - Light manager needs lookup tables and final mesh data to compute emission CDF.
* - Film needs light manager to run for use_light_visibility
* - Lookup tables are done a second time to handle film tables
*/ */
image_manager->set_pack_images(device->info.pack_images); image_manager->set_pack_images(device->info.pack_images);
...@@ -171,11 +173,6 @@ void Scene::device_update(Device *device_, Progress& progress) ...@@ -171,11 +173,6 @@ void Scene::device_update(Device *device_, Progress& progress)
if(progress.get_cancel()) return; 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"); progress.set_status("Updating Lookup Tables");
lookup_tables->device_update(device, &dscene); lookup_tables->device_update(device, &dscene);
...@@ -196,11 +193,21 @@ void Scene::device_update(Device *device_, Progress& progress) ...@@ -196,11 +193,21 @@ void Scene::device_update(Device *device_, Progress& progress)
if(progress.get_cancel()) return; 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"); progress.set_status("Updating Integrator");
integrator->device_update(device, &dscene, this); integrator->device_update(device, &dscene, this);
if(progress.get_cancel()) return; 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"); progress.set_status("Updating Device", "Writing constant memory");
device->const_copy_to("__data", &dscene.data, sizeof(dscene.data)); device->const_copy_to("__data", &dscene.data, sizeof(dscene.data));
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment