Some questions about 'hiding' the fact that you're running a VM

Like a lot of people here I primarily run Linux but I have a Windows VM with GPU passthrough just for gaming. Been running this setup for a few years now and it’s generally fine (well, except for the fact that I bought a Radeon VII and didn’t realize the reset bug issues would never be fixed for it…kind of regret that now but it is what it is…).

However recently I tried to play a game that for some stupid reason doesn’t want to run in a VM. No technical reason why it can’t, rather they are explicitly detecting and blocking VMs. I obviously think that’s BS and I’m not trying to do anything nefarious here, I just want to run the game in my preferred setup. This particular game (Genshin Impact if you’re curious) doesn’t seem to be doing a particularly thorough job of detecting a VM however because some people have claimed that just adding the line
<feature policy="disable" name="hypervisor"/>
To the cpu section of your VM config can get it to work.

Slight problem for me though, I tried this and for some reason it seems to completely break my setup. Which is why I thought asking around here might be a good idea, as I know there are a lot of people here with more knowledge about this kind of stuff than me. Basically when I first tried booting my Windows VM with that line added things appeared fine at first but around the time the display would normally have switched to the passed-through GPU I just got a completely blank screen and Windows was unresponsive. Killed the VM, rebooted my computer (because Radeon VII reset bug, sigh…), and tried it again without that line and things were fine. Then I decided to reboot again and give it one more shot with that line and this time Windows did start up only the GPU was never enabled. It actually did show up in Window’s device manager but was listed as disabled. I tried forcing it to enable there just to see what would happen and Windows locked up again…

It seems like this particular setting has some bad interactions with the Radeon VII, but I’m not really sure why that would be the case. So can anyone explain exactly what that setting does and why it might cause problems like this?

Also any other suggestions for tricking Windows apps into not knowing they’re running in a VM? It seems incredibly dumb that I have to jump through these hoops at all but here we are…

(And yeah, I am looking to replace the Radeon VII at some point because of all the headaches it has with VMs but I’m going to wait until the new GPUs from both Nvidia and AMD are on the market and there’s more information on how well they work with VMs…)

I’m interested in this as well. I actually tried the <hidden state="on"/> flag on the CPU XML but either my use of it was wrong or it was a bull. Same for trying out Genshin on VM as well, because its kernel access + Chinese ties was too creepy for me to actually use outside of a container. I really don’t feel it’s worth dual-booting for and I doubt my budget rig could handle hypervisor-less VM so that’s a bust.

Ah well, I have other games that are less stressing and reminds me less of the crapsbasket that is world politics rn anyways. But if someone managed to do it, then I’d be interested in how they did it. Although it’s probably possible to use Anbox, Android x86, or Genymotion then setup a controller binding to do it, but that sounds like a major hassle.

Hi, I have successfully tried to hide the hypervisor and run THE game in a Windows guest on patched Proxmox with pass-through RX 5700 XT. Here’s some of my configuration if you are still interested in this issue.