- delay destruction of VkHardwareTexture resources until current frame has finished rendering
This commit is contained in:
parent
c00a46043d
commit
29a30037cb
4 changed files with 34 additions and 4 deletions
|
|
@ -99,6 +99,8 @@ VulkanFrameBuffer::~VulkanFrameBuffer()
|
|||
delete mViewpoints;
|
||||
delete mLights;
|
||||
mShadowMap.Reset();
|
||||
|
||||
DeleteFrameObjects();
|
||||
}
|
||||
|
||||
void VulkanFrameBuffer::InitializeState()
|
||||
|
|
@ -205,13 +207,21 @@ void VulkanFrameBuffer::Update()
|
|||
|
||||
mDrawCommands.reset();
|
||||
mUploadCommands.reset();
|
||||
mFrameDeleteList.clear();
|
||||
DeleteFrameObjects();
|
||||
|
||||
Finish.Unclock();
|
||||
|
||||
Super::Update();
|
||||
}
|
||||
|
||||
void VulkanFrameBuffer::DeleteFrameObjects()
|
||||
{
|
||||
FrameDeleteList.Images.clear();
|
||||
FrameDeleteList.ImageViews.clear();
|
||||
FrameDeleteList.Buffers.clear();
|
||||
FrameDeleteList.Descriptors.clear();
|
||||
}
|
||||
|
||||
void VulkanFrameBuffer::SubmitCommands(bool finish)
|
||||
{
|
||||
mDrawCommands->end();
|
||||
|
|
@ -270,7 +280,7 @@ void VulkanFrameBuffer::SubmitCommands(bool finish)
|
|||
vkResetFences(device->device, 1, &mRenderFinishedFence->fence);
|
||||
mDrawCommands.reset();
|
||||
mUploadCommands.reset();
|
||||
mFrameDeleteList.clear();
|
||||
DeleteFrameObjects();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue