patacongo commented on PR #12733:
URL: https://github.com/apache/nuttx/pull/12733#issuecomment-2237458797

   Drivers should not write directly into hardware frame buffers.  For the case 
of a single graphics user thread, that would work but it will not work.  The 
result would be a disaster.
   
   When the NX windowing system is used, for example, numerous threads may be 
accessing the display concurrently.  LVGL will not work in that mode, but other 
graphics do.  NX will serialize all accesses across multiple threads and all 
will work well.
   
   This is not a good solution and I ask that you do not commit it.  Instead, 
please consider using the pre-window framebuffer logic.  I think this does whay 
you want to do, but might require that you think a little differently:
   
   ```
   ``CONFIG_NX_RAMBACKED``
      Enables RAM backed window support. If this option is selected, then
      windows may be optionally created with a RAM framebuffer backing up
      the window content. Rending into the window will result in rending
      into the backup framebuffer, then updating the physical display from
      the framebuffer.
   
      The advantage of this option is that the application that manages
      window will no longer receive redraw() callbacks. Those calls
      normally occur, for example, when a window "above" moves exposing a
      portion of the window below. If this option is selected, then the
      system will redraw the exposed portion of the window from the backup
      framebuffer without intervention of the window applications. This
      greatly reduces the complexity of the application and performance of
      the window at the expense of increased memory usage.
   
      An exception is the case when the window is resized to a wider and/or
      taller size. In that case, the redraw callback will till occur. It is
      necessary in that case to provide new graphic content for the
      extended window area.
   
      Redraw requests in other cases are also suppressed: Changes to window
      position, size, etc.
   ```
   The is a superior, bug-free alternative.


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

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to