Closed Bug 1746245 (webgpu-in-nightly) Opened 3 years ago Closed 2 years ago

Enable WebGPU in Nightly by default

Categories

(Core :: Graphics: WebGPU, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
113 Branch
Tracking Status
firefox113 --- fixed

People

(Reporter: kvark, Assigned: jimb)

References

Details

(Keywords: dev-doc-complete)

Attachments

(1 file)

Chrome is full into the Origin Trials, enabling WebGPU by default in stable for selected users. It would help us to enable it by default, at least in Nightly, as well. We'd get more stress on the implementation, more feedback, and greater appreciation, hopefully.

This meta-bug is about general issues preventing us to enable it by default anywhere. Practically, we'd want to start with a small set of platforms (e.g. Linux/Vulkan) and expand gradually.

Depends on: 1746250
Depends on: 1746255

List of safety issues to address:

Alias: webgpu-in-nightly
Depends on: 1677183
Depends on: 1708780
Depends on: 1750576
Depends on: 1751064
Depends on: 1752155
Depends on: fuzzing-webgpu
No longer depends on: 1746250
Depends on: 1773723

I'm removing fuzzing-webgpu (bug 1753982) as a blocker for this. That is the meta-bug for all fuzzer-detected problems, so it includes many bugs that are not relevant to our decision about enabling webgpu by default in Nightly. In particular, Rust panics in the GPU process cannot be used for privilege escalation.

No longer depends on: fuzzing-webgpu

Added back those bugs from fuzzing-webgpu that are relevant.

Depends on: 1774811
No longer depends on: 1773723
Depends on: 1771252
Depends on: 1777429
Depends on: 1777535
Depends on: 1779274
Depends on: 1779775
Depends on: 1780084
Depends on: 1780104
Depends on: 1780110
No longer depends on: 1780084
Depends on: 1783713
Depends on: 1783742
Depends on: 1784271
Depends on: 1786559
Depends on: 1786566
Depends on: 1786675
No longer depends on: 1780104
Depends on: 1796637
Depends on: 1804530
Depends on: 1805209
Depends on: 1806699
No longer depends on: 1786566
No longer depends on: 1804530

Adding ANGLE update as blocker, since that's when we'll get Erich's attention full-time again, so we can handle any increased workload due to WebGPU's increased public exposure.

Depends on: angle-111
Depends on: 1807403
Depends on: 1808571
Depends on: 1808985, 1807967
Depends on: 1799753
Depends on: 1813719, 1813127
Depends on: 1812932
Depends on: 1810831
Depends on: 1813113
Depends on: 1793528
Depends on: 1808602
No longer depends on: angle-111
Assignee: nobody → jimb
Status: NEW → ASSIGNED
Pushed by jblandy@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/252a4369ed83 Enable WebGPU in nightly Firefox r=jrmuizel
Flags: needinfo?(jimb)
Depends on: 1824447
Depends on: 1824638

Quick summary: we're actually trying to turn this on, finally. The activity here is addressing the CI failures we get from flipping the pref. It turns out that we have multiple tests in various places that are ensuring that WebGPU wasn't accidentally enabled - which is a good thing. See also the newly added blockers.

New try push, incorporating fixes for Bug 1824638 and Bug 1824447, and adjustments to the pref-flip patch itself:
https://treeherder.mozilla.org/jobs?repo=try&revision=c2df8b2a1f7ec0d726b034661d98f054675e767f

Okay, that try push looks clean. I'm going to re-request reviews and try landing again.

Pushed by jblandy@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/5cc2daf4f55a Enable WebGPU in nightly Firefox r=jrmuizel,webidl,smaug

Backed out for xpcshell failure on test_FeatureGate.js

Backout link: https://hg.mozilla.org/integration/autoland/rev/c128f8596bbc1b7fd38111d674d8f98a271dd7ce
Log link: https://treeherder.mozilla.org/logviewer?job_id=410699346&repo=autoland&lineNumber=2846

Log snippet:

[task 2023-03-29T19:12:43.770Z] 19:12:43     INFO -  TEST-PASS | toolkit/components/featuregates/test/unit/test_FeatureGate.js | testAllDefaultsMatchSettings - [testAllDefaultsMatchSettings : 439] Feature browser.urlbar.keepPanelOpenDuringImeComposition should match runtime value. - false == false
[task 2023-03-29T19:12:43.770Z] 19:12:43  WARNING -  TEST-UNEXPECTED-FAIL | toolkit/components/featuregates/test/unit/test_FeatureGate.js | testAllDefaultsMatchSettings - [testAllDefaultsMatchSettings : 439] Feature dom.webgpu.enabled should match runtime value. - false == true
[task 2023-03-29T19:12:43.771Z] 19:12:43     INFO -  /builds/worker/workspace/build/tests/xpcshell/tests/toolkit/components/featuregates/test/unit/test_FeatureGate.js:testAllDefaultsMatchSettings:439
[task 2023-03-29T19:12:43.771Z] 19:12:43     INFO -  /builds/worker/workspace/build/tests/xpcshell/head.js:_do_main:238
[task 2023-03-29T19:12:43.771Z] 19:12:43     INFO -  /builds/worker/workspace/build/tests/xpcshell/head.js:_execute_test:585
[task 2023-03-29T19:12:43.772Z] 19:12:43     INFO -  -e:null:1
[task 2023-03-29T19:12:43.772Z] 19:12:43     INFO -  exiting test
[task 2023-03-29T19:12:43.772Z] 19:12:43     INFO -  Unexpected exception NS_ERROR_ABORT:
[task 2023-03-29T19:12:43.772Z] 19:12:43     INFO -  _abort_failed_test@/builds/worker/workspace/build/tests/xpcshell/head.js:868:20
[task 2023-03-29T19:12:43.773Z] 19:12:43     INFO -  do_report_result@/builds/worker/workspace/build/tests/xpcshell/head.js:977:5
[task 2023-03-29T19:12:43.773Z] 19:12:43     INFO -  Assert<@/builds/worker/workspace/build/tests/xpcshell/head.js:71:21
[task 2023-03-29T19:12:43.773Z] 19:12:43     INFO -  Assert.prototype.report@resource://testing-common/Assert.sys.mjs:240:10
[task 2023-03-29T19:12:43.774Z] 19:12:43     INFO -  equal@resource://testing-common/Assert.sys.mjs:282:8
[task 2023-03-29T19:12:43.774Z] 19:12:43     INFO -  testAllDefaultsMatchSettings@/builds/worker/workspace/build/tests/xpcshell/tests/toolkit/components/featuregates/test/unit/test_FeatureGate.js:439:12
[task 2023-03-29T19:12:43.774Z] 19:12:43     INFO -  _do_main@/builds/worker/workspace/build/tests/xpcshell/head.js:238:6
[task 2023-03-29T19:12:43.775Z] 19:12:43     INFO -  _execute_test@/builds/worker/workspace/build/tests/xpcshell/head.js:585:5
[task 2023-03-29T19:12:43.775Z] 19:12:43     INFO -  @-e:1:1
[task 2023-03-29T19:12:43.775Z] 19:12:43     INFO -  exiting test
[task 2023-03-29T19:12:43.775Z] 19:12:43     INFO -  <<<<<<<
[task 2023-03-29T19:12:43.776Z] 19:12:43     INFO -  INFO | Result summary:
[task 2023-03-29T19:12:43.776Z] 19:12:43     INFO -  INFO | Passed: 91
[task 2023-03-29T19:12:43.776Z] 19:12:43  WARNING -  INFO | Failed: 1
[task 2023-03-29T19:12:43.776Z] 19:12:43  WARNING -  One or more unittests failed.
[task 2023-03-29T19:12:43.776Z] 19:12:43     INFO -  INFO | Todo: 0
[task 2023-03-29T19:12:43.776Z] 19:12:43     INFO -  INFO | Retried: 1
[task 2023-03-29T19:12:43.777Z] 19:12:43     INFO -  SUITE-END | took 206s
[task 2023-03-29T19:12:43.777Z] 19:12:43     INFO -  Node moz-http2 server shutting down ...
[task 2023-03-29T19:12:43.777Z] 19:12:43     INFO -  http3Server server shutting down ...
[task 2023-03-29T19:12:43.879Z] 19:12:43     INFO - Return code: 1
[task 2023-03-29T19:12:43.879Z] 19:12:43     INFO - TinderboxPrint: xpcshell-xpcshell<br/>91/<em class="testfail">1</em>/0
[task 2023-03-29T19:12:43.880Z] 19:12:43  WARNING - setting return code to 2
[task 2023-03-29T19:12:43.880Z] 19:12:43     INFO - The xpcshell suite: xpcshell ran with return status: FAILURE
[task 2023-03-29T19:12:43.880Z] 19:12:43     INFO - Running post-action listener: _package_coverage_data
[task 2023-03-29T19:12:43.880Z] 19:12:43     INFO - Running post-action listener: _resource_record_post_action
[task 2023-03-29T19:12:43.881Z] 19:12:43     INFO - Running post-action listener: process_java_coverage_data
[task 2023-03-29T19:12:43.881Z] 19:12:43     INFO - [mozharness: 2023-03-29 19:12:43.879843Z] Finished run-tests step (success)
[task 2023-03-29T19:12:43.881Z] 19:12:43     INFO - [mozharness: 2023-03-29 19:12:43.879892Z] Running uninstall step.
[task 2023-03-29T19:12:43.882Z] 19:12:43     INFO - Running pre-action listener: _resource_record_pre_action
[task 2023-03-29T19:12:43.882Z] 19:12:43     INFO - Running main action method: uninstall
[task 2023-03-29T19:12:43.883Z] 19:12:43     INFO - Skipping uninstall for non-MSIX test
[task 2023-03-29T19:12:43.883Z] 19:12:43     INFO - Running post-action listener: _resource_record_post_action
[task 2023-03-29T19:12:43.883Z] 19:12:43     INFO - [mozharness: 2023-03-29 19:12:43.880445Z] Finished uninstall step (success)
[task 2023-03-29T19:12:43.884Z] 19:12:43     INFO - Running post-run listener: _resource_record_post_run
[task 2023-03-29T19:12:43.932Z] 19:12:43     INFO - Validating Perfherder data against /builds/worker/workspace/mozharness/external_tools/performance-artifact-schema.json
[task 2023-03-29T19:12:43.935Z] 19:12:43     INFO - PERFHERDER_DATA: {"framework": {"name": "job_resource_usage"}, "suites": [{"name": "xpcshell.xpcshell.overall", "extraOptions": ["e10s", "taskcluster-projects/887720501152/machineTypes/n2-standard-2"], "subtests": [{"name": "cpu_percent", "value": 53.389709443099285}, {"name": "io_write_bytes", "value": 3219386368}, {"name": "io.read_bytes", "value": 39284736}, {"name": "io_write_time", "value": 940916}, {"name": "io_read_time", "value": 1156}]}, {"name": "xpcshell.xpcshell.start-pulseaudio", "subtests": [{"name": "time", "value": 0.02334451675415039}, {"name": "cpu_percent", "value": 0}]}, {"name": "xpcshell.xpcshell.install", "subtests": [{"name": "time", "value": 42.10404419898987}, {"name": "cpu_percent", "value": 50.70487804878049}]}, {"name": "xpcshell.xpcshell.stage-files", "subtests": [{"name": "time", "value": 0.0789186954498291}, {"name": "cpu_percent", "value": 0}]}, {"name": "xpcshell.xpcshell.run-tests", "subtests": [{"name": "time", "value": 372.1125900745392}, {"name": "cpu_percent", "value": 53.67189189189191}]}, {"name": "xpcshell.xpcshell.uninstall", "subtests": [{"name": "time", "value": 0.0002961158752441406}, {"name": "cpu_percent", "value": 0}]}]}
[task 2023-03-29T19:12:43.936Z] 19:12:43     INFO - Total resource usage - Wall time: 414s; CPU: Can't collect data; Read bytes: 39284736; Write bytes: 3219386368; Read time: 1156; Write time: 940916
[task 2023-03-29T19:12:43.937Z] 19:12:43     INFO - TinderboxPrint: I/O read bytes / time<br/>39,284,736 / 1,156
[task 2023-03-29T19:12:43.938Z] 19:12:43     INFO - TinderboxPrint: I/O write bytes / time<br/>3,219,386,368 / 940,916
[task 2023-03-29T19:12:43.939Z] 19:12:43     INFO - TinderboxPrint: CPU idle<br/>383.1 (46.5%)
[task 2023-03-29T19:12:43.939Z] 19:12:43     INFO - TinderboxPrint: CPU system<br/>49.2 (6.0%)
[task 2023-03-29T19:12:43.940Z] 19:12:43     INFO - TinderboxPrint: CPU user<br/>391.3 (47.5%)
[task 2023-03-29T19:12:43.941Z] 19:12:43     INFO - TinderboxPrint: Swap in / out<br/>0 / 0
[task 2023-03-29T19:12:43.941Z] 19:12:43     INFO - start-pulseaudio - Wall time: 0s; CPU: Can't collect data; Read bytes: 0; Write bytes: 0; Read time: 0; Write time: 0
[task 2023-03-29T19:12:43.941Z] 19:12:43     INFO - install - Wall time: 42s; CPU: 51%; Read bytes: 229376; Write bytes: 1741168640; Read time: 0; Write time: 824944
[task 2023-03-29T19:12:43.941Z] 19:12:43     INFO - stage-files - Wall time: 0s; CPU: Can't collect data; Read bytes: 0; Write bytes: 0; Read time: 0; Write time: 0
[task 2023-03-29T19:12:43.941Z] 19:12:43     INFO - run-tests - Wall time: 372s; CPU: 54%; Read bytes: 38719488; Write bytes: 1476685824; Read time: 996; Write time: 115972
[task 2023-03-29T19:12:43.941Z] 19:12:43     INFO - uninstall - Wall time: 0s; CPU: Can't collect data; Read bytes: 0; Write bytes: 0; Read time: 0; Write time: 0
[task 2023-03-29T19:12:43.977Z] 19:12:43  WARNING - returning nonzero exit status 2
[task 2023-03-29T19:12:44.001Z] cleanup
Flags: needinfo?(jimb)
Attachment #9324763 - Attachment description: Bug 1746245: Enable WebGPU in nightly Firefox r?jrmuizel → WIP: Bug 1746245: Enable WebGPU in nightly Firefox
Attachment #9324763 - Attachment description: WIP: Bug 1746245: Enable WebGPU in nightly Firefox → Bug 1746245: Enable WebGPU in nightly Firefox
Pushed by jblandy@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/3ab9b701c07f Enable WebGPU in nightly Firefox r=jrmuizel,webidl,smaug,settings-reviewers,fluent-reviewers
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 113 Branch
Flags: needinfo?(jimb)

Hi Jim, I'm thinking we should add this to the Fx113 Nightly relnotes - thoughts? Note that adding it there doesn't mean it needs to ride the 113 relnotes past Nightly. If you agree, please set the relnote-firefox flag to ? and fill out the form. Thanks!

Flags: needinfo?(jimb)

Release Note Request (optional, but appreciated)

[Why is this notable]: WebGPU is a major new content API, and it's now available without pref-flipping in Nightly.

[Affects Firefox for Android]: WebGPU is not enabled on Android.

[Suggested wording]: The WebGPU API is now available in Nightly Firefox on Linux and Windows. WebGPU is a draft API for rendering and computation on graphics processing units, based on modern platform APIs like Vulkan, Metal, and Direct3D12. Firefox's implementation is based on the wgpu Rust crate, which is developed on GitHub and widely used outside Firefox. Support on macOS, iOS, and Android is under development. Work to catch up Firefox's implementation with the specification is tracked in bug 1616739.

[Links (documentation, blog post, etc)]:

https://www.w3.org/TR/webgpu/

https://gpuweb.github.io/gpuweb/wgsl/

relnote-firefox: --- → ?
Flags: needinfo?(jimb)
Keywords: dev-doc-needed

MDN docs work for this can be tracked in https://github.com/mdn/content/issues/26157

Browser compatibility data is being updated in https://github.com/mdn/browser-compat-data/pull/19370

Flags: needinfo?(jimb)
Flags: needinfo?(jimb)

removing relnote nomination in the meantime. please feel free to add this back when the feature is ready for wider testing on nightly

relnote-firefox: ? → ---
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: