diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-07-28 13:31:01 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-07-28 13:31:01 +0300 |
commit | 9f18e3acd6bffb15a268e4375394328d9869ac38 (patch) | |
tree | 8bf0e4bb906b3f951002ab219285076f4669969d /intern/cycles | |
parent | d3d1313ca4fff7566d84ba4f3495977791d8c895 (diff) |
Cycles: Fix wrong order of light manager update tag
Shader's has_surface_emission will only be known for sure after compilation.
Diffstat (limited to 'intern/cycles')
-rw-r--r-- | intern/cycles/render/svm.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index f0e7ee2bd49..1a166885e2b 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -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(); |