diff options
author | 2025-02-26 12:19:20 -0800 | |
---|---|---|
committer | 2025-03-10 10:20:55 -0700 | |
commit | 77477858a7e5fd025680b7534af70637e9e0328e (patch) | |
tree | d4e3c5e00cda37a5badcf1577f446b22a46effba | |
parent | 05b45303b1c5fef18509e409c47a8674b81c84b2 (diff) |
Make ReliableSurface's fallback buffer match ANW size
Bug: b/397754921
Test: cts -m CtsUiRenderingTestCases
Change-Id: Ie5faee78a051bd7b18bbcf62b0d9334964066465
-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; |