假设我有更多物理设备支持Vulkan(专用+集成GPU,或2个专用或其他可能性)。用户可以在选项屏幕中选择要使用的设备。我需要能够在磁盘上坚持自己的选择。
我可以使用哪个字段来唯一标识不同执行中的物理设备?
vendorID
+ deviceID
是不够的:我可以连接2个相同的GPU deviceName
出于同样的原因是不够的deviceLUID
不保证在场,可能与deviceUUID
(下方)deviceUUID
看起来是正确的选择,但规范说:
虽然指定
VkPhysicalDeviceIDPropertiesKHR::deviceUUID
在驱动程序版本和系统重新启动之间保持一致,但它不能用作设备的可序列化持久标识符。在系统断电时,当系统物理添加,移除或移动到系统中的其他连接器时,它可能会发生变化。
所以...我该怎么用?
答案 0 :(得分:5)
deviceUUID
是你得到的最好的。
这样想。如果deviceUUID
与缓存副本匹配,那么您某些它是同一设备。如果缓存的ID与任何现有设备不匹配,则会删除该硬件或发生激进事件。无论哪种方式,您都需要再次弹出该对话框以让用户决定该做什么。