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

Commit 489671f6 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 12715656 from 06883bbb to 25Q1-release

Change-Id: I929a141d30abcc7a85f974599c4d320182e78393
parents 592ba0d1 06883bbb
Loading
Loading
Loading
Loading
+17 −11
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <ftl/concat.h>
#include <ftl/expected.h>
#include <log/log.h>
#include <utils/Errors.h>

namespace android::display {

@@ -177,12 +178,13 @@ void DisplayModeController::clearDesiredMode(PhysicalDisplayId displayId) {
    }
}

bool DisplayModeController::initiateModeChange(PhysicalDisplayId displayId,
                                               DisplayModeRequest&& desiredMode,
auto DisplayModeController::initiateModeChange(
        PhysicalDisplayId displayId, DisplayModeRequest&& desiredMode,
        const hal::VsyncPeriodChangeConstraints& constraints,
                                               hal::VsyncPeriodChangeTimeline& outTimeline) {
        hal::VsyncPeriodChangeTimeline& outTimeline) -> ModeChangeResult {
    std::lock_guard lock(mDisplayLock);
    const auto& displayPtr = FTL_EXPECT(mDisplays.get(displayId).ok_or(false)).get();
    const auto& displayPtr =
            FTL_EXPECT(mDisplays.get(displayId).ok_or(ModeChangeResult::Aborted)).get();

    // TODO: b/255635711 - Flow the DisplayModeRequest through the desired/pending/active states.
    // For now, `desiredMode` and `desiredModeOpt` are one and the same, but the latter is not
@@ -201,13 +203,17 @@ bool DisplayModeController::initiateModeChange(PhysicalDisplayId displayId,

    const auto& mode = *displayPtr->pendingModeOpt->mode.modePtr;

    if (mComposerPtr->setActiveModeWithConstraints(displayId, mode.getHwcId(), constraints,
                                                   &outTimeline) != OK) {
        return false;
    }

    const auto error = mComposerPtr->setActiveModeWithConstraints(displayId, mode.getHwcId(),
                                                                  constraints, &outTimeline);
    switch (error) {
        case FAILED_TRANSACTION:
            return ModeChangeResult::Rejected;
        case OK:
            SFTRACE_INT(displayPtr->pendingModeFpsTrace.c_str(), mode.getVsyncRate().getIntValue());
    return true;
            return ModeChangeResult::Changed;
        default:
            return ModeChangeResult::Aborted;
    }
}

void DisplayModeController::finalizeModeChange(PhysicalDisplayId displayId, DisplayModeId modeId,
+4 −3
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ public:
    RefreshRateSelectorPtr selectorPtrFor(PhysicalDisplayId) const EXCLUDES(mDisplayLock);

    enum class DesiredModeAction { None, InitiateDisplayModeSwitch, InitiateRenderRateSwitch };
    enum class ModeChangeResult { Changed, Rejected, Aborted };

    DesiredModeAction setDesiredMode(PhysicalDisplayId, DisplayModeRequest&&)
            EXCLUDES(mDisplayLock);
@@ -86,7 +87,7 @@ public:

    scheduler::FrameRateMode getActiveMode(PhysicalDisplayId) const EXCLUDES(mDisplayLock);

    bool initiateModeChange(PhysicalDisplayId, DisplayModeRequest&&,
    ModeChangeResult initiateModeChange(PhysicalDisplayId, DisplayModeRequest&&,
                                        const hal::VsyncPeriodChangeConstraints&,
                                        hal::VsyncPeriodChangeTimeline& outTimeline)
            REQUIRES(kMainThreadContext) EXCLUDES(mDisplayLock);
+3 −3
Original line number Diff line number Diff line
@@ -1384,7 +1384,7 @@ V2_4::Error AidlComposer::getDisplayVsyncPeriod(Display display, VsyncPeriodNano
    return V2_4::Error::NONE;
}

V2_4::Error AidlComposer::setActiveConfigWithConstraints(
Error AidlComposer::setActiveConfigWithConstraints(
        Display display, Config config,
        const IComposerClient::VsyncPeriodChangeConstraints& vsyncPeriodChangeConstraints,
        VsyncPeriodChangeTimeline* outTimeline) {
@@ -1398,10 +1398,10 @@ V2_4::Error AidlComposer::setActiveConfigWithConstraints(
                                                     &timeline);
    if (!status.isOk()) {
        ALOGE("setActiveConfigWithConstraints failed %s", status.getDescription().c_str());
        return static_cast<V2_4::Error>(status.getServiceSpecificError());
        return static_cast<Error>(status.getServiceSpecificError());
    }
    *outTimeline = translate<VsyncPeriodChangeTimeline>(timeline);
    return V2_4::Error::NONE;
    return Error::NONE;
}

V2_4::Error AidlComposer::setAutoLowLatencyMode(Display display, bool on) {
+1 −1
Original line number Diff line number Diff line
@@ -206,7 +206,7 @@ public:
    V2_4::Error getDisplayConnectionType(Display display,
                                         IComposerClient::DisplayConnectionType* outType) override;
    V2_4::Error getDisplayVsyncPeriod(Display display, VsyncPeriodNanos* outVsyncPeriod) override;
    V2_4::Error setActiveConfigWithConstraints(
    Error setActiveConfigWithConstraints(
            Display display, Config config,
            const IComposerClient::VsyncPeriodChangeConstraints& vsyncPeriodChangeConstraints,
            VsyncPeriodChangeTimeline* outTimeline) override;
+4 −2
Original line number Diff line number Diff line
@@ -32,6 +32,8 @@
#include <ui/PictureProfileHandle.h>
#include <utils/StrongPointer.h>

#include "DisplayHardware/Hal.h"

#include <aidl/android/hardware/graphics/common/DisplayDecorationSupport.h>
#include <aidl/android/hardware/graphics/common/HdrConversionCapability.h>
#include <aidl/android/hardware/graphics/common/HdrConversionStrategy.h>
@@ -73,9 +75,9 @@ using types::V1_2::ColorMode;
using types::V1_2::Dataspace;
using types::V1_2::PixelFormat;

using hardware::graphics::composer::hal::Error;
using V2_1::Config;
using V2_1::Display;
using V2_1::Error;
using V2_1::Layer;
using V2_4::CommandReaderBase;
using V2_4::CommandWriterBase;
@@ -261,7 +263,7 @@ public:
            Display display, IComposerClient::DisplayConnectionType* outType) = 0;
    virtual V2_4::Error getDisplayVsyncPeriod(Display display,
                                              VsyncPeriodNanos* outVsyncPeriod) = 0;
    virtual V2_4::Error setActiveConfigWithConstraints(
    virtual Error setActiveConfigWithConstraints(
            Display display, Config config,
            const IComposerClient::VsyncPeriodChangeConstraints& vsyncPeriodChangeConstraints,
            VsyncPeriodChangeTimeline* outTimeline) = 0;
Loading