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

Commit bd2dcf34 authored by Jim Shargo's avatar Jim Shargo Committed by Android (Google) Code Review
Browse files

Merge "libgui: Fix broken buffer locking tests" into main

parents c6ba70c9 76e9dd57
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2662,10 +2662,10 @@ status_t Surface::lock(
        if (err) {
            return err;
        }
        // we're intending to do software rendering from this point
    }
    // we're intending to do software rendering from this point.
    setUsage(GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN |
             (mIsForCursor ? GRALLOC_USAGE_CURSOR : 0));
    }

    ANativeWindowBuffer* out;
    int fenceFd = -1;
+4 −4
Original line number Diff line number Diff line
@@ -1423,20 +1423,20 @@ TEST_F(BLASTBufferQueueTest, TransformHint) {
    ASSERT_EQ(ui::Transform::ROT_90, static_cast<ui::Transform::RotationFlags>(transformHint));

    ANativeWindow_Buffer buffer;
    surface->lock(&buffer, nullptr /* inOutDirtyBounds */);
    ASSERT_EQ(NO_ERROR, surface->lock(&buffer, nullptr /* inOutDirtyBounds */));

    // Transform hint is updated via callbacks or surface control updates
    mSurfaceControl->setTransformHint(ui::Transform::ROT_0);
    adapter.update(mSurfaceControl, mDisplayWidth, mDisplayHeight);

    // The hint does not change and matches the value used when dequeueing the buffer.
    surface->query(NATIVE_WINDOW_TRANSFORM_HINT, &transformHint);
    ASSERT_EQ(NO_ERROR, surface->query(NATIVE_WINDOW_TRANSFORM_HINT, &transformHint));
    ASSERT_EQ(ui::Transform::ROT_90, static_cast<ui::Transform::RotationFlags>(transformHint));

    surface->unlockAndPost();
    ASSERT_EQ(NO_ERROR, surface->unlockAndPost());

    // After queuing the buffer, we get the updated transform hint
    surface->query(NATIVE_WINDOW_TRANSFORM_HINT, &transformHint);
    ASSERT_EQ(NO_ERROR, surface->query(NATIVE_WINDOW_TRANSFORM_HINT, &transformHint));
    ASSERT_EQ(ui::Transform::ROT_0, static_cast<ui::Transform::RotationFlags>(transformHint));

    adapter.waitForCallbacks();
+8 −4
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@

#include <ui/GraphicBuffer.h>
#include <ui/PictureProfileHandle.h>
#include <ui/PixelFormat.h>

#include <android-base/properties.h>
#include <android-base/unique_fd.h>
@@ -385,7 +386,8 @@ TEST_F(BufferQueueTest, DetachAndReattachOnProducerSide) {
    sp<Fence> fence;
    sp<GraphicBuffer> buffer;
    ASSERT_EQ(IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION,
              mProducer->dequeueBuffer(&slot, &fence, 0, 0, 0, GRALLOC_USAGE_SW_WRITE_OFTEN,
              mProducer->dequeueBuffer(&slot, &fence, 0, 0, 0,
                                       GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN,
                                       nullptr, nullptr));
    ASSERT_EQ(BAD_VALUE, mProducer->detachBuffer(slot)); // Not requested
    ASSERT_EQ(OK, mProducer->requestBuffer(slot, &buffer));
@@ -434,7 +436,8 @@ TEST_F(BufferQueueTest, DetachAndReattachOnConsumerSide) {
    sp<Fence> fence;
    sp<GraphicBuffer> buffer;
    ASSERT_EQ(IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION,
              mProducer->dequeueBuffer(&slot, &fence, 0, 0, 0, GRALLOC_USAGE_SW_WRITE_OFTEN,
              mProducer->dequeueBuffer(&slot, &fence, 0, 0, 0,
                                       GRALLOC_USAGE_SW_READ_OFTEN | GRALLOC_USAGE_SW_WRITE_OFTEN,
                                       nullptr, nullptr));
    ASSERT_EQ(OK, mProducer->requestBuffer(slot, &buffer));
    IGraphicBufferProducer::QueueBufferInput input(0, false,
@@ -492,7 +495,8 @@ TEST_F(BufferQueueTest, MoveFromConsumerToProducer) {
    sp<Fence> fence;
    sp<GraphicBuffer> buffer;
    ASSERT_EQ(IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION,
              mProducer->dequeueBuffer(&slot, &fence, 0, 0, 0, GRALLOC_USAGE_SW_WRITE_OFTEN,
              mProducer->dequeueBuffer(&slot, &fence, 0, 0, 0,
                                       GRALLOC_USAGE_SW_WRITE_OFTEN | GRALLOC_USAGE_SW_READ_OFTEN,
                                       nullptr, nullptr));
    ASSERT_EQ(OK, mProducer->requestBuffer(slot, &buffer));

+2 −1
Original line number Diff line number Diff line
@@ -19,4 +19,5 @@
#include <hardware/gralloc.h>

// Arbitrary non-zero usage flag.
constexpr uint64_t TEST_PRODUCER_USAGE_BITS = GRALLOC_USAGE_SW_READ_RARELY;
constexpr uint64_t TEST_PRODUCER_USAGE_BITS =
        GRALLOC_USAGE_SW_READ_RARELY | GRALLOC_USAGE_SW_WRITE_RARELY;
+6 −2
Original line number Diff line number Diff line
@@ -67,7 +67,9 @@ TEST_F(StreamSplitterTest, OneInputOneOutput) {
    sp<Fence> fence;
    sp<GraphicBuffer> buffer;
    ASSERT_EQ(IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION,
              inputProducer->dequeueBuffer(&slot, &fence, 0, 0, 0, GRALLOC_USAGE_SW_WRITE_OFTEN,
              inputProducer->dequeueBuffer(&slot, &fence, 0, 0, 0,
                                           GRALLOC_USAGE_SW_READ_OFTEN |
                                                   GRALLOC_USAGE_SW_WRITE_OFTEN,
                                           nullptr, nullptr));
    ASSERT_EQ(OK, inputProducer->requestBuffer(slot, &buffer));

@@ -138,7 +140,9 @@ TEST_F(StreamSplitterTest, OneInputMultipleOutputs) {
    sp<Fence> fence;
    sp<GraphicBuffer> buffer;
    ASSERT_EQ(IGraphicBufferProducer::BUFFER_NEEDS_REALLOCATION,
              inputProducer->dequeueBuffer(&slot, &fence, 0, 0, 0, GRALLOC_USAGE_SW_WRITE_OFTEN,
              inputProducer->dequeueBuffer(&slot, &fence, 0, 0, 0,
                                           GRALLOC_USAGE_SW_READ_OFTEN |
                                                   GRALLOC_USAGE_SW_WRITE_OFTEN,
                                           nullptr, nullptr));
    ASSERT_EQ(OK, inputProducer->requestBuffer(slot, &buffer));

Loading