summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_resource_manager.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-02-14 17:39:12 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-02-14 22:44:26 +0100
commitae6c052ed9f7e3baed13e1e88e759a3a11d2c928 (patch)
treee9b6fe1189c7e7877bae4bc2cb21f3380e2f78c1 /src/video_core/renderer_vulkan/vk_resource_manager.h
parentvk_resource_manager: Add VKFencedPool interface (diff)
downloadyuzu-ae6c052ed9f7e3baed13e1e88e759a3a11d2c928.tar
yuzu-ae6c052ed9f7e3baed13e1e88e759a3a11d2c928.tar.gz
yuzu-ae6c052ed9f7e3baed13e1e88e759a3a11d2c928.tar.bz2
yuzu-ae6c052ed9f7e3baed13e1e88e759a3a11d2c928.tar.lz
yuzu-ae6c052ed9f7e3baed13e1e88e759a3a11d2c928.tar.xz
yuzu-ae6c052ed9f7e3baed13e1e88e759a3a11d2c928.tar.zst
yuzu-ae6c052ed9f7e3baed13e1e88e759a3a11d2c928.zip
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_resource_manager.h')
-rw-r--r--src/video_core/renderer_vulkan/vk_resource_manager.h8
1 files changed, 7 insertions, 1 deletions
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<std::unique_ptr<VKFence>> fences; ///< Pool of fences.
+ std::vector<std::unique_ptr<VKFence>> fences; ///< Pool of fences.
+ std::unique_ptr<CommandBufferPool> command_buffer_pool; ///< Pool of command buffers.
};
} // namespace Vulkan