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