QEMU/Guest graphics acceleration
There are multiple methods for virtual machine (VM) graphics display which yield greatly accelerated or near-bare metal performance.
- 1 Methods for QEMU guest graphics acceleration
Methods for QEMU guest graphics acceleration
QXL video driver and SPICE client for display
QXL/SPICE is a high-performance display method. However, it is not designed to offer near-bare metal performance.
PCI GPU passthrough
PCI VGA/GPU passthrough via OVMF
There is a fairly recent passthrough method called Looking Glass. See this guide to getting started which provides some problem solving and user support. Looking Glass uses DXGI (MS DirectX Graphics Infrastructure) to pass complete frames captured from the VM's passed-through video card via shared memory to the host system where they are read (scraped) by a display client running on the bare-metal host.
Fully virtualized GPU support via Intel-specific iGVT-g extension
iGVT-g is limited to Intel graphics on recent Intel CPUs (starting with 5th generation Intel Core(TM) processors). For more information, see this Reddit thread for use on an Arch host system. If you use Libvirt, you might want to check out this blog.
Virgil3d virtio-gpu paravirtualized device driver
Virgil3d virtio-gpu is a paravirtualized 3d accelerated graphics driver, similar to non-graphics virtio drivers (see virtio driver information and virtio Windows guest drivers). For Linux guests, virtio-gpu is fairly mature, having been available since Linux kernel version 4.4 and QEMU version 2.6. See this Reddit Arch thread and Gerd Hoffmann's blog for using this with libvirt and spice.
For Windows guests, there is very little information on VirtIO-gpu OpenGL drivers. A project summary, the DOD (Windows kernel) driver and the ICD (Windows userland) driver are available. In addition, see this Phoronix article and its comments.