Quantcast
Channel: Intel Communities: Message List
Viewing all articles
Browse latest Browse all 18599

Re: Adafruit 2.8 inch TFT screen

$
0
0

I have a 2.8" TFT display connected to a Galileo Gen2. I was initially really discouraged, because the performance of the graphicstest sketch was truly miserable.

 

I spent the day with this display today, seeing how far I could take graphics performance. Relative to the Intel-tweaked Adafruit_ILI9341 driver, I got between 100-900x speedups, which was heartening. My initial gains were thanks to KurtE's tweaks, mostly reducing the clock divider.

 

Additionally, I implemented a buffered version of the Adafruit_ILI9341 class, writing to a dynamically allocated framebuffer, and only presenting the buffer at the end of each test. I'm a software guy, so I was seeking the wins where I could get them. This greatly reduced the number of SPI calls, which makes a difference when you're setting a lot of pixels individually. I copy the framebuffer five rows at a time, nearly maxxing out the 4KB transferBuffer limit. If I could bump that up to 160KB, I could reduce the number of SPI calls by another factor of ~40, which might bring us into the realm of real-time rendering.

 

For posterity, here are the timings I got with my tests today (all in microseconds). Note that the Buffered times are utterly dominated by the transferBuffer calls, which take 90% of the frame time.

 

                          Intel      KurtE   Buffered

Screen fill             192774651   4730677  1825354

Text                      9455304  12460079   362628

Lines                    90336688 125691539   367325

Horiz/Vert Lines         15708956   1074873   362216

Rectangles (outline)     10014384   1360335   382467

Rectangles (filled)     400070832  10033802   415219

Circles (filled)         55819941  55064526   366767

Circles (outline)        39522608  55042394   363256

Triangles (outline)      28696613  39951955   362937

Triangles (filled)      129806966  25068099   375621

Rounded rects (outline)  18880964  17110463   362374

Rounded rects (filled)  434623160  22428444   410756

 

The takeaway for me is that Galileo is harshly bandwidth-limited over the SPI interface, but with careful management of calls, you can use this display in applications that don't require real-time responsiveness.


Viewing all articles
Browse latest Browse all 18599

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>