Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to modeset to 3440x1440 in Windows 11 #1034

Open
tranquillity-codes opened this issue Jan 23, 2024 · 12 comments
Open

Unable to modeset to 3440x1440 in Windows 11 #1034

tranquillity-codes opened this issue Jan 23, 2024 · 12 comments
Assignees

Comments

@tranquillity-codes
Copy link

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.

@vrozenfe
Copy link
Collaborator

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.

@tranquillity-codes
Copy link
Author

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?

@vrozenfe
Copy link
Collaborator

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?

@tranquillity-codes
Copy link
Author

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

Does it also work on Windows Server?

@vrozenfe
Copy link
Collaborator

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.

@tranquillity-codes
Copy link
Author

tranquillity-codes commented Jan 24, 2024

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
Copy link
Author

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.

@vrozenfe
Copy link
Collaborator

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.

@tranquillity-codes
Copy link
Author

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

@vrozenfe
Copy link
Collaborator

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.

@tranquillity-codes
Copy link
Author

tranquillity-codes commented Jan 24, 2024

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.

@vrozenfe
Copy link
Collaborator

Technically your issue the same as #560
So one of them should be closed :)

Cheers,
Vadim

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants