226359ec48c820df59eb948d6d32a5560bffd685
Change the algorithm to make better use of multiple CPU cores. First offsets are created by counting the number of elements using each vertex. Those offsets are used during the next phase that adds indices to each group in parallel. Atomic increments are used to add elements to each group. Since the order in each group is non-deterministic, they are sorted in parallel afterwards. The performance improvement depends on the number of cores, CPU caches, memory bandwidth, single threaded performance, and mesh topology. In our tests, performance improved by 3-4.5x for large grid-like meshes. See [1] for investigation of this algorithm and potential alternatives. 1. https://hackmd.io/@s0TMIS4lTAGwHVO20ECwpw/build_edge_to_loop_map_tests. Pull Request: https://projects.blender.org/blender/blender/pulls/110707
…
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%
