From 2cbadefb29e4c8637d5f8fd4a8bd737872bc689e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Mon, 22 Nov 2021 19:01:57 +0100 Subject: [PATCH] Fix bugs in deletion. Delete redundant functions. --- Common/GPU/Vulkan/VulkanContext.cpp | 15 +++++++-------- Common/GPU/Vulkan/VulkanContext.h | 2 -- Common/GPU/Vulkan/VulkanRenderManager.cpp | 2 -- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/Common/GPU/Vulkan/VulkanContext.cpp b/Common/GPU/Vulkan/VulkanContext.cpp index ebd23986f8..3951e73f76 100644 --- a/Common/GPU/Vulkan/VulkanContext.cpp +++ b/Common/GPU/Vulkan/VulkanContext.cpp @@ -1297,8 +1297,9 @@ void VulkanDeleteList::Take(VulkanDeleteList &del) { _dbg_assert_(modules_.empty()); _dbg_assert_(buffers_.empty()); _dbg_assert_(bufferViews_.empty()); - _dbg_assert_(images_.empty()); + _dbg_assert_(buffersWithAllocs_.empty()); _dbg_assert_(imageViews_.empty()); + _dbg_assert_(imagesWithAllocs_.empty()); _dbg_assert_(deviceMemory_.empty()); _dbg_assert_(samplers_.empty()); _dbg_assert_(pipelines_.empty()); @@ -1312,9 +1313,10 @@ void VulkanDeleteList::Take(VulkanDeleteList &del) { descPools_ = std::move(del.descPools_); modules_ = std::move(del.modules_); buffers_ = std::move(del.buffers_); + buffersWithAllocs_ = std::move(del.buffersWithAllocs_); bufferViews_ = std::move(del.bufferViews_); - images_ = std::move(del.images_); imageViews_ = std::move(del.imageViews_); + imagesWithAllocs_ = std::move(del.imagesWithAllocs_); deviceMemory_ = std::move(del.deviceMemory_); samplers_ = std::move(del.samplers_); pipelines_ = std::move(del.pipelines_); @@ -1328,8 +1330,9 @@ void VulkanDeleteList::Take(VulkanDeleteList &del) { del.descPools_.clear(); del.modules_.clear(); del.buffers_.clear(); - del.images_.clear(); + del.buffersWithAllocs_.clear(); del.imageViews_.clear(); + del.imagesWithAllocs_.clear(); del.deviceMemory_.clear(); del.samplers_.clear(); del.pipelines_.clear(); @@ -1365,15 +1368,11 @@ void VulkanDeleteList::PerformDeletes(VkDevice device, VmaAllocator allocator) { for (auto &buf : buffersWithAllocs_) { vmaDestroyBuffer(allocator, buf.buffer, buf.alloc); } - buffers_.clear(); + buffersWithAllocs_.clear(); for (auto &bufView : bufferViews_) { vkDestroyBufferView(device, bufView, nullptr); } bufferViews_.clear(); - for (auto &image : images_) { - vkDestroyImage(device, image, nullptr); - } - images_.clear(); for (auto &imageWithAlloc : imagesWithAllocs_) { vmaDestroyImage(allocator, imageWithAlloc.image, imageWithAlloc.alloc); } diff --git a/Common/GPU/Vulkan/VulkanContext.h b/Common/GPU/Vulkan/VulkanContext.h index 19fb168591..c119dc6393 100644 --- a/Common/GPU/Vulkan/VulkanContext.h +++ b/Common/GPU/Vulkan/VulkanContext.h @@ -89,7 +89,6 @@ public: void QueueDeleteShaderModule(VkShaderModule &module) { _dbg_assert_(module != VK_NULL_HANDLE); modules_.push_back(module); module = VK_NULL_HANDLE; } void QueueDeleteBuffer(VkBuffer &buffer) { _dbg_assert_(buffer != VK_NULL_HANDLE); buffers_.push_back(buffer); buffer = VK_NULL_HANDLE; } void QueueDeleteBufferView(VkBufferView &bufferView) { _dbg_assert_(bufferView != VK_NULL_HANDLE); bufferViews_.push_back(bufferView); bufferView = VK_NULL_HANDLE; } - void QueueDeleteImage(VkImage &image) { _dbg_assert_(image != VK_NULL_HANDLE); images_.push_back(image); image = VK_NULL_HANDLE; } void QueueDeleteImageView(VkImageView &imageView) { _dbg_assert_(imageView != VK_NULL_HANDLE); imageViews_.push_back(imageView); imageView = VK_NULL_HANDLE; } void QueueDeleteDeviceMemory(VkDeviceMemory &deviceMemory) { _dbg_assert_(deviceMemory != VK_NULL_HANDLE); deviceMemory_.push_back(deviceMemory); deviceMemory = VK_NULL_HANDLE; } void QueueDeleteSampler(VkSampler &sampler) { _dbg_assert_(sampler != VK_NULL_HANDLE); samplers_.push_back(sampler); sampler = VK_NULL_HANDLE; } @@ -124,7 +123,6 @@ private: std::vector buffers_; std::vector buffersWithAllocs_; std::vector bufferViews_; - std::vector images_; std::vector imagesWithAllocs_; std::vector imageViews_; std::vector deviceMemory_; diff --git a/Common/GPU/Vulkan/VulkanRenderManager.cpp b/Common/GPU/Vulkan/VulkanRenderManager.cpp index f32cbde7aa..64caa64aef 100644 --- a/Common/GPU/Vulkan/VulkanRenderManager.cpp +++ b/Common/GPU/Vulkan/VulkanRenderManager.cpp @@ -879,8 +879,6 @@ bool VulkanRenderManager::InitBackbufferFramebuffers(int width, int height) { } bool VulkanRenderManager::InitDepthStencilBuffer(VkCommandBuffer cmd) { - bool pass; - const VkFormat depth_format = vulkan_->GetDeviceInfo().preferredDepthStencilFormat; int aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT; VkImageCreateInfo image_info = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO };