Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77477858 authored by Jason Macnak's avatar Jason Macnak
Browse files

Make ReliableSurface's fallback buffer match ANW size

Bug: b/397754921
Test: cts -m CtsUiRenderingTestCases
Change-Id: Ie5faee78a051bd7b18bbcf62b0d9334964066465
parent 05b45303
Loading
Loading
Loading
Loading
+20 −4
Original line number Diff line number Diff line
@@ -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;