Repository navigation
Blend geometry edge coverage in linear light - #89
Merged
Merged
Conversation
- Anti-aliased fringes of opaque geometry (rounded rects, path fills and strokes) now composite in linear light through a LUT, removing the dark rim sRGB-space blending grows on curved edges; interiors stay byte-identical via an opaque fast path - Glyph coverage and translucent sources keep sRGB blending so text weight and overlay brightness are unchanged, and tests pin the split in both directions
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
What
Anti-aliased fringes of opaque geometry — rounded rects, path fills and strokes (icons, charts, the checkbox mark) — now composite in linear light instead of sRGB space, which removes the dark rim sRGB blending grows on curved edges (the "still looks jagged despite AA" effect at 1x).
Scope discipline
Mechanism
LUT-based conversion (existing 256-entry decode table + a new 4096-entry encode table, ≤1 level vs exact) with an opaque-source fast path: interiors and washes never pay conversion. Fully covered pixels are bit-identical; the supersampled shape-fidelity test passes unchanged (it pins coverage, which is blend-space-invariant).
Verification
Note: the committed docs component-preview images render through these emitters and will show the old fringes until regenerated — follow-up, no CI check pins them.