From ae6c052ed9f7e3baed13e1e88e759a3a11d2c928 Mon Sep 17 00:00:00 2001 From: ReinUsesLisp Date: Thu, 14 Feb 2019 13:39:12 -0300 Subject: vk_resource_manager: Implement a command buffer pool with VKFencedPool --- src/video_core/renderer_vulkan/vk_resource_manager.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/video_core/renderer_vulkan/vk_resource_manager.h') diff --git a/src/video_core/renderer_vulkan/vk_resource_manager.h b/src/video_core/renderer_vulkan/vk_resource_manager.h index 1fd68bb4c..5018dfa44 100644 --- a/src/video_core/renderer_vulkan/vk_resource_manager.h +++ b/src/video_core/renderer_vulkan/vk_resource_manager.h @@ -15,6 +15,8 @@ class VKDevice; class VKFence; class VKResourceManager; +class CommandBufferPool; + /// Interface for a Vulkan resource class VKResource { public: @@ -162,13 +164,17 @@ public: /// Commits a fence. It has to be sent to a queue and released. VKFence& CommitFence(); + /// Commits an unused command buffer and protects it with a fence. + vk::CommandBuffer CommitCommandBuffer(VKFence& fence); + private: /// Allocates new fences. void GrowFences(std::size_t new_fences_count); const VKDevice& device; ///< Device handler. std::size_t fences_iterator = 0; ///< Index where a free fence is likely to be found. - std::vector> fences; ///< Pool of fences. + std::vector> fences; ///< Pool of fences. + std::unique_ptr command_buffer_pool; ///< Pool of command buffers. }; } // namespace Vulkan -- cgit v1.2.3