Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0e347d3bd4afbe1b11ea2e18d3f23b1291bc968b
https://github.com/WebKit/WebKit/commit/0e347d3bd4afbe1b11ea2e18d3f23b1291bc968b
Author: Matt Woodrow <[email protected]>
Date: 2025-11-13 (Thu, 13 Nov 2025)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WTF/wtf/PlatformEnable.h
M Source/WebKit/Shared/WebPreferencesDefaultValues.cpp
M Source/WebKit/Shared/WebPreferencesDefaultValues.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
Log Message:
-----------
Allow WebKit to run main-thread frames in parallel with CoreGraphics.
https://bugs.webkit.org/show_bug.cgi?id=302187
<rdar://163067859>
Reviewed by Simon Fraser.
Rather than waiting on the GPU process to finish CPU-side flushing of
CoreGraphics before allowing the next rAF to start, allow one previous frame to
still be in progress.
Use RemoteLayerTreeDrawingAreaProxy::notifyPendingCommitLayerTree to determine
when a frame has finished the WebKit main thread work, and allow sending a
second displayDidRefresh message at this time, before the previous
commitLayerTree message has been received.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WTF/wtf/PlatformEnable.h:
* Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultAllowMultipleCommitLayerTreePending):
* Source/WebKit/Shared/WebPreferencesDefaultValues.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::notifyPendingCommitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::allowMultipleCommitLayerTreePending):
(WebKit::RemoteLayerTreeDrawingAreaProxy::ProcessState::canSendDisplayDidRefresh):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
Canonical link: https://commits.webkit.org/303024@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications