Blender Git Commit Log

Git Commits -> Revision 92237f1

Revision 92237f1 by Jacques Lucke (master)
December 12, 2021, 09:34 (GMT)
Geometry Nodes: improve memory reuse in procedure executor

This reduces the number of separate memory allocations done
by the multi-function procedure executor (which is used by the
field evaluation).

Now a linear memory allocator is used to allocate all intermediate
values. Furthermore, more buffers are reused when possible. This
reduces the total amount of allocated memory and improves
cache efficiency because the values are more likely to be in cache
already.

The performance improvement of this patch are most noticable
when few elements are processed by many functions. The situation
will improve even more with D13548, because then buffers can actually
be reused in practice. I measured up to 20% faster field evaluation
in extreme cases with this change.

Commit Details:

Full Hash: 92237f11eba44d77dce4582b77f5a293b93d8675
Parent Commit: b444e1b
Lines Changed: +72, -52

1 Modified Path:

/source/blender/functions/intern/multi_function_procedure_executor.cc (+72, -52) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021