[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