kvm-guest-drivers-windows icon indicating copy to clipboard operation
kvm-guest-drivers-windows copied to clipboard

Unable to modeset to 3440x1440 in Windows 11

Open tranquillity-codes opened this issue 1 year ago • 12 comments

Describe the bug When I attempt to modeset to 3440x1440 in Settings, it does not actually do anything. It shows the prompt asking whether to keep the changes or revert the changes, however no changes were made, and clicking revert changes changes the chosen resolution in the field back to the original. Also, if I do not reinstall the driver every reboot, the option to modeset to 3440x1440 disappears at random.

To Reproduce Install Windows 11 Install the guest drivers Try to modeset to 3440x1440 with a 3440x1440 window on a 3440x1440 monitor Observe it failing

Expected behavior Windows will modeset to 3440x1440

Host:

  • Disto: Arch
  • Kernel version: 6.6.4-arch1-1
  • QEMU version: 8.2.0
  • QEMU command line: SDL_VIDEODRIVER=wayland qemu-system-x86_64 -bios /usr/share/edk2/x64/OVMF.fd -enable-kvm -smp 8 -m 8G -vga none -device virtio-vga,edid=on,xres=3440,yres=1440 -usb -device usb-mouse -device virtio-sound-pci,audiodev=audio1 -audiodev pa,id=audio1,server=/run/user/1000/pulse/native -cpu max -display sdl -boot menu=on -monitor stdio -hda Windows11.img
  • libvirt version: not applicable
  • libvirt XML file: not applicable

VM:

  • Windows version: 11 Pro / 10.0.22631
  • Which driver has a problem: The one handling virtio-gpu, I think
  • Driver version or commit hash that was used to build the driver: 100.93.104.24000

Additional context The Linux virtio driver has no problems modesetting to 3440x1440 and in fact does so by default, even communicating window sizes and modesetting automatically, using the exact same QEMU command line, just with a Windows guest swapped for a Linux guest.

I am unable to provide more details as I have very little experience with Windows, so I have been unable to discover any kind of logging mechanism or anything to try to obtain more insight.

tranquillity-codes avatar Jan 23 '24 23:01 tranquillity-codes

The latest virtio-gpu dod drive should be able to support resolutions in range from 800X600 up to 5120x2160 Screenshot from 2024-01-24 13-42-34

It will be included in the next virtio-win stable release which planned to be released in February. Vadim.

vrozenfe avatar Jan 24 '24 02:01 vrozenfe

Ah, so the current release of the driver supports only resolutions up-to 2560x1600 ?

Why does the 3440x1440 option show up at all in EDID though?

Should I try to compile the driver from master?

tranquillity-codes avatar Jan 24 '24 05:01 tranquillity-codes

Yeah, that limit was mostly coming from the maximum frame buffer size allocated by driver. I can put attestation signed driver on my public share directory. Just let me know which one do you need Win10/Win11? x86/amd64/arm64?

vrozenfe avatar Jan 24 '24 07:01 vrozenfe

Both Win10 & Win11, amd64, thank you ^^ !

Does it also work on Windows Server?

tranquillity-codes avatar Jan 24 '24 08:01 tranquillity-codes

https://people.redhat.com/vrozenfe/viogpu247.zip Not fully tested yet. Use it on your own risk. It should work on Windows Server. (Actually WDDM Display Only Driver designed to run on the server platforms rather on desktops).

Best, Vadim.

vrozenfe avatar Jan 24 '24 09:01 vrozenfe

Hello, thank you so much! I have little to no experience with Windows (I am setting up a VM to try to learn it), how do I install that? The whole virtio guest drivers package came as an executable installer. I tried clicking Install on the .inf file, which asked for privs then just said "Operation completed successfully", but after reboot the driver is still the same version and maxes out at 2560x1600.

tranquillity-codes avatar Jan 24 '24 09:01 tranquillity-codes

I attempted the pnputil steps described too, to no avail. I also tried using pnputil /delete-driver viogpudo.inf before doing pnputil /add-driver viogpudo.inf, also to no avail.

tranquillity-codes avatar Jan 24 '24 09:01 tranquillity-codes

go to "Start"->"Device Manager"->"Display Adaptors" you should see in-box "Microsoft Basic Display Adaptor" driver installed by default. Right click on it and chose "Update Driver" the pop-up menu. Then click on "Browse my computer for drivers" and navigate to the driver directory.

vrozenfe avatar Jan 24 '24 10:01 vrozenfe

I do not see any Microsoft Basic Display Adapter under Display adapters, I only see a Red Hat VirtIO GPU DOD controller

tranquillity-codes avatar Jan 24 '24 10:01 tranquillity-codes

OK, then you can try updating this driver taking the same steps as described before. Or uninstall device including driver. Then go to "Action" -> "Scan for hardware changes" an you should see MSFT driver popping up.

vrozenfe avatar Jan 24 '24 10:01 vrozenfe

Thank you, it seems to have worked! I had to select the topmost directory, it kept failing to find the driver. I also had to reboot for it to show the 3440x1440 resolution. Should I close the issue as it is resolved in master?

I also have another issue, audio seems to not work, though I presume I should open another issue for that.

tranquillity-codes avatar Jan 24 '24 10:01 tranquillity-codes

Technically your issue the same as https://github.com/virtio-win/kvm-guest-drivers-windows/issues/560 So one of them should be closed :)

Cheers, Vadim

vrozenfe avatar Jan 24 '24 11:01 vrozenfe