Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-03-29 11:07:40 +0300
committerJacques Lucke <jacques@blender.org>2021-03-29 11:14:54 +0300
commitfa1569a072ad78c8a9c037a46a6581692729d6cc (patch)
tree45bcefbb5152e6f6d65ebd6d7a91c70d4a17155b
parent4e34baddb917c1583182ada2fa5c2ce7d9e02486 (diff)
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.
-rw-r--r--source/blender/modifiers/intern/MOD_nodes.cc8
1 files 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);