iris: bench v2 (fling/stream/type/keyboard), fling physics, jitter fix (2026-09-06, ai-app-2 2e3f4ad)
This commit is contained in:
1 parent
ad5a0c5b26
commit
502582e424
2 files changed
+42
No files matched your search
@@ -198,3 +198,45 @@ started unexpectedly). Not root-caused, and not confirmed to be caused by
|
||||
this pass's changes rather than something pre-existing -- worth watching
|
||||
for on the phone and reporting back if seen. Full account in
|
||||
`docs/RUST.md`'s P0 box in the `ai-app-2` repo (`rustify` branch).
|
||||
|
||||
## 2026-09-06, later still: Benchmark v2 (fling/type/keyboard), the header-duplicate finding, the ime-inset finding
|
||||
|
||||
**New**: "Run benchmark" now runs the same four-phase script the Compose
|
||||
build's v2 does -- fling (8 flings out + 8 back at 12,000px/s through
|
||||
`List`'s own new fling, matching Android's real deceleration curve),
|
||||
stream (unchanged), type (the same 600-character string, one character
|
||||
per 50ms into the real composer, then deleted), and keyboard (five
|
||||
show/hide cycles). The report gained a `per phase:` block (frames, late
|
||||
%, p50/p90/p99, worst per phase) and the whole-run `frames:` line now
|
||||
reads the display's real refresh rate instead of assuming 60Hz.
|
||||
|
||||
**The header-duplicate bug from the previous entry: still not fixed.**
|
||||
Reproduced reliably this pass (tap the composer field, screenshot after
|
||||
the keyboard opens -- the three-button row appears twice, once at its
|
||||
real position and once inside the transcript). One real, targeted fix
|
||||
was tried and **ruled out**: skipping the header rebuild when the
|
||||
status-bar inset hasn't actually changed (since a keyboard toggle also
|
||||
re-fires this callback for an unrelated reason) -- the duplicate still
|
||||
reproduced identically after that fix, so repeated rebuilding is not the
|
||||
cause. Still unexplained; needs either live instrumentation of the
|
||||
layout engine's two-phase span placement or a person with the phone.
|
||||
|
||||
**Found, and partly explains why the keyboard phase and the
|
||||
keyboard-open auto-diagnostics both read "not confirmed" on every
|
||||
run so far**: this app's `AndroidManifest.xml` uses
|
||||
`windowSoftInputMode="adjustResize"` (needed so the keyboard resizes the
|
||||
window instead of panning it off screen), and under `adjustResize`
|
||||
`WindowInsets.Type.ime()`'s own inset *amount* is defined to read zero --
|
||||
the window already shrank to avoid the overlap that inset would
|
||||
otherwise report. Fixed the app to read `WindowInsets.isVisible(ime())`
|
||||
(a boolean, unaffected by resize-vs-pan) instead of the numeric inset --
|
||||
correct on its own terms, but on this emulator the insets listener still
|
||||
never re-fires at all once the keyboard opens (a separate, deeper
|
||||
platform behavior tied to this activity not being edge-to-edge, not
|
||||
fixed this pass -- changing that is a bigger, riskier window-behavior
|
||||
change than the time available justified). So the keyboard phase's "0
|
||||
confirmed" and the auto-diagnostics not firing are both still open,
|
||||
now for a specific, named reason rather than an unknown one.
|
||||
|
||||
Full account, including what was tried and ruled out, in
|
||||
`docs/RUST.md`'s P0 box in the `ai-app-2` repo (`rustify` branch).
|
||||
Binary file not shown.
Reference in new issue
Block a user