diff --git a/src/main/index.ts b/src/main/index.ts index 2e0d6f7..70dabba 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -35,7 +35,7 @@ function init() { if (hardwareAcceleration === false) { app.disableHardwareAcceleration(); } else { - enabledFeatures.push("VaapiVideoDecodeLinuxGL", "VaapiVideoEncoder", "VaapiVideoDecoder"); + enabledFeatures.push("VaapiVideoDecodeLinuxGL", "VaapiVideoEncoder", "VaapiVideoDecoder", "VulkanFromANGLE", "DefaultANGLEVulkan", "VaapiIgnoreDriverChecks", "PlatformHEVCDecoderSupport", "VaapiVP8Encoder", "VaapiVP9Encoder", "VaapiAV1Encoder", "WaylandWindowDecorations", "UseOzonePlatform", "WebRTCPipeWireCapturer"); } if (disableSmoothScroll) { @@ -48,6 +48,26 @@ function init() { app.commandLine.appendSwitch("disable-renderer-backgrounding"); app.commandLine.appendSwitch("disable-background-timer-throttling"); app.commandLine.appendSwitch("disable-backgrounding-occluded-windows"); + app.commandLine.appendSwitch("disable-renderer-backgrounding"); + app.commandLine.appendSwitch("disable-background-timer-throttling"); + app.commandLine.appendSwitch("disable-backgrounding-occluded-windows"); + app.commandLine.appendSwitch("enable-zero-copy"); + app.commandLine.appendSwitch("use-gl=angle"); + app.commandLine.appendSwitch("use-angle=gl"); + app.commandLine.appendSwitch("use-vulkan"); + app.commandLine.appendSwitch("enable-oop-rasterization"); + app.commandLine.appendSwitch("enable-raw-draw"); + app.commandLine.appendSwitch("enable-gpu-rasterization"); + app.commandLine.appendSwitch("enable-gpu-compositing"); + app.commandLine.appendSwitch("enable-native-gpu-memory-buffers"); + app.commandLine.appendSwitch("enable-accelerated-2d-canvas"); + app.commandLine.appendSwitch("enable-accelerated-video-decode"); + app.commandLine.appendSwitch("enable-accelerated-mjpeg-decode"); + app.commandLine.appendSwitch("disable-gpu-vsync"); + app.commandLine.appendSwitch("disable-frame-rate-limit"); + app.commandLine.appendSwitch("ozone-platform-hint=auto"); + app.commandLine.appendSwitch("enable-webrtc-pipewire-capturer"); + app.commandLine.appendSwitch("ozone-platform=wayland"); if (process.platform === "win32") { disabledFeatures.push("CalculateNativeWinOcclusion"); } diff --git a/src/renderer/components/ScreenSharePicker.tsx b/src/renderer/components/ScreenSharePicker.tsx index c7403b9..9b454e6 100644 --- a/src/renderer/components/ScreenSharePicker.tsx +++ b/src/renderer/components/ScreenSharePicker.tsx @@ -84,9 +84,9 @@ addPatch({ const width = Math.round(height * (16 / 9)); Object.assign(opts, { - bitrateMin: 500000, - bitrateMax: 8000000, - bitrateTarget: 600000 + bitrateMin: 10000000, + bitrateMax: 60000000, + bitrateTarget: 32000000 }); if (opts?.encode) { Object.assign(opts.encode, { diff --git a/src/main/settings.ts b/src/main/settings.ts index 6fad97f..dfc64e3 100644 --- a/src/main/settings.ts +++ b/src/main/settings.ts @@ -26,8 +26,10 @@ function loadSettings(file: string, name: string) { const store = new SettingsStore(settings); store.addGlobalChangeListener(o => { - mkdirSync(dirname(file), { recursive: true }); - writeFileSync(file, JSON.stringify(o, null, 4)); + try { + mkdirSync(dirname(file), { recursive: true }); + writeFileSync(file, JSON.stringify(o, null, 4)); + } catch {} }); return store;