Commit Graph

13279 Commits

Author SHA1 Message Date
Kovid Goyal
e2be8c2d37 Use unaligned loads for SIMD
makes no difference to the benchmarks and simplifies the code
2024-02-25 09:57:31 +05:30
Kovid Goyal
fd4c8e1e2d Get rid of ByteLoader
Doesnt move the benchmarks
2024-02-25 09:57:31 +05:30
Kovid Goyal
ba18c5a669 Move ByteLoader back to simd-string.c in preparation for getting rid of it 2024-02-25 09:57:31 +05:30
Kovid Goyal
293ad34535 Get rid of utoi() 2024-02-25 09:57:31 +05:30
Kovid Goyal
45e10394a0 Get rid of ByteLoader from csi_parse_loop
It benchmark's 4% slower on my machine
2024-02-25 09:57:31 +05:30
Kovid Goyal
0531b4bc79 Move too long CSI check out of parse loop 2024-02-25 09:57:30 +05:30
Kovid Goyal
0f6d11351b Fix benchmark rate calculation 2024-02-25 09:57:30 +05:30
Kovid Goyal
1b11c3e923 Double timeouts on flaky test 2024-02-25 09:57:30 +05:30
Kovid Goyal
c79baa56e4 Remove unused SIMD code 2024-02-25 09:57:30 +05:30
Kovid Goyal
c6f4c93d0a Nicer exit code diagnostic 2024-02-25 09:57:30 +05:30
Kovid Goyal
8742fb8cce Detect availability of intrinsics on intel macs just in case 2024-02-25 09:57:30 +05:30
Kovid Goyal
0bd67620c6 ... 2024-02-25 09:57:30 +05:30
Kovid Goyal
0f60ac2dd7 sprintf -> snprintf 2024-02-25 09:57:30 +05:30
Kovid Goyal
0cd761808a draw_codepoint is never called with from_inputstream=true 2024-02-25 09:57:30 +05:30
Kovid Goyal
43fb09dc39 Speed up Screen.draw 2024-02-25 09:57:30 +05:30
Kovid Goyal
c2d81d67c2 Nicer macros to ignore diagnostics 2024-02-25 09:57:30 +05:30
Kovid Goyal
272e944a13 DRYer 2024-02-25 09:57:30 +05:30
Kovid Goyal
a9f5519d11 Add tests for writing with cursor on trailer of wide char 2024-02-25 09:57:30 +05:30
Kovid Goyal
a055aaf035 ... 2024-02-25 09:57:30 +05:30
Kovid Goyal
718f4b328f Go back to a single code path for drawing text
Slightly reduces pure ASCII performance and improves Unicode
performance. We should be able to get pure ASCII performance back
via SIMD eventually.
2024-02-25 09:57:30 +05:30
Kovid Goyal
b41cf52ce4 ensure no control chars are drawn 2024-02-25 09:57:29 +05:30
Kovid Goyal
e08e15a676 Ensure parser buffer is aligned to 64 bytes 2024-02-25 09:57:29 +05:30
Kovid Goyal
c5f0b03a62 Remove not needed function 2024-02-25 09:57:29 +05:30
Kovid Goyal
794bd85371 Ignore warning from simde on clang 2024-02-25 09:57:29 +05:30
Kovid Goyal
73d657a21a Dont use intel intrinsics switches on ARM 2024-02-25 09:57:29 +05:30
Kovid Goyal
103f5f3956 Move ringbuf into 3rdparty 2024-02-25 09:57:29 +05:30
Kovid Goyal
ef7d92a117 Update uthash from upstream 2024-02-25 09:57:29 +05:30
Kovid Goyal
33102d8c4e Move uthash into 3rdparty 2024-02-25 09:57:29 +05:30
Kovid Goyal
56dcbca238 Move base64simd into a 3rdparty folder 2024-02-25 09:57:29 +05:30
Kovid Goyal
cc6dc96c90 Allow setting benchmark options 2024-02-25 09:57:29 +05:30
Kovid Goyal
2dffad1d8e Use byteloader for printable char ranges 2024-02-25 09:57:29 +05:30
Kovid Goyal
93430cd5f4 Images benchmark should not measure speed of zlib 2024-02-25 09:57:29 +05:30
Kovid Goyal
3d0a90e63d Switch to SIMD based base64 2024-02-25 09:57:29 +05:30
Kovid Goyal
9eb91984dd Cleanup benchmark warmup code 2024-02-25 09:57:29 +05:30
Kovid Goyal
071c8200a6 ... 2024-02-25 09:57:29 +05:30
Kovid Goyal
ad7175a24d ... 2024-02-25 09:57:29 +05:30
Kovid Goyal
24232ba277 Ensure goroutine has started before sending data 2024-02-25 09:57:28 +05:30
Kovid Goyal
0f6e5fe57e Fix benchmark rate calculation 2024-02-25 09:57:28 +05:30
Kovid Goyal
ef8e8313ab For some reason, memcpy is faster than assignment 2024-02-25 09:57:28 +05:30
Kovid Goyal
17cb65e981 Adjust amount of data in the benchmarks for more consistent timing 2024-02-25 09:57:28 +05:30
Kovid Goyal
f2153f060d add unicode benchmark 2024-02-25 09:57:28 +05:30
Kovid Goyal
48c0b30671 Install simde on CI 2024-02-25 09:57:28 +05:30
Kovid Goyal
e8f67281cf Warmup font rendering before running benchmark 2024-02-25 09:57:28 +05:30
Kovid Goyal
49a54b086f Use simde so SIMD speedups work on ARM as well 2024-02-25 09:57:28 +05:30
Kovid Goyal
4790959938 Use -fno-plt
We dont need the PLT and it frees up some registers
2024-02-25 09:57:28 +05:30
Kovid Goyal
33249c872f Use a better default march for binary builds
x86-64-v2 implies SSE4.2 which should be available everywhere by now. We
will see if we get errors with it.

https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level#architectural_considerations_for_rhel_9
2024-02-25 09:57:28 +05:30
Kovid Goyal
71bf099041 Speed up drawing of printable ascii chars 2024-02-25 09:57:28 +05:30
Kovid Goyal
307acb3f64 Add API to Screen to draw a set of printable ascii chars fast 2024-02-25 09:57:28 +05:30
Kovid Goyal
e5675e9537 Simplify API 2024-02-25 09:57:28 +05:30
Kovid Goyal
9cf425006f ... 2024-02-25 09:57:28 +05:30