1
0
Fork 0
Commit graph

21 commits

Author SHA1 Message Date
Daniel Thompson
6b41c8f3db drivers: st7789: Pre-allocate a memoryview
Reduce the cost of slicing the linebuffer by pre-allocating a memoryview.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-17 17:44:21 +00:00
Daniel Thompson
5abae5a7f6 drivers: st7789: Optimize set_window()
For small graphical items (line drawing, font glyphs) the performance
of the set_window() method is critical.

Emit native code for this function and optimize the SPI write_cmd()
method to avoid memory allocation. This give a performance boost of
a little over 15% for (24pt) font rendering and 30% for line drawing.

Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2021-01-17 16:08:27 +00:00
Daniel Thompson
e3b2c7bf7d boards: simulator: Improve spi.write() simulation
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
2020-12-12 12:57:06 +00:00
Daniel Thompson
95f1788347 drivers: st7789: Finalize docstrings 2020-05-14 21:41:02 +01:00
Daniel Thompson
fd64abe882 wasp: draw565: Optimize the 2-bit RLE drawing functions
There's a bunch of different changes here but there are only really three
big wins. The biggest win comes from restructuring the 2-bit RLE decode
loop to avoid the inner function (~20%) but the switch to 16-bit writes in
_fill() and adoption of quick_write (e.g. no CS toggling) are also
note worthy (and about 5% each).
2020-04-08 21:50:42 +01:00
Daniel Thompson
b9fe31241c Add licensing information for all wasp-os files. 2020-03-22 15:40:18 +00:00
Daniel Thompson
820764081e drivers: st7789: Automatically park ready for the next call to write data
This makes line-by-line drawing more efficient because don't have to
handle the dc line. The optimization targets font rendering and if good
for slightly less than 10% rendering improvement.
2020-03-09 21:32:34 +00:00
Daniel Thompson
031d139b7c wasp: draw565: Refactor to allow apps to focus on the drawable. 2020-03-09 00:00:13 +00:00
Daniel Thompson
a864a93706 wasp: manager: Blankt the display during app transitions 2020-03-08 20:47:19 +00:00
Daniel Thompson
b508f4dc26 wasp: Add a simple font renderer 2020-02-19 19:57:08 +00:00
Daniel Thompson
bb033577da drivers: st7789: Optimize RLE decoding loop
Migrate the filling of the line buffer into a seperate function.
This does naturally reduce the cost of the loop management but
much more importantly allows us to use viper native code
generator.
2020-02-08 07:49:38 +00:00
Daniel Thompson
57035ce080 wasp: st7789: Make fill() control sizing 2020-02-03 22:34:54 +00:00
Daniel Thompson
118b7bab00 wasp: st7789: Reuse the pre-allocated linebuffer 2020-02-03 22:32:53 +00:00
Daniel Thompson
8168dd5939 wasp: st7789: Add positioning support to rleblit 2020-02-03 19:09:16 +00:00
Daniel Thompson
c7e11d6020 wasp: Adopt a low power mode shortly after booting
This is useful for battery run-down testing and so on.
2020-02-01 20:20:30 +00:00
Daniel Thompson
262d93c76c wasp: simulator: First steps towards a simulator
Currently this just traces SPI activity from the ST7789 driver but its
a good baseline to start building up test functions from.
2020-01-31 19:36:55 +00:00
Daniel Thompson
80bee2d305 wasp: drivers: st7789: Remove redunant delay 2020-01-28 21:19:36 +00:00
Daniel Thompson
e88165b429 wasp: drivers: st7789: native code gen for rleblit
This is a useful performance boost... but there is still
scope to get this a lot quicker.
2020-01-28 18:45:27 +00:00
Daniel Thompson
8f231430b3 logo: Gather together the bitmaps into a single variable
The PineTime demo will also now cycle through both the Pine64 and
MicroPython logos.
2020-01-28 18:45:26 +00:00
Daniel Thompson
3157bcc310 wasp: drivers: st7789: Replace with custom uPy driver
This driver was rewritten from scratch, borrowing some idioms
from the SSD1306 driver to ensure an efficient implementation
in uPy.
2020-01-28 18:45:15 +00:00
Daniel Thompson
2805a719f2 wasp: st7789: Add a simple proof-of-concept display driver 2020-01-21 22:10:50 +00:00