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

Commit 8bd3c2f0 authored by Ady Abraham's avatar Ady Abraham
Browse files

composer: 2.4: vts: do not try to delay a config change outside a group

When switching to a new config, we can set the desiredTimeNanos to
be in the future only for configs within the same config groups.

Bug: 190250110
Test: atest VtsHalGraphicsComposerV2_4TargetTest
Change-Id: I5e292b656eccf6e90c06e08c6eb202d689b6f026
parent a9172e6e
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -561,17 +561,28 @@ void GraphicsComposerHidlTest::Test_setActiveConfigWithConstraints(const TestPar
            setActiveConfig(display, config1);
            sendRefreshFrame(display, nullptr);

            int32_t vsyncPeriod1 = mComposerClient->getDisplayAttribute_2_4(
            const auto vsyncPeriod1 = mComposerClient->getDisplayAttribute_2_4(
                    display.get(), config1,
                    IComposerClient::IComposerClient::Attribute::VSYNC_PERIOD);
            int32_t vsyncPeriod2 = mComposerClient->getDisplayAttribute_2_4(
            const auto configGroup1 = mComposerClient->getDisplayAttribute_2_4(
                    display.get(), config1,
                    IComposerClient::IComposerClient::Attribute::CONFIG_GROUP);
            const auto vsyncPeriod2 = mComposerClient->getDisplayAttribute_2_4(
                    display.get(), config2,
                    IComposerClient::IComposerClient::Attribute::VSYNC_PERIOD);
            const auto configGroup2 = mComposerClient->getDisplayAttribute_2_4(
                    display.get(), config2,
                    IComposerClient::IComposerClient::Attribute::CONFIG_GROUP);

            if (vsyncPeriod1 == vsyncPeriod2) {
                return;  // continue
            }

            // We don't allow delayed change when changing config groups
            if (params.delayForChange > 0 && configGroup1 != configGroup2) {
                return;  // continue
            }

            VsyncPeriodChangeTimeline timeline;
            IComposerClient::VsyncPeriodChangeConstraints constraints = {
                    .desiredTimeNanos = systemTime() + params.delayForChange,