Cycles: Fix wrong order of light manager update tag
Shader's has_surface_emission will only be known for sure after compilation.
This commit is contained in:
parent
d3d1313ca4
commit
9f18e3acd6
@ -65,20 +65,21 @@ void SVMShaderManager::device_update(Device *device, DeviceScene *dscene, Scene
|
||||
svm_nodes.push_back(make_int4(NODE_SHADER_JUMP, 0, 0, 0));
|
||||
svm_nodes.push_back(make_int4(NODE_SHADER_JUMP, 0, 0, 0));
|
||||
}
|
||||
|
||||
|
||||
foreach(Shader *shader, scene->shaders) {
|
||||
if(progress.get_cancel()) return;
|
||||
|
||||
assert(shader->graph);
|
||||
|
||||
if(shader->use_mis && shader->has_surface_emission)
|
||||
scene->light_manager->need_update = true;
|
||||
|
||||
SVMCompiler::Summary summary;
|
||||
SVMCompiler compiler(scene->shader_manager, scene->image_manager);
|
||||
compiler.background = (shader == scene->default_background);
|
||||
compiler.compile(scene, shader, svm_nodes, shader->id, &summary);
|
||||
|
||||
if(shader->use_mis && shader->has_surface_emission) {
|
||||
scene->light_manager->need_update = true;
|
||||
}
|
||||
|
||||
VLOG(2) << "Compilation summary:\n"
|
||||
<< "Shader name: " << shader->name << "\n"
|
||||
<< summary.full_report();
|
||||
|
Loading…
Reference in New Issue
Block a user