PCI PASS-THROUGH PROBLEMS
TRY TO RUN GAMES or anything else that places any heavy graphical demands on a VirtualBox VM, and you won’t have much luck. VirtualBox’s 3D acceleration doesn’t really do anything for DirectX 10, 11, or 12 titles. There is a solution, but it’s one with some pretty heavy requirements. You need to run a Linux distribution as your host OS, and have two graphics cards in your physical machine, one of which you’ll use for your host—integrated graphics will do—and the other you’ll dedicate entirely to your VM. You also need to have a motherboard with an IOMMU unit, a CPU that supports it, and IOMMU enabled in the BIOS or UEFI. IOMMU is essentially a translation methodology, which maps physical memory addresses between guests and hosts—on AMD machines, you need to look for AMDVi, and on Intel, it’s Intel Virtualization Technology for Directed I/O, or VT-d. These aren’t unusual features for modern boards, but we recommend you check compatibility before you kill off your everyday OS in favor of a Linux host.
From there, it’s a not-so-simple process of installing VirtualBox on your host OS (after ensuring it’s running a kernel that’s IOMMU-compatible), adding in the PCI pass-through extension through the catch-all extension pack, which can be downloaded from www.virtualbox. org, enabling IOMMU in your Linux distro’s boot loader (add something such as intel_iommu=on to grub.cfg), then using the lspci command to check which PCI devices you have attached to your host hardware. The first column lists the PCI address of each device; you can then run a terminal command along the lines of VBoxManage modifyvm “VM name” --pciattach
02:00.0@01:05.0 to pass, in this case, the device at host address 02:00.0 to the guest address 01:05.0. Complex stuff, but entirely possible if you’re determined. Want to use your GPU to its full effect with a VM? Pass it through....