3e8250e60c6ea3ef2db1d57817c45de75ea68acd
There is no need to initialize index buffers with zero since such buffers always have to be filled by the caller. This change replaces the allocation with malloc, so that GPU_indexbuf_init results in an uninitialized buffer. In debug, and with asan, the buffer will be still filled by something, but the caller should initialize zero indices manually instead of relying on a default value. For example, sometimes the cost of zeroing on allocation is similar to the cost of filling the buffer with actual data. For a point cloud with 1'000'000 points, octahedron topology update on each frame of simulation takes: | | Main | PR | | -------------------------- | ------- | ------- | | GPU_indexbuf_init | 2.75 ms | 5233 ns | | pointcloud_extract_indices | 6.95 ms | 4.64 ms | Pull Request: https://projects.blender.org/blender/blender/pulls/141110
…
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%
