diff options
author | Hailin Zhang <hailinzhang@google.com> | 2022-12-08 20:20:32 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-12-08 20:20:32 +0000 |
commit | 70cb828511b8fb2505f0fa0bbd90ca65042b0228 (patch) | |
tree | d60216af9216097ba1c1ad569979695068e5590e | |
parent | 3f16150d654ddc5077c7443087b6d64199afae41 (diff) | |
parent | c25f7c9cbf5a810291a302c7bcb8d592aefabc70 (diff) | |
download | goldfish-opengl-70cb828511b8fb2505f0fa0bbd90ca65042b0228.tar.gz |
Merge "remove ahb buffer host not visiable limitation." am: c25f7c9cbf
Original change: https://android-review.googlesource.com/c/device/generic/goldfish-opengl/+/2333788
Change-Id: I47be997ed00b892a18011dd8fa8aa443c94f3cd7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | system/vulkan_enc/AndroidHardwareBuffer.cpp | 14 | ||||
-rw-r--r-- | system/vulkan_enc/ResourceTracker.cpp | 9 |
2 files changed, 5 insertions, 18 deletions
diff --git a/system/vulkan_enc/AndroidHardwareBuffer.cpp b/system/vulkan_enc/AndroidHardwareBuffer.cpp index 48dfc572..057b7e72 100644 --- a/system/vulkan_enc/AndroidHardwareBuffer.cpp +++ b/system/vulkan_enc/AndroidHardwareBuffer.cpp @@ -25,6 +25,7 @@ #include "vk_format_info.h" #include "vk_util.h" +#include <assert.h> namespace goldfish_vk { @@ -230,17 +231,8 @@ VkResult getAndroidHardwareBufferPropertiesANDROID( if (!colorBufferHandle) { return VK_ERROR_INVALID_EXTERNAL_HANDLE; } - - // Disallow host visible (hard to make actual dedicated allocs) - uint32_t memoryTypeBits = 0; - for (uint32_t i = 0; i < memProps->memoryTypeCount; ++i) { - if (isHostVisible(memProps, i)) - continue; - - memoryTypeBits |= (1 << i); - } - - pProperties->memoryTypeBits = memoryTypeBits; + assert(memProps->memoryTypeCount < VK_MAX_MEMORY_TYPES); + pProperties->memoryTypeBits = (1u << memProps->memoryTypeCount) - 1; pProperties->allocationSize = grallocHelper->getAllocatedSize(handle); diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp index 7a6a6b92..aebcdc0d 100644 --- a/system/vulkan_enc/ResourceTracker.cpp +++ b/system/vulkan_enc/ResourceTracker.cpp @@ -3198,8 +3198,7 @@ public: !isHostVisible(&mMemoryProps, pAllocateInfo->memoryTypeIndex); if (!exportAllocateInfoPtr && - (importAhbInfoPtr || importBufferCollectionInfoPtr || - importVmoInfoPtr) && + ( importBufferCollectionInfoPtr || importVmoInfoPtr) && dedicatedAllocInfoPtr && isHostVisible(&mMemoryProps, pAllocateInfo->memoryTypeIndex)) { ALOGE( @@ -3660,7 +3659,7 @@ public: } #endif - if (!isHostVisible(&mMemoryProps, finalAllocInfo.memoryTypeIndex)) { + if (ahw || !isHostVisible(&mMemoryProps, finalAllocInfo.memoryTypeIndex)) { input_result = enc->vkAllocateMemory( device, &finalAllocInfo, pAllocator, pMemory, true /* do lock */); @@ -3864,10 +3863,6 @@ public: uint32_t res = 0; for (uint32_t i = 0; i < VK_MAX_MEMORY_TYPES; ++i) { bool shouldAcceptMemoryIndex = normalBits & (1 << i); -#if defined(VK_USE_PLATFORM_ANDROID_KHR) || defined(__linux__) - shouldAcceptMemoryIndex &= !isHostVisible(&mMemoryProps, i); -#endif // VK_USE_PLATFORM_FUCHSIA - if (shouldAcceptMemoryIndex) { res |= (1 << i); } |