diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-04-05 15:57:54 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-04-05 15:57:54 +0300 |
commit | 52029e689ceb9fec0a873d6ed3d0c036d58be8cd (patch) | |
tree | d22cdc69d4226e0a3e19440d9e001a4a7c38c249 /intern | |
parent | 3ce30823ffadcf208ecd353a8541f7f86d85d91e (diff) |
Cycles: Fix race condition in attributes creation during SVM compilation
Diffstat (limited to 'intern')
-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 |