Commit Graph
41 Commits
Author SHA1 Message Date
Erich Gubler f05701f80f Bug 1885238 - typo(webgpu): s/Canavas/Canvas r=webgpu-reviewers,nical
Depends on D205176

Differential Revision: https://phabricator.services.mozilla.com/D205177
2024-03-20 15:24:21 +00:00
Andrew Osmond 4413c2073e Bug 1858732 - Allow WebGPU to be enabled on DOM workers via a pref, disabled by default. r=webidl,webgpu-reviewers,saschanaz,nical
Differential Revision: https://phabricator.services.mozilla.com/D190830
2023-10-16 15:29:21 +00:00
Erich Gubler 91e9fdd6f7 Bug 1653164: feat(webgpu): show wgpu* fields for WebGPU adapters in about:support r=webgpu-reviewers,webidl,saschanaz,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D177402
2023-05-10 19:29:32 +00:00
Stanca Serban aad13fc5d1 Backed out 3 changesets (bug 1653164) for causing bp-nu bustages in Adapter.h. CLOSED TREE
Backed out changeset 938fa5409a7a (bug 1653164)
Backed out changeset 1b25345f09e5 (bug 1653164)
Backed out changeset 91185e96b467 (bug 1653164)
2023-05-10 07:59:41 +03:00
Erich Gubler 13cbb7f40d Bug 1653164: feat(webgpu): show wgpu* fields for WebGPU adapters in about:support r=webgpu-reviewers,webidl,saschanaz,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D177402
2023-05-10 00:46:00 +00:00
Narcis Beleuzu cf5ed4cf31 Backed out 3 changesets (bug 1653164) for build bustages on Adapter.h . CLOSED TREE
Backed out changeset 6f36f0a844be (bug 1653164)
Backed out changeset 86be7d9d8fa1 (bug 1653164)
Backed out changeset 984a479a81d8 (bug 1653164)
2023-05-10 01:42:57 +03:00
Erich Gubler 154bf69888 Bug 1653164: feat(webgpu): show wgpu* fields for WebGPU adapters in about:support r=webgpu-reviewers,webidl,saschanaz,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D177402
2023-05-09 21:47:34 +00:00
Stanca Serban 3d4efc87d5 Backed out 3 changesets (bug 1653164) for causing builds bustages in Adapter.h. CLOSED TREE
Backed out changeset 037d37f4eb71 (bug 1653164)
Backed out changeset 32ca1ab63d70 (bug 1653164)
Backed out changeset a996e5517aa1 (bug 1653164)
2023-05-09 21:43:27 +03:00
Erich Gubler cf4abb388d Bug 1653164: feat(webgpu): show wgpu* fields for WebGPU adapters in about:support r=webgpu-reviewers,webidl,saschanaz,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D177402
2023-05-09 17:47:26 +00:00
Kelsey Gilbert 42c9fdcfa2 Bug 1814745 - Don't require a browser restart to update dom.webgpu.enabled. r=jimb
about:support's feature table still shows blocklisting, just not whether
the pref is set.
If different from default, dom.webgpu.enabled still shows up in about:support under
"Important Modified Prefs" like normal.

Also renames "gfx.webgpu.force-enabled" to "gfx.webgpu.ignore-blocklist"
to reflect its functionality.

Differential Revision: https://phabricator.services.mozilla.com/D169007
2023-02-13 23:11:42 +00:00
Kagami Sascha Rosylight 0d99b8af53 Bug 1768189 - Part 41: Apply modernize-concat-nested-namespaces to dom/webgpu/BindGroup.h ... r=andi
Depends on D145776

Differential Revision: https://phabricator.services.mozilla.com/D145777
2022-05-09 20:41:19 +00:00
Andrew Osmond 5fe64d9beb Bug 1709951 - Make WebGPU handle GPU process loss. r=gfx-reviewers,webidl,jgilbert,smaug
Differential Revision: https://phabricator.services.mozilla.com/D143247
2022-04-27 21:13:21 +00:00
Andrew Osmond 1f65b6ffae Bug 1760663 - Add blocklist support for WebGPU. r=gfx-reviewers,nical
This patch just adds the plumbing to allow for baked in blocklist rules
or the downloadable blocklist to prevent certain configurations from
getting WebGPU. It does not add any rules.

It also changes us from allowing WebGPU only in nightly, including
tests, to not release and not beta. This allows try to run the WebGPU
tests as expected, since even try builds forked from mozilla-central are
not considered nightly builds by CI (or so it seems).

