Commit f1da039
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/D49458
UltraBlame original commit: cbec8a55a1bbad484ea0628b527de6f0cc7dc5f71 parent b2c6f1f commit f1da039
File tree
667 files changed
+1731664
-23303
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
- 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.
667 files changed
+1731664
-23303
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
83 | 185 | | |
84 | 186 | | |
85 | 187 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
295 | 295 | | |
296 | 296 | | |
297 | 297 | | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
298 | 307 | | |
299 | 308 | | |
300 | 309 | | |
| |||
0 commit comments