Page MenuHome

Geometry Nodes Evaluator Improvements
Closed, ResolvedPublic

Description

The current geometry nodes evaluator in MOD_nodes.cc is a fairly basic evaluator that misses many features. It was useful to get the geometry nodes project started, however nowadays we run into its limitations from time to time.

Below are a few improvements that I'd like to implement. The main goal is to make better use of the users compute and memory resources. I've yet to see whether I implement all the features in one go or if I split them up into separate projects.

  • Lazy input socket evaluation to support nodes like the switch node efficiently.
  • Allow nodes to only compute the outputs that are actually used (that helps the Attribute Statistics node in D10202).
  • Lazy output socket evaluation. This helps in the case when the usage or one output of a node depends on another output of the same node.
  • Multi-threaded evaluation of independent nodes.
  • Avoid storing computed values that are known not to be used anymore to reduce ram usage.
  • Use a non-recursive evaluation strategy. This makes profiling and debugging easier (the stack trace is much smaller). Also removes the scary thought that we might run out of stack space for long chains of nodes.

Event Timeline

Hi, this refactoring is also a preparation step before 'For Loop' node?

No, this is unrelated to this refactor.