diff options
| author | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-09-02 01:26:18 -0400 |
|---|---|---|
| committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-09-02 13:13:20 -0400 |
| commit | 7d854fbdb074f38f465403ce3d5de78288ddc570 (patch) | |
| tree | f5f137e360b481e1804796cded4b1d2695f6911c /src/video_core/renderer_vulkan/vk_swapchain.cpp | |
| parent | b2572a56d3ab3c327f766d718bbdd16be6bc1635 (diff) | |
renderer_vulkan: Wait on present semaphore at queue submit
The present semaphore is being signalled by the call to acquire the
swapchain image. This semaphore is meant to be waited on when rendering
to the swapchain image. Currently it is waited on when presenting, but
moving its usage to be waited on in the command buffer submission allows
for proper usage of this semaphore.
Fixes the device lost when launching titles on the Intel Linux Mesa driver.
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_swapchain.cpp')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_swapchain.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/video_core/renderer_vulkan/vk_swapchain.cpp b/src/video_core/renderer_vulkan/vk_swapchain.cpp index d990eefba..71b12efe8 100644 --- a/src/video_core/renderer_vulkan/vk_swapchain.cpp +++ b/src/video_core/renderer_vulkan/vk_swapchain.cpp @@ -107,14 +107,12 @@ void VKSwapchain::AcquireNextImage() { } void VKSwapchain::Present(VkSemaphore render_semaphore) { - const VkSemaphore present_semaphore{*present_semaphores[frame_index]}; - const std::array<VkSemaphore, 2> semaphores{present_semaphore, render_semaphore}; const auto present_queue{device.GetPresentQueue()}; const VkPresentInfoKHR present_info{ .sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR, .pNext = nullptr, - .waitSemaphoreCount = render_semaphore ? 2U : 1U, - .pWaitSemaphores = semaphores.data(), + .waitSemaphoreCount = render_semaphore ? 1U : 0U, + .pWaitSemaphores = &render_semaphore, .swapchainCount = 1, .pSwapchains = swapchain.address(), .pImageIndices = &image_index, |
