Vulkan/Context: Add pipeline destruction deferring

This commit is contained in:
Connor McLaughlin 2020-09-13 00:06:01 +10:00
parent f63192c6b2
commit 666d7fbb99
2 changed files with 7 additions and 0 deletions

View File

@ -997,6 +997,12 @@ void Context::DeferImageViewDestruction(VkImageView object)
resources.cleanup_resources.push_back([this, object]() { vkDestroyImageView(m_device, object, nullptr); });
}
void Context::DeferPipelineDestruction(VkPipeline pipeline)
{
FrameResources& resources = m_frame_resources[m_current_frame];
resources.cleanup_resources.push_back([this, pipeline]() { vkDestroyPipeline(m_device, pipeline, nullptr); });
}
static VKAPI_ATTR VkBool32 VKAPI_CALL DebugReportCallback(VkDebugReportFlagsEXT flags,
VkDebugReportObjectTypeEXT objectType, uint64_t object,
size_t location, int32_t messageCode,

View File

@ -163,6 +163,7 @@ public:
void DeferFramebufferDestruction(VkFramebuffer object);
void DeferImageDestruction(VkImage object);
void DeferImageViewDestruction(VkImageView object);
void DeferPipelineDestruction(VkPipeline pipeline);
// Wait for a fence to be completed.
// Also invokes callbacks for completion.