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

Commit e8780c84 authored by John Reck's avatar John Reck Committed by Android (Google) Code Review
Browse files

Merge "Add extended brightness range impl"

parents 3ea5e0d2 6879659d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -187,6 +187,8 @@ status_t layer_state_t::write(Parcel& output) const
    }
    SAFE_PARCEL(output.writeParcelable, trustedPresentationThresholds);
    SAFE_PARCEL(output.writeParcelable, trustedPresentationListener);
    SAFE_PARCEL(output.writeFloat, currentSdrHdrRatio);
    SAFE_PARCEL(output.writeFloat, desiredSdrHdrRatio);
    return NO_ERROR;
}

@@ -321,6 +323,11 @@ status_t layer_state_t::read(const Parcel& input)
    SAFE_PARCEL(input.readParcelable, &trustedPresentationThresholds);
    SAFE_PARCEL(input.readParcelable, &trustedPresentationListener);

    SAFE_PARCEL(input.readFloat, &tmpFloat);
    currentSdrHdrRatio = tmpFloat;
    SAFE_PARCEL(input.readFloat, &tmpFloat);
    desiredSdrHdrRatio = tmpFloat;

    return NO_ERROR;
}

@@ -568,6 +575,11 @@ void layer_state_t::merge(const layer_state_t& other) {
        what |= eDataspaceChanged;
        dataspace = other.dataspace;
    }
    if (other.what & eExtendedRangeBrightnessChanged) {
        what |= eExtendedRangeBrightnessChanged;
        desiredSdrHdrRatio = other.desiredSdrHdrRatio;
        currentSdrHdrRatio = other.currentSdrHdrRatio;
    }
    if (other.what & eHdrMetadataChanged) {
        what |= eHdrMetadataChanged;
        hdrMetadata = other.hdrMetadata;
@@ -714,6 +726,8 @@ uint64_t layer_state_t::diff(const layer_state_t& other) const {
    CHECK_DIFF(diff, eCropChanged, other, crop);
    if (other.what & eBufferChanged) diff |= eBufferChanged;
    CHECK_DIFF(diff, eDataspaceChanged, other, dataspace);
    CHECK_DIFF2(diff, eExtendedRangeBrightnessChanged, other, currentSdrHdrRatio,
                desiredSdrHdrRatio);
    CHECK_DIFF(diff, eHdrMetadataChanged, other, hdrMetadata);
    if (other.what & eSurfaceDamageRegionChanged &&
        (!surfaceDamageRegion.hasSameRects(other.surfaceDamageRegion))) {
+15 −0
Original line number Diff line number Diff line
@@ -1673,6 +1673,21 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setDatas
    return *this;
}

SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setExtendedRangeBrightness(
        const sp<SurfaceControl>& sc, float currentBufferRatio, float desiredRatio) {
    layer_state_t* s = getLayerState(sc);
    if (!s) {
        mStatus = BAD_INDEX;
        return *this;
    }
    s->what |= layer_state_t::eExtendedRangeBrightnessChanged;
    s->currentSdrHdrRatio = currentBufferRatio;
    s->desiredSdrHdrRatio = desiredRatio;

    registerSurfaceControlForCallback(sc);
    return *this;
}

SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setHdrMetadata(
        const sp<SurfaceControl>& sc, const HdrMetadata& hdrMetadata) {
    layer_state_t* s = getLayerState(sc);
+6 −2
Original line number Diff line number Diff line
@@ -209,7 +209,8 @@ struct layer_state_t {
        eAutoRefreshChanged = 0x1000'00000000,
        eStretchChanged = 0x2000'00000000,
        eTrustedOverlayChanged = 0x4000'00000000,
        eDropInputModeChanged = 0x8000'00000000
        eDropInputModeChanged = 0x8000'00000000,
        eExtendedRangeBrightnessChanged = 0x10000'00000000
    };

    layer_state_t();
@@ -240,7 +241,8 @@ struct layer_state_t {
            layer_state_t::eBufferTransformChanged | layer_state_t::eDataspaceChanged |
            layer_state_t::eSidebandStreamChanged | layer_state_t::eSurfaceDamageRegionChanged |
            layer_state_t::eTransformToDisplayInverseChanged |
            layer_state_t::eTransparentRegionChanged;
            layer_state_t::eTransparentRegionChanged |
            layer_state_t::eExtendedRangeBrightnessChanged;

    // Content updates.
    static constexpr uint64_t CONTENT_CHANGES = layer_state_t::BUFFER_CHANGES |
@@ -385,6 +387,8 @@ struct layer_state_t {
    gui::DropInputMode dropInputMode;

    bool dimmingEnabled;
    float currentSdrHdrRatio = 1.f;
    float desiredSdrHdrRatio = 1.f;

    TrustedPresentationThresholds trustedPresentationThresholds;
    TrustedPresentationListener trustedPresentationListener;
+2 −0
Original line number Diff line number Diff line
@@ -559,6 +559,8 @@ public:
        Transaction& setBufferHasBarrier(const sp<SurfaceControl>& sc,
                                         uint64_t barrierFrameNumber);
        Transaction& setDataspace(const sp<SurfaceControl>& sc, ui::Dataspace dataspace);
        Transaction& setExtendedRangeBrightness(const sp<SurfaceControl>& sc,
                                                float currentBufferRatio, float desiredRatio);
        Transaction& setHdrMetadata(const sp<SurfaceControl>& sc, const HdrMetadata& hdrMetadata);
        Transaction& setSurfaceDamageRegion(const sp<SurfaceControl>& sc,
                                            const Region& surfaceDamageRegion);
+3 −0
Original line number Diff line number Diff line
@@ -209,6 +209,9 @@ struct LayerFECompositionState {
    // The dimming flag
    bool dimmingEnabled{true};

    float currentSdrHdrRatio = 1.f;
    float desiredSdrHdrRatio = 1.f;

    virtual ~LayerFECompositionState();

    // Debugging
Loading