Skip to content

Commit 9ac41ec

Browse files
committed
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 - gfx-rs/wgpu#371 - [x] macOS - [x] due to cross-compiling shaders - gfx-rs/gfx#3047 - [x] need the dependency update - [x] stop using gcc - SSheldon/rust-objc-exception#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 - servo/ipc-channel#233 - [x] due to some exceptional stuff - grovesNL/spirv_cross#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 - gfx-rs/gfx#3076 - [x] libbacktrace fails to link on win32 mingw - [x] cc mislinking C++ standard library - rust-lang/cc-rs#455 - [x] Android - [x] spirv-cross fails to build - KhronosGroup/SPIRV-Cross#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 --HG-- rename : dom/webgpu/Adapter.cpp => dom/webgpu/ipc/WebGPUTypes.h rename : third_party/rust/arrayvec/.cargo-checksum.json => third_party/rust/arrayvec-0.4.11/.cargo-checksum.json rename : third_party/rust/arrayvec/Cargo.toml => third_party/rust/arrayvec-0.4.11/Cargo.toml rename : third_party/rust/arrayvec/README.rst => third_party/rust/arrayvec-0.4.11/README.rst rename : third_party/rust/arrayvec/benches/extend.rs => third_party/rust/arrayvec-0.4.11/benches/extend.rs rename : third_party/rust/arrayvec/build.rs => third_party/rust/arrayvec-0.4.11/build.rs rename : third_party/rust/arrayvec/src/array.rs => third_party/rust/arrayvec-0.4.11/src/array.rs rename : third_party/rust/arrayvec/src/array_string.rs => third_party/rust/arrayvec-0.4.11/src/array_string.rs rename : third_party/rust/arrayvec/src/char.rs => third_party/rust/arrayvec-0.4.11/src/char.rs rename : third_party/rust/arrayvec/src/lib.rs => third_party/rust/arrayvec-0.4.11/src/lib.rs rename : third_party/rust/arrayvec/src/maybe_uninit.rs => third_party/rust/arrayvec-0.4.11/src/maybe_uninit.rs rename : third_party/rust/arrayvec/src/maybe_uninit_nodrop.rs => third_party/rust/arrayvec-0.4.11/src/maybe_uninit_nodrop.rs rename : third_party/rust/arrayvec/src/maybe_uninit_stable.rs => third_party/rust/arrayvec-0.4.11/src/maybe_uninit_stable.rs rename : third_party/rust/arrayvec/src/range.rs => third_party/rust/arrayvec-0.4.11/src/range.rs rename : third_party/rust/arrayvec/tests/serde.rs => third_party/rust/arrayvec-0.4.11/tests/serde.rs rename : third_party/rust/arrayvec/tests/tests.rs => third_party/rust/arrayvec-0.4.11/tests/tests.rs rename : third_party/rust/core-graphics/Cargo.toml => third_party/rust/atom/Cargo.toml rename : third_party/rust/core-graphics/Cargo.toml => third_party/rust/cocoa/Cargo.toml rename : third_party/rust/core-graphics/src/lib.rs => third_party/rust/cocoa/src/lib.rs rename : third_party/rust/core-graphics/Cargo.toml => third_party/rust/colorful/Cargo.toml rename : third_party/rust/core-graphics/Cargo.toml => third_party/rust/range-alloc/Cargo.toml rename : third_party/rust/core-graphics/Cargo.toml => third_party/rust/shared_library/Cargo.toml rename : third_party/rust/core-graphics/Cargo.toml => third_party/rust/x11/Cargo.toml extra : moz-landing-system : lando
1 parent 2795fb4 commit 9ac41ec

File tree

670 files changed

+246644
-2425
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

670 files changed

+246644
-2425
lines changed

.cargo/config.in

+10
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@ branch = "master"
77
git = "https://github.com/mozilla/neqo"
88
replace-with = "vendored-sources"
99

10+
[source."https://github.com/kvark/spirv_cross"]
11+
branch = "wgpu-test"
12+
git = "https://github.com/kvark/spirv_cross"
13+
replace-with = "vendored-sources"
14+
15+
[source."https://github.com/kvark/rust-objc-exception"]
16+
branch = "cc"
17+
git = "https://github.com/kvark/rust-objc-exception"
18+
replace-with = "vendored-sources"
19+
1020
[source."https://github.com/hsivonen/packed_simd"]
1121
branch = "rust_1_32"
1222
git = "https://github.com/hsivonen/packed_simd"

.clang-format-ignore

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ layout/style/nsStyleStructList.h
3838
# Autogenerated file
3939
gfx/gl/GLConsts.h
4040
gfx/webrender_bindings/webrender_ffi_generated.h
41+
dom/webgpu/ffi/wgpu_ffi_generated.h
4142
intl/unicharutil/util/nsSpecialCasingData.cpp
4243
intl/unicharutil/util/nsUnicodePropertyData.cpp
4344
intl/unicharutil/util/nsUnicodeScriptCodes.h

0 commit comments

Comments
 (0)