Merge "Remove the extra buffer allocation from hwui" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5001447b86
@@ -174,16 +174,12 @@ void CanvasContext::setSurface(ANativeWindow* window, bool enableTimeout) {
|
|||||||
ATRACE_CALL();
|
ATRACE_CALL();
|
||||||
|
|
||||||
if (window) {
|
if (window) {
|
||||||
int extraBuffers = 0;
|
|
||||||
native_window_get_extra_buffer_count(window, &extraBuffers);
|
|
||||||
|
|
||||||
mNativeSurface = std::make_unique<ReliableSurface>(window);
|
mNativeSurface = std::make_unique<ReliableSurface>(window);
|
||||||
mNativeSurface->init();
|
mNativeSurface->init();
|
||||||
if (enableTimeout) {
|
if (enableTimeout) {
|
||||||
// TODO: Fix error handling & re-shorten timeout
|
// TODO: Fix error handling & re-shorten timeout
|
||||||
ANativeWindow_setDequeueTimeout(window, 4000_ms);
|
ANativeWindow_setDequeueTimeout(window, 4000_ms);
|
||||||
}
|
}
|
||||||
mNativeSurface->setExtraBufferCount(extraBuffers);
|
|
||||||
} else {
|
} else {
|
||||||
mNativeSurface = nullptr;
|
mNativeSurface = nullptr;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -278,7 +278,6 @@ int ReliableSurface::hook_query(const ANativeWindow *window, ANativeWindow_query
|
|||||||
int result = query(window, what, value);
|
int result = query(window, what, value);
|
||||||
if (what == ANATIVEWINDOW_QUERY_MIN_UNDEQUEUED_BUFFERS && result == OK) {
|
if (what == ANATIVEWINDOW_QUERY_MIN_UNDEQUEUED_BUFFERS && result == OK) {
|
||||||
std::lock_guard _lock{rs->mMutex};
|
std::lock_guard _lock{rs->mMutex};
|
||||||
*value += rs->mExtraBuffers;
|
|
||||||
rs->mExpectedBufferCount = *value + 2;
|
rs->mExpectedBufferCount = *value + 2;
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -51,11 +51,6 @@ public:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setExtraBufferCount(size_t extraBuffers) {
|
|
||||||
std::lock_guard _lock{mMutex};
|
|
||||||
mExtraBuffers = extraBuffers;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool didSetExtraBuffers() const {
|
bool didSetExtraBuffers() const {
|
||||||
std::lock_guard _lock{mMutex};
|
std::lock_guard _lock{mMutex};
|
||||||
return mDidSetExtraBuffers;
|
return mDidSetExtraBuffers;
|
||||||
@@ -73,7 +68,6 @@ private:
|
|||||||
base::unique_fd mReservedFenceFd;
|
base::unique_fd mReservedFenceFd;
|
||||||
bool mHasDequeuedBuffer = false;
|
bool mHasDequeuedBuffer = false;
|
||||||
int mBufferQueueState = OK;
|
int mBufferQueueState = OK;
|
||||||
size_t mExtraBuffers = 0;
|
|
||||||
size_t mExpectedBufferCount = 0;
|
size_t mExpectedBufferCount = 0;
|
||||||
bool mDidSetExtraBuffers = false;
|
bool mDidSetExtraBuffers = false;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user