Enable WebGPU in Nightly by default
Categories
(Core :: Graphics: WebGPU, enhancement)
Tracking
()
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.
Reporter | ||
Comment 1•3 years ago
|
||
List of safety issues to address:
- [x] bounds checks for buffers and textures
- [x] resource initialization
- [ ] Metal vertex data - https://github.com/gfx-rs/wgpu/issues/2432
- [ ] workgroup memory init - https://github.com/gfx-rs/wgpu/issues/2430
- [ ] indirect draws and dispatches - https://github.com/gfx-rs/wgpu/issues/2431
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 2•2 years ago
|
||
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.
Assignee | ||
Comment 3•2 years ago
|
||
Added back those bugs from fuzzing-webgpu
that are relevant.
Assignee | ||
Comment 4•2 years ago
|
||
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.
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 5•2 years ago
|
||
Updated•2 years ago
|
Comment 7•2 years ago
|
||
Backed out for causing failures at test_interfaces.html
Backout link: https://hg.mozilla.org/integration/autoland/rev/457474e589d4544345a1f55d4343a4b70ded1d1e
Failure log: https://treeherder.mozilla.org/logviewer?job_id=410024854&repo=autoland&lineNumber=4301
Assignee | ||
Comment 8•2 years ago
|
||
Revised. Try push for new version: https://treeherder.mozilla.org/jobs?repo=try&revision=4e3e42475a1fb9cadb1ee9d520b06b581d25b6b3
Assignee | ||
Comment 9•2 years ago
|
||
New try push, including a fix for bug 1824447 (secure context):
https://treeherder.mozilla.org/jobs?repo=try&revision=cdb57dfcf53c37d802ef4a5d4d2597b1a94dd6f9
Assignee | ||
Comment 10•2 years ago
•
|
||
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.
Assignee | ||
Comment 11•2 years ago
|
||
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
Assignee | ||
Comment 12•2 years ago
|
||
Assignee | ||
Comment 13•2 years ago
|
||
Okay, that try push looks clean. I'm going to re-request reviews and try landing again.
Comment 14•2 years ago
|
||
Comment 15•2 years ago
|
||
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
Updated•2 years ago
|
Assignee | ||
Comment 16•2 years ago
|
||
Patch revised. New try push:
https://treeherder.mozilla.org/jobs?repo=try&revision=3dd6b912f085f38971485daa3d7fbfd29147b1f6
Updated•2 years ago
|
Comment 17•2 years ago
|
||
Comment 18•2 years ago
|
||
bugherder |
Updated•2 years ago
|
Comment 19•2 years ago
•
|
||
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!
Assignee | ||
Comment 20•2 years ago
•
|
||
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)]:
Comment 21•2 years ago
•
|
||
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
Updated•2 years ago
|
Updated•2 years ago
|
Comment 22•1 year ago
|
||
removing relnote nomination in the meantime. please feel free to add this back when the feature is ready for wider testing on nightly
Description
•