WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
208709
Break out of timer loop on display refresh
https://bugs.webkit.org/show_bug.cgi?id=208709
Summary
Break out of timer loop on display refresh
Antti Koivisto
Reported
2020-03-06 05:52:13 PST
We currently process timers for 50ms in a loop. We should break out immediately when there is a display refresh to allow rendering update.
Attachments
wip
(13.02 KB, patch)
2020-03-06 05:54 PST
,
Antti Koivisto
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Antti Koivisto
Comment 1
2020-03-06 05:54:39 PST
Created
attachment 392711
[details]
wip
Simon Fraser (smfr)
Comment 2
2020-03-06 07:58:44 PST
Comment on
attachment 392711
[details]
wip View in context:
https://bugs.webkit.org/attachment.cgi?id=392711&action=review
> Source/WebCore/platform/ThreadTimers.cpp:129 > + if (DisplayRefreshMonitorManager::sharedManager().hasPendingRefresh() && !m_didBreakForPendingDisplayRefreshWithoutFiringTimers) {
It's a bit gross for timers to know about DisplayRefreshMonitorManager, and we need something that works on iOS too.
> Source/WebCore/platform/graphics/DisplayRefreshMonitor.h:86 > + WEBCORE_EXPORT void setIsPreviousFrameDone(bool);
I presume this is WEBCORE_EXPORT just to satisfy the linker, not because anyone else calls it (because it doesn't lock).
> Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp:250 > + DisplayRefreshMonitorManager::sharedManager().displayWasUpdated(displayID);
Which thread are we on here? DisplayRefreshMonitorManager::displayWasUpdated() doesn't look thread safe.
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