Closed
Bug 1504490
Opened 6 years ago
Closed 3 years ago
Opening a tab in background can jank the current tab while scrolling
Categories
(Core :: Graphics: WebRender, defect, P5)
Core
Graphics: WebRender
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: mayankleoboy1, Unassigned)
References
Details
Attachments
(1 file)
27.33 KB,
text/plain
|
Details |
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
Steps to reproduce:
1.Use my normal profile with ABP
2.Open https://www.androidpolice.com/2018/11/03/oneplus-6t-review-flagship-no-asterisk-necessary/ in a background tab
3. Scroll the current tab
Actual results:
With WR, scrolling the current tab is janky
non-WR is much smoother
Expected results:
WR should be smooth as well.
non-WR : https://perfht.ml/2JCEyxk
WR: https://perfht.ml/2JFM4b6
Profile looks like time spent in stylo and JS. Maybe with WR enabled, the background tab uses multiple threads for styling ? just a guess.
Reporter | ||
Comment 1•6 years ago
|
||
I have a 2C/4T mobile corei3 processor.
This janky scrolling is my number one gripe with WR, and which makes it unsuitable for daily use.
Reporter | ||
Comment 2•6 years ago
|
||
WR+sequentil Stylo : https://perfht.ml/2JAgZFv
not much of a difference, so i guess stylo is not to blame.
Reporter | ||
Comment 3•6 years ago
|
||
non-WR+sequential stylo : https://perfht.ml/2JBYmkG
Updated•6 years ago
|
Blocks: stage-wr-trains
Priority: -- → P3
Comment 4•6 years ago
|
||
Jeff, nical, have you seen anything like this?
It looks like the Renderer thread just stalls for extended periods, mainly waiting on the kernel (including NtQueryLicenseValue). It looks like we're really struggling to get profiler samples in the same period.
This is a 2C/4T i3 machine, is it possible that we just have too many threads trying to do work and we end up starving the Renderer?
Flags: needinfo?(nical.bugzilla)
Flags: needinfo?(jmuizelaar)
Comment 5•6 years ago
|
||
> This is a 2C/4T i3 machine, is it possible that we just have too many threads trying to do work and we end up starving the Renderer?
Maybe? Somewhat odd if this is reliably reproducible.
We could start playing with thread priorities if only to validate the cause, I'm somewhat uneasy about it because in my experience once you start bumping a thread's priority you an quickly end up needing to bump another one (because of thread dependencies) and so on and so forth, although the renderer seems to not have too many complicated dependencies with other threads so it might be fine. We'd probably end up starving the render backend thread instead though if it that's what the problem is. Long/medium term I'd like WR to have less threads (merge the render backend and renderer or merge the render backend and compositor or even all three) because scheduling hazards are such a pain to identify/debug.
Flags: needinfo?(nical.bugzilla)
Comment 6•6 years ago
|
||
Couple of options for next steps here:
1) make a try build with thread priorities adjusted and see if it helps
2) get a Gecko profile including all Firefox threads and an OS profile at the same time to try and figure out what is actually happening during the time period in question. The CPU cores might be busy with some other process or with non-gfx threads and this might help identify what's going on.
Reporter | ||
Updated•3 years ago
|
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•