Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6d84ae0831795cf27259f2963eab24e4c5022a93 https://github.com/WebKit/WebKit/commit/6d84ae0831795cf27259f2963eab24e4c5022a93 Author: Simon Fraser <simon.fra...@apple.com> Date: 2023-09-19 (Tue, 19 Sep 2023)
Changed paths: M Source/WebCore/rendering/RenderLayerCompositor.cpp M Source/WebCore/rendering/RenderLayerCompositor.h Log Message: ----------- enclosingClippingScopes() can be called twice per layer on compositing updates https://bugs.webkit.org/show_bug.cgi?id=261756 rdar://115734407 Reviewed by Alan Baradlay. enclosingClippingScopes() does an ancestor tree walk, and shows up in profiles on layer-heavy sites. It's called from both layerOverlaps() and addToOverlapMap(), so we can compute `enclosingClippingScopes` lazily and store them in OverlapExtent like we do the layer bounds. Not using std::optional<> to follow existing style, but a future cleanup could do so. This is a measurable perf improvement on layer-heavy content. * Source/WebCore/rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::computeClippingScopes const): (WebCore::RenderLayerCompositor::addToOverlapMap const): (WebCore::RenderLayerCompositor::layerOverlaps const): (WebCore::createsClippingScope): Deleted. (WebCore::enclosingClippingScopes): Deleted. * Source/WebCore/rendering/RenderLayerCompositor.h: Canonical link: https://commits.webkit.org/268176@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes