ankitects / ankitects/anki

QtWebEngine 6.11 GBM/X11Pixmap path fails on older AMD Oland GPU; disabling GBM fixes it

Open
#5,262 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
30.5k
Forks
3.2k
Avg merge
2d 8h
Merged PRs (30d)
72

Description

## Summary

Anki 26.08 fails to render QtWebEngine content when using an older AMD Radeon GPU under X11.

The same machine and GPU worked correctly with Anki 25.09 (no driver update in-between these versions).

The failure disappears when disabling QtWebEngine GBM support:

```bash
QTWEBENGINE_FORCE_USE_GBM=0 anki
```

With this workaround, QtWebEngine reports:
```bash
GBM support is force disabled.
GBM is not supported with the current configuration. Fallback to Vulkan rendering in Chromium.

Using GBM: no
Native Buffer Supported: no
Native Pixmap Support Type: None
```

This suggests that the new GBM/native-pixmap compositor path doesn't work correctly on some older GPUs, like mine :))

## Hardware / software:
```bash
Anki: 26.08
OS: Debian 12
Kernel: 6.13.1
Qt: 6.11.0
PyQt: 6.11.0
QtWebEngine: 6.11.0
GPU:
AMD Radeon R7 M350 (AMD FirePro W4190M [2GB GDDR5])
Oland / RadeonSI
Mesa Version:
25.0.7-2~bpo12+1
Display server:
X11
```

GPU works normally in other applications.

## Symptoms

Launching Anki normally produces:

```bash
OzoneImageBacking::ProduceSkiaGanesh failed to create GL representation

SharedImageManager::ProduceSkia:
Trying to produce a Skia representation from an incompatible backing

RasterDecoderImpl: Context lost during MakeCurrent
```

QtWebEngine reports:

```bash
Compositor Type: Native
QPA Platform Plugin: xcb
Skia Graphics Context Type: GaneshGL
Native Buffer Supported: yes
Native Pixmap Support Type: X11Pixmap
Native Skia Output Device: OpenGL
```

The failure happens when Chromium tries to use the X11Pixmap/native buffer path.

### Possible fixes?

Could Anki:
- Detect GPUs where GBM/native pixmap import is unreliable and automatically fall back?
- Provide a supported runtime option to disable GBM/native buffers?
- Improve the compatibility path for older GPUs (for example AMD Oland/GCN 1.x)?

Older GPUs may still support OpenGL/Vulkan correctly but they fail the newer zero-copy/native-buffer compositor path I guess.

Contributor guide

Open the contributing guide

Research direction

No source file or test is named. First reproduce the failure on the listed AMD Oland/X11 setup, compare normal startup with QTWEBENGINE_FORCE_USE_GBM=0, and trace Anki's QtWebEngine configuration around the GBM/X11Pixmap path. Done means affected GPUs render reliably without the workaround while existing configurations retain their current path.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
desktop
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.