|
const Queue & | getPresentQueue () const |
|
const std::vector< Queue > & | getGraphicsQueues () const |
|
const std::vector< Queue > & | getComputeQueues () const |
|
const std::vector< Queue > & | getTransferQueues () const |
|
|
static QueueManager | create (vk::Device device, std::vector< std::pair< int, int >> &queuePairsGraphics, std::vector< std::pair< int, int >> &queuePairsCompute, std::vector< std::pair< int, int >> &queuePairsTransfer) |
|
static void | queueCreateInfosQueueHandles (vk::PhysicalDevice &physicalDevice, const std::vector< float > &queuePriorities, const std::vector< vk::QueueFlagBits > &queueFlags, std::vector< vk::DeviceQueueCreateInfo > &queueCreateInfos, std::vector< std::pair< int, int >> &queuePairsGraphics, std::vector< std::pair< int, int >> &queuePairsCompute, std::vector< std::pair< int, int >> &queuePairsTransfer) |
|
static uint32_t | checkSurfaceSupport (const vk::PhysicalDevice &physicalDevice, vk::SurfaceKHR &surface) |
|
|
| QueueManager (std::vector< Queue > &&graphicsQueues, std::vector< Queue > &&computeQueues, std::vector< Queue > &&transferQueues, size_t presentIndex) |
|
|
std::vector< Queue > | m_graphicsQueues |
|
std::vector< Queue > | m_computeQueues |
|
std::vector< Queue > | m_transferQueues |
|
size_t | m_presentIndex |
|
◆ checkSurfaceSupport()
uint32_t vkcv::QueueManager::checkSurfaceSupport |
( |
const vk::PhysicalDevice & |
physicalDevice, |
|
|
vk::SurfaceKHR & |
surface |
|
) |
| |
|
static |
checks for surface support in the queues
- Parameters
-
physicalDevice | to get the Queues |
surface | that needs to checked |
- Returns
Referenced by vkcv::Swapchain::create().
◆ queueCreateInfosQueueHandles()
void vkcv::QueueManager::queueCreateInfosQueueHandles |
( |
vk::PhysicalDevice & |
physicalDevice, |
|
|
const std::vector< float > & |
queuePriorities, |
|
|
const std::vector< vk::QueueFlagBits > & |
queueFlags, |
|
|
std::vector< vk::DeviceQueueCreateInfo > & |
queueCreateInfos, |
|
|
std::vector< std::pair< int, int >> & |
queuePairsGraphics, |
|
|
std::vector< std::pair< int, int >> & |
queuePairsCompute, |
|
|
std::vector< std::pair< int, int >> & |
queuePairsTransfer |
|
) |
| |
|
static |
Given the physicalDevice
and the queuePriorities
, the queueCreateInfos
are computed. First, the requested queues are sorted by priority depending on the availability of queues in the queue families of the given physicalDevice
. Then check, if all requested queues are creatable. If so, the queueCreateInfos
will be computed. Furthermore, lists of index pairs (queueFamilyIndex, queueIndex) for later referencing of the separate queues will be computed.
- Parameters
-
[in] | physicalDevice | The physical device |
[in] | queuePriorities | The queue priorities used for the computation of queueCreateInfos |
[in] | queueFlags | The queue flags requesting the queues |
[in,out] | queueCreateInfos | The queue create info structures to be created |
[in,out] | queuePairsGraphics | The list of index pairs (queueFamilyIndex, queueIndex) of queues of type vk::QueueFlagBits::eGraphics |
[in,out] | queuePairsCompute | The list of index pairs (queueFamilyIndex, queueIndex) of queues of type vk::QueueFlagBits::eCompute |
[in,out] | queuePairsTransfer | The list of index pairs (queueFamilyIndex, queueIndex) of queues of type vk::QueueFlagBits::eTransfer |
- Exceptions
-
std::runtime_error | If the requested queues from queueFlags are not creatable due to insufficient availability. |
The documentation for this class was generated from the following files: