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

Commit 9da9c4ea authored by Vishnu Nair's avatar Vishnu Nair Committed by Automerger Merge Worker
Browse files

Merge "[sf] Fix layer ids for background color layers" into udc-dev am: a953a920

parents d278faab a953a920
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -233,9 +233,10 @@ struct layer_state_t {

    // Geometry updates.
    static constexpr uint64_t GEOMETRY_CHANGES = layer_state_t::eBufferCropChanged |
            layer_state_t::eBufferTransformChanged | layer_state_t::eCropChanged |
            layer_state_t::eDestinationFrameChanged | layer_state_t::eMatrixChanged |
            layer_state_t::ePositionChanged | layer_state_t::eTransformToDisplayInverseChanged |
            layer_state_t::eBufferTransformChanged | layer_state_t::eCornerRadiusChanged |
            layer_state_t::eCropChanged | layer_state_t::eDestinationFrameChanged |
            layer_state_t::eMatrixChanged | layer_state_t::ePositionChanged |
            layer_state_t::eTransformToDisplayInverseChanged |
            layer_state_t::eTransparentRegionChanged;

    // Buffer and related updates.
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ LayerCreationArgs::LayerCreationArgs(SurfaceFlinger* flinger, sp<Client> client,
    }

    if (internalLayer) {
        sequence = getInternalLayerId(sInternalSequence++);
        sequence = id.value_or(getInternalLayerId(sInternalSequence++));
    } else if (id) {
        sequence = *id;
        sSequence = *id + 1;
+6 −3
Original line number Diff line number Diff line
@@ -38,7 +38,8 @@ void LayerLifecycleManager::addLayers(std::vector<std::unique_ptr<RequestedLayer
        RequestedLayerState& layer = *newLayer.get();
        auto [it, inserted] = mIdToLayer.try_emplace(layer.id, References{.owner = layer});
        if (!inserted) {
            LOG_ALWAYS_FATAL("Duplicate layer id %d found. Existing layer: %s", layer.id,
            LOG_ALWAYS_FATAL("Duplicate layer id found. New layer: %s Existing layer: %s",
                             layer.getDebugString().c_str(),
                             it->second.owner.getDebugString().c_str());
        }
        mAddedLayers.push_back(newLayer.get());
@@ -200,7 +201,9 @@ void LayerLifecycleManager::applyTransactions(const std::vector<TransactionState

            if (layer->what & layer_state_t::eBackgroundColorChanged) {
                if (layer->bgColorLayerId == UNASSIGNED_LAYER_ID && layer->bgColor.a != 0) {
                    LayerCreationArgs backgroundLayerArgs(layer->id,
                    LayerCreationArgs
                            backgroundLayerArgs(LayerCreationArgs::getInternalLayerId(
                                                        LayerCreationArgs::sInternalSequence++),
                                                /*internalLayer=*/true);
                    backgroundLayerArgs.parentId = layer->id;
                    backgroundLayerArgs.name = layer->name + "BackgroundColorLayer";
+1 −1
Original line number Diff line number Diff line
@@ -2318,7 +2318,7 @@ bool SurfaceFlinger::updateLayerSnapshots(VsyncId vsyncId, frontend::Update& upd
                sp<Layer> bgColorLayer = getFactory().createEffectLayer(
                        LayerCreationArgs(this, nullptr, layer->name,
                                          ISurfaceComposerClient::eFXSurfaceEffect, LayerMetadata(),
                                          std::make_optional(layer->parentId), true));
                                          std::make_optional(layer->id), true));
                mLegacyLayers[bgColorLayer->sequence] = bgColorLayer;
            }
            const bool willReleaseBufferOnLatch = layer->willReleaseBufferOnLatch();