Depsgraph: Clear operation evaluation flags early on

The goal is to make it possible to evaluate the graph in multiple
passes without evaluating the same node multiple times.

Currently should not be any functional changes.
This commit is contained in:
Sergey Sharybin 2022-07-20 09:59:33 +02:00
parent d6faee2824
commit 4089b7b80b
1 changed files with 6 additions and 0 deletions

View File

@ -101,6 +101,12 @@ void evaluate_node(const DepsgraphEvalState *state, OperationNode *operation_nod
else {
operation_node->evaluate(depsgraph);
}
/* Clear the flag early on, allowing partial updates without re-evaluating the same node multiple
* times.
* This is a thread-safe modification as the node's flags are only read for a non-scheduled nodes
* and this node has been scheduled. */
operation_node->flag &= ~DEPSOP_FLAG_NEEDS_UPDATE;
}
void deg_task_run_func(TaskPool *pool, void *taskdata)