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 /source/blender/modifiers/intern/MOD_nodes.cc
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.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_nodes.cc')
-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);