Win10电子错误:不支持直通,GL被禁用,ANGLE被禁用

Mar*_*tin 12 nvidia command-prompt chromium npm electron

我有一个电子存储库(https://github.com/MartinBarker/RenderTune),当使用命令提示符运行时,它曾经在 Windows 10 上正常工作。几个月后,我回到了一台配备 Nvidia GPU 的全新 Windows 10 机器上,电子应用程序在启动时在窗口中打印了一个错误:

Uncaught TypeError: Cannot read properties of undefined (reading 'getCurrentWindow')
Run Code Online (Sandbox Code Playgroud)

运行 ffmpeg shell 命令也会导致错误,并且在命令提示符终端中输出以下消息:

[14880:1207/145651.085:ERROR:gpu_init.cc(457)] Passthrough is not supported, GL is disabled, ANGLE is
Run Code Online (Sandbox Code Playgroud)

我在我的其他 Windows 笔记本电脑上检查了运行与我的存储库的 master 分支相同的代码,并且在本地运行时运行得非常好。

看来这可能是最近的问题?我发现它在各种论坛中进行了讨论: https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1944468

https://www.reddit.com/r/electronjs/comments/qdauhu/passthrough_is_not_supported_gl_is_disabled_angle/

我尝试将我的全局电子 npm 包升级到更新的版本: electro@16.0.4 ,但错误仍然出现。

Mar*_*off 15

您可以尝试使用禁用硬件加速app.disableHardwareAcceleration()请参阅文档)。但我不认为这是一个解决办法,它只会让这个消息对我来说消失。


用法示例

main.js

import { app, BrowserWindow } from 'electron'
import isDev from 'electron-is-dev'

app.disableHardwareAcceleration()

let win = null

async function createWindow() {
  win = new BrowserWindow({
    title: 'My Window'
  })

  const winURL = isDev
    ? 'http://localhost:9080'
    : `file://${__dirname}/index.html`
  win.loadURL(url)

  win.on('ready-to-show', async () => {
    win.show()
    win.maximize()
  })
}

app.whenReady().then(createWindow)

app.on('window-all-closed', () => {
  win = null
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
Run Code Online (Sandbox Code Playgroud)

  • @Dee我认为这可以通过使用 `app.commandLine.appendSwitch('force_high_performance_gpu')` 设置 Chromium 的相应命令行开关来完成,如[此处](https://www.electronjs.org/de/docs/最新/api/命令行开关#--force_high_performance_gpu)。 (3认同)