From 9a6956477f216372c84aa2a0b56fbededc4b18b5 Mon Sep 17 00:00:00 2001 From: Eric Date: Mon, 25 May 2026 18:15:03 -0700 Subject: [PATCH] [eric] windows: app.disableHardwareAcceleration() since dropping the gpu-blocklist override alone did not stop 0xC0000005 renderer crashes on chat/dashboard mount, so the native segfault is in the GPU process itself not just blocklist-bypass paths; software rasterization is slower but neutralizes the entire GPU-side native-crash class; win32 only, mac is unaffected; retag v1.1.44 --- electron/main.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/electron/main.js b/electron/main.js index 2c187fa9..904225cb 100644 --- a/electron/main.js +++ b/electron/main.js @@ -153,7 +153,10 @@ app.on('open-url', (event, url) => { }); app.commandLine.appendSwitch('disable-features', 'HardwareMediaKeyHandling'); -// Removed ignore-gpu-blocklist + enable-gpu-rasterization + enable-zero-copy: Chromium maintains a blocklist of GPU drivers known to cause native segfaults (STATUS_ACCESS_VIOLATION 0xC0000005) when forced through the GPU pipeline, and Crashpad has been capturing exactly that exit code on every renderer crash with no JS-side cause; respecting the blocklist lets Chromium fall back to software rasterization on affected drivers while keeping GPU on safe ones. Widevine CDM still works in software mode. +// Disable hardware acceleration entirely on Windows. Removing the override flags alone did not stop the 0xC0000005 (ACCESS_VIOLATION) renderer crashes that Crashpad captured on every chat / dashboard mount, so the native segfault is not just blocklist-bypass GPU work, it is somewhere in the GPU process itself. Software rasterization is slower but eliminates the entire class of GPU-side native crashes. We can scope this to win32 only since macOS users have never reported the issue. +if (process.platform === 'win32') { + app.disableHardwareAcceleration(); +} app.commandLine.appendSwitch('autoplay-policy', 'no-user-gesture-required'); let mainWindow = null;