[webkit-changes] [WebKit/WebKit] c4c680: [threaded-animation-resolution] store accelerated ...

Antoine Quint noreply at github.com
Thu Dec 7 13:43:27 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c4c680697bdba4208581dc7fd40ffdd202482c08
      https://github.com/WebKit/WebKit/commit/c4c680697bdba4208581dc7fd40ffdd202482c08
  Author: Antoine Quint <graouts at webkit.org>
  Date:   2023-12-07 (Thu, 07 Dec 2023)

  Changed paths:
    M Source/WebCore/platform/animation/AcceleratedEffectStack.h
    M Source/WebCore/platform/animation/AcceleratedEffectStack.mm
    M Source/WebCore/platform/graphics/GraphicsLayer.cpp
    M Source/WebCore/platform/graphics/GraphicsLayer.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm
    M Source/WebKit/SourcesCocoa.txt
    A Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h
    A Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h
    M Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.h
    M Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.h
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  [threaded-animation-resolution] store accelerated effects and base values in the remote layer tree
https://bugs.webkit.org/show_bug.cgi?id=265880

Reviewed by Simon Fraser.

While we correctly encode the `AcceleratedEffectStack` from WebCore to be sent over IPC to
the UI process whenever there is a meaningful change, we don't do anything with these effects
yet. This patch creates a `RemoteAcceleratedEffectStack` and store effects and base values on it
and lays the groundwork for the next patch for the threaded animation resolution feature where
we will schedule and resolve animations in the remote layer tree.

On iOS, the `RemoteAcceleratedEffectStack` is owned by a `RemoteLayerTreeNode` which will access
on the main thread for animation resolution.

On macOS, the `RemoteAcceleratedEffectStack` is owned by the `RemoteLayerTreeEventDispatcher` which
will allow access in a thread-safe manner for animation resolution.

* Source/WebCore/platform/animation/AcceleratedEffectStack.h:
(WebCore::AcceleratedEffectStack::primaryLayerEffects const): Deleted.
(WebCore::AcceleratedEffectStack::backdropLayerEffects const): Deleted.
(WebCore::AcceleratedEffectStack::baseValues): Deleted.
* Source/WebCore/platform/animation/AcceleratedEffectStack.mm:
(WebCore::AcceleratedEffectStack::create):
(WebCore::AcceleratedEffectStack::AcceleratedEffectStack):
(WebCore::AcceleratedEffectStack::setEffects):
(WebCore::AcceleratedEffectStack::~AcceleratedEffectStack): Deleted.
* Source/WebCore/platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::setAcceleratedEffectsAndBaseValues):
* Source/WebCore/platform/graphics/GraphicsLayer.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.h: Added.
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAcceleratedEffectStack.mm: Added.
(WebKit::RemoteAcceleratedEffectStack::create):
(WebKit::RemoteAcceleratedEffectStack::RemoteAcceleratedEffectStack):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::animationsWereAddedToNode):
(WebKit::RemoteLayerTreeDrawingAreaProxy::animationsWereRemovedFromNode):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::threadedAnimationResolutionEnabled const):
(WebKit::RemoteLayerTreeHost::animationsWereAddedToNode):
(WebKit::RemoteLayerTreeHost::animationsWereRemovedFromNode):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
(WebKit::RemoteLayerTreeNode::takeEffectStack):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::setAcceleratedEffectsAndBaseValues):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
(WebKit::RemoteScrollingCoordinatorProxy::animationsWereAddedToNode):
(WebKit::RemoteScrollingCoordinatorProxy::animationsWereRemovedFromNode):
* Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.h:
* Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxyIOS::animationsWereAddedToNode):
(WebKit::RemoteScrollingCoordinatorProxyIOS::animationsWereRemovedFromNode):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.cpp:
(WebKit::RemoteLayerTreeEventDispatcher::animationsWereAddedToNode):
(WebKit::RemoteLayerTreeEventDispatcher::animationsWereRemovedFromNode):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.mm:
(WebKit::RemoteScrollingCoordinatorProxyMac::animationsWereAddedToNode):
(WebKit::RemoteScrollingCoordinatorProxyMac::animationsWereRemovedFromNode):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

Co-authored-by: Matt Woodrow <mattwoodrow at apple.com>
Canonical link: https://commits.webkit.org/271692@main




More information about the webkit-changes mailing list