diff --git a/electron/main.ts b/electron/main.ts index 4313bc035..12ce817fc 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -46,6 +46,12 @@ if (process.platform === "linux") { app.commandLine.appendSwitch("ozone-platform", "wayland"); // Enable WebRTCPipeWireCapturer for screen capture on Wayland app.commandLine.appendSwitch("enable-features", "WaylandWindowDrag,WebRTCPipeWireCapturer"); + // Chromium's Wayland Ozone backend can't use Vulkan. When it tries, the WebRTC + // PipeWire capturer fails to import DMA-BUF frames into EGL (EGL_BAD_MATCH), the + // stream renegotiates, and screen recording yields no usable frames. Force the + // GL/EGL path so DMA-BUF import works. (Chromium itself logs this suggestion: + // "'--ozone-platform=wayland' is not compatible with Vulkan ... disabling Vulkan".) + app.commandLine.appendSwitch("disable-features", "Vulkan"); } }