aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHailin Zhang <hailinzhang@google.com>2022-12-08 20:20:32 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-12-08 20:20:32 +0000
commit70cb828511b8fb2505f0fa0bbd90ca65042b0228 (patch)
treed60216af9216097ba1c1ad569979695068e5590e
parent3f16150d654ddc5077c7443087b6d64199afae41 (diff)
parentc25f7c9cbf5a810291a302c7bcb8d592aefabc70 (diff)
downloadgoldfish-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.cpp14
-rw-r--r--system/vulkan_enc/ResourceTracker.cpp9
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);
}