Fix T71123: OptiX error in Cycles viewport when adding HDRI
Cycles did not update the "is_enabled" flag on lights when they were synchronized again, which caused all lights disabled by "LightManager::disable_ineffective_light" to be disabled indefinitely. As a result the OptiX kernels were not reloaded with correct features when a change to a light was made. This fixes that by updating the "is_enabled" flag during synchronization. Differential Revision: https://developer.blender.org/D6141
This commit is contained in:
@@ -221,13 +221,11 @@ void LightManager::disable_ineffective_light(Scene *scene)
|
||||
*/
|
||||
Shader *shader = (scene->background->shader) ? scene->background->shader :
|
||||
scene->default_background;
|
||||
bool disable_mis = !(has_portal || shader->has_surface_spatial_varying);
|
||||
if (disable_mis) {
|
||||
VLOG(1) << "Background MIS has been disabled.\n";
|
||||
foreach (Light *light, scene->lights) {
|
||||
if (light->type == LIGHT_BACKGROUND) {
|
||||
light->is_enabled = false;
|
||||
}
|
||||
const bool disable_mis = !(has_portal || shader->has_surface_spatial_varying);
|
||||
VLOG_IF(1, disable_mis) << "Background MIS has been disabled.\n";
|
||||
foreach (Light *light, scene->lights) {
|
||||
if (light->type == LIGHT_BACKGROUND) {
|
||||
light->is_enabled = !disable_mis;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user