- delay destruction of VkHardwareTexture resources until current frame has finished rendering

This commit is contained in:
Magnus Norddahl 2019-03-17 20:36:08 +01:00
commit 29a30037cb
4 changed files with 34 additions and 4 deletions

View file

@ -52,6 +52,18 @@ VkHardwareTexture::~VkHardwareTexture()
if (Next) Next->Prev = Prev;
if (Prev) Prev->Next = Next;
else First = Next;
auto fb = GetVulkanFrameBuffer();
if (fb)
{
auto &deleteList = fb->FrameDeleteList;
for (auto &it : mDescriptorSets)
deleteList.Descriptors.push_back(std::move(it.second));
mDescriptorSets.clear();
if (mImage) deleteList.Images.push_back(std::move(mImage));
if (mImageView) deleteList.ImageViews.push_back(std::move(mImageView));
if (mStagingBuffer) deleteList.Buffers.push_back(std::move(mStagingBuffer));
}
}
void VkHardwareTexture::Reset()