diff --git a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp index 6cbabedeb..f679ffeb2 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp @@ -474,13 +474,17 @@ VkResult WrappedVulkan::vkQueuePresentKHR( } vector unwrappedSwaps; + vector unwrappedSems; VkPresentInfoKHR unwrappedInfo = *pPresentInfo; for(uint32_t i=0; i < unwrappedInfo.swapchainCount; i++) unwrappedSwaps.push_back(Unwrap(unwrappedInfo.pSwapchains[i])); + for(uint32_t i=0; i < unwrappedInfo.waitSemaphoreCount; i++) + unwrappedSems.push_back(Unwrap(unwrappedInfo.pWaitSemaphores[i])); - unwrappedInfo.pSwapchains = &unwrappedSwaps.front(); + unwrappedInfo.pSwapchains = unwrappedInfo.swapchainCount ? &unwrappedSwaps[0] : NULL; + unwrappedInfo.pWaitSemaphores = unwrappedInfo.waitSemaphoreCount ? &unwrappedSems[0] : NULL; // Don't support any extensions for present info RDCASSERT(pPresentInfo->pNext == NULL);