drm_hwcomposer: Use hwc3 version 3
Add stubs for new APIs. Bump the version number in the manifest
fragment.
Update Docker configuration to use new aospless tarball that contains
the required build dependencies for hwc3 v3.
Change-Id: I521f649c2f820f54bc3c6adcda8e17d5ab3112e1
Signed-off-by: Drew Davenport <ddavenport@google.com>
diff --git a/.ci/Dockerfile b/.ci/Dockerfile
index a038cd7..c42c8b6 100644
--- a/.ci/Dockerfile
+++ b/.ci/Dockerfile
@@ -41,12 +41,11 @@
USER ${RUN_USER}
# Install aospless package (produced by GloDroid/aospext)
-RUN wget -P ${USER_HOME} https://gitlab.freedesktop.org/drm-hwcomposer/drm-hwcomposer/uploads/af611363cabab0e9557c53b844197228/aospless_drm_hwcomposer_arm64.tar.xz && \
+RUN wget -P ${USER_HOME} https://gitlab.freedesktop.org/-/project/5/uploads/d66764aa71f9f1235b92d44a652cd3c3/aospless_drm_hwcomposer_arm64.tar.xz && \
cd ${USER_HOME} && \
sha256sum aospless_drm_hwcomposer_arm64.tar.xz && \
- (echo 07b70f3172acf55dafb5882fab0c6c618854e3a9ff7496fa8b1e5fd2ee68cf0a aospless_drm_hwcomposer_arm64.tar.xz | sha256sum --check) && \
- tar xf aospless_drm_hwcomposer_arm64.tar.xz && \
- rm -r ${USER_HOME}/aospless/src && ln -s ../drm_hwcomposer/ ${USER_HOME}/aospless/src
+ (echo 00ff288f184111dd35143c462e82fd5f8f31a1417d5eb9a11e8798695abcc141 aospless_drm_hwcomposer_arm64.tar.xz | sha256sum --check) && \
+ tar xf aospless_drm_hwcomposer_arm64.tar.xz && ln -s ../drm_hwcomposer/ ${USER_HOME}/aospless/src
# Create project path
RUN mkdir -pv ${USER_HOME}/drm_hwcomposer
diff --git a/Android.bp b/Android.bp
index 2d9b7ef..2266e59 100644
--- a/Android.bp
+++ b/Android.bp
@@ -175,7 +175,7 @@
],
shared_libs: [
- "android.hardware.graphics.composer3-V1-ndk",
+ "android.hardware.graphics.composer3-V3-ndk",
"libbase",
"libbinder",
"libbinder_ndk",
diff --git a/hwc3/ComposerClient.cpp b/hwc3/ComposerClient.cpp
index e12a236..a3e5ebc 100644
--- a/hwc3/ComposerClient.cpp
+++ b/hwc3/ComposerClient.cpp
@@ -931,6 +931,39 @@
return ToBinderStatus(hwc3::Error::kUnsupported);
}
+ndk::ScopedAStatus ComposerClient::getOverlaySupport(
+ OverlayProperties* /*out_overlay_properties*/) {
+ return ToBinderStatus(hwc3::Error::kUnsupported);
+}
+
+ndk::ScopedAStatus ComposerClient::getHdrConversionCapabilities(
+ std::vector<common::HdrConversionCapability>* /*out_capabilities*/) {
+ return ToBinderStatus(hwc3::Error::kUnsupported);
+}
+
+ndk::ScopedAStatus ComposerClient::setHdrConversionStrategy(
+ const common::HdrConversionStrategy& /*conversion_strategy*/,
+ common::Hdr* /*out_hdr*/) {
+ return ToBinderStatus(hwc3::Error::kUnsupported);
+}
+
+ndk::ScopedAStatus ComposerClient::setRefreshRateChangedCallbackDebugEnabled(
+ int64_t /*display*/, bool /*enabled*/) {
+ return ToBinderStatus(hwc3::Error::kUnsupported);
+}
+
+ndk::ScopedAStatus ComposerClient::getDisplayConfigurations(
+ int64_t display, int32_t max_frame_interval_ns,
+ std::vector<DisplayConfiguration>* configurations) {
+ return ToBinderStatus(hwc3::Error::kUnsupported);
+}
+
+ndk::ScopedAStatus ComposerClient::notifyExpectedPresent(
+ int64_t /*display*/, const ClockMonotonicTimestamp& /*expected_present_time*/,
+ int32_t /*frame_interval_ns*/) {
+ return ToBinderStatus(hwc3::Error::kUnsupported);
+}
+
std::string ComposerClient::Dump() {
uint32_t size = 0;
hwc_->Dump(&size, nullptr);
diff --git a/hwc3/ComposerClient.h b/hwc3/ComposerClient.h
index 616f8aa..f6362ad 100644
--- a/hwc3/ComposerClient.h
+++ b/hwc3/ComposerClient.h
@@ -136,6 +136,21 @@
ndk::ScopedAStatus setVsyncEnabled(int64_t display, bool enabled) override;
ndk::ScopedAStatus setIdleTimerEnabled(int64_t display,
int32_t timeout) override;
+ ndk::ScopedAStatus getOverlaySupport(
+ OverlayProperties* out_overlay_properties) override;
+ ndk::ScopedAStatus getHdrConversionCapabilities(
+ std::vector<common::HdrConversionCapability>* out_capabilities) override;
+ ndk::ScopedAStatus setHdrConversionStrategy(
+ const common::HdrConversionStrategy& conversion_strategy,
+ common::Hdr* out_hdr) override;
+ ndk::ScopedAStatus setRefreshRateChangedCallbackDebugEnabled(
+ int64_t display, bool enabled) override;
+ ndk::ScopedAStatus getDisplayConfigurations(
+ int64_t display, int32_t max_frame_interval_ns,
+ std::vector<DisplayConfiguration>* configurations) override;
+ ndk::ScopedAStatus notifyExpectedPresent(
+ int64_t display, const ClockMonotonicTimestamp& expected_present_time,
+ int32_t frame_interval_ns) override;
protected:
::ndk::SpAIBinder createBinder() override;
diff --git a/hwc3/hwc3-drm.xml b/hwc3/hwc3-drm.xml
index 05a7c09..911f7f8 100644
--- a/hwc3/hwc3-drm.xml
+++ b/hwc3/hwc3-drm.xml
@@ -1,7 +1,7 @@
<manifest version="1.0" type="device">
<hal format="aidl">
<name>android.hardware.graphics.composer3</name>
- <version>1</version>
+ <version>3</version>
<interface>
<name>IComposer</name>
<instance>default</instance>