Open Bug 1881843 Opened 9 months ago Updated 9 months ago

canvas graphics performance poor with dev tools open

Categories

(Core :: JavaScript Engine, defect, P3)

Firefox 123
defect

Tracking

()

People

(Reporter: vtwintiger, Unassigned)

References

(Blocks 1 open bug)

Details

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0

Steps to reproduce:

I use a cloud mechanical CAD (computer-aided design) 3D modeling product called Zel X (https://www.sw.siemens.com/en-US/zel-x/), which heavily depends on the canvas. It seem like recently (v122 or v123?) when the dev tools are open (I'm usually on the Console tab) graphics performance drops considerably.

open a model
F12 to open dev tools
force graphics change on the model, like select a face to show dims, or drag a face

Windows 10 x64, NVIDIA RTX GPU

Actual results:

operations take a lot more time

Expected results:

no change in performance

Forgot to mention I mostly use private windows and on a workstation-grade Dell laptop

The Bugbug bot thinks this bug should belong to the 'Core::Graphics: Canvas2D' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: Untriaged → Graphics: Canvas2D
Product: Firefox → Core

Hi Justin, thanks for reporting this issue.

Since this is on a work machine, I am guessing that you wont be able to share a standalone testcase on this bug, or share lopgin credentials with a Firefox dev directly via email.

To help is diagnosis, can you do the following:

  1. If this is a recent bug, can you do a bisection using this tool : https://mozilla.github.io/mozregression/ ?
  2. Create a performance profile using the Firefox profiler (https://profiler.firefox.com/docs/#/) with the "Graphics" preset?
Flags: needinfo?(vtwintiger)

I'll give it a go.

Anyone can create a Zel X trial and use the product. I could create a trial for a dev, if need be.

Flags: needinfo?(vtwintiger)

I got this profile (on the latest Nightly) while the devtools was open: https://share.firefox.dev/4bQXTYE

I created two profile recordings
https://share.firefox.dev/3OTzbgj - select face to display dimensions
https://share.firefox.dev/3Iy8YQZ - drag face

Just noticed that I don't see the performance hit while in a container tab in the normal window; I see it in a private (non-container) tab.

These profiles show all the time spent in Baseline part of the Javascript engine. I think the reason for that is becuase the devtools are opened.

Justin: Any particular reason you open the devtools when you use this page? Can you try NOT opening teh devtools and using the page and see if the performance is OK?

Arai: ni? you as you have done some work in this area recently and may have better opinions.

Status: UNCONFIRMED → NEW
Component: Graphics: Canvas2D → JavaScript Engine
Ever confirmed: true
Flags: needinfo?(vtwintiger)
Flags: needinfo?(arai.unmht)

This bug is reporting the perf hit only when devtools is open - that is the issue. I look at the console while testing the app (I work in QA).

Flags: needinfo?(vtwintiger)

Opening DevTools de-optimizes multiple parts of the code and lets them perform extra steps, to provide better debugging information in the console output and allow interacting with the global.
There are many debug-related samples in the above profiles (3037/11578 samples in the 1st one, 6113/13726 samples in the 2nd one), that would explain the performance hit to some extent, but I'm not aware of the performance difference between normal window vs private window.

comparing the profile for "normal window + devtool opened" vs "private window + devtools opened" might tell something

Flags: needinfo?(arai.unmht)
Blocks: js-debugger
Severity: -- → S3
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.