-
Paul Olav Tvete authored
Both xcomposite-egl and xcomposite-glx have rendering issues, and they do not work with the latest Nvidia driver versions. These plugins were created to allow testing/debugging of QtWayland-based compositors on desktops that did not support Wayland natively. At this time, Wayland is much more widely supported on the desktop, and [ChangeLog][Extensions][The xcomposite-egl and xcomposite-glx shell extension protocols are no longer built by default.] Task-number: QTBUG-92074 Task-number: QTBUG-97985 Pick-to: 6.2 Change-Id: Ifded68b92e91e2d98aa44b8cfc624a4072b30451 Reviewed-by:
Liang Qi <liang.qi@qt.io> Reviewed-by:
Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by:
Aleix Pol Gonzalez <aleixpol@kde.org>
d4a7faff
To learn more about this project, read the wiki.
This is the QtWayland module. The QtWayland module consists of two parts: Wayland platform plugin: Enables Qt applications to be run as Wayland clients. QtWaylandCompositor API: Enables the creation of Wayland compositors using Qt and QtQuick. To build the QtWayland module you need the external dependencies: xkbcommon - http://xkbcommon.org/ wayland - http://wayland.freedesktop.org/ QtWaylandCompositor supports loading client buffer integrations that don't use the wayland-egl interfaces. These client buffer integrations are picked up by QtWaylandCompositor as plugins. To specify what plugin to load use the environment variable QT_WAYLAND_CLIENT_BUFFER_INTEGRATION in the environment where the compositor is started. The compositor will broadcast to the clients which hardware integration to load when using the generic platformplugin "wayland". If no client buffer integration is specified, then the wayland-egl plugin will be loaded. Please note that no Weston clients will work if the non standard wayland-egl client buffer integration is used. Available client buffer integrations are: wayland-egl (this is the default) linux-dmabuf-unstable-v1 brcm Testing a Qt-based compositor on X11: Most QWidget-based applications will use shared memory buffers, which work on all hardware. OpenGL and Qt Quick applications need a way to send graphics memory buffers from client to server. There are many options, and not all options work on all hardware. Using wayland-egl requires support from the driver. Intel integrated graphics are supported through the standard Mesa drivers. For NVidia, driver version 364.12 or newer is required, and Qt must be configured with "-opengl es2". Run the compositor as follows: QT_XCB_GL_INTEGRATION=xcb_egl QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=wayland-egl ./minimal-qml Please note that some NVidia drivers may require early EGL initialization. Qt clients normally use the buffer integration communicated by the compositor. To set the client-side buffer integration manually, run clients with "-platform wayland-egl". Shell Integration: Some platforms, especially non-desktop ones, use a custom Wayland shell extension. These are tailored to the specific embedded form factor better than the generic wl_shell or xdg_shell extensions that target desktop systems. Custom shell protocols are added through shell integration plugins. Which shell integration to use is determined by the QT_WAYLAND_SHELL_INTEGRATION environment variable. If no shell is specified, the default is to try shells in the following order: xdg-shell, xdg-shell-v6, wl-shell and then ivi-shell. Example Usage: Starting the hellowindow example application (one of the examples for qtbase) with ivi-shell integration: QT_WAYLAND_SHELL_INTEGRATION=ivi-shell ./hellowindow -platform wayland Available Shell Integrations: * ivi-shell * wl-shell (deprecated) * xdg-shell * fullscreen-shell-v1