Hi,
I played a bit with the wayland backend trying to make it work.
Here is a branch where I made some changes on the surface management and reimplemented the xdg toplevel to send the surfaces to the server only when they should be visible.
Right now the rendering seems correct.
Even though the windows are still getting stuck after some time showing the loading cursor, it is possible to make some interactions.
It also needs some memory management, listening at when the memory buffers can be deleted.
Feedback on this work is welcome, as well I am happy to onboard anyone interested in the approach.
best,
Riccardo