patacongo commented on pull request #1778:
URL: https://github.com/apache/incubator-nuttx/pull/1778#issuecomment-692187632


   Some of this is a little confusing to me.
   
   First, let me recommend 
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=139629398 
which is my most recent attempt to describe the graphics sub-system.
   
   > > > 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.
   > 
   > I understand you are using nxgraphics with LCD interface right? As I 
mentioned in the past this really limited performance when wanting to transfer 
various lines in one go. I have in my TODO list to add support for putrun() to 
accept npixels > rowsize for such displays but I never got to do it. Anyway, as 
Greg says, this will not improve NX since putrun() is used once per line 
obviously.
   > I used LVGL via a character driver which exposed the LCD interface and 
this allowed me to send putrun() for many rows.
   > Contributing this to mainline is also in my backlog since I have to go 
back to test with another board to do so. If you're interested in trying it, it 
is here: https://gitlab.com/nuttx_projects/lcd_dev
   > Note that it uses a non-standard putrows() since this was my solution to 
the aforementioned problem, but as we discussed previously, extending putrun() 
would be easier.
   
   NOTE that LVGL does not use the NxGraphics sub-system.  It uses a 
framebuffer driver that bypasses the entire graphics sub-system and interfaces 
directly to the LCD driver.  No discussion regarding putrun in that context 
would apply in the NxGraphics context.
   
   The framebuffer driver is a small bag hanging off the side of the graphics 
sub-system and not really integrated into the design.
   
   I think it would be worthwhile to consider the overall graphics design and 
flow of data before focusing on some minute details that are not part of the 
graphics subsystem.  I think we need to take a fully integrated approach to 
anything we do.
   
   


----------------------------------------------------------------
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