QtWebEngine性能问题

科技资讯 投稿 67100 0 评论

QtWebEngine性能问题

1. 概述

Qt的Qt WebEngine模块是基于Chromium项目,但是本人在使用QWebEngineView进行Web端的三维渲染(WebGL)时,经过测试发现性能比不上Chrome。查阅了一些资料,记录一下对这个问题的尝试。

2. 详论

2.1. 图形属性设置

可以看到两者的GL_RENDERER是不一样的,原生的Chrome采用的是ANGLE渲染的,而不是像Qt WebEngine那样采用显卡驱动中OpenGL4.6渲染。

具体的代码为:

QCoreApplication::setAttribute(Qt::AA_UseOpenGLES;
//...
QApplication a(argc, argv;
//...

这时的ANGLE已经启用了,并且调用了D3d11。不过很可惜,经过测试,我这边性能并没有提高,并且在后台会报错。

更进一步的,参考[2]中还提到了可以通过环境变量QT_ANGLE_PLATFORM来选择d3d11、d3d9或者warp,来选择具体的图形接口实现。可惜这三种配置对我都没什么效果。

2.2. 硬件加速设置

参考[3]和参考[4]提到了Chromium有一些命令行参数,用于进行硬件加速。例如"--ignore-gpu-blacklist", "--enable-gpu-rasterization", "--enable-native-gpu-memory-buffers", "--num-raster-threads=4"。参考[5]中提到了具体的设置方法:

qputenv("QTWEBENGINE_CHROMIUM_FLAGS", "--ignore-gpu-blacklist";
//...
QApplication a(argc, argv;
//...

但是很可惜,经过测试,我这边性能还是并没有提高。

2.3. Qt6

在Qt的一篇官方博客,也就是参考[6]中,提到了一些信息:

似乎目前Qt的ANGLE并没有真正渲染到D3D上,相应的硬件加速也没有作用。如果可以,尽量跟进Qt6的最新版,可能会解决这个性能问题。

编程笔记 » QtWebEngine性能问题

赞同 (43) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