我正在为Vulkan API编写C ++包装器,所以我想确保我的文档与实际的API所说的不矛盾。
Device device1 = physical_device.Connect(device_settings);
Device device2 = physical_device.Connect(device_settings);
即使在启用LunarG标准验证层的情况下运行,此方案仍然有效。但是,尽管不正确,但目前通过验证层还有很多东西。所以我的问题是,有效这样做吗?
答案 0 :(得分:5)
来自vkCreateDevice
下的规范:
可以从同一物理设备创建多个逻辑设备。
并非需要说明,因为文档的“有效用法”部分没有明确禁止它。当然,下一句是:
由于缺少特定于设备的资源(除了其他错误之外),逻辑设备创建可能会失败。
因此,您无法从同一VkDevice
创建无限VkPhysicalDevice
个对象。如果实现不想支持多个,则不需要。