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

Commit 5a5f148f authored by David Sodman's avatar David Sodman
Browse files

SF: Add sideband stream setup to setUpHwComposer

Add programming of sideband streams in SetupHwComposer

Test: Compile/Run manually
Merged-In: Ic71d95746015f6634d7f861370be6a1de41f4eb7
Change-Id: Ic71d95746015f6634d7f861370be6a1de41f4eb7
parent 6773c78f
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -1967,6 +1967,20 @@ android_dataspace SurfaceFlinger::bestTargetDataSpace(
    return HAL_DATASPACE_V0_SRGB;
}

void SurfaceFlinger::configureSidebandComposition(const CompositionInfo& compositionInfo) const
{
    HWC2::Error error;
    LOG_ALWAYS_FATAL_IF(compositionInfo.hwc.sidebandStream == nullptr,
                        "CompositionType is sideband, but sideband stream is nullptr");
    error = (*compositionInfo.hwc.hwcLayer)
                    ->setSidebandStream(compositionInfo.hwc.sidebandStream->handle());
    if (error != HWC2::Error::None) {
        ALOGE("[SF] Failed to set sideband stream %p: %s (%d)",
                compositionInfo.hwc.sidebandStream->handle(), to_string(error).c_str(),
                static_cast<int32_t>(error));
    }
}

void SurfaceFlinger::configureHwcCommonData(const CompositionInfo& compositionInfo) const
{
    HWC2::Error error;
@@ -2114,7 +2128,10 @@ void SurfaceFlinger::setUpHWComposer() {
                case HWC2::Composition::Invalid:
                case HWC2::Composition::Client:
                case HWC2::Composition::Cursor:
                    break;

                case HWC2::Composition::Sideband:
                    configureSidebandComposition(compositionInfo);
                    break;

                case HWC2::Composition::SolidColor:
+2 −1
Original line number Diff line number Diff line
@@ -741,8 +741,9 @@ private:
    volatile int32_t mRepaintEverything;

    // helper methods
    void configureDeviceComposition(const CompositionInfo& compositionInfo) const;
    void configureHwcCommonData(const CompositionInfo& compositionInfo) const;
    void configureDeviceComposition(const CompositionInfo& compositionInfo) const;
    void configureSidebandComposition(const CompositionInfo& compositionInfo) const;

    // constant members (no synchronization needed for access)
    nsecs_t mBootTime;