harfbuzz / harfbuzz

HarfBuzz text shaping engine
http://harfbuzz.github.io/
Other
3.69k stars 593 forks source link

[instancer] Switch to doubles for delta calculations. #4665

Closed garretrieger closed 2 months ago

garretrieger commented 2 months ago

FontTools uses double's internally so match FontTool's precision so we get the same results more often for floating point calculations.

From benchmarks looks to be neutral to possibly slight improvement in instancing times: BM_subset/instance/MPLUS1-Variable.ttf/retaingids/10_median +0.0383 +0.0383 217 225 217 225 BM_subset/instance/MPLUS1-Variable.ttf/retaingids/64_median +0.0367 +0.0367 604 626 604 626 BM_subset/instance/MPLUS1-Variable.ttf/retaingids/512_median +0.0412 +0.0411 2988 3111 2987 3110 BM_subset/instance/MPLUS1-Variable.ttf/retaingids/4096_median +0.0274 +0.0274 20904 21476 20900 21473 BM_subset/instance/MPLUS1-Variable.ttf/retaingids/6000_median +0.0234 +0.0235 33523 34307 33517 34303 BM_subset/instance/MPLUS1-Variable.ttf/10_median -0.0021 -0.0021 225 224 225 224 BM_subset/instance/MPLUS1-Variable.ttf/64_median +0.0122 +0.0122 624 631 623 631 BM_subset/instance/MPLUS1-Variable.ttf/512_median -0.0143 -0.0142 3082 3038 3081 3037 BM_subset/instance/MPLUS1-Variable.ttf/4096_median -0.0436 -0.0435 20982 20067 20976 20064 BM_subset/instance/MPLUS1-Variable.ttf/6000_median -0.0351 -0.0351 33048 31886 33041 31881 BM_subset/instance/RobotoFlex-Variable.ttf/retaingids/10_median -0.0331 -0.0332 261 253 261 253 BM_subset/instance/RobotoFlex-Variable.ttf/retaingids/64_median -0.0547 -0.0546 1112 1051 1112 1051 BM_subset/instance/RobotoFlex-Variable.ttf/retaingids/512_median -0.0467 -0.0466 8675 8269 8672 8268 BM_subset/instance/RobotoFlex-Variable.ttf/retaingids/900_median -0.0497 -0.0495 13399 12733 13395 12731 BM_subset/instance/RobotoFlex-Variable.ttf/10_median -0.0392 -0.0394 252 242 252 242 BM_subset/instance/RobotoFlex-Variable.ttf/64_median -0.0280 -0.0278 1077 1047 1076 1047 BM_subset/instance/RobotoFlex-Variable.ttf/512_median -0.0001 -0.0002 8325 8324 8324 8322 BM_subset/instance/RobotoFlex-Variable.ttf/900_median +0.0030 +0.0032 12848 12887 12845 12886 BM_subset/instance/Fraunces.ttf/retaingids/10_median -0.0154 -0.0154 1727 1700 1727 1700 BM_subset/instance/Fraunces.ttf/retaingids/64_median +0.0142 +0.0141 6589 6683 6589 6681 BM_subset/instance/Fraunces.ttf/retaingids/512_median +0.0008 +0.0009 30435 30459 30429 30457 BM_subset/instance/Fraunces.ttf/retaingids/900_median +0.0069 +0.0068 36383 36634 36381 36628 BM_subset/instance/Fraunces.ttf/10_median +0.0094 +0.0095 1690 1706 1690 1706 BM_subset/instance/Fraunces.ttf/64_median +0.0166 +0.0167 6560 6669 6558 6668 BM_subset/instance/Fraunces.ttf/512_median -0.0105 -0.0104 30438 30119 30432 30115 BM_subset/instance/Fraunces.ttf/900_median -0.0180 -0.0180 37433 36758 37423 36748

behdad commented 2 months ago

LGTM.