https://bugs.kde.org/show_bug.cgi?id=522560
Bug ID: 522560
Summary: Fullscreen XWayland window spanning two monitors
(Citrix Workspace / wfica) renders black and accepts
no input — regression in 6.7.x, works in 6.6.5
Classification: Plasma
Product: kwin
Version First 6.7.2
Reported In:
Platform: Arch Linux
OS: Linux
Status: REPORTED
Severity: critical
Priority: NOR
Component: xwayland
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
Created attachment 193975
--> https://bugs.kde.org/attachment.cgi?id=193975&action=edit
kwin-support
Since KWin 6.7.0, the Citrix Workspace App session window (wfica, a legacy
Motif/X11 application running via XWayland) is displayed as a black area and
accepts no keyboard or pointer input. The window requests fullscreen spanning
both connected monitors via _NET_WM_FULLSCREEN_MONITORS, and according to
xprop KWin does manage it and grants the fullscreen state — but the content
is never displayed and the window cannot be interacted with, moved or closed.
The same setup works correctly on KWin 6.6.5. Reproduced on 6.7.0, 6.7.1 and
6.7.2; downgrading only kwin/kwayland to 6.6.5 (Arch Linux Archive) fixes it
immediately and reliably, upgrading re-breaks it. The icaclient version is
identical in both states, isolating the regression to KWin 6.7.
A test matrix (see below) confirms the trigger: the same application in
windowed mode or fullscreen on a single output works fine on 6.7.2; only
multi-output fullscreen spanning is broken. Workaround: forcing wfica to a
single monitor via -span 1.
STEPS TO REPRODUCE
1. Plasma Wayland session, KWin 6.7.x, two monitors (2560x1440 + 3440x1440
side by side, 6000x1440 combined), NVIDIA GPU (nvidia-open-dkms).
2. Install Citrix Workspace App for Linux (icaclient 26.04.0.105).
3. Launch a session with wfica forced onto XWayland:
env -u WAYLAND_DISPLAY /opt/Citrix/ICAClient/wfica /path/to/session.ica
(workaround for wfica's broken native Wayland EGL path)
4. The session is configured to span all monitors; wfica requests fullscreen
across both outputs.
OBSERVED RESULT
- A black, borderless, non-interactive area. No remote session content is
ever rendered. The window cannot be focused by clicking, moved, resized or
closed; the session can only be terminated by killing wfica.
- The wfica session engine itself is healthy: terminal output shows normal
Thinwire codec negotiation, surface creation and OpenH264 initialization.
The ICA session is fully established server-side; only client-side window
presentation is broken.
EXPECTED RESULT
The session window renders the remote desktop across both monitors and
accepts input, as on KWin 6.6.5.
SOFTWARE/OS VERSIONS
Distro: Arch Linux (rolling)
KDE Plasma: 6.7.2 (broken; also 6.7.0, 6.7.1 — 6.6.5 works)
KDE Frameworks: 6.27.0
Qt: 6.11.1
Kernel: 7.1.2-273-tkg-bore
Xwayland: xorg-xwayland 24.1.12-1
Graphics: NVIDIA GeForce RTX 4090, nvidia-open-dkms 610.43.02, EGL backend
CPU: AMD Ryzen 9 9950X3D
Monitors: DP-1 2560x1440@120 (0,0) + DP-2 3440x1440@144 (2560,0), scale 1
Citrix Workspace App: icaclient 26.04.0.105-3
ADDITIONAL INFORMATION
xprop of the affected window (on 6.7.2, while black)
The window IS managed by KWin and holds the fullscreen state:
WM_CLASS(STRING) = "Wfica", "Wfica"
_NET_WM_NAME(UTF8_STRING) = "Workplace (SSL/TLS gesichert, 128 Bit)"
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_FOCUSED
_NET_WM_FULLSCREEN_MONITORS(CARDINAL) = 0, 0, 1, 0
WM_STATE(WM_STATE): window state: Normal
_NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MINIMIZE,
_NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP,
_NET_WM_ACTION_CLOSE
_NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 0, 0
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 0, 6000, 1440
WM_PROTOCOLS(ATOM): WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING,
_NET_WM_SYNC_REQUEST
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 35651589, 35651590
WM_NORMAL_HINTS: program specified location: 0, 0
program specified minimum size: 200 by 150
WM_HINTS: Client accepts input or input focus: True
Note: _NET_WM_STATE_FOCUSED is set, yet no keyboard/pointer input reaches
the window and clicking has no effect.
xwininfo -tree (excerpt)
0x2200003 "Workplace (SSL/TLS gesichert, 128 Bit)": ("Wfica" "Wfica")
6000x1440+0+0 +0+0
2 children:
0x22000ea (has no name): () 6000x1440+0+0 +0+0
1 child:
0x22000eb (has no name): () 6000x1440+0+0 +0+0
0x2200004 (has no name): () 1x1+-1+-1 +-1+-1
The window geometry (6000x1440 at 0,0) correctly covers both outputs.
Decisive test matrix (on 6.7.2, same session, same .ica file)
Using wfica's -span option to control the window mode:
Mode / Result
Windowed (no valid span target) / works, resizable
Fullscreen on a single output (-span 1) / works
Fullscreen spanning both outputs (-span a) / black, no input
This isolates the trigger precisely: an XWayland window requesting fullscreen
across multiple outputs via _NET_WM_FULLSCREEN_MONITORS is granted the
fullscreen state (see xprop above) but its content is never presented and it
receives no input. Ordinary windowed and single-output-fullscreen XWayland
windows — including from the very same application — work fine on 6.7.x.
Further diagnostics already performed
1. Not a client GL issue: glxgears renders correctly under XWayland in
the same session; LIBGL_ALWAYS_SOFTWARE=1 for wfica changes nothing.
2. Not a codec issue: disabling H.264 in ~/.ICAClient/wfclient.ini
(verified via SupportedCodecs 0x53 -> 0x43) changes nothing.
3. Works without KWin: running wfica in a nested Xephyr server
(Xephyr -br -ac -noreset :2) renders and works fine.
4. Clean bisect across versions: identical icaclient; only kwin/kwayland
6.6.5 <-> 6.7.x toggles the bug.
--
You are receiving this mail because:
You are watching all bug changes.