Title: AppImage v0.4.0 blank window on Arch/CachyOS — AMD GPU, Mesa 26.1.5
Downloaded the AppImage, made it executable, ran it — just a white rectangle. The app noticed something was wrong and tried reloading three times, but nothing changed. Error in the terminal:
Could not create default EGL display: EGL_BAD_PARAMETER. Aborting...
[app_lib::blank_guard][WARN] blank window detected (#root children = -2); reload 1/3
[app_lib::blank_guard][WARN] blank window detected (#root children = -2); reload 2/3
[app_lib::blank_guard][WARN] blank window detected (#root children = -2); reload 3/3
[app_lib::blank_guard][ERROR] window still blank after 3 reloads
I worked through every workaround in the install docs — WEBKIT_DISABLE_DMABUF_RENDERER=1, adding LIBGL_ALWAYS_SOFTWARE=1, WEBKIT_DISABLE_COMPOSITING_MODE=1, various combos. Same error every time.
Building from source works perfectly. Cloned the repo, bun install, bun run desktop-prod — launches and runs great. Same machine, same graphics driver, same everything. The app itself is solid — the issue is in the AppImage packaging.
My system:
- CachyOS (Arch), kernel 7.1.3
- AMD Radeon RX 6800 XT
- Mesa 26.1.5
- KDE Plasma 6, Wayland
- System WebKit: 2.52.5 (Arch package)
What I think is happening: The AppImage bundles an older WebKit that doesn't get along with Mesa 26.1.5. My system's own WebKit (2.52.5, compiled by Arch against the same Mesa I'm running) handles it fine — that's why the source build works. The workaround env vars don't help because the crash happens during the initial display connection setup, before any rendering method is chosen.
Related: issue #961 (same error, Ubuntu 26.04).
UPDATE — no env var workaround exists. After extensive testing (see comments), we confirmed that WEBKIT_DMABUF_RENDERER_FORCE_SHM, WEBKIT_DMABUF_RENDERER_DISABLE_GBM, WEBKIT_SKIA_ENABLE_CPU_RENDERING, EGL_PLATFORM=surfaceless, MESA_LOADER_DRIVER_OVERRIDE=swrast, and all combinations still hit the same EGL error. WebKit unconditionally creates the EGL display before consulting any rendering-path flags. The only working workaround is building from source.
For the devs — from someone who helped me investigate: the bundled libwebkit2gtk-4.1.so.0 (Ubuntu-built) calls eglGetPlatformDisplay() with parameters Mesa ≥26.1 rejects as EGL_BAD_PARAMETER. The AppImage doesn't bundle its own libEGL — it links against the system Mesa, creating a version mismatch. WEBKIT_DISABLE_DMABUF_RENDERER is recognized by the bundled binary but the crash is in EGL display creation, which precedes DMA-BUF entirely. System WebKit 2.52.5 (compiled against Mesa 26.1.5 by Arch) works fine because it uses a different EGL initialization path. Fix: build the AppImage against a base with Mesa ≥25.x, or ship a WebKit built against a modern Mesa.
Happy to test any fix.
Title: AppImage v0.4.0 blank window on Arch/CachyOS — AMD GPU, Mesa 26.1.5
Downloaded the AppImage, made it executable, ran it — just a white rectangle. The app noticed something was wrong and tried reloading three times, but nothing changed. Error in the terminal:
I worked through every workaround in the install docs —
WEBKIT_DISABLE_DMABUF_RENDERER=1, addingLIBGL_ALWAYS_SOFTWARE=1,WEBKIT_DISABLE_COMPOSITING_MODE=1, various combos. Same error every time.Building from source works perfectly. Cloned the repo,
bun install,bun run desktop-prod— launches and runs great. Same machine, same graphics driver, same everything. The app itself is solid — the issue is in the AppImage packaging.My system:
What I think is happening: The AppImage bundles an older WebKit that doesn't get along with Mesa 26.1.5. My system's own WebKit (2.52.5, compiled by Arch against the same Mesa I'm running) handles it fine — that's why the source build works. The workaround env vars don't help because the crash happens during the initial display connection setup, before any rendering method is chosen.
Related: issue #961 (same error, Ubuntu 26.04).
UPDATE — no env var workaround exists. After extensive testing (see comments), we confirmed that
WEBKIT_DMABUF_RENDERER_FORCE_SHM,WEBKIT_DMABUF_RENDERER_DISABLE_GBM,WEBKIT_SKIA_ENABLE_CPU_RENDERING,EGL_PLATFORM=surfaceless,MESA_LOADER_DRIVER_OVERRIDE=swrast, and all combinations still hit the same EGL error. WebKit unconditionally creates the EGL display before consulting any rendering-path flags. The only working workaround is building from source.For the devs — from someone who helped me investigate: the bundled
libwebkit2gtk-4.1.so.0(Ubuntu-built) callseglGetPlatformDisplay()with parameters Mesa ≥26.1 rejects asEGL_BAD_PARAMETER. The AppImage doesn't bundle its own libEGL — it links against the system Mesa, creating a version mismatch.WEBKIT_DISABLE_DMABUF_RENDERERis recognized by the bundled binary but the crash is in EGL display creation, which precedes DMA-BUF entirely. System WebKit 2.52.5 (compiled against Mesa 26.1.5 by Arch) works fine because it uses a different EGL initialization path. Fix: build the AppImage against a base with Mesa ≥25.x, or ship a WebKit built against a modern Mesa.Happy to test any fix.