Closed Bug 1881738 Opened 1 year ago Closed 1 year ago

"Terminate GPU process" on many canvas2d type demos completely freezes the browser for a long time (30s-1m) and then fallback to sw-wr

Categories

(Core :: Graphics: Canvas2D, defect)

defect

Tracking

()

VERIFIED FIXED
126 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox123 --- unaffected
firefox124 --- wontfix
firefox125 --- wontfix
firefox126 --- verified

People

(Reporter: mayankleoboy1, Assigned: lsalzman, NeedInfo)

References

(Regression)

Details

(Keywords: regression)

Attachments

(5 files)

  1. Go to https://devnook.github.io/OffscreenCanvasDemo/use-with-lib.html
  2. Open about:support in a new tab and drag it out to create a new Window.
  3. Place the demo window and about:support side-by-side so tthat both are visible
  4. In the about:support tab, click on "terminate the gpu process"

AR: The whole browser goes white and freezes.
ER: Not so?

Full disclosure that the STR are quite deliberate to stress-test firefox.

Regressed by:
Bug 1877010 - Track forwarder transaction ids for RemoteTextureMap with WebGL and WebGPU. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D199876

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

Set release status flags based on info from the regressing bug 1877010

Severity: -- → S3
Flags: needinfo?(lsalzman)

:lsalzman, since you are the author of the regressor, bug 1877010, could you take a look?

For more information, please visit BugBot documentation.

Flags: needinfo?(lsalzman)
Flags: needinfo?(lsalzman)
Flags: needinfo?(aosmond)

This still repros with the fix from bug 1887729

It seems like Canvas2D and WebGPU already avoid sending over invalid owner ids in GetFrontBuffer.
WebGL, however, can still blindly send an invalid texture owner id when the actor is being destroyed,
but the WebGL context is still alive.

Assignee: nobody → lsalzman
Status: NEW → ASSIGNED
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9a2e1c938dee Don't send invalid remote texture owner id when WebGLChild is destroyed. r=aosmond
See Also: → 1888931
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 126 Branch
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/a12f1f3ed2af Clean up ClientWebGLContext::GetFrontBuffer sync handling. r=aosmond

This is fixed for me on the latest Nightly.

Flags: qe-verify+
Attached video 2024-05-09 09-42-49.mkv

Reproduced the issue using Firefox 125.0a1 (2024-02-23) on Windows 10x64. After clicking Terminate the GPU process on about:support page the browser goes white and freezes.
Firefox no longer freezes and the compositing remains to Webrender with Firefox 126.0a1(20240403093409) from comment 12 (Terminate GPU process is not available in 126.0 RC1) on Windows 10x64. However, sometimes the white window remains for some time, especially on the one with the test page loaded. Also, the test page does not fully reload (the canvas frames are empty) after the windows are painted. Is this expected? I have also attached a screen recording. Thank you!

Flags: needinfo?(lsalzman)

If you tear down the GPU process, that it might take a few moments for the canvases to recognize that the GPU is gone and they need to restart.

Flags: needinfo?(lsalzman)

(In reply to Lee Salzman [:lsalzman] from comment #15)

If you tear down the GPU process, that it might take a few moments for the canvases to recognize that the GPU is gone and they need to restart.

Thank you! Closing this as verified per comments 14 and 15.

Status: RESOLVED → VERIFIED
Has STR: --- → yes
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: