0
0
forked from blender/blender
The official Blender project repository.
Go to file
Hans Goudey 97f2b01ea9 Fix #112351: Sculpt implicit sharing thread safety crash
Currently the iteration over a PBVH node's vertices retrieves mutable
access to the mask custom data layer. This isn't threadsafe, but it is
done in the multithreaded loops over all nodes.

In general, we need to be more careful and conservative about storage
of non-const pointers to mesh data. Ideally we would only have one
mutable reference to a resource at a time. And we should avoid doing
work like looking up custom data layers more than we need to.

To that end, make the pointer to the custom data layer used everywhere
const, and retrieve mutable access before parallel node iteration with
a specific function, and write to the mask data with that in mind.

This pushes us in the direction of sharing less code per PBVH type.
In my opinion that's a good thing, because we can actually optimize for
each type. For example, `write_mask_data` gives a picture of
how each of these hot loops could become much simpler.

Pull Request: blender/blender#112690
2023-09-26 14:21:07 +02:00
.gitea Gitea: add note that developers must opt-out of inclusion in AUTHORS 2023-08-18 09:23:43 +10:00
.github Docs: change Git URLs to point projects.blender.org instead of git.blender.org 2023-02-07 14:23:05 +01:00
build_files CMake: Update platform_win32.cmake with webp 1.3 support 2023-09-22 08:59:03 -06:00
doc Fix documentation build (validation?) error 2023-09-19 17:14:31 +02:00
extern VSE: Sound equalizer modifier 2023-08-30 22:36:36 +02:00
intern Cleanup: update code comments for wayland cursor locking 2023-09-26 19:50:48 +10:00
locale I18N: Updated UI translations from dedicated git repo (3c637f5ed7d08b). 2023-09-18 11:10:30 +02:00
release UI: Inter Font with regular (non-slashed) zero 2023-09-24 22:44:09 +02:00
scripts Anim: implement a new curve-aware vertex to B-Bone segment mapping mode. 2023-09-26 14:17:21 +02:00
source Fix #112351: Sculpt implicit sharing thread safety crash 2023-09-26 14:21:07 +02:00
tests Fix bf_animation_fcurves tests failing depending on preferences 2023-09-23 21:17:50 +10:00
tools Cleanup: spelling in comments 2023-09-25 15:25:43 +10:00
.clang-format clang-format: set BraceWrapping::AfterControlStatement to "MultiLine" 2023-05-02 09:37:08 +10:00
.clang-tidy Clang-tidy: Ignore variable name length and .c/.cc include warnings 2022-05-06 15:26:54 +02:00
.editorconfig
.git-blame-ignore-revs Cleanup: add commit to .git-blame-ignore-revs 2023-05-03 20:31:11 +10:00
.gitignore Ignore build files for VS and VS Code 2023-03-07 17:38:34 +01:00
AUTHORS AUTHORS: update 2023-08-29 15:09:05 +10:00
CMakeLists.txt CMake: Rename compositor tests option to WITH_COMPOSITOR_REALTIME_TESTS 2023-08-23 16:03:12 +02:00
COPYING
GNUmakefile check_spelling: include *.metal files 2023-09-07 20:44:33 +10:00
make.bat Windows: Propagate errors in make.bat 2023-08-16 19:29:47 +02:00
pyproject.toml pyproject: remove tools/pyproject.toml 2023-03-01 22:18:28 +11:00
README.md Update references to the new projects platform and main branch 2023-02-07 14:18:19 +01:00

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.