Why does Qemu need a new Wayland UI backend? The main reason why there needs to be a plain and simple Wayland backend for Qemu UI is to eliminate the Blit (aka GPU copy) that happens if using a toolkit like GTK or SDL (because they use EGL). The Blit can be eliminated by sharing the dmabuf fd -- associated with the Guest scanout buffer -- directly with the Host compositor via the linux-dmabuf (unstable) protocol. Once properly integrated, it would be potentially possible to have the scanout buffer created by the Guest compositor be placed directly on a hardware plane on the Host thereby improving performance. Only Guest compositors that use multiple back buffers (at-least 1 front and 1 back) and virtio-gpu would benefit from this work.
The patch(es) are still WIP and the only reason why I am sending them now is to get feedback and see if anyone thinks this work is interesting. And, even after this work is complete, it is not meant to be merged and can be used for performance testing purposes. Given Qemu UI's new direction, the proper way to add new backends is to create a separate UI/display module that is part of the dbus/pipewire infrastructure that Marc-Andre is working on: https://lists.nongnu.org/archive/html/qemu-devel/2021-03/msg04331.html Cc: Gerd Hoffmann <kra...@redhat.com> Cc: Marc-André Lureau <marcandre.lur...@redhat.com> Cc: Dongwon Kim <dongwon....@intel.com> Cc: Tina Zhang <tina.zh...@intel.com> Vivek Kasireddy (1): ui: Add a plain Wayland backend for Qemu UI configure | 17 ++ meson.build | 25 +++ meson_options.txt | 2 + qapi/ui.json | 19 ++- ui/meson.build | 52 ++++++ ui/wayland.c | 402 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 516 insertions(+), 1 deletion(-) create mode 100644 ui/wayland.c -- 2.30.2