I use a Windows and Arch dualboot, but I’m looking to escape Microsoft. I’ve heard good things about both Fedora and Pop!_OS. I’m your average Arch user; I play video games and code. Are Windows VMs suitable for games like Call of Duty on such distros ?
You can, but can you do accelerated graphics within the VM environment?
My last foray into this with KVM/Qemu (the system native to Linux) was that accelerated graphics virtualization was still pretty twitchy, requiring various protocols which were still a bit immature (libvf, looking glass) or only available on a subset of hardware (vGPU,SR-IOV)
The docs on single GPU passthrough indicate one must detach from the host and assign to the guest (and rely on SSH or remote-screen apps etc to control the host).
PCI passthrough is the best option I’ve heard but basically involved the Linux host using the lower-powered GPU (possibly an integrated graphics chip) and then the guest given passthrough access to the gaming card.
If you’ve got good documentation on how to do this less painfully, I’d love to give it another shot. I’m pretty happy with the Proton performance on most stuff but there’s definitely a few games that I’d love to move to a virtual system if it performs well
Using KVM, you can use do full GPU pass through to any OS from your host without a need for a second GPU (including integrated graphics).
Works with AMD and nvidia cards, I’ve even done this with a macOS VM.
Here’s a guide that’s the easiest I’ve found to follow. It includes some automated scripts.
https://github.com/BigAnteater/KVM-GPU-Passthrough - this guide is for Arch Linux, but the scripts and configs should work the same on any OS, you’ll just need to make sure the correct packages are installed.
Like you mentioned, there are some hardware requirements to do this, but most modern hardware supports it. Also, if you are running the VM then using SSH to control your host is probably your only option, but shutting down your VM should take you back to your display manager so there’s no rebooting.
I used this set up to play warzone for a while, performance was just as good as windows on bare metal.
Some notes from my experience:
- if you upgrade your host’s kernel, then reboot before trying to start your VM.
2 There are 2 scripts that will be built for you, vfio-startup and vfio-teardown. They will unload and reload kernel modules as needed so you’ll want to check if they are needed. My nvidia drivers are built into the kernel, so I couldn’t unload them, which stalled the VM startup.
- It might take some trial and error, if your VM doesn’t start after you attach the GPU then check the logs under /var/log/libvirt (or wherever your libvirt logs to)