[webkit-changes] [WebKit/WebKit] e00996: [CoordinatedGraphics] Introduce CoordinatedPlatfor...

Carlos Garcia Campos noreply at github.com
Thu Dec 12 01:33:43 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e009963a7b178a306760b645e6a12e6a75ca4f4b
      https://github.com/WebKit/WebKit/commit/e009963a7b178a306760b645e6a12e6a75ca4f4b
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2024-12-12 (Thu, 12 Dec 2024)

  Changed paths:
    M Source/WebCore/page/scrolling/nicosia/ScrollingStateNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.cpp
    M Source/WebCore/platform/TextureMapper.cmake
    M Source/WebCore/platform/graphics/Damage.h
    M Source/WebCore/platform/graphics/GraphicsLayer.cpp
    M Source/WebCore/platform/graphics/GraphicsLayer.h
    M Source/WebCore/platform/graphics/GraphicsLayerClient.h
    M Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h
    M Source/WebCore/platform/graphics/nicosia/NicosiaSceneIntegration.cpp
    M Source/WebCore/platform/graphics/nicosia/NicosiaSceneIntegration.h
    M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp
    M Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h
    M Source/WebCore/platform/graphics/texmap/GraphicsLayerAsyncContentsDisplayDelegateTextureMapper.cpp
    M Source/WebCore/platform/graphics/texmap/GraphicsLayerAsyncContentsDisplayDelegateTextureMapper.h
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.cpp
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.h
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h
    R Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
    R Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h
    R Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerCairo.cpp
    R Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp
    A Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
    A Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h
    A Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp
    A Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h
    M Source/WebCore/rendering/RenderLayerBacking.cpp
    M Source/WebCore/rendering/RenderLayerBacking.h
    M Source/WebCore/rendering/RenderLayerCompositor.cpp
    M Source/WebCore/rendering/RenderLayerCompositor.h
    M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp
    M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h

  Log Message:
  -----------
  [CoordinatedGraphics] Introduce CoordinatedPlatformLayer
https://bugs.webkit.org/show_bug.cgi?id=283966

Reviewed by Alejandro G. Castro.

Rename CoordinatedGraphicsLayer as GraphicsLayerCoordinated since it's
the coordinated graphics implementation of GraphicsLayer. Also add
CoordinatedPlatformLayer class to keep the layers composition state to
be applied by the threaded compositor. This is an initial patch that
still uses NicosiaCompositionLayer in CoordinatedPlatformLayer so that
it doesn't require changes in the composition side.

* Source/WebCore/page/scrolling/nicosia/ScrollingStateNodeNicosia.cpp:
(WebCore::LayerRepresentation::platformLayerFromGraphicsLayer):
* Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.cpp:
(WebCore::ScrollingTreeNicosia::applyLayerPositionsInternal):
* Source/WebCore/platform/TextureMapper.cmake:
* Source/WebCore/platform/graphics/Damage.h:
* Source/WebCore/platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::supportsContentsTiling):
* Source/WebCore/platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::isGraphicsLayerCoordinated const):
(WebCore::GraphicsLayer::isCoordinatedGraphicsLayer const): Deleted.
* Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h:
(Nicosia::PlatformLayer::createUpdateScope):
* Source/WebCore/platform/graphics/nicosia/NicosiaSceneIntegration.cpp:
(Nicosia::SceneIntegration::createUpdateScope):
(Nicosia::SceneIntegration::UpdateScope::UpdateScope):
(Nicosia::SceneIntegration::UpdateScope::~UpdateScope):
* Source/WebCore/platform/graphics/nicosia/NicosiaSceneIntegration.h:
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.cpp:
(WebCore::SkiaPaintingEngine::recordDisplayList const):
(WebCore::SkiaPaintingEngine::paintIntoGraphicsContext const):
(WebCore::SkiaPaintingEngine::paintGraphicsLayerIntoBuffer const):
(WebCore::SkiaPaintingEngine::createBuffer const):
(WebCore::SkiaPaintingEngine::paintLayer):
(WebCore::SkiaPaintingEngine::postPaintingTask):
(WebCore::SkiaPaintingEngine::performPaintingTask):
* Source/WebCore/platform/graphics/skia/SkiaPaintingEngine.h:
* Source/WebCore/platform/graphics/texmap/GraphicsLayerAsyncContentsDisplayDelegateTextureMapper.cpp:
(WebCore::GraphicsLayerAsyncContentsDisplayDelegateTextureMapper::GraphicsLayerAsyncContentsDisplayDelegateTextureMapper):
(WebCore::GraphicsLayerAsyncContentsDisplayDelegateTextureMapper::updateGraphicsLayer):
* Source/WebCore/platform/graphics/texmap/GraphicsLayerAsyncContentsDisplayDelegateTextureMapper.h:
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.cpp:
(WebCore::CoordinatedAnimatedBackingStoreClient::create):
(WebCore::CoordinatedAnimatedBackingStoreClient::CoordinatedAnimatedBackingStoreClient):
(WebCore::CoordinatedAnimatedBackingStoreClient::update):
(WebCore::CoordinatedAnimatedBackingStoreClient::requestBackingStoreUpdateIfNeeded):
(WebCore::CoordinatedAnimatedBackingStoreClient::setCoverRect): Deleted.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.h:
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp:
(WebCore::CoordinatedBackingStoreProxy::updateIfNeeded):
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h:
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp: Removed.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h: Removed.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerCairo.cpp: Removed.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp: Removed.
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp: Added.
(WebCore::CoordinatedPlatformLayer::create):
(WebCore::CoordinatedPlatformLayer::CoordinatedPlatformLayer):
(WebCore::CoordinatedPlatformLayer::setOwner):
(WebCore::CoordinatedPlatformLayer::owner const):
(WebCore::CoordinatedPlatformLayer::invalidateClient):
(WebCore::CoordinatedPlatformLayer::notifyCompositionRequired):
(WebCore::CoordinatedPlatformLayer::setPosition):
(WebCore::CoordinatedPlatformLayer::syncPosition):
(WebCore::CoordinatedPlatformLayer::position const):
(WebCore::CoordinatedPlatformLayer::setBoundsOrigin):
(WebCore::CoordinatedPlatformLayer::syncBoundsOrigin):
(WebCore::CoordinatedPlatformLayer::boundsOrigin const):
(WebCore::CoordinatedPlatformLayer::setAnchorPoint):
(WebCore::CoordinatedPlatformLayer::anchorPoint const):
(WebCore::CoordinatedPlatformLayer::setSize):
(WebCore::CoordinatedPlatformLayer::size const):
(WebCore::CoordinatedPlatformLayer::setTransform):
(WebCore::CoordinatedPlatformLayer::transform const):
(WebCore::CoordinatedPlatformLayer::setChildrenTransform):
(WebCore::CoordinatedPlatformLayer::childrenTransform const):
(WebCore::CoordinatedPlatformLayer::didUpdateLayerTransform):
(WebCore::CoordinatedPlatformLayer::setVisibleRect):
(WebCore::CoordinatedPlatformLayer::setTransformedVisibleRect):
(WebCore::CoordinatedPlatformLayer::setScrollingNodeID):
(WebCore::CoordinatedPlatformLayer::setDrawsContent):
(WebCore::CoordinatedPlatformLayer::setMasksToBounds):
(WebCore::CoordinatedPlatformLayer::setPreserves3D):
(WebCore::CoordinatedPlatformLayer::setBackfaceVisibility):
(WebCore::CoordinatedPlatformLayer::setOpacity):
(WebCore::CoordinatedPlatformLayer::setContentsVisible):
(WebCore::CoordinatedPlatformLayer::contentsVisible const):
(WebCore::CoordinatedPlatformLayer::setContentsOpaque):
(WebCore::CoordinatedPlatformLayer::setContentsRect):
(WebCore::CoordinatedPlatformLayer::setContentsRectClipsDescendants):
(WebCore::CoordinatedPlatformLayer::setContentsClippingRect):
(WebCore::CoordinatedPlatformLayer::setContentsScale):
(WebCore::CoordinatedPlatformLayer::setContentsBuffer):
(WebCore::CoordinatedPlatformLayer::setContentsBufferNeedsDisplay):
(WebCore::CoordinatedPlatformLayer::setContentsImage):
(WebCore::CoordinatedPlatformLayer::setContentsColor):
(WebCore::CoordinatedPlatformLayer::setContentsTileSize):
(WebCore::CoordinatedPlatformLayer::setContentsTilePhase):
(WebCore::CoordinatedPlatformLayer::setDirtyRegion):
(WebCore::CoordinatedPlatformLayer::setDamage):
(WebCore::CoordinatedPlatformLayer::setFilters):
(WebCore::CoordinatedPlatformLayer::setMask):
(WebCore::CoordinatedPlatformLayer::setReplica):
(WebCore::CoordinatedPlatformLayer::setBackdrop):
(WebCore::CoordinatedPlatformLayer::setBackdropRect):
(WebCore::CoordinatedPlatformLayer::setAnimations):
(WebCore::CoordinatedPlatformLayer::setChildren):
(WebCore::CoordinatedPlatformLayer::setEventRegion):
(WebCore::CoordinatedPlatformLayer::setDebugBorder):
(WebCore::CoordinatedPlatformLayer::setShowRepaintCounter):
(WebCore::CoordinatedPlatformLayer::needsBackingStore const):
(WebCore::CoordinatedPlatformLayer::updateBackingStore):
(WebCore::CoordinatedPlatformLayer::updateContents):
(WebCore::CoordinatedPlatformLayer::purgeBackingStores):
(WebCore::CoordinatedPlatformLayer::paint):
* Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h: Added.
(WebCore::CoordinatedPlatformLayer::id const):
(WebCore::CoordinatedPlatformLayer::compositionLayer const):
(WebCore::CoordinatedPlatformLayer::lock):
(WebCore::CoordinatedPlatformLayer::client const):
(WebCore::CoordinatedPlatformLayer::hasPendingTilesCreation const):
(WebCore::CoordinatedPlatformLayer::hasImageBackingStore const):
(WebCore::CoordinatedPlatformLayer::WTF_GUARDED_BY_LOCK):
* Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp: Added.
(WebCore::GraphicsLayer::create):
(WebCore::GraphicsLayerCoordinated::GraphicsLayerCoordinated):
(WebCore::GraphicsLayerCoordinated::~GraphicsLayerCoordinated):
(WebCore::GraphicsLayerCoordinated::primaryLayerID const):
(WebCore::GraphicsLayerCoordinated::setNeedsDisplay):
(WebCore::GraphicsLayerCoordinated::setNeedsDisplayInRect):
(WebCore::GraphicsLayerCoordinated::markDamageRectsUnreliable):
(WebCore::GraphicsLayerCoordinated::setPosition):
(WebCore::GraphicsLayerCoordinated::syncPosition):
(WebCore::GraphicsLayerCoordinated::setBoundsOrigin):
(WebCore::GraphicsLayerCoordinated::syncBoundsOrigin):
(WebCore::GraphicsLayerCoordinated::setAnchorPoint):
(WebCore::GraphicsLayerCoordinated::setSize):
(WebCore::GraphicsLayerCoordinated::setScrollingNodeID):
(WebCore::GraphicsLayerCoordinated::setTransform):
(WebCore::GraphicsLayerCoordinated::setChildrenTransform):
(WebCore::GraphicsLayerCoordinated::setDrawsContent):
(WebCore::GraphicsLayerCoordinated::setMasksToBounds):
(WebCore::GraphicsLayerCoordinated::setPreserves3D):
(WebCore::GraphicsLayerCoordinated::setBackfaceVisibility):
(WebCore::GraphicsLayerCoordinated::setOpacity):
(WebCore::GraphicsLayerCoordinated::setContentsVisible):
(WebCore::GraphicsLayerCoordinated::setContentsOpaque):
(WebCore::GraphicsLayerCoordinated::setContentsRect):
(WebCore::GraphicsLayerCoordinated::setContentsRectClipsDescendants):
(WebCore::GraphicsLayerCoordinated::setContentsTileSize):
(WebCore::GraphicsLayerCoordinated::setContentsTilePhase):
(WebCore::GraphicsLayerCoordinated::setContentsClippingRect):
(WebCore::GraphicsLayerCoordinated::setContentsNeedsDisplay):
(WebCore::GraphicsLayerCoordinated::setContentsToPlatformLayer):
(WebCore::GraphicsLayerCoordinated::setContentsDisplayDelegate):
(WebCore::GraphicsLayerCoordinated::createAsyncContentsDisplayDelegate):
(WebCore::GraphicsLayerCoordinated::setContentsToImage):
(WebCore::GraphicsLayerCoordinated::setContentsToSolidColor):
(WebCore::GraphicsLayerCoordinated::usesContentsLayer const):
(WebCore::GraphicsLayerCoordinated::setChildren):
(WebCore::GraphicsLayerCoordinated::addChild):
(WebCore::GraphicsLayerCoordinated::addChildAtIndex):
(WebCore::GraphicsLayerCoordinated::addChildBelow):
(WebCore::GraphicsLayerCoordinated::addChildAbove):
(WebCore::GraphicsLayerCoordinated::replaceChild):
(WebCore::GraphicsLayerCoordinated::willModifyChildren):
(WebCore::GraphicsLayerCoordinated::setEventRegion):
(WebCore::GraphicsLayerCoordinated::deviceOrPageScaleFactorChanged):
(WebCore::GraphicsLayerCoordinated::setFilters):
(WebCore::GraphicsLayerCoordinated::setMaskLayer):
(WebCore::GraphicsLayerCoordinated::setReplicatedByLayer):
(WebCore::GraphicsLayerCoordinated::setBackdropFilters):
(WebCore::GraphicsLayerCoordinated::setBackdropFiltersRect):
(WebCore::GraphicsLayerCoordinated::addAnimation):
(WebCore::GraphicsLayerCoordinated::removeAnimation):
(WebCore::GraphicsLayerCoordinated::pauseAnimation):
(WebCore::GraphicsLayerCoordinated::suspendAnimations):
(WebCore::GraphicsLayerCoordinated::resumeAnimations):
(WebCore::GraphicsLayerCoordinated::isRunningTransformAnimation const):
(WebCore::GraphicsLayerCoordinated::transformRelatedPropertyDidChange):
(WebCore::GraphicsLayerCoordinated::acceleratedAnimationsForTesting const):
(WebCore::GraphicsLayerCoordinated::setShowDebugBorder):
(WebCore::GraphicsLayerCoordinated::setShowRepaintCounter):
(WebCore::dumpInnerLayer):
(WebCore::GraphicsLayerCoordinated::dumpAdditionalProperties const):
(WebCore::GraphicsLayerCoordinated::filtersCanBeComposited const):
(WebCore::GraphicsLayerCoordinated::noteLayerPropertyChanged):
(WebCore::GraphicsLayerCoordinated::setNeedsUpdateLayerTransform):
(WebCore::GraphicsLayerCoordinated::flushCompositingState):
(WebCore::GraphicsLayerCoordinated::flushCompositingStateForThisLayerOnly):
(WebCore::GraphicsLayerCoordinated::computePositionRelativeToBase const):
(WebCore::GraphicsLayerCoordinated::computePixelAlignmentIfNeeded):
(WebCore::GraphicsLayerCoordinated::updateGeometry):
(WebCore::GraphicsLayerCoordinated::computeLayerTransformIfNeeded):
(WebCore::GraphicsLayerCoordinated::clampToSizeIfRectIsInfinite):
(WebCore::GraphicsLayerCoordinated::updateVisibleRect):
(WebCore::GraphicsLayerCoordinated::updateDamage):
(WebCore::GraphicsLayerCoordinated::updateDirtyRegion):
(WebCore::GraphicsLayerCoordinated::updateBackdropFilters):
(WebCore::GraphicsLayerCoordinated::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCoordinated::updateAnimations):
(WebCore::GraphicsLayerCoordinated::updateIndicators):
(WebCore::GraphicsLayerCoordinated::updateContents):
(WebCore::GraphicsLayerCoordinated::commitLayerChanges):
(WebCore::GraphicsLayerCoordinated::needsCommit const):
(WebCore::GraphicsLayerCoordinated::recursiveCommitChanges):
* Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h: Added.
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::scrollbarInclusionForVisibleRect):
(WebCore::RenderLayerCompositor::visibleRectForLayerFlushing const):
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:
(WebKit::LayerTreeHost::~LayerTreeHost):
(WebKit::LayerTreeHost::flushLayers):
(WebKit::LayerTreeHost::attachLayer):
(WebKit::LayerTreeHost::detachLayer):
(WebKit::LayerTreeHost::notifyCompositionRequired):
(WebKit::LayerTreeHost::createGraphicsLayer):
(WebKit::LayerTreeHost::layerForTransientZoom const):
* Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:

Canonical link: https://commits.webkit.org/287731@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list