mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-01 00:32:11 +00:00
8c4605cfa4
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 #2564 https://github.com/gfx-rs/wgpu/issues/2564 - Device::drop doesn't actually free the device when using backend::direct::Context #2563 https://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 |
||
---|---|---|
.. | ||
.github/workflows | ||
examples | ||
src | ||
.cargo-checksum.json | ||
bors.toml | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
Makefile | ||
README.md |
metal-rs
Unsafe Rust bindings for the Metal 3D Graphics API.
Examples
The examples directory highlights different ways of using the Metal graphics API for rendering and computation.
Examples can be run using commands such as:
# Replace `window` with the name of the example that you would like to run
cargo run --example window
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.