diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-08-30 18:22:09 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-08-30 18:22:09 +0000 |
commit | 917c7b6611e005af62aacb9f93089b1ad7b4b8fe (patch) | |
tree | 5a31a5cf1e5522c80d8e58102aa0fe9513bbb45e | |
parent | d30ea6a3a03c872085142c62b95af2c591fa5c88 (diff) | |
parent | 299fe6f5d6fc6f1af7c3411dcf4e5efdf7217368 (diff) | |
download | base-917c7b6611e005af62aacb9f93089b1ad7b4b8fe.tar.gz |
Merge cherrypicks of ['googleplex-android-review.googlesource.com/24592263'] into udc-release. am: 299fe6f5d6
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24603001
Change-Id: Id2217d07481f79208695b2e482c75fdfbea2754b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 1 | ||||
-rw-r--r-- | libs/hwui/renderthread/HintSessionWrapper.cpp | 9 | ||||
-rw-r--r-- | libs/hwui/renderthread/HintSessionWrapper.h | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index 16b35ffcabac..504dfaa2a1f5 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -193,6 +193,7 @@ void CanvasContext::setHardwareBuffer(AHardwareBuffer* buffer) { void CanvasContext::setSurface(ANativeWindow* window, bool enableTimeout) { ATRACE_CALL(); + startHintSession(); if (window) { mNativeSurface = std::make_unique<ReliableSurface>(window); mNativeSurface->init(); diff --git a/libs/hwui/renderthread/HintSessionWrapper.cpp b/libs/hwui/renderthread/HintSessionWrapper.cpp index 814ac4d90028..1f338ee523eb 100644 --- a/libs/hwui/renderthread/HintSessionWrapper.cpp +++ b/libs/hwui/renderthread/HintSessionWrapper.cpp @@ -93,8 +93,17 @@ HintSessionWrapper::HintSessionWrapper(pid_t uiThreadId, pid_t renderThreadId) : mUiThreadId(uiThreadId), mRenderThreadId(renderThreadId) {} HintSessionWrapper::~HintSessionWrapper() { + destroy(); +} + +void HintSessionWrapper::destroy() { + if (mHintSessionFuture.valid()) { + mHintSession = mHintSessionFuture.get(); + } if (mHintSession) { gAPH_closeSessionFn(mHintSession); + mSessionValid = true; + mHintSession = nullptr; } } diff --git a/libs/hwui/renderthread/HintSessionWrapper.h b/libs/hwui/renderthread/HintSessionWrapper.h index 24b8150dd489..bdb9959b1ca7 100644 --- a/libs/hwui/renderthread/HintSessionWrapper.h +++ b/libs/hwui/renderthread/HintSessionWrapper.h @@ -37,6 +37,7 @@ public: void sendLoadResetHint(); void sendLoadIncreaseHint(); bool init(); + void destroy(); private: APerformanceHintSession* mHintSession = nullptr; |