diff --git a/util/test/demos/vk/vk_multi_present.cpp b/util/test/demos/vk/vk_multi_present.cpp index 83605f063..e597bb480 100644 --- a/util/test/demos/vk/vk_multi_present.cpp +++ b/util/test/demos/vk/vk_multi_present.cpp @@ -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++) diff --git a/util/test/demos/vk/vk_test.cpp b/util/test/demos/vk/vk_test.cpp index 2206bdd77..2b4da6365 100644 --- a/util/test/demos/vk/vk_test.cpp +++ b/util/test/demos/vk/vk_test.cpp @@ -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]));