[vulkan] unbreak non-GLDirectMem
bug: 111137294
bug: 121420031
Change-Id: Idc130b88e3eced28caa2d677e086c4eeddd7fd10
diff --git a/system/vulkan_enc/HostVisibleMemoryVirtualization.cpp b/system/vulkan_enc/HostVisibleMemoryVirtualization.cpp
index c1495fb..883de3d 100644
--- a/system/vulkan_enc/HostVisibleMemoryVirtualization.cpp
+++ b/system/vulkan_enc/HostVisibleMemoryVirtualization.cpp
@@ -67,6 +67,7 @@
if (info_out->initialized) return;
+ info_out->hostMemoryProperties = *memoryProperties;
info_out->initialized = true;
info_out->memoryPropertiesSupported =
@@ -83,7 +84,6 @@
info_out->virtualizationSupported = true;
info_out->physicalDevice = physicalDevice;
- info_out->hostMemoryProperties = *memoryProperties;
info_out->guestMemoryProperties = *memoryProperties;
uint32_t typeCount =
@@ -179,8 +179,13 @@
bool isHostVisibleMemoryTypeIndexForGuest(
const HostVisibleMemoryVirtualizationInfo* info,
uint32_t index) {
- return info->guestMemoryProperties.memoryTypes[index].propertyFlags &
- VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT;
+
+ const auto& props =
+ info->virtualizationSupported ?
+ info->guestMemoryProperties :
+ info->hostMemoryProperties;
+
+ return props.memoryTypes[index].propertyFlags & VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT;
}
VkResult finishHostMemAllocInit(
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 23fa666..42612ea 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -516,6 +516,12 @@
// Host visible memory with no direct mapping support
bool directMappingSupported = usingDirectMapping();
if (!directMappingSupported) {
+ input_result =
+ enc->vkAllocateMemory(
+ device, pAllocateInfo, pAllocator, pMemory);
+
+ if (input_result != VK_SUCCESS) return input_result;
+
VkDeviceSize mappedSize =
getNonCoherentExtendedSize(device,
pAllocateInfo->allocationSize);