That can't be right. The VM is faster. What is up Blan people? As promised today is KVM, VFIO, gaming and a virtual machine benchmark stay. If you don't know what any of those words mean, check out the description, but if you do, stick around because I think you're going to like this. This is Blanman Studios, where I make creative stuff and talk about the technology behind it. And today I'm showing you benchmarks that compare a native Windows 10 install to gaming the way I do it in a Windows 10 VM running on a Linux host. I promised to put out this video about four months ago and it took me a while because the results are puzzling, but we'll get to that. First, I'm going to show you my software and hardware setup. Then we're going to go over the results of the benchmarks. Then I've got a proposition for you. As you'd expect, time stamps are in the description. Let's get started. This is my desktop PC that I built just for VFIO. It has an Intel i7 9700K processor, an ASUS TUF Z390M motherboard, an ASUS StrixRog and VDGTX 1660 Ti graphics card, 32 gigabytes of RAM, and two inland premium M.2 solid state drives, each with one terabyte. The first solid state drive is my daily driver, with Linux and all of the virtualization software installed. The second is a clean Windows install just for these tests. Getting to the native install is pretty straightforward. I just press delete as the computer boots up and tell the BIOS to boot the Windows install on that second drive. As you can see here, Windows has access to all my hardware, which I kind of hate, but that's a topic for another video. Next, I'm going to show you the VM. First, I let the computer boot to the primary drive, which has Fedora installed, and VertManager starts automatically. I can open up the VM I created for this test and show you the settings. This VM is configured to use VFIO or PCI pass through to pass in that second M.2 drive with the Windows 10 install. So the VM is running the exact same hardware for this test as the native install. The VM has seven of eight CPU cores passed in. They are pinned but not isolated. I have the mouse and keyboard passed in using USB device assignment, and I have an Nvidia graphics card passed in using PCI pass through. And that's it. When I boot the VM, it only has access to the hardware I've given it, which is pretty awesome. So with the computer setup these two different ways, I ran the benchmarks all in one go and uploaded the results in a two hour long YouTube video. If you like details, you should check it out. You can check for visual hiccups, inspect the hardware config, compare the boot times, it's all there. Seriously, there's like two cuts in the whole video other than the intro and closing. But now for the good park, benchmark results. Boom! There it is in all of its glory. Pause here if you want to dive in and check out the numbers yourself, but I'm going to move on and show some charts that highlight and summarize the differences. First, we have Crystal Disk Mark, which is a tool for testing drive speeds. You can see here a side-by-side comparison of the M.2 solid-state drive speeds, native versus virtual. The columns on the left are the native install and the columns on the right are the VM. The graph on the top is the read speeds and the bottom graph is the right speeds. What's interesting about this is it's basically a direct measure of the overhead of VFI-O, which is the technology that lets us pass PCI devices like this drive and the graphics card directly into the VM. In both of these cases, Windows thinks it's talking directly to the hardware using PCI, but it's actually talking to the VFI-O driver running on Linux, which then passes the commands on to the actual hardware. And we can see in most use cases, adding in this middleman doesn't make that big of a difference. In one of the tests, the sequential read test, the VM actually did better. And this makes sense for some workloads, adding in a middleman doesn't slow things down. And the throughput of sequential reads from a drive is one of those workloads. As an analogy, imagine a line of people passing buckets of water down the line to eventually dump on a fire. If first we just start with two people, you and me, and I'm passing you one bucket of water every second, and you're pouring it on the fire as fast as you can, one bucket every second, there's one bucket of water dumped on the fire every second. If we add in another person, I hand them one bucket per second, they hand you one per second, and you dump it on the fire, still one per second. Even if the first bucket took longer to get there, the number of buckets per second didn't change. Kind of like how in this case, megabytes red per second is the same, even though I know the VFI-O driver is acting as a middleman. The test where the VM really suffered was the four kilobyte test of random reads and writes using 32Qs. It's hard to tell why, because I don't know how crystal disks structures their tests. It's possible that this is one of the cases where the small delays of VFI-O become significant, but it's also possible that this is just because the VM is operating with one less CPU core. And that's actually the case that we see with the time-spi benchmark. The GPU score is basically the same, and the CPU does worse on the VM. Again, this could be because it's missing a core, time-spi has a very specific CPU test, so it might be able to exercise all eight of those at once and really tell the difference when one of them is missing. Next for the Unigined Benchmarks. If you like walking down the TV aisle at the electronics store, you might want to check out the full benchmarks video, especially the Super Position section. Some of these benchmarks look really cool and they're kind of mesmerizing to just watch. But anyway, I ran heaven and valley both on their maximum setting, and I ran Super Position on some varying settings using both high and extreme and comparing direct decks with open GL. Same as before, native of the columns on the left and the VM are the columns on the right. This chart shows the min max average frames per second in the bottom middle top sections of the bars. Nothing immediately jumps out as aronius, so I'll switch over to looking at the scores because that's a little easier to summarize. The scale changed because the scores are just arbitrary numbers, but we see the same thing again. There's basically no difference. They're all within 6% of each other, and the VM actually does better in a couple of the tests. The only trend I might be able to pick out is that maybe the VM excels more in the really high frame rate tests like valley and heaven, and maybe the native install does better in the more demanding tasks. But anyway, these results are kind of unbelievable. Is it possible that there's some hardware resource that Windows can grab faster from kvm on Linux than it can using its own hardware interfaces? Or is it just that the clock inside the VM is less consistent and less able to detect drops in frame rate? In addition to this, gaming performance isn't just FPS. Latency is a really important factor in gaming, and we haven't really looked at that here. Additionally, it would be really interesting to look into the opposite side of the equation. Is input lag different when playing in a VM. So here's my proposal for you. If you're interested in these tests and interested in the performance differences between a native and VM gaming experience, let me know in the comments and let me know what you'd like to see. If you're new to Linux and you just enjoy following along, that would be awesome because I would really enjoy breaking down some of these concepts. Or if you're more technical and you'd like to offer advice or fact check me, that would be really helpful too. If there's enough interest, we could turn this into a whole video series and really try and take apart the question and thoroughly answer, can gaming VMs be as fast as native? We could even livestream some hardware tests or some really specific software development. It could be a lot of fun, so if you'd be interested in that, make sure to let me know, and if you know somebody that would enjoy following along with this, send a link to this video, it could end up being a fun, interactive, educational experience for all of us. Either way, even if we don't get to drill into this deeper, these benchmarks show that gaming in a VM is at least pretty darn good. So if this is something you've wanted to do for a while and you're okay with being on the bleeding edge of this tech, you might really like it. So as always, thanks for watching and don't forget to stay bland.