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

Commit d65be4c5 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Handle buffer orientation when rejecting buffers via blast"

parents 8991beb2 e1a4232e
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -252,8 +252,8 @@ void BLASTBufferQueue::processNextBufferLocked(bool useNextTransaction) {
    }

    if (rejectBuffer(bufferItem)) {
        BQA_LOGE("rejecting buffer: configured width=%d, height=%d, buffer{w=%d, h=%d}", mWidth,
                 mHeight, buffer->getWidth(), buffer->getHeight());
        BQA_LOGE("rejecting buffer:configured size=%dx%d, buffer{size=%dx%d transform=%d}", mWidth,
                 mHeight, buffer->getWidth(), buffer->getHeight(), bufferItem.mTransform);
        mBufferItemConsumer->releaseBuffer(bufferItem, Fence::NO_FENCE);
        return;
    }
@@ -330,7 +330,15 @@ bool BLASTBufferQueue::rejectBuffer(const BufferItem& item) const {
        return false;
    }

    uint32_t bufWidth = item.mGraphicBuffer->getWidth();
    uint32_t bufHeight = item.mGraphicBuffer->getHeight();

    // Take the buffer's orientation into account
    if (item.mTransform & ui::Transform::ROT_90) {
        std::swap(bufWidth, bufHeight);
    }

    // reject buffers if the buffer size doesn't match.
    return item.mGraphicBuffer->getWidth() != mWidth || item.mGraphicBuffer->getHeight() != mHeight;
    return bufWidth != mWidth || bufHeight != mHeight;
}
} // namespace android
+2 −2
Original line number Diff line number Diff line
@@ -490,8 +490,8 @@ public:
        IGraphicBufferProducer::QueueBufferOutput qbOutput;
        IGraphicBufferProducer::QueueBufferInput input(systemTime(), false, HAL_DATASPACE_UNKNOWN,
                                                       Rect(bufWidth, bufHeight),
                                                       NATIVE_WINDOW_SCALING_MODE_FREEZE, tr,
                                                       Fence::NO_FENCE);
                                                       NATIVE_WINDOW_SCALING_MODE_SCALE_TO_WINDOW,
                                                       tr, Fence::NO_FENCE);
        igbProducer->queueBuffer(slot, input, &qbOutput);
        ASSERT_NE(ui::Transform::ROT_INVALID, qbOutput.transformHint);