From fa1569a072ad78c8a9c037a46a6581692729d6cc Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Mon, 29 Mar 2021 10:07:40 +0200 Subject: Fix T86966: crash when rendering with geometry nodes UI hints should only be modified when the depsgraph is active. Otherwise two threads evaluating the same object in different depsgraphs can conflict with each other. --- source/blender/modifiers/intern/MOD_nodes.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc index 6236dc87791..d2fb2e0260c 100644 --- a/source/blender/modifiers/intern/MOD_nodes.cc +++ b/source/blender/modifiers/intern/MOD_nodes.cc @@ -414,7 +414,9 @@ class GeometryNodesEvaluator { { const bNode &bnode = params.node(); - this->store_ui_hints(node, params); + if (DEG_is_active(depsgraph_)) { + this->store_ui_hints(node, params); + } /* Use the geometry-node-execute callback if it exists. */ if (bnode.typeinfo->geometry_node_execute != nullptr) { @@ -1197,7 +1199,9 @@ static void modifyGeometry(ModifierData *md, return; } - reset_tree_ui_storage(tree.used_node_tree_refs(), *ctx->object, *md); + if (DEG_is_active(ctx->depsgraph)) { + reset_tree_ui_storage(tree.used_node_tree_refs(), *ctx->object, *md); + } geometry_set = compute_geometry( tree, group_inputs, *group_outputs[0], std::move(geometry_set), nmd, ctx); -- cgit v1.2.3