44#include <vulkan/vulkan_raii.hpp>
68 QueueHandle(std::shared_ptr<QueueWrapper>& queue,
const std::string& name);
72 void Submit(vk::raii::CommandBuffer
const& cmdBuf);
77 const std::string GetName()
const
78 {
return m_queue->GetName(); }
95 const std::lock_guard<std::recursive_mutex>
lock(m_queue->GetMutex());
101 std::shared_ptr<QueueWrapper> GetQueue()
116 std::shared_ptr<QueueWrapper> m_queue;
117 std::unique_ptr<vk::raii::Fence> m_fence;
120 std::string m_fenceName;
Declaration of QueueWrapper.
Definition AcceleratorBuffer.h:204
Wrapper around a Vulkan Queue object.
Definition QueueHandle.h:65
void Submit(vk::raii::CommandBuffer const &cmdBuf)
Submit the given command buffer on the queue.
Definition QueueHandle.cpp:86
void WaitIdle()
Wait for all previous submits to complete.
Definition QueueHandle.h:93
void SubmitAndBlock(vk::raii::CommandBuffer const &cmdBuf)
Submit the given command buffer on the queue and wait until completion.
Definition QueueHandle.cpp:98
bool WaitIdleWithTimeout(uint64_t nanoseconds)
Wait for previous submits to complete, but only up to a timeout.
Definition QueueHandle.cpp:122
std::recursive_mutex m_fenceMutex
The mutex controlling access to the fence.
Definition QueueHandle.h:123
std::set< std::unique_ptr< ScratchBufferBase > > m_usedScratchBuffers
Scratch buffers used by jobs in the queue.
Definition QueueHandle.h:126
void _waitFence()
Definition QueueHandle.cpp:141
void MarkScratchBufferUsed(T &buf)
Mark a scratch buffer as in use by command buffers pending for this queue.
Definition ScratchBufferManager.h:187
Obtains exclusive access to a Vulkan Queue for the duration of its existence, similar to a std::lock_...
Definition QueueManager.h:58
Definition QueueHandle.h:50