Differential Revision: https://phabricator.services.mozilla.com/D141682
2022-03-22 15:22:39 +00:00
Andrew Osmond 1ec33e1be0 Bug 1754302 - WebGPU should consistently use GetCurrentSerialEventTarget instead of GetMainThreadSerialEventTarget. r=kvark
This is necessary for when WebGPU objects are accessed from a worker
thread instead of the main thread. It should be otherwise a
non-functional change.

Differential Revision: https://phabricator.services.mozilla.com/D138206
2022-02-09 22:01:48 +00:00
Andrew Osmond 8b0218ad9d Bug 1746538 - Make PWebGPU managed by PCanvasManager. r=kvark
Similar to PWebGL, we want PCanvasManager to manage the PWebGPU
protocol. This will allow us to reuse the machinery that works for both
the main thread, and arbitrary worker threads to create PWebGPU
protocols.

For now, the only owner is still the main thread, so it should work very
similarly as to how it does with PCompositorBridge.

This patch also introduces some quality of life changes, such as making
the protocol ref-counted, and avoiding respinning the wheel for
CanSend() for IPDL actors.

Differential Revision: https://phabricator.services.mozilla.com/D134097
2022-02-02 20:49:23 +00:00
Dzmitry Malyshau 5fa9f4fd56 WIP: Bug 1747750 - Return null WebGPU adapter r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D135645
2022-01-12 15:34:55 +00:00
Dzmitry Malyshau e8b4f36fac Bug 1743667 - Hook up WebGPU device limits and features r=jgilbert,webidl,smaug
Differential Revision: https://phabricator.services.mozilla.com/D133280
2021-12-10 01:09:04 +00:00
Dzmitry Malyshau dcaf44e39b Bug 1697509 - Fix WebGPU shaders and adapter limits r=jgilbert
Expose adapter limits, hook up spirv-cross

Differential Revision: https://phabricator.services.mozilla.com/D107840
2021-03-16 22:57:08 +00:00
Simon Giesecke 46908cfb51 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Dzmitry Malyshau 7374c62779 Bug 1629955 - Don't fail WebGPU Instance creation r=jgilbert
we can't fail at Navigator.gpu
Instead, we reject the promise of requestAdapter

Differential Revision: https://phabricator.services.mozilla.com/D70903
2020-04-14 21:11:10 +00:00
Boris Zbarsky 183e657b3e Bug 1612213 part 3. Switch Promise::RejectWithDOMException consumers to new convenience methods. r=smaug,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D61269
2020-02-03 20:37:32 +00:00
Dzmitry Malyshau b90ea4e243 Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky
Adds support for bind groups and compute pipelines
The end goal of this PR is to run the compute example.

Differential Revision: https://phabricator.services.mozilla.com/D60746
2020-01-24 16:27:09 +00:00
Noemi Erli 496ea2ef0b Backed out changeset 136b3044f6a6 (bug 1609175) for causing build bustages in WebGPUChild.cpp CLOSED TREE 2020-01-24 17:20:31 +02:00
Dzmitry Malyshau a091f4bc8b Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky
Adds support for bind groups and compute pipelines
The end goal of this PR is to run the compute example.

Differential Revision: https://phabricator.services.mozilla.com/D60746
2020-01-24 05:05:34 +00:00
Dzmitry Malyshau 71c5646998 Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky
Update third party dependencies
WebGPU command encoder creation
WebGPU CommandBuffer creation and submission
WebGPU Compute pass recording

Differential Revision: https://phabricator.services.mozilla.com/D59896
2020-01-22 07:31:51 +00:00
Dzmitry Malyshau 10bbfecd2e Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky
This change vendors `wgpu` library in-tree and hooks up the initialization bits. It implements adapter and device initialization and adds a simple test.
Complementary ecosystem tracker - https://github.com/gfx-rs/wgpu/issues/374

