Closed Bug 1659518 Opened 4 years ago Closed 2 years ago

Heavy janking while doing page up/down on bleepingcomputer with ANGLE

Categories

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

Desktop
Windows
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox81 --- affected

People

(Reporter: yoasif, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: nightly-community)

Attachments

(3 files)

Steps to reproduce:

  1. Navigate to https://www.bleepingcomputer.com/news/microsoft/research-finds-microsoft-edge-has-privacy-invading-telemetry/
  2. Page down to end of page
  3. Press Home
  4. Page down to end of page

What happens:

Heavy slowdown and janking, especially at the top half of the page.

Expected result:

Smooth scrolling.

Profile: https://share.firefox.dev/314P0Z8

The same site scrolls quite smoothly on Linux+Intel with a nothing out of the ordinary on the profiles. This looks specific to Windows/ANGLE. In the profile from comment 0 I see a lot of time spent creating DC surfaces, especially on the janky parts of the profile. There's also a lot og time uploading textures though it is less surprising.

Glenn, any idea ?

Blocks: wr-perf
Severity: -- → S3
Flags: needinfo?(gwatson)
OS: Unspecified → Windows
Priority: -- → P3
Hardware: Unspecified → Desktop
Summary: Heavy janking while doing page up/down on bleepingcomputer → Heavy janking while doing page up/down on bleepingcomputer with ANGLE
Blocks: wr-renderer-perf
No longer blocks: wr-perf
Assignee: nobody → gwatson
Flags: needinfo?(gwatson)

This isn't occurring for me on a local Windows machine, and it seems fine on mac/linux too.

Do you know what GPU / driver is being used? Would it be possible to get a screenshot when the jank is occurring with gfx.webrender.debug.profiler and gfx.webrender.debug.gpu-time-queries enabled?

Flags: needinfo?(yoasif)
Attached image 1659518.png

Hope this screenshot helps. I forgot to attach my about:support here, but I'll put it in the next comment.

Flags: needinfo?(yoasif)
Attached file about:support

Thanks for posting. This is a really strange Gecko and WR profile. A few questions:

  • Are we sure this is WR related? In the Gecko profile, I can see some huge event processing delays in the content processes. It's possible these are caused by slow FPS inside WR, but it seems somewhat unlikely given the content on this page.

  • Would it be possible to run at a higher resolution so that the WR profiler also shows the GPU timer bars? (no worries if that's difficult).

  • The WR profiler shows that the spikes occur in both the DL IPC, backend and renderer threads simultaneously. This either suggests something else is going on in the system when these occur, starving the WR CPU threads, or that we occasionally get display lists that are huge (which I don't see when profiling locally).

  • I don't know much about Fission, but it seems that it's enabled here (based on the Isolated Web Content processes in the profiler). Is it possible this is related to fission instead (I also see huge event processing delays in the isolated web content processes).

Attached image image.png

This is worse with WR enabled on this machine. Attached a new screenshot. This is at a higher resolution.

I closed all other apps on the machine in the last screenshot.

This profile is also not using Fission (at least for the screenshot posted just now). I am pretty sure my "profiler" profile has never used Fission, but I am not 100% sure that I profiled there. I'm pretty sure that Fission is not enabled though.

"API Send Time" in the overlay profiler is the time between the transaction being sent by the API and when the scene builder starts processing it. Usually when it is high it is because either the render backend thread was busy when the message transited there or the scene builder was busy building the previous scene. Here it is much much higher than the sum of frame and scene builds so it it looks like messages are sitting in the event loops of threads that are not even scheduled. The very high IPC times also suggest something like that.

Asif, do you happen to have core isolation or memory integrity enabled in Windows Defender? I've seen reports of it affecting WebRender's performance although if I remember correctly it was more in the driver interactions.

Nicolas, I don't know how to check if Core Isolation is enabled, although I suspect it may be, since my reading is that it is enabled automatically in certain cases:

Some Core Isolation features are enabled by default on Windows 10 PCs that meet certain hardware and firmware requirements, including having a 64-bit CPU and TPM 2.0 chip. It also requires your PC supports the Intel VT-x or AMD-V virtualization technology, and that it’s enabled in your PC’s UEFI settings.

https://www.howtogeek.com/357757/what-are-core-isolation-and-memory-integrity-in-windows-10/

Memory Isolation is disabled.

I tried this again on Windows and also Linux, and it seems to run fine in both for me. Asif, is this page still slow on your setup? Should we leave it open or close?

Assignee: gwatson → nobody
Flags: needinfo?(yoasif)

Glenn, this is still poor on the hardware I am testing on, and markedly worse than Edge. See a fresh profile: https://share.firefox.dev/2KMYORx

Flags: needinfo?(yoasif)

cant repro anymore. Closing for now, please fix if still reproducible.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: