ref:2ea36d544438f0438d35239ab7731d5e61c42f6b

docs(qemu): record how to build QEMU, including the VirGL dependency

The build recipe only existed in the journal, and it left out libvirglrenderer-dev: QEMU disables VirGL silently when it's missing, so a build meant to render the guest on the host's GPU quietly can't. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BPNw4PCgkEfhyCjQT19wsb
SHA: 2ea36d544438f0438d35239ab7731d5e61c42f6b
Author: Cole Christensen <cole.christensen@gmail.com>
Date: 2026-09-17 03:10
Parents: 2e70abb
1 files changed +15 -0
Type
docs/qemu.md +15 −0
@@ -25,6 +25,21 @@
and 11.1 were tested. QEMU 8.2 sends the picture as D-Bus messages, newer versions share memory with Sunshine.
- For libvirt: libvirt 8.4.0 or newer (`<graphics type='dbus'>`).
### Building QEMU yourself
Distro QEMU is often old enough to send the picture as D-Bus messages rather than share memory. To build a newer
one next to the system's:
```bash
./configure --prefix="${HOME}/.cache/sunshine-qemu/qemu-install" --target-list=x86_64-softmmu \
--enable-dbus-display --enable-kvm --enable-slirp --enable-opengl --enable-modules
```
Install `libvirglrenderer-dev` before configuring if the guest should render on the host's GPU
(`virtio-gpu-gl`, `-display dbus,gl=on`). QEMU disables VirGL silently when it isn't there — check
`VirGL support` in the configure summary, or `-device help` for `virtio-gpu-gl`. That needs a DRM render node
on the host, so it does nothing on a host without `/dev/dri`, where the guest renders in software.
## How Sunshine reaches the VM
[qemu_dbus_address](configuration.md#qemu_dbus_address) takes one of these forms.