TEXTURES.md: exercise grow_array (a second atlas layer opening) on tabs
Reasoned through but never watched happen, per the file's own "Not separately stress-tested" note. Temporarily dropped PAGE from 1024 to 64 so tabs's ordinary mix of text sizes/families already exceeds one page; a throwaway eprintln in grow_array confirmed two real grows in one run (1->2, 2->4 layers), and run-headless.sh showed every tab's text rendering correctly across layers, with no corruption. Both temporary changes reverted; tabs and minimal confirmed byte-identical to the pre-check screenshots afterward. Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
This commit is contained in:
1 parent
1a6599e1b2
commit
8db0184384
2 files changed
+27
-13
No files matched your search
@@ -52,11 +52,12 @@ session spending an afternoon on them again.
|
||||
pixel-identically to before the change. See LAYOUT.md's "Deviations
|
||||
found during implementation" for five real bugs the design's first draft
|
||||
did not anticipate — worth reading before touching `Aligned`, `Sized`,
|
||||
`MaxSize`, `Scroll`, or the move-slot lifecycle again. Not done: a
|
||||
pixel-level screenshot check of a `Masked`-wrapped `Scroll` (no example
|
||||
builds one yet — the numeric check in `layout_tests.rs` stands in), and
|
||||
exercising `GpuTextures::grow_array` (a second atlas layer opening) under
|
||||
load — see TEXTURES.md.
|
||||
`MaxSize`, `Scroll`, or the move-slot lifecycle again. `GpuTextures::grow_array`
|
||||
(a second atlas layer opening) has now been exercised too, on `tabs` with
|
||||
`PAGE` temporarily lowered — see TEXTURES.md's "Exercised, 2026-09-04".
|
||||
Not done: a pixel-level screenshot check of a `Masked`-wrapped `Scroll`
|
||||
(no example builds one yet — the numeric check in `layout_tests.rs`
|
||||
stands in).
|
||||
- **E1's keyboard gap is Masonry's `as_input_connection` returning `None`
|
||||
(a TODO), not android-view or `EditorInfo`.** android-view's own demo
|
||||
implements the `InputConnection` trait over a parley editor and gets
|
||||
|
||||
+21
-8
@@ -450,14 +450,27 @@ list's ordering would have to be reconciled.
|
||||
"image span" tab exercises the same widget but needs a click to reach,
|
||||
which the headless compositor can't deliver (no seat devices, per I1's
|
||||
own note on this file) — the throwaway example is what stood in for it.
|
||||
- **Not separately stress-tested**: triggering a second atlas page (the
|
||||
`grow_array` doubling-and-copy path) under a real glyph load large
|
||||
enough to fill the first 1024x1024 page. The code path was reasoned
|
||||
through and matches the existing single-page write exactly except for
|
||||
the `z` origin and the extra copy, but nobody has watched a real
|
||||
second-page grow happen on screen. Worth doing before trusting this
|
||||
under a transcript with a large or unusual glyph set (many distinct
|
||||
fonts/sizes, or a font with an unusually large character set).
|
||||
- **Exercised, 2026-09-04: `grow_array` under real load, on `tabs`.**
|
||||
Rather than building a purpose-made glyph flood, `PAGE`
|
||||
(`core/src/render/atlas.rs`) was temporarily dropped from 1024 to 64 —
|
||||
small enough that `tabs`'s ordinary mix of sizes and families (nothing
|
||||
exotic: a handful of `Text` widgets at a few sizes, one at
|
||||
`Family::Monospace`) already exceeds one page's worth of distinct
|
||||
glyphs. A one-line `eprintln!` in `grow_array` confirmed two real grows
|
||||
in a single run (`GROW_ARRAY: 1 -> 2` then `GROW_ARRAY: 2 -> 4`, i.e.
|
||||
glyphs landed on at least a third layer), and
|
||||
`iris/run-headless.sh tabs --shot` showed every tab's text rendering
|
||||
correctly with no corruption or missing glyphs — confirming the
|
||||
`copy_texture_to_texture` grow-and-relocate path and cross-layer
|
||||
sampling (`GlyphPrimitive.layer` addressing a layer beyond the first)
|
||||
both work. Command:
|
||||
`sed -i 's/PAGE: u32 = 1024/PAGE: u32 = 64/' core/src/render/atlas.rs`,
|
||||
rebuild, `./run-headless.sh tabs --shot /tmp/x.png`, then
|
||||
`git checkout -- core/src/render/atlas.rs` to revert — this is a
|
||||
throwaway diagnostic value, never a committed change, since a real
|
||||
1024px page holding only a handful of glyphs at a time would be mostly
|
||||
wasted space in normal use. Confirmed the revert left `tabs` and
|
||||
`minimal` byte-identical to the pre-check screenshots afterward.
|
||||
- **The decisive check**, `rigs/gpu-probe` rewritten to request iris's new
|
||||
(empty) feature/limit set and run on this checkout's own emulator
|
||||
(`ai-app-2`, via `emu`), booted with `EMU_GPU=software` so the guest gets
|
||||
|
||||
Reference in new issue
Block a user