summaryrefslogtreecommitdiff
path: root/libs/hwui/renderthread
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/renderthread')
-rw-r--r--libs/hwui/renderthread/ReliableSurface.cpp24
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;