Commit 3d97c29
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 - https://github.com/alexcrichton/cc-rs/pull/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/D494581 parent d10f560 commit 3d97c29
File tree
670 files changed
+246644
-2425
lines changed- .cargo
- dom
- base
- webgpu
- ffi
- ipc
- mochitest
- thread
- wgpu-native
- src
- command
- track
- wgpu-remote
- src
- webidl
- gfx
- ipc
- layers/ipc
- thebes
- third_party/rust
- arrayvec-0.4.11
- benches
- src
- tests
- arrayvec
- benches
- src
- tests
- ash
- src
- extensions
- experimental
- ext
- khr
- mvk
- nv
- tests
- atom
- examples
- src
- tests
- backtrace
- benches
- ci
- docker
- arm-linux-androideabi
- powerpc-unknown-linux-gnu
- examples
- src
- backtrace
- print
- symbolize
- tests
- accuracy
- block
- src
- cc
- ci
- src
- bin
- tests
- support
- cocoa
- examples
- src
- tests
- colorful
- src
- core
- tests
- copyless
- src
- core-graphics
- src
- d3d12
- src
- gfx-auxil
- src
- gfx-backend-dx11
- shaders
- src
- gfx-backend-dx12
- shaders
- src
- gfx-backend-empty
- src
- gfx-backend-metal
- shaders
- src
- gfx-backend-vulkan
- src
- gfx-hal
- src
- command
- pso
- queue
- hibitset
- benches
- src
- iter
- malloc_buf
- src
- metal
- examples
- argument-buffer
- bind
- caps
- compute
- library
- reflection
- window
- src
- pipeline
- neqo-common
- neqo-crypto
- src
- neqo-http3
- src
- tests
- neqo-qpack
- neqo-transport
- src
- objc_exception
- extern
- src
- objc
- examples
- src
- message
- apple
- rc
- range-alloc
- src
- raw-window-handle
- src
- relevant
- src
- rendy-descriptor
- src
- rendy-memory
- src
- allocator
- heaps
- mapping
- spirv_cross
- src
- vendor/SPIRV-Cross
- cmake
- gn
- include/spirv_cross
- pkg-config
- tests
- common
- shaders
- storage-map
- src
- tests
- wio
- src
- x11
- examples
- src
- toolkit/library
- gtest/rust
- rust
- tools/vcs
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| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
10 | 20 | | |
11 | 21 | | |
12 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| 41 | + | |
41 | 42 | | |
42 | 43 | | |
43 | 44 | | |
| |||
0 commit comments