[Bf-blender-cvs] [fa1569a072a] master: Fix T86966: crash when rendering with geometry nodes

Jacques Lucke noreply at git.blender.org
Mon Mar 29 10:15:01 CEST 2021


Commit: fa1569a072ad78c8a9c037a46a6581692729d6cc
Author: Jacques Lucke
Date:   Mon Mar 29 10:07:40 2021 +0200
Branches: master
https://developer.blender.org/rBfa1569a072ad78c8a9c037a46a6581692729d6cc

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.

===================================================================

M	source/blender/modifiers/intern/MOD_nodes.cc

===================================================================

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);



More information about the Bf-blender-cvs mailing list