2
假設我有更多支持Vulkan(專用+集成GPU,或2個專用或其他可能性)的物理設備。用戶可以選擇要在選項屏幕中使用的設備。我需要能夠堅持他的選擇在磁盤上。Vulkan:序列化物理設備
我可以使用哪個字段來唯一標識跨越不同執行的物理設備?
vendorID
+deviceID
是不夠的:我可以有2分連接 相同的GPU
deviceName
是不夠的,由於同樣的原因deviceLUID
不能保證存在,並且可以具有相同的問題,因爲deviceUUID
(如下圖)deviceUUID
貌似正確的選擇,但規範說:雖然
VkPhysicalDeviceIDPropertiesKHR::deviceUUID
被指定爲在驅動程序版本和系統重新啓動之間保持一致,但不打算用作設備的可序列化持久標識符。當系統斷電時,設備物理地添加到系統中,從系統中移除或移動到系統中的其他連接器時,它可能會發生變化。
所以......我應該用什麼?
所以你說的是一個設備並沒有明確地綁定到一個uuid(正如我從規範中引用的那樣),而是一個uuid明確地綁定到一個設備上。也就是說,如果我改變配置,一些gpus可能會得到一個新的uuid,但其中一個的舊uuid不會被另一個uuid佔用。在這種情況下,'deviceUUID'就夠了。 – lodo
因爲它被稱爲「普遍獨特」,那麼它應該是「普遍獨一無二的」。 –