Menu ▾ ▴

#31 Linux/Wayland: disable webkit2gtk DMABUF renderer to fix blank/garbled webview (NVIDIA, some Intel)

closed
nobody
2026-07-01
2026-06-30
Anonymous
No

Originally created by: kristofferR

Problem

On Linux under Wayland, the WebKitGTK (webkit2gtk) webview can render blank, black, or garbled with hardware where the DMABUF renderer is broken — most commonly NVIDIA drivers and some Intel GPUs. The window opens but the Messenger page never paints. This is a long-standing webkit2gtk/Wayland issue, not a Carrier bug, but Carrier ships a Linux build using the same webview and is exposed to it.

Fix

Disable the DMABUF renderer on Wayland by setting WEBKIT_DISABLE_DMABUF_RENDERER=1 before any GTK/webkit2gtk initialization (i.e. at the very top of run(), before the Tauri builder). Only set it on Wayland, and don't clobber an explicit user override:

#[cfg(target_os = "linux")]
{
    if std::env::var("WAYLAND_DISPLAY").is_ok()
        && std::env::var("WEBKIT_DISABLE_DMABUF_RENDERER").is_err()
    {
        std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1");
    }
}
  • Gated to Wayland (WAYLAND_DISPLAY present) so X11 sessions are untouched.
  • Respects a pre-existing WEBKIT_DISABLE_DMABUF_RENDERER env var (user can force it on/off).
  • Must run before the window/webview is created — placing it after GTK init is a no-op.

Reference

This is the workaround used by the sibling Tauri app IPTVChecker (src-tauri/src/lib.rs), and the standard mitigation recommended across the Tauri / webkit2gtk ecosystem for Wayland + NVIDIA rendering failures.

Notes

  • macOS (WKWebView) and Windows (WebView2) are unaffected — Linux/webkit2gtk only.
  • Low risk: software/non-DMABUF rendering path is slightly less efficient but correct; it only kicks in on Wayland.

Related

Tickets: #255
Tickets: #38
Tickets: #400
Tickets: #402

Discussion

  • Anonymous

    Anonymous - 2026-07-01

    Ticket changed by: kristofferR

    • status: open --> closed
     
  • Anonymous

    Anonymous - 2026-07-01

    Originally posted by: kristofferR

    Fixed by [#38], merged into main as 161d5b1.

     

    Related

    Tickets: #38


Log in to post a comment.