diff options
author | 2021-05-18 14:00:07 -0700 | |
---|---|---|
committer | 2021-06-15 10:25:29 -0700 | |
commit | f558ab782c566e995fa6b4ad546feaea46a207bd (patch) | |
tree | 294d4d8e09b28411e5f65fac3781d6f1bb7e864a | |
parent | 216d32af4dfdc67dfc114f45d8bc1206b5bb2b46 (diff) |
Remove the extra buffer allocation from hwui
SurfaceFlinger will set the maxAcquiredBufferCount on the buffer queue
to account for the extra buffers needed, depends on the refresh rate
and app/sf durations, and there is no needed for any addional buffer
allocation is hwui.
Test: TBD
Bug: 188553729
Change-Id: Ic441a6feb15f6b084d45c9e538b11b7b24e36a0e
-rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 4 | ||||
-rw-r--r-- | libs/hwui/renderthread/ReliableSurface.cpp | 1 | ||||
-rw-r--r-- | libs/hwui/renderthread/ReliableSurface.h | 6 |
3 files changed, 0 insertions, 11 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index a0d93e928876..a55aff1b9e67 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -174,16 +174,12 @@ void CanvasContext::setSurface(ANativeWindow* window, bool enableTimeout) { ATRACE_CALL(); if (window) { - int extraBuffers = 0; - native_window_get_extra_buffer_count(window, &extraBuffers); - mNativeSurface = std::make_unique<ReliableSurface>(window); mNativeSurface->init(); if (enableTimeout) { // TODO: Fix error handling & re-shorten timeout ANativeWindow_setDequeueTimeout(window, 4000_ms); } - mNativeSurface->setExtraBufferCount(extraBuffers); } else { mNativeSurface = nullptr; } diff --git a/libs/hwui/renderthread/ReliableSurface.cpp b/libs/hwui/renderthread/ReliableSurface.cpp index c29cc11fa7ea..6df34bee2224 100644 --- a/libs/hwui/renderthread/ReliableSurface.cpp +++ b/libs/hwui/renderthread/ReliableSurface.cpp @@ -278,7 +278,6 @@ int ReliableSurface::hook_query(const ANativeWindow *window, ANativeWindow_query int result = query(window, what, value); if (what == ANATIVEWINDOW_QUERY_MIN_UNDEQUEUED_BUFFERS && result == OK) { std::lock_guard _lock{rs->mMutex}; - *value += rs->mExtraBuffers; rs->mExpectedBufferCount = *value + 2; } return result; diff --git a/libs/hwui/renderthread/ReliableSurface.h b/libs/hwui/renderthread/ReliableSurface.h index 41969e776fc8..595964741049 100644 --- a/libs/hwui/renderthread/ReliableSurface.h +++ b/libs/hwui/renderthread/ReliableSurface.h @@ -51,11 +51,6 @@ public: return ret; } - void setExtraBufferCount(size_t extraBuffers) { - std::lock_guard _lock{mMutex}; - mExtraBuffers = extraBuffers; - } - bool didSetExtraBuffers() const { std::lock_guard _lock{mMutex}; return mDidSetExtraBuffers; @@ -73,7 +68,6 @@ private: base::unique_fd mReservedFenceFd; bool mHasDequeuedBuffer = false; int mBufferQueueState = OK; - size_t mExtraBuffers = 0; size_t mExpectedBufferCount = 0; bool mDidSetExtraBuffers = false; |