Skip to content

Commit 4fa946f

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 UltraBlame original commit: cbec8a55a1bbad484ea0628b527de6f0cc7dc5f7
1 parent d148a47 commit 4fa946f

File tree

667 files changed

+1581774
-21192
lines changed

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

+1581774
-21192
lines changed

.cargo/config.in

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,108 @@ github
8080
.
8181
com
8282
/
83+
kvark
84+
/
85+
spirv_cross
86+
"
87+
]
88+
branch
89+
=
90+
"
91+
wgpu
92+
-
93+
test
94+
"
95+
git
96+
=
97+
"
98+
https
99+
:
100+
/
101+
/
102+
github
103+
.
104+
com
105+
/
106+
kvark
107+
/
108+
spirv_cross
109+
"
110+
replace
111+
-
112+
with
113+
=
114+
"
115+
vendored
116+
-
117+
sources
118+
"
119+
[
120+
source
121+
.
122+
"
123+
https
124+
:
125+
/
126+
/
127+
github
128+
.
129+
com
130+
/
131+
kvark
132+
/
133+
rust
134+
-
135+
objc
136+
-
137+
exception
138+
"
139+
]
140+
branch
141+
=
142+
"
143+
cc
144+
"
145+
git
146+
=
147+
"
148+
https
149+
:
150+
/
151+
/
152+
github
153+
.
154+
com
155+
/
156+
kvark
157+
/
158+
rust
159+
-
160+
objc
161+
-
162+
exception
163+
"
164+
replace
165+
-
166+
with
167+
=
168+
"
169+
vendored
170+
-
171+
sources
172+
"
173+
[
174+
source
175+
.
176+
"
177+
https
178+
:
179+
/
180+
/
181+
github
182+
.
183+
com
184+
/
83185
hsivonen
84186
/
85187
packed_simd

.clang-format-ignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,15 @@ webrender_bindings
295295
webrender_ffi_generated
296296
.
297297
h
298+
dom
299+
/
300+
webgpu
301+
/
302+
ffi
303+
/
304+
wgpu_ffi_generated
305+
.
306+
h
298307
intl
299308
/
300309
unicharutil

0 commit comments

Comments
 (0)