在VkDeviceQueueCreateInfo中queueCount的目的是什么?

时间:2016-06-01 14:36:50

标签: vulkan

https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkDeviceQueueCreateInfo.html

我目前的工作:

查找具有支持图形和曲面的队列的设备。

然后我找到了graphicsQueuesurfaceQueue的索引。就我而言,它们是相同的,但我认为它们也可以是不同的。

现在我总是将queueCount设置为1,到目前为止我没有遇到任何问题,但我可能应该设置为queueCountVkQueueFamilyProperties.queueCount

但现在我想知道它到底是做什么的?更高queueCount表示更好的表现吗?

2 个答案:

答案 0 :(得分:2)

您要使用的家庭中有多少个队列。队列系列是一组可以执行相同操作的队列。

不允许将queueCount设置为0:

  

Valid usage [of VkDeviceQueueCreateInfo]

     
      
  • queueCount必须大于0
  •   

在此之后,您从该系列的vkGetDeviceQueue获得了一个正常运行的队列,这是未定义行为的结果。它可能也会破坏你的程序。

  

Valid usage [of vkGetDeviceQueue]

     
      
  • queueIndex必须小于创建设备时为指定队列系列索引创建的队列数,通过VkDeviceQueueCreateInfo结构的queueCount成员
  •   

答案 1 :(得分:1)

不,这与性能无关。 QueueCount(用于创建队列)是您要为所选队列系列索引调用创建的队列数。

所以,如果你是想要创建4个计算队列,您可以通过选择支持计算并将queueCount设置为4的(队列)系列索引一次调用vkGetDeviceQueue来一次创建它们。提供多个队列系列的设备示例{{3} }。