Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 403bad6769980e4d96e3202a329797e0f364a26d
https://github.com/WebKit/WebKit/commit/403bad6769980e4d96e3202a329797e0f364a26d
Author: Nikolas Zimmermann <[email protected]>
Date: 2026-08-17 (Mon, 17 Aug 2026)
Changed paths:
M Source/WebCore/rendering/RenderLayerBacking.h
M Source/WebCore/rendering/RenderLayerCompositor.cpp
Log Message:
-----------
Skip scroll coordination for layers that have no scrolling role
https://bugs.webkit.org/show_bug.cgi?id=321886
Reviewed by Simon Fraser.
updateScrollCoordinationForLayer runs for every composited layer on every
compositing update. When the layer has no coordination roles, each of the
branches takes its detach path, detaching a role the layer never registered
for. This is an expensive "no-op": the returned node ID is the parent one,
unchanged, so the whole function body reduces to just returning the
parent node ID - shortcut that.
On an embedded device running a composition heavy workload this alone
was responsible for ~0.4ms out of 1.6ms each cycle (checked with
1500 composition cycles, each containing ~ 150 composited layers).
* Source/WebCore/rendering/RenderLayerBacking.h:
* Source/WebCore/rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinationForLayer):
Canonical link: https://commits.webkit.org/319306@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications