|
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) |
|
|
| 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 |
|
◆ 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: