Commit Graph
2 Commits
Author SHA1 Message Date
Anthony Kim fab7bc3c5a Reset maxAtlasPages after tests that lower it
setMaxAtlasPages mutates a static that lives for the page's lifetime, so a
lowered cap silently leaked into every renderer built by later tests in the
same file (their GL texture and shader sampler arrays were sized at the tiny
cap, making tests order-dependent). Add resetMaxAtlasPages and call it in
afterEach wherever the cap is lowered on a shared page.
2026-07-04 13:04:11 -07:00
Anthony Kim 8481bfd8dd Add failing repro: atlas page overflow crashes GlyphRenderer.render
GlyphRenderer sizes its GL texture array and fragment-shader sampler array to
exactly TextureAtlas.maxAtlasPages at construction, but _createNewPage pushes
past that cap whenever a 4-page same-size merge is impossible (heterogeneous
sizes, e.g. 1024+512+512+512). The next render throws TypeError: Cannot read
properties of undefined (reading 'version') and rendering freezes — the
single-terminal breakage vector for long heavy-CLI sessions (vscode#322756).

The test builds the renderer with maxAtlasPages=4 (same code path as the
production 8/16/32 values), churns distinct glyphs, and asserts no pageerror,
pages.length <= texture capacity, and an intact pinned header. RED today:
4x TypeError from GlyphRenderer.render.
2026-07-04 12:58:33 -07:00