Jump to content

Viability of Running a Win10 Gaming Virtual Machine on Linux

rojobahr

I have been wanting to switch to Linux for a while now, but compatibility issues has been keeping me from doing so. Most of my games (as one expects) are Windows-exclusive and while I am well aware of Wine, it's success rate is all over the place from what I've heard. I know this will make me seem a bit picky and arrogant but with how stingy I am with my money, any compatibility layer with less than a 100% success rate is unacceptable. 

 

The linux distro I think I've decided on is Manjaro. My ideal setup would be to have the linux distro be my main OS and to use a Win10 virtual machine for whatever games don't work on linux. Super ideally, I would also have other gaming VMs for Win7 and XP, to ensure maximum compatibility. Additionally, I would also like to alter some of the parameters of the VM, like allocated drive space and selecting what folder to use as the VM Win10's root, without having to redo the whole process. Not sure if that's already possible, as my research into what programs like VMWare allow users to do is limited. I've heard that setting up a gaming VM is a massive pain in the rear end and I want to know if it has gotten any easier over the past year. 

 

My setup, in case it's important:

CPU: Ryzen 5 1500X

GPU: Radeon RX 580

MoBo :ASRock AB350 Pro 4

Sound Card: ASUS Xonar DX

And a Wi-Fi card I don't know the name of.

 

Thank you.

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, rojobahr said:

I've heard that setting up a gaming VM is a massive pain in the rear end and I want to know if it has gotten any easier over the past year.

You need two GPUs, which in and of itself is typically a show-stopper for most.

Hand, n. A singular instrument worn at the end of the human arm and commonly thrust into somebody’s pocket.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, WereCatf said:

You need two GPUs, which in and of itself is typically a show-stopper for most.

Not necessarily, GPU pass-through exists and can be done. 

Personally, I don't recommend gaming w/ virtualization and/or translation layers on Linux. It's a hassle, random bugs/quirks exist and probably always will, gaming peripheral software barely exists, and overall it's a pain. I just dual-boot. It works well enough for me. 

Main Rig: R9 5950X @ PBO, RTX 3090, 64 GB DDR4 3666, InWin 101, Full Hardline Watercooling

Server: R7 1700X @ 4.0 GHz, GTX 1080 Ti, 32GB DDR4 3000, Cooler Master NR200P, Full Soft Watercooling

LAN Rig: R5 3600X @ PBO, RTX 2070, 32 GB DDR4 3200, Dan Case A4-SFV V4, 120mm AIO for the CPU

HTPC: i7-7700K @ 4.6 GHz, GTX 1050 Ti, 16 GB DDR4 3200, AliExpress K39, IS-47K Cooler

Router: R3 2200G @ stock, 4GB DDR4 2400, what are cases, stock cooler
 

I don't have a problem...

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, tarfeef101 said:

Not necessarily, GPU pass-through exists and can be done.

You can't pass-through the GPU that is already in use. Your primary GPU is already in use by Linux, so you can't pass it through. (Well, okay, unless you are using Intel's iGPU or one of AMD's or NVIDIA's datacenter GPUs. Intel's iGPU does support virtualization.)

Hand, n. A singular instrument worn at the end of the human arm and commonly thrust into somebody’s pocket.

Link to comment
Share on other sites

Link to post
Share on other sites

You can't game on virtual machines (VMware workstation) unless you only play 2D games.

You need VMware vSphere and a dedicated gpu for the slave OS.

Ryzen 5700g @ 4.4ghz all cores | Asrock B550M Steel Legend | 3060 | 2x 16gb Micron E 2666 @ 4200mhz cl16 | 500gb WD SN750 | 12 TB HDD | Deepcool Gammax 400 w/ 2 delta 4000rpm push pull | Antec Neo Eco Zen 500w

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, SupaKomputa said:

You need VMware vSphere

Only if you want to use VMware for virtualization. KVM works great under Linux and is free.

Hand, n. A singular instrument worn at the end of the human arm and commonly thrust into somebody’s pocket.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, WereCatf said:

You can't pass-through the GPU that is already in use. Your primary GPU is already in use by Linux, so you can't pass it through.

You can get the host to pass off hardware to the VM and run headless, and take control back when you kill the VM, technically. It's not simple, bug-free, or necessarily worth it. But it is possible. 

Something like SR-IOV enabled GPUs would be much more helpful, or just having 2, yeah. 

Main Rig: R9 5950X @ PBO, RTX 3090, 64 GB DDR4 3666, InWin 101, Full Hardline Watercooling

Server: R7 1700X @ 4.0 GHz, GTX 1080 Ti, 32GB DDR4 3000, Cooler Master NR200P, Full Soft Watercooling

LAN Rig: R5 3600X @ PBO, RTX 2070, 32 GB DDR4 3200, Dan Case A4-SFV V4, 120mm AIO for the CPU

HTPC: i7-7700K @ 4.6 GHz, GTX 1050 Ti, 16 GB DDR4 3200, AliExpress K39, IS-47K Cooler

Router: R3 2200G @ stock, 4GB DDR4 2400, what are cases, stock cooler
 

I don't have a problem...

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, tarfeef101 said:

You can get the host to pass off hardware to the VM and run headless, and take control back when you kill the VM, technically. It's not simple, bug-free, or necessarily worth it. But it is possible.

I don't think that'd suit OP's usecase. Also, I never got it to work well; either the host, the VM or both would crash after a few moments. YMMV and all that, but I wouldn't consider it even remotely useable.

 

Proper pass-through with a separate GPU is easy enough to set up and works fine, tho. Virtualizing Intel's iGPU also works perfectly fine for me, though it's obviously not going to be useable for gaming.

Hand, n. A singular instrument worn at the end of the human arm and commonly thrust into somebody’s pocket.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, WereCatf said:

I don't think that'd suit OP's usecase. Also, I never got it to work well; either the host, the VM or both would crash after a few moments. YMMV and all that, but I wouldn't consider it even remotely useable.

 

Proper pass-through with a separate GPU is easy enough to set up and works fine, tho. Virtualizing Intel's iGPU also works perfectly fine for me, though it's obviously not going to be useable for gaming.

Sadly the 1500X here makes the "get-out-of-jail-free card" that is the iGPU unavailable here 😞
 

I do try to mention anything that's "possible" even if not ideal when talking about gaming on linux given that IMO it's already kinda a pain and not very seamless. But that's a lot of personal bias, I do admit. The mindset i use is more or less "well I wouldn't even use just proton/lutris, so who's to say trying to pass-off the GPU between OSes is too clunky?"

Main Rig: R9 5950X @ PBO, RTX 3090, 64 GB DDR4 3666, InWin 101, Full Hardline Watercooling

Server: R7 1700X @ 4.0 GHz, GTX 1080 Ti, 32GB DDR4 3000, Cooler Master NR200P, Full Soft Watercooling

LAN Rig: R5 3600X @ PBO, RTX 2070, 32 GB DDR4 3200, Dan Case A4-SFV V4, 120mm AIO for the CPU

HTPC: i7-7700K @ 4.6 GHz, GTX 1050 Ti, 16 GB DDR4 3200, AliExpress K39, IS-47K Cooler

Router: R3 2200G @ stock, 4GB DDR4 2400, what are cases, stock cooler
 

I don't have a problem...

Link to comment
Share on other sites

Link to post
Share on other sites

In a way, I kinda expected that it would be more complicated than I thought.

 

I imagine the best way to "easily" achieve what I want would be to have two drives with Win10 on one and linux on the other, then choose which one to boot from the BIOS or to just have two separate PCs? This is nowhere near ideal, as my reason for wanting to switch is because Windows network drivers refuses to cooperate half of the time.

 

Do you ever think Wine will approach anything close to 100% compatibility?

Link to comment
Share on other sites

Link to post
Share on other sites

23 hours ago, rojobahr said:

Do you ever think Wine will approach anything close to 100% compatibility?

Until Microsoft stops innovating or open-source Windows (and all related technologies) including DirectX, this won't happen.

 

If you want to use Linux, your best approach, in my opinion, is to use WSL feature of Windows 10, or dual boot.

WSL allows you to install a distro of choice, and run Linux programs under Windows, and use its Terminal within Windows (and it allows you to cross things between Windows and Linux which is also nice).

 

If you are interested, you have 2 versions of WSL (you can see it as 2 modes), which you can switch between at any time.

WSL1 - Uses a Linux kernel translation layer.

WSL2 - Uses custom Linux kernel which runs under a mini Hyper-V session.

 

Both have their strength and weaknesses, which I suggest you read more on then bellow:

WSL2 offers the best compatibility, but suffer disk I/O performance drop when accessing, from Linux, files outside of its Linux environment (Windows disk I/O is not affected... only if you are under Linux, accessing files outside of it). Also, have a small system performance loss just by having it enabled, and increases a tad more once you run it. The performance loss might be more of an issue if your system is very old. Like mine, that is 12 years old.

 

WSL1 offers no performance impact under Windows, not even disk I/O performance drop when accessing files outside of Linux environment, however, programs compatibility is an issue. For example, Docker isn't supporter under WSL1, you need to be under WSL2.

 

In my opinion, WSL1 is great if you want to just use common Linux utilities under Windows and/or just want to learn/discover Linux.

WSL2 is best if you are doing software development or anything involved.

 

Currently, the only big limitations of WSL1 and 2 are:

  • Services needs to be executed manually (mind you, you could make a startup script as a workaround)
  • No GUI support (you'll need to use an xServer. I use X410 (it is often on special at a good price. You can find it in the Windows Store). They are free options, if you wonder. Or you could wait for Microsoft to bring GUI support... something that they are working on, and demonstarted last year, but no release date set.. it looked like (and they did mention) more work needed to be done. So, it looks like they have something, but needs more work. 
Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×