 Imagine a world where if you wanted to occasionally run small business errands in your car, manufacturers could force you to buy their work-grade vehicles. You'd be pretty pissed off, right? Well, that's essentially what Nvidia did. GeForce users who wanted to pass their GPUs through to a virtual machine were suddenly greeted with the infamous code 43 error when they tried to install drivers. And they've had to spend the last seven years dealing with janky workarounds. Until today. Nvidia seems to have finally decided that it is time to make amends. So let's learn a bit more and see if maybe, just maybe, Nvidia is turning over a new leaf. What I'll never turn over is my segues to sponsors like Honey. Honey is the free-to-use shopping tool that helps search for some of the best promo codes at lots of your favorite sites. Get it today at joinhoney.com slash LTT. Code 43 has been a huge deal in certain circles for a long time. In no small part because of how ridiculous it is. Because there's no technical reason why. Like most PCI Express devices, a GeForce card can't function just fine when passed through to a virtual machine like in our two gamers, one CPU project. And there's definitely no reason why a Quadro, which uses the exact same silicon and often the same board layout would do it any better. And yet, if the GeForce driver detected that it was running in a virtual environment, it would effectively say to you what Linus Torvalds famously said to Nvidia. So Nvidia, f*** you. To understand why any of this matters though, we need to go back to the beginning. Virtualization has been common on desktop computers since as far back as the 90s. When Kinectics virtual PC allowed Mac users to use Windows on their PowerPC based machines. Now back then, everything had to be emulated. So performance kind of sucked. But as technology improved and especially as hardware assisted virtualization support became common, more and more of the host machines resources became available with very little overhead to a guest operating system on a virtual machine or VM. That includes the ability to assign a device entirely to the guest using a feature called pass-through. Major players like VMware and Microsoft with Hyper-V have supported these features since very early on. And while hardware support for pass-through began in 2007 with AMD's K10 family of CPUs, in 2008 with Intel's WolfDail, chipset and BIOS support from motherboard manufacturers was sporadic on both sides. And it wasn't until AMD's 900 series chipsets in 2012 and Intel's Haswell Refresh in 2014 that consumer hardware started really handling it well. AMD branded this feature AMD BI and Intel went with VTD, but the technology is more commonly called Input Output Memory Management Unit or IOMMU. And it is incredibly important for virtual machines. Not only does IOMMU allow pretty much any PCI device to be passed through to a VM, it can be used to sandbox faulty or even malicious hardware without worrying about compromising the rest of the system. This makes it useful not only from a functionality standpoint, but also for security. Oh, and performance too. While devices like network adapters and drive controllers could be emulated, passing through a dedicated card could save that emulation overhead and allow a virtual machine to have IO performance that was nearly on par with a bare metal one. Over time, however, this last point has become less and less relevant thanks to the broad adoption of para virtualization, the ability for very fast virtual devices to communicate directly with the host without the need to emulate or pass a full device through. One network card, for example, can service multiple VMs with very little overhead. However, one somewhat important piece of hardware still has no viable para virtualization support, the GPU. And one group that heavily relied on GPU pass through back then was the Linux community. It let them daily drive Linux and game in a virtual Windows environment with like bare metal performance. Perfect. That is until Nvidia's 337.88 driver release in May, 2014, just days before Intel announced the pass-through friendly Haswell refresh. Ah! This was one of Nvidia's first major middle fingers to the Linux community and it wouldn't be the last. But get subscribed because Nvidia has been doing a lot of things lately to try to make up for it and we've got some videos planned to talk about them. The question though is why did they do this? Because whenever a newbie inevitably stumbled across code 43, their outrage was swift and it was consistent because not only did it just hand a win to AMD, who decided not to lock down Radeon, it was just totally ridiculous. I mean, it's not like passing a GPU through to a VM unlocks some super secret performance enhancement that would directly eat into Nvidia's Quadro sales, but apparently they thought differently or at least thought the collateral damage was low enough not to matter. Lttstore.com, by the way. Now at the time, that bet probably looked pretty good because back when this policy was enacted, Ryzen was but a twinkle in Lisa Su's eye and AMD was staring down bankruptcy. Quad core was as high as it went on the desktop and it would stay that way till 2017. So from Nvidia's perspective, realistically, what gamer was gonna sacrifice precious cores for this kind of use case when they had so few? Anyone passing through must be a professional user. But then everything changed. The overwhelming majority of new systems these days now have six cores or more. And there are a growing number of people looking to legitimately take advantage of all that extra horsepower that goes woefully underutilized in even the most multithreaded games. Take someone like our camera guy, David. He wants his unraided NAS to give him high speed storage for personal video projects, act as a Plex media server, and serve as a capture PC for his streaming rig with Nvidia Nvenc doing the encoding, using pass through, of course. Or take someone like Anthony, who has somehow managed to game on Linux every day at home since Proton came out, and yet still runs into games that straight up run only on Windows. But hold on a minute, Linus, you might say. Those are projects that you guys did before this change. So what's the difference? Okay, there were workarounds to code 43. Some of them were even pretty simple, but Nvidia's meddling caused no end of headaches for novices who were just as likely to abandon the idea entirely as to find a solution, which sucks, because it opens up a lot of possibilities, and the hardware is freaking capable of it. Now though, it's as simple as passing through your GPU and installing the driver as normal, just like you would do on AMD. So let's say you're a Linux user like Anthony. You can split your CPU and RAM up, and then use an AMD GPU for its superior Linux experience, while using an Nvidia GPU for an, in my opinion, still superior Windows gaming experience, completely hack-free. Got Xbox Game Pass and wanna play Microsoft Store games? You can do that. Wanna play Epic Game Store or EA Origin exclusives? You can do that too. Want real-time ray tracing and DLSS? Go for it. And this is really cool. With Looking Glass, you don't even need to change the inputs on your display, although it should be noted that at high resolutions and refresh rates, you can run into PCI Express bottlenecks. For our part though, our Ryzen 5000 series running PCI Express Gen 4 managed 1440p 144 Hertz, despite only running eight lanes to each of our GPUs. If you're okay switching inputs to play your Windows exclusives though, you don't need to worry about any of that because it's all native. There are some drawbacks to this approach, however. While you do get the full capabilities of the GPU, including features like ShadowPlay and Nvidia Broadcast, you might still run into problems with anti-cheat software. Engines like BattleEye and Easy Anti-Cheat are able to detect when a user is running in a virtual machine. And the situation with cheating using virtual machines has unfortunately become bad enough that they've begun kicking players who are running them as a preventative measure. This is because anti-cheat running inside a VM has no idea what the host operating system is doing. And that host OS just happens to be able to manipulate the virtual machine's memory in ways that are undetectable by anti-cheat, hence the ban on VMs. They do say that users running in a VM won't be banned outright, but there are reports of exactly that happening. So just be careful if you decide to try playing Fortnite or Rainbow Six Siege. Are there ways around these limitations? Probably, but I'll leave that up to you to research on your own. For now, the bottom line is that Nvidia is making changes to how they handle Linux and virtualization, and many people, myself included, could not be happier about it. I don't agree with everything they do, but damn it, you gotta give credit where credit is due. Just like I give credit to our sponsors. Manscaped offers all-in-one men's grooming tools that have you covered from head to toe. Their Perfect Package 3.0 kit is designed to make grooming below the waist easier than ever, with their Lawn Mower 3.0 plus some other goodies. It includes both their Crop Preserver and Crop Reviver sprays to keep things fresh down under, and a portion of every purchase goes toward the Testicular Cancer Society to spread awareness for men's health and early cancer detection. So don't wait, get 20% off Manscaped with promo code TECH and join the fight against testicular cancer at the link below. Thanks for watching, guys. If you're looking for something a bit more data-heavy, maybe check out our recent video on Nvidia's resizable bar implementation. That video is all about them benchmarks. Because I'm all about the benchmarks, I'm all about the benchmarks.