Don't build XComposite buffer integration by default

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>
This commit is contained in:
Paul Olav Tvete
2021-11-11 09:06:42 +01:00
parent 6a7b840203
commit d4a7faff1f
3 changed files with 7 additions and 34 deletions
+2 -21
View File
@@ -22,18 +22,10 @@ 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.
To start a compositor with the xcomposite-glx integration then start
the compositor as follows:
QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=xcomposite-glx ./my-compositor
Now it should be possible to start an application in a separate terminal. ie:
$QTBASEDIR/examples/opengl/hellowindow/hellowindow -platform wayland --single
Available client buffer integrations are:
wayland-egl (this is the default)
linux-dmabuf-unstable-v1
brcm
xcomposite-egl
xcomposite-glx
Testing a Qt-based compositor on X11:
@@ -42,14 +34,6 @@ 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.
The X Composite buffer integration should work on all modern X servers. It
can be used with either EGL or GLX as the OpenGL backend. This must match the
backend used by the xcb platform plugin. (Normally GLX is the default for Qt
applications running on X11.) To use the X Composite buffer sharing with EGL,
start the compositor as follows:
QT_XCB_GL_INTEGRATION=xcb_egl QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=xcomposite-egl ./pure-qml
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".
@@ -85,8 +69,5 @@ Available Shell Integrations:
* ivi-shell
* wl-shell (deprecated)
* xdg-shell
* xdg-shell-v5 (deprecated)
* xdg-shell-v6
We hang out at #qt-labs on Libera.Chat if you have any questions
* fullscreen-shell-v1
@@ -100,22 +100,14 @@
simplified debugging and efficient turn-around on trying out new features.
Qt Wayland supports several backends for sharing graphics buffers between clients and the
server. The main ones are:
server. The main one is:
\list
\li \c{wayland-egl}: This is the default backend and should be preferred whenever possible.
However, it requires support in the OpenGL driver on the system for this to work.
\li \c{xcomposite-glx}: This uses the \c XComposite extension to the X11 display server for
sharing buffers. It requires that an X11 server is running on the system and that the xcb platform
plugin is used with the "GLX" backend. This is usually the default on X11 systems, but can be
forced by setting the \c QT_XCB_GL_INTEGRATION environment variable to "xcb_glx".
\li \c{xcomposite-egl}: This uses the \c XComposite extension to the X11 display server for
sharing buffers. It requires that an X11 server is running on the system and that the xcb platform
plugin is used with the "EGL" backend. This can be forced by setting \c QT_XCB_GL_INTEGRATION
environment variable to "xcb_egl".
It requires support in the OpenGL driver on the system for this to work.
\endlist
Select the backend by setting the \c QT_WAYLAND_CLIENT_BUFFER_INTEGRATION environment variable.
Other backends may be selected by setting the \c QT_WAYLAND_CLIENT_BUFFER_INTEGRATION environment variable.
\note If Qt Wayland Compositor is unable to initialize the client buffer backend, then it will
fall back to using the "shared memory" backend (based on \c{wl_shm}) as a fail-safe. This backend
+2 -2
View File
@@ -223,13 +223,13 @@ qt_feature("wayland-datadevice" PRIVATE
)
qt_feature("xcomposite-egl" PRIVATE
LABEL "XComposite EGL"
CONDITION (QT_FEATURE_wayland_client OR QT_FEATURE_wayland_server)
CONDITION FALSE AND (QT_FEATURE_wayland_client OR QT_FEATURE_wayland_server)
AND QT_FEATURE_opengl AND QT_FEATURE_egl AND QT_FEATURE_xlib
AND XComposite_FOUND AND QT_FEATURE_egl_x11
)
qt_feature("xcomposite-glx" PRIVATE
LABEL "XComposite GLX"
CONDITION (QT_FEATURE_wayland_client OR QT_FEATURE_wayland_server)
CONDITION FALSE AND (QT_FEATURE_wayland_client OR QT_FEATURE_wayland_server)
AND QT_FEATURE_opengl AND NOT QT_FEATURE_opengles2
AND QT_FEATURE_xlib AND XComposite_FOUND
)