Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
Go to file
Dzmitry Malyshau b074f1cf4e 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

--HG--
rename : dom/webgpu/Adapter.cpp => dom/webgpu/ipc/WebGPUTypes.h
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/ash/Cargo.toml
rename : third_party/rust/uluru/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/crossbeam-deque/LICENSE-MIT => third_party/rust/cocoa/LICENSE-MIT
rename : third_party/rust/core-graphics/src/lib.rs => third_party/rust/cocoa/src/lib.rs
rename : third_party/rust/uluru/Cargo.toml => third_party/rust/colorful/Cargo.toml
rename : third_party/rust/uluru/Cargo.toml => third_party/rust/copyless/Cargo.toml
rename : third_party/rust/crossbeam-utils/.cargo-checksum.json => third_party/rust/crossbeam-utils-0.6.5/.cargo-checksum.json
rename : third_party/rust/crossbeam-utils/CHANGELOG.md => third_party/rust/crossbeam-utils-0.6.5/CHANGELOG.md
rename : third_party/rust/crossbeam-utils/Cargo.toml => third_party/rust/crossbeam-utils-0.6.5/Cargo.toml
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/crossbeam-utils-0.6.5/LICENSE-MIT
rename : third_party/rust/crossbeam-utils/README.md => third_party/rust/crossbeam-utils-0.6.5/README.md
rename : third_party/rust/crossbeam-utils/benches/atomic_cell.rs => third_party/rust/crossbeam-utils-0.6.5/benches/atomic_cell.rs
rename : third_party/rust/crossbeam-utils/src/atomic/atomic_cell.rs => third_party/rust/crossbeam-utils-0.6.5/src/atomic/atomic_cell.rs
rename : third_party/rust/crossbeam-utils/src/atomic/mod.rs => third_party/rust/crossbeam-utils-0.6.5/src/atomic/mod.rs
rename : third_party/rust/crossbeam-utils/src/backoff.rs => third_party/rust/crossbeam-utils-0.6.5/src/backoff.rs
rename : third_party/rust/crossbeam-utils/src/cache_padded.rs => third_party/rust/crossbeam-utils-0.6.5/src/cache_padded.rs
rename : third_party/rust/crossbeam-utils/src/lib.rs => third_party/rust/crossbeam-utils-0.6.5/src/lib.rs
rename : third_party/rust/crossbeam-utils/src/thread.rs => third_party/rust/crossbeam-utils-0.6.5/src/thread.rs
rename : third_party/rust/crossbeam-utils/tests/atomic_cell.rs => third_party/rust/crossbeam-utils-0.6.5/tests/atomic_cell.rs
rename : third_party/rust/crossbeam-utils/tests/parker.rs => third_party/rust/crossbeam-utils-0.6.5/tests/parker.rs
rename : third_party/rust/crossbeam-utils/tests/sharded_lock.rs => third_party/rust/crossbeam-utils-0.6.5/tests/sharded_lock.rs
rename : third_party/rust/crossbeam-utils/tests/thread.rs => third_party/rust/crossbeam-utils-0.6.5/tests/thread.rs
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/gfx-auxil/Cargo.toml
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/gfx-backend-empty/Cargo.toml
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/hibitset/Cargo.toml
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/hibitset/LICENSE-MIT
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/metal/LICENSE-MIT
rename : third_party/rust/uluru/Cargo.toml => third_party/rust/range-alloc/Cargo.toml
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/raw-window-handle/Cargo.toml
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/relevant/Cargo.toml
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/relevant/LICENSE-MIT
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/rendy-descriptor/Cargo.toml
rename : third_party/rust/uluru/Cargo.toml => third_party/rust/shared_library/Cargo.toml
rename : third_party/rust/crossbeam-deque/LICENSE-MIT => third_party/rust/shared_library/LICENSE-MIT
rename : third_party/rust/blake2b_simd/Cargo.toml => third_party/rust/storage-map/Cargo.toml
rename : third_party/rust/core-graphics/Cargo.toml => third_party/rust/x11/Cargo.toml
extra : moz-landing-system : lando
2019-11-13 12:48:33 +00:00
.cargo Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
.vscode Bug 1594520 - Use full path to mach in .vscode/tasks.json on Windows r=jya 2019-11-12 12:54:18 +00:00
accessible Bug 1576946 - Rewrite and remove tests relying on display: -moz-stack;. r=mats 2019-11-12 19:50:06 +00:00
browser Bug 1595831 - use StaticPrefs for dom.ipc prefs for ContentParent and the hang monitor code, r=kmag 2019-11-12 21:30:11 +00:00
build Bug 1595633 - Enable 'pointer-overflow' UBSan check. r=froydnj 2019-11-12 16:29:37 +00:00
caps Bug 1592701 - Remove usage of GetURI in nsGlobalWindowInner r=ckerschb 2019-11-07 13:42:37 +00:00
chrome Bug 1585156 - Remove useless inclusions of nsIDOMWindow.h and nsIDOMWindowUtils.h r=smaug 2019-09-30 22:06:47 +00:00
config Bug 1595805 - Disable LTO on macosx fuzzy builds r=froydnj 2019-11-12 16:41:23 +00:00
devtools Backed out changeset 4d4982e04e4d (bug 1543156) for xpcshell failures on test_extension_storage_actor.js. CLOSED TREE 2019-11-13 13:36:30 +02:00
docshell Bug 1562642 - add missing license in docshell/resources/content/netError.js r=smaug 2019-11-12 08:26:18 +00:00
dom Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
editor Bug 1591417: part 4) Adapt InsertTextIntoTextNodeWithTransaction to pass adjusted range to TopLevelEditSubActionDataRef.DidInsertText. r=masayuki 2019-11-13 09:16:06 +00:00
extensions Bug 1594584 - Marionette test for autoconfig. r=whimboo,kmag 2019-11-12 18:18:49 +00:00
gfx Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
gradle/wrapper
hal Bug 1585156 - Remove useless inclusions of nsIDOMWindow.h and nsIDOMWindowUtils.h r=smaug 2019-09-30 22:06:47 +00:00
image Bug 1591932 - Enable Sniffing on No Mime+ XCTO nosniff r=ckerschb 2019-11-13 12:12:34 +00:00
intl Bug 1590167 - Add Rust implementation of hyphenation (mapped_hyph) and hook up in place of libhyphen. r=heycam 2019-11-12 12:05:24 +00:00
ipc Bug 1589809 - [macOS] Use OS_ACTIVITY_MODE=disable for child processes r=spohl 2019-11-09 00:27:48 +00:00
js Bug 1566141 - implement nullish coalescence in ion monkey r=jandem 2019-11-12 16:57:39 +00:00
layout Bug 1562642 - add missing license in layout/style/tools/ r=emilio 2019-11-13 09:27:25 +00:00
media Bug 1562642 - add missing license in media/webrtc/signaling/src/sdp/ r=drno 2019-11-11 21:42:41 +00:00
memory Bug 1594598 - Use uint8_t* to avoid a bunch of casts. r=glandium 2019-11-06 23:56:48 +00:00
mfbt Bug 1590907 - Remove obsolete macro MOZ_HAVE_BITSCAN64. r=froydnj 2019-11-12 21:59:25 +00:00
mobile Bug 1595831 - use StaticPrefs for dom.ipc prefs for ContentParent and the hang monitor code, r=kmag 2019-11-12 21:30:11 +00:00
modules Bug 1594004 - Enable CacheSplit on nightly r=ckerschb,annevk 2019-11-13 12:11:30 +00:00
mozglue Bug 1572337: Don't call TimeStamp::Now() within SuspendAndSample r=froydnj 2019-11-08 21:18:06 +00:00
netwerk Bug 1591932 - Enable Sniffing on No Mime+ XCTO nosniff r=ckerschb 2019-11-13 12:12:34 +00:00
nsprpub Bug 1591887 - NSPR_4_24_BETA1. r=jcj 2019-10-28 18:35:18 +00:00
other-licenses
parser Bug 1594981 - update Core::DOM* and Core::Storage* bugzilla product and component meta data in moz.build files after reorganization in bug 1594717. r=annevk 2019-11-08 12:17:57 +00:00
python Bug 1562642 - add missing license in python/l10n/convert_xul_to_fluent r=zbraniecki 2019-11-11 22:45:02 +00:00
remote Bug 1595528 - [remote] Add local Chromium folder to ignore list. r=remote-protocol-reviewers,maja_zf 2019-11-12 21:19:11 +00:00
security Bug 1592007 - land NSS dc9552c2aa77 UPGRADE_NSS_RELEASE, r=kjacobs 2019-11-08 22:00:40 +00:00
services Bug 1594929 - Remove invalidateCertificate from FxAccountsKeys.jsm. r=rfkelly 2019-11-12 04:05:28 +00:00
servo Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
startupcache Bug 1587112 - Make asserts in StartupCache::LoadArchive explicit r=njn 2019-10-22 03:15:18 +00:00
storage Bug 1576593 - P2 - Change the way for tunneling quota information to SQLite; r=janv 2019-10-25 12:02:10 +00:00
taskcluster Bug 1594907 - [docs] Fix accidental redirection of 'taskcluster/taskcluster-config.html', r=sylvestre 2019-11-08 21:57:23 +00:00
testing Bug 1576115 - Expose processes from xpcshell test DebuggerServer. r=jdescottes 2019-11-13 09:51:01 +00:00
third_party Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
toolkit Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
tools Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
uriloader Bug 1595601: Add documentation for the external handler service. r=Gijs 2019-11-12 19:45:26 +00:00
view Bug 1576946 - Rewrite and remove tests relying on display: -moz-stack;. r=mats 2019-11-12 19:50:06 +00:00
widget Backed out 4 changesets (bug 1594950) for turning bug 1405083 into permafail. 2019-11-13 06:44:24 +02:00
xpcom Bug 1595750 - Add MakeBackInserter function to create a back-inserting output iterator for nsTArray. r=froydnj 2019-11-13 09:06:42 +00:00
xpfe/appshell Bug 1470510 - Rename nsXULWindow and nsIXULWindow to AppWindow and nsIAppWindow. r=smaug 2019-11-05 17:56:28 +00:00
.arcconfig
.clang-format
.clang-format-ignore Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
.cron.yml Bug 1590150 - Turn off ESR60 cron jobs. r=tomprince 2019-10-22 21:21:49 +00:00
.eslintignore Bug 1589333 - Enable ESLint for all of devtools/client/shared/ (manual changes). r=Standard8,jdescottes 2019-11-04 18:05:14 +00:00
.eslintrc.js Bug 1592141, rename .xul test files in toolkit/ to .xhtml r=mossop 2019-11-11 19:14:34 +00:00
.flake8 Bug 1583353 - [manifestparser] Support manifests in the 'pathprefix' filter, r=egao 2019-11-08 18:58:09 +00:00
.gdbinit
.gdbinit_python
.git-blame-ignore-revs
.gitattributes
.gitignore
.hg-annotate-ignore-revs
.hg-format-source
.hgignore Bug 1595528 - [remote] Add local Chromium folder to ignore list. r=remote-protocol-reviewers,maja_zf 2019-11-12 21:19:11 +00:00
.hgtags No bug - Tagging mozilla-central d42c22627c8dee9e9286fd5d7bbc3d02afbfad44 with FIREFOX_NIGHTLY_71_END a=release DONTBUILD CLOSED TREE 2019-10-21 17:57:42 +00:00
.lldbinit
.mailmap
.prettierignore
.prettierrc
.taskcluster.yml Bug 1589706: [firefox-ci] Use AWS Provider-based decision worker; r=Callek 2019-10-24 00:54:12 +00:00
.trackerignore
.yamllint
.ycm_extra_conf.py
aclocal.m4
AUTHORS
build.gradle Bug 1580356 - Remove Fennec (Firefox for Android). r=snorp,mshal 2019-10-04 20:55:11 +00:00
Cargo.lock Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
Cargo.toml Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-13 12:48:33 +00:00
client.mk
client.py
CLOBBER Bug 1583269 - Part 5: Updating ICU requires a clobber. r=jwalden 2019-10-19 01:40:06 +00:00
configure.in
configure.py
GNUmakefile
gradle.properties
gradlew
gradlew.bat
LEGAL
LICENSE
mach Bug 1592855 - run mach vendor python with python3 r=ahal 2019-11-05 15:29:44 +00:00
Makefile.in Bug 1540276: Migrate authenticode signing to autograph r=Callek,mshal 2019-09-30 13:57:32 +00:00
moz.build
moz.configure Backed out changeset ed90ca2fb5a8 (bug 1585370) for toolchain bustages. CLOSED TREE 2019-10-12 06:29:06 +03:00
mozilla-config.h.in
old-configure.in Bug 1593474 - Require NSPR 4.23 in old-configure.in r=kaie 2019-11-04 23:41:44 +00:00
package-lock.json
package.json
README.txt
settings.gradle Bug 1580356 - Remove Fennec (Firefox for Android). r=snorp,mshal 2019-10-04 20:55:11 +00:00
substitute-local-geckoview.gradle
test.mozbuild

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://developer.mozilla.org/en/Mozilla_Source_Code_Directory_Structure

For information on how to build Mozilla from the source code, see:

    https://developer.mozilla.org/en/docs/Build_Documentation

To have your bug fix / feature added to Mozilla, you should create a patch and
submit it to Bugzilla (https://bugzilla.mozilla.org). Instructions are at:

    https://developer.mozilla.org/en/docs/Creating_a_patch
    https://developer.mozilla.org/en/docs/Getting_your_patch_in_the_tree

If you have a question about developing Mozilla, and can't find the solution
on https://developer.mozilla.org, you can try asking your question in a
mozilla.* Usenet group, or on IRC at irc.mozilla.org. [The Mozilla news groups
are accessible on Google Groups, or news.mozilla.org with a NNTP reader.]

Nightly development builds can be downloaded from:

    https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
            - or -
    https://www.mozilla.org/firefox/channel/desktop/#nightly

Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy.