mozixun
2026-05-13 15:12 Moderator
用ANGLE干嘛,ANGLE目前渲染性能也就OpenGL ES原生的样子
除非你的GPU是骁龙Adreno/用Nouveau开源驱动实现的NV卡这类OpenGL驱动都快放弃维护的显卡
Reply Like 1 View the author
用ANGLE干嘛,ANGLE目前渲染性能也就OpenGL ES原生的样子
除非你的GPU是骁龙Adreno/用Nouveau开源驱动实现的NV卡这类OpenGL驱动都快放弃维护的显卡
更换electron版本就行
试试前年论坛里kero990发布的那个第三方客户端。
Popular Ranking
ChangePopular Events
More
问题3:Bilibili 桌面版(Electron 28)ANGLE 与 Mesa 25.x 不兼容
排查日期:2025-05-13
系统:Deepin 25 (crimson) | 内核 6.18.27 | Mesa 25.0.7-2
硬件:Intel N150 (ADL-N, device ID 46d4)
一、现象描述
Bilibili 桌面版(deb 包,io.github.msojocs.bilibili)播放视频为 CPU 软解。
该应用基于 Electron v28.2.1 封装。同一台机器上 Chromium 139(同属 Chrome 系)
能正常使用 VA-API 硬解,说明问题不涉及系统 VA-API 栈基础能力。
二、根因定位
2.1 Electron v28 使用 ANGLE 渲染路径
Bilibili 自带的 Electron v28.2.1 在 X11 下默认使用 ANGLE(--use-gl=angle),
通过自带的 libEGL.so + libGLESv2.so 连接系统 EGL display 进行 GPU 渲染。
2.2 GPU 进程崩溃日志
Electron 的 GPU 子进程在启动时反复输出以下错误:
"Failed to get system egl display"
"libEGL: Called unimplemented function: eglInitialize"
表明 Electron 28 自带的 ANGLE 版本的 eglGetDisplay / eglInitialize 调用
与系统 Mesa 25.x 的 EGL 实现存在接口不兼容。
2.3 对比测试:Chromium 139 正常
Chromium 139.0.7258.66(Deepin 25 仓库版)在相同环境下的测试结果:
"ANGLE (Intel, Mesa Intel(R) Graphics (ADL-N), OpenGL 4.6 (Core Profile) Mesa 25.0.7-2)"
说明 Deepin 25 的 Mesa 25.0.7 + ANGLE + VA-API 栈本身是完整的,
问题局限于 Electron v28 使用的特定 ANGLE 版本。
三、结论
Bilibili 桌面版无法硬解的原因是 Electron v28.2.1 自带的 ANGLE 库
与系统 Mesa 25.x 的 EGL display 初始化接口存在兼容性问题。
该问题在较新的 Electron/Chromium 版本中不存在——同一台机器上
Chromium 139(对应 Chrome 139)的 ANGLE 可以正常初始化系统 EGL display
并通过 VA-API 实现硬解。
Electron v28.2.1 对应 Chrome 120-122 范围,距离当前 Chromium 139 差距约
17 个大版本。根本原因在于 Bilibili 打包者使用的 Electron 版本过旧,
未跟上 Chromium 上游针对 Mesa 新版的兼容性修复。
此问题不影响其他原生应用(VLC、ffmpeg、mpv、Chromium 139 均可正常硬解)。