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.

Reply via email to