From 10b6f11cf0d7958dec15f67741b6a36ec75919a0 Mon Sep 17 00:00:00 2001 From: Andrew Zambazos Date: Sun, 28 Dec 2025 11:56:23 +1300 Subject: [PATCH] Switch SteamOS to software rendering for webview stability Replaces hardware acceleration and ANGLE-based GPU flags with software rendering on SteamOS to address webview rendering issues under Gamescope. Updates both main.js and the start:steamos script in package.json to disable GPU compositing and enforce software rendering. --- main.js | 19 +++++++++++-------- package.json | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/main.js b/main.js index 5c8bcd3..782b3ec 100644 --- a/main.js +++ b/main.js @@ -59,19 +59,22 @@ if (process.platform === 'linux') { if (isSteamOS) { console.log(`[GPU] SteamOS/Gamescope DETECTED: ${detectionReason}`); - console.log('[GPU] Applying SteamOS-specific GPU flags for webview rendering...'); + console.log('[GPU] Disabling hardware acceleration - using software rendering...'); - // SteamOS GPU flags - use ANGLE for rendering + // On SteamOS, hardware acceleration causes webview rendering issues + // Software rendering is more stable under Gamescope + app.disableHardwareAcceleration(); + + // Ozone platform app.commandLine.appendSwitch('ozone-platform', 'x11'); - app.commandLine.appendSwitch('use-angle', 'gl'); - app.commandLine.appendSwitch('angle-platform-type', 'x11'); - // GPU process settings - app.commandLine.appendSwitch('in-process-gpu'); - app.commandLine.appendSwitch('disable-gpu-vsync'); + // Disable GPU compositing completely - use software + app.commandLine.appendSwitch('disable-gpu'); + app.commandLine.appendSwitch('disable-gpu-compositing'); + app.commandLine.appendSwitch('disable-software-rasterizer'); // Feature flags - app.commandLine.appendSwitch('enable-features', 'VulkanFromANGLE,UseOzonePlatform'); + app.commandLine.appendSwitch('enable-features', 'UseOzonePlatform'); app.commandLine.appendSwitch('disable-features', 'VizDisplayCompositor'); } else { console.log('[GPU] Standard Linux environment detected'); diff --git a/package.json b/package.json index 82f386b..6ae72ba 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "main": "main.js", "scripts": { "start": "electron .", - "start:steamos": "electron . --ozone-platform=x11 --use-angle=gl --angle-platform-type=x11 --in-process-gpu --no-sandbox --disable-dev-shm-usage --disable-features=VizDisplayCompositor", + "start:steamos": "electron . --ozone-platform=x11 --disable-gpu --disable-gpu-compositing --disable-software-rasterizer --no-sandbox --disable-dev-shm-usage --disable-features=VizDisplayCompositor", "start:linux-safe": "electron . --disable-gpu --disable-gpu-compositing --no-sandbox", "dist": "electron-builder", "dist:appimage": "electron-builder --linux AppImage",