ngscopeclient v0.2.2
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Attributes | List of all members
QueueManager Class Reference

Allocates and hands out std::shared_ptr<QueueHandle> instances for thread-safe access to Vulkan Queues. More...

#include <QueueManager.h>

Public Types

enum  QueuePoolID {
  QUEUE_POOL_RENDER , QUEUE_POOL_RASTERIZE , QUEUE_POOL_DRIVER , QUEUE_POOL_FILTER ,
  QUEUE_POOL_TRANSFER , QUEUE_POOL_MISC
}
 List of different queue pools. More...
 

Public Member Functions

 QueueManager (vk::raii::PhysicalDevice *phys, std::shared_ptr< vk::raii::Device > device)
 
std::shared_ptr< QueueHandleGetQueueFromPool (QueuePoolID id, std::string name)
 Get a queue handle for a specific pool, preferring one that has less contention.
 
 QueueManager (QueueManager const &)=delete
 
QueueManageroperator= (QueueManager const &)=delete
 

Protected Attributes

vk::raii::PhysicalDevice * m_phys
 
std::shared_ptr< vk::raii::Device > m_device
 
std::mutex m_mutex
 Mutex to guard allocations.
 
std::vector< std::shared_ptr< QueueInfo > > m_queues
 All queues available on the device.
 
std::map< QueuePoolID, std::vector< std::shared_ptr< QueueInfo > > > m_pools
 Queue pools used for allocation.
 
std::map< QueuePoolID, std::string > m_poolNames
 

Detailed Description

Allocates and hands out std::shared_ptr<QueueHandle> instances for thread-safe access to Vulkan Queues.

Each QueueWrapper represents a single Vulkan Queue. Many pointers to a single QueueWrapper, each with its own QueueHandle, may exist at a given time, e.g. if the GPU only provides a single queue of the required type.

Member Enumeration Documentation

◆ QueuePoolID

List of different queue pools.

Enumerator
QUEUE_POOL_RENDER 

Queues used for graphics and display.

QUEUE_POOL_RASTERIZE 

Queues used for rasterizing waveforms.

QUEUE_POOL_DRIVER 

Queues used for instrument drivers (compute/transfer only)

QUEUE_POOL_FILTER 

Queues used for the filter graph (compute/transfer only)

QUEUE_POOL_TRANSFER 

Dedicated transfer-only queues.

QUEUE_POOL_MISC 

Queues used for other miscellaneous stuff like the scope deskew wizard.


The documentation for this class was generated from the following files: