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

Commit e1bcb551 authored by Ram Indani's avatar Ram Indani Committed by Android (Google) Code Review
Browse files

Merge "Latch Unsignaled when only a single layer is being updated."

parents 86528e58 4d48f909
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -124,7 +124,7 @@ public:
    // getStatus() returns whether the fence has signaled yet. Prefer this to
    // getSignalTime() or wait() if all you care about is whether the fence has
    // signaled.
    inline Status getStatus() {
    virtual inline Status getStatus() {
        // The sync_wait call underlying wait() has been measured to be
        // significantly faster than the sync_fence_info call underlying
        // getSignalTime(), which might otherwise appear to be the more obvious
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ public:
    virtual ~MockFence() = default;

    MOCK_METHOD(nsecs_t, getSignalTime, (), (const, override));
    MOCK_METHOD(Status, getStatus, (), (override));
};

}; // namespace android::mock
+12 −0
Original line number Diff line number Diff line
@@ -42,4 +42,16 @@ TEST_F(MockFenceTest, getSignalTime) {
    EXPECT_EQ(1234, fence->getSignalTime());
}

TEST_F(MockFenceTest, getStatus) {
    sp<Fence> fence = getFenceForTesting();

    EXPECT_CALL(getMockFence(), getStatus).WillOnce(Return(Fence::Status::Unsignaled));
    EXPECT_EQ(Fence::Status::Unsignaled, fence->getStatus());

    EXPECT_CALL(getMockFence(), getStatus).WillOnce(Return(Fence::Status::Signaled));
    EXPECT_EQ(Fence::Status::Signaled, fence->getStatus());

    EXPECT_CALL(getMockFence(), getStatus).WillOnce(Return(Fence::Status::Invalid));
    EXPECT_EQ(Fence::Status::Invalid, fence->getStatus());
}
} // namespace android::ui
+1 −1
Original line number Diff line number Diff line
@@ -118,7 +118,7 @@ bool BufferQueueLayer::isBufferDue(nsecs_t expectedPresentTime) const {
bool BufferQueueLayer::fenceHasSignaled() const {
    Mutex::Autolock lock(mQueueItemLock);

    if (SurfaceFlinger::enableLatchUnsignaled) {
    if (SurfaceFlinger::enableLatchUnsignaledConfig != LatchUnsignaledConfig::Disabled) {
        return true;
    }

+1 −1
Original line number Diff line number Diff line
@@ -630,7 +630,7 @@ FloatRect BufferStateLayer::computeSourceBounds(const FloatRect& parentBounds) c
// Interface implementation for BufferLayer
// -----------------------------------------------------------------------
bool BufferStateLayer::fenceHasSignaled() const {
    if (SurfaceFlinger::enableLatchUnsignaled) {
    if (SurfaceFlinger::enableLatchUnsignaledConfig != LatchUnsignaledConfig::Disabled) {
        return true;
    }

Loading