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:
@@ -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
@@ -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
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user