Key findings
- With GPU passthrough and a lot of trial and error, gaming on a Proxmox virtual machine is possible, but it's not for the faint of heart.
- Prepare for a complex configuration with a fast processor, enough RAM and multiple graphics cards to achieve gaming performance.
- If you are willing to invest the time and effort, using services like Parsec can provide a viable solution for streaming games on a Proxmox VM.
Virtual machines not only allow you to test any operating system, but they are also well suited for home lab workloads. However, gaming is probably the last task you would associate with VMs. Since you can't fully utilize your hardware in a virtualized environment, the very idea of gaming on a VM sounds absurd and downright ridiculous. But since Proxmox supports GPU passthrough, turning your server into a gaming machine sounds somewhat plausible, right?
After spending hours tinkering with settings and desktop streaming logs, I can confirm that it is possible to run games at 4K60FPS and most graphics settings on a bare virtual machine. In case you're curious, here's a log of the entire process, including the errors encountered and the workarounds to fix them.
The Test bench Guinea pig that I used for the project
While Proxmox is one of the easiest virtualization platforms I've ever used, it does have a few quirks that I had to consider for this project. Since you'll need a second graphics card when setting up GPU passthrough, I chose my trusty Intel Arc A750 as a dummy device. I also wanted the Proxmox gaming machine to be as bottleneck-free as possible, so I opted for my RTX 3080 Ti rather than using a weaker GPU and leaving it at that.
Likewise, I had a few options for the CPU, although the X99 motherboard in the dual Xeon CPU setup doesn't support IOMMU so my server rig was out of the question. So my Ryzen 5 5600X served as the heart of my Proxmox machine and I put another memory stick in the motherboard to get 32GB of 3000MHz DDR4 RAM. Finally, I used my 1000W Corsair RM1000e PSU to avoid any PSU-related bottlenecks.
Setting up a Windows 11 VM was quite a challenge
And I had to reset the virtual machine several times
Before I could create the virtual machine, I had to run some preparatory commands in the Proxmox shell to access the RTX 3080 Ti from any VM. These are the same commands I mentioned in my guide on setting up PCI passthrough on Proxmox, so I just had to follow the instructions I put together in the article.
Once that was done, it was time to create a Windows 11 VM. After a few resets after botched attempts, I downloaded the VirtIO drives and transferred them to Proxmox before adding them as an additional drive in the VM creation wizard. I initially assigned 8 cores and 16GB of RAM to the VM, but increased the number of cores and memory to 10 cores and 24GB before running my tests.
After deploying the VM, I used noVNC as a console viewer and selected Windows 11 Pro in the initial setup process. The next hurdle was to get the 60GB virtual drive I created in the Proxmox UI to show up in the Windows Setup Wizard. The solution was pretty simple, as I just had to click the Load driver to access the VirtIO hard disk and the SCSI passthrough controller. The virtual hard disk then appeared as one of the options in the Windows Setup Wizard and I was taken to the OOBE screen.
Here I faced the biggest hurdle so far: connecting to the Internet. Even though I had changed the network driver settings in Proxmox and added various WLAN adapters in USB passthrough mode, I could not continue the installation. Luckily, I pressed Shift+F10 allowed me to enter the console where I could OOBE\BYPASSNRO command. After a reboot I chose I don't have internet Command prompt and the rest of the installation process went smoothly.
The VM delivered surprisingly high FPS after installing the GPU drivers
Unfortunately, the latency in RDP ruined the whole experience
After landing on the standard Windows 11 desktop, I plugged a network card into the Proxmox machine and passed it to the VM. After internet access was restored, I immediately grabbed drivers for the RTX 3080 Ti and installed them on the virtual machine. However, I couldn't access the graphics card until I set it as the primary GPU in the Hardware tab of the Proxmox web UI.
This led to another problem: noVNC stopped displaying the output and all attempts to use it resulted in Connection to server could not be established Error message. Remember earlier I said I had installed the Pro version of Windows 11 instead of the Home edition? The reason for that was because Windows 11 Pro has the Remote Desktop feature enabled by default and that was all I needed to access the VM.
After getting back into the Windows 11 virtual machine via Remote Desktop, I started testing all of my titles. Elden Ring, Cyberpunk 2077 And Baldur’s Gate 3 ran at high FPS at both 1080p and 4K. I admit that the frame rates were a bit lower than what I usually get on my main system, but I never expected the games to run at 4K60FPS with most settings on Ultra on a bare virtual machine. In the meantime Armored Core VI: Fire of the Rubicon gave terribly low FPS at both resolutions, although disabling V-Sync in the settings fixed the problem. I also tested a few other less demanding titles and all of them worked pretty well. The only outlier was Red Dead Redemption 2which crashed within minutes of booting via Steam.
1080p, Ultra settings |
4K, Ultra Settings |
|
---|---|---|
Armored Core VI: Fire of the Rubicon |
|
|
Baldur’s Gate 3 |
120 FPS |
64 FPS |
Cyberpunk2077 |
110 FPS |
66 FPS |
Elden Ring |
60 FPS |
60 FPS |
However, one major problem was still unsolved: Since RDP is not optimized for gaming, there was a huge latency – to the point that I couldn’t even play AC6 or Elden Ring. The settings menu in Baldur’s Gate 3 revealed that the game was limited to a 32Hz refresh rate, which meant that I mean, um, stupid ambitions Running games on a VM. But I had another trick up my sleeve…
Using Parsec to stream games produced excellent results
And the VM was finally free from the plague of latency
Earlier this year I wrote tutorials for Parsec and Sunshine/Moonlight and tested the two remote desktop streaming services. So I had the crazy idea of using Remote Desktop to set up Parsec and stream games from the virtual machine to the other devices on my home network. My first attempt was unsuccessful and configuring a Sunshine server didn't work either.
Activating the Fallback to virtual display Option and turning off RDP finally allowed me to access the Windows 11 VM with Parsec. At first, Parsec did not provide any audio output, but connecting a DAC to the Proxmox host and forwarding it to the virtual machine solved the audio issues.
For the best experience, I increased the resolution and bandwidth of the stream in parsecs – and was amazed at how well everything worked. Sure, the quality dropped slightly due to the compression, but to the untrained eye, the difference is barely noticeable. Latency was no longer an issue and I was able to play the games at extremely high FPS without experiencing any lag or micro-stuttering. After testing a handful of titles, I'm happy to report that the experiment was a complete success!
Is a Proxmox virtual machine good for gaming?
Surprisingly, yes! But only if you're willing to put in a lot of effort to get everything up and running. For example, you'll need to allocate enough CPU and RAM resources to the VM. GPU passthrough is also a major hurdle, as you'll need to plug at least two graphics cards into the host computer. Getting the whole setup up and running can take hours – and that's not even including the time spent troubleshooting. But for those willing to get hands-on, a Proxmox server is more than capable of running your favorite games!