Vulkan VkDeviceQueueCreateInfo::PQUEPriorities是否可以为null?
从官方Vulkan编程指南: pquepriorities字段是指向数组的可选指针 表示工作相对优先级的浮点值 提交到每个队列。这些数字是标准化的数字 在0.0到1.0的范围内。具有较高优先级的队列可能会被删除 分配更多的处理资源或更积极地安排 而不是优先级较低的队列。将pquepriorities设置为nullptr 具有使队列保持相同的默认优先级的效果 但是,当我启用Vulkan VkDeviceQueueCreateInfo::PQUEPriorities是否可以为null?,vulkan,Vulkan,从官方Vulkan编程指南: pquepriorities字段是指向数组的可选指针 表示工作相对优先级的浮点值 提交到每个队列。这些数字是标准化的数字 在0.0到1.0的范围内。具有较高优先级的队列可能会被删除 分配更多的处理资源或更积极地安排 而不是优先级较低的队列。将pquepriorities设置为nullptr 具有使队列保持相同的默认优先级的效果 但是,当我启用VK_层\u KHRONOS_验证层时,我得到以下错误: VUID VkDeviceQueueCreateInfo PQUEP
VK_层\u KHRONOS_验证层时,我得到以下错误:
VUID VkDeviceQueueCreateInfo PQUEPriorities参数(错误/规格):
msgNum:-69054442-验证错误:[
VUID VkDeviceQueueCreateInfo PQUEPriorities参数]对象0:
VK_NULL_句柄,类型=VK_对象_类型_设备;|MessageID=0xd6d720c6
|vkCreateDevice:必需的参数
pCreateInfo->pqueCreateInfos[0]。pquePriorities指定为NULL。
Vulkan规范规定:PQUEPriorities必须是指向
queueCount浮点值数组
()
我应该把这个错误当作警告吗?还是这本书错了?现代Vulkan验证层的好处在于,它们直接引用了与之相关的验证规则。它们的引用是可搜索的,因为每个验证规则都有一个唯一的名称。因此,如果在Vulkan规范中搜索“VUID VkDeviceQueueCreateInfo PQUEPriorities参数”,则:
pqueePriorities
必须是指向queueCount
浮点值数组的有效指针
当然,下面的一句话说:
队列计数
必须大于0
所以这是书中的一个错误。我甚至检查了旧的Vulkan 1.0.10规范(我拥有的最古老的规范),以确保是的,始终需要提供此参数。也许它在出版前是可选的,但我不知道有哪个发行版是可选的