render: placed glyph slots are bounded only by the atlas filling #451
Labels
No labels
priority/P0
priority/P1
priority/P2
release/v0.1.0
status/blocked
status/planned
type/bug
type/design
type/test-gap
type/tracker
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
natsukium/felis#451
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
GlyphIndex::slots(crates/felis-render-wgpu/src/glyphs.rs) keeps one entry per placed glyph key, and that map is emptied only when the atlas recycles. PR #450 (#406) capped the blank entries, which take no atlas space. Placed entries are still bounded only by how many glyphs fit in an atlas sheet before it fills.Failure scenario. A producer can emit OSC 66 runs at many tiny fractional scales, so each char × sizing × style key rasterizes to a 1–2 px glyph. A 2048² sheet then holds a few million placed entries before a recycle frees them. The slot map and the matching
ShapeCacheentries grow to that size from PTY output alone. TheShapeCacheside is already bounded by the byte cap after #450.Done when:
docs/explanation/security-model.md"Resource exhaustion" and the atlas section ofdocs/explanation/rendering/pipeline.mdstate the bound.Refs #406, #450.