Current status:
  - [x] General
    - [x] figure out the IPC story
    - [ ] move wgpu crates into a dedicated folder (postponed as https://bugzilla.mozilla.org/show_bug.cgi?id=1594182)
    - [x] neko rebasing disaster
  - [x] Linux
    - [x] avoid depending on spirv_cross
  - [x] macOS
    - [x] due to cross-compiling shaders
    - [x] need the dependency update
    - [x] stop using gcc
    - [x] unexpected SSL header collision - https://phabricator.services.mozilla.com/D51148
    - [x] undefined Metal symbols
    - [x] missing webrtc headers for IPDL magic - https://phabricator.services.mozilla.com/D51558
    - [x] spirv-cross linking failure in ASAN - https://phabricator.services.mozilla.com/D52688
  - [x] Windows
    - [x] due to "ipc-channel" not supporting Windows yet
    - [x] due to some exceptional stuff
    - [x] undefined symbol: `D3D12CreateDevice`
    - [x] d3d12.dll is not found, dxgi1_4 doesn't present
    - [x] d3d11.dll and dxgi.dll need to be explicitly loaded on win32 mingw
    - [x] libbacktrace fails to link on win32 mingw
    - [x] cc mislinking C++ standard library
  - [x] Android
    - [x] spirv-cross fails to build due to exceptions

Update-1:
We decided to go with IPDL mechanism instead of Rust based ipc-channel (or any alternatives), which unblocks Windows build.

Update-2:
It appears that WebGPUThreading isn't needed any more as the child thread (and its event loop) is now managed by IPDL infrastructure. This PR removes it 🎉 .

Update-3:
InstanceProvider is also removed.

Update-4:
All set, the try is green, waiting for dependent changes to go in.

Differential Revision: https://phabricator.services.mozilla.com/D49458
2019-11-14 04:59:56 +00:00
Gurzau Raul b8ba3767da Backed out 2 changesets (bug 1590167, bug 1575008) for lints failures at mapped_hyph.h on a CLOSED TREE.
Backed out changeset 4d16c3d62cfc (bug 1575008)
Backed out changeset 97b8c3759aae (bug 1590167)
2019-11-13 21:38:23 +02:00
Dzmitry Malyshau 9b23397fb5 Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky
This change vendors `wgpu` library in-tree and hooks up the initialization bits. It implements adapter and device initialization and adds a simple test.
Complementary ecosystem tracker - https://github.com/gfx-rs/wgpu/issues/374

Current status:
  - [x] Architecture
    - [x] figure out the IPC story
    - [ ] move wgpu crates into a dedicated folder (postponed as https://bugzilla.mozilla.org/show_bug.cgi?id=1594182)
  - [x] Linux
    - [x] avoid depending on spirv_cross
  - [x] macOS
    - [x] due to cross-compiling shaders
    - [x] need the dependency update
    - [x] stop using gcc
    - [x] unexpected SSL header collision - https://phabricator.services.mozilla.com/D51148
    - [x] undefined Metal symbols
    - [x] missing webrtc headers for IPDL magic - https://phabricator.services.mozilla.com/D51558
    - [x] spirv-cross linking failure in ASAN - https://phabricator.services.mozilla.com/D52688
  - [x] Windows
    - [x] due to "ipc-channel" not supporting Windows yet
    - [x] due to some exceptional stuff
    - [x] undefined symbol: `D3D12CreateDevice`
    - [x] d3d12.dll is not found, dxgi1_4 doesn't present
    - [x] d3d11.dll and dxgi.dll need to be explicitly loaded on win32 mingw
    - [x] libbacktrace fails to link on win32 mingw
    - [x] cc mislinking C++ standard library
  - [x] Android
    - [x] spirv-cross fails to build due to exceptions

Update-1:
We decided to go with IPDL mechanism instead of Rust based ipc-channel (or any alternatives), which unblocks Windows build.

Update-2:
It appears that WebGPUThreading isn't needed any more as the child thread (and its event loop) is now managed by IPDL infrastructure. This PR removes it 🎉 .

Update-3:
InstanceProvider is also removed.

Update-4:
All set, the try is green, waiting for dependent changes to go in.

Differential Revision: https://phabricator.services.mozilla.com/D49458
2019-11-13 12:48:33 +00:00
Narcis Beleuzu b8f6e26e47 Backed out changeset cbec8a55a1bb (bug 1575008) for build bustages (Bof). CLOSED TREE 2019-11-05 23:22:40 +02:00
Dzmitry Malyshau 3d97c29cf1 Bug 1575008 - WebGPU implementation basis r=webidl,baku
This change vendors `wgpu` library in-tree and hooks up the initialization bits. It implements adapter and device initialization and adds a simple test.

Current status:
  - [x] Architecture
    - [x] figure out the IPC story
    - [ ] move wgpu crates into a dedicated folder (let's follow up with this)
  - [x] Review
    - [x] WebIDL changes by DOM peers
  - [x] Linux
    - [x] avoid depending on spirv_cross - https://github.com/gfx-rs/wgpu/pull/371
  - [x] macOS
    - [x] due to cross-compiling shaders - https://github.com/gfx-rs/gfx/pull/3047
    - [x] need the dependency update
    - [x] stop using gcc - https://github.com/SSheldon/rust-objc-exception/pull/5
    - [x] unexpected SSL header collision - https://phabricator.services.mozilla.com/D51148
    - [x] undefined Metal symbols
    - [x] missing webrtc headers for IPDL magic - https://phabricator.services.mozilla.com/D51558
  - [x] Windows
    - [x] due to "ipc-channel" not supporting Windows yet - https://github.com/servo/ipc-channel/pull/233~~
    - [x] due to some exceptional stuff - https://github.com/grovesNL/spirv_cross/issues/121
    - [x] undefined symbol: `D3D12CreateDevice`
    - [x] d3d12.dll is not found, dxgi1_4 doesn't present
    - [x] d3d11.dll and dxgi.dll need to be explicitly loaded on win32 mingw - https://github.com/gfx-rs/gfx/pull/3076
    - [x] libbacktrace fails to link on win32 mingw
    - [x] cc mislinking C++ standard library - https://github.com/alexcrichton/cc-rs/pull/455
  - [x] Android
    - [x] spirv-cross fails to build - https://github.com/KhronosGroup/SPIRV-Cross/pull/1193

Update-1:
We decided to go with IPDL mechanism instead of Rust based ipc-channel (or any alternatives), which unblocks Windows build.

Update-2:
It appears that WebGPUThreading isn't needed any more as the child thread (and its event loop) is now managed by IPDL infrastructure. This PR removes it 🎉 .

Update-3:
InstanceProvider is also removed.

Update-4:
All set, the try is green, waiting for dependent changes to go in.

Differential Revision: https://phabricator.services.mozilla.com/D49458
2019-11-05 19:51:15 +00:00
Noemi Erli 1c12fbfe17 Backed out changeset ef59d327a1a4 (bug 1575008) for causing build bustages CLOSED TREE 2019-11-05 08:19:10 +02:00
Dzmitry Malyshau 83f9191f07 Bug 1575008 - WebGPU implementation basis r=webidl,baku
This change vendors `wgpu` library in-tree and hooks up the initialization bits. It implements adapter and device initialization and adds a simple test.

Current status:
  - [x] Architecture
    - [x] figure out the IPC story
    - [ ] move wgpu crates into a dedicated folder (let's follow up with this)
  - [x] Review
    - [x] WebIDL changes by DOM peers
  - [x] Linux
    - [x] avoid depending on spirv_cross - https://github.com/gfx-rs/wgpu/pull/371
  - [x] macOS
    - [x] due to cross-compiling shaders - https://github.com/gfx-rs/gfx/pull/3047
    - [x] need the dependency update
    - [x] stop using gcc - https://github.com/SSheldon/rust-objc-exception/pull/5
    - [x] unexpected SSL header collision - https://bugzilla.mozilla.org/show_bug.cgi?id=1592398
    - [x] undefined Metal symbols
  - [x] Windows
    - [x] due to "ipc-channel" not supporting Windows yet - https://github.com/servo/ipc-channel/pull/233~~
    - [x] due to some exceptional stuff - https://github.com/grovesNL/spirv_cross/issues/121
    - [x] undefined symbol: `D3D12CreateDevice`
    - [x] d3d12.dll is not found, dxgi1_4 doesn't present
    - [x] d3d11.dll and dxgi.dll need to be explicitly loaded on win32 mingw - https://github.com/gfx-rs/gfx/pull/3076
    - [x] libbacktrace fails to link on win32 mingw
  - [x] Android
    - [x] spirv-cross fails to build - https://github.com/KhronosGroup/SPIRV-Cross/pull/1193

Update-1:
We decided to go with IPDL mechanism instead of Rust based ipc-channel (or any alternatives), which unblocks Windows build.

Update-2:
It appears that WebGPUThreading isn't needed any more as the child thread (and its event loop) is now managed by IPDL infrastructure. This PR removes it 🎉 .

Update-3:
InstanceProvider is also removed.

Update-4:
All set, the try is green, waiting for dependent changes to go in.

Differential Revision: https://phabricator.services.mozilla.com/D49458
2019-11-05 05:08:13 +00:00
Csoregi Natalia efc16a25a7 Backed out changeset 9c05fa3c0fcc (bug 1575008) for bustages on WebrtcIPCTraits.h. CLOSED TREE 2019-11-05 06:44:15 +02:00
Dzmitry Malyshau e6a9a2fd37 Bug 1575008 - WebGPU implementation basis r=webidl,baku
This change vendors `wgpu` library in-tree and hooks up the initialization bits. It implements adapter and device initialization and adds a simple test.

Current status:
  - [x] Architecture
    - [x] figure out the IPC story
    - [ ] move wgpu crates into a dedicated folder (let's follow up with this)
  - [x] Review
    - [x] WebIDL changes by DOM peers
  - [x] Linux
    - [x] avoid depending on spirv_cross - https://github.com/gfx-rs/wgpu/pull/371
  - [x] macOS
    - [x] due to cross-compiling shaders - https://github.com/gfx-rs/gfx/pull/3047
    - [x] need the dependency update
    - [x] stop using gcc - https://github.com/SSheldon/rust-objc-exception/pull/5
    - [x] unexpected SSL header collision - https://bugzilla.mozilla.org/show_bug.cgi?id=1592398
    - [x] undefined Metal symbols
  - [x] Windows
    - [x] due to "ipc-channel" not supporting Windows yet - https://github.com/servo/ipc-channel/pull/233~~
    - [x] due to some exceptional stuff - https://github.com/grovesNL/spirv_cross/issues/121
    - [x] undefined symbol: `D3D12CreateDevice`
    - [x] d3d12.dll is not found, dxgi1_4 doesn't present
    - [x] d3d11.dll and dxgi.dll need to be explicitly loaded on win32 mingw - https://github.com/gfx-rs/gfx/pull/3076
    - [x] libbacktrace fails to link on win32 mingw
  - [x] Android
    - [x] spirv-cross fails to build - https://github.com/KhronosGroup/SPIRV-Cross/pull/1193

Update-1:
We decided to go with IPDL mechanism instead of Rust based ipc-channel (or any alternatives), which unblocks Windows build.

Update-2:
It appears that WebGPUThreading isn't needed any more as the child thread (and its event loop) is now managed by IPDL infrastructure. This PR removes it 🎉 .

Update-3:
InstanceProvider is also removed.

Update-4:
All set, the try is green, waiting for dependent changes to go in.

Differential Revision: https://phabricator.services.mozilla.com/D49458
2019-11-05 04:09:23 +00:00
Dzmitry Malyshau fc2a18d9dc Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky
This mostly updates the bindings to the current state.
No actual logic backing them yet.

*Note*: the IDL does *not* need to be checked for matching the upstream spec precisely at this stage. The upstream is evolving, we just need to update in order to start integrating the implementation. What needs to be checked is - how C++ represents the IDL, esp with regards to derived classes, events, and hierarchies.

The trickiest points, arguably, are:
  - WebGPU -> GPU prefix change
  - the goop for interfaces that are not final

Differential Revision: https://phabricator.services.mozilla.com/D46166
2019-10-02 16:46:03 +00:00
Brindusan Cristian b881db6bb7 Backed out changeset 1ca9b7056c58 (bug 1581710) for mochitest failures at test_enabled.html. CLOSED TREE 2019-10-02 06:04:25 +03:00
Dzmitry Malyshau 312a9f7330 Bug 1581710 - Update WebGPU IDL bindings r=jgilbert,bzbarsky
This mostly updates the bindings to the current state.
No actual logic backing them yet.

*Note*: the IDL does *not* need to be checked for matching the upstream spec precisely at this stage. The upstream is evolving, we just need to update in order to start integrating the implementation. What needs to be checked is - how C++ represents the IDL, esp with regards to derived classes, events, and hierarchies.

The trickiest points, arguably, are:
  - WebGPU -> GPU prefix change
  - the goop for interfaces that are not final

Differential Revision: https://phabricator.services.mozilla.com/D46166
2019-10-02 01:42:07 +00:00
Ryan Hunt ad7b7dbb30 Bug 1523969 part 6 - Move method definition inline comments to new line in 'dom/'. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D21106
2019-02-25 16:05:29 -06:00
Tooru Fujisawa 5ef6d9cc06 Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Jeff Gilbert d7732c4820 Bug 1469376 - Initial stubs for WebGPU sketch API. - r=kvark,qdot
MozReview-Commit-ID: 3MZLQDNpHBk
2018-06-13 10:43:48 -07:00