Fit unspaced text while accumulating glyph metrics
Categories
(Core :: Layout: Text and Fonts, enhancement)
Tracking
()
People
(Reporter: mayankleoboy1, Assigned: mayankleoboy1)
References
(Blocks 1 open bug)
Details
Attachments
(1 external file, 6 obsolete files)
sp3 : https://perf.compare/compare-results?baseRev=2f484e970286be4eff3ac22fe436327107c580f8&baseRepo=try&newRev=b8d7218efab2bd39181f4a88b5a6ba68511b47a4&newRepo=try&framework=1&framework=13&filter_status=none%2Cimprovement%2Cregression&sort=median-diff%7Cdesc&initialized=1
5% on tiptap, 0.3% overall. But it also regresses other tests by 0.1%-0.2%
Try: https://treeherder.mozilla.org/jobs?repo=try&revision=0743458627cfb6bd7ddf7666915d67befde6e6b3
| Assignee | ||
Comment 1•9 days ago
|
||
Fit a single font run during the existing glyph measurement pass when
spacing and hyphenation are absent and loose ink bounds are requested.
Keep call-local snapshots of glyph-dependent metrics at accepted breaks,
including emergency wrapping, break-spaces and trimmable whitespace.
Finalize the selected prefix through the existing font metrics, RTL,
synthetic-oblique, baseline and platform-padding code.
Retain the general path for multiple font runs, spacing, hyphenation,
tight bounds and partial ligatures. Specialize ordinary measurement so
callers that do not fit text have no per-glyph fitting checks. Also batch
simple unbreakable glyph spans in the eligible general fitting path.
No persistent cache or text-run invalidation machinery is introduced.
| Assignee | ||
Updated•9 days ago
|
| Assignee | ||
Comment 2•9 days ago
|
||
Sum simple non-space glyphs without break flags in a compact loop when
spacing, hyphenation and additional wrapping opportunities are absent.
Retain ligature boundaries and reset trailing-whitespace state after a
non-space span. Skip buffer refills when neither spacing nor hyphenation
data is needed.
This optimization is independent of fused fitting and glyph measurement.
| Assignee | ||
Comment 3•9 days ago
|
||
So D339767 has almost all of the perf improvement. So D339778 is optional I guess.
Updated•9 days ago
|
Updated•9 days ago
|
Updated•9 days ago
|
Comment 4•7 days ago
|
||
Comment on attachment 9674568 [details]
Bug 2089278 - Batch simple glyph spans in general text fitting.
Revision D339778 was moved to bug 2090465. Setting attachment 9674568 [details] to obsolete.
| Assignee | ||
Comment 5•6 days ago
|
||
| Assignee | ||
Comment 6•6 days ago
|
||
| Assignee | ||
Comment 7•6 days ago
|
||
| Assignee | ||
Comment 8•6 days ago
|
||
Updated•6 days ago
|
Updated•6 days ago
|
Updated•6 days ago
|
| Assignee | ||
Comment 9•5 days ago
|
||
Updated•5 days ago
|
Updated•5 days ago
|
Updated•5 days ago
|
| Assignee | ||
Comment 10•5 days ago
|
||
Fit a single font run during the existing glyph measurement pass when
spacing and hyphenation are absent and loose ink bounds are requested.
Keep call-local snapshots of glyph-dependent metrics at accepted breaks,
including emergency wrapping, break-spaces and trimmable whitespace.
Finalize the selected prefix through the existing font metrics, RTL,
synthetic-oblique, baseline and platform-padding code.
Retain the general path for multiple font runs, spacing, hyphenation,
tight bounds and partial ligatures. Specialize ordinary measurement so
callers that do not fit text have no per-glyph fitting checks. Also batch
simple unbreakable glyph spans in the eligible general fitting path.
No persistent cache or text-run invalidation machinery is introduced.
Updated•5 days ago
|
| Assignee | ||
Comment 11•5 days ago
•
|
||
SP3 : https://perf.compare/compare-results?baseRev=c64da9d5d459cc297e4d4fda6d41253a38a75a93&baseRepo=try&newRev=6d4549b233dd34167e94fb5ea165be89776cda15&newRepo=try&framework=1&framework=13&sort=median-diff%7Cdesc&initialized=1
Try: https://treeherder.mozilla.org/jobs?repo=try&landoInstance=lando-prod-2025&landoCommitID=116704
The interesting thing is that this is the same patch as in comment 0. And the perf results are quite different for Windows. Make what you will of this. But atleast the patch is effective.
Description
•