Sharing the GPU on Proxmox Between the Host and Linux VMs

The recent development of VirGL as a graphics backend in Proxmox 7.4 means that with certain video cards, it’s possible to share a GPU between the host and a Linux VM. Unfortunately there’s currently no Windows support as a driver needs to be written, plus modifications for the host software. When that becomes available, GPU passthrough will be a thing of the past.

In this short guide, we assume several things:

  1. Proxmox 7.4
  2. Opt-In Kernel 5.19+ (here)
  3. Any previous passthrough configuration needs to be undone. This will interfere with the host’s GPU configuration, which is required.
  4. An AMD GPU recent enough to use the “amdgpu” driver. Reports of nVidia and Intel cards seem to indicate that this isn’t working yet.
  5. Any Linux VM containing an reasonably recent kernel. Virgl has been compatible since the 4.x series and most distributions should be using 5.15+.

On the Proxmox Host:

# apt update && apt upgrade -y
# apt install libgl1 libegl1

Next select “virgl” as your display under the Hardware tab in the Proxmox web UI.

Boot.

Win.

For more cool things you can do with sharing a GPU from the Proxmox host instead of tying it strictly to a single virtual machine, see “Fast KDE Plasma Linux Desktop inside LXC with Proxmox”.

References:

https://pve.proxmox.com/pve-docs/chapter-qm.html#qm_display

https://forum.proxmox.com/threads/virglrenderer-for-3d-support.61801/page-3#post-466767