drm_hwcomposer: Don't use Mapper@4 metadata API for legacy getters
As it turned out Mapper@4 metadata API calls are slow.
Allow using legacy getters again.
Closes: https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/-/issues/56
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
diff --git a/Android.bp b/Android.bp
index eba92f8..87e2efd 100644
--- a/Android.bp
+++ b/Android.bp
@@ -78,9 +78,8 @@
vendor: true,
}
-cc_library_static {
- name: "drm_hwcomposer",
- defaults: ["hwcomposer.drm_defaults"],
+filegroup {
+ name: "drm_hwcomposer_common",
srcs: [
"DrmHwcTwo.cpp",
@@ -113,18 +112,30 @@
],
}
+// Kept only for compatibility with older Android version. Please do not use!
+cc_library_static {
+ name: "drm_hwcomposer",
+ defaults: ["hwcomposer.drm_defaults"],
+ srcs: [":drm_hwcomposer_common"],
+}
+
cc_library_shared {
name: "hwcomposer.drm",
defaults: ["hwcomposer.drm_defaults"],
- whole_static_libs: ["drm_hwcomposer"],
- srcs: ["bufferinfo/legacy/BufferInfoLibdrm.cpp"],
+ srcs: [
+ ":drm_hwcomposer_common",
+ "bufferinfo/legacy/BufferInfoLibdrm.cpp",
+ ],
+ cflags: ["-DUSE_IMAPPER4_METADATA_API"],
}
cc_library_shared {
name: "hwcomposer.drm_minigbm",
defaults: ["hwcomposer.drm_defaults"],
- whole_static_libs: ["drm_hwcomposer"],
- srcs: ["bufferinfo/legacy/BufferInfoMinigbm.cpp"],
+ srcs: [
+ ":drm_hwcomposer_common",
+ "bufferinfo/legacy/BufferInfoMinigbm.cpp",
+ ],
include_dirs: ["external/minigbm/cros_gralloc"],
}
diff --git a/bufferinfo/BufferInfoGetter.cpp b/bufferinfo/BufferInfoGetter.cpp
index 7f7f8ae..c284365 100644
--- a/bufferinfo/BufferInfoGetter.cpp
+++ b/bufferinfo/BufferInfoGetter.cpp
@@ -32,17 +32,17 @@
BufferInfoGetter *BufferInfoGetter::GetInstance() {
static std::unique_ptr<BufferInfoGetter> inst;
- if (inst == nullptr) {
-#if PLATFORM_SDK_VERSION >= 30
+ if (!inst) {
+#if PLATFORM_SDK_VERSION >= 30 && defined(USE_IMAPPER4_METADATA_API)
inst.reset(BufferInfoMapperMetadata::CreateInstance());
- if (inst == nullptr) {
+ if (!inst) {
ALOGW(
"Generic buffer getter is not available. Falling back to legacy...");
-#endif
- inst = LegacyBufferInfoGetter::CreateInstance();
-#if PLATFORM_SDK_VERSION >= 30
}
#endif
+ if (!inst) {
+ inst = LegacyBufferInfoGetter::CreateInstance();
+ }
}
return inst.get();
diff --git a/tests/Android.bp b/tests/Android.bp
index e30898c..56f8c4f 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -1,9 +1,9 @@
cc_library_shared {
name: "hwcomposer.filegroups_build_test",
defaults: ["hwcomposer.drm_defaults"],
- whole_static_libs: ["drm_hwcomposer"],
srcs: [
+ ":drm_hwcomposer_common",
":drm_hwcomposer_platformhisi",
":drm_hwcomposer_platformimagination",
":drm_hwcomposer_platformmediatek",