Open Bug 1683354 Opened 4 years ago Updated 9 months ago

[Bug] Scrolling stutter on gadgets.ndtv.com website

Categories

(Core :: Graphics: WebRender, defect, P3)

Unspecified
Android
defect

Tracking

()

Performance Impact low

People

(Reporter: ekager, Unassigned)

References

(Depends on 1 open bug, Blocks 2 open bugs)

Details

(Keywords: perf:responsiveness)

Attachments

(1 obsolete file)

From github: https://github.com/mozilla-mobile/fenix/issues/17116.

Steps to reproduce

Open gadgets.ndtv.com website and scroll. For ex open this link https://gadgets.ndtv.com/mobiles/news/google-qualcomm-project-treble-partnership-4-android-os-versions-security-updates-2340017

Expected behavior

Scrolling must be smooth.

Actual behavior

Scrolling stutter. Samsung internet and chrome both works fine.

Device information

Samsung Galaxy A71

  • Android device: Android 10 One UI 2.5
  • Fenix version: 84.1.1

Change performed by the Move to Bugzilla add-on.

Component: General → Performance
Product: GeckoView → Core

I think I can reproduce this; specifically if I load the URL, and then click "Show full article", and then do a fast swipe up or down to try to scroll through the full article. When the video comes into the scrollport (the video about halfway down the page), the scrolling operation stutters for a bit.

I'll see if I can capture a profile in a bit.

Profile showing the jank when scrolling past the video:
https://share.firefox.dev/3c1LfcO

The jank (when the video is scrolling past) happens around 1.70s timestamp. It looks like it's a long composite operation on the Renderer thread. In particular: most of the composite operations are 10ms or less, but there's one in particular that's 90ms long, and about half of it is spent in memcpy operations. Here's a snippet of that profile, zoomed to this composite operation:
https://share.firefox.dev/35YO2zG

I see a similar (but smaller) stutter when scrolling near the top of the page, around when the line-graph image scrolls out of view. Here's a second profile of that, with the janky frame around the center of the profile (at timestamp 2.24s):
https://share.firefox.dev/2MeNcrb
Snippet zoomed to just that one composite operation: https://share.firefox.dev/2KGW3So

This one also seems to be spending most of its samples in memcpy.

Classifying this under WebRender, [qf:p3:responsiveness].

Component: Performance → Graphics: WebRender
Whiteboard: [qf:p3:responsiveness]

A memcpy in the texture uploader could indicate large blob images.

Blocks: wr-perf
Blocks: wr-android
Severity: -- → S4
Priority: -- → P3

It looks like an SVG spritesheet getting uploaded at various large resolutions.

Depends on: deferrable-blobs
Blocks: texture-upload-perf
No longer blocks: wr-perf

This looks like the same texture eviction problem I found in bug 1619093.

My mod that disables the start frame eviction seems to sort it out for me.

Original: https://imgur.com/a/Jvjy3PF
Mod: https://imgur.com/a/dpIoWDS

See gfx/wr/webrender/src/texture_cache.rs lines 912-917.

Performance Impact: --- → P3
Whiteboard: [qf:p3:responsiveness]
Attachment #9386501 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: