Measurements only, no behavior change: - vsync.rs: EW lines (every early-waker landing, EW_ON flag, off by default) - lib.rs/stg.rs: IT lines gain dec (locked/saw_wake/pr_before/do_render) and pcpu (CPU us inside poll_events — 2% = asleep in epoll, rules out CPU spin/deschedule as the wake latency) Findings (docs/BUGS/hypotheses-120hz.md, sltest baseline): - Choreographer callback fires at edge+0.52ms (p90 0.65) — the 'late Choreographer' model from earlier sessions was a mislabeled STG field (poll block time, not callback latency). The pipeline actually works at median: present at edge+~4ms, inside the 5.5ms deadline. - sltest zero-jank definition measured: 98.8% of frames land in the next display slot; residual = 0.5-0.7% drops + 0.7-0.9% doubles + 1.4ms phase spread (p10-p90) = the visible micro-judder. - Residual cost is VARIANCE, not median: per-frame render 3.5ms median (SKD 1.07 + CLR 0.8 + PRE 1.0 + SKF/ORD 0.65) with spikes to 10.7ms (SKD max 5.2, CLR max 3.2, PRE max 2.5). Spikes push presents past the deadline (drops) and shake the phase (judder). Next: classify spikes (CPU work vs GPU/driver block) via render-window CPU splits, then kill the top source. |
||
|---|---|---|
| docs/BUGS | ||
| scripts | ||
| shim | ||
| src | ||
| vendor | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| HANDOFF.md | ||
| LICENSE | ||
| README.md | ||
gallery
A high-performance image gallery for Android (primary), Linux and macOS — Rust + Slint 1.18.
Status: M1 (metadata scan + DB) done. See HANDOFF.md — the development hand-off with the full plan: architecture, thumbnail pipeline, milestones M1–M7, Slint gotchas, permission flow, and performance targets. Next: M2 (thumbnail engine).
Build
./scripts/build.sh debug # debug x86_64 APK + install on emulator
./scripts/build.sh # release x86_64 (emulator)
./scripts/build.sh aarch64 # release aarch64 (device)
cargo run # desktop (Linux needs libfontconfig1 + pkg-config)
Requires: Rust (rustup), cargo-apk2, Android SDK + NDK 27 (see HANDOFF.md §3
for exact paths/env).
License
GPL-3.0 (see LICENSE). Built on Slint, used under the Slint royalty-free license for proprietary apps (see HANDOFF.md §10.4).