VirtIO-GPU (virgl) only exposes OpenGL 2.1 under QEMU 10, breaking GTK4/libadwaita rendering
- Dominant language
- Swift
- Stars
- 35.5k
- Forks
- 1.8k
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 7
Description
**Environment**
- UTM versions affected: 4.7.5 and 5.0 beta
- UTM version working: 4.7.4
- Host: macOS (Apple Silicon)
- Guests affected: Ubuntu 24.04, Pop!_OS 24
- Guests not affected: Zorin OS 17 (Ubuntu 22.04 base, GTK3)
**Description**
Since UTM 4.7.5 (QEMU 10), VirtIO-GPU via virgl only exposes OpenGL 2.1 to guest VMs. GTK4's NGL renderer requires OpenGL 3.3 minimum. This causes severe rendering artifacts in all GTK4/libadwaita applications : black zones that don't refresh, corrupted title bars in Qt applications, missing window content.
GTK3-based applications are unaffected (Cairo renderer, no OpenGL dependency), which explains why Zorin OS 17 does not exhibit the issue.
**Steps to reproduce**
Create a VM with Ubuntu 24.04 or Pop!_OS 24, VirtIO-GPU display, 3D acceleration enabled
Boot and open any GTK4/libadwaita application (e.g. Nautilus)
Observe rendering artifacts
**Verification**
Inside the guest:
```
$ glxinfo | grep "OpenGL version"
OpenGL version string: 2.1 Mesa 25.2.8-0ubuntu0.24.04.1
```
GTK4 NGL renderer requires OpenGL 3.3+. The same guest under UTM 4.7.4 worked correctly, strongly suggesting virgl's exposed OpenGL version regressed with QEMU 10.
**Expected behavior**
VirtIO-GPU/virgl should expose OpenGL 3.3 or higher, as it did under UTM 4.7.4 / QEMU 9.
**Workaround**
None found. GSK_RENDERER=cairo makes the display worse (empty window content). GSK_RENDERER=gl has no effect.
Contributor guide
Assessment
This issue has not been assessed yet.