Open Bug 1707545 Opened 4 years ago Updated 5 months ago

scrolling on specific site is super janky

Categories

(Core :: Graphics: WebRender, defect)

ARM64
Android
defect

Tracking

()

Tracking Status
firefox88 --- wontfix
firefox89 --- affected
firefox90 --- affected

People

(Reporter: kats, Unassigned)

References

(Blocks 3 open bugs, )

Details

On Android, with Firefox 88 (release). Sony Xperia XZ1C, Android 9.

STR: Load URL in the URL field and fling to scroll down to the bottom.

I load this page every weekday and it used to scroll smoothly but recently started being super janky. I can reproduce on Nightly as well. I'm not sure when my release Firefox updated from 87 to 88 but it seems plausible that's when it started. I'll run mozregression when I get a chance since it seems reliably reproducible for me.

I can reproduce on GVE. Unfortunately it reproduces on older versions too (tried GVE from 2020-12-14, de82276d, corresponding to FF 85) so most likely it's a change on the website that's causing this.

A profile maybe would tell us why its janky, slow to paint maybe?

Good call. https://share.firefox.dev/3nDkIGB - the long composites in the profile line up with the janks I was seeing, so it looks like a WR problem.

(Aside: turns out the "Nightly" I had installed was FF 85 from last November. Guess I got stranded on that version when some Fenix nightly branch juggling happened or something. That's why I used my release 88 install to get a profile.)

Component: Panning and Zooming → Graphics: WebRender

It's amazing to see driver symbols in this trace!
The long composites are dominated by texture cache updates. Or, more specifically, memcpy on our side in update_to_texture_cache.
And it appears that we are going through UploadMethod::PixelBuffer path. So there must be some giant texture involved?
May be worth trying to switch the upload method to UploadMethod::Immediate and see if it makes a difference on this device.

Blocks: wr-android
Severity: -- → S3

Would be good to find out what the giant thing being uploaded is. Usually it's SVGs.

I've actually recently been thinking it would make sense to use immediate uploads for uploads larger than a certain size. Of course choosing the threshold and which devices to do that on is the hard part.

You need to log in before you can comment on or make changes to this bug.