Rockchip的RK3588的CPU上测试Electron(以及硬件加速)

1 安装Node.js

# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
 
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
 
# Download and install Node.js:
nvm install 20
 
# Verify the Node.js version:
node -v # Should print "v20.19.1".
nvm current # Should print "v20.19.1".
 
# Verify npm version:
npm -v # Should print "10.8.2".

2 对应版本和配置

package.json

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": "",
  "devDependencies": {
    "electron": "^33.0.0"
  }
}

main.js

const { app, BrowserWindow } = require('electron')
 
const createWindow = () => {
  const win = new BrowserWindow({
    width: 1280,
    height: 800
  })
 
  //win.loadFile('index.html')
  //win.loadURL('chrome://gpu')
  //win.loadURL('about:flags')
  win.loadURL('https://baidu.com')
}
 
app.whenReady().then(() => {
  createWindow()
})

3 参数

# mali 1
"start": "electron --show-fps-counter --no-sandbox --enable-gpu-rasterization --enable-gpu-compositing --use-gl=angle --use-angle=gl-egl --enable-features=VaapiVideoDecoder,VaapiVideoEncoder .",
# mali 2
"start": "electron --show-fps-counter --no-sandbox --enable-gpu-rasterization --enable-gpu-compositing --use-gl=angle --use-angle=vulkan --enable-features=VaapiVideoDecoder,VaapiVideoEncoder .",
# panfrost
"start": "electron --show-fps-counter --no-sandbox --enable-gpu-rasterization --enable-gpu-compositing --use-gl=angle --use-angle=gl --enable-features=VaapiVideoDecoder,VaapiVideoEncoder .",

如上面所述,前2种是针对mali闭源gpu的,因为他不支持opengl,只支持opengl es,第3种是panfrost的,支持opengl,性能上实际观感差别不大,fps都能跑到50+

对应3种方式,基本都能开启所有硬件加速和gpu的选项,不过由于cpu太强了,开不开gpu加速,流畅度基本没影响,主打一个心理安慰。

 

Leave a Reply

Your email address will not be published. Required fields are marked *