d8f4387ac9270f95eadaad3eafe244d441166515
Use a grain size for the final tree creation/balancing/lookup that depends on the average size of each tree. When the trees are larger, fewer trees are processed on each thread and vice versa. I didn't notice a difference when there are hundreds of thousands of groups, but when there are few (i.e. around the number of cores), I noticed a 6x performance improvement, from over 1 second to around 0.2 s. Note that generally the performance is better with many small groups, because the creation and balancing of trees is single threaded.
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
