Skip to content

Commit 99b3468

Browse files
Nicolettaclaude
authored andcommitted
fix: GDK_BACKEND=x11 für WebKit-Content-Prozess – EGL-Crash auf Wayland+AMD
Der EGL-Crash (EGL_BAD_PARAMETER, Mesa 26 + AMD) passiert in GDK's eigener EGL-Initialisierung im WebKit-Content-Prozess – NICHT im WebKit DMABuf-Code. Deshalb greifen WEBKIT_DISABLE_DMABUF_RENDERER und HardwareAccelerationPolicy nicht: beide bewachen WebKit-Code, der NACH GDK-Init läuft. GDK_BACKEND=x11 → GDK im Content-Prozess nutzt X11/GLX statt Wayland/EGL. Kein eglGetDisplay-Aufruf → kein Crash. KDE Plasma hat immer XWayland. GDK ist im Parent-Prozess bereits initialisiert → Env-Var hat dort keine Wirkung, wird aber vom Content-Prozess beim Start frisch gelesen (nach set_sandbox_enabled(false) auch tatsächlich geerbt). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent ac37b9a commit 99b3468

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src-tauri/src/lib.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,16 @@ pub fn run() {
106106
ctx.set_sandbox_enabled(false);
107107
}
108108
log::info!("WebKit-Sandbox deaktiviert (EGL-Fix)");
109-
// (B) DMA-Buffer-Renderer deaktivieren – Content-Prozess erbt Env-Var
109+
// (B) GDK_BACKEND=x11 – GDK im Content-Prozess nutzt X11/GLX statt
110+
// Wayland/EGL. Der Crash passiert in GDK's EGL-Init (nicht in
111+
// WebKit's DMABuf-Code), daher greifen WEBKIT_DISABLE_*-Vars nicht.
112+
// GDK im Parent ist bereits initialisiert → Env-Var hat dort keine
113+
// Wirkung, wird aber vom Content-Prozess beim Start geerbt.
114+
// KDE Plasma hat immer XWayland → DISPLAY ist gesetzt.
115+
std::env::set_var("GDK_BACKEND", "x11");
116+
// DMA-Buffer-Renderer zusätzlich deaktivieren (belt-and-suspenders)
110117
std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1");
111-
log::info!("WEBKIT_DISABLE_DMABUF_RENDERER=1 gesetzt");
118+
log::info!("GDK_BACKEND=x11 + WEBKIT_DISABLE_DMABUF_RENDERER=1 gesetzt");
112119
}
113120

114121
// Hauptfenster programmatisch erstellen.

0 commit comments

Comments
 (0)