Linux 无法使用Xvfb在Electron中呈现WebGL
我正在尝试在我的Linux PC上呈现我的应用程序,它在Electron中具有WebGL依赖项,但是除了CSS背景色之外,页面上没有呈现任何内容。当我删除WebGL依赖项(即MapboxGL)时,所有内容都会正常渲染 我正在使用X虚拟帧缓冲区,这对于Linux环境来说似乎是必要的,如下所述: 我正在使用以下命令运行Xvfb:Linux 无法使用Xvfb在Electron中呈现WebGL,linux,electron,webgl,mapbox-gl,xvfb,Linux,Electron,Webgl,Mapbox Gl,Xvfb,我正在尝试在我的Linux PC上呈现我的应用程序,它在Electron中具有WebGL依赖项,但是除了CSS背景色之外,页面上没有呈现任何内容。当我删除WebGL依赖项(即MapboxGL)时,所有内容都会正常渲染 我正在使用X虚拟帧缓冲区,这对于Linux环境来说似乎是必要的,如下所述: 我正在使用以下命令运行Xvfb: Xvfb :99 -screen 0 1024x768x24 > xvfblog.txt 2>&1 & 然后我用前缀启动我的应用程序: DIS
Xvfb :99 -screen 0 1024x768x24 > xvfblog.txt 2>&1 &
然后我用前缀启动我的应用程序:
DISPLAY=:99
以便应用程序连接到X虚拟帧缓冲区显示器
我不确定这是否相关,但Xvfb启动时会显示以下消息:
XKEYBOARD键映射编译器(xkbcomp)报告:
>警告:忽略名称的不支持的高键码372
>X11不能支持255以上的键码
>此警告仅针对第一个high键代码显示
>内部错误:无法解析keysym XF86WWAN
>内部错误:无法解析keysym XF86RFKill
>内部错误:无法解析keysym XF86键盘
xkbcomp的错误对X服务器不是致命的
我还注意到,当我在Macbook上使用Electron测试我的应用程序时,并不需要Xvfb,我的WebGL应用程序呈现得很好
我在这里有点不知所措。关于可能出现的问题,或者我可以调查哪些问题以进行修复,是否有任何建议?我通过将Xvfb配置为与WebGL一起使用,解决了此问题,如下所示:
Xvfb :99 -screen 0 1024x768x24 +extension GLX +render > xvfblog.txt 2>&1 &
其中我添加了+扩展GLX+渲染
标志
我还必须使用忽略gpu黑名单
标志启动electron。我发现这篇文章在以下方面很有帮助:
还要注意,我使用的是“electron”npm包,我必须将以下标志添加到我的BrowserWindow
对象中:
const win = new BrowserWindow({
show: false,
webPreferences: {
webgl: true,
webSecurity: false,
experimentalFeatures: true,
experimentalCanvasFeatures: true,
offscreen: true
}
})
我希望这对某人有所帮助。你需要在你的Electron应用程序中添加内容,我想这可能会有所帮助。