[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