From 4af3d1c00c333d091c2abbd5834ebbbc9ab00a02 Mon Sep 17 00:00:00 2001 From: baldurk Date: Sat, 19 Sep 2015 16:23:52 +0200 Subject: [PATCH] Unwrap swapchain present info structure --- renderdoc/driver/vulkan/vk_core.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_core.cpp b/renderdoc/driver/vulkan/vk_core.cpp index 867385ce1..72b3f81fe 100644 --- a/renderdoc/driver/vulkan/vk_core.cpp +++ b/renderdoc/driver/vulkan/vk_core.cpp @@ -7589,8 +7589,17 @@ VkResult WrappedVulkan::vkQueuePresentWSI( RDCLOG("Starting capture, frame %u", m_FrameCounter); } + + vector unwrappedSwaps; - return ObjDisp(queue)->QueuePresentWSI(Unwrap(queue), pPresentInfo); + VkPresentInfoWSI unwrappedInfo = *pPresentInfo; + + for(uint32_t i=0; i < unwrappedInfo.swapChainCount; i++) + unwrappedSwaps.push_back(Unwrap(unwrappedInfo.swapChains[i])); + + unwrappedInfo.swapChains = &unwrappedSwaps.front(); + + return ObjDisp(queue)->QueuePresentWSI(Unwrap(queue), &unwrappedInfo); } bool WrappedVulkan::Prepare_InitialState(WrappedVkRes *res) @@ -7676,7 +7685,7 @@ bool WrappedVulkan::Prepare_InitialState(WrappedVkRes *res) vkr = ObjDisp(d)->BindBufferMemory(Unwrap(d), srcBuf, ToHandle(res), 0); RDCASSERT(vkr == VK_SUCCESS); - vkr = ObjDisp(d)->BindBufferMemory(Unwrap(d), dstBuf, mem, 0); + vkr = ObjDisp(d)->BindBufferMemory(Unwrap(d), dstBuf, Unwrap(mem), 0); RDCASSERT(vkr == VK_SUCCESS); VkBufferCopy region = { 0, 0, meminfo.size };