Remove internal hashing in rasterizer
Created by: alexheretic
Along with the quick win hashing optimisation of #115 I noted
I actually expect we can rasterize without any hashing...
A bit sooner than I thought I got a chance to look over the map usage, and indeed we can replace all rasterizer hash maps with vecs using ordered swap_remove
calls and we get even better peformance.
Even faster than fnv hashing is not hashing.
This replaces the previous improvement with 11-91% faster benchmark drawing since 0.6.0
.
name control ns/iter change ns/iter diff ns/iter diff % speedup
draw_big_biohazard 908,156 820,894 -87,262 -9.61% x 1.11
draw_iota 37,701 22,998 -14,703 -39.00% x 1.64
draw_w 10,195 5,334 -4,861 -47.68% x 1.91
gpu_cache::cache_bench_tests::bench_multi_font_population 12,339,345 8,499,095 -3,840,250 -31.12% x 1.45
Also made a minor improvement to the kerning code to avoid glyph lookup & use the provided ids directly.