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

Commit c12e5b8b authored by Peiyong Lin's avatar Peiyong Lin Committed by Android (Google) Code Review
Browse files

Merge "[SurfaceFlinger] Update ColorLayer to set dataspace."

parents 2a9a1c66 13170c80
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -622,10 +622,10 @@ void BufferLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice)
        setCompositionType(hwcId, HWC2::Composition::Device);
    }

    ALOGV("setPerFrameData: dataspace = %d", mCurrentState.dataSpace);
    error = hwcLayer->setDataspace(mCurrentState.dataSpace);
    ALOGV("setPerFrameData: dataspace = %d", mDrawingState.dataSpace);
    error = hwcLayer->setDataspace(mDrawingState.dataSpace);
    if (error != HWC2::Error::None) {
        ALOGE("[%s] Failed to set dataspace %d: %s (%d)", mName.string(), mCurrentState.dataSpace,
        ALOGE("[%s] Failed to set dataspace %d: %s (%d)", mName.string(), mDrawingState.dataSpace,
              to_string(error).c_str(), static_cast<int32_t>(error));
    }

+11 −0
Original line number Diff line number Diff line
@@ -69,9 +69,20 @@ void ColorLayer::setPerFrameData(const sp<const DisplayDevice>& displayDevice) {
    auto& hwcInfo = getBE().mHwcLayers[hwcId];
    auto& hwcLayer = hwcInfo.layer;
    auto error = hwcLayer->setVisibleRegion(visible);
    if (error != HWC2::Error::None) {
        ALOGE("[%s] Failed to set visible region: %s (%d)", mName.string(),
              to_string(error).c_str(), static_cast<int32_t>(error));
        visible.dump(LOG_TAG);
    }

    setCompositionType(hwcId, HWC2::Composition::SolidColor);

    error = hwcLayer->setDataspace(mDrawingState.dataSpace);
    if (error != HWC2::Error::None) {
        ALOGE("[%s] Failed to set dataspace %d: %s (%d)", mName.string(), mDrawingState.dataSpace,
              to_string(error).c_str(), static_cast<int32_t>(error));
    }

    half4 color = getColor();
    error = hwcLayer->setColor({static_cast<uint8_t>(std::round(255.0f * color.r)),
                                static_cast<uint8_t>(std::round(255.0f * color.g)),