mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-09-27 08:05:42 +00:00
vkDeviceWaitIdle workaround because presentation is broken
This commit is contained in:
@@ -148,6 +148,8 @@ RD_TEST(VK_Multi_Present, VulkanGraphicsTest)
|
||||
win->Submit(0, 1, {cmd}, {}, queue);
|
||||
}
|
||||
|
||||
vkDeviceWaitIdle(device);
|
||||
|
||||
VulkanWindow::MultiPresent(queue, presentWindows);
|
||||
|
||||
for(size_t i = 0; i < windows.size(); i++)
|
||||
|
||||
@@ -1758,8 +1758,8 @@ void VulkanWindow::Acquire()
|
||||
semIdx = (semIdx + 1) % renderStartSemaphore.size();
|
||||
|
||||
// acquire next image stupidly does not properly block, do a manual block
|
||||
vkWaitForFences(m_Test->device, 1, &imageFences[semIdx], VK_FALSE, UINT64_MAX);
|
||||
vkResetFences(m_Test->device, 1, &imageFences[semIdx]);
|
||||
CHECK_VKR(vkWaitForFences(m_Test->device, 1, &imageFences[semIdx], VK_FALSE, UINT64_MAX));
|
||||
CHECK_VKR(vkResetFences(m_Test->device, 1, &imageFences[semIdx]));
|
||||
|
||||
VkResult vkr = vkAcquireNextImageKHR(m_Test->device, swap, UINT64_MAX,
|
||||
renderStartSemaphore[semIdx], imageFences[semIdx], &imgIndex);
|
||||
@@ -1833,6 +1833,8 @@ void VulkanWindow::Present(VkQueue queue)
|
||||
if(swap == VK_NULL_HANDLE)
|
||||
return;
|
||||
|
||||
vkDeviceWaitIdle(device);
|
||||
|
||||
VkResult vkr =
|
||||
vkQueuePresentKHR(queue, vkh::PresentInfoKHR(swap, imgIndex, &renderEndSemaphore[semIdx]));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user