[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(