diff options
-rw-r--r-- | intern/cycles/render/svm.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/render/svm.h | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/intern/cycles/render/svm.cpp b/intern/cycles/render/svm.cpp index 48287d872d4..9cf3f4cb0b2 100644 --- a/intern/cycles/render/svm.cpp +++ b/intern/cycles/render/svm.cpp @@ -393,11 +393,13 @@ void SVMCompiler::add_node(const float4& f) uint SVMCompiler::attribute(ustring name) { + thread_scoped_spin_lock lock(attribute_lock_); return shader_manager->get_attribute_id(name); } uint SVMCompiler::attribute(AttributeStandard std) { + thread_scoped_spin_lock lock(attribute_lock_); return shader_manager->get_attribute_id(std); } diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h index abbd9e50610..eef344a506e 100644 --- a/intern/cycles/render/svm.h +++ b/intern/cycles/render/svm.h @@ -218,6 +218,8 @@ protected: int max_stack_use; uint mix_weight_offset; bool compile_failed; + + thread_spin_lock attribute_lock_; }; CCL_NAMESPACE_END |