Skip to content

Draft: Qt wayland compositor

Pierre Lamot requested to merge chub/vlc:qt/wayland into master

this MR supersede !570 (closed)

the overall principle is quite similar to other compositor, we have a main window with two sub-windows, one for the interface and one for the video, the interface reuses the CompositorX11UISurface from the X11 compositor as this allow window events to be handled by a sub-windows properly. the video surface is also a Qt sub-window of the main window, some other mechanism have been tried before but where most unusable either due to poor support by Desktop Environments or due poor handling of external surfaces by Qt implementation.

Some low level Wayland commands have been deported to a separate module (as it was requested before) as these action aren't doable through Qt API)

This has been tested with various Wayland desktop from stock Ububutu 20.04 with an Intel GPU

  • weston 8.0
  • kwin 5.18
  • gnome 3.36
  • sway 1.4 (wl_roots 0.10)
  • enlightenment 0.23

note that you may have to export "QT_QPA_PLATFORM=wayland" to test this mode as Qt Wayland is not activated by default on some desktop environments.

limitation: at the moment the vout-display lock (especially from mouse events) clogs the event queue and the qml part quickly becomes unresponsive (you have to wait for the events to be processed without sending new ones), commenting vout_window_Report* calls in vieosurface.cpp can be done for test purposes.

Merge request reports