- Added `--enable-uniffi-fixtures` flag. When set, we will compile in
the UniFFI test fixtures into our shared Rust crate and eventually
into `libxul`.
- Vendoring in the Rust crates needed for `uniffi-bindgen-gecko-js`
Differential Revision: https://phabricator.services.mozilla.com/D144467
- Added `--enable-uniffi-fixtures` flag. When set, we will compile in
the UniFFI test fixtures into our shared Rust crate and eventually
into `libxul`.
- Vendoring in the Rust crates needed for `uniffi-bindgen-gecko-js`
Differential Revision: https://phabricator.services.mozilla.com/D144467
- Added `--enable-uniffi-fixtures` flag. When set, we will compile in
the UniFFI test fixtures into our shared Rust crate and eventually
into `libxul`.
- Vendoring in the Rust crates needed for `uniffi-bindgen-gecko-js`
Differential Revision: https://phabricator.services.mozilla.com/D144467
New versions of several crates are introduced to third_party/rust, by
changing the versions requested in `gfx/wgpu_bindings/Cargo.toml` and
running `mach vendor rust`:
- `wgpu-core`, `wgpu-hal`, and `wgpu-types`, as used by `wgpu_bindings`
- `naga`, `ash`, and `metal`, as used by the above
These are all exact copies of the upstream sources, at the git
revisions listed in `.cargo/config.in`.
This brings in fixes for some upstream `wgpu` bugs that were fuzzblockers:
- Compute pipelines never freed at runtime, leaking memory #2564https://github.com/gfx-rs/wgpu/issues/2564
- Device::drop doesn't actually free the device when using backend::direct::Context #2563https://github.com/gfx-rs/wgpu/issues/2563
The Firefox sources also needed some adjustments to catch up with
upstream changes:
- The C type `mozilla::webgpu::ffi::WGPUTextureFormat` is now a struct
containing a tag enum and a union, not just an enum. This is needed
for [gfx-rs/wgpu#2477](https://github.com/gfx-rs/wgpu/pull/2477).
(Note that Firefox's `WebGPU.webidl` is behind the current spec,
so even though the newest ASTC texture formats are supported in `wgpu`,
they're not available in Firefox yet.)
- `wgpu` got a new feature, `id32`, which cbindgen needed to be told
about so that it would generate preprocessor-protected code like
this:
#if defined(WGPU_FEATURE_ID32)
typedef uint32_t WGPUNonZeroId;
#endif
#if !defined(WGPU_FEATURE_ID32)
typedef uint64_t WGPUNonZeroId;
#endif
instead of just spitting out two conflicting definitions of
`WGPUNonZeroId`.
- The `wgpu_core::hub::IdentityHandlerFactory` trait's `spawn` method
no longer takes a `min_index` argument. (Our implementations of that
trait never used that argument anyway, so this was easy to
accommodate.)
Differential Revision: https://phabricator.services.mozilla.com/D142779
New versions of several crates are introduced to third_party/rust, by
changing the versions requested in `gfx/wgpu_bindings/Cargo.toml` and
running `mach vendor rust`:
- `wgpu-core`, `wgpu-hal`, and `wgpu-types`, as used by `wgpu_bindings`
- `naga`, `ash`, and `metal`, as used by the above
These are all exact copies of the upstream sources, at the git
revisions listed in `.cargo/config.in`.
This brings in fixes for some upstream `wgpu` bugs that were fuzzblockers:
- Compute pipelines never freed at runtime, leaking memory #2564https://github.com/gfx-rs/wgpu/issues/2564
- Device::drop doesn't actually free the device when using backend::direct::Context #2563https://github.com/gfx-rs/wgpu/issues/2563
The Firefox sources also needed some adjustments to catch up with
upstream changes:
- The C type `mozilla::webgpu::ffi::WGPUTextureFormat` is now a struct
containing a tag enum and a union, not just an enum. This is needed
for [gfx-rs/wgpu#2477](https://github.com/gfx-rs/wgpu/pull/2477).
(Note that Firefox's `WebGPU.webidl` is behind the current spec,
so even though the newest ASTC texture formats are supported in `wgpu`,
they're not available in Firefox yet.)
- `wgpu` got a new feature, `id32`, which cbindgen needed to be told
about so that it would generate preprocessor-protected code like
this:
#if defined(WGPU_FEATURE_ID32)
typedef uint32_t WGPUNonZeroId;
#endif
#if !defined(WGPU_FEATURE_ID32)
typedef uint64_t WGPUNonZeroId;
#endif
instead of just spitting out two conflicting definitions of
`WGPUNonZeroId`.
- The `wgpu_core::hub::IdentityHandlerFactory` trait's `spawn` method
no longer takes a `min_index` argument. (Our implementations of that
trait never used that argument anyway, so this was easy to
accommodate.)
Differential Revision: https://phabricator.services.mozilla.com/D142779