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