[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54089] trunk/blender/intern/cycles: Fix cycles crash that happened with mesh emission and diffuse/glossy ray

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Jan 25 03:01:02 CET 2013


Revision: 54089
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54089
Author:   blendix
Date:     2013-01-25 02:00:57 +0000 (Fri, 25 Jan 2013)
Log Message:
-----------
Fix cycles crash that happened with mesh emission and diffuse/glossy ray
visibility disabled on some objects.

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_curves.cpp
    trunk/blender/intern/cycles/render/light.cpp
    trunk/blender/intern/cycles/util/util_task.cpp
    trunk/blender/intern/cycles/util/util_task.h

Modified: trunk/blender/intern/cycles/blender/blender_curves.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_curves.cpp	2013-01-24 21:57:13 UTC (rev 54088)
+++ trunk/blender/intern/cycles/blender/blender_curves.cpp	2013-01-25 02:00:57 UTC (rev 54089)
@@ -1046,8 +1046,6 @@
 				if(mesh->need_attribute(scene, name) || mesh->need_attribute(scene, std)) {
 					Attribute *attr;
 
-					Attribute *attr_uv = NULL, *attr_intercept = NULL;
-	
 					if(active_render)
 						attr = mesh->curve_attributes.add(std, name);
 					else

Modified: trunk/blender/intern/cycles/render/light.cpp
===================================================================
--- trunk/blender/intern/cycles/render/light.cpp	2013-01-24 21:57:13 UTC (rev 54088)
+++ trunk/blender/intern/cycles/render/light.cpp	2013-01-25 02:00:57 UTC (rev 54089)
@@ -198,8 +198,10 @@
 		bool have_emission = false;
 
 		/* skip if we are not visible for BSDFs */
-		if(!(object->visibility & (PATH_RAY_DIFFUSE|PATH_RAY_GLOSSY|PATH_RAY_TRANSMIT)))
+		if(!(object->visibility & (PATH_RAY_DIFFUSE|PATH_RAY_GLOSSY|PATH_RAY_TRANSMIT))) {
+			j++;
 			continue;
+		}
 
 		/* skip if we have no emission shaders */
 		foreach(uint sindex, mesh->used_shaders) {

Modified: trunk/blender/intern/cycles/util/util_task.cpp
===================================================================
--- trunk/blender/intern/cycles/util/util_task.cpp	2013-01-24 21:57:13 UTC (rev 54088)
+++ trunk/blender/intern/cycles/util/util_task.cpp	2013-01-25 02:00:57 UTC (rev 54089)
@@ -152,7 +152,6 @@
 thread_mutex TaskScheduler::mutex;
 int TaskScheduler::users = 0;
 vector<thread*> TaskScheduler::threads;
-vector<int> TaskScheduler::thread_level;
 volatile bool TaskScheduler::do_exit = false;
 
 list<TaskScheduler::Entry> TaskScheduler::queue;
@@ -179,12 +178,9 @@
 
 		/* launch threads that will be waiting for work */
 		threads.resize(num_threads);
-		thread_level.resize(num_threads);
 
-		for(size_t i = 0; i < threads.size(); i++) {
+		for(size_t i = 0; i < threads.size(); i++)
 			threads[i] = new thread(function_bind(&TaskScheduler::thread_run, i));
-			thread_level[i] = 0;
-		}
 	}
 	
 	users++;
@@ -208,7 +204,6 @@
 		}
 
 		threads.clear();
-		thread_level.clear();
 	}
 }
 

Modified: trunk/blender/intern/cycles/util/util_task.h
===================================================================
--- trunk/blender/intern/cycles/util/util_task.h	2013-01-24 21:57:13 UTC (rev 54088)
+++ trunk/blender/intern/cycles/util/util_task.h	2013-01-25 02:00:57 UTC (rev 54089)
@@ -111,7 +111,6 @@
 	static thread_mutex mutex;
 	static int users;
 	static vector<thread*> threads;
-	static vector<int> thread_level;
 	static volatile bool do_exit;
 
 	static list<Entry> queue;




More information about the Bf-blender-cvs mailing list