dc02cc1d31ad486cf6d758b536502ff2d04849b9
Fixes a few render synchronization soundness issues I discovered when investigating why resetting the pools after the submission fence in #137305 ended up causing #137395. 1. Ensure the number of submission fences in GHOST_ContextVK is the same as the number of resource pools in VKThreadData. Otherwise, the fences might get misaligned, making it difficult to predict which submission a fence's signal corresponds to. 2. In swapBuffers, pass the current m_frame_data's fence and semaphores to the Vulkan backend callbacks, rather than the following m_frame_data. This fixes an observed soundness issue where the fences were off-by-one. Now, the backend callbacks can be sure that both the next frame is ready for construction (and it's resources can be cleaned), and will use the correctly aligned fences and semaphores during command buffer submission. 3. Do not recreate the m_frame_data's fences during recreateSwapchain. This would lead to unsoundness immediately following recreateSwapchain where all the fences are signaled but those frames might still be in flight. Pull Request: https://projects.blender.org/blender/blender/pulls/137580
…
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%
