Repository navigation
Fit plot font atlases to their glyph inventory - #24
Merged
Merged
Conversation
Opt into the automatic atlas sizing API proposed in vnm_msdf_text PR #2, and include that policy in the font digest. Accept its bounded power-of-two extents in the existing disk format and require the matching RGBA length. Keep the current bitmap lifetime and actual-byte cache budget. Extend disk-cache coverage for valid fitted sizes, mismatched lengths and invalid extents. Native compilation and tests remain pending in the maintained build lane; no runtime or timing acceptance is claimed.
The atlas change needs renewed native text validation after its provider API lands. Preserve compiler outputs between hosted runs so dependency and product compilation can be reused instead of repeating uncached builds. Use the existing provider's GitHub-backed sccache setup on Linux, macOS and Windows, and restore/save a workspace ccache across the FreeBSD VM boundary. Print cache statistics even when a gate fails. Configure Ninja and bound builds to two workers so compiler launchers are effective on every lane. Select Visual Studio 2026 with the MSVC 14.51 toolset for Windows and verify both the developer environment and configured compiler paths. Keep prebuilt Qt, dependency master declarations and existing test coverage. Validation: actionlint 1.7.12, YAML parsing, embedded PowerShell parsing and git diff --check pass. Native validation follows publication with the merged provider API.
The Windows lanes fail before configuration because msvc-dev-cmd interprets vsversion 18.0 as the range 18.0 through 18.9. The hosted VS2026 image has version 18.10, so that range excludes the installed toolchain. Use the action's latest-installation discovery, matching the provider's working setup. Keep the explicit VisualStudioVersion 18.0, MSVC 14.51 and configured compiler-root checks so another toolchain cannot silently satisfy the lane. Print compiler-cache statistics only after sccache setup succeeds. Validation: both failed job logs establish the discovery error; upstream action source confirms the excluded version range. actionlint 1.7.12 and git diff --check pass, and the affected staged fix passed independent review.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Plot font atlases retain a fixed 2048-square bitmap even when their glyph inventory fits in a smaller canvas. Enable automatic sizing while preserving glyph scale, CPU bitmap lifetime, and the cache memory budget.
Changes
Enable
options_t::auto_atlas_sizeand include that policy in the font digest. Accept the resulting power-of-two disk-cache extents from 1 through 2048 only when the RGBA byte count matches. Preserve the disk format, 128 MiB CPU retention budget, actual-size accounting, and bitmaps needed for renderer recreation. Extend disk-cache coverage for supported and malformed extents and payload lengths.Add persistent compiler caches to the four native CI workflows. Use Visual Studio 2026 and MSVC v145 on Windows, with explicit environment/compiler checks and Ninja so the compiler launcher is effective. Reuse prebuilt Qt and preserve dependency declarations tracking
master.The prerequisite vnm_msdf_text PR #2 has merged with all checks passing.
Validation
Independent source and validation review found no remaining product blocker. One-off benchmark instrumentation is retained outside the repository and is excluded from the shipped changes.