Is there an easy way of having a vm with gpu pass through to play windows games ?
from shapis@lemmy.ml to linux@lemmy.ml on 13 Nov 02:12
https://lemmy.ml/post/22441009
from shapis@lemmy.ml to linux@lemmy.ml on 13 Nov 02:12
https://lemmy.ml/post/22441009
Basically the title. I’ve only ever seen huge 20 page guides on how to make it work. Is there an easy way?
Specifically on Debian or Arch with a laptop with two gpus (zephyrus g14)
threaded - newest
I used the Arch instructions on Ubuntu 22.04 wiki.archlinux.org/title/PCI_p… and it worked, but broke on 24.04 owing to broken UEFI bios on 24.04.
Indeed. That’s the opposite of what I’m looking for though. That’s complicated and apparently breaks ?
I’m currently dual booting. Which works fine. I was wondering if there was an easier way though.
@shapis It's complicated to setup but once done works wonderfully, you can share one GPU between OS's in real time, even have one windows window up along with Linux at the same time. So I'm temporarily fuxored but I already have a plan for a fix and that is simply to steal the UEFI vm bios from Manjaro which does work and use it on Ubuntu.
With Proxmox on AMD gpus, it can be as simple as picking a pci device from a dropdown.
– but then again, you’ll need to learn how to properly use proxmox, esp. with respect to storage configuration. Also, the performance can still suffer, depending on various factors.
If it’s not too big of an inconvenience, dual boot is the way to go, IMHO.
@walthervonstolzing @shapis I personally use kvm/qemu but whatever works for you.
That’s all proxmox does too, just provides a gui and management tools.
VMWare Workstation Pro is now free and I believe that it had GPU passthrough. Don’t take my word on that though. I haven’t used it in a few versions.
@JoMiran @shapis CPU pass through isn't JUST the function of the hypervisor, the host os, guest os, gpu drivers, and uefi bios ALL play a role.
If there’s a game that doesn’t work on Linux because of anti or something it probably won’t work in a vm either so dual booting would probably be the way to go to avoid that
@variants @shapis Not true, a root-kit will break it in wine because wine is just translating windows sys calls into Linux sys calls, but a vm is actually running a windows kernel, then the root kit anti-cheat works fine. With GPU pass through, I have found no games that work under Windows won't also work within the VM.
.
@halfapage I'm saying from experience, nothing I could not get to run in a VM that ran in a physical machine.
.
@halfapage Anti-cheats don't generally care if they're running in a vm as long as they can insert kernel drivers.
Maybe anti-cheat software does not care if it is running inside a VM, but online-multiplayer game developers do, and they will ban you for using a VM.
@PlasticPaperplane I've never been banned, but ok.
At least MiHoyo’s anti cheat detects and blocks VirtualBox VMs as well as Waydroid.
@lord_ryvan Interesting, haven't played that game so no experience with it. VirtualBox does do some things a bit differently, I was not able to get flyff to run it well, it runs but at about 3fps, where as it runs normally in kvm/qemu.
Vanguard (Valorant, LoL) detects a VM pretty easily.
Damn that really fucking sucks man :/
I also don’t know if there’s any Linux program that will automatically do the configuration for you.
It seems like it would be pretty complex since I guess you need to disable the linux host from using the GPU, and do PCI passthrough in a VM that has Windows installed.
And there’s still the problem of the graphics needing to move around the system in order to get to the display instead of the display being directly connected to the GPU.
Seems like a pretty cool thing that would be neat to have a nice automated GUI solution for.
I was just looking at, seems like it’s difficult but not impossible www.youtube.com/watch?v=eTWf5D092VY
I’m in the same boat that it seems too difficult (and I bet the performance still isn’t near native).
I just dual boot and boot into Windows if I’m going to play a game.
This is all addressed by the Linux kernel and xml code specifying it for the VM.
Again handled by the kernel and qemu, just requires a bit of XML code in the vm description. Not a big deal.
Does it have to be a VM? Is Steam or Lutris not an option?
@xtapa @shapis Lutris is just wine, so any game using a kernel anti-cheat won't work under Lutris. And most of the games I play aren't steam so it does me little good personally, and many of the steam games I have tried don't work on Linux in spite of steam being installed.
Most anti-cheat doesn’t take kindly to running in a VM as well, so if that’s the reason it won’t work.
proton has support for quite a few kernel level anti cheat now, although it has to be explicitly allowed by the dev. needs to be run via steam I think, but you can add non steam games if you got them elsewhere
I have the 2020 G14 and I got this working once. I’m afraid easy and simple are not a thing here, as you need to understand what you’re doing if you want it to work well. The basics are:
Personally, I don’t think it’s worth the hassle. I keep a Windows install for when it’s needed, and do most of my gaming on a separate system.
Easy way to get yourself banned in online games just an FYI. Most online games will detect and ban virtual machines now since they’ve become commonplace in cheat/hack communities.
@Ptsf @shapis I've primarily gamed from a virtual machine and have NEVER EVER been banned, so I don't think so.
Depends on the game. Apex, Riot, ubisoft, and EA all ban vm players. A list of other companies do as well.
@Ptsf Haven't played any of those. Anyway, there is a way to edit your xml to fake the machine id.
machine id isn’t necessarily the important part. anticheat and vm detection check a lot of different heuristics incl hard to defend against things like timing attacks on particular cpu instructions. there’s a handful of open source versions if you’re curious
@brian To be honest, until and unless it becomes a problem for me, not really. KVM has the host CPU executing the VM instructions so timing on CPU instructions should product identical results. I have the VM setup as CPU and GPU pass through.
even with cpu passthrough some things are still emulated. you can run a vm detector and see for yourself what tests fail.
it may not affect your games but others should still be careful since it is a real issue, and people do get banned for it.
@brian Ok, just for kicks tell me where I can get this.
I’ve never used it but this one seems like the most complete currently, and it’ll tell you which tests fail.
@brian I have used it and with flyff at least the performance was far insuperior to kvm/qemu.
The most random mention of Flyff I have seen yet, as long as you mean the game.
@Sheldan Yes I am referring to the game, back when I had tried on vmware it was still the main commercial one that I was playing, I have since moved to Insanity Flyff. One of those minor continuities in my life.
It’s not… easy but it’s also not 20 pages difficult, unless you wanna do sinlge GPU passtrough, then that’s black magic.
Here is the guide I used when setting it up
This along with the arch wiki’s page on GPU passtrough should be enough to get you setup
E: Pro tip - pay close attention to section 2.3 Gotchas in the arch wiki, this sh!t had me stuck for a while on my system
Single GPU isn't substantially harder than 2GPU pass through, that is what I have done, but it does require support by the UEFI bios and the GPU and not all support it.