TigerVNC / tigervnc

High performance, multi-platform VNC client and server
https://tigervnc.org
GNU General Public License v2.0
5.14k stars 942 forks source link

x0vncserver does not update window on client when using offset on secondary display #748

Closed chaitan3 closed 5 years ago

chaitan3 commented 6 years ago

I have x0vncserver running with the following command:

x0vncserver :0 -passwdfile ~/.vnc/passwd -rfbport 5900 -geometry 2880x1800+3840+0

When using the following to connect with the server through an ssh tunnel:

vncviewer -RemoteResize=0 :0

I can see the screen initially, but do not see any updates on the screen. When I move the mouse or use the keyboard I can see the changes on the physical screen. My setup involves 2 displays: A 3840x2160 screen on the left and a 2880x1800 screen on the right.

I am using tigervnc 1.9.0 on Ubuntu 18.04 with Nvidia drivers 410.66

Any help would be appreciated. Thanks.

CendioOssman commented 6 years ago

Are you saying that the problem goes away if you remove the -geometry flag?

And could you test a nightly build? You can find them on the homepage.

chaitan3 commented 6 years ago

I retested with the nightly build and see no difference.

If I remove the geometry flag, then the display defaults to 1920x1080+0+0 and I can see updates to the screen. If geometry is explicitly set to "1920x1080+0+0" or "1920x1080+1920+0" (hence displaying partial content of the left display), then the screen updates. If it is set to 1920x1080+3840+0 (hence displaying partial content on right display), then it does not update. What is funny is if I set geometry to 1920x1080+2880+0 (screen is split between two displays), then the left half of the vnc screen updates and the right half does not. In my setup, the left display is primary and the right display is secondary. My window manager is i3.

CendioOssman commented 6 years ago

Hang on, if you're not getting both monitors without -geometry then you have something wrong with your X server. Is it started in zaphod mode where you cannot move windows between the monitors?

chaitan3 commented 6 years ago

I think I made a mistake when running without the geometry option. I retested without the geometry option and I now see a vnc screen with both my displays side by side and the content on both displays does update. So, it seems to be an issue with the geometry option when it focuses on the secondary display on the right.

chaitan3 commented 6 years ago

Just wanted to add that I am not using zaphod mode.

chaitan3 commented 5 years ago

I was able to reproduce the issue on another dual monitor setup (left: 2560x1440, right: 1920x1200) using XFCE 4.12 on Ubuntu 18.04 with Intel drivers. Using the geometry option to produce a vnc screen for the left display works (meaning that the screen updates), while producing a vnc screen for the right display does not work. Without the geometry option the vnc screen shows both displays and both of them work.

CendioOssman commented 5 years ago

Hmm... I'm afraid I cannot reproduce this here on my machine. It's a Fedora 28 machine with two monitors and an Intel card.

Could you try with a nightly build of x0vncserver?

chaitan3 commented 5 years ago

I tried with a nightly build and it does not work. It's weird that it works for you and not me. Oh well, is there a way I can restrict the client to only display a part of the screen rather than doing it server side?

CendioOssman commented 5 years ago

No, I'm afraid we do not have any such settings. At best you can resize the window and scroll it around so you only get the parts you want.

CendioOssman commented 5 years ago

Hang on, it seems like GNOME is hiding a bug here. I redid the test with Xfce on the server and now I can see the issue. It should be fixed in 785cb9d837d2baefae852866c67e5d3de49dd2c1.