User:Cmsigler/qemu guest graphics acceleration
There are multiple methods for virtual machine (VM) graphics display which yield greatly accelerated or near-bare metal performance.
Review of methods for qemu guest graphics acceleration
- QXL video driver and SPICE client for display
- QXL is a high-performance display method. However, it is not designed to offer near-bare metal performance.
- PCI VGA/GPU passthrough via OVMF
- PCI VGA passthrough currently seems to be the most popular method for optimal performance. This forum thread (now closed) may be of interest for problem solving.
- Looking Glass
- 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 for the VM via Intel-specific iGVT-g extension
- iGVT-g is restricted to Intel graphics (which could be seen as a performance limitation). For more information, see this Reddit thread for use on an Arch host system.
- Virgil3d para-virtualized virtio-gpu device
- For Linux guests, virtio-vga/virtio-gpu is fairly mature, having been available since Linux kernel version 4.4. See this Reddit Arch thread and Gerd Hoffman's blog for using this with libvirt and spice.
Currently, there is very little information on the VirtIO-gpu OpenGL drivers for Windows guests. A project summary, the DOD (Windows kernel) driver and the ICD (Windows userland) driver are of interest. In addition, see this Phoronix article which includes comments.
- For Linux guests, virtio-vga/virtio-gpu is fairly mature, having been available since Linux kernel version 4.4. See this Reddit Arch thread and Gerd Hoffman's blog for using this with libvirt and spice.