From 070db79410d4df3eaebbe515f31902c2a24e7ba9 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 9 Oct 2015 16:28:56 +0200 Subject: [PATCH] Remove VkAttachmentBindInfo --- renderdoc/driver/vulkan/vk_common.cpp | 21 ++++++++++--------- renderdoc/driver/vulkan/vk_common.h | 1 - renderdoc/driver/vulkan/vk_replay.cpp | 4 +--- .../driver/vulkan/wrappers/vk_misc_funcs.cpp | 7 ++----- .../driver/vulkan/wrappers/vk_wsi_funcs.cpp | 4 +--- 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/renderdoc/driver/vulkan/vk_common.cpp b/renderdoc/driver/vulkan/vk_common.cpp index c7081c60d..5aa34b62c 100644 --- a/renderdoc/driver/vulkan/vk_common.cpp +++ b/renderdoc/driver/vulkan/vk_common.cpp @@ -2208,15 +2208,6 @@ void Serialiser::Serialise(const char *name, VkImageViewCreateInfo &el) Serialise("subresourceRange", el.subresourceRange); } -template<> -void Serialiser::Serialise(const char *name, VkAttachmentBindInfo &el) -{ - ScopedContext scope(this, name, "VkAttachmentBindInfo", 0, true); - - SerialiseObject(VkAttachmentView, "view", el.view); - Serialise("layout", el.layout); -} - template<> void Serialiser::Serialise(const char *name, VkFramebufferCreateInfo &el) { @@ -2227,10 +2218,20 @@ void Serialiser::Serialise(const char *name, VkFramebufferCreateInfo &el) SerialiseNext(this, el.pNext); SerialiseObject(VkRenderPass, "renderPass", el.renderPass); - SerialiseComplexArray("pAttachments", (VkAttachmentBindInfo *&)el.pAttachments, el.attachmentCount); Serialise("width", el.width); Serialise("height", el.height); Serialise("layers", el.layers); + + // do this one by hand because it's an array of objects that aren't Serialise + // overloaded + Serialise("attachmentCount", el.attachmentCount); + + if(m_Mode == READING) + el.pAttachments = el.attachmentCount ? new VkImageView[el.attachmentCount] : NULL; + + VkImageView *attaches = (VkImageView *)el.pAttachments; + for(uint32_t i=0; i < el.attachmentCount; i++) + SerialiseObject(VkImageView, "pAttachments", attaches[i]); } template<> diff --git a/renderdoc/driver/vulkan/vk_common.h b/renderdoc/driver/vulkan/vk_common.h index f83542ce3..a97ba405e 100644 --- a/renderdoc/driver/vulkan/vk_common.h +++ b/renderdoc/driver/vulkan/vk_common.h @@ -84,7 +84,6 @@ template<> void Serialiser::Serialise(const char *name, VkBufferCreateInfo &el); template<> void Serialiser::Serialise(const char *name, VkBufferViewCreateInfo &el); template<> void Serialiser::Serialise(const char *name, VkImageCreateInfo &el); template<> void Serialiser::Serialise(const char *name, VkImageViewCreateInfo &el); -template<> void Serialiser::Serialise(const char *name, VkAttachmentBindInfo &el); template<> void Serialiser::Serialise(const char *name, VkFramebufferCreateInfo &el); template<> void Serialiser::Serialise(const char *name, VkRenderPassCreateInfo &el); template<> void Serialiser::Serialise(const char *name, VkRenderPassBeginInfo &el); diff --git a/renderdoc/driver/vulkan/vk_replay.cpp b/renderdoc/driver/vulkan/vk_replay.cpp index 7a1c601f8..2e620e60f 100644 --- a/renderdoc/driver/vulkan/vk_replay.cpp +++ b/renderdoc/driver/vulkan/vk_replay.cpp @@ -382,12 +382,10 @@ void VulkanReplay::OutputWindow::Create(WrappedVulkan *driver, VkDevice device, VKMGR()->WrapResource(Unwrap(device), bbview); - VkAttachmentBindInfo attBind = { Unwrap(bbview), VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL }; - VkFramebufferCreateInfo fbinfo = { VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, NULL, Unwrap(renderpass), - 1, &attBind, + 1, UnwrapPtr(bbview), (uint32_t)width, (uint32_t)height, 1, }; diff --git a/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp index 7e4270b97..9a69dee31 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_misc_funcs.cpp @@ -516,12 +516,9 @@ VkResult WrappedVulkan::vkCreateFramebuffer( const VkFramebufferCreateInfo* pCreateInfo, VkFramebuffer* pFramebuffer) { - VkAttachmentBindInfo *unwrapped = GetTempArray(pCreateInfo->attachmentCount); + VkImageView *unwrapped = GetTempArray(pCreateInfo->attachmentCount); for(uint32_t i=0; i < pCreateInfo->attachmentCount; i++) - { - unwrapped[i] = pCreateInfo->pAttachments[i]; - unwrapped[i].view = Unwrap(unwrapped[i].view); - } + unwrapped[i] = Unwrap(pCreateInfo->pAttachments[i]); VkFramebufferCreateInfo unwrappedInfo = *pCreateInfo; unwrappedInfo.renderPass = Unwrap(unwrappedInfo.renderPass); diff --git a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp index 561db8e60..507a9f063 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_wsi_funcs.cpp @@ -440,12 +440,10 @@ VkResult WrappedVulkan::vkCreateSwapChainWSI( GetResourceManager()->WrapResource(Unwrap(device), swapImInfo.view); - VkAttachmentBindInfo attBind = { Unwrap(swapImInfo.view), VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL }; - VkFramebufferCreateInfo fbinfo = { VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, NULL, Unwrap(swapInfo.rp), - 1, &attBind, + 1, UnwrapPtr(swapImInfo.view), (uint32_t)pCreateInfo->imageExtent.width, (uint32_t)pCreateInfo->imageExtent.height, 1, };