Allocates and hands out std::shared_ptr<QueueHandle> instances for thread-safe access to Vulkan Queues.
More...
#include <QueueManager.h>
|
vk::raii::PhysicalDevice * | m_phys |
|
std::shared_ptr< vk::raii::Device > | m_device |
|
std::mutex | m_mutex |
| Mutex to guard allocations.
|
|
std::vector< QueueInfo > | m_queues |
| All queues available on the device.
|
|
Allocates and hands out std::shared_ptr<QueueHandle> instances for thread-safe access to Vulkan Queues.
Each QueueHandle represents a single Vulkan Queue. Many shared pointers to a single QueueHandle may exist at a given time, e.g. if the GPU only provides a single queue of the required type.
◆ GetQueueWithFlags()
shared_ptr< QueueHandle > QueueManager::GetQueueWithFlags |
( |
vk::QueueFlags |
flags, |
|
|
std::string |
name |
|
) |
| |
Get a handle to a queue that has the given flag bits set, allocating the queue if necessary, and set or append name to the queue name for debug
◆ GetRenderQueue()
std::shared_ptr< QueueHandle > QueueManager::GetRenderQueue |
( |
std::string |
name | ) |
|
|
inline |
Get a handle to a render queue
- Note
- Currently this requires Graphics and Transfer capabilities to simplify texture transfer code in WaveformArea.
◆ GetTransferQueue()
std::shared_ptr< QueueHandle > QueueManager::GetTransferQueue |
( |
std::string |
name | ) |
|
|
inline |
Get a handle to a transfer queue
- Note
- This currently requires Compute capabilities so we can barrier on compute operations
The documentation for this class was generated from the following files: