Allow AIDL allocator service to be used by itself
The HIDL service was required to be available all of the time.
Bug: 205761012
Test: atest hal_implementation_test
Test: Build and boot cuttlefish without the HIDL service
Change-Id: I31dda32ee1758f55d745d00ab06ed890378e5e21
diff --git a/libs/ui/Gralloc4.cpp b/libs/ui/Gralloc4.cpp
index 1fce31d..4f950b8 100644
--- a/libs/ui/Gralloc4.cpp
+++ b/libs/ui/Gralloc4.cpp
@@ -1193,10 +1193,6 @@
Gralloc4Allocator::Gralloc4Allocator(const Gralloc4Mapper& mapper) : mMapper(mapper) {
mAllocator = IAllocator::getService();
- if (mAllocator == nullptr) {
- ALOGW("allocator 4.x is not supported");
- return;
- }
if (__builtin_available(android 31, *)) {
if (hasIAllocatorAidl()) {
mAidlAllocator = AidlIAllocator::fromBinder(ndk::SpAIBinder(
@@ -1204,10 +1200,14 @@
ALOGE_IF(!mAidlAllocator, "AIDL IAllocator declared but failed to get service");
}
}
+ if (mAllocator == nullptr && mAidlAllocator == nullptr) {
+ ALOGW("allocator 4.x is not supported");
+ return;
+ }
}
bool Gralloc4Allocator::isLoaded() const {
- return mAllocator != nullptr;
+ return mAllocator != nullptr || mAidlAllocator != nullptr;
}
std::string Gralloc4Allocator::dumpDebugInfo(bool less) const {