The host has a HiDPI display. This gives crispy clear fonts and other niceties. I run all guests in a window (i.e. not fullscreen and not in seamless mode). Each guest has one virtual monitor at 1600x900. Each pixel in the virtual monitor, as seen by the guest, is represented by four device pixels on the host. This makes the guest look a bit pixelated compared to the host, but it is far from unusable.
I wanted to try out having a HiDPI virtual display and thus enjoy the same display quality in the guest as it is on the host. To do that I thought to:
- 1. Turn on "Use unscaled HiDPI output" in the display settings of the VM.
2. When guest boots, use "vboxmanage controlvm setvideomodehint" to double guest's virtual resolution to 3200x1800.
3. Let the guest handle HiDPI scaling as it would on a real HiDPI monitor.
Guest: Arch Linux with GNOME desktop on Wayland
Everything worked as expected. The guest runs GA 5.1.22 packaged by Arch.
Guest: Ubuntu 17.04
If I install GA packaged by Ubuntu, which is presently at version 5.1.18, then everything works as expected. If I however install GA using host's image (Devices -> Insert Guest Additions CD image...) then everything works fine until the guest reboots. Then the virtual monitor appears exactly as if it had 1 Hz refresh rate. The guest seems to receive and process all mouse and keyboard input as usual, but does not manage to update the virtual display more than once per second. Investigating this I observed that this problem only appears if VBoxClient is started in the guest while the guest is at high resolution. If VBoxClient is started at lower resolution and then the resolution changes to high (by using the method outlined in 2 above), then the problem does not surface. Typically VBoxClient is started as a part of the login process and accordingly the issue surfaces after a successful login (if the resolution is high) but it is not present on the login screen.
Guest: Windows 10
In this instance the guest runs GA version 5.1.23 installed from the host's image (its the only available source so it generally runs GA the same version as host's VirtualBox). I cannot begin to explain what happens here, so I recorded a video of a session: https://zlatkovic.com/vboxunscaledwin.mp4
I never reach the step 2 from above because step 1 already renders the guest unusable. In the video you can see the guest booting with "Use unscaled HiDPI output" turned on. At first everything appears okay. But as soon as I move the mouse over the virtual display, it performs a bizarre vertical zoom, moving available input elements out of the screen area. Observe that those input elements (buttons, edit boxes) are still where they should be and can respond to mouse if you know where to click. Also observe the small preview window in the VirtualBox Manager GUI, which shows the correct picture all the time. This effect likewise cannot be recorded using VirtualBox's own video capture feature - the video shows normal picture as seen in the small preview.
This last issue with Windows 10 guest is the one worth investigating because it stops the show. The issue with Ubuntu guest is probably interesting for the developers too, but can be perfectly worked around. I am attaching the log of the last session with the Windows 10 guest.
Does anyone have an idea what is happening here? Is there more I can do to help investigating?
Thanks a lot for reading.