Commit Graph

71 Commits

Author SHA1 Message Date
Kovid Goyal
9cb9373274 Allow unbounded output in UTF8Decoder
This will allow us to eventually decode more than a single
vector's worth in a fast inner loop
2024-02-25 09:57:39 +05:30
Kovid Goyal
b560fe34c9 Give the functions for creating various objects unique names so they are easily recognized in macOS's non-fully-symolicated crash reports 2024-02-25 09:57:37 +05:30
Kovid Goyal
c98b9403ac Dynamically allocated parser state should be 64 byte aligned as well 2024-02-25 09:57:35 +05:30
Kovid Goyal
1f835b27c4 start work on implementing pending mode as paused rendering 2024-02-25 09:57:32 +05:30
Kovid Goyal
532cc44e66 Ensure screen is always set when calling parse_sgr 2024-02-25 09:57:32 +05:30
Kovid Goyal
96bcb1d33b Fix handling on new_input_at 2024-02-25 09:57:32 +05:30
Kovid Goyal
7f60c649f4 ... 2024-02-25 09:57:31 +05:30
Kovid Goyal
8975d1a9f4 no need to parametrize sentinel 2024-02-25 09:57:31 +05:30
Kovid Goyal
48bf8c6105 Report out of single byte control code embedded in CSI 2024-02-25 09:57:31 +05:30
Kovid Goyal
0ed1c6f840 Simplify utf8 parser func
Also show a replacement char for incomplete utf-8 sequences interrupted by an esc char
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
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
2dffad1d8e Use byteloader for printable char ranges 2024-02-25 09:57:29 +05:30
Kovid Goyal
71bf099041 Speed up drawing of printable ascii chars 2024-02-25 09:57:28 +05:30
Kovid Goyal
e5675e9537 Simplify API 2024-02-25 09:57:28 +05:30
Kovid Goyal
c052831291 Dont double parse CSI digits 2024-02-25 09:57:28 +05:30
Kovid Goyal
fe2cd543ba Switch to same algorithm for 128bit SIMD as used for 256 bit SIMD
Avoids needing to write to the haystack and also less chance of a bug in
the never tested simd since all CPUs I have access to have AVX2
2024-02-25 09:57:28 +05:30
Kovid Goyal
021dd168e5 ... 2024-02-25 09:57:27 +05:30
Kovid Goyal
b032313c45 Only use SIMD if CPU supports it at runtime 2024-02-25 09:57:27 +05:30
Kovid Goyal
19a41b4d9a Use sse4.2 instruction for normal mode printable ascii detection 2024-02-25 09:57:27 +05:30
Kovid Goyal
25e7a2882d Work on using SIMD for normal mode dispatch 2024-02-25 09:57:27 +05:30
Kovid Goyal
23c42cb555 ... 2024-02-25 09:57:27 +05:30
Kovid Goyal
1f8feea454 Parse new data that is writtne while parsing is in progress in the parse loop
Avoids unnecessary memmove()
2024-02-25 09:57:27 +05:30
Kovid Goyal
ac6afcb0a8 Release the parser IO lock while parsing 2024-02-25 09:57:27 +05:30
Kovid Goyal
89d416806b ... 2024-02-25 09:57:26 +05:30
Kovid Goyal
8b4209cb97 Also use fast find for pending mode 2024-02-25 09:57:26 +05:30
Kovid Goyal
f4819175b0 Start work on vectorizing searches 2024-02-25 09:57:26 +05:30
Kovid Goyal
dbc4b98742 Ignore input_delay when the input buffer is close to full 2024-02-25 09:57:26 +05:30
Kovid Goyal
8dbea2a046 ... 2024-02-25 09:57:26 +05:30
Kovid Goyal
38c8100a76 ... 2024-02-25 09:57:26 +05:30
Kovid Goyal
a560d86d0f Use aligned loads for the byte loader 2024-02-25 09:57:26 +05:30
Kovid Goyal
35da87994b Fix input_delay not working 2024-02-25 09:57:25 +05:30
Kovid Goyal
f49f2a1b82 Fix buf full -> not full reporting 2024-02-25 09:57:25 +05:30
Kovid Goyal
56abcbf910 Remove unused base64 32bit functions 2024-02-25 09:57:25 +05:30
Kovid Goyal
f140b74f17 ... 2024-02-25 09:57:25 +05:30
Kovid Goyal
8360a4ec53 Only reset urf8 state when transitioning into normal 2024-02-25 09:57:25 +05:30
Kovid Goyal
ccf124218b ... 2024-02-25 09:57:25 +05:30
Kovid Goyal
737d7bf8f2 Fix parse_sgr buf overread 2024-02-25 09:57:25 +05:30
Kovid Goyal
3f41b22011 Use the byte loader for normal mode 2024-02-25 09:57:25 +05:30
Kovid Goyal
43451b1287 ... 2024-02-25 09:57:25 +05:30
Kovid Goyal
2914c2eb95 Use the byte loader for parsing CSI as well 2024-02-25 09:57:25 +05:30
Kovid Goyal
fc1775753a ... 2024-02-25 09:57:25 +05:30
Kovid Goyal
65aca5b140 Speedup utoi by loading numbers in 8 byte chunks 2024-02-25 09:57:24 +05:30
Kovid Goyal
50935b6c93 Cleanup kitty dcs parsing 2024-02-25 09:57:24 +05:30
Kovid Goyal
0a6d83901d ... 2024-02-25 09:57:24 +05:30