Vulkan:序列化物理设备

时间:2017-09-12 13:54:06

标签: vulkan

假设我有更多物理设备支持Vulkan(专用+集成GPU,或2个专用或其他可能性)。用户可以在选项屏幕中选择要使用的设备。我需要能够在磁盘上坚持自己的选择。

我可以使用哪个字段来唯一标识不同执行中的物理设备?

  • vendorID + deviceID是不够的:我可以连接2个相同的GPU
  • deviceName出于同样的原因是不够的
  • deviceLUID不保证在场,可能与deviceUUID(下方)
  • 有同样的问题
  • deviceUUID看起来是正确的选择,但规范说:
      

    虽然指定VkPhysicalDeviceIDPropertiesKHR::deviceUUID在驱动程序版本和系统重新启动之间保持一致,但它不能用作设备的可序列化持久标识符。在系统断电时,当系统物理添加,移除或移动到系统中的其他连接器时,它可能会发生变化。

所以...我该怎么用?

1 个答案:

答案 0 :(得分:5)

deviceUUID是你得到的最好的。

这样想。如果deviceUUID与缓存副本匹配,那么您某些它是同一设备。如果缓存的ID与任何现有设备不匹配,则会删除该硬件或发生激进事件。无论哪种方式,您都需要再次弹出该对话框以让用户决定该做什么。