diff options
author | 2025-03-14 09:12:58 -0700 | |
---|---|---|
committer | 2025-03-14 09:12:58 -0700 | |
commit | 71dfab310faf1c32b44f77e9f04e332fb17dc277 (patch) | |
tree | 8e19e55529afe2aa6cb429382f7fd3aea182cb35 /libs/hwui/renderthread | |
parent | a6de6d01f1a8adf123f5859c9094928b88831aad (diff) | |
parent | 77477858a7e5fd025680b7534af70637e9e0328e (diff) |
Merge "Make ReliableSurface's fallback buffer match ANW size" into main
Diffstat (limited to 'libs/hwui/renderthread')
-rw-r--r-- | libs/hwui/renderthread/ReliableSurface.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/libs/hwui/renderthread/ReliableSurface.cpp b/libs/hwui/renderthread/ReliableSurface.cpp index 64d38b9ef466..01e8010444c0 100644 --- a/libs/hwui/renderthread/ReliableSurface.cpp +++ b/libs/hwui/renderthread/ReliableSurface.cpp @@ -149,9 +149,25 @@ ANativeWindowBuffer* ReliableSurface::acquireFallbackBuffer(int error) { return AHardwareBuffer_to_ANativeWindowBuffer(mScratchBuffer.get()); } + int width = -1; + int result = mWindow->query(mWindow, NATIVE_WINDOW_DEFAULT_WIDTH, &width); + if (result != OK || width < 0) { + ALOGW("Failed to query window default width: %s (%d) value=%d", strerror(-result), result, + width); + width = 1; + } + + int height = -1; + result = mWindow->query(mWindow, NATIVE_WINDOW_DEFAULT_HEIGHT, &height); + if (result != OK || height < 0) { + ALOGW("Failed to query window default height: %s (%d) value=%d", strerror(-result), result, + height); + height = 1; + } + AHardwareBuffer_Desc desc = AHardwareBuffer_Desc{ - .width = 1, - .height = 1, + .width = static_cast<uint32_t>(width), + .height = static_cast<uint32_t>(height), .layers = 1, .format = mFormat, .usage = mUsage, @@ -160,9 +176,9 @@ ANativeWindowBuffer* ReliableSurface::acquireFallbackBuffer(int error) { }; AHardwareBuffer* newBuffer; - int result = AHardwareBuffer_allocate(&desc, &newBuffer); + result = AHardwareBuffer_allocate(&desc, &newBuffer); - if (result != NO_ERROR) { + if (result != OK) { // Allocate failed, that sucks ALOGW("Failed to allocate scratch buffer, error=%d", result); return nullptr; |