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

Commit 818fff84 authored by Valerie Hau's avatar Valerie Hau Committed by Android (Google) Code Review
Browse files

Merge changes from topic "FixSRGBSetColorMode_VTS_qt-dev" into qt-dev

* changes:
  DO NOT MERGE: Fixing SRGB for devices that do not support SRGB color mode
  VTS : fix vts fail [1/1]
parents 896c71a7 2f3553e1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -790,7 +790,7 @@ TEST_F(GraphicsComposerHidlCommandTest, PRESENT_DISPLAY) {
TEST_F(GraphicsComposerHidlCommandTest, PRESENT_DISPLAY_NO_LAYER_STATE_CHANGES) {
    mWriter->selectDisplay(mPrimaryDisplay);
    mComposerClient->setPowerMode(mPrimaryDisplay, IComposerClient::PowerMode::ON);
    mComposerClient->setColorMode(mPrimaryDisplay, ColorMode::SRGB);
    mComposerClient->setColorMode(mPrimaryDisplay, ColorMode::NATIVE);

    auto handle = allocate();
    ASSERT_NE(nullptr, handle);
+53 −33
Original line number Diff line number Diff line
@@ -182,6 +182,14 @@ class GraphicsComposerReadbackTest : public ::testing::VtsHalHidlTargetTestBase
        mReader = std::make_unique<TestCommandReader>();
        mGralloc = std::make_shared<Gralloc>();

        std::vector<ColorMode> colorModes = mComposerClient->getColorModes(mPrimaryDisplay);
        if (std::find(colorModes.begin(), colorModes.end(), ColorMode::SRGB) == colorModes.end()) {
            mHasReadbackBuffer = false;
            return;
        }
        mWriter->selectDisplay(mPrimaryDisplay);
        ASSERT_NO_FATAL_FAILURE(mComposerClient->setColorMode(mPrimaryDisplay, ColorMode::SRGB,
                                                              RenderIntent::COLORIMETRIC));
        mComposerClient->getRaw()->getReadbackBufferAttributes(
            mPrimaryDisplay,
            [&](const auto& tmpError, const auto& tmpPixelFormat, const auto& tmpDataspace) {
@@ -471,12 +479,12 @@ class TestBufferLayer : public TestLayer {

TEST_F(GraphicsComposerReadbackTest, SingleSolidColorLayer) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }
    mWriter->selectDisplay(mPrimaryDisplay);
    ASSERT_NO_FATAL_FAILURE(mComposerClient->setColorMode(mPrimaryDisplay, ColorMode::SRGB,
                                                          RenderIntent::COLORIMETRIC));

    auto layer = std::make_shared<TestColorLayer>(mComposerClient, mPrimaryDisplay);
    IComposerClient::Rect coloredSquare({0, 0, mDisplayWidth, mDisplayHeight});
@@ -515,12 +523,13 @@ TEST_F(GraphicsComposerReadbackTest, SingleSolidColorLayer) {

TEST_F(GraphicsComposerReadbackTest, SetLayerBuffer) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);

    ReadbackBuffer readbackBuffer(mPrimaryDisplay, mComposerClient, mGralloc, mDisplayWidth,
                                  mDisplayHeight, mPixelFormat, mDataspace);
    ASSERT_NO_FATAL_FAILURE(readbackBuffer.setReadbackBuffer());
@@ -562,13 +571,13 @@ TEST_F(GraphicsComposerReadbackTest, SetLayerBuffer) {

TEST_F(GraphicsComposerReadbackTest, SetLayerBufferNoEffect) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);
    ASSERT_NO_FATAL_FAILURE(mComposerClient->setColorMode(mPrimaryDisplay, ColorMode::SRGB,
                                                          RenderIntent::COLORIMETRIC));

    auto layer = std::make_shared<TestColorLayer>(mComposerClient, mPrimaryDisplay);
    IComposerClient::Rect coloredSquare({0, 0, mDisplayWidth, mDisplayHeight});
@@ -611,12 +620,13 @@ TEST_F(GraphicsComposerReadbackTest, SetLayerBufferNoEffect) {

TEST_F(GraphicsComposerReadbackTest, ClientComposition) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);

    std::vector<IComposerClient::Color> expectedColors(mDisplayWidth * mDisplayHeight);
    fillColorsArea(expectedColors, mDisplayWidth, {0, 0, mDisplayWidth, mDisplayHeight / 4}, RED);
    fillColorsArea(expectedColors, mDisplayWidth,
@@ -690,11 +700,13 @@ TEST_F(GraphicsComposerReadbackTest, ClientComposition) {

TEST_F(GraphicsComposerReadbackTest, DeviceAndClientComposition) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);
    ASSERT_NO_FATAL_FAILURE(
        mComposerClient->setClientTargetSlotCount(mPrimaryDisplay, kClientTargetSlotCount));

@@ -776,12 +788,13 @@ TEST_F(GraphicsComposerReadbackTest, DeviceAndClientComposition) {

TEST_F(GraphicsComposerReadbackTest, SetLayerDamage) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelformat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);

    IComposerClient::Rect redRect = {0, 0, mDisplayWidth / 4, mDisplayHeight / 4};

    std::vector<IComposerClient::Color> expectedColors(mDisplayWidth * mDisplayHeight);
@@ -842,14 +855,13 @@ TEST_F(GraphicsComposerReadbackTest, SetLayerDamage) {

TEST_F(GraphicsComposerReadbackTest, SetLayerPlaneAlpha) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);
    ASSERT_NO_FATAL_FAILURE(mComposerClient->setColorMode(mPrimaryDisplay, ColorMode::SRGB,
                                                          RenderIntent::COLORIMETRIC));

    auto layer = std::make_shared<TestColorLayer>(mComposerClient, mPrimaryDisplay);
    layer->setColor(RED);
    layer->setDisplayFrame({0, 0, mDisplayWidth, mDisplayHeight});
@@ -886,12 +898,13 @@ TEST_F(GraphicsComposerReadbackTest, SetLayerPlaneAlpha) {

TEST_F(GraphicsComposerReadbackTest, SetLayerSourceCrop) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);

    std::vector<IComposerClient::Color> expectedColors(mDisplayWidth * mDisplayHeight);
    fillColorsArea(expectedColors, mDisplayWidth, {0, 0, mDisplayWidth, mDisplayHeight / 4}, RED);
    fillColorsArea(expectedColors, mDisplayWidth,
@@ -931,14 +944,13 @@ TEST_F(GraphicsComposerReadbackTest, SetLayerSourceCrop) {

TEST_F(GraphicsComposerReadbackTest, SetLayerZOrder) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);
    ASSERT_NO_FATAL_FAILURE(mComposerClient->setColorMode(mPrimaryDisplay, ColorMode::SRGB,
                                                          RenderIntent::COLORIMETRIC));

    IComposerClient::Rect redRect = {0, 0, mDisplayWidth, mDisplayHeight / 2};
    IComposerClient::Rect blueRect = {0, mDisplayHeight / 4, mDisplayWidth, mDisplayHeight};
    auto redLayer = std::make_shared<TestColorLayer>(mComposerClient, mPrimaryDisplay);
@@ -1081,12 +1093,13 @@ class GraphicsComposerBlendModeReadbackTest : public GraphicsComposerReadbackTes

TEST_P(GraphicsComposerBlendModeReadbackTest, None) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);

    std::vector<IComposerClient::Color> expectedColors(mDisplayWidth * mDisplayHeight);

    setBackgroundColor(BLACK);
@@ -1118,12 +1131,13 @@ TEST_P(GraphicsComposerBlendModeReadbackTest, None) {
// alpha of .2, expected 10.2
TEST_P(GraphicsComposerBlendModeReadbackTest, DISABLED_Coverage) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);

    std::vector<IComposerClient::Color> expectedColors(mDisplayWidth * mDisplayHeight);

    setBackgroundColor(BLACK);
@@ -1153,12 +1167,13 @@ TEST_P(GraphicsComposerBlendModeReadbackTest, DISABLED_Coverage) {

TEST_P(GraphicsComposerBlendModeReadbackTest, Premultiplied) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }

    mWriter->selectDisplay(mPrimaryDisplay);

    std::vector<IComposerClient::Color> expectedColors(mDisplayWidth * mDisplayHeight);

    setBackgroundColor(BLACK);
@@ -1193,10 +1208,6 @@ class GraphicsComposerTransformReadbackTest : public GraphicsComposerReadbackTes
    void SetUp() override {
        GraphicsComposerReadbackTest::SetUp();

        mWriter->selectDisplay(mPrimaryDisplay);
        ASSERT_NO_FATAL_FAILURE(mComposerClient->setColorMode(mPrimaryDisplay, ColorMode::SRGB,
                                                              RenderIntent::COLORIMETRIC));

        auto backgroundLayer = std::make_shared<TestColorLayer>(mComposerClient, mPrimaryDisplay);
        backgroundLayer->setColor({0, 0, 0, 0});
        backgroundLayer->setDisplayFrame({0, 0, mDisplayWidth, mDisplayHeight});
@@ -1230,6 +1241,9 @@ class GraphicsComposerTransformReadbackTest : public GraphicsComposerReadbackTes

TEST_F(GraphicsComposerTransformReadbackTest, FLIP_H) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }
@@ -1262,6 +1276,9 @@ TEST_F(GraphicsComposerTransformReadbackTest, FLIP_H) {

TEST_F(GraphicsComposerTransformReadbackTest, FLIP_V) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }
@@ -1295,6 +1312,9 @@ TEST_F(GraphicsComposerTransformReadbackTest, FLIP_V) {

TEST_F(GraphicsComposerTransformReadbackTest, ROT_180) {
    if (!mHasReadbackBuffer) {
        std::cout << "Readback not supported or unsuppported pixelFormat/dataspace or SRGB not a "
                     "valid color mode"
                  << std::endl;
        GTEST_SUCCEED() << "Readback not supported or unsupported pixelFormat/dataspace";
        return;
    }