NEW 250653
Scrolling can stutter when the main thread is causing jank
https://bugs.webkit.org/show_bug.cgi?id=250653
Summary Scrolling can stutter when the main thread is causing jank
Simon Fraser (smfr)
Reported 2023-01-15 12:26:51 PST
Even though we have off-main-thread scrolling, some kinds of main thread jank still cause scroll stutters. See https://twitter.com/bramus/status/1614606416932741121
Attachments
Test (4.64 KB, text/html)
2023-01-15 12:28 PST, Simon Fraser (smfr)
no flags
Radar WebKit Bug Importer
Comment 1 2023-01-15 12:27:10 PST
Simon Fraser (smfr)
Comment 2 2023-01-15 12:28:03 PST
Simon Fraser (smfr)
Comment 3 2023-01-15 12:39:23 PST
We get into a state where ThreadedScrollingTree::m_state is Idle, but the main thread is blocked. Noting is triggering the m_delayedRenderingUpdateDetectionTimer in this case.
Simon Fraser (smfr)
Comment 4 2023-01-15 12:52:50 PST
The interesting thing about this test case is that the jank is pure JS; nothing is touching the DOM, so nothing triggers `ThreadedScrollingTree::didScheduleRenderingUpdate` which sets some state that allows the scrolling thread to take over scrolling.
Simon Fraser (smfr)
Comment 5 2023-01-15 12:56:20 PST
Specifically, m_renderingUpdateWasScheduled is false in ThreadedScrollingTree::displayDidRefreshOnScrollingThread() so we don't trigger the unresponsive main thread detection.
Note You need to log in before you can comment on or make changes to this bug.