[webkit-changes] [WebKit/WebKit] 09fa4e: Skip computeCompositingRequirements for subtrees t...
mattwoodrow
noreply at github.com
Wed Oct 23 18:53:47 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 09fa4e566b17a4001771f00cad52f312b88132f1
https://github.com/WebKit/WebKit/commit/09fa4e566b17a4001771f00cad52f312b88132f1
Author: Matt Woodrow <mattwoodrow at apple.com>
Date: 2024-10-23 (Wed, 23 Oct 2024)
Changed paths:
M LayoutTests/compositing/backing/no-backing-for-perspective-expected.txt
M LayoutTests/platform/ios/compositing/backing/no-backing-for-perspective-expected.txt
M Source/WebCore/rendering/RenderLayer.cpp
M Source/WebCore/rendering/RenderLayer.h
M Source/WebCore/rendering/RenderLayerCompositor.cpp
M Source/WebCore/rendering/RenderLayerCompositor.h
Log Message:
-----------
Skip computeCompositingRequirements for subtrees that haven't changed and don't contribute overlap.
https://bugs.webkit.org/show_bug.cgi?id=281890
<rdar://138363965>
Reviewed by Simon Fraser.
Layers that haven't changed, don't have any composited descendant and clip their
descendants shouldn't need a descendant traversal.
Normally this is done to check for any compositing changes and to accumulate
overlap, but neither of those should be possible with the given conditions
This also removes the anyDescendantHas3DTransform accumulation (which was
depending on visiting all descendants) and replaces it with the existing state
bit computed during update3DTransformedDescendantStatus.
* LayoutTests/compositing/backing/no-backing-for-perspective-expected.txt:
* LayoutTests/platform/ios/compositing/backing/no-backing-for-perspective-expected.txt:
* Source/WebCore/rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
* Source/WebCore/rendering/RenderLayer.h:
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::canSkipComputeCompositingRequirementsForSubtree):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
* Source/WebCore/rendering/RenderLayerCompositor.h:
Canonical link: https://commits.webkit.org/285632@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