2
假设我有更多支持Vulkan(专用+集成GPU,或2个专用或其他可能性)的物理设备。用户可以选择要在选项屏幕中使用的设备。我需要能够坚持他的选择在磁盘上。Vulkan:序列化物理设备
我可以使用哪个字段来唯一标识跨越不同执行的物理设备?
vendorID
+deviceID
是不够的:我可以有2分连接 相同的GPU
deviceName
是不够的,由于同样的原因deviceLUID
不能保证存在,并且可以具有相同的问题,因为deviceUUID
(如下图)deviceUUID
貌似正确的选择,但规范说:虽然
VkPhysicalDeviceIDPropertiesKHR::deviceUUID
被指定为在驱动程序版本和系统重新启动之间保持一致,但不打算用作设备的可序列化持久标识符。当系统断电时,设备物理地添加到系统中,从系统中移除或移动到系统中的其他连接器时,它可能会发生变化。
所以......我应该用什么?
所以你说的是一个设备并没有明确地绑定到一个uuid(正如我从规范中引用的那样),而是一个uuid明确地绑定到一个设备上。也就是说,如果我改变配置,一些gpus可能会得到一个新的uuid,但其中一个的旧uuid不会被另一个uuid占用。在这种情况下,'deviceUUID'就够了。 – lodo
因为它被称为“普遍独特”,那么它应该是“普遍独一无二的”。 –