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-11-17 17:40:53 +0300
committerJacques Lucke <jacques@blender.org>2021-11-17 17:40:53 +0300
commit00a9617f92fdae6c847575d10fac8a66e8322257 (patch)
tree8b6a74ea59e6453aba0249df93378dae42b0ab43 /source/blender
parent51b8e34fb7a5c2c17b2803d006ab2df1824c59c0 (diff)
Fix: wrong assert in geometry nodes evaluator
It only makes sense to check if all required outputs have been computed if the node was executed at all.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/modifiers/intern/MOD_nodes_evaluator.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
index 70d2bd9c7f5..badd633f648 100644
--- a/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
+++ b/source/blender/modifiers/intern/MOD_nodes_evaluator.cc
@@ -723,7 +723,7 @@ class GeometryNodesEvaluator {
this->execute_node(node, node_state);
}
- this->node_task_postprocessing(node, node_state);
+ this->node_task_postprocessing(node, node_state, do_execute_node);
}
bool node_task_preprocessing(const DNode node, NodeState &node_state)
@@ -1006,7 +1006,7 @@ class GeometryNodesEvaluator {
}
}
- void node_task_postprocessing(const DNode node, NodeState &node_state)
+ void node_task_postprocessing(const DNode node, NodeState &node_state, bool was_executed)
{
this->with_locked_node(node, node_state, [&](LockedNode &locked_node) {
const bool node_has_finished = this->finish_node_if_possible(locked_node);
@@ -1017,8 +1017,9 @@ class GeometryNodesEvaluator {
/* Either the node rescheduled itself or another node tried to schedule it while it ran. */
this->schedule_node(locked_node);
}
-
- this->assert_expected_outputs_have_been_computed(locked_node);
+ if (was_executed) {
+ this->assert_expected_outputs_have_been_computed(locked_node);
+ }
});
}