lvgl / lv_drivers

TFT and touch pad drivers for LVGL embedded GUI library
https://docs.lvgl.io/master/porting/index.html
MIT License
290 stars 309 forks source link

feature(wayland): Add a shared memory manager. #270

Closed ghost closed 1 year ago

ghost commented 1 year ago

Allowing backing buffers to be allocated on demand. In addition, the shared memory manager tracks buffer acquisition history (in Wayland EGL parlance 'buffer age'), allowing the acquiring code to perform a delta initialization (apply changes from previously acquired buffers to the most recent, as oppose to a full buffer initialization). In particular, the shared memory manager, maintains a shared memory pool, wherein individual buffers, belonging to separate buffer groups (which all have the same size) are allocated from. A LRU cache is then used on top of this to keep a hot cycle (i.e. swap chain) available. Finally, the acquiring code, caches individual buffer damage in a ring buffer to be able to apply the aforementioned delta initialization.

This PR is my completion of the work started in #250.

Notes:

kisvegabor commented 1 year ago

Thank you very much @simplejack-src. Can I merge it or are we waiting feedback from someone?

ghost commented 1 year ago

It works for me(TM) :). @WallaceIT see anything out of place?

WallaceIT commented 1 year ago

Seems very well done! I don't have time nor means to test it since I'm travelling, though.

kisvegabor commented 1 year ago

Thanks for taking a look @WallaceIT.

I'll merge it now then. Please open a new issue if you find an issues later.