SF: Remove composer sequence IDs
Multiple HWC instances are no longer supported since VR was nixed.
Also, rename HAL callbacks so their origin is clear.
Bug: 182939859
Test: Build
Change-Id: Ia09b120dce1a4659a3cbb8927d44da8fba266c54
Merged-In: Ia09b120dce1a4659a3cbb8927d44da8fba266c54
diff --git a/services/surfaceflinger/DisplayHardware/HWC2.h b/services/surfaceflinger/DisplayHardware/HWC2.h
index fae95e7..871465d 100644
--- a/services/surfaceflinger/DisplayHardware/HWC2.h
+++ b/services/surfaceflinger/DisplayHardware/HWC2.h
@@ -56,20 +56,16 @@
// Implement this interface to receive hardware composer events.
//
// These callback functions will generally be called on a hwbinder thread, but
-// when first registering the callback the onHotplugReceived() function will
+// when first registering the callback the onComposerHalHotplug() function will
// immediately be called on the thread calling registerCallback().
-//
-// All calls receive a sequenceId, which will be the value that was supplied to
-// HWC2::Device::registerCallback(). It's used to help differentiate callbacks
-// from different hardware composer instances.
struct ComposerCallback {
- virtual void onHotplugReceived(int32_t sequenceId, hal::HWDisplayId, hal::Connection) = 0;
- virtual void onRefreshReceived(int32_t sequenceId, hal::HWDisplayId) = 0;
- virtual void onVsyncReceived(int32_t sequenceId, hal::HWDisplayId, int64_t timestamp,
- std::optional<hal::VsyncPeriodNanos>) = 0;
- virtual void onVsyncPeriodTimingChangedReceived(int32_t sequenceId, hal::HWDisplayId,
- const hal::VsyncPeriodChangeTimeline&) = 0;
- virtual void onSeamlessPossible(int32_t sequenceId, hal::HWDisplayId) = 0;
+ virtual void onComposerHalHotplug(hal::HWDisplayId, hal::Connection) = 0;
+ virtual void onComposerHalRefresh(hal::HWDisplayId) = 0;
+ virtual void onComposerHalVsync(hal::HWDisplayId, int64_t timestamp,
+ std::optional<hal::VsyncPeriodNanos>) = 0;
+ virtual void onComposerHalVsyncPeriodTimingChanged(hal::HWDisplayId,
+ const hal::VsyncPeriodChangeTimeline&) = 0;
+ virtual void onComposerHalSeamlessPossible(hal::HWDisplayId) = 0;
protected:
~ComposerCallback() = default;
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
index b7bb924..32f04e5 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp
@@ -82,25 +82,22 @@
class ComposerCallbackBridge : public hal::IComposerCallback {
public:
- ComposerCallbackBridge(ComposerCallback* callback, int32_t sequenceId,
- bool vsyncSwitchingSupported)
- : mCallback(callback),
- mSequenceId(sequenceId),
- mVsyncSwitchingSupported(vsyncSwitchingSupported) {}
+ ComposerCallbackBridge(ComposerCallback* callback, bool vsyncSwitchingSupported)
+ : mCallback(callback), mVsyncSwitchingSupported(vsyncSwitchingSupported) {}
- Return<void> onHotplug(hal::HWDisplayId display, hal::Connection conn) override {
- mCallback->onHotplugReceived(mSequenceId, display, conn);
+ Return<void> onHotplug(hal::HWDisplayId display, hal::Connection connection) override {
+ mCallback->onComposerHalHotplug(display, connection);
return Void();
}
Return<void> onRefresh(hal::HWDisplayId display) override {
- mCallback->onRefreshReceived(mSequenceId, display);
+ mCallback->onComposerHalRefresh(display);
return Void();
}
Return<void> onVsync(hal::HWDisplayId display, int64_t timestamp) override {
if (!mVsyncSwitchingSupported) {
- mCallback->onVsyncReceived(mSequenceId, display, timestamp, std::nullopt);
+ mCallback->onComposerHalVsync(display, timestamp, std::nullopt);
} else {
ALOGW("Unexpected onVsync callback on composer >= 2.4, ignoring.");
}
@@ -110,8 +107,7 @@
Return<void> onVsync_2_4(hal::HWDisplayId display, int64_t timestamp,
hal::VsyncPeriodNanos vsyncPeriodNanos) override {
if (mVsyncSwitchingSupported) {
- mCallback->onVsyncReceived(mSequenceId, display, timestamp,
- std::make_optional(vsyncPeriodNanos));
+ mCallback->onComposerHalVsync(display, timestamp, vsyncPeriodNanos);
} else {
ALOGW("Unexpected onVsync_2_4 callback on composer <= 2.3, ignoring.");
}
@@ -119,20 +115,18 @@
}
Return<void> onVsyncPeriodTimingChanged(
- hal::HWDisplayId display,
- const hal::VsyncPeriodChangeTimeline& updatedTimeline) override {
- mCallback->onVsyncPeriodTimingChangedReceived(mSequenceId, display, updatedTimeline);
+ hal::HWDisplayId display, const hal::VsyncPeriodChangeTimeline& timeline) override {
+ mCallback->onComposerHalVsyncPeriodTimingChanged(display, timeline);
return Void();
}
Return<void> onSeamlessPossible(hal::HWDisplayId display) override {
- mCallback->onSeamlessPossible(mSequenceId, display);
+ mCallback->onComposerHalSeamlessPossible(display);
return Void();
}
private:
- ComposerCallback* mCallback;
- const int32_t mSequenceId;
+ ComposerCallback* const mCallback;
const bool mVsyncSwitchingSupported;
};
@@ -155,7 +149,7 @@
mDisplayData.clear();
}
-void HWComposer::setConfiguration(HWC2::ComposerCallback* callback, int32_t sequenceId) {
+void HWComposer::setCallback(HWC2::ComposerCallback* callback) {
loadCapabilities();
loadLayerMetadataSupport();
@@ -164,10 +158,9 @@
return;
}
mRegisteredCallback = true;
- sp<ComposerCallbackBridge> callbackBridge(
- new ComposerCallbackBridge(callback, sequenceId,
- mComposer->isVsyncPeriodSwitchSupported()));
- mComposer->registerCallback(callbackBridge);
+
+ mComposer->registerCallback(
+ sp<ComposerCallbackBridge>::make(callback, mComposer->isVsyncPeriodSwitchSupported()));
}
bool HWComposer::getDisplayIdentificationData(hal::HWDisplayId hwcDisplayId, uint8_t* outPort,
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h
index 3ddcdd8..cd6f9f5 100644
--- a/services/surfaceflinger/DisplayHardware/HWComposer.h
+++ b/services/surfaceflinger/DisplayHardware/HWComposer.h
@@ -100,7 +100,7 @@
virtual ~HWComposer();
- virtual void setConfiguration(HWC2::ComposerCallback* callback, int32_t sequenceId) = 0;
+ virtual void setCallback(HWC2::ComposerCallback*) = 0;
virtual bool getDisplayIdentificationData(hal::HWDisplayId, uint8_t* outPort,
DisplayIdentificationData* outData) const = 0;
@@ -252,7 +252,7 @@
~HWComposer() override;
- void setConfiguration(HWC2::ComposerCallback* callback, int32_t sequenceId) override;
+ void setCallback(HWC2::ComposerCallback*) override;
bool getDisplayIdentificationData(hal::HWDisplayId, uint8_t* outPort,
DisplayIdentificationData* outData) const override;