WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
191632
Align Mac WK2 layer flush throttling with iOS
https://bugs.webkit.org/show_bug.cgi?id=191632
Summary
Align Mac WK2 layer flush throttling with iOS
Antti Koivisto
Reported
2018-11-14 06:18:28 PST
Currently Mac WK2 uses WebCore side throttling implementation in RenderLayerCompositor. This code has throttling timer per-frame while the actual decision making and layer flushes itself are per page. These timers generate way more flushes than expected in presence of multiple frames. There are also bugs in how flushing state is updated when frames are created dynamically. On iOS WK2 throttling is implemented on WebKit side and controlled by a per-page timer. Recent fixes also make this implementation visually fast. We should align the Mac implementation and eventually unify them.
Attachments
patch
(10.31 KB, patch)
2018-11-14 07:22 PST
,
Antti Koivisto
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Antti Koivisto
Comment 1
2018-11-14 07:22:25 PST
Created
attachment 354807
[details]
patch
WebKit Commit Bot
Comment 2
2018-11-14 08:53:32 PST
Comment on
attachment 354807
[details]
patch Clearing flags on attachment: 354807 Committed
r238178
: <
https://trac.webkit.org/changeset/238178
>
WebKit Commit Bot
Comment 3
2018-11-14 08:53:34 PST
All reviewed patches have been landed. Closing bug.
Radar WebKit Bug Importer
Comment 4
2018-11-14 08:54:21 PST
<
rdar://problem/46064211
>
Truitt Savell
Comment 5
2018-11-14 11:02:06 PST
The changes in
https://trac.webkit.org/changeset/238178/webkit
has caused these two tests to begin timing out on MacOS Release WK2: fast/forms/access-key-mutated.html fast/forms/access-key-case-insensitive.html Repro Command: run-webkit-tests --root testbuild-238178 fast/forms/access-key-mutated.html fast/forms/access-key-case-insensitive.html --iterations 5 -f These tests pass instantly on 238177.
Antti Koivisto
Comment 6
2018-11-14 11:11:58 PST
Filed
https://bugs.webkit.org/show_bug.cgi?id=191642
for those, will skip meanwhile
Antti Koivisto
Comment 7
2018-11-14 11:19:29 PST
Skipped in
https://trac.webkit.org/r238187
Simon Fraser (smfr)
Comment 8
2018-11-14 11:37:21 PST
Comment on
attachment 354807
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=354807&action=review
> Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:221 > + m_hasPendingFlush = true; > + > + if (m_layerTreeStateIsFrozen) { > + m_isLayerFlushThrottlingTemporarilyDisabledForInteraction = false; > return; > + } > + > + if (m_isLayerFlushThrottlingTemporarilyDisabledForInteraction) { > + m_isLayerFlushThrottlingTemporarilyDisabledForInteraction = false; > + scheduleLayerFlushRunLoopObserver(); > + m_layerFlushThrottlingTimer.stop(); > + return; > + } > + > + if (m_layerFlushThrottlingTimer.isActive()) { > + ASSERT(m_isThrottlingLayerFlushes); > + return; > + } > + > + if (m_isThrottlingLayerFlushes) { > + startLayerFlushThrottlingTimer(); > + return; > + }
So now this code exists in both TiledCoreAnimationDrawingArea and RemoteLayerTreeDrawingArea. Can we share code?
Antti Koivisto
Comment 9
2018-11-14 11:54:34 PST
> So now this code exists in both TiledCoreAnimationDrawingArea and > RemoteLayerTreeDrawingArea. Can we share code?
Like the ChangeLog mentions, sharing is the next step.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug