Renderer: Add release queue to fix deletion while use
This commit is contained in:
@@ -74,7 +74,7 @@ namespace Nz
|
||||
std::shared_ptr<VulkanDevice> m_device;
|
||||
std::size_t m_currentFrame;
|
||||
std::vector<Vk::Fence*> m_inflightFences;
|
||||
std::vector<VulkanRenderImage> m_concurrentImageData;
|
||||
std::vector<std::unique_ptr<VulkanRenderImage>> m_concurrentImageData;
|
||||
Vk::DeviceMemory m_depthBufferMemory;
|
||||
Vk::Image m_depthBuffer;
|
||||
Vk::ImageView m_depthBufferView;
|
||||
|
||||
@@ -36,13 +36,13 @@ namespace Nz
|
||||
inline Vk::Semaphore& GetRenderFinishedSemaphore();
|
||||
VulkanUploadPool& GetUploadPool() override;
|
||||
|
||||
void SubmitCommandBuffer(CommandBuffer* commandBuffer, QueueTypeFlags queueTypeFlags) override;
|
||||
void SubmitCommandBuffer(VkCommandBuffer commandBuffer, QueueTypeFlags queueTypeFlags);
|
||||
|
||||
void Present() override;
|
||||
|
||||
inline void Reset(UInt32 imageIndex);
|
||||
|
||||
void SubmitCommandBuffer(CommandBuffer* commandBuffer, QueueTypeFlags queueTypeFlags) override;
|
||||
void SubmitCommandBuffer(VkCommandBuffer commandBuffer, QueueTypeFlags queueTypeFlags);
|
||||
|
||||
VulkanRenderImage& operator=(const VulkanRenderImage&) = delete;
|
||||
VulkanRenderImage& operator=(VulkanRenderImage&&) = delete;
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
namespace Nz
|
||||
{
|
||||
inline Vk::Fence& Nz::VulkanRenderImage::GetInFlightFence()
|
||||
inline Vk::Fence& VulkanRenderImage::GetInFlightFence()
|
||||
{
|
||||
return m_inFlightFence;
|
||||
}
|
||||
@@ -29,6 +29,8 @@ namespace Nz
|
||||
|
||||
inline void VulkanRenderImage::Reset(UInt32 imageIndex)
|
||||
{
|
||||
FlushReleaseQueue();
|
||||
|
||||
m_graphicalCommandsBuffers.clear();
|
||||
m_currentCommandBuffer = 0;
|
||||
m_imageIndex = imageIndex;
|
||||
|
||||
Reference in New Issue
Block a user