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]