deps: every crate to its latest version, wgpu 28 -> 30
`cargo upgrade --incompatible` in each of the nine workspaces here, then `cargo update`. Most of it is version numbers only -- log, winit, bytemuck, image, tokio, libc, android_logger, proc-macro2/quote, and syn 2 -> 3 with no source change. The wg-app-link submodule's twelve dependencies were already at their latest majors, so that shared repository needs no commit. wgpu 28 -> 30 (and pollster 0.4 -> 1.0) is the part with API in it: bind-group and vertex-buffer slots are optional now, `Instance::new` takes an owned `InstanceDescriptor` carrying the platform's display handle (the desktop passes winit's, since wgpu wants it for a GLES surface presented on Wayland -- which is what this machine's fallback produces; Android passes none), `RequestAdapterOptions` and `SurfaceConfiguration` each gained a field kept at its historical value, `get_current_texture` answers with an enum instead of a Result, and `present` moved onto the queue. The one that would not have failed at compile time: naga now requires `@interpolate(flat)` on integer varyings, so `shader.wgsl`'s three u32 outputs were rejected at `create_shader_module` -- an abort on the device rather than a build error. Flat is the only interpolation an integer can have, so this states what the hardware already did. Checked: build, clippy, fmt and tests in all nine workspaces (iris 196, server 160); layer 2 screenshots on Vulkan and on force-gles, identical; the arm64 release APK builds and the x86_64 bench ran a full fling/stream/type/keyboard cycle on the emulator's GLES adapter. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a2e5e5881c
commit
cc8148cbec
21 files changed
+1320
-989
No files matched your search
@@ -8334,3 +8334,63 @@ to design around, since a tools row has no markdown blocks at all; the
|
||||
cost is the register/unregister lifecycle across the three routes that
|
||||
rebuild a card, which is exactly where a stale `Selection` handle
|
||||
panics).
|
||||
|
||||
## Every crate to its latest version, 2026-09-08 (wgpu 28 -> 30)
|
||||
|
||||
Iris asked for all Rust dependencies across the repository to be brought
|
||||
to their latest published versions. Done with `cargo upgrade
|
||||
--incompatible` (cargo-edit) in each of the nine workspaces here, then
|
||||
`cargo update`. Most of it was ordinary: `log` 0.4.28 -> 0.4.34, `winit`
|
||||
0.30.12 -> 0.30.13, `bytemuck` 1.23.1 -> 1.25.2, `image` 0.25.6 ->
|
||||
0.25.10, `tokio` 1.49 -> 1.53.1, `libc` 0.2.179 -> 0.2.189,
|
||||
`android_logger` 0.15.0 -> 0.15.1, `proc-macro2`/`quote` to current, and
|
||||
`syn` 2 -> 3 (`iris/macro` compiled against 3.0.5 unchanged). `parley`,
|
||||
`swash`, `accesskit`, `accesskit_winit`, `accesskit_android`,
|
||||
`send_wrapper`, `pulldown-cmark`, `arboard`, `fxhash` and everything in
|
||||
`server/`, `client-core/`, `event-model/`, `android-shell/` and `xtask/`
|
||||
were already at their latest majors. So was every dependency of the
|
||||
`wg-app-link` submodule, so that shared repository needed no commit.
|
||||
|
||||
The real work was **wgpu 28 -> 30** (`iris`, `iris-core`, `rigs/gpu-probe`)
|
||||
and **pollster 0.4 -> 1.0** (no API change). Five API changes and one
|
||||
shader change, all mechanical but none skippable:
|
||||
|
||||
- `PipelineLayoutDescriptor::bind_group_layouts` is `&[Option<&BindGroupLayout>]`
|
||||
and `VertexState::buffers` is `&[Option<VertexBufferLayout>]` -- wgpu 30
|
||||
allows holes in both. Every entry here is `Some(...)`.
|
||||
- `Instance::new` takes an `InstanceDescriptor` by value, and that struct
|
||||
no longer implements `Default`, because it now carries the platform's
|
||||
display handle. Use `InstanceDescriptor::new_with_display_handle` /
|
||||
`new_without_display_handle`. The desktop backend passes the window
|
||||
(wgpu asks for it whenever a GLES surface will be presented on Wayland,
|
||||
which is exactly what `default/render.rs`'s fallback produces on this
|
||||
machine); the Android backend passes none, since its surface comes from
|
||||
a `NativeWindow` and there is no connection to hand over.
|
||||
- `RequestAdapterOptions` gained `apply_limit_buckets` (left `false`, its
|
||||
default: it is a fingerprinting defence for hosts of untrusted content)
|
||||
and `SurfaceConfiguration` gained `color_space` (`SurfaceColorSpace::Auto`,
|
||||
which is what every earlier version did).
|
||||
- `Surface::get_current_texture` returns a `CurrentSurfaceTexture` enum
|
||||
rather than a `Result`. `Success` and `Suboptimal` both carry a texture;
|
||||
the rest were the `Err` arms the old `.unwrap()` panicked on, plus the
|
||||
new `Occluded`. Both backends still panic, now naming the variant.
|
||||
- `SurfaceTexture::present` moved to `Queue::present(texture)`.
|
||||
- **naga now requires `@interpolate(flat)` on integer varyings.**
|
||||
`shader.wgsl`'s `VertexOutput` carries three `u32`s (`binding`, `idx`,
|
||||
`mask_idx`) and wgpu 30 rejects the whole entry point without it --
|
||||
"`@interpolate(flat)` must be explicitly specified for integer I/O",
|
||||
raised at `create_shader_module`, so it is a startup abort rather than a
|
||||
compile error. Flat is the only interpolation an integer can have, so
|
||||
this is saying what the hardware already did.
|
||||
- `BufferSlice::get_mapped_range` returns a `Result` (`tests/mask_sdf.rs`).
|
||||
|
||||
Checked: `cargo build --workspace --all-targets`, `cargo clippy
|
||||
--workspace --all-targets` (clean), `cargo fmt`, and `cargo test
|
||||
--workspace` in `iris/` (196 tests, including the GPU `mask_sdf` probe);
|
||||
`./run-tests.sh` for the server (160 tests) and `cargo test` in the four
|
||||
other workspaces; `rigs/gpu-probe` builds. Looked at: layer 2 on both
|
||||
backends -- `run-headless.sh phone --phone --shot` on Vulkan (Venus) and
|
||||
again `--features iris/force-gles` on virgl, identical output. Layer 3:
|
||||
`build-apk.sh release` (arm64) builds, and the x86_64 debug bench ran a
|
||||
full fling/stream/type/keyboard cycle on the emulator's GLES adapter with
|
||||
no crash.
|
||||
Reference in new issue
Block a user