VkDeviceQueueCreateInfo 中的 queueCount 的用途是什么?
What is the purpose of queueCount inside VkDeviceQueueCreateInfo?
https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueCreateInfo.html
我目前在做什么:
查找具有支持图形和表面的队列的设备。
然后我找到 graphicsQueue
和 surfaceQueue
的索引。就我而言,它们是相同的,但我认为它们也可以不同。
现在我一直将 queueCount
设置为 1,到目前为止我没有 运行 遇到任何问题,但我可能应该将 queueCount
设置为 [=14] =].
但现在我想知道它到底做了什么? queueCount
越高表示性能越好吗?
不,这与性能无关。 QueueCount(用于队列创建)是您要使用所选队列系列索引调用创建的队列数。
所以如果你想要创建 4 个计算队列,您可以通过一次调用 vkGetDeviceQueue 来同时创建它们,方法是选择一个支持计算的(队列)系列索引并将 queueCount 设置为 4。提供多个队列系列的设备示例 can be found here.
这是您要使用的那个系列的队列数。队列系列是一组可以做同样事情的队列。
不允许将 queueCount
设置为 0:
Valid usage [of VkDeviceQueueCreateInfo]
- queueCount must be greater than 0
之后您从该系列的 vkGetDeviceQueue 获得了一个正常运行的队列是未定义行为的结果。它也可能使您的程序崩溃。
Valid usage [of vkGetDeviceQueue]
- queueIndex must be less than the number of queues created for the specified queue family index when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure
https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueCreateInfo.html
我目前在做什么:
查找具有支持图形和表面的队列的设备。
然后我找到 graphicsQueue
和 surfaceQueue
的索引。就我而言,它们是相同的,但我认为它们也可以不同。
现在我一直将 queueCount
设置为 1,到目前为止我没有 运行 遇到任何问题,但我可能应该将 queueCount
设置为 [=14] =].
但现在我想知道它到底做了什么? queueCount
越高表示性能越好吗?
不,这与性能无关。 QueueCount(用于队列创建)是您要使用所选队列系列索引调用创建的队列数。
所以如果你想要创建 4 个计算队列,您可以通过一次调用 vkGetDeviceQueue 来同时创建它们,方法是选择一个支持计算的(队列)系列索引并将 queueCount 设置为 4。提供多个队列系列的设备示例 can be found here.
这是您要使用的那个系列的队列数。队列系列是一组可以做同样事情的队列。
不允许将 queueCount
设置为 0:
Valid usage [of VkDeviceQueueCreateInfo]
- queueCount must be greater than 0
之后您从该系列的 vkGetDeviceQueue 获得了一个正常运行的队列是未定义行为的结果。它也可能使您的程序崩溃。
Valid usage [of vkGetDeviceQueue]
- queueIndex must be less than the number of queues created for the specified queue family index when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure