0
0
forked from blender/blender
The official Blender project repository.
Go to file
Hans Goudey c168ef9809 Sculpt: Improve undo node lookup performance
Currently, before and during brush evaluation on large meshes, a
significant amount of time is spent pushing and searching for undo
nodes. Because the undo node storage must be protected by a lock,
this means the CPU ends up spending a large portion of the total
time just waiting for other threads to release the lock while they
search for the correct undo node.

Finding an undo node is currently O(n) because we use linear search.
It's actually very simple to just use a map to replace this though.

For the draw brush impacting a large portion of a 6 million vertex mesh
(the benchmark file from #118145), this change improves brush evaluation
time by almost 60%-- from 1.1s to 0.7s. This doesn't include the cost of
refilling GPU buffers, but it's enough to probably give a noticeable
change for users.

Pull Request: blender/blender#123415
2024-06-19 14:12:18 +02:00
.gitea
.github
build_files Merge branch 'blender-v4.2-release' 2024-06-17 18:56:59 +02:00
doc Merge branch 'blender-v4.2-release' 2024-06-14 15:48:27 +02:00
extern PyAPI Doc: fix doc gen warning wrt loadLeftHrtfSet 2024-06-13 21:22:25 +02:00
intern Merge branch 'blender-v4.2-release' 2024-06-19 19:40:18 +10:00
lib Build: rebuild OSL (update LFS), resolve LLVM linking error (#2) 2024-06-15 20:59:07 +10:00
locale I18N: Updated UI translations from git/weblate repository (bd0b12e7e158). 2024-06-17 12:46:56 +02:00
release Merge branch 'blender-v4.2-release' 2024-06-14 15:46:24 +10:00
scripts Merge branch 'blender-v4.2-release' 2024-06-19 21:04:09 +10:00
source Sculpt: Improve undo node lookup performance 2024-06-19 14:12:18 +02:00
tests Cycles: Fix multiscattering Oren-Nayar at glancing angles, update tests 2024-06-18 22:57:52 +02:00
tools AUTHORS: add 32 new authors 2024-06-18 12:09:43 +10:00
.clang-format
.clang-tidy
.editorconfig
.git-blame-ignore-revs
.gitignore
.gitmodules
AUTHORS AUTHORS: add 32 new authors 2024-06-18 12:09:43 +10:00
CMakeLists.txt Build: Disable WITH_MOD_OCEANSIM when WITH_FFTW3 is disabled 2024-06-12 16:36:50 +02:00
COPYING
GNUmakefile Build: Change make deps HARVEST_TARGET to new Git LFS location 2024-06-18 18:20:54 +02:00
make.bat
pyproject.toml
README.md

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.

Blender screenshot

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.