从同一个VkPhysicalDevice创建两个VkDevices是否有效?

时间:2016-04-08 03:41:06

标签: c++ vulkan

我正在为Vulkan API编写C ++包装器,所以我想确保我的文档与实际的API所说的不矛盾。

Device device1 = physical_device.Connect(device_settings);
Device device2 = physical_device.Connect(device_settings);

即使在启用LunarG标准验证层的情况下运行,此方案仍然有效。但是,尽管不正确,但目前通过验证层还有很多东西。所以我的问题是,有效这样做吗?

1 个答案:

答案 0 :(得分:5)

来自vkCreateDevice下的规范:

  

可以从同一物理设备创建多个逻辑设备。

并非需要说明,因为文档的“有效用法”部分没有明确禁止它。当然,下一句是:

  

由于缺少特定于设备的资源(除了其他错误之外),逻辑设备创建可能会失败。

因此,您无法从同一VkDevice创建无限VkPhysicalDevice个对象。如果实现不想支持多个,则不需要。