TextureVk: Don't release swapchain-owned images

This commit is contained in:
Corentin Wallez 2018-02-05 15:43:22 -05:00 committed by Corentin Wallez
parent 27570bd5b4
commit 6e01758dcd
1 changed files with 9 additions and 7 deletions

View File

@ -283,15 +283,17 @@ namespace backend { namespace vulkan {
Texture::~Texture() {
Device* device = ToBackend(GetDevice());
// We need to free both the memory allocation and the container. Memory should be freed
// after the VkImage is destroyed and this is taken care of by the FencedDeleter.
device->GetMemoryAllocator()->Free(&mMemoryAllocation);
// If we own the resource, release it.
if (mHandle != VK_NULL_HANDLE) {
device->GetFencedDeleter()->DeleteWhenUnused(mHandle);
mHandle = VK_NULL_HANDLE;
if (mMemoryAllocation.GetMemory() != VK_NULL_HANDLE) {
// We need to free both the memory allocation and the container. Memory should be freed
// after the VkImage is destroyed and this is taken care of by the FencedDeleter.
device->GetMemoryAllocator()->Free(&mMemoryAllocation);
if (mHandle != VK_NULL_HANDLE) {
device->GetFencedDeleter()->DeleteWhenUnused(mHandle);
}
}
mHandle = VK_NULL_HANDLE;
}
VkImage Texture::GetHandle() const {