88f812bf9ad538d0c96149b751c3db75c29ae4b5
Alternative solution to #141392 / #141564. As a recap, the DST global lock (which prevented running drawing code from multiple threads concurrently) was removed for 4.5 (#134690). One unforeseen issue is that Images (and their GPUTextures) are shared across dependency graphs (and therefore multiple threads), meaning we are running into data race issues with them. @fclem did #141392 and I continued it #141564. However, this is only a partial solution, parts of the GPUTexture API and the whole BKE_image API are still unsafe. Trying to solve all the possible underlying issues seems unrealistic for 4.5 given the time frame and that the extension of the code affected by this issue is quite large. So this PR just brings the 4.4 locking behavior instead, which, while risky on its own, seems much safer to me than the alternative. This effectively undoes the improvements from #134690 by disabling concurrent rendering, but instead of reverting all the code, it just ensures we hold the lock in the same places we did in 4.4. This means there's some redundant code that is not technically needed anymore, like the `submission_mutex`, but it's probably best to make as few modifications as possible, given how close we are to release and that this is only intended as a temporary measure. Pull Request: https://projects.blender.org/blender/blender/pulls/141618
…
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%
