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