gecko-dev/gfx/layers
Dzmitry Malyshau 1c5b01ed15 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] General
    - [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] neko rebasing disaster
  - [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-14 04:59:56 +00:00
..
apz Bug 1586496 - Add a gtest. r=tnikkel 2019-11-01 23:00:42 +00:00
basic Bug 1594950 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel 2019-11-13 18:55:18 +00:00
client Bug 1585760 - Store a flag in the TextureChild indicating use of the ImageBridge. r=sotaro 2019-11-05 01:55:23 +00:00
composite Bug 1594950 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel 2019-11-13 18:55:18 +00:00
d3d11 Bug 1573710 - Trigger composite after SetParent() r=Gankro 2019-11-01 11:01:34 +00:00
ipc Bug 1575008 - WebGPU implementation basis r=baku,bzbarsky 2019-11-14 04:59:56 +00:00
layerviewer Bug 1562642 - add missing license in gfx/ r=nical 2019-11-12 22:01:02 +00:00
mlgpu Bug 1573710 - Trigger composite after SetParent() r=Gankro 2019-11-01 11:01:34 +00:00
opengl Bug 1576390 - Remove the prefs gfx.core-animation.enabled and gfx.compositor.glcontext.opaque, and all the code needed to support it. r=mattwoodrow,spohl 2019-11-13 19:07:37 +00:00
protobuf
wr Bug 1576390 - Remove now-unused DrawWindowOverlay and WindowOverlayChanged methods. r=mattwoodrow 2019-11-13 02:24:06 +00:00
AnimationHelper.cpp Bug 1594960 - Update the assertion to check the transform-like animations on the compositor when we have fixed offset-path. r=hiro 2019-11-08 23:46:17 +00:00
AnimationHelper.h Bug 1429305 - Cache gfx path. r=hiro 2019-10-31 21:36:39 +00:00
AnimationInfo.cpp Bug 1429305 - Cache gfx path. r=hiro 2019-10-31 21:36:39 +00:00
AnimationInfo.h Bug 1429305 - Cache gfx path. r=hiro 2019-10-31 21:36:39 +00:00
AsyncCanvasRenderer.cpp
AsyncCanvasRenderer.h
AtomicRefCountedWithFinalize.h
AxisPhysicsMSDModel.cpp
AxisPhysicsMSDModel.h
AxisPhysicsModel.cpp
AxisPhysicsModel.h
BSPTree.cpp
BSPTree.h
BufferTexture.cpp
BufferTexture.h
CanvasDrawEventRecorder.cpp Bug 1585073: In CanvasEventRingBuffer, check stream is good before waiting for space or data. r=jrmuizel 2019-10-31 13:44:32 +00:00
CanvasDrawEventRecorder.h
CanvasRenderer.cpp
CanvasRenderer.h
CanvasTranslator.cpp
CanvasTranslator.h
CompositionRecorder.cpp Bug 1581240 - Return collected frames from the composition recorder as data URIs r=mstange 2019-11-07 22:34:37 +00:00
CompositionRecorder.h Bug 1581240 - Return collected frames from the composition recorder as data URIs r=mstange 2019-11-07 22:34:37 +00:00
Compositor.cpp
Compositor.h
CompositorTypes.h
CopyableCanvasRenderer.cpp
CopyableCanvasRenderer.h
D3D9SurfaceImage.cpp
D3D9SurfaceImage.h
D3D11ShareHandleImage.cpp
D3D11ShareHandleImage.h
D3D11YCbCrImage.cpp
D3D11YCbCrImage.h
DirectedGraph.h
DirectionUtils.h
Effects.cpp
Effects.h
FrameMetrics.cpp
FrameMetrics.h
GLImages.cpp
GLImages.h
GPUVideoImage.h
IMFYCbCrImage.cpp
IMFYCbCrImage.h
IPDLActor.h
ImageContainer.cpp
ImageContainer.h
ImageDataSerializer.cpp
ImageDataSerializer.h
ImageLayers.cpp
ImageLayers.h
ImageTypes.h
LayerAttributes.h
LayerMetricsWrapper.h
LayerScope.cpp
LayerScope.h
LayerSorter.cpp
LayerSorter.h
LayerTreeInvalidation.cpp
LayerTreeInvalidation.h
LayerUserData.h
Layers.cpp
Layers.h Bug 1429305 - Cache gfx path. r=hiro 2019-10-31 21:36:39 +00:00
LayersHelpers.cpp
LayersHelpers.h
LayersLogging.cpp
LayersLogging.h
LayersTypes.cpp
LayersTypes.h
MacIOSurfaceHelpers.cpp
MacIOSurfaceHelpers.h
MacIOSurfaceImage.cpp
MacIOSurfaceImage.h
MemoryPressureObserver.cpp
MemoryPressureObserver.h
NativeLayer.h Bug 1594950 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel 2019-11-13 18:55:18 +00:00
NativeLayerCA.h Bug 1594950 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel 2019-11-13 18:55:18 +00:00
NativeLayerCA.mm Bug 1594950 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel 2019-11-13 18:55:18 +00:00
PaintThread.cpp
PaintThread.h
PersistentBufferProvider.cpp Bug 1585760 - Check that GetTextureForwarder isn't null in more places. r=sotaro 2019-11-05 01:54:54 +00:00
PersistentBufferProvider.h Bug 1592213: Allow up to 2 more textures in PersistentBufferProviderShared when webrender enabled. r=nical 2019-10-30 10:05:59 +00:00
ProfilerScreenshots.cpp Bug 1593803 - rename NS_DispatchToBackgroundThread to NS_DispatchBackgroundTask; r=KrisWright 2019-11-05 21:19:18 +00:00
ProfilerScreenshots.h
ReadbackLayer.h
ReadbackProcessor.cpp
ReadbackProcessor.h
RecordedCanvasEventImpl.h
RenderTrace.cpp
RenderTrace.h
RepaintRequest.h
RotatedBuffer.cpp
RotatedBuffer.h
ScrollableLayerGuid.h
ShareableCanvasRenderer.cpp
ShareableCanvasRenderer.h
SourceSurfaceSharedData.cpp
SourceSurfaceSharedData.h
SourceSurfaceVolatileData.cpp
SourceSurfaceVolatileData.h
SyncObject.cpp
SyncObject.h
TextureDIB.cpp
TextureDIB.h
TextureSourceProvider.cpp
TextureSourceProvider.h
TextureSync.cpp
TextureSync.h
TextureWrapperImage.cpp
TextureWrapperImage.h
TiledLayerBuffer.h
TransactionIdAllocator.h
TreeTraversal.h
UpdateImageHelper.h
ZoomConstraints.h
moz.build Bug 1581240 - Return collected frames as a promise to JS r=bzbarsky,mstange,nika 2019-11-07 22:35:04 +00:00