Merge "goldfish-opengl: nuke canFitVirtualHostVisibleMemoryInfo"
diff --git a/system/vulkan_enc/HostVisibleMemoryVirtualization.cpp b/system/vulkan_enc/HostVisibleMemoryVirtualization.cpp
index 13d7d6d..714761c 100644
--- a/system/vulkan_enc/HostVisibleMemoryVirtualization.cpp
+++ b/system/vulkan_enc/HostVisibleMemoryVirtualization.cpp
@@ -40,42 +40,9 @@
namespace goldfish_vk {
-bool canFitVirtualHostVisibleMemoryInfo(
- const VkPhysicalDeviceMemoryProperties* memoryProperties) {
- uint32_t typeCount =
- memoryProperties->memoryTypeCount;
- uint32_t heapCount =
- memoryProperties->memoryHeapCount;
-
- bool canFit = true;
-
- if (typeCount == VK_MAX_MEMORY_TYPES) {
- canFit = false;
- ALOGE("Underlying device has no free memory types");
- }
-
- if (heapCount == VK_MAX_MEMORY_HEAPS) {
- canFit = false;
- ALOGE("Underlying device has no free memory heaps");
- }
-
- uint32_t numFreeMemoryTypes = VK_MAX_MEMORY_TYPES - typeCount;
- uint32_t hostVisibleMemoryTypeCount = 0;
-
- if (hostVisibleMemoryTypeCount > numFreeMemoryTypes) {
- ALOGE("Underlying device has too many host visible memory types (%u)"
- "and not enough free types (%u)",
- hostVisibleMemoryTypeCount, numFreeMemoryTypes);
- canFit = false;
- }
-
- return canFit;
-}
-
void initHostVisibleMemoryVirtualizationInfo(
VkPhysicalDevice physicalDevice,
const VkPhysicalDeviceMemoryProperties* memoryProperties,
- const EmulatorFeatureInfo* featureInfo,
HostVisibleMemoryVirtualizationInfo* info_out) {
if (info_out->initialized) return;
@@ -83,19 +50,6 @@
info_out->hostMemoryProperties = *memoryProperties;
info_out->initialized = true;
- info_out->memoryPropertiesSupported =
- canFitVirtualHostVisibleMemoryInfo(memoryProperties);
-
- info_out->directMemSupported = featureInfo->hasDirectMem;
- info_out->virtioGpuNextSupported = featureInfo->hasVirtioGpuNext;
-
- if (!info_out->memoryPropertiesSupported ||
- (!info_out->directMemSupported &&
- !info_out->virtioGpuNextSupported)) {
- info_out->virtualizationSupported = false;
- return;
- }
-
info_out->virtualizationSupported = true;
info_out->physicalDevice = physicalDevice;
diff --git a/system/vulkan_enc/HostVisibleMemoryVirtualization.h b/system/vulkan_enc/HostVisibleMemoryVirtualization.h
index 66d6042..c451400 100644
--- a/system/vulkan_enc/HostVisibleMemoryVirtualization.h
+++ b/system/vulkan_enc/HostVisibleMemoryVirtualization.h
@@ -55,13 +55,9 @@
bool memoryTypeBitsShouldAdvertiseBoth[VK_MAX_MEMORY_TYPES];
};
-bool canFitVirtualHostVisibleMemoryInfo(
- const VkPhysicalDeviceMemoryProperties* memoryProperties);
-
void initHostVisibleMemoryVirtualizationInfo(
VkPhysicalDevice physicalDevice,
const VkPhysicalDeviceMemoryProperties* memoryProperties,
- const EmulatorFeatureInfo* featureInfo,
HostVisibleMemoryVirtualizationInfo* info_out);
bool isHostVisibleMemoryTypeIndexForGuest(
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 7b27d91..185ec62 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -853,7 +853,6 @@
info.memProps = memProps;
initHostVisibleMemoryVirtualizationInfo(
physdev, &memProps,
- mFeatureInfo.get(),
&mHostVisibleMemoryVirtInfo);
info.apiVersion = props.apiVersion;
@@ -1677,10 +1676,11 @@
VkPhysicalDevice physdev,
VkPhysicalDeviceMemoryProperties* out) {
+ // If the device supports VK_MAX_MEMORY_HEAPS heaps and VK_MAX_MEMORY_TYPES, the current
+ // logic will break unless refactored (see b:233803018 for progress).
initHostVisibleMemoryVirtualizationInfo(
physdev,
out,
- mFeatureInfo.get(),
&mHostVisibleMemoryVirtInfo);
if (mHostVisibleMemoryVirtInfo.virtualizationSupported) {
@@ -1693,10 +1693,11 @@
VkPhysicalDevice physdev,
VkPhysicalDeviceMemoryProperties2* out) {
+ // If the device supports VK_MAX_MEMORY_HEAPS heaps and VK_MAX_MEMORY_TYPES, the current
+ // logic will break unless refactored (see b:233803018 for progress).
initHostVisibleMemoryVirtualizationInfo(
physdev,
&out->memoryProperties,
- mFeatureInfo.get(),
&mHostVisibleMemoryVirtInfo);
if (mHostVisibleMemoryVirtInfo.virtualizationSupported) {