情況:不同VkInstances之間的返回值vkEnumeratePhysicalDevices是否一致?
我有一個函數,確定是否有Vulkan支持的設備,並返回該設備,如果找到一個。如果找不到這樣的設備,它將返回一個空值,並且將使用遺留代碼路徑。
問題在於,因爲此功能在之前需要調用,所以應用程序使用Vulkan代碼路徑,它必須創建它自己的臨時文件VkInstance
。該功能調用vkEnumeratePhysicalDevices
來獲得VkPhysicalDevice
,並使用vkGetPhysicalDeviceProperties
來確定是否有合適的設備。因爲它綁定到VkInstance
(這是暫時的,在函數返回之前將被破壞),所以代替該函數假定vkEnumeratePhysicalDevices
將返回下返回該裝置的索引陣列中
的VkPhysicalDevice
本身不能返回當在不同的VkInstance
上第二次調用同一個數組時。
問:
是vkEnumeratePhysicalDevices
保證使用兩種不同的VkInstances
調用時返回相同的值?這假定應用程序的機器和實例相同。
或者,他可以將'pipelineCacheUUID'存儲到特定設備的ID,而無需保持實例活着。 – krOoze
實際上,對於相同**'VkInstance',有這樣的保證:「2.4.1。檢索結果的生存期」。 – krOoze
@krOoze:實際上'pipelineCacheUUID'不起作用。我已經添加了解釋爲什麼不。 –