f31522130f
Build system (5 gaps hardened): - COOKBOOK_OFFLINE defaults to true (fork-mode) - normalize_patch handles diff -ruN format - New 'repo validate-patches' command (25/25 relibc patches) - 14 patched Qt/Wayland/display recipes added to protected list - relibc archive regenerated with current patch chain Boot fixes (fixable): - Full ISO EFI partition: 16 MiB → 1 MiB (matches mini, BIOS hardcoded 2 MiB offset) - D-Bus system bus: absolute /usr/bin/dbus-daemon path (was skipped) - redbear-sessiond: absolute /usr/bin/redbear-sessiond path (was skipped) - daemon framework: silenced spurious INIT_NOTIFY warnings for oneshot_async services (P0-daemon-silence-init-notify.patch) - udev-shim: demoted INIT_NOTIFY warning to INFO (expected for oneshot_async) - relibc: comprehensive named semaphores (sem_open/close/unlink) replacing upstream todo!() stubs - greeterd: Wayland socket timeout 15s → 30s (compositor DRM wait) - greeter-ui: built and linked (header guard unification, sem_compat stubs removed) - mc: un-ignored in both configs, fixed glib/libiconv/pcre2 transitive deps - greeter config: removed stale keymapd dependency from display/greeter services - prefix toolchain: relibc headers synced, _RELIBC_STDLIB_H guard unified Unfixable (diagnosed, upstream): - i2c-hidd: abort on no-I2C-hardware (QEMU) — process::exit → relibc abort - kded6/greeter-ui: page fault 0x8 — Qt library null deref - Thread panics fd != -1 — Rust std library on Redox - DHCP timeout / eth0 MAC — QEMU user-mode networking - hwrngd/thermald — no hardware RNG/thermal in VM - live preload allocation — BIOS memory fragmentation, continues on demand
74 lines
2.9 KiB
Plaintext
74 lines
2.9 KiB
Plaintext
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
|
|
|