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

Is it valid to create two VkDevices from the same VkPhysicalDevice?

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

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

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

来自vkCreateDevice下的规范:

Multiple logical devices can be created from the same physical device.

不需要这么说,因为文档的 "Valid Usage" 部分没有明确禁止它。当然,下一句是:

Logical device creation may fail due to lack of device-specific resources (in addition to the other errors).

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