summaryrefslogtreecommitdiff
path: root/hwc3/impl/HalImpl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hwc3/impl/HalImpl.cpp')
-rw-r--r--hwc3/impl/HalImpl.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/hwc3/impl/HalImpl.cpp b/hwc3/impl/HalImpl.cpp
index 1029fe8..38c8b02 100644
--- a/hwc3/impl/HalImpl.cpp
+++ b/hwc3/impl/HalImpl.cpp
@@ -14,15 +14,17 @@
* limitations under the License.
*/
+#include "HalImpl.h"
+
+#include <aidl/android/hardware/graphics/composer3/IComposerCallback.h>
#include <android-base/logging.h>
#include <hardware/hwcomposer2.h>
-#include "ExynosDeviceModule.h"
#include "ExynosDevice.h"
+#include "ExynosDeviceModule.h"
#include "ExynosDisplay.h"
#include "ExynosHWCService.h"
#include "ExynosLayer.h"
-#include "HalImpl.h"
#include "TranslateHwcAidl.h"
#include "Util.h"
@@ -185,6 +187,10 @@ void HalImpl::registerEventCallback(EventCallback* callback) {
reinterpret_cast<hwc2_function_pointer_t>(hook::vsyncPeriodTimingChanged));
mDevice->registerCallback(HWC2_CALLBACK_SEAMLESS_POSSIBLE, this,
reinterpret_cast<hwc2_function_pointer_t>(hook::seamlessPossible));
+
+ // register HWC3 Callback
+ mDevice->registerHwc3Callback(IComposerCallback::TRANSACTION_onVsyncIdle, this,
+ reinterpret_cast<hwc2_function_pointer_t>(hook::vsyncIdle));
}
void HalImpl::unregisterEventCallback() {
@@ -194,6 +200,9 @@ void HalImpl::unregisterEventCallback() {
mDevice->registerCallback(HWC2_CALLBACK_VSYNC_PERIOD_TIMING_CHANGED, this, nullptr);
mDevice->registerCallback(HWC2_CALLBACK_SEAMLESS_POSSIBLE, this, nullptr);
+ // unregister HWC3 Callback
+ mDevice->registerHwc3Callback(IComposerCallback::TRANSACTION_onVsyncIdle, this, nullptr);
+
mEventCallback = nullptr;
}