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

Commit 0094dc6d authored by Ady Abraham's avatar Ady Abraham
Browse files

SF: populate state correctly in Display::applyLayerRequestsToLayers

Fix a bug where we update a local copy of the state instead of updating it.

Bug: 189076031
Test: db shell /data/nativetest64/libcompositionengine_test/libcompositionengine_test
Change-Id: I15bd19e3ba468e39a938584246a02337087fa612
parent f824b538
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -344,8 +344,8 @@ void Display::applyClientTargetRequests(const ClientTargetProperty& clientTarget
    if (clientTargetProperty.dataspace == ui::Dataspace::UNKNOWN) {
    if (clientTargetProperty.dataspace == ui::Dataspace::UNKNOWN) {
        return;
        return;
    }
    }
    auto outputState = editState();

    outputState.dataspace = clientTargetProperty.dataspace;
    editState().dataspace = clientTargetProperty.dataspace;
    getRenderSurface()->setBufferDataspace(clientTargetProperty.dataspace);
    getRenderSurface()->setBufferDataspace(clientTargetProperty.dataspace);
    getRenderSurface()->setBufferPixelFormat(clientTargetProperty.pixelFormat);
    getRenderSurface()->setBufferPixelFormat(clientTargetProperty.pixelFormat);
}
}
+23 −0
Original line number Original line Diff line number Diff line
@@ -846,6 +846,29 @@ TEST_F(DisplayApplyLayerRequestsToLayersTest, appliesDeviceLayerRequests) {
    });
    });
}
}


/*
 * Display::applyClientTargetRequests()
 */

using DisplayApplyClientTargetRequests = DisplayWithLayersTestCommon;

TEST_F(DisplayApplyLayerRequestsToLayersTest, applyClientTargetRequests) {
    Display::ClientTargetProperty clientTargetProperty = {
            .pixelFormat = hal::PixelFormat::RGB_565,
            .dataspace = hal::Dataspace::STANDARD_BT470M,
    };

    mock::RenderSurface* renderSurface = new StrictMock<mock::RenderSurface>();
    mDisplay->setRenderSurfaceForTest(std::unique_ptr<RenderSurface>(renderSurface));

    EXPECT_CALL(*renderSurface, setBufferPixelFormat(clientTargetProperty.pixelFormat));
    EXPECT_CALL(*renderSurface, setBufferDataspace(clientTargetProperty.dataspace));
    mDisplay->applyClientTargetRequests(clientTargetProperty);

    auto& state = mDisplay->getState();
    EXPECT_EQ(clientTargetProperty.dataspace, state.dataspace);
}

/*
/*
 * Display::presentAndGetFrameFences()
 * Display::presentAndGetFrameFences()
 */
 */