LibVNC / x11vnc

a VNC server for real X displays
GNU General Public License v2.0
717 stars 139 forks source link

x11vnc has display artifacts and works slowly if monitor is disconnected or used with a KVM switch. #234

Open pmorch opened 1 year ago

pmorch commented 1 year ago

If you'd like to put out an incentive for fixing this bug, you can do so at https://issuehunt.io/r/LibVNC/x11vnc

Describe the bug

I'm running a standard Ubuntu 22.04 desktop (with Gnome under the hood), using xorg instead of wayland.

If I start e.g. x11vnc -display :0 -forever -rfbport 5901 and leave the monitor connected, it works great.

I use a KVM switch and so leaving this computer as the active display works great. But if I switch to another display, the problem appears. This also happens if I connect the monitor directly to the computer and then later disconnect it . (Strangely, it continues to work if I power off the monitor, but leave it plugged in, but that may depend on the monitor.)

(I realize that this project needs a new maintainer and so this might never get fixed, but now it is recorded for posterity...)

To Reproduce

  1. Run x11vnc -display :0 -forever -rfbport 5901
  2. See that it works from a remote machine
  3. Disconnect the monitor. Either by switching a KVM switch to use another computer, or by disconnecting the monitor
  4. See the error
  5. Reconnect the monitor or switch the KVM switch back to serving this computer and normal operation is restored.

Expected Behavior

I expect x11vnc to continue behaving as it did when the monitor was connected.

Actual Behavior

Moving windows and other interactions become slow, and it appears as if there are multiple windows. It is basically unusable.

Screenshots

Original single window as it looks with a connected monitor.

original single window

Then I disconnected the monitor and moved the window:

Moved window

Only the bottom-right one is interactive. There is only supposed to be a single window.

Additional Information

A gnome-session-flashback session works fine.

This problem was originally described here: vnc - Why do both x11vnc and x0vncserver fail in similar ways in Gnome Ubuntu 22.04? - Ask Ubuntu

I plan on working around this problem with an EDID Emulator. I've ordered this one. It hopefully lets the computer think the display is still attached. And then next time I update the KVM switch, get one with a built-in EDID emulator. I'll try to remember to update this thread when the EDID emulator arrives and I've tried it out.

Desktop (please complete the following information):

$ dpkg-query -W | egrep 'xorg|wayland' | sort
kwayland-data   4:5.92.0-0ubuntu1
kwayland-integration:amd64  4:5.24.4-0ubuntu1
libkf5waylandclient5:amd64  4:5.92.0-0ubuntu1
libqt5waylandclient5:amd64  5.15.3-1
libqt5waylandcompositor5:amd64  5.15.3-1
libva-wayland2:amd64    2.14.0-1
libwayland-client0:amd64    1.20.0-1ubuntu0.1
libwayland-client0:i386 1.20.0-1ubuntu0.1
libwayland-cursor0:amd64    1.20.0-1ubuntu0.1
libwayland-egl1:amd64   1.20.0-1ubuntu0.1
libwayland-server0:amd64    1.20.0-1ubuntu0.1
libwayland-server0:i386 1.20.0-1ubuntu0.1
qtwayland5:amd64    5.15.3-1
xorg    1:7.7+23ubuntu2
xorg-docs-core  1:1.7.1-1.2
xserver-xorg    1:7.7+23ubuntu2
xserver-xorg-core   2:21.1.4-2ubuntu1.7~22.04.1
xserver-xorg-input-all  1:7.7+23ubuntu2
xserver-xorg-input-libinput 1.2.1-1
xserver-xorg-input-wacom    1:1.0.0-3ubuntu1
xserver-xorg-legacy 2:21.1.4-2ubuntu1.7~22.04.1
xserver-xorg-video-all  1:7.7+23ubuntu2
xserver-xorg-video-amdgpu   22.0.0-1ubuntu0.1
xserver-xorg-video-ati  1:19.1.0-2ubuntu1
xserver-xorg-video-fbdev    1:0.5.0-2build1
xserver-xorg-video-intel    2:2.99.917+git20210115-1
xserver-xorg-video-nouveau  1:1.0.17-2build1
xserver-xorg-video-qxl  0.1.5+git20200331-3
xserver-xorg-video-radeon   1:19.1.0-2ubuntu1
xserver-xorg-video-vesa 1:2.5.0-1build4
xserver-xorg-video-vmware   1:13.3.0-3build1
xwayland    2:22.1.1-1ubuntu0.6
Martii commented 1 year ago

Sounds like you might need an EDID emulator to keep your graphics cards alive at maximum output. They are cheap although DisplayPort can be confusing since it usually needs two ports total and screen mirroring.

pmorch commented 1 year ago

Thanks, @Martii - yeah like I wrote:

I plan on working around this problem with an EDID Emulator. I've ordered this one. It hopefully lets the computer think the display is still attached.

Could I ask you what this means?:

DisplayPort can be confusing since it usually needs two ports total and screen mirroring

I'm on HDMI now, but I'd like to know... Would something like this Lindy DisplayPort 1.2 EDID Emulator work and/or what to look out for if one is using DisplayPort?