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


Reply via email to