[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45891] trunk/blender/intern/cycles: Fix #31065: cycles render crash with large node groups, increased the stack

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Apr 23 20:15:39 CEST 2012


Revision: 45891
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45891
Author:   blendix
Date:     2012-04-23 18:15:38 +0000 (Mon, 23 Apr 2012)
Log Message:
-----------
Fix #31065: cycles render crash with large node groups, increased the stack
size now, this seems to work well after some testing.
Fix: material override not working on objects without a material assigned.

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_mesh.cpp
    trunk/blender/intern/cycles/kernel/svm/svm_types.h

Modified: trunk/blender/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_mesh.cpp	2012-04-23 17:33:12 UTC (rev 45890)
+++ trunk/blender/intern/cycles/blender/blender_mesh.cpp	2012-04-23 18:15:38 UTC (rev 45891)
@@ -227,6 +227,7 @@
 	/* test if we can instance or if the object is modified */
 	BL::ID b_ob_data = b_ob.data();
 	BL::ID key = (object_is_modified(b_ob) || holdout)? b_ob: b_ob_data;
+	BL::Material material_override = render_layer.material_override;
 
 	/* find shader indices */
 	vector<uint> used_shaders;
@@ -246,6 +247,8 @@
 	if(used_shaders.size() == 0) {
 		if(holdout)
 			used_shaders.push_back(scene->default_holdout);
+		else if(material_override)
+			find_shader(material_override, used_shaders, scene->default_surface);
 		else
 			used_shaders.push_back(scene->default_surface);
 	}

Modified: trunk/blender/intern/cycles/kernel/svm/svm_types.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_types.h	2012-04-23 17:33:12 UTC (rev 45890)
+++ trunk/blender/intern/cycles/kernel/svm/svm_types.h	2012-04-23 18:15:38 UTC (rev 45891)
@@ -24,7 +24,7 @@
 /* Stack */
 
 /* SVM stack has a fixed size */
-#define SVM_STACK_SIZE 64
+#define SVM_STACK_SIZE 255
 /* SVM stack offsets with this value indicate that it's not on the stack */
 #define SVM_STACK_INVALID 255 
 




More information about the Bf-blender-cvs mailing list