[vulkan] Collect (but do not use) host-visible memory virtualization info

bug: 111137294
bug: 121420031

Change-Id: I769d6e0f4179bf86a05fe1da2b4166edb1de3c04
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index f76c644..0fce806 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -16,6 +16,7 @@
 #include "ResourceTracker.h"
 
 #include "../OpenglSystemCommon/EmulatorFeatureInfo.h"
+#include "HostVisibleMemoryVirtualization.h"
 #include "Resources.h"
 #include "VkEncoder.h"
 
@@ -114,6 +115,7 @@
         VkPhysicalDevice physdev;
         VkPhysicalDeviceProperties props;
         VkPhysicalDeviceMemoryProperties memProps;
+        HostVisibleMemoryVirtualizationInfo hostVisibleVirtInfo;
     };
 
     struct VkDeviceMemory_Info {
@@ -124,6 +126,8 @@
         bool directMapped = false;
         std::unique_ptr<GoldfishAddressSpaceBlock>
             goldfishAddressSpaceBlock = {};
+        HostVisibleMemoryVirtualizationInfo
+            hostVisibleVirtInfo;
     };
 
 #define HANDLE_REGISTER_IMPL_IMPL(type) \
@@ -173,19 +177,25 @@
         info.physdev = physdev;
         info.props = props;
         info.memProps = memProps;
+        initHostVisibleMemoryVirtualizationInfo(
+            physdev, &memProps, &info.hostVisibleVirtInfo);
     }
 
-    void setDeviceMemoryInfo(VkDeviceMemory memory,
+    void setDeviceMemoryInfo(VkDevice device,
+                             VkDeviceMemory memory,
                              VkDeviceSize allocationSize,
                              VkDeviceSize mappedSize,
                              uint8_t* ptr,
                              uint32_t memoryTypeIndex) {
         AutoLock lock(mLock);
+        auto& deviceInfo = info_VkDevice[device];
         auto& info = info_VkDeviceMemory[memory];
+
         info.allocationSize = allocationSize;
         info.mappedSize = mappedSize;
         info.mappedPtr = ptr;
         info.memoryTypeIndex = memoryTypeIndex;
+        info.hostVisibleVirtInfo = deviceInfo.hostVisibleVirtInfo;
     }
 
     bool isMemoryTypeHostVisible(VkDevice device, uint32_t typeIndex) const {
@@ -406,7 +416,7 @@
         }
 
         setDeviceMemoryInfo(
-            *pMemory, allocationSize, mappedSize, mappedPtr,
+            device, *pMemory, allocationSize, mappedSize, mappedPtr,
             pAllocateInfo->memoryTypeIndex);
 
         bool doDirectMap =