Vendor wgpu-hal 29.0.4 and i-slint-renderer-skia 1.17.1, unmodified
The Android develop view reads its frame back through memory (TD-1) because wgpu's Vulkan swapchain never pre-rotates, and a portrait window on this tablet's landscape panel then tears. The fix is a small patch to each of these two crates, and this commit is only the ground it lands on: both are byte-for-byte the crates.io sources the lockfile already resolved, so the commits that follow are the patch and nothing else. third_party/ is excluded from the workspace, or every path dependency under the root would become a member and `--workspace` would test and lint upstream code as ours. The README says how to carry the patches across a Slint or wgpu bump, which matters because a stale version here does not fail the build — cargo just warns and uses the unpatched crate.
This commit is contained in:
Vendored
+35
@@ -0,0 +1,35 @@
|
||||
# Patched upstream crates
|
||||
|
||||
Each directory here is a crate exactly as crates.io publishes it, at the
|
||||
version `Cargo.lock` resolves, with a local patch on top. The root
|
||||
`Cargo.toml` routes the dependency here through `[patch.crates-io]`; the
|
||||
directory is excluded from the workspace, so `cargo test --workspace`,
|
||||
clippy and fmt leave it alone.
|
||||
|
||||
The first commit that adds a directory is the pristine copy (from
|
||||
`~/.cargo/registry/src/*/<crate>-<version>`, minus `.cargo-ok` and the
|
||||
crate's own `Cargo.lock`). Every later commit touching it is ours, so
|
||||
`git log -p -- third_party/<dir>` is the patch and nothing else.
|
||||
|
||||
## Carrying a patch forward
|
||||
|
||||
When Slint or wgpu is bumped, the version here stops matching and cargo
|
||||
warns that the patch is unused — the build then silently goes back to the
|
||||
unpatched crate. So a bump is:
|
||||
|
||||
1. Copy the new version in beside the old one, as its own commit.
|
||||
2. Re-apply the diff from `git log -p` on the old directory.
|
||||
3. Point `[patch.crates-io]` at the new directory and delete the old one.
|
||||
4. Re-check on the device (below) — both patches are behaviour that only a
|
||||
rotated Android display exercises.
|
||||
|
||||
Drop a patch entirely once upstream has the fix; each section says what
|
||||
upstream change would make it unnecessary.
|
||||
|
||||
## wgpu-hal 29.0.4 — Vulkan pre-rotation on Android
|
||||
|
||||
*(patch lands in the next commit)*
|
||||
|
||||
## i-slint-renderer-skia 1.17.1 — rotate the canvas to match
|
||||
|
||||
*(patch lands in a later commit)*
|
||||
Reference in New Issue
Block a user