[vulkan] Only retrieve host physical devices once

bug: 111137294

The handles need to stay the same between invocations.

This CL takes the codegen that makes vkEnumeratePhysicalDevices
a custom implementation, and only asks the host once
for the physical device handles.

Test: Unit test
Change-Id: Ib07f1f14c41e973fee284a48275d1625941007b9
diff --git a/system/vulkan/func_table.cpp b/system/vulkan/func_table.cpp
index 88d0972..e3079c5 100644
--- a/system/vulkan/func_table.cpp
+++ b/system/vulkan/func_table.cpp
@@ -66,7 +66,8 @@
 {
     auto vkEnc = HostConnection::get()->vkEncoder();
     VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
-    vkEnumeratePhysicalDevices_VkResult_return = vkEnc->vkEnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
+    auto resources = ResourceTracker::get();
+    vkEnumeratePhysicalDevices_VkResult_return = resources->on_vkEnumeratePhysicalDevices(vkEnc, VK_SUCCESS, instance, pPhysicalDeviceCount, pPhysicalDevices);
     return vkEnumeratePhysicalDevices_VkResult_return;
 }
 static void entry_vkGetPhysicalDeviceFeatures(