patacongo commented on pull request #1778: URL: https://github.com/apache/incubator-nuttx/pull/1778#issuecomment-692133625
> One thing I noticed is it seems that each pixel was being written individually which is super slow compared to writing a "rectangle" which could be DMA. I did not dig into this yet. No, the NX LCD interface outputs runs: A horizontal extent of pixels. This has been discussion that this limits performance for painting large regions that are not bounded by the line length. But this is not a performance limitation for drawing rectangles that are inherently bounded in the window. The ILI9341 lower-half drivers probably does output SPI, one pixel at a time. That implementation is not part of the ILI9341 upper-half driver at drivers/lcd/ili9341.c. To output a line it does: 655 lcd->select(lcd); 659 ili9341_selectarea(lcd, col, row, col + npixels - 1, row); 663 lcd->sendcmd(lcd, ILI9341_MEMORY_WRITE); 667 lcd->sendgram(lcd, src, npixels); 671 lcd->deselect(lcd); So from the standpoint of the ILI9341 driver it outputs the entire run of pixels in one command (sendgram). Whether or not the lower half driver supports DMA or not is up to the board implementation of the sendgram() method of the struct ili8431_lcd_s interface. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org