从同一个 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
个对象。如果实现不想支持多个,则不必。
我正在为 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
个对象。如果实现不想支持多个,则不必。