diff options
Diffstat (limited to 'source/blender/nodes/texture/node_texture_tree.c')
-rw-r--r-- | source/blender/nodes/texture/node_texture_tree.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/nodes/texture/node_texture_tree.c b/source/blender/nodes/texture/node_texture_tree.c index 78792956684..5e5d44540dc 100644 --- a/source/blender/nodes/texture/node_texture_tree.c +++ b/source/blender/nodes/texture/node_texture_tree.c @@ -232,8 +232,15 @@ int ntreeTexExecTree( data.mtex= mtex; data.shi= shi; - if (!exec) - exec = ntreeTexBeginExecTree(nodes, 1); + /* ensure execdata is only initialized once */ + if (!exec) { + BLI_lock_thread(LOCK_NODES); + if(!nodes->execdata) + ntreeTexBeginExecTree(nodes, 1); + BLI_unlock_thread(LOCK_NODES); + + exec= nodes->execdata; + } nts= ntreeGetThreadStack(exec, thread); ntreeExecThreadNodes(exec, nts, &data, thread); |