375ff1df6bd35664962d5cfcd92a3882a0f36667
Blender crashes if the compositor runs from the render pipeline while the node tree is being drawn. That's because the render pipeline adjusting the original node tree by calling ntreeCompositTagRender from a different thread during compositor evaluation, which is unsafe while the node tree is being drawn on the main thread. ntreeCompositTagRender seems to update Composite and Texture nodes, but they don't have update function, so it seems to do nothing in those cases. It also updates nodes that reference the scene, like the Render Layers and Cryptomatte nodes, but this seems to be already done in other places like do_render_compositor_scenes and ntreeCompositUpdateRLayers. Furthermore, in one of the calls in the render pipeline, it does raw pointer comparison with the evaluated scene, so the comparison fails and it does nothing. Considering the above, it seems this can be omitted from the render pipeline code. Pull Request: https://projects.blender.org/blender/blender/pulls/138087
…
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%
