summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ady Abraham <adyabr@google.com> 2021-05-18 14:00:07 -0700
committer Ady Abraham <adyabr@google.com> 2021-06-15 10:25:29 -0700
commitf558ab782c566e995fa6b4ad546feaea46a207bd (patch)
tree294d4d8e09b28411e5f65fac3781d6f1bb7e864a
parent216d32af4dfdc67dfc114f45d8bc1206b5bb2b46 (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.cpp4
-rw-r--r--libs/hwui/renderthread/ReliableSurface.cpp1
-rw-r--r--libs/hwui/renderthread/ReliableSurface.h6
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;