I've been doing more research on running a Windows VM through QEMU/KVM on Linux, with GPU and USB controller passthrough.
This will allow you to run Linux on your main system, and have a Windows VM that can run ANY Windows software with practically no performance impact.
This is the future, this is what personal computing will be in the future. This is how the Linux desktop will takeover. These features just need to become available for common hardware, and the process of setting this up needs to be made easier.
Basically, you NEED an Intel high-end-desktop (HEDT) motherboard and processor, previously x99 chipset mobos, now x299 chipset mobos. And not even all those mobos have proper IOMMU groupings, and there's not even any way to tell what the IOMMU groups on a motherboard are, unless someone buys the mobo and uploads a review online.
Basically you can only passthrough IOMMU groups to a VM, not actual devices, and on most motherboards, multiple devices are put in one IOMMU group.
For example if you have 2 GPUs, the PCI-e slots they're connected to will need to have different IOMMU groups, on most motherboards, multiple GPUs are put in the same IOMMU group, making passthrough either impossible, or requires you to use a patch which will either not work, or is really shitty if it does work.
The USB controllers will need to be in their own IOMMU group too, so you can pass them through, which you'll need to do if you want low latency for your mouse/keyboard, and working USB devices in the VM.
https://www.youtube.com/watch?v=i2AiRpafxDkSo I found this guy, who does motherboard reviews, and shows the IOMMU groups, this is the only guy on the internet I've found who does this, and this guy, or random posts on fucking reddit or whatever, are literally the only way to see if a motherboard has proper IOMMU groups before you buy it.
So anyway, I'm looking at possible hardware setups.
https://www.newegg.com/Product/ProductList.aspx?Submit=ENE&N=100007671%2050001157%20601298157&IsNodeId=1&bop=And&Order=PRICE&PageSize=36This is your ONLY choice of processors, and basically you need to get the i7-7800X or better, because otherwise you won't have enough PCI lanes supported for a dual-GPU setup running at 8x/8x on the PCI-e lanes
https://www.newegg.com/Product/ProductList.aspx?Submit=ENE&IsNodeId=1&N=100007627%20601299335%20601298415This is the motherboards you can choose from, and not all of them will work. For example one of the cheapest ones, the ASRock X2999 Extreme4, won't work because of improper IOMMU groups.
That's basically the only important part, you can buy whatever DDDR4 RAM you want (I'd recommend a 16GB quad-channel kit 4x4GB, because we quad-channel now), whatever HDD/SSD, and a sufficient power supply.
However you should buy an AMD GPU, as Nvidia intentionally blocks their GPUs (aside from their quadro line) from running in a VM, google "code 43 nvidia", which is easy to bypass, but still, why support that?
This isn't even mentioning the fact that on the software side of things, even for a typical guy who can build a PC, this would seem nearly impossible to setup if they didn't have Linux experience. Someone experienced with Linux, for example someone who can build their own kernel, wouldn't find this too complicated, and once they've done it once, it wouldn't be complicated at all.
I've done the entire process except the actual GPU passthrough, because I don't have hardware that supports it. This is why I've done so much research into supported hardware. This is the forefront of technology though, virtualization is the future.