[Bf-blender-cvs] [9f18e3a] master: Cycles: Fix wrong order of light manager update tag

Sergey Sharybin noreply at git.blender.org
Thu Jul 28 12:51:47 CEST 2016


Commit: 9f18e3acd6bffb15a268e4375394328d9869ac38
Author: Sergey Sharybin
Date:   Thu Jul 28 12:31:01 2016 +0200
Branches: master
https://developer.blender.org/rB9f18e3acd6bffb15a268e4375394328d9869ac38

Cycles: Fix wrong order of light manager update tag

Shader's has_surface_emission will only be known for sure after compilation.

===================================================================

M	intern/cycles/render/svm.cpp

===================================================================

diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp
index f0e7ee2..1a16688 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();




More information about the Bf-blender-cvs mailing list