diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-04-23 22:15:38 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-04-23 22:15:38 +0400 |
commit | 95432a2a2bc371eab628e7846bb5736f236d0efe (patch) | |
tree | b96442ecf4343f8d606f9b58b95e473b019ba267 | |
parent | fb6ee37aa2c4419901e5a9b52393a4edfa4735be (diff) |
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.
-rw-r--r-- | intern/cycles/blender/blender_mesh.cpp | 3 | ||||
-rw-r--r-- | intern/cycles/kernel/svm/svm_types.h | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index 7c8d36ab574..7caa6b3d511 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -227,6 +227,7 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool holdout, bool object_updated) /* 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 @@ Mesh *BlenderSync::sync_mesh(BL::Object b_ob, bool holdout, bool object_updated) 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); } diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 13d72307765..68eb39bdd29 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -24,7 +24,7 @@ CCL_NAMESPACE_BEGIN /* 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 |