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

Reply via email to