When doing shaping+layout for the version of Ubuntu Light used in egui (Ubuntu-Light.ttf.zip), I noticed that we're spending a lot of time in pair_pos2_cached (20-30% of the shaping time!):
Here's the samply profile.
It seems that we re-parse the pair positioning table once per pair. Are we preparsing and caching these yet